Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Open source Bullet Physics SDK release information
Post Reply
User avatar
Erwin Coumans
Site Admin
Posts: 4141
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by Erwin Coumans » Fri Sep 05, 2008 6:57 am

Bullet 2.71 has been released, revision number r1276:

http://code.google.com/p/bullet/downloads/list

Apart from numerous bug fixes, this is new:
  • Walt Disney Studios contributes their in-house Dynamica Maya Plugin for Bullet physics simulation.
    Thanks to Nicola Candussi and Arthur Shek
  • Several bug fixes and contributions related to inertia tensor, memory leaks etc.
    Thanks to Ole K and several other contributors.
  • Added btCudaBroadphase in Extras/CUDA: some preliminary research into accelerating Bullet using CUDA.
    Thanks to the particle demo from the NVidia CUDA SDK.
  • Updated CDTestFramework, with latest version of OPCODE Array SAP. See Extras/CDTestFramework
    Thanks to Pierre Terdiman for the update
  • ForkLiftDemo has been finished, finally!
  • Improved performance for btDbvtBroadphase.
    Thanks to Nathanael Presson again, for all his work.
Movies for usage of the Maya Plugin are here:
bolt_advert.jpg
bolt_advert.jpg (30.19 KiB) Viewed 36907 times
bolt_peanuts_small.jpg
bolt_peanuts_small.jpg (25.47 KiB) Viewed 36933 times


Feedback is welcome as usual, Enjoy!
Erwin

reltham
Posts: 66
Joined: Fri Oct 12, 2007 6:28 pm
Location: San Diego

Re: Bullet 2.71 RC1: Maya Plugin, CUDA broadphase experiments

Post by reltham » Sat Sep 06, 2008 5:02 am

Are we still going to get BVH sharing in 2.71?

DevO
Posts: 95
Joined: Fri Mar 31, 2006 7:13 pm

Re: Bullet 2.71 RC1: Maya Plugin, CUDA broadphase experiments

Post by DevO » Sat Sep 06, 2008 3:46 pm

All this is very interesting additions.
Especially CUDA stuff.

Unfortunately I can not Compile it for 64-bit using Visual Studio 2008.
btDbvt.h is using inline assembler with is not supported on 64-bit compiler.
Of course the problem are easily solved by proper defines.

The question is now does WIN32 mean Windows only 32-bit or 64-bit too?
There is no WIN64 defines in Bullet at all.

What is about 64-bit support on Mac OS X 10.5?

Can we please have some clear defines convention to resolver this problem?

thanks,
DevO

User avatar
Erwin Coumans
Site Admin
Posts: 4141
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Bullet 2.71 RC1: Maya Plugin, CUDA broadphase experiments

Post by Erwin Coumans » Sat Sep 06, 2008 4:54 pm

Are we still going to get BVH sharing in 2.71?
No, it is postponed for a future release. There was too much other work, GDC Austin preparation, contributions and bug fixes. It should be possible to create a wrapper class for btBvhTriangleMeshShape (call it btScaledBvhTriangleMeshShape), and collision algorithm that performs the reverse scaling on the convex objects (btScaledConcaveConvexCollisionAlgorithm).
DevO wrote:All this is very interesting additions.
Especially CUDA stuff.

Unfortunately I can not Compile it for 64-bit using Visual Studio 2008.
btDbvt.h is using inline assembler with is not supported on 64-bit compiler.
Of course the problem are easily solved by proper defines.
What is about 64-bit support on Mac OS X 10.5?
Let's disable SSE by default. 64 bit builds should work fine on all platforms. Any idea how to check for 64bit Visual Studio compiler?

Thanks for the feedback,
Erwin

DevO
Posts: 95
Joined: Fri Mar 31, 2006 7:13 pm

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by DevO » Sat Sep 06, 2008 6:36 pm

One can use _WIN64 and _WIN32 to detect 64bit in Visual Studio compiler.
http://msdn.microsoft.com/en-us/library/aa489554.aspx

