I'm just getting into Irrlicht, and it seems to be exactly what I'm after. I have a question though, which may decide whether I will use this engine or not.
When you create a scene graph, either from an irr file or whatever, does the engine load all the media (meshes, terrains, textures, sounds, etc) from the entire scene all at once? Or does it load the stuff when it comes into view of the camera (content streaming for large - very large - worlds)?
Irrlicht looks good, and can be ported to many platforms. My plan is to make an RPG that I can port to game consoles, and since consoles have limited memory (unlike my new computer, which is a monster), content streaming ability is an absolute must.
If not, my second question is: how well does Irrlicht go with multithreading? Is it possible to get Irrlicht to draw one frame while it's processing the next frame? Cuz if I wanted to implement my own content streaming code, multithreading would be integral to it, and it would be good if multithreading was agreeable with this engine..
Question about the scene graph
1) Everything is loaded when you create the scene graph, unless of course you make your own LOD nodes which create and destroy content on the fly.
2) Like the underlying graphics APIs, Irrlicht is not thread-safe. Implementing asynchronous IO is possible, but you can't load textures into texture memory outside the graphics thread.
Omaremad recently posted an example of asynchronous streaming LOD using pthreads in the Project Announcements forum, this might be of interest to you
2) Like the underlying graphics APIs, Irrlicht is not thread-safe. Implementing asynchronous IO is possible, but you can't load textures into texture memory outside the graphics thread.
Omaremad recently posted an example of asynchronous streaming LOD using pthreads in the Project Announcements forum, this might be of interest to you
-
- Admin
- Posts: 14143
- Joined: Wed Apr 19, 2006 9:20 pm
- Location: Oldenburg(Oldb), Germany
- Contact:
Both things are up to you. Irrlicht does not use threads internally, and neither Irrlicht nor the underlying gfx APIs are thread safe. Hence you have to put the render loop into one thread, and all the game logics into separate ones. That's part of the game engine or user app logics, though, so we don't need to cope with it inside the engine.
Streaming data is also quite application specific, so there's no such thing in Irrlicht. You can use the DLOD or tiled terrain for huge scenery, and we might add other similar technologies. But the final application and use of the techniques are up to you.
(note: moved as it's a rather general question)
Streaming data is also quite application specific, so there's no such thing in Irrlicht. You can use the DLOD or tiled terrain for huge scenery, and we might add other similar technologies. But the final application and use of the techniques are up to you.
(note: moved as it's a rather general question)