Is there any efficient way to cut occluded geometry in terrain rendering?I mean occluded not
out of the view frustum.
Retodon8 at
Terrain, so you're talking about Voxlap?
(I won't be able to give an answer to this myself, but I figure maybe this way you could clear this up sooner, because Ken made multiple engines.)
3dEngineProgrammer at
I mean normal polygon terrain.I just want to ask if Ken tried to handle the overdraw of
terrain and has a sollution to suggest?I don't mean anything complicated just searching if
this task can be done without offline preprocessing even if we don't have the best perfomance.
If it cuts more polygons than a simple frustum clipping test then it is ok :).
Awesoken at
Polymost could handle this kind of hidden surface removal but I don't think it would be very fast. That's because Polymost isn't optimized for high polygon count. Hidden surface removal (zero overdraw) takes a lot of calculations - it's usually best to do a rough approximation and live with some overdraw.
3dEngineProgrammer at
If you are in the upper left corner of a terrain heightmap and you're looking to bottom right
corner you've got an enormous amount of overdraw.Should i shoot rays in the viewing direction and every triangle i hit to render it?Could it be an effecient way?
3dEngineProgrammer at
I wonder if a quad tree can help me solve the hidden surface removal in terrain rendering.I mean obscured surfaces not out of view frustum.
A potential algorithm should find areas and portals like the bsp way?
0xC0DE at
well, if your terrain is one mesh; Did you try backface culling ?
that would probably remove a lot of unwanted polygons, I think that
would work pretty good together with another simple check for faces
that point to the camera but are behind another one.
3dEngineProgrammer at
I have implemented every possible classical way to reduce terrain rendering overdraw like frustum clipping,octree,back face culling,far distance culling,lod but i haven't find so far a quick and dirty way to reject surfaces that are ex behind a mountain.I don't want to check 100000+ surfaces every frame even if i had the best hidden surface algorithm .
Unreal is using around 50 checks in every frame for a huge terrain level.
0xC0DE at
Ok, I've never done terrain engines with polygons. But this little doodle might help.
the gray pieces are removed thanks to backface culling, so alot is gone.
Now, only the red piece is a problem.
The best way would be Z-culling, which can be quite fast if your hardware
permits it. It looks a little bit like voxel-engine stuff, because you draw
from the front to the back.
if that's too slow for you, you might (but I've never done this, thinking it up
while I go) want to do it more voxel-like. Draw from the front to the back
and keep track of the y value. Then just compare the value against the
newest y value. if it's higher you draw and update the old one, otherwise
you discard it.
etko at
If you are using hardware acceleration just send whole big chunk to card, it will handle it.