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: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.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...
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.Dio said: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.htmPanajev2001a said:FP numbers do not have a linear distribution of precision over the range either...