Crysis-like LOD system?


05-10-2011 10:48:25

Hi there.

PagedGeometry never changes the amount of objects to render, it just switches it to another level of detail . For example, if you have a detail level "impostor" from 100 units to 500, you always will see all impostors from 100 to 500 units. Same for regular objects and grass. In the opposite, in Crysis LOD system of objects not only switches LOD level, but reduces it's amount depending on distance. For example, if there is an area of rocks about 50 meshes, all of this 50 meshes will be shown only in a close distance, if you move away, it's amount will be reduced, but you'll still see that there are rocks in there for a long distance. Same with tree impostors, in a large distance there're only several of them are present, but it makes possible to render impostors on a very large distance without reducing performance, and you'll still see, that there are trees there. And the most important about grass, which don't need to have the same density on every distance from camera, it anyways looks smooth when it far from camera, so reducing amount of grass depending on distance to camera will hopefully allow to render it on a farther distance without loss of performance.

What anyone think about adding such an option to PagedGeometry's engine?

P.S. The only way to implement this functionality with current PG's engine is to create many instances of PG for the same objects, and split all your objects to them with different detailLevel settings, but it leads to increasing of batch counts.


06-10-2011 07:28:46

You are welcome :D
I planned return to develop PG after release Ogre 1.8


06-10-2011 23:30:16

Actually I use the system you've decried.
Given a list of LOD distance in a script file, my parser ask PG to create as many instances as needed (for grass and trees).
For the grass, I also decrease the density and suppress the wind factor.

But keep in mind that a such technique is already effective with 3 or 4 instances.

Just an another fresh idea : we can make that long distance grass uses larger quads with smaller UVs. So you gain on the polycount by rendering your blades coplanar. (typically display 2 spites on a two times larger quad)