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. |
Revision 8ecb39a by Antonis Ryakiotakis (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths, terrible_consequencer, testbuild) 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. |
Revision ff66e9f by Antonis Ryakiotakis (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths, terrible_consequencer, testbuild) 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. |
Revision 4af1346 by Antonis Ryakiotakis (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths, terrible_consequencer, testbuild) 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 ... |
|