One question why using inline asm and not SSE intristics.
SSE intristics can be compiled on 64bit and on 32bit and GCC compilers support them too.

thanks for great library,
DevO

User avatar
Erwin Coumans
Site Admin
Posts: 4141
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Bullet 2.71 RC1: Maya Plugin, CUDA broadphase experiments

Post by Erwin Coumans » Sun Sep 07, 2008 5:08 am

Are we still going to get BVH sharing in 2.71?
Ok, check out the new btScaledBvhTriangleMeshShape: this btScaledBvhTriangleMeshShape allows to instance multiple differently scaled versions of an existing btBvhTriangleMeshShape. All those instances re-use the same btBvhTriangleMeshShape child shape (and its btOptimizedBvh). Note that the (shared) btBvhTriangleMeshShape can still have its own local scaling, independent from this btScaledBvhTriangleMeshShape 'localScaling'.

Code: Select all

btBvhTriangleMeshShape * trimeshShape=...;
btScaledBvhTriangleMeshShape* scaledTrimesh1 = new btScaledBvhTriangleMeshShape(trimeshShape,btVector3(1,1,0.1f));
btScaledBvhTriangleMeshShape* scaledTrimesh2 = new btScaledBvhTriangleMeshShape(trimeshShape,btVector3(0.3,2,0.1f));
Get latest Subversion, see http://code.google.com/p/bullet/source/detail?r=1277 , or attached patch for 2.71.
Hope this helps,
Erwin
Attachments
btScaledBvhTriangleMeshShape.zip
(5.89 KiB) Downloaded 1402 times

Nathanael
Posts: 78
Joined: Mon Nov 13, 2006 1:44 am

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by Nathanael » Sun Sep 07, 2008 9:30 am

DevO wrote: One question why using inline asm and not SSE intristics.
SSE intristics can be compiled on 64bit and on 32bit and GCC compilers support them too.
Can you try the lastest svn version of btDbvt.h/cpp , SSE has being re-enabled, it use intrinsics now.

Thanks,
Nathanael.

DevO
Posts: 95
Joined: Fri Mar 31, 2006 7:13 pm

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by DevO » Wed Sep 10, 2008 2:14 pm

Can you try the lastest svn version of btDbvt.h/cpp , SSE has being re-enabled, it use intrinsics now.

Thanks,
Nathanael.
Thanks now it compiles nicely on 64-bit system.
But why it should be 11% slower?

User avatar
Erwin Coumans
Site Admin
Posts: 4141
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by Erwin Coumans » Wed Sep 10, 2008 6:53 pm

red_oddity/Nicola,

Can you continue the discussion about the crash in Dynamica Maya Plugin here:
http://bulletphysics.com/Bullet/phpBB3/ ... 349#p10349

Thanks,
Erwin

Nathanael
Posts: 78
Joined: Mon Nov 13, 2006 1:44 am

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by Nathanael » Thu Sep 11, 2008 2:15 am

DevO wrote:But why it should be 11% slower?
Only one method is slower (btDbvtVolume::Select), when measured by the internal benchmark (btDbvt::benchmark).
It may be due to the way the compiler allocate registers in that case (the method is inlined), but its not big deal, and does not mean its actually slower in 'normal' use cases. And 11% slower is still 20% faster than the non-simd version.

Nathanael.

reltham
Posts: 66
Joined: Fri Oct 12, 2007 6:28 pm
Location: San Diego

Re: Bullet 2.71 released: Disney Maya Plugin, CUDA experiments

Post by reltham » Mon Sep 29, 2008 10:17 pm

Just wanted to report that I have been using btScaledBvhTriangleMeshShapes for a few days now and it appears to be working great! Thanks!

Our exported data size dropped almost in half thanks to the BVH sharing. We are using serialized BVH data to speed load times.

Thanks you!

Post Reply