Z-buffer split techniques for large scale environments

Started by
4 comments, last by swiftcoder 12 years, 2 months ago
Hello!

I'm developing a render engine, which should render very large scale environments (f.e. space objects, planets, ships, etc.). Among others I have a task to deal with z-buffer. I have a lot of multiscale objects which needs to be rendered in one scene. It could be a space station, a planet and a space station trajectory. Splitting objects to z-buffer groups is not suitable because, for example, space ship intersects trajectory and trajectory intersects planet. So, I decided that I need some technique for z-buffer split (maybe some analog of PSSM for z-buffer) and then render objects in that splits.

What can you suggest about this approach? It would be great to look at some articles or technical reports, connected to this topic.

Thanks for help!

Regards,
Nikita
Advertisement
I just sort objects (or groupings of objects) by depth, and scale/translate each one to fit the z-distance I work with - a technique I borrowed from one of Sean O'Neil's articles.

It's not perfect, but works quite well for planets/stars/spaceships in every configuration I've tried.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Perhaps a logarithmic depth buffer will be useful to you? I have no experience implementing it myself.

Perhaps a logarithmic depth buffer will be useful to you? I have no experience implementing it myself.

Or it's much simpler cousin, the floating point depth buffer.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Infinite Depth Buffer
http://http.developer.nvidia.com/GPUGems/gpugems_ch09.html

Infinite Depth Buffer http://http.develope...ugems_ch09.html

Not the same sort of thing at all - that's a technique for rendering stencil shadow volumes, when the shadow geometry approaches infinity.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement