April 9, 2015, 07:03 (GMT) |
Nominal support for UVs and Vcols with cached strand data. These are dummy values currently. The UV and vcol values will be stored in strands directly, unlike particles which evaluate them every time; this is a much safer and more efficient approach that makes strand data truely independent from the "emitter" mesh. Such data will be made available later, primarily for child curves. |
April 8, 2015, 20:36 (GMT) |
Merge branch 'alembic' into gooseberry |
April 8, 2015, 20:35 (GMT) |
Fix for object matrix sampling with the default 1-second rate. |
April 8, 2015, 20:03 (GMT) |
Merge branch 'alembic' into gooseberry Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp |
April 8, 2015, 18:02 (GMT) |
Applying the inverse object transform for strand data is not necessary. Particle pathcache data is in world space, but strands are stored in object space already. |
April 8, 2015, 17:19 (GMT) |
Basic cache overrides for strand render data in Cycles. Still buggy, but the basic workflow is there: When a cache library is used in conjunction with a group duplicator and it has strands that match the particle systems, Cycles will use the new Strands structure to construct its internal curves. |
April 8, 2015, 16:49 (GMT) |
DNA file for strands types. This is not strictly needed because the strands data is only created at runtime at this point. However, it might be useful to later include this in blend files. Also the C++ RNA API has a bug that makes non-DNA collection properties difficult (the length function is not implemented properly). |
April 8, 2015, 15:21 (GMT) |
Merge branch 'master' into gooseberry |
April 8, 2015, 14:32 (GMT) |
Merge branch 'wiggly-widgets' into gooseberry Conflicts: source/blender/blenloader/intern/versioning_270.c source/blender/editors/include/ED_transform.h source/blender/windowmanager/intern/wm_operators.c |
April 8, 2015, 14:27 (GMT) |
Merge branch 'master' into gooseberry |
April 8, 2015, 11:45 (GMT) |
Yet another writer class for storing child strand data generated by particles. This is currently the same as the ParticlePathcache writer class, but will be modified somewhat later to store additional information such as parent weights. The purpose of this cache object is not to populate the particle child caches, but to store renderable data associated to dupli cache strands. |
April 8, 2015, 11:43 (GMT) |
Child strands structure for storing renderable child hairs efficiently. This is a separate struct to avoid storing unnecessary data (this means a bit of code duplication for iterators). The child strands can be used as the actual render data, while the parent strands usually would be used only for simulation/deformation purposes. |
April 8, 2015, 10:50 (GMT) |
Merge branch 'master' into gooseberry |
April 8, 2015, 09:44 (GMT) |
Bending forces in strand hair simulation. |
April 7, 2015, 17:16 (GMT) |
Store root orientation matrix in strand curves as well as caches. This matrix is needed to create a stable and smooth coordinate system along the strands, for things such as bending forces and child hair deformation. The base matrix is defined on the "scalp" mesh and should be stable wrt. deformation and animation of the mesh. For any point on the strand a matrix is then calculated using parallel transport, i.e. by rotating the base matrix successively along each curve corner. |
April 7, 2015, 16:17 (GMT) |
Yet another iterator for looping over strands, this time for triples of consecutive vertices ("bends"). This will be useful for calculating bending forces, without making basic iteration a big headache. |
April 7, 2015, 16:12 (GMT) |
Nicer iterator for looping over strand edges directly. Avoids the ugly construct with vertex iterators that have to drag an extra 'prev' iterator along. |
April 7, 2015, 15:45 (GMT) |
Use the dupli object's obmat for world space simulation. The overall world space matrix for dupli sims has to be the combined obmat of the cached object as well as the duplicator for the dupligroup instance. The cached strand data is generally in object space, so the matrix has to be applied to get all the forces and interactions right. |
April 7, 2015, 15:22 (GMT) |
World transform for simulation of caches. This compensates the transformation of the dupli instance being cached, so that forces such as gravity are in the correct reference frame. Note that this does not yet generate fictitious forces resulting from a moving and/or accelerated frame of reference. For this we would also have to calculate linear/angular velocity and acceleration of the dupli object. |
April 7, 2015, 14:37 (GMT) |
Make sure the frame values for cache modifier evaluation are initialized correctly. Also skip empty frames in hair simulation (this includes the first frame). |
|