Saw this on my LinkedIn feed. Thought it was a nice explanation of LODs for making seemingly-dense forests. The solutions for overdraw are nothing new, but still quite valid and useful. Anyhow, enjoy.
When I want to increase density of a forest I will scale a little bit geometry of leafs/branches because when you go far away you will lose "mass" of the object in case you are using alpha masked technique + mipmapping of course. So the forest looks more dense and you don't need to use blobs as extra another LOD. Yes. It's a compromise but when you have smooth LOD switching (pixel dithering) it looks acceptable.
What can I say))) try work in mobile project and VR become very easy ) Polygons is not main pain, in common - shader complexity, how hard and how many shader operations used for 1 result pixel calculation (clean geometry with simple diffuse shader is very fast for modern GPU, even on mobile you can run 300- 500K triangles in camera view with 40-60 fps, but few big polys with transparency OR/AND complex pixel shader with Diffuse/Bump/Spec + dynamic shadowing - and you get 15-20 fps with 5-10K tris in camera view)
Does the amount of roughness in a material really contribute to shader complexity in a deferred renderer? Or is this project using the engine's forward rendering path for VR? That alone would be an interesting distinction for the author to note.
What can I say))) try work in mobile project and VR become very easy )
I authored the post, and yes, most of these techniques were actually developed working on a mobile VR game. After mobile VR, we assumed regular VR would be easier - but we ran into just as many performance issues, just in different ways.
Does the amount of roughness in a material really contribute to shader complexity in a deferred renderer? Or is this project using the engine's forward rendering path for VR? That alone would be an interesting distinction for the author to note.
We're using forward rendering on our current UE4 project, it's supposed to be better for VR performance. The roughness decision we based simply on the shader-complexity view in UE4, and also by tracking FPS in-game.
Replies
I've found some of the 80.lv stuff to be useful, but yeah they certainly are crap at promotion.
When I want to increase density of a forest I will scale a little bit geometry of leafs/branches because when you go far away you will lose "mass" of the object in case you are using alpha masked technique + mipmapping of course. So the forest looks more dense and you don't need to use blobs as extra another LOD. Yes. It's a compromise but when you have smooth LOD switching (pixel dithering) it looks acceptable.
how hard and how many shader operations used for 1 result pixel calculation (clean geometry with simple diffuse shader is very fast for modern GPU, even on mobile you can run 300- 500K triangles in camera view with 40-60 fps, but few big polys with transparency OR/AND complex pixel shader with Diffuse/Bump/Spec + dynamic shadowing - and you get 15-20 fps with 5-10K tris in camera view)
We're using forward rendering on our current UE4 project, it's supposed to be better for VR performance. The roughness decision we based simply on the shader-complexity view in UE4, and also by tracking FPS in-game.