A Few Notes on Future NV Hardware

Dio said:
Panajev2001a said:
W-buffer, as far as I can remember, doesn't have the problem that regular Z-buffer has meaning it distributes linearly over the distance while Z-buffer has a non-linear distribution over the same range...
Just because it has a different distribution doesn't make it better. W-buffer has several problems, most notably 1. that it's never been consistent across different hardware platforms and 2. that the close-up Z distribution is often lacking leading to W-artifacts. These are clearly seen on the original Unreal Tournament, which on some cards had obvious stair-step effects on the GES BioRifle.
I've always felt that the best approach is to use 1/w and floating point in the depth buffer. This then gives a uniform relative precision throughout all depths which, AFAICS, is ideal. It's what was used in Dreamcast.

Dio said:
Panajev2001a said:
FP numbers do not have a linear distribution of precision over the range either...
There is a Jim Blinn paper that talks a lot about this called W Pleasure W Fun, I found this link to it: http://www.computer.org/cga/cg1998/g3078abs.htm
I think I read that article some years ago (I don't have a subscription to IEEE so I can't check). It's sacrilege, I know, but I don't think I agrees with some of Blinn's points.
 
Simon F said:
I've always felt that the best approach is to use 1/w and floating point in the depth buffer. This then gives a uniform relative precision throughout all depths which, AFAICS, is ideal. It's what was used in Dreamcast.
Oh well, in that case, you would wouldn't ya! :) It seems a pretty decent approach. I think the problem is less important now 24-bit and Z-compression are standard... it'll probably come back in a few years, then the mathemagicians will solve it all again :)

Simon F said:
I think I read that article some years ago (I don't have a subscription to IEEE so I can't check). It's sacrilege, I know, but I don't think I agrees with some of Blinn's points.
Didn't realise that wasn't an open link - apologies! I didn't agree with all of his conclusions either - particularly, the conclusion 'there's no point in float Z' when all you have to do is invert the sense of the Z buffer - but it was the first thing I saw that put together a detailed discussion of exactly how these things work out.
 
Back
Top