Jump to content

Тормоза при большом количестве сложных объектов с ЛОДами


photo

Recommended Posts

It could be turned on by setting "Query" flag on each object, but in this particular scene it makes even worse.

 

This is simply caused by the fact, that you issue 1 additional occlusion query per cube, which is no good idea, because the additional query work load is much higher that the time gained by not drawing a simple cube. Therefore queries only pay off if you have very complex single objects or group multiple objects below a top-level query-tested node.

Link to comment

But, hell, it is really able to work even with 10000 meshes with acceptable rate:

 

Quite impressive ! Could you check results with some material/color variation for the cubes. Right now all cubes used same material, while UNIGINE sample has some state changes due to different material assignments. Also it looks like that there are no dynamic shadows, just SSAO.

Link to comment

Here is screenshot with different materials. Minor bugs were fixed and FPS on Radeon 4550 is now about 45-50 for 3375 cubes with default light (static + SSAO) and about 35-40 with directional light (shadows + SSAO):

post-26-082012200 1285777692_thumb.jpg

post-26-078810400 1285777633_thumb.jpg

 

Al that means that amount of models is not a huge problem for modern engines.

Link to comment

Here is screenshot with different materials. Minor bugs were fixed and FPS on Radeon 4550 is now about 45-50 for 3375 cubes with default light (static + SSAO) and about 35-40 with directional light (shadows + SSAO):

post-26-082012200 1285777692_thumb.jpg

post-26-078810400 1285777633_thumb.jpg

 

Al that means that amount of models is not a huge problem for modern engines.

 

good test case ! I am sure UNIGINE will have a look on the issue

Link to comment

Use one the highly detailed model of the car and other cars less detailed. When a player comes to one of the cars you have to сhange to the highly detailed car. When scene contains one highly detailed car and less detailed other cars the FPS is approximately equal 80 - 90.

Link to comment

Two world forward lights: 57 fps 1200Ksurf/sec:

00000.png

 

Two world deferred lights: 73 fps 1050Ksurf/sec:

00001.png

 

One world forward light: 81 fps 1136Ksurf/sec:

00002.png

 

One world deferred light: 88 fps 943Ksurf/sec:

00003.png

 

No lights: 130 fps 880Ksurf/sec:

00004.png

 

This is a stress test with single surface meshes without LODs. All objects are visible and we can obtain peak performance of surface rendering. Linux with debug build. Hardware is Intel® Core™ i5 CPU 650 @ 3.20GHz and NVIDIA GTX260.

 

In real scenes we have many objects with LODs and most of them are invisible because of distance culling. This objects pollute spatial tree and decrease performance. To fix this problem we have several spatial trees for different node types: collider, clutter, objects, lights, worlds... But if we have several thousands of potentially visible objects and 90% of this objects are culled before rendering we will have a serious FPS drop because of CPU performance.

 

As I already told we are working on huge forest demo internally. We use WorldClutter for node placement around the player and ObjectGrass for distant nodes rendering. We haven't any performance problems in this large demo even on mid-end hardware.

 

I'm in the middle of deep render refactoring and can't check the forum frequently, sorry. I will come back in one or two weeks.

There will be a lot of useful features available:

 

* Smooth LOD fading for meshes and leafs.

* Improved vegetation animation.

* Global control of vegetation animation.

* Global LOD distance scaling.

* Parallax mapping will not affects SSAO quality.

* SSDO and MLAA.

 

Link to comment

There will be a lot of useful features available:

 

* Smooth LOD fading for meshes and leafs.

* Improved vegetation animation.

* Global control of vegetation animation.

* Global LOD distance scaling.

* Parallax mapping will not affects SSAO quality.

* SSDO and MLAA.

 

 

Very nice !

Link to comment

2 frustum

I just have nothing to say.

post-26-093608600 1285831414_thumb.jpg

 

 

Athlon XP 4200 x2, GeForce 9600GT DDR3, release build, OpenGL, Windows 7 x64. No lights.

P.S. Don't tell me that this hardware is too old - Fallout 3, Crysis and Dragon Age run smoothly at 30-40 fps, so I see no need to change it.

Link to comment

2 frustum

I just have nothing to say.

00003.jpg

 

 

Athlon XP 4200 x2, GeForce 9600GT DDR3, release build, OpenGL, Windows 7 x64. No lights.

P.S. Don't tell me that this hardware is too old - Fallout 3, Crysis and Dragon Age run smoothly at 30-40 fps, so I see no need to change it.

 

mesh_00 scene is completely CPU bounded. I will try compress structures and classes size to minimize cache misses.

Link to comment

Is there a way to force group of meshes to be "unbreakable" for spatial tree and always fit in single WorldNode?

 

Use one mesh with multiple surfaces (where each surface can have its own material)

Link to comment

Use one mesh with multiple surfaces (where each surface can have its own material)

 

I'm sorry, Ulf, but that is not what I've asked for and you are definitely not Frustum :)

Link to comment
  • 1 month later...
  • 1 month later...
×
×
  • Create New...