I've written a basic software occlusion test that works with brush models as well as with the world. Initial impressions are that while it certainly works, in places it works too well, as it can remove models that are only partially occluded. Also, it gives a very nice speed up on account of having to render fewer alias models (I intend to run it on all of them).
I'm probably going to investigate the possibility of maintaining a software Z buffer though - the simplistic Hull Check approach has enough failings to prevent it from being properly viable. I'll probably look to the Mesa source code for ideas here, as it's got a compatible license (the Abrash code is enough of a grey area to rule it out - so far as I can tell, it has no license at all!) and will already work nicely with the OpenGL primitives I'll be sending to it.
At least I'm now satisfied that in terms of speed the likely worst case is an even trade, with FPS increases actually being more likely.
Tuesday, February 12, 2008
Software Occlusion Testing
Posted by
mhquake
at
11:42 PM
Subscribe to:
Post Comments (Atom)
3 comments:
Hey MH, you should really contact Rook. Seriously.
He has written unpublished occlusion code that works very well and is only a single procedure and it is NOT the same code he posted in QuakeOne forums.
I hope you already have it. If not, you should really ask him for it.
Cheers, I think I have it, but I also have something else that's better... ;)
If you ever get it perfect, everyone will want it ;)
Fast occlusion code not only helps render faster, it can cut down dramatically on bandwidth a server is sending out in data it doesn't need to send.
A perfect example would be a big single player map with 500 entities, 20 of which are really only visible at any time.
Post a Comment