OgreBullet Physic Wrapper [Source + Binary Release.]

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4

OgreBullet Physic Wrapper [Source + Binary Release.]

Post by tuan kuranes »

Image

Bullet is an Opensource Next Gen Collision and Physic engine.

Bullet info here
http://www.continuousphysics.com/Bullet/phpBB2/
(continous detection, impulse based physics, etc...)

So here is a Ogre wrapper for it. primtives, trimesh and ray vehicle only for now.

Download Links :

Binary Demo installer
SDK installer
Source Only

Only vc8 + Eihort compatible.

Bullet Source with vc8 compatible with Ogre (dll thing)

Under win32 set a BULLET_HOME env var or change link and include project properties of vc8 projects.

Be sure to check :
Bullet Physics Contest: Most Incredible Device wins PS3/Wii


PS: For those waiting me on ogreaddons forum, I'll be back soon, but notice that cvs ogreaddons cequimeshviewer, plsm2, ogreode are all now Eihort compatible.
Last edited by tuan kuranes on Mon Mar 05, 2007 11:45 am, edited 1 time in total.
User avatar
Aladrin
Orc
Posts: 465
Joined: Fri Mar 10, 2006 10:22 pm

Post by Aladrin »

Hey, that looks really nice. If I had more time, I think I might even take a stab at the contest. I could only view the videos here, but when I get home I plan to take a look at the real demos.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

Just tried out the Demo Installer, not only it found my not-normal Eihort directory but made me a little jealous ;)

The floor came out quite bump mapped (not white in your screen shot) but the primitive meshes that appeared came out quite dark. Also may I ask, what GUI system is that? Is it CEGUI?

Although, Congratulations on a fantastic first release!

[Edit]

Just peaked through your media folder, it's BetaGUI! Well I never.
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm
x 12

Post by cybereality »

Cool man. I was looking at Bullet for a while, nice to see someone got it working in Ogre. Can you explain the pros/cons of using Bullet versus some of the other popular physics engines available such as ODE or Physx? Thanks.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 535

Post by Kojack »

It's open source (zlib license), cross platform, uses sweep tests (so fast moving objects should never pass through other objects) and had experimental gpu support.

I haven't actually used it yet, so no idea of any cons. :)
big_o
Goblin
Posts: 279
Joined: Sun Feb 19, 2006 1:08 am

Post by big_o »

How hard would it be to get it to work with C::B MingW? If its not too bad I might give porting it a try.
User avatar
Aladrin
Orc
Posts: 465
Joined: Fri Mar 10, 2006 10:22 pm

Post by Aladrin »

Hmm... I installed it, and it says:

The application failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem.

Reinstalling it didn't help. The application also has the 'no icon' icon that Windows uses.

Edit: I mean the default icon that looks like a blue and white window.
User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
x 3

Post by Praetor »

I have to say its features look nice. For some reason the fact that you have to install "drivers" and some sort of runtime for PhysX doesn't sit well with me. I might look at Bullet as a replacement for Newton as opposed to PhysX, just for that reason. I also like using open-source. Makes me feel warm and fuzzy inside.

Keep up the good work. It's great to have so many choices all set to work with Ogre!
martin.enge
Gnoblar
Posts: 20
Joined: Thu Feb 09, 2006 12:06 am

Post by martin.enge »

This is indeed good news! I knew you were up to something, bc I saw your posts on the Bullet forums, but I had almost lost hope... you made my weekend!

... (dangerously off-topic) what about plsm3?
User avatar
SpannerMan
Gold Sponsor
Gold Sponsor
Posts: 446
Joined: Fri May 02, 2003 10:05 am
Location: UK

Post by SpannerMan »

