Blender Git Commits

Blender Git "hair_system" branch commits.

Page: 31 / 35

August 6, 2014, 13:43 (GMT)
Macaroni debug code:

* Rotate the axis of tangent rotation by the half angle. Makes nice
transitions between segments.
* Make vertex buffer storage more precise (and less than before ;) )
August 6, 2014, 13:05 (GMT)
Attempt to solve some orientation issues
August 6, 2014, 12:42 (GMT)
Fix and nicer code structure for the smoothing algorithm.

This was requiring careful index checks outside the actual iterators and
was prone to causing invalid memory access. Now the iterators use
"walker" struct definitions witch handle the details of the data access.

Note that currently the bending springs are broken, this will be fixed
in a separate commit.
August 6, 2014, 12:34 (GMT)
Pasta visualization code for new hair system.

Allows custom subdivision and radius but currently it's hardcoded.
Interpolation of cylinder axis at points is done based on the half angle
between current and previous segment.
August 5, 2014, 15:49 (GMT)
Fix for bad memory access: interp_weights_face_v3 requires a full 4
float elements, even if one or more vectors are not used.
August 5, 2014, 14:59 (GMT)
Removed duplicate root drawing code, this is now in a separate debug
function.
August 5, 2014, 14:52 (GMT)
Added a rebuild function for "object components" (i.e. hair).

This ensures that rigid bodies get added back into the world when the
animation loops around and the rigid body world gets destroyed and
rebuilt.
August 5, 2014, 14:32 (GMT)
Fix cuddly strips shading and drawing issues. Also now there are no
issues on big zooms (they behave really cuddly)
August 5, 2014, 13:18 (GMT)
Avoid adding all the hair point rigid bodies to the CollisionWorld.

Instead we now use a single box-shaped collision object for the whole
hair system, and then do direct contact tests for the point objects
when there is a potential contact. This avoids O(n^2) issues when
inserting lots of collision objects into a DbvtBroadphase.

The points now have a radius property of their own as well.
August 5, 2014, 10:34 (GMT)
Cuddlification of strips complete. Still need to make corners shrink on big zoom
August 5, 2014, 07:30 (GMT)
Changed the hair ghost collision group to Default and set mask to 0 for
now.

This disables all hair-hair collisions, which would otherwise cause
massive performance drop due to exponential contact generation. Doing
proper hair-hair contact pruning is one of the main challenges further
down the line.
August 4, 2014, 20:47 (GMT)
Strip drawing : Remove handle square, triangle is enough indicator here.
Also add cuddly outline
August 4, 2014, 18:10 (GMT)
Added a couple of sanity checks to ensure the bullet world and rigid
body instances always exist when they are expected.
August 4, 2014, 16:36 (GMT)
Fix NULL access to the RigidBodyWorld.group pointer in various cases
which were previously filtered out by strict non-caching requirement.
August 4, 2014, 16:13 (GMT)
Make Bullet world stepping and rebuild less dependent on point cache.

This means the Bullet rigid body world will be created even when a baked
rigid body cache exists and stepping will also happen regardless of
baked or cached results being available.

The rationale is that the Bullet DynamicsWorld stepping may be used for
other systems as well (hair, later particles) which do not necessarily
use the same cache system. Rather than disabling stepping and collision
detection altogether the cached RigidBodies should rather be set to
kinematic, so that other un-cached participants can still use them for
collisions. This will also be an important prerequisite for later
layering of simulations with pre-cached or animated elements.
August 4, 2014, 15:46 (GMT)
Fix for diverging Release/Debug code.

Moved the ifdef inside the debugger functions now, so it's not so easy
to ignore changes in the function signatures.
August 4, 2014, 14:18 (GMT)
Transform contact points into object space for drawing and show both
points at the same time.
August 4, 2014, 13:57 (GMT)
Don't try to remove collision objects from the Bullet world when
deleting the hair solver.

This already happens when the scene datablock gets freed. The order of
datablock freeing is not very explicit, so this is an unsafe assumption,
but the current rigidbody API relies on it as well ...
August 4, 2014, 12:38 (GMT)
Simple hair contact point debugging using a ghost object per hair point.

The rbDynamicsWorld is now also exposed in the types header for the RBI
API, because currently we need direct access to some Bullet properties.

User pointers for collision objects now point to a generic
rbCollisionObject base class, so we don't run into trouble when
explicitly casting to rbRigidBody.

Points can not be copied explicitly any more, because it makes internal
point variables invalid that are hard to track. Bullet itself also does
not like direct copies of btRigidBody ...
August 4, 2014, 07:43 (GMT)
Create sphere collision shapes for the hair point ghost objects.

NOTE: Bullet sphere collision shapes are created directly in the hair
code atm, bypassing the RBI API! This should be resolved eventually,
using the API everywhere instead of directly accessing Bullet. The
problem is that collision shapes in Bullet are an abstract base class,
the actual types are subclasses, which are difficult to handle nicely
in a C API ...
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021