Jason Posted November 11, 2008 Share Posted November 11, 2008 Here is 0.1 of the Bullet Physics Solver! Please try it out, those interested in it! For a complete state of the solver, see: BulletPhysicsRBDSolverDOP Summary: Current State as of this post - it supports triangles and primitive sphere as geometry inputs only. - it supports the basic forces. Pending Tasks - the basic framework for carrying Bullet Data on the objects to be able to swap the input geometry with stand-in primitives is there (see the "Bullet Data" section in the code) but there is no code to do that yet. the idea is to support boxes, spheres, capsules with either a manually places transform, or an auto-fit transform (bbox, oriented bbox) - i'd love it if someone could implement constraints. they scare me. enjoy, jason . SIM_SolverBullet_0.1.tar.gz Quote Link to comment Share on other sites More sharing options...
sibarrick Posted November 11, 2008 Share Posted November 11, 2008 Nice one. i don't really use physics but its very cool to see this stuff plugged into houdini. Quote Link to comment Share on other sites More sharing options...
Jason Posted November 12, 2008 Author Share Posted November 12, 2008 Nice one. i don't really use physics but its very cool to see this stuff plugged into houdini. Thanks:) Today I added primitive collider support, and object transforms along with shifted centre-of-mass support. It's all taking shape now. Quote Link to comment Share on other sites More sharing options...
Guest Guest Posted November 12, 2008 Share Posted November 12, 2008 I can only watch from the sidelines at the moment, but I think this is a great initiative. Good luck, Jason et al. !! Quote Link to comment Share on other sites More sharing options...
Mario Marengo Posted November 12, 2008 Share Posted November 12, 2008 I can only watch from the sidelines at the moment, but I think this is a great initiative.Good luck, Jason et al. !! Ooooops... I guess I should have logged in first.... Quote Link to comment Share on other sites More sharing options...
Jason Posted November 13, 2008 Author Share Posted November 13, 2008 Thanks Mario:) So here is 0.11 - which is a lot better, I think. The thing supports adding primitive shapes for the colliding shapes, as well as a flag to Autofit the primitive box or sphere to the incoming geometry. This should shorten the manual set-up time to organise these substitutions. The biggest outstanding issues are: - getting the Use Object Transform to work. The Bullet "CompoundShape" method confuses the hell out of me (for now) - but I'm sure I don't mind letting someone else handle that, perhaps? - The COM is thus at the origin of each object. A pain in the butt but its kinda OK. I'd really like to get the Use Object Transform to work and it should sort out both issues at once. Newer ideas for another day: - Use the Oriented Bounding Box to find the best bbox for the Autofit. This would have to make a prim of the right dimensions and then add the rest of the xform to the initial position. This could even be used to fit a Capsule shape by using the capsule shaft for the longest axis of the obbox. - Create some compound primitive shapes on the fly - like a three-box "pitton" shape. Boxes and Spheres are obvious when stacking stuff, but a slightly irregular shape might look a lot better for things like rock chunks. Also a simple Sphere filling algorithm might be nice too, possibly using level-sets to fill spheres. Cheers, Jason SIM_SolverBullet_0.11.tar.gz Quote Link to comment Share on other sites More sharing options...
edward Posted November 13, 2008 Share Posted November 13, 2008 - Use the Oriented Bounding Box to find the best bbox for the Autofit. If you're interested in doing this, and you have a primitive group of polygons, there's a GU_Detail::getOBBox() method you can use which returns you the OBB transform. eg. UT_Matrix4 obbxform; UT_Vector3 radii; float xmin, ymin, zmin, xmax, ymax, zmax; gdp->getOBBox(primgroup, obbxform, radii); xmin = -radii[0]; ymin = -radii[1]; zmin = -radii[2]; xmax = +radii[0]; ymax = +radii[1]; zmax = +radii[2]; Quote Link to comment Share on other sites More sharing options...
Jason Posted November 13, 2008 Author Share Posted November 13, 2008 If you're interested in doing this, and you have a primitive group of polygons, there's a GU_Detail::getOBBox() method you can use which returns you the OBB transform. eg. UT_Matrix4 obbxform; UT_Vector3 radii; float xmin, ymin, zmin, xmax, ymax, zmax; gdp->getOBBox(primgroup, obbxform, radii); xmin = -radii[0]; ymin = -radii[1]; zmin = -radii[2]; xmax = +radii[0]; ymax = +radii[1]; zmax = +radii[2]; Thanks for the pointer, Edward I was wondering how to use that. However, I think I'm going to give the project a little break as I have other things to do for a little while. Quote Link to comment Share on other sites More sharing options...
symek Posted November 13, 2008 Share Posted November 13, 2008 (edited) This is great project, Jason. Thank you! skk. Edited November 13, 2008 by SYmek Quote Link to comment Share on other sites More sharing options...
nafees Posted November 13, 2008 Share Posted November 13, 2008 Careful with getOBBox() though. It will produce bad results for objects with symmetries. Like a cube. -n If you're interested in doing this, and you have a primitive group of polygons, there's a GU_Detail::getOBBox() method you can use which returns you the OBB transform. eg. UT_Matrix4 obbxform; UT_Vector3 radii; float xmin, ymin, zmin, xmax, ymax, zmax; gdp->getOBBox(primgroup, obbxform, radii); xmin = -radii[0]; ymin = -radii[1]; zmin = -radii[2]; xmax = +radii[0]; ymax = +radii[1]; zmax = +radii[2]; Quote Link to comment Share on other sites More sharing options...
ykcosmo Posted December 20, 2008 Share Posted December 20, 2008 You amazed me...........Jason.... Quote Link to comment Share on other sites More sharing options...
holofernes Posted February 11, 2009 Share Posted February 11, 2009 Hi! I'm trying to compile the Bullet Physics RBD Solver DOP without any good results... I keep getting this error message: root@mont-workstudy-rh:~/Desktop/SIM_SolverBullet-0.11/src# ./compile_example.sh Making debug versionInstall directory = '.'Linking with 'libBulletDynamics'Linking with 'libBulletCollision'Linking with 'libLinearMath'Making SIM_SolverBullet.o and ./SIM_SolverBullet.so from SIM_SolverBullet.cppIn file included from SIM_SolverBullet.cpp:9:../../bullet-current/src/BulletCollision/Gimpact/btGImpactShape.h: In copy constructor Quote Link to comment Share on other sites More sharing options...
Jason Posted February 11, 2009 Author Share Posted February 11, 2009 I'll try this out today:) I just tried to build the bullet libraries of version 2.74beta and they wouldn't build on my system. I'm going to try again with 2.73sp1. Hang tight. Quote Link to comment Share on other sites More sharing options...
ykcosmo Posted February 11, 2009 Share Posted February 11, 2009 I am waiting for your news jason:) Quote Link to comment Share on other sites More sharing options...
holofernes Posted February 11, 2009 Share Posted February 11, 2009 I've only tried with 2.73sp1. But I'm not sure if the error happens before or after it tries to do anything with the libraries. I even tried deleting the 'libBulletDynamics.a', 'libBulletCollision.a', and 'libLinearMath.a' files and I still got the same error. Quote Link to comment Share on other sites More sharing options...
Jason Posted February 11, 2009 Author Share Posted February 11, 2009 Yeah, I'm getting odd and unexpected errors with 2.73sp1 and 2.74 now Some complaint about the libraries and such. The old bullet-2.73-alpha-trunk-r1444 seemed to work for me before, just none of the new ones. I'll keep hacking at it. ..../src/BulletDynamics//libBulletDynamics.a(btSequentialImpulseConstraintSolver.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC../../bullet-current/src/BulletDynamics//libBulletDynamics.a: could not read symbols: Bad value Quote Link to comment Share on other sites More sharing options...
Guest xionmark Posted February 12, 2009 Share Posted February 12, 2009 Hey there Jason, Just saw this thread. Cool!!! Good work man! Looking forward to using it, I'll check it out pronto. Thanks man!!! Mark Quote Link to comment Share on other sites More sharing options...
Infernalspawn Posted April 6, 2009 Share Posted April 6, 2009 (edited) @Holofernes: replace the "abs(...)" function calls in the lines where it errors with fabs(....) and compile again! cheers Infernal Edited April 8, 2009 by Infernalspawn Quote Link to comment Share on other sites More sharing options...
kamy311 Posted June 16, 2009 Share Posted June 16, 2009 I want to start working with the Bullet plug-in for Houdini but I'm having a problem with the MSVCDir variable that you create just to get the HDK working. I'm working on a window 32 bit where I set the variable to C:/Program Files/Microsoft Visual Studio 8/VC and I can run hcustom in the command line with an error that I'm missing files. Based on the site http://odforce.net/wiki/index.php/HDKFrequ...yAskedQuestions Setting up the variable I have to added three other paths "c:/vstudio8/VC/bin";"c:/vstudio8/Common7/Tools/bin";"c:/vstudio8/Common7/IDE" when I do this hcustom say that variable is set but doesn't point to a valid directory. I've tried with "" without "" with \ with /. If anyone could help me out I would be great full. Thanks Quote Link to comment Share on other sites More sharing options...
edward Posted June 17, 2009 Share Posted June 17, 2009 c:/vstudio8/VC was just an example. You need to substitute that with the actual value of MSVCDir that you are using. I'm also pretty sure that your MSVCDir CANNOT have spaces. Use the 8.3 form of the directory (eg. such as what dir /x gives you). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.