The particle data is stored in a separate texture if any of the dupli objects uses particle info nodes in shaders. To map dupli objects onto particles the store an additional particle_index value, which is different from the simple dupli object index (only visible particles, also works for particle dupli groups mode).
Some simple use cases on the code.blender.org blog:
http://code.blender.org/index.php/2012/05/particle-info-node/
Actually there were two different issues involved here:
- Recently enabled Smooth modifier wasn't actually designed for curves, so
it in fact requires a bit bigger work to make it working.
For now added check for object's typy in this modifier and if it's not
mesh, it wouldn't try to use edges.
The reason why it worked in 3d viewport is that creating DM from curve while
displist is still ocntrcuting for would result in empty CDDM and that leads to
not taking edges into account, only vertexCos passed to modifier would be used.
This makes it behaving a bit differently from if it was a mesh, but still gives
quite reasonable result. Would leave actual fix for a guy who enabled smooth
modifier.
- Another issue is related on ensuring sculpt mask layer after applying modifier.
This shall happen only for meshes.
This results in some buttons not disabled when there's no currently displaying frame,
but this saves lots of cache lookups and threading loks for every frame update.
This prevents high memory usage by non-proxied frames when doing mask parenting.
Description from code:
Originally was needed to support image sequences with different image dimensions,
which might be useful for such things as reconstruction of unordered image sequence,
or painting/rotoscoping of non-equal-sized images, but this ended up in unneeded
cache lookups and even unwanted non-proxied files loading when doing mask parenting,
so let's disable this for now and assume image sequence consists of images with equal sizes
for animations
Pipeline options such as Use Compositing and Use Sequencer cannot be animated
due to the way that they are implemented now, so adding these to the list of
render properties that we cannot animate.
Issue was caused by do_versions being used pdata as reference for active/render/
stencil/clone layer indices instead of fdata.
Added some utility functions used only by do_versions to be sure this indices
are set from fdata for pre-bmesh files.
- dupli-group armatures with pose bone objects set would draw with uninitialized color
- also fix old bug - armature were over-riding the constcolor option - so drawing dupli-groups for eg - would ignore the DRAW_CONSTCOLOR flag.
In the file included with the bugreport, framerates were dropping from 60fps to
11fps for an armature with several lattices parented, and a 5fps drop everytime
an object was parented to the armature.
Upon (re-)inspection of the code, it became apparent that this was being caused
by a block of code that would recalculate the parent (perhaps recursively) as it
thought the parent state was for the wrong timestamp. However, the timestamps
this was using was never really updated (except for a single place, which set it
to a single fixed value to force recalculations to take place), which meant that
this branch was run all the time. AFACT, this is a remnant from some of the old
timeoffset stuff + pre-Depsgraph timestamping hacks that are no longer used/set.