[Bf-blender-cvs] [6fe5b3b] master: Fix T37673: Ray casting could fail with 0 collision margins

Sergej Reich noreply at git.blender.org
Tue Jan 28 08:31:41 CET 2014


Commit: 6fe5b3be38af229640d1926bd908361d5e7a2b15
Author: Sergej Reich
Date:   Tue Jan 28 08:26:51 2014 +0100
https://developer.blender.org/rB6fe5b3be38af229640d1926bd908361d5e7a2b15

Fix T37673: Ray casting could fail with 0 collision margins

Use bullet's old method of doing ray casts to stay compatible with old
files. It's faster but a bit less accurate.

===================================================================

M	source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp

===================================================================

diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index cddc12c..b6a46b4 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -31,6 +31,7 @@ subject to the following restrictions:
 #include "BulletSoftBody/btSoftRigidDynamicsWorld.h"
 #include "BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h"
 #include "BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h"
+#include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.h"
 
 //profiling/timings
 #include "LinearMath/btQuickprof.h"
@@ -1131,6 +1132,8 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::RayTest(PHY_IRayCastFilterCallbac
 
 	// don't collision with sensor object
 	rayCallback.m_collisionFilterMask = CcdConstructionInfo::AllFilter ^ CcdConstructionInfo::SensorFilter;
+	// use faster (less accurate) ray callback, works better with 0 collision margins
+	rayCallback.m_flags |= btTriangleRaycastCallback::kF_UseSubSimplexConvexCastRaytest;
 	//, ,filterCallback.m_faceNormal);
 
 	m_dynamicsWorld->rayTest(rayFrom,rayTo,rayCallback);




More information about the Bf-blender-cvs mailing list