テンプレート:Release Notes/2.46/Misc-2

提供: wiki
移動先: 案内検索

Brecht

UV select inverse

Patch #6717: Select Inverse function in the UV editor, by Juho Vepsalainen.

Add "View Selected" in the IPO editor

- Numpad dot is shortcut key, same as in other windows.

Textured drawing in Edit Mode

  • In textured drawmode it now draws the texture, with solid mode lighting.
  • UVs and vertex colors for subsurf are not computed incremental yet, so editing in textured drawmode then may not be as fast as the other modes.

Implementation Notes:

  • Added textured drawing functions to the editmesh and subsurf derivedmeshes.
  • Removed some unused, legacy subsurf code that directly used Mesh.
  • Restructured texture drawing a bit to make it more clear and allow for editmode drawing.

Make B-Bones not deform in rest position by default

B-Bones already deformed the mesh in the armature rest position, which is unconvenient. For backwards compatibility existing .blend files still have a button for the old behavior enabled.

Hinge Bone Transform

This changes the way hinge bones are transformed when their parent bones are also selected. Before it just disabled transform for these, now they are rotated and scaled as well, but without influencing the transform center, which gives behaviour as if they were regular bones.


Bone Transform

When pressing the g key on a bone that can't be translated, rotation is automatically activated. However, with multiple bone selected, it did this even if some bones can be translated. Now it only switches to rotation if no bones can translated.

Shape Keys

  • Added a Mute button for shape keys, useful for debugging the influence of driven shape keys.
  • Bugfix for the shape keys relative to others keys, was hanging in an eternal loop when deleting the other key.

new image

Increased the size limit (to 16384) and the default size (to 1024) for the New Image function.


opengl rendering

For the OpenGL render option in the 3d view, if a camera is active, it now sets the viewport exactly the same as if rendering.


Render Instancing

Big commit, but little user visible changes.

  • Dupliverts and duplifaces are now rendered as instances, instead of storing all of the geometry for each dupli, now an instance is created with a matrix transform refering to the source object. This should allow us to render tree leaves more memory efficient.
  • Radiosity and to some degree raytracing of such objects is not really efficient still. For radiosity this is fundamentally hard to solve, but raytracing an octree could be created for each object, but the current octree code with it's fixed size doesn't allow this efficiently.
  • The regression tests survived, but with I expect that some bugs will pop up .. hopefully not too many :).

Implementation Notes

  • Dupligroups and linked meshes are not rendered as instances yet, since they can in fact be different due to various reasons, instancing of these types of duplis that are the same can be added for them at a later point.
  • Each ObjectRen now stores it's own database, instead of there being one big databases of faces, verts, .. . Which objects that are actually rendered are defined by the list of ObjectRenInstances, which all refer to an ObjectRen.
  • Homogeneous coordinatess and clipping is now not stored in vertices anymore, but instead computed on the fly. This couldn't work for instances. That does mean some extra computation has to be done, but memory lookups can be slow too, and this saves some memory. Overall I didn't find a significant speed impact.
  • OSA rendering for solid and ztransp now is different. Instead of e.g. going 8 times over the databases times and rendering the z-buffer, it now goes over the database once and renders each polygon 8 times. That was necessary to keep instances efficient, and can also give some performance improvement without instances.
  • There was already instancing support in the yafray export code, now it uses Blender's render instances for export.
  • UV and color layer storage in the render was a bit messy before, now should be easier to understand.
  • convertblender.c was reorganized somewhat. Regular render, speedvector and baking now use a single function to create the database, previously there was code duplicated for it.
  • Some of these changes were done with future multithreading of scene and shadow buffer creation in mind, though especially for scene creation much work remains to be done to make it threadsafe, since it also involves a lot of code from blenkernel, and there is an ugly conflict with the way dupli groups work here .. though in the render code itself it's almost there.

subdivision

Shift+O subdivision switching now also allows to switch particle systems on/off if they exist.


