ODE + irrlicht.... good combination?

You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers.
No questions about C++ programming or topics which are answered in the tutorials!
cheesyPoof
Posts: 10
Joined: Mon Oct 10, 2005 4:38 am

ODE + irrlicht.... good combination?

Post by cheesyPoof »

has anyone worked with using a physics engine in irrlicht?

i was thinking of using ODE to handle properties of objects such as force, acceleration, velocity, displacement, collision response, etc...

thought i would check here first if anyone has experience/tips/warnings for using ODE+irrlicht.
thanks.
hybrid

Post by hybrid »

There are even tutorials on how to combine physics with Irrlicht. And thousands of threads where all this has been discussed before.
_Dum0nde
Posts: 24
Joined: Thu Mar 17, 2005 3:26 pm

Post by _Dum0nde »

Althought I have no experience with ODE, I believe going with Newton would be a better choice. There seem to have more documentation and projects using that combination (Arena of Honor being a very good example, implementing about every basic feature you could need).
Guest

Post by Guest »

Having worked with both, ODE and Newton, I second _Dum0nde's vote for Newton.

I foud Newton's API easier to use. In ODE collision detection and physics simulation are not tightly integrated. The user is responsible for adding the contacts to the simulation. Newton's approach is much friendlier here. Newton has more collision primitives available. It requires less synchonisation effort between physics and graphics (Thanks to transform callbacks) and it has better management of the physical properties of the bodies in the simulation (using its Material framework)

~Haffax
Guest

Post by Guest »

But im going to use ODE because in a Newton header i found that they define a static body as a body with infinit mass :shock:
Then it whould create an infinit gravity force!
pfo
Posts: 370
Joined: Mon Aug 29, 2005 10:54 pm
Location: http://web.utk.edu/~pfox1

Post by pfo »

Code: Select all

 	But im going to use ODE because in a Newton header i found that they define a static body as a body with infinit mass Shocked
Then it whould create an infinit gravity force!
I think you misunderstand. Bodies in Newton don't generate gravity, YOU generate gravity in Newton. Meaning you can choose to generate no gravity, and none of the static bodies will affect gravity. Static bodies cannot move, they are like terrain, or buildings, or anything that can't move bu can be collided with. Dynamic bodies can move, meaning if forces are applied to them; they move, and if they collide with bodies they react, unless the body is static, in which case the static body stays put.

I also vouch for Newton, it's kinda tricky of the start but after you get a few things working it really takes a lot of the overhead out of physics and puts more emphasis on design rather than implementation. More people using Irrlicht use Newton for physics than any other external physics library from what I've seen. I think in the end though, you will find that both ODE and Newton pretty much do the same thing, just a little differently. It does help though to have a code base (this forum) that you can reference for a particular API.
dhenton9000
Posts: 395
Joined: Fri Apr 08, 2005 8:46 pm

Post by dhenton9000 »

A static body in Newton has 0 mass, not infinite. It treats any object with mass of 0 as "out of the simulation", but not out of the collision detection.

I've got a complete FPS shooter demo in Newton/Irrlicht that covers Newton/Irrlicht integration. IMHO, the best advertisement for Newton there is.

http://www.s-fonline.com/webhosting/dhenton9000
The_Irrlicht_noob
Posts: 13
Joined: Wed Sep 28, 2005 5:15 pm
Location: sweden

Post by The_Irrlicht_noob »

I know what static/dynamic means.
It is just not right to define a static body as a body with infinite mass.
(Yes, maybe if we talk a physic engine that is not simulating as correct as it could [because of speed problems])

cheesyPoof: Read the ODE tutorial that is on this site, just click "Tutorials" on the left-side menu and scroll down a page and you got it.
That tutorial worked for me...
+ Thanx to the maker of that tutorial :)
cassini
Posts: 68
Joined: Thu May 12, 2005 2:40 pm

Post by cassini »

The_Irrlicht_noob wrote:I know what static/dynamic means.
It is just not right to define a static body as a body with infinite mass.
(Yes, maybe if we talk a physic engine that is not simulating as correct as it could [because of speed problems])
I believe you are all work up about a definition, It is not right or wrong it is only a way to say “this object is static” how would you do it then?
I believe it makes lots of sense to define a static body and one who mass is so large that it could be considered infinity in releation to any other body. So yes definition of static body, as one of infinite mass is correct in Newton.
And BTW Newton is the more correct and accurate engine too.
Guest

Post by Guest »

last time i worked with ode bodies with mass 0 (= infinite) were static there too!?
The_Irrlicht_noob
Posts: 13
Joined: Wed Sep 28, 2005 5:15 pm
Location: sweden

Post by The_Irrlicht_noob »

Static means it doesn't move.. Then there is no velocity (The body is not changing its position)

Force = Acceleration * Mass

Acceleration = Force / Mass

See?
(The acceleration is not defined for 0 Mass)

Acceleration' = Velocity

Velocity = sqr (StartPos^2 + TargetPos^2) / (Time taken to move)

(Same for the velocity)

But infinite is some number that you cannot even put in a computer (or anywhere) It is just infinte!

So a static body cannot have mass it can only be programmed.
elander
Posts: 193
Joined: Tue Oct 05, 2004 11:37 am

Post by elander »

cassini wrote:And BTW Newton is the more correct and accurate engine too.
To you have any information to back this up or this is just your personal preference ?
cassini
Posts: 68
Joined: Thu May 12, 2005 2:40 pm

Post by cassini »

The_Irrlicht_noob wrote: See?
(The acceleration is not defined for 0 Mass)

Acceleration' = Velocity

Velocity = sqr (StartPos^2 + TargetPos^2) / (Time taken to move)

(Same for the velocity)
But infinite is some number that you cannot even put in a computer (or anywhere) It is just infinte!
So a static body cannot have mass it can only be programmed.
I think you are a little obfuscated in philosophical and semantics definitions, you just say a body cannot have a zero mass, and that static bodies can only be programmed, could it be possible the Newton engine is using that fact to program static bodies. By just using the mass as a switch, if mass = 0, it means that body is static and is not then is dynamic.
elander wrote:To you have any information to back this up or this is just your personal preference ?
I guess you can say it is my personal preference I think the question asked for user experiences. Since I changed from ODE to Newton lot of things to make sense, I do not get explosion, my objects do not jitter as they use to do. So yes for me Newton is more accurate and correct.
Other people may have different opinion and for them ODE is the better engine, that is perfectly fine too.
Guest

Post by Guest »

ode is not robust, it misses some features and it's kind of dead. no real development since a long while. even its author admits its shortcomings.

if you insist on open source you could try www.continuousphysics.com. it's still a bit early in development but already more promising than ode.
The_Irrlicht_noob
Posts: 13
Joined: Wed Sep 28, 2005 5:15 pm
Location: sweden

Post by The_Irrlicht_noob »

"By just using the mass as a switch, if mass = 0"
Ok, but they do not define it in the Newton.h .. Now I had to give you all the source:
"note: can only be used with static bodies (bodies with infinite mass)"
In the Newton SDK in "Newton.h"
Now you see then?
Post Reply