Praetor wrote:I have to say its features look nice. For some reason the fact that you have to install "drivers" and some sort of runtime for PhysX doesn't sit well with me.
I know EXACTLY what you mean.
What with PhysX's new very friendly licensing, we should all be falling into its warm bosom. But for some reason we dont, one main reason is what you just said - and the whole package doesnt feel right, can it be that corporate taint from its past haunting it :?: Which is a shame - betajaen kicks ass and no doubt his NXOgre wrapper does too.
Praetor wrote:I might look at Bullet as a replacement for Newton as opposed to PhysX, just for that reason. I also like using open-source. Makes me feel warm and fuzzy inside.
I, too, am currently torn between Bullet and Newton, and yeah the open-source aspect does seem to add that cherry on top. But am I correct in saying that Bullet is a relative newcomer, and therefore less tested in the 'real' world?

Good luck tuan, I hope your success matches and exceeds that as seen in your PLSM2.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 535

Post by Kojack »

Yeah, the driver thing with physx is REALLY annoying. If it was just for the hardware card, no problem, but requiring drivers and binaries to be installed just for the software lib to work (when it always worked fine on it's own in the past) sucks.
Especially since the system software installer needs admin permissions, which none of my students have. I have to go around and install the damn thing for them before their projects can run.

Sure, an installer could be set up for their projects which handles physx stuff too (like the current physx games do), but this isn't for deployment, this is for coding!

Otherwise, I like it.
User avatar
syedhs
Silver Sponsor
Silver Sponsor
Posts: 2703
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 51

Post by syedhs »

There is a feature request within PhsyX's forum discussion board to make a lighter version of redistributable driver setup. For me, the 'correct' size of the driver should be around 5MB (of course the smaller, the better), but should never exceed 10MB! Now the driver size is 30MB, which is probably bigger than your own games! :twisted:
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

Problem is with that driver behind so large is that it keeps every single firmware from 2.3.0 to 2.7.0, and there 19 of them. :?
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 535

Post by Kojack »

Yeah, 56MB of libs for previous versions. But only about 3.6MB of libs are actually needed for an individual physx based program.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

However in the thread that syedhs pointed out, you can roll your own un-official driver to only a meg or two. It would be nice if Ageia gave thumbs up about it, or even provided a utility to do so.
martin.enge
Gnoblar
Posts: 20
Joined: Thu Feb 09, 2006 12:06 am

Post by martin.enge »

But am I correct in saying that Bullet is a relative newcomer, and therefore less tested in the 'real' world?
This is true, Bullet is kindof new. On the other hand there is an incredible amount of development going on - and quite an active discussion about all aspects of implementation details. This is in stark contrast to Newton which seems to be not only closed-source but also the underlying algorithms are not open! Very annoying...
For me, the open and active community is a very important factor (combined with the open sources, of course).
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4

Post by tuan kuranes »

Pros : Bullet is very powerful, with state of the art physics paper implementations, and many choices possible (underlying engine choices.)
Colladas and Blender Compatible. Note that latest Blender uses Bullet and has a gui that lets us create physics. Work being done on bullet forums (search for echo plugins) that reads .blender file into Ogre...
Author is very active and very aware of game physics needs (work in game industry for a while.).
And you can win a PS3 or a Wii.

Cons: Lacks some joints compared to ODE, some sphere-vehicle demo, some clothes demo, isn't as fast as novodex/physX software implementations, but serveral optimizations is on the work. (SSE, GPU, algos...)


@Aladrin: do you have a VC2005 ? perhaps you need to install vcredist ?

@big_o: please rather give premake a try. make a premake scripts (check OgreAL, Ode, or cegui premake scripts for samples.)

@plsm3: don't worry, still under active works, even prevents me from active ogreaddons forum maintaining, But Bullet give me some fresh air. Shortly after Eihort release, a PLSM3 Beta is planned...

@betajaen: Installer source is nearly the same as ogreode one, just check in ogreaddons cvs for *.nsis files. and install nsis.
Btw, thanks for betagui, it saves me from too much gui work. (cegui changes are annoying for just demos...). Betagui1 (the one without dependencies) should really becomes an ogreaddon (so that it can evolves receiving patches). We then could add some gui widgets (slider, tree and combobox mainly.). That would really help fast demoing, protoryping. As Cegui is really too much for just those tiny goals (dependencies, complexity, maintaining, updating each version all code and filesetc...).
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

Ahh, excellent. I'll have a look at the NSIS later. I've always wanted to release an SDK version of NxOgre, now I can!

As for BetaGUI, I agree. But as long as it retains it's simplicity with only two files, .h and .cpp and no dependencies. I really love the effect system as well, and I have some ideas from the Prototype javascript library to work into it.
User avatar
Aladrin
Orc
Posts: 465
Joined: Fri Mar 10, 2006 10:22 pm

Post by Aladrin »

tuan kuranes wrote: @Aladrin: do you have a VC2005 ? perhaps you need to install vcredist ?
I actually have the whole Visual Studio 2005. I have the ogre sdk 1.4 rc1 for vc8 (vc 2005) and I have built it from source also, but I didn't set any environment variables for the source one. I just built it as a favor to someone.
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4

Post by tuan kuranes »

@betajaen: that's the exact Idea. As simple as possible. If it's too hard to maintain in a single file, we can go for a 2 step mode : A one class, one .h and .cpp, a lib, etc... Along with a script (python, perl, sed) that exports it finally as a single .h, .cpp to be used directly in projects.

@Aladrin: which OgreBullet version is it ? Demo, SDK, Zip ? VC2005 has the SP1 applied ?
User avatar
Aladrin
Orc
Posts: 465
Joined: Fri Mar 10, 2006 10:22 pm

Post by Aladrin »

I downloaded the OgreBullet Demo linked in the first post here. That's the one that won't work.

The HouseDemolition and Bullet2.30 demos work fine.

I thought I had the VS2005 SP1, but I don't see that on the about box, so I'm downloading it to be sure.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

tuan kuranes wrote:@betajaen: that's the exact Idea. As simple as possible. If it's too hard to maintain in a single file, we can go for a 2 step mode : A one class, one .h and .cpp, a lib, etc... Along with a script (python, perl, sed) that exports it finally as a single .h, .cpp to be used directly in projects.
That's a very clever idea there, however it should be completely optional. I'm also going to implement the NxOgre "params" class. I wouldn't mind some sort of CSS type system to specify types of rollovers, images to use,font styles,colours and so on.

Perhaps I can even get into further into textures and produce a 4-5 method class for functions to directly draw onto a texture to handle borders, alpha values and bitmap splatting.

Maybe a bit to much there but it's always worth a think.
User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
x 3

Post by CaseyB »

tuan kuranes wrote:@big_o: please rather give premake a try. make a premake scripts (check OgreAL, Ode, or cegui premake scripts for samples.)
Premake is a great project, but still far from perfect! I have made a few bug reports and the dev is pretty fast to respond. I haven't looked too much at it since I released OgreALv0.2, but it was very close then. Last might I tried getting OpenGui set up and it uses SCons and I really disliked the fact that it was dependent on Python because I didn't have Python installed so I needed to install that too and then it was still very unintuitive. Premake is simple to set up, simple to use and doesn't have any dependencies.
Image
Image
User avatar
Aladrin
Orc
Posts: 465
Joined: Fri Mar 10, 2006 10:22 pm

Post by Aladrin »

Okay, installing SP1 fixed that. Could have sworn I had it. Sorry ;)
rUmbl3
Halfling
Posts: 74
Joined: Wed Apr 12, 2006 4:38 pm
Location: Weinstadt / Germany

Post by rUmbl3 »

I hacked together a little premake script for linux but its missing a file:

Code: Select all

src/OgreBulletCollisionsConvexCast.cpp:4:44: error: OgreBulletCollisionsEmptyShape.h: No such file or directory
Haven't found a file with this name anywhere ...
could you please add it to the zip file?

I also got some errors (not to mention the thousands of "no new line at the end of the file" warnings). Some includes were not case-sensitive

Code: Select all

#include "OgreBulletDynamicsPreRequisites.h"
lines with a lower case R in PreRequisites and some member functions with extra qualification. For example

Code: Select all

include/OgreBulletDynamicsRigidBody.h:94: error: extra qualification 'OgreBulletDynamics::RigidBody::' on member 'getCenterOfMassPosition'
If i find more errors, i'll update this post.