Page 1 of 1

Speed question

Posted: Tue Aug 21, 2007 10:10 am
by grantkrieger
Hello,

If I load my scene with no 3D models I get about 60 frames per second. If I load all my models my frame rate goes down to about 6 frames per second. This is when the camera has them all in view. Why when I point my camera upwards and away from all models does the frame rate only increase to about 13 frames per second. At this point there are no models in view of the camera at all and there is no sky at all.

Any ideas ? Someone has advised me its to do with backface culling , others have said automatic culling . ? ??? I am confused.

How can I get my camera to only render what it sees?

Thanks

Grant

Posted: Tue Aug 21, 2007 11:57 am
by hybrid
Irrlicht already does frustum view culling to avoid rendering invisible elements. But you still have some overhead for scene node handling.
Backface culling has nothing to do with that kind of visiblilty, it just renders only those faces which face the camera.

Posted: Tue Aug 21, 2007 3:34 pm
by vitek
Just pointing the camera up won't necessarily cull those scene nodes that aren't in view. By default the culling method uses the view frustum bounding box which includes a lot of volume that isn't visible.

The other thing is that you may be getting a bad frame rate because of a large number of scene nodes. The more scene nodes, the slower things will be, even if none of those nodes are actually on screen.

Travis

Posted: Wed Aug 22, 2007 10:22 am
by Cardinal4
vitek wrote:The more scene nodes, the slower things will be, even if none of those nodes are actually on screen.

Travis
Sorry abt hijacking this thread, but if I set all those out-of-screen ISceneNode.isVisible to false, then it won't matter even if I had a ton of them [off-screen], right?

Posted: Wed Aug 22, 2007 1:26 pm
by hybrid
The overhead of scene node handling will still occur to some extent, but tehre is no graphic data uploaded to the GPU.

Posted: Wed Aug 22, 2007 3:08 pm
by Sean H.
are your models animated? if so, then that would account for some additional processing as well since animations are calculated even if an object is never rendered, as they should.