Hi, so I'm coming from a modest background with using bulletphysics in blender, but I want to go deeper.
I know this is vague, but what should I know in order to use bulletphysics to its full potential? I barely know how to build libraries, and after downloading the gzipped tar archive I can't even figure out how to run the demos (I have very little knowledge of C, the only "programming" I've done is a bit of python scripting in blender). So I'm thinking I should do some serious research before jumping in and asking a bunch of dumb questions on these forums!
I'm assuming I need to know:
-C programming (C++?)
-Basic terminal/bash commands (I'm on a mac, osx)
-Xcode (which I'm guessing will serve just as an environment to do C++)
-Compilers
What else would you add to the list? And where would be the best place to learn it? Recommend any books? Tutorials?
Thanks in advance, hope I'm not out of place!
Complete Newbie
-
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
Re: Complete Newbie
If you want to learn about game physics in general, have a look at those links:
http://brm.io/game-physics-for-beginners and http://allenchou.net/game-physics-series
If you want to learn about Bullet in particular, try to compile the demos and learn from them,
read the PDF manual or purchase this basic introduction book:
Learning Game Physics using Bullet and OpenGL:
http://www.amazon.com/Learning-Game-Phy ... ap_title_0
Good luck!
Erwin
http://brm.io/game-physics-for-beginners and http://allenchou.net/game-physics-series
If you want to learn about Bullet in particular, try to compile the demos and learn from them,
read the PDF manual or purchase this basic introduction book:
Learning Game Physics using Bullet and OpenGL:
http://www.amazon.com/Learning-Game-Phy ... ap_title_0
Good luck!
Erwin
-
- Posts: 4
- Joined: Sat May 17, 2014 7:16 pm
Re: Complete Newbie
Thanks so much!
Cheers
Cheers
-
- Posts: 4
- Joined: Sat May 17, 2014 7:16 pm
Re: Complete Newbie
So I've written a few simple C++ programs, gotten GCC to compile them, and then tried to compile the bulletphysics demos... but I'm having trouble.
I'm using the command in terminal:
with some includes (because it's not finding a LOT of the header files)
... but I'm still getting errors
(eg I try to compile BasicDemo.cpp and get the following):
What am I doing wrong/ what is going on?
Thanks!
I'm using the command in terminal:
Code: Select all
g++ demofile.cpp
Code: Select all
-I/path
(eg I try to compile BasicDemo.cpp and get the following):
Code: Select all
Undefined symbols for architecture x86_64:
"btAlignedFreeInternal(void*)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
BasicDemo::~BasicDemo() in basicdemo-ef2452.o
btTypedConstraint::~btTypedConstraint() in basicdemo-ef2452.o
btAlignedAllocator<btCollisionShape*, 16u>::deallocate(btCollisionShape**) in basicdemo-ef2452.o
btAlignedAllocator<int, 16u>::deallocate(int*) in basicdemo-ef2452.o
btAlignedAllocator<btTriangleInfo, 16u>::deallocate(btTriangleInfo*) in basicdemo-ef2452.o
btAlignedAllocator<btHashInt, 16u>::deallocate(btHashInt*) in basicdemo-ef2452.o
...
"btAlignedAllocInternal(unsigned long, int)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
btAlignedAllocator<btCollisionShape*, 16u>::allocate(int, btCollisionShape* const**) in basicdemo-ef2452.o
"btBoxShape::btBoxShape(btVector3 const&)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"btRigidBody::btRigidBody(btRigidBody::btRigidBodyConstructionInfo const&)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"GLDebugDrawer::GLDebugDrawer()", referenced from:
___cxx_global_var_init in basicdemo-ef2452.o
"GLDebugDrawer::~GLDebugDrawer()", referenced from:
___cxx_global_var_init in basicdemo-ef2452.o
"DemoApplication::pickObject(btVector3 const&, btCollisionObject const*)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::updateCamera()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::mouseMotionFunc(int, int)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::keyboardCallback(unsigned char, int, int)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::setShootBoxShape()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::setCameraDistance(float)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"DemoApplication::removePickingConstraint()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::myinit()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::reshape(int, int)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::renderme()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::shootBox(btVector3 const&)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::mouseFunc(int, int, int, int)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"DemoApplication::~DemoApplication()", referenced from:
GlutDemoApplication::~GlutDemoApplication() in basicdemo-ef2452.o
"btDbvtBroadphase::btDbvtBroadphase(btOverlappingPairCache*)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"GlutDemoApplication::swapBuffers()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"GlutDemoApplication::specialKeyboard(int, int, int)", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"GlutDemoApplication::updateModifierKeys()", referenced from:
vtable for BasicDemo in basicdemo-ef2452.o
"btCollisionDispatcher::btCollisionDispatcher(btCollisionConfiguration*)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btDispatcher*, btBroadphaseInterface*, btConstraintSolver*, btCollisionConfiguration*)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"btDefaultCollisionConfiguration::btDefaultCollisionConfiguration(btDefaultCollisionConstructionInfo const&)", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver()", referenced from:
BasicDemo::initPhysics() in basicdemo-ef2452.o
"btClock::getTimeMicroseconds()", referenced from:
DemoApplication::getDeltaTimeMicroseconds() in basicdemo-ef2452.o
"btClock::reset()", referenced from:
DemoApplication::getDeltaTimeMicroseconds() in basicdemo-ef2452.o
"btTypedConstraint::serialize(void*, btSerializer*) const", referenced from:
vtable for btTypedConstraint in basicdemo-ef2452.o
"typeinfo for GlutDemoApplication", referenced from:
typeinfo for BasicDemo in basicdemo-ef2452.o
"_glClear", referenced from:
BasicDemo::clientMoveAndDisplay() in basicdemo-ef2452.o
BasicDemo::displayCallback() in basicdemo-ef2452.o
"_glFlush", referenced from:
BasicDemo::clientMoveAndDisplay() in basicdemo-ef2452.o
BasicDemo::displayCallback() in basicdemo-ef2452.o
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Thanks!
-
- Posts: 463
- Joined: Fri Nov 30, 2012 4:50 am
Re: Complete Newbie
Sounds like you haven't set up the linking. I suggest going to your IDE's help page for that.infermachine wrote: What am I doing wrong/ what is going on?
Thanks!
-
- Posts: 4
- Joined: Sat May 17, 2014 7:16 pm
Re: Complete Newbie
Ok I've set up the linking in Xcode according to the info here:
http://www.bulletphysics.org/mediawiki- ... sing_XCode
Thanks!
http://www.bulletphysics.org/mediawiki- ... sing_XCode
Thanks!
-
- Posts: 48
- Joined: Thu Dec 12, 2013 4:04 pm
Re: Complete Newbie
Definitely check out the demos and manual as stated above. You might also want to check out these videos. They can be a bit difficult to understand at times, but I found them useful for learning some basics of Bullet.
https://www.youtube.com/watch?v=wbu5MdsFYko
https://www.youtube.com/watch?v=wbu5MdsFYko
-
- Posts: 8
- Joined: Sat Jan 05, 2013 11:13 am
Re: Complete Newbie
I am programming in Xcode.
To build Bullet you should use CMake. This is an application which will generate Xcode projects for the Bullet library and you will be able to build them with native compilers without any setup, all inside Xcode, not in terminal.
To build Bullet you should use CMake. This is an application which will generate Xcode projects for the Bullet library and you will be able to build them with native compilers without any setup, all inside Xcode, not in terminal.