Rendering ONLY what you can see

Started by
6 comments, last by circlesoft 19 years, 3 months ago
Hey, is there a way to render only what you can see? My heightmap, for example, uses up a lot of vertices. Even if I look away from it (making it disappear from my view), my FPS still remains quite low (in the 50's). -TPG
Advertisement
Whew, terrain LOD is a *huge* topic. Check out the Graphics FAQ - under the 'Terrain' section there are some great links. Also, a search of the Graphics Forum will probably set you on your way (try 'terrain' or 'ROAM' or 'LOD' or something).
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )
I think what you're looking for is 'view frustum culling'

Check this article:
View frustum culling

Greetz,

Kees
Does frustum culling cull out occluded objects as well? I seem to recall that it doesn't. You might need to come up with some additional culling methods to draw only the visible polys.

Or you could use a BSP tree or something to that effect.
No, frustrum culling does not cull occluded objects. That's occlusion culling.

Use as many culling methods as you see fit - at some point there's a "diminishing returns" rule after which adding more culling methods makes little difference (because it doesn't cull many objects very often), and instead just adds complexity.

Mark

PS: This is not a DirectX specific issue.
Wow. I think it's time for me to learn more math;).
Frustum culling will not help a lot because it will either draw the whole terrain or it will not draw nothing.

What means, if you see any part of the terrain everything will be rendered, if you will face away from the terrain nothing will be rendered and your frame rate will jump sky high.

I believe some octree/quadtree access may be required.
Quote:Original post by Samurai Jack
Frustum culling will not help a lot because it will either draw the whole terrain or it will not draw nothing.

What means, if you see any part of the terrain everything will be rendered, if you will face away from the terrain nothing will be rendered and your frame rate will jump sky high.

I believe some octree/quadtree access may be required.

Yes, you are on the right track here. Wheras frustum culling determines whether or not to render a complete object, we want to know what portion of each object to draw. There are many, many ways to do this. Octrees, quadtrees, ROAM, geomipmapping, ect... are all viable solutions. The Graphics programming forum is certainly a better place to look (since this is API independent), and I know that it is chock-full of great information on this topic.
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )

This topic is closed to new replies.

Advertisement