more physics work, tuning parameters, hooking up friction etc.

This commit is contained in:
Erwin Coumans 2005-07-30 18:10:53 +00:00
parent 9da7ec89ed
commit ed997ca8d2
13 changed files with 59 additions and 52 deletions

@ -390,6 +390,9 @@ ECHO Done
<File
RelativePath="..\LinearMath\GEN_random.h">
</File>
<File
RelativePath="..\LinearMath\IDebugDraw.h">
</File>
<File
RelativePath="..\LinearMath\SimdMatrix3x3.h">
</File>

@ -33,8 +33,8 @@ void BoxShape::GetAabb(const SimdTransform& t,SimdVector3& aabbMin,SimdVector3&
//todo: this is a quick fix, we need to enlarge the aabb dependent on several criteria
// SimdVector3 extra(1,1,1);
// extent += extra;
SimdVector3 extra(CONVEX_DISTANCE_MARGIN,CONVEX_DISTANCE_MARGIN,CONVEX_DISTANCE_MARGIN);
extent += extra;
aabbMin = center - extent;
aabbMax = center + extent;

@ -33,12 +33,15 @@ void ConvexShape::setLocalScaling(const SimdVector3& scaling)
void ConvexShape::GetAabbSlow(const SimdTransform& trans,SimdVector3&minAabb,SimdVector3&maxAabb) const
{
SimdScalar margin = 0.05f;
SimdScalar margin = GetMargin();
for (int i=0;i<3;i++)
{
SimdVector3 vec(0.f,0.f,0.f);
vec[i] = 1.f;
SimdVector3 tmp = trans(LocalGetSupportingVertex(vec*trans.getBasis()));
SimdVector3 sv = LocalGetSupportingVertex(vec*trans.getBasis());
SimdVector3 tmp = trans(sv);
maxAabb[i] = tmp[i]+margin;
vec[i] = -1.f;
tmp = trans(LocalGetSupportingVertex(vec*trans.getBasis()));

@ -13,12 +13,13 @@
#include "SimdQuaternion.h"
#include "StridingMeshInterface.h"
#include "AabbUtil2.h"
#include "NarrowPhaseCollision/CollisionMargin.h"
TriangleMeshShape::TriangleMeshShape(StridingMeshInterface* meshInterface)
: m_meshInterface(meshInterface),
m_collisionMargin(0.1f)
m_collisionMargin(CONVEX_DISTANCE_MARGIN)
{
}

@ -115,7 +115,7 @@ void BoxTriangleCallback::SetTimeStepAndCounters(float timeStep,int stepCount,fl
boxBody->GetCollisionShape()->GetAabb(boxInTriangleSpace,m_aabbMin,m_aabbMax);
float extraMargin = CONVEX_DISTANCE_MARGIN+0.1f;
float extraMargin = CONVEX_DISTANCE_MARGIN;//+0.1f;
SimdVector3 extra(extraMargin,extraMargin,extraMargin);
@ -133,7 +133,6 @@ void ConvexConcaveCollisionAlgorithm::ClearCache()
void ConvexConcaveCollisionAlgorithm::ProcessCollision (BroadphaseProxy* ,BroadphaseProxy* ,float timeStep,int stepCount,bool useContinuous)
{
if (m_concave.GetClientObjectType() == TRIANGLE_MESH_SHAPE_PROXYTYPE)
{

@ -163,7 +163,7 @@ void ToiContactDispatcher::SolveConstraints(float timeStep, int numIterations,in
info.m_numIterations = numIterations;
info.m_timeStep = timeStep;
info.m_tau = 0.4f;
info.m_restitution = 0.1f;//m_restitution;
info.m_restitution = 0.0f;//m_restitution;
m_solver->SolveGroup( &islandmanifold[0], islandmanifold.size(),info,debugDrawer );

@ -22,7 +22,7 @@ static SimdScalar ContactThreshold = -10.0f;
float useGlobalSettingContacts = false;//true;
SimdScalar contactDamping = 0.9f;
SimdScalar contactDamping = 0.2f;
SimdScalar contactTau = .02f;//0.02f;//*0.02f;

@ -150,7 +150,7 @@ void ContactJoint::GetInfo2(Info2 *info)
c2[1] = ccc2[1];
c2[2] = ccc2[2];
float friction = m_body0->getFriction() * m_body1->getFriction();
float friction = 20.f*m_body0->getFriction() * m_body1->getFriction();
// first friction direction
if (m_numRows >= 2)

@ -26,8 +26,8 @@ RigidBody::RigidBody( const MassProps& massProps,SimdScalar linearDamping,SimdSc
setMassProps(massProps.m_mass, massProps.m_inertiaLocal);
setDamping(linearDamping, angularDamping);
updateInertiaTensor();
m_worldTransform.setIdentity();
updateInertiaTensor();
}

@ -147,7 +147,7 @@ private:
SimdVector3 m_invInertiaLocal;
SimdVector3 m_totalForce;
SimdVector3 m_totalTorque;
SimdQuaternion m_orn1;
// SimdQuaternion m_orn1;
SimdVector3 m_linearVelocity;

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.0"
Version="7.10"
Name="Bullet3ContinuousCollision"
ProjectGUID="{FFD3C64A-30E2-4BC7-BC8F-51818C320400}"
SccProjectName=""
@ -39,22 +39,22 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\..\build\msvc_7\libs\extern\debug\Bullet.lib"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\debug\Bullet.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
ECHO Done
"/>
@ -105,22 +105,22 @@ ECHO Done
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\..\build\msvc_7\libs\extern\Bullet.lib"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\Bullet.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
ECHO Done
"/>
@ -176,15 +176,15 @@ ECHO Done
<Tool
Name="VCPostBuildEventTool"
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
ECHO Done
"/>
@ -242,18 +242,17 @@ ECHO Done
<Tool
Name="VCPostBuildEventTool"
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision MKDIR ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
XCOPY /Y ..\..\LinearMath\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include
XCOPY /Y ..\..\Bullet\BroadphaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\BroadphaseCollision
XCOPY /Y ..\..\Bullet\CollisionShapes\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\CollisionShapes
XCOPY /Y ..\..\Bullet\NarrowPhaseCollision\*.h ..\..\..\..\..\build\msvc_7\extern\bullet\include\NarrowPhaseCollision
ECHO Done
"/>
<Tool
Name="VCPreBuildEventTool"/>
@ -273,7 +272,8 @@ ECHO Done
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="NarrowPhaseCollision"

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.0"
Version="7.10"
Name="Bullet3Dynamics"
ProjectGUID="{3427A9EF-FF84-4B3E-9AE5-C37CF44D7DA4}"
Keyword="Win32Proj">
@ -241,7 +241,8 @@ ECHO Done
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="ConstraintSolver"