Threaded Shadowbuffers Creation

  • One shadowbuffer per thread.
  • Added more break tests in shadow buffer code.
  • Removed R.clipcrop global, solution is not nice yet, but at least threadsafe.
  • Fixed bug in strand render shadow buffer code.

Misc Render Features

  • "From Dupli" option for orco and uv texture coordinates. For dupliverts, duplifaces and dupli particles, this uses the orco and uv at the point on the parent surface. Can for example be used for texturing feathers and leafs. Note that uv only works for duplifaces and particles emitted from faces, these are not defined at vertices.
  • "Width Fade" option for strand render, to fade out along the width of the strand. Committing this so it can be tested, might be changed or removed even, if it doesn't give nice results.

Render

Bounding box clipping in the render engine.

Now bounding boxes are computed per object, and checked first before zbuffering objects. For strands, bounding boxes are computed per original face in the mesh. Overall the speed improvement from this is quite small (zbuffering is rarely the bottleneck), but it seems a sensible thing to do anyway.

Particle Edit Mode

  • Only do keep length and deflection on hairs that are being moved/combed/.. speeds up editing of 10000 hairs a lot.
  • Key selections in editmode are now saved to file to and restored on file load.
  • Added .-key view center on selected particles.
  • Added a "See Particle buttons." label in the Particle modifier, fixed some drawing glitch, and tweaked spacing a bit.
  • Fixed subdivide tool (always crashed).
  • Fixed lasso selection to work.
  • Fixed crash displaying the fields panel with particle systems but none active.
  • Fixed particle stubs to have definitions too (declarations only do nothing).
  • Fixed softbody pointcache getting the wrong stack index.
  • Added some proper particle mode exits that were missing (like scene delete). Made a generic function for it, since this code for multiple modes was duplicated in multiple places.
  • Fixed double undo push for mouse selection.
  • Various warning fixes.


  • Brushes and other settings are now saved in the scene toolsettings, and saved to file.
  • Made the button value range of emitter distance bigger (1.0 -> 10.0).


  • Rearranged the particle mode panel and added 'select' and 'particle' menus in particle mode.
  • Replaced the 'deform_only' variable that was being passed in the particle code, by storing it in the derivedmesh itself. (fixes particles dissappearing in some cases)
  • Made density vertex group work again.
  • Added more checks in particle edit tools to prevent some crashes when the particle system is not editable.
  • Add orientation mapping, previously only the position was mapped correctly to e.g. subsurf, but the direction of the particle was still wrong. This changes the way the hair -> object or global matrix is computed, I tried to make it compatible, but might break existing particle systems.


  • Mirror editing, exists of two parts:
    • A "Mirror Particles" tool that mirrors particles to the other side. If a particle already exists in that place, it instead gets the same coordinates.
    • A "X-Axis Mirror" option to mirror edits to the other side while editing, should work for all tools: brushes, transform, delete, rekey, .. .
  • (Again) modified the way particles are stored in faces. Now it is using mean value weights instead of bilinear, which means adding particles with the add brush will put them exactly in the place they need to be, and the particles can be mirrored exactly, while keeping nice interpolation on quads. It also means I can now properly understand what is going in the code :). This breaks backwards compatibility (sorry).
  • Proportional edit should now work, also optimized it to only do deflection, etc. on particles that are actually moved.
  • Changed the way Even and Random distribution work. Previously small faces would get no particles at all, which meant that e.g. on our models the hands would get no particles.
  • Made the radius for mouse selection bigger, is now 75 pixels like mesh edit mode.
  • Fixed the Remove Keys tool, didn't work correct.
  • Added Select Linked to the menu, missed that before.
  • Added a "Puff" tool to make hairs stand up more, or less.
  • Made Shrink and Grow a single tool called "Length", with buttons and shift key modifier to switch between the two.
  • Partial path cache updates for children and parents, makes editing with child particles showing much faster.
  • Moved the kdtree code into blenlib, added balancing and optimized the nearest neighbour search a bit as well. Makes child particle distribution about 3-4 times faster here.
  • Take normal into account for child particle parent search (just multiply the distance by 10 if the normal is facing away), solves issue with parent particles on one side of an ear affecting the other side.
  • Set dmcache_index in the add brush and mirror tools, otherwise it falls back to slow lookups until the cache is refreshed.
  • Draw child particles shaded in edit mode, instead of black (they often still end up black though, with the normals facing down).
  • Fix memory leak when deleting all particles in particle mode.
  • Two new options for diffuse strand shading:
    • Surface Diffuse: computes the strand normal taking the normal at the surface into account.
    • Blending Distance: the distance in Blender units over which to blend in the normal at the surface.
    • Special strand rendering for more memory efficient and faster hair and grass. This is a work in progress, and has a number of known issues, don't report bugs to me for this feature yet.

