Irrlicht Performance

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Irrlicht Performance

Post by r2d2 »

Hi there,
haven't used Irrlicht for quite a while, but had a look at it every now and then, it's becoming better and better :) The thing that interests me now is the performance, the features i need which aren't implemented yet would be a piece of a cake to implement, so the only thing i need to know is whether Irrlicht is fast enough or not. I know that there were some API changes and a slight rework of the internal design, did it bring any significant performance increases?
greetz
R2
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Yes, because the SVN trunk version now supports VBOs, i.e. hardware mesh buffers. This reduces the amount of information uploaded to the GPU each frame significantly, and can boost the performance between 2-10 times. Other things include enhanced memory handling for textures (dx only, yet) and some important improvements to reduced render state changes under OpenGL. So I guess that you should definitely be able to get much better performance with Irrlicht 1.5 compared to older versions. I haven't done tests, yet, though.
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Post by r2d2 »

Sounds quite interesting :) Do you know any details about how VBOs are used in Irrlicht or has it already been documented somewhere?
Does Irrlicht do back to front rendering by itself or do i have to take care about that?
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

About VBOs IIRC there was some thread not long ago that hybrid explained how to use'em so I believe you'll be able to find it with a little search.
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Post by r2d2 »

How to use them can be found here, a little bit about the internal workings here but what really interests me, these threads are a few months old, but what interests me is about how is it working now? What is the Engine internally doing? I haven't had a look at the Irrlicht Source for quite some time, so i would first have to get into it again, but that would take some time and wouldn't be necessary if everything has already been documented yet. In OpenGL there are for example a few different types of VBOs, which one is used in Irrlicht?
Are pixelbuffers implemented in Irrlicht?
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

No pixelbuffers. The buffers are created on the first meshbuffer drawing (if requested) and is used instead of the mesh upload for all of the next draw calls. If the mesh changed in between (the setDirty flag is set) the buffer is updated. A hw buffer is deleted from GPU memory once it hasn't been used for some predefined time (IIRC its 1000 frames ATM). The other methods should naturally map to OpenGL methods.
Irrlicht does back to front rendering only for transparent mesh buffers, but wouldn't make sense otherwise.
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Post by r2d2 »

AFAIK some shadereffects need back to front drawing or at least they look much better if done that way.
Any plans on implementing pixelbuffers yet?
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

I imagine shader effects would only need rendering back to front if they did transparency blending, otherwise there's probably no need...

I think they're drawn last, just before all the transparency stuff. Or they're drawn after the transparency stuff, not sure, but i don't think they're ordered. You can check the code in CSceneManager yourself.
Image Image Image
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

r2d2 wrote:AFAIK some shadereffects need back to front drawing or at least they look much better if done that way.
Any plans on implementing pixelbuffers yet?
Just use a transparent base material and they will be rendered back to front along with all the other transparent stuff.

Incase you were talking about front face culling, then that was also recently implemented in the SVN.

By pixelbuffers do you mean R2VB? I'm sure that sort of thing wont be on the developers list for another 100 years, but if you want to submit a patch feel free to do so.

Cheers
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Post by r2d2 »

Pixelbuffers are more or less the same as Vertexbuffers, the only difference is that they are normally used to store pixeldata, e.g. textures, in GPU RAM. If PBs aren't implemented are Frambufferobjects implemented? They provide windowing system independent drawing contexts implementing render to texture with the help of FBOs is far the best and especially the fastest way. You can also use FBOs to render offscreen and use the results for special shader effects.
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Oh, you meant simple pbuffers, that was skipped in favor of FBOs :D They are already part of Irrlicht 1.3 IIRC.
I was thinking about pixel buffer objects, which are not that heavily used as of now, but might be integrated into Irrlicht somewhat later on.
r2d2
Posts: 211
Joined: Mon Nov 24, 2003 5:22 pm

Post by r2d2 »

No i really was talking about PBOs sorry for that, but they are really hard to distinguish between, at least sometimes ;) but FBOs should also suit my needs perfectly :)
R2D2's Irrlicht Mods
Messed up with my database so the page is not working at the moment -.-
CPU: Core 2 Quad Q6700RAM: 4096 mb Graphics: Radeon 4850 512mb Sound: on board InternetConnection: DSL
Post Reply