Understood. I was just using w buffers as an example because they cause a similar (or less, actually?) loss of accuracy at near range as your scheme, compared to a "normal" z buffer. And this was considered problematic. That's at least what I got from some discussions...Am Sa, den 01.01.2005 schrieb Roland Scheidegger um 19:00:
Felix K�hling wrote:
[snip]
I'm a bit sceptical that this really improves depth buffer quality in general. With D3D it is (if the hw supports it) possible to use a w buffer instead of a z buffer, which has the same precision for far and near objects. However, the loss of precision for near objects was often considered unacceptable. (Radeon R100 and R200 support this, but R300 and up no longer do, or at least the driver doesn't expose it, so it looks like it wasn't that useful after all, and not many applications afaik requested w buffers).
[... following up to my other reply ...]
Another problem with W buffers is that linear depth interpolation doesn't give the correct results with intersecting surfaces. This is only achieved by the perspective division which is not applied to W (in fact the perspective division divides x, y and z by W). This makes W-buffers unsuitable for OpenGL. But this is not what I am proposing, just in case I was misunderstood. Reversing the depth range and using floating point numbers just changes the encoding of depth values in the depth buffer, it does not change the semantics, like a W-buffer would do.
Though it's probably correct that it really depends on the application if it is an improvement or not.
Roland
------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt -- _______________________________________________ Dri-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dri-devel
