Sign in to follow this  
Infinisearch

LOD in modern games

Recommended Posts

Hello all, I was just wondering what LOD methods are used in modern games (2013/2014)?  Basically I'm asking because of the new consoles being released last year with the more horse power I wonder if developers are using CLOD techniques more often?  In addition has there been any significant new techiniques developed recently?  

Share this post


Link to post
Share on other sites

Yeah IME, a fixed number of pre-generated LODs for each mesh/model are produced. Perhaps semi-automatically, but with at least artist's oversight.

 

It'll be interesting to see if CLOD makes a comeback this generation with some GPU-side implementations, using compute shaders and/or tessellation... But I haven't seen much of that yet (except as above, special cases like heightmaps).

Share this post


Link to post
Share on other sites


Rasterization of tiny (less than 8x8 pixels in particular) triangles is catastrophically slow on modern hardware and negatively impacts overall fragment shading efficiency.

 

I thought gpu's rasterized in quads (2x2 pixels) and that was the efficiency threshold? Or has that changed in recent years.  Oh and thanks for the quick response.

Share this post


Link to post
Share on other sites

Perhaps semi-automatically, but with at least artist's oversight.

 

 

Thanks for that, as it was my next question.  For semi-automatically do you know what algorithm's are being used?

 

 

Yeah they do, but nVidia's chips also run computations on 32 items at once, and ATI chips run computations on 64 pixels at once.

 

 

I thought the gpu merges pixels from different triangles until a warp/wavefront can be scheduled?

 

Oh and Promit do they really alpha fade between discrete LOD's?  Seems rather expensive especially for something like crowd rendering.

 

Thanks in advance for your help.

Share this post


Link to post
Share on other sites

In the general case, hand done LODs of models at three or four distances, maybe plus an impostor billboard of needed. Simple alpha fade between them. Nobody is bothering with continuous LOD or other automated systems, as they have several flaws:
* Expensive on CPU
* Require dynamic GPU buffers
* Pretty much ruin any chance of instancing/batching - this is a huge problem
* The vast majority of methods are not able to cope with tex coords, normals, tangent spaces, and all the other real world stuff verts actually use. This becomes a huge n-dim optimization problem.
* In conjunction with the above, LOD changes create severe popping artifacts due to discontinuities in the various spaces
* Vertex processing isn't the limiting factor in nearly every system
 
The primary use of LOD right now is to prevent small triangles from being rasterized. Rasterization of tiny (less than 8x8 pixels in particular) triangles is catastrophically slow on modern hardware and negatively impacts overall fragment shading efficiency. There are a few special cases where more sophisticated LOD techniques are useful, notably (and almost exclusively) terrain.

 

Well it's not really true that nobody used continuous LOD systems (I know of a few games that did), but it definitely wasn't popular. In fact I've seen Progressive Meshes mentioned as one of the most frequently-cited but least-used techniques in graphics, which is pretty funny.

In general discrete LOD levels is definitely still the normal. Simplygon is becoming pretty popular as a tool for automatically generating LODs. It's pretty good, although you still generally want artist intervention. 

Tessellation used to be frequently mentioned as the solution to all LOD problems, but in reality it's found little use in big-budget games. The Call of Duty series seems to be the one notable exception.

Edited by MJP

Share this post


Link to post
Share on other sites

 I am wondering. When it says a card supports 1/2/4 primitives per clock..

 

Does this mean that those primitives must be within the same 8x8 block? Or the exact opposite?

If I'm rendering pixel sized triangles, and 4 of them land in the same 8x8, can it only do one at a time? 

 

 Also I'd like it if future GPU's might offer the ability to disable the mandatory 2x2 triangle blocks(used for derivatives), since not all shaders require them, and in particular the stuff I'm working on does not;)

 

 I have a project that supports a variable # of primitives per pixel.

From testing, it does drop significantly as I approach 1/1 ratio, although it is still playable.

Since the GPU screws me with the 2x2 quad thing, for near 1/1 ratio scenes I've found that doing super sampling isn't very expensive ;0

Share this post


Link to post
Share on other sites

It's also interesting that the shape of small triangles matters (wide vs tall)!

Are render targets "swizzled"? (I forgot the actual term - for example when a cube of pixels is put in adjacent addresses) maybe that accounts for that performance differential?

 

*edit grammar

Edited by Infinisearch

Share this post


Link to post
Share on other sites

Well it's not really true that nobody used continuous LOD systems (I know of a few games that did), but it definitely wasn't popular. In fact I've seen Progressive Meshes mentioned as one of the most frequently-cited but least-used techniques in graphics, which is pretty funny.

In general discrete LOD levels is definitely still the normal. Simplygon is becoming pretty popular as a tool for automatically generating LODs. It's pretty good, although you still generally want artist intervention. 

Tessellation used to be frequently mentioned as the solution to all LOD problems, but in reality it's found little use in big-budget games. The Call of Duty series seems to be the one notable exception.

 

 

If possible could you tell me which titles? I'd like to see some videos.

Progressive meshes from Huges Hoppe? I've seen it quoted a few places as well, It always seemed to me they actually used it.

Is Simplygon and other similar solutions that hit and miss requiring artist intervention?

Out of curiosity I seem to remember the 360 having some hardware tessellation, was it ever used in any titles?

 

Thanks for your help.

Share this post


Link to post
Share on other sites


If possible could you tell me which titles? I'd like to see some videos.
Progressive meshes from Huges Hoppe? I've seen it quoted a few places as well, It always seemed to me they actually used it.
Is Simplygon and other similar solutions that hit and miss requiring artist intervention?
Out of curiosity I seem to remember the 360 having some hardware tessellation, was it ever used in any titles?
 
Thanks for your help.

 

MLB: The Show used it on PS3. I believe they released some material about it, although this presentation is all I can find at the moment. I think Lair was using something similar as well. Insomniac was using it for a while with Ratchet and Clank on PS3, but dropped it before release. They have some slides here.

 

The problem with LOD is that you want something that has lower polygon counts but "still looks good", and that last part is very subjective. This is why you usually want an artist involved: so that they can make sure that the LOD's being generated are still visually pleasing. It's not always necessary, but ideally you'll want human feedback in the process as much as possible.

 

Xbox 360 did indeed have tessellation hardware. I don't believe it ever had widespread use outside of a few special cases. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this