Performance problem with scene oFusion exported

LuRenJia

12-07-2006 16:04:35

Sorry for my poor English.

I used oFusion to export a scene from 3dsmax, it have 160,000 tris, 251 objects and same amount materials(I baked lightmap). And loaded into OGRE, got less than 1 fps if I move camera to view whole scene.

I try other scene, it have 12,000 tris and 49 objects, got about 40 fps under debug mode and about 90 fps under release mode.

I wrote a test program: placed 20 ogrehead.mesh (about 12,000 tris) into a simple scene, got about 200 fps.

My machine:
AMD sempron 2200+
512M
ATI 9550 128bit/128M
WindowsXP
OGRE1.2

How to improve the performance? thanks a lot!

Lioric

12-07-2006 16:36:34

The polygon count wont make too much of a difference (on the relative boundaries) the problem might be that you are baking to a high resolution texture images, and baking the complete map, if you produce images that need more memory size that your video chip has, the performace will drop similar to your 160k poly scene

Its better if you produce just lighting maps (the correct term is shadow maps) and use multitexture to blend with the color map

The color map can be a regular texture that can be tiled, and the light map can be a low resolution texture (the filtering will improve the resolution)

For example a single 512x512 texture can be used for all your scene lights/shadows

And different diffuse textures for the color of the objects (that can be tiled, to compress the image)

In that scene, 251 sperated objects with 251 different materials probably is too much for your machine, you need to optimize, join objects that are similar, merge the textures, so multiple objects use a single texture (texture atlas), unify materials

See the wiki page about "Optimization checklist" (or a similar name) and other pages there

There are other factors that count for improving your scene performance, including using atlas textures, batching your objects to reduce the draw calls, using static geometry

LuRenJia

13-07-2006 05:50:04

thanks!

I will try your suggestion.

what advanced features do oFusion commercial version have? I want to know it's price and how to buy it.

best regards.

LuRenJia

13-07-2006 06:45:24

I ever used TrueVision3D to render a big scene that have 300 objects, 300k polygon and 300 baked complete maps with 1024X1024 resolution with dds. The performance is not bad, about 25 fps with 4XFSAA and 8X anisotropic filter. so that how surprise I use ogre to render a similar scene and get so bad performance.

In above scene, that include 160k polygon, I use small texture(most are 16X16 pure color picture) and 512X512 lighting map.

Lioric

13-07-2006 22:46:21

I will send you the details to your email account

All engines are different from each other, so the media should be created and handled different between them, with its specifics in mind

Ogre is on top of the OSS graphics engines, and currently it can be compared to commercial grade engines only, if the scene(s) you are testing or producing for your project seems to have performance issues, after doing the default optimizations, you should use a performance review tool like NVperfHUD to find where is the issue and correct it

But your first step, is to test the performance in release mode, never test performance on debug mode

A 300 1024x1024 maps seems to be a little too much, for any engine, this is related to the video processor memory and not the engine itself, you would need more than 1GB of memory to have all those maps in the scene at the same time without texture memory swaping (or 512MB with dds and high compresion ratios)

Probably you tested that scene (a complete level scene) on a specialized scene manager on the other engine and comparing with a simple scene on a non specialized scene manager on Ogre with only frustum culling

After batching your objects, you will see a good performance boost

jacmoe

14-07-2006 00:15:35

TrueVision features BSP Rendering Engine with PVS/Lightmapping, so it is unfair to compare it with the non-optimised vanilla octree Ogre SceneManager. :wink:

LuRenJia

14-07-2006 03:59:33

Hi jacmoe!

TV6.5 is in development, it has no any scene manager, no bsp, no pvs, no octree, just a list. But I implemented a simple octree manager myself, provided faster frustum culling than TV provided.

In fact, I don't know how the OctreeManager of OGRE work yet. The frustum culling base on OctreeManger? or just iterate a node list?