Merge of the famous particle patch by Janne Karhu, a full rewrite of the Blender particle system. This includes:

  • Emitter, Hair and Reactor particle types.
  • Newtonian, Keyed and Boids physics.
  • Various particle visualization and rendering types.
  • Vertex group and texture control for various properties.
  • Interpolated child particles from parents.
  • Hair editing with combing, growing, cutting, .. .
  • Explode modifier.
  • Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle systems are being converted to the new system, but will require tweaking to get them looking the same as before.

  • Like sculptmode, a brush can now be selected from a menu with Ctrl+Tab in particle mode.
  • Texture orco coordinates for particles are now actual orcos instead of just the vertex positions, which means they are the same under deformations and the same as the ones on the mesh.
  • Particle distribution now uses these orcos to get consistent distributions independent of deformation.
  • This required changing the way orco's are computed for meshes. Now instead of generating an orco derivedmesh separately, the derivedmesh is generated alongside the regular one and stored in an orco custom data layer.


  • Added texture control for child particle roughness.
  • Fix some use of uninitialized variables in particle texture code.
  • Normalize strand coordinates over the length of the strand, not cut off when with e.g. length texture control.
  • Weight paint and particle mode x-mirror now works with deformation and shape keys active.
  • X-ray is now disabled in particle mode, messed up depth tests.

Also made the shift+o subsurf switch work recursively into dupli-groups, did only the first level before.

The new system to replace manual baking, based on automatic caching on disk. This is currently used by softbodies and the particle system.

See the Cache API section on: http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint


  • The render and realtime button for the particle system modifier and the enabled button for particles now work seperate again, made a bad design decision to tie them together. Now with only the render button and not realtime enabled it renders.
  • Added a Remove Doubles tool, to remove two particles with the same root position.

Particle object and group visualization now also work for hair, to make for example feathers. Also made dupliparts work within groups.

One issue still is that in particle editmode, the duplis can interfere with brushes and selection, though tweaking the dupli object position can alleviate the problem.


Addition to last commit, now the length of the hair is used to scale the object. Also, the direction is now derived from the first and last keys on the hair, instead of first and second.


Changed the way falloff for fields works, was hard to control well. Specifically with maxdist set, the falloff is now from 1.0 to 0.0 at the maxdist, so that there isn't a sudden discontinuity.

Added an "effector" vertex group for hair, that defines how much influence effectors have.

Strand Render Simplification

  • Strand render now has options to remove child strands as the object's faces becomes smaller, in the Simplification particle panel.
  • "Reference Size" is the approximate size of the object on screen, after which simplification starts.
  • "Rate" is how fast strands are removed.
  • "Transition" is the percentage of strands being faded out as they are removed.
  • Another "Viewport" option removes strands on faces that are outside of the viewport. "Rate" again controls how fast these are removed.
  • Strand render in Blender Units now has an adjustable minimum width. Below this minimum width, strands start fading out instead of getting smaller.