Page 1 of 1

Choice of collision detection SDK

Posted: Mon Mar 19, 2007 1:58 pm
by serge3d
Hello,

I'm looking for a collision detection SDK to develop professional simulation applications (with MSVC++ 8).
Collision would be used for moving cars and pedestrians.
Physics is not my main concern, but it could be useful provided it does not impact neither performance nor memory usage.

I have found :
* OPCODE : lightweigh (no data copy), fast, but not very active
* ODE : well known (Delta3D, etc), but seems to be more physics oriented
* Bullet : I have just discover it, download 2.47 and cannot compile it (VC6) ...
* SOLID : commercial collision detection library

Can anyone tell me the advantages/drawbacks of all these SDKs ?
Thank's.

Posted: Mon Mar 19, 2007 7:31 pm
by Erwin Coumans
Before going into details, what is the compile error you get with latest Bullet 2.47 and VC6?

Bullet has convex polyhedral collision support, unlike OPCODE. Right now, ODE is using OPCODE, but it is planned to add Bullet to ODE too.

Solid isn't free for commercial use, and Bullet has similar features in my opinion. Still, I encourage you to do a comparison yourself.

Posted: Tue Mar 20, 2007 7:37 am
by serge3d
Thank's for your quick answer.

I have only unzipped and launch wksbullet workspace (is there any installation procedure ?) and got 2 errors :
1)
:\Downloads\Bullet\bullet-2.47\src\BulletCollision\BroadphaseCollision\../../LinearMath/btAlignedAllocator.h(45) : error C2535: '__thiscall btAlignedAllocator<Other,`template-parameter258'>::btAlignedAllocator<Other,`template-parameter258'>(const c
lass btAlignedAllocator<Other,`template-parameter258'> &)' : member function already defined or declared

2)
SIMD_FORCE_INLINE btVector3() {}
:\Downloads\Bullet\bullet-2.47\src\BulletCollision\CollisionDispatch\../NarrowPhaseCollision/../../LinearMath/btVector3.h(29) : fatal error C1600: unsupported data type

Posted: Wed Mar 21, 2007 2:50 am
by Erwin Coumans
Bullet 2.48 should work with Visual Studio 6. Can you please try and confirm?

Thanks,
Erwin

Posted: Wed Mar 21, 2007 7:55 am
by serge3d
Thank's, the 2.48 release seems to work much better with VC6.

I nonetheless got some compiling errors on 2 demos :
1):\Downloads\Bullet\bullet-2.48\Demos\EPAPenDepthDemo\PenetrationTestBullet.cpp(164) : error C2374: 'i' : redefinition; multiple initialization

2) Collada
.\..\Extras\COLLADA_DOM\include\1.4\dom/domGles_texcombiner_argumentRGB_type.h(138) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit
domProfile_CG.cpp
..\..\Extras\COLLADA_DOM\include\1.4\dom/domGl_pipeline_settings.h(11588) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit
daeAtomicType.cpp
D:\Downloads\Bullet\bullet-2.48\Extras\COLLADA_DOM\src\dae\daeAtomicType.cpp(122) : error C2664: 'sscanf' : cannot convert parameter 1 from '__int8 *' to 'const char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
(120 errors)

But I think it works good enough for testing purpose.