Destructible Environments in Irrlicht
Destructible Environments in Irrlicht
Okay, so I've been doing some searching, and I can't seem to find a straight answer as to if Irrlicht has the ability to have destructive environments. I've seen mention of a few things leading to a yes, but no up-front obvious yes.
But I actually have two questions dealing with this.
First, obviously, is if it is do-able with Irrlicht's physics.
Second is how does this work (not asking for code, just a basic summary of how this could be done). Is it mesh warping? Or changing a single mesh into multiple meshes? Just how is it done?
(wasn't 100% on where to post this, but it sounded like a general newbie question dealing with the engine.)
But I actually have two questions dealing with this.
First, obviously, is if it is do-able with Irrlicht's physics.
Second is how does this work (not asking for code, just a basic summary of how this could be done). Is it mesh warping? Or changing a single mesh into multiple meshes? Just how is it done?
(wasn't 100% on where to post this, but it sounded like a general newbie question dealing with the engine.)
short run: it is possible, but not out-of-the-box, so you have to code it.
of course integration of an external physics engine is possible, there are several tutorials and examples. but i guess it still requires _some_ knowlegde and learning, haven't done it myself yet tho.
i would say there are essentially 3 ways i could think of to have destructible environments:
a) have the environment consist out of many small objects.
b) convert meshes to smaller sub-meshes in realtime.
c) alter meshes in realtime
for all of these, a physics engine might help a lot i guess,
but i think it still would require a fair amount of development.
i also remember something about a voxel engine which kinda achieved something like that, search the forum for "voxel"...
of course integration of an external physics engine is possible, there are several tutorials and examples. but i guess it still requires _some_ knowlegde and learning, haven't done it myself yet tho.
i would say there are essentially 3 ways i could think of to have destructible environments:
a) have the environment consist out of many small objects.
b) convert meshes to smaller sub-meshes in realtime.
c) alter meshes in realtime
for all of these, a physics engine might help a lot i guess,
but i think it still would require a fair amount of development.
i also remember something about a voxel engine which kinda achieved something like that, search the forum for "voxel"...
Yeah, I noticed that nvidia's PhysX would do the trick more than likely, while searching some more after the above post... I wasn't sure if irrlicht came with something similar or not.loki1985 wrote:short run: it is possible, but not out-of-the-box, so you have to code it.
of course integration of an external physics engine is possible, there are several tutorials and examples. but i guess it still requires _some_ knowlegde and learning, haven't done it myself yet tho.
i would say there are essentially 3 ways i could think of to have destructible environments:
a) have the environment consist out of many small objects.
b) convert meshes to smaller sub-meshes in realtime.
c) alter meshes in realtime
for all of these, a physics engine might help a lot i guess,
but i think it still would require a fair amount of development.
i also remember something about a voxel engine which kinda achieved something like that, search the forum for "voxel"...
Thank you for the information. Once I get my home computer running again, I'll look into integrating a few other physics engines into my irrlicht project.
oh and I came across that voxel topic... it didn't seem to be the type of physics I'm looking for. I'm after something similar (not exact) to Red Faction and the GeoMod stuff.
You can also search about the voxels (http://en.wikipedia.org/wiki/Voxel) way of doing destructible meshes. Its, in short words, converting meshes into an array of billboards(like molecules) and being able to erase some.... It does not look as high res as physix or some nice engine but its quick and portable enought...
Here is a video :
http://www.youtube.com/watch?v=z20SjIB4kBA
This is a voxel engine for the DS.
And its obvious that this is an alternative way to do it.
EDIT: Hah! just ignore this post!
Here is a video :
http://www.youtube.com/watch?v=z20SjIB4kBA
This is a voxel engine for the DS.
And its obvious that this is an alternative way to do it.
EDIT: Hah! just ignore this post!
-
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
Just dont be confused, irrlicht does not have physics. Its a graphics rendering engine that happens to support VERY limited collision detection (collision != physics simulations) .
It IS possible, but the engine does not offer that because then my car should be able to dispense coffee as well (its not made for that, its not a game engine).
There are many available physics wrappers and what not, and the concepts are staggering explained all over the internet... Google "destructictible physics in games" and im almost certain you wont be disappointed.
It is possible to use irrlicht, and achieve it, though.
It IS possible, but the engine does not offer that because then my car should be able to dispense coffee as well (its not made for that, its not a game engine).
There are many available physics wrappers and what not, and the concepts are staggering explained all over the internet... Google "destructictible physics in games" and im almost certain you wont be disappointed.
It is possible to use irrlicht, and achieve it, though.
DMM is a commercial example but i dont think you can afford it, better way would be nvidia physX very fast (ultra fast) but causes problems because of no hardware acceleration for linux (drops to software mode and i dont know if that is any faster than newton for example) and the fact that ATI does not run it officially (you can hack the drivers and emulate an nvidia card, but it is a bit of work for people with ATI cards and many people with ATI just wont play your game because of the work that they would have to carry out)
so the general air im getting about destructible physics is that "its not impossible, but its not entirely possible either".... something that an expert can do with some hard work, but someone jumping into C++ after only a few years of off-and-on programming experience should stay away from.
Thank god what I planned on using this for isn't completely reliant on destructible physics
PS. PhysX seems to be sort out of the question, because half of the team im working with runs Linux =/
Thank god what I planned on using this for isn't completely reliant on destructible physics
PS. PhysX seems to be sort out of the question, because half of the team im working with runs Linux =/
-
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
-
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
If you heard a truck was coming would you jump in front of it? I never said anything about your post at all, if you felt it was toward you thats unfortunate. The word internet != your last post... Its a large place and a long series of tubes.I am not a moron and dont be so full of yourself.
This, is what i was referring to. Either that or Quantum doesnt know how to evaluate things on a realistic scale.the general air im getting about destructible physics is that "its not impossible, but its not entirely possible either"
No i was pretty much saying the general answer I'm hearing is possible but impossible for a beginner without pulling in a separate physics engine.FuzzYspo0N wrote:This, is what i was referring to. Either that or Quantum doesnt know how to evaluate things on a realistic scale.the general air im getting about destructible physics is that "its not impossible, but its not entirely possible either"
But if it's not that hard to figure out, then I'll keep this idea in my back pocket for when I'm more accustomed to Irrlicht and C++.
-
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
No problem, using the external physics engines arent actually that complicated ONCE you do have a grasp of irrlicht and c++... there are a lready a number of wrappers that are around which make it easy, like handing an ISceneNode to the physics function, and it creates a rigidbody for you.
Im hoping to toy with some destructible stuff soon, and if i have anything interesting to show ill post it
Im hoping to toy with some destructible stuff soon, and if i have anything interesting to show ill post it