Archived

This topic is now archived and is closed to further replies.

grey

Reducing overdraw in exterior scenes

Recommended Posts

I´m writing an engine that´ll be used for rendering city - like environments. I have a BSP tree working & I´ll be adding portal rendering to reduce overdraw when rendering indoor environments. However, how do I accomplish the same rendering outdoor scenery? I can certainly cull away invisible geometry, but buildings will be occluded by other buildings & I need a way to prevent them from being drawn. Any hints? /grey

Share this post


Link to post
Share on other sites
How would I create a PVS for my world? I mean, it´s not that difficult to do it in an indoor environment, where you already have a good setup with cells & portals to determine visibility. I don´t have that kind of structure when viewing buildings from outside (also my BSP tree is currently node-based). Maybe I can use some sort of shadow culling to determine "occluder volumes" from a current leaf, but how do I skip objects that are invisible in a volume made up from the planes of a certain building? In realtime rendering they talked about using an octree + zbuffer-pyramid, it didn´t lend itself to hardware acceleration though, but it looked promising. (tobias: haven´t looked through the beam tree article yet, but I certainly will) I´m not that experienced with these kinds of 3D issues, maybe I´m missing something ridicously simple here, so if anyone can provide some clues, I´d be VERY VERY grateful!!!

/grey

Share this post


Link to post
Share on other sites
well you could probably calculate the areas that are in the "shadow" when you see your camera as a light source and dont draw anything thats in it ...

just an idea ... dont know if the computation of the "shadow" is needs more cpu-resources than the overdraw -)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
A method that I have been fiddling with is the idea of dynamic large occluders. Seth Teller has a paper on this if you want to go look him up. Basically you prepalc a database of big plane interanl to various surfaces, then in realtime you determine which are taking up the most screen space, then you use those for culling. This blends quite well with beamtrees, and is nice when you have some moving guy walk in front of you and block a large area of the scene, because then you can dedicate a larger number of polys to make a good rendering of the guy.


-Mike Taylor

Share this post


Link to post
Share on other sites