Page 1 of 1

Does Irrlicht suit my needs?

Posted: Mon Aug 09, 2004 6:27 pm
by Guest
Hi Guys

I am making a 3d space sim and I am trying to decide which engine I should use. This is my first 3D game and I have very little experience in 3D graphics so I am looking for an engine thats easy to use and either has the features below or has an easy way to implement them without doing any heavy 3D graphics coding. I also need an API with good documentation and available sample code and if possible a newbie friendly community who wont mind answering some of my questions while I climb the learning curve. Is Irrlicht the engine I am looking for?

LOD : Because there is little else in the scene LOD is the only way I can make things easier for the graphics card

Very good performance particle system : Will be used for engines, weapons
fire etc so there may be a few particle systems operating at the same time
with a lot of particles

Shadowing : I dont need to project shadows onto a surface but objects on the oppisite side of a wall than the light is shining on should not be lit by that light. I would like to do this without the overhead of stencil shadows
because the objects involved will be huge

Lens Flares : Not vital but they would be nice to have

I imagine I will also need some way to light up a small part of the shields
when a weapon hits a ship. During my research I have narrowed it down to Orgre or Irrlicht I was just wondering what you guys think.

Thanks
PinZip

Posted: Tue Aug 10, 2004 1:05 pm
by Electron
Irrlicht is loads easier than Ogre, though Ogre has a slight edge in performance.

LOD: not yet in Irrlicht. Coming in 0.7 though

particles: Haven't really compared other engine's systems, but I find irrlicht's particles flexible (add your own animators if you want) and easy to use. Performance seems at least decent, again I haven't compared particle system speed in other engines

Shadowing: Ouch. Irrlciht's shadows are rather slow. I've never noticed shadows in a space sim before though, with such a low density of matter in space + dark I don't see the need. Perhaps I misunderstand what you're doing?

Lens Flares: Serg Nechaeff made an irrlicht lens flare class. Get it here
http://www.dev.your3dgames.com/

Posted: Tue Aug 10, 2004 3:58 pm
by Tyn
You could easily add your own LOD, just load all your textures into the game and then change the texture of the mesh according with the distance the camea is from the object.

My opinion is that OGRE is far superior in terms of graphics, it also is a little faster from what I have seen. Irrlicht has the edge of being a lot easier to get started with and having no external dependancies ( like the STLPort ). If you are fairly new to game programming and are not too anal about having cutting edge graphics then you can make a good game with Irrlicht. If you are going for FPS level graphics then OGRE has gotta be the main choice of the pick of engines. Irrlicht is also a younger engine and so may have more faults than OGRE.

Posted: Tue Aug 10, 2004 7:53 pm
by Electron
You could easily add your own LOD, just load all your textures into the game and then change the texture of the mesh according with the distance the camea is from the object
doesn't reduce polycount of far away objects. Switching textures to small resolution ones at distance may give you aslight speed increase because of the lower memory hit, but remember that switching textures in and out of video memory is expensive. Using LOD on the meshes is where performance really gets better, if you have large outdoor scenes.
If you are going for FPS level graphics then OGRE has gotta be the main choice of the pick of engines.
I'm making an FPS with irrlicht and so is c_olin334. We'll see how they go.

Posted: Tue Aug 10, 2004 8:30 pm
by cinek
You could easily add your own LOD, just load all your textures into the game and then change the texture of the mesh according with the distance the camea is from the object.
This is not mesh LOD as Electron explained, rather sth like mip mapping, but how about doing the same thing to meshes?
I mean load different meshes and make only one visible. I'm new to Irrlicht, don't know how it should be implemented, but in the worst case one could have a dummy tranformation scene node for transformations and a few scene nodes (as children) with different LOD meshes that would be all invisible except one. Maybe this can be achieved with one proper IAnimatedSceneNode and multiple meshes?

Posted: Tue Aug 10, 2004 10:56 pm
by Tyn
Thought you were talking about texture LOD, fair nuff.

I thought the one mesh was optimised, cutting poly's down if the camera was a certain distance away for mesh LOD, maybe gamedev.net has some methods of doing this.

Posted: Wed Aug 11, 2004 11:43 am
by Electron
I mean load different meshes and make only one visible. I'm new to Irrlicht, don't know how it should be implemented, but in the worst case one could have a dummy tranformation scene node for transformations and a few scene nodes (as children) with different LOD meshes that would be all invisible except one. Maybe this can be achieved with one proper IAnimatedSceneNode and multiple meshes?
It should be. I've though about doing the same thing myself. A couple catches to be aware of
1) you might not want to calculate which detail mesh should be visible every frame, though the calculation could be quite trivial (determine the distance from the camera and set the visible mesh based on the range the distance is in
2) you want to calculate it often, however, and you don't want to switch meshes too close to the camera because of "popping", looks odd if the mesh changes detail suddenly.

3) lot's of different meshes takes lots and lots and lots of memory :cry:

4) There is also progressive LOD, which does real-time triangle reduction on a mesh. Cuts down memory costs significantly and eliminates popping if done frequently, but the trick is being able to do it often in realtime, the algorithms involved are not completely trivial, especially when working on a large number of triangles. You might want to check out cal3d, which is a skeletal animation library that deals with animated characters and sends the vertices to a rendering engine (tutorial on how to hook it up with irlicht somewhere). It implements progressive LOD, I believe, abd is open source. If you're abitious you could take a look at how they do it.

Posted: Wed Aug 11, 2004 2:26 pm
by Guest
Ok thanks for all your help guys, looks like I have 2 decide now :)