Page 1 of 1

Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max plugin

Posted: Wed Sep 22, 2010 11:37 pm
by bullet_team
You can download the Bullet 2.77 from the usual place at http://code.google.com/p/bullet/downloads/list (based on svn revision 2218)

The main new feature is the OpenCL and DirectCompute hardware accelerated cloth simulation.
Thanks to Lee Howes from AMD for this contribution and thanks to NVIDIA for a Fermi GTX 470 GPU for compatibility testing!

We have done a lot of work to streamline OpenCL development for various platforms. We can debug OpenCL kernels using MiniCL, a simplified OpenCL replacement that compiles kernels using the regular C/C++ compiler. The demos can be compiled using OpenCL 1.0 and 1.1 using the most recent AMD and NVIDIA OpenCL SDKs for Windows and Linux as well as Mac OSX. A lot of work went into tweaking the CMakeLists.txt for the cmake build system so it works nicely with various OpenCL SDKs cross-platform. We also used a modified version of CMake to generate Visual Studio project files that we distribute, using relative paths and environment variables etc. The OpenCL kernels are embedded in the executable by default, but they can also be loaded from disk.

There is also a DirectCompute cloth implementation for Microsoft DirectX11. You can see Lee Howes presentation at MSDN here: http://channel9.msdn.com/Blogs/gclassy/ ... ed-Physics

  • OpenCL & DX11 cloth simulation as part of BulletSoftBody. See Bullet/Demos/OpenCLClothDemo and Bullet/Demos/DX11ClothDemo. This is an initial implementation, and there is no support for collision detection or other advanced features yet.
  • New btParallelConstraintSolver as part of BulletMultiThreaded. Although mainly targetting PlayStation 3 SPUs it also accelerates multi-core PCs. See Bullet/Demos/MultiThreadedDemo or get the spubullet-2.77 from PS3 Devnet.
  • Many more bug fixes and minor features.
Check out the precompiled Windows executables in the download section.

Some related news:
  • We forked the 3ds Max plugin, replacing PhysX by Bullet. It is open source under the MIT license and it supports .bullet export. See http://dynamica.googlecode.com for source and precompiled versions.
  • OgreKit is a new open source framework that makes very easy to develop using Bullet, Ogre, OpenAL and Lua. It directly reads Blender .blend files and works on Windows, Linux, Mac OSX and iPhone/iPad. See http://gamekit.googlecode.com
  • Cinema 4D release 12 has improved support for Bullet, including constraints and their improved soft body implementation. Cinema 4D 12 also supports .bullet export. Download a free trial demo here: http://www.maxon.net
Feedback is welcome,
Erwin

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Fri Sep 24, 2010 7:34 am
by ca$per
Very-very-very nice additions!! Downloading now!

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Fri Sep 24, 2010 8:09 am
by ca$per
A few questions after i made some tests with prebuilt binaries.
1. Should i press something or do something for particles demo to actually show particles? It's just i see only profiling info and a wrireframe cube. No particles inside, but FPS is low (checked with FRAPS) and it seems that they are computed but not drawn.
2. Are rigid bodies collisions accelerated throught OpenCL? Or it's just cloth simulation?

Forgot to mentions, that i was testing on Win7_x86, ATI 4850 with Catalyst 10.9 and Stream SDK 2.2.

PS. OGRE demo hangs after about a half a minute of game play.

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Sat Sep 25, 2010 6:03 am
by ca$per
Erwin? Could you please comment any of these?

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Sat Sep 25, 2010 10:58 am
by peterk
The OpenCL cloth demo doesn't work for me on a Mac (Nvidia 330M), the flags are displayed but nothing happens. The MiniCL version works fine.

Particles Demo seems to work ok though.

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Mon Sep 27, 2010 3:31 pm
by LeeHowes
ca$per wrote: 2. Are rigid bodies collisions accelerated throught OpenCL? Or it's just cloth simulation?
No. This is just very early work that we wanted to get into the tree quickly for various reasons and to see what changes we'd need to make within the bullet code to cleanly integrate accelerated computation engines. The DirectCompute version has progressed further with more optimisation of data access patterns to play with how to perform the solutions efficiently on a multithreaded wide SIMD machine. The optimisations in the DC version can be carried across to CL with minimal effort but I've not had time to test it yet.

I do have a GPU-emulation version of one-way capsule collision now that integrates into the Bullet broadphase. This will map across to actual GPU compute kernels very simply but again, just like the GPU I'm multitasking on this. Expanding it to other colliders is not a serious complication but doing two-way collisions efficiently will still need some more thought.

I can't comment on issues with the particle sim or Apple problems. I have seen an early version of this run on a mac, though, Erwin and my colleague had it running some time ago. It's possible that something changed or the changes to the build system broke something.

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Wed Nov 10, 2010 10:06 pm
by stnal
Hi there,

I am new to bullet, I'm using it via the ogre bullet wrapper.
My code compiles against bullet 2.76 and I was wondering if I can use the 3ds max plugin with it?

Thanks!

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Tue Feb 15, 2011 1:25 am
by Luffiy
Glad to hear about the 3ds max plugin, but will there be a 64 bit version?

Re: Bullet 2.77 is released! OpenCL & DX11 cloth, 3ds Max pl

Posted: Sun Mar 06, 2011 10:00 am
by Funto
Very very nice release, thanks :)

I got some minor compiling errors though : on 32 bits Linux, I had to add "#include <stdio.h>" to Demos/OpenCLClothDemo/cloth.h" for sprintf to be defined and I had to add linking to the pthread library in Demos/MultiThreadedDemo/CMakeLists.txt and Demos/ThreadingDemo/CMakeLists.txt

Code: Select all

LINK_LIBRARIES(

OpenGLSupport   BulletMultiThreaded BulletDynamics  BulletCollision LinearMath    ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} pthread

)