Ozo said:Is there any graphics card from ATI, nVidia or 3DLabs that can do 32-bits ZBuffer? I know that my R300 ATI card can not (24bits max-- 8 extra bits for stencil).
Thanks,
Ozo.
That range uses 30 bits. 23 mantissa bits, and 7 exponent bits. Only a range like [1, 0.5] uses only the mantissa bits.Hyp-X said:The thing is that Z has a range of [0, 1].
Z is computed in the vertex shader.
The vertex shader uses FP32.
FP32 will give you a precision of 24 bits at best (given how Z is usually calculated).
Mate Kovacs said:What he meant by whether an interval uses a bit or not, is whether the bit will change while iterating along the interval or not, IMHO.
[smartass]ehart said:An 32 bit integer depth buffer can represent 2^31 values [1.0-0.5), but a 32 bit float can only represent 2^23 (24?) values in this range. Similar breakdowns happen in other sub-ranges like [0.5-0.25), because of the nature of floating point numbers.
Maybe my memory is totally wrong, but isn't there a performance penalty if the z values of a triangles vertices are too far apart? So you're best of not using 32 bit z...nAo said:PS2's Graphics Rasterizer supports 32 bit zbuffers..
Or you could just store the fp value in the buffer instead of converting to integer?Hyp-X said:The thing is that Z has a range of [0, 1].
Z is computed in the vertex shader.
The vertex shader uses FP32.
FP32 will give you a precision of 24 bits at best (given how Z is usually calculated).
So to make actual use of 32 bit Z we'd need a higher precision vertex shader.
Yeah, your memory is okThowllly said:Maybe my memory is totally wrong, but isn't there a performance penalty if the z values of a triangles vertices are too far apart? So you're best of not using 32 bit z...
You spent too much time on the PS2..Or you could just store the fp value in the buffer instead of converting to integer?
Which I presume is the reason that 3DLabs have higher precision vertex shaders, there market can probably justify the cost... (IIRC 3DLabs have 36bit precise vertex shaders...)Hyp-X said:So to make actual use of 32 bit Z we'd need a higher precision vertex shader.
I think CLX2 had a Z accuracy of about 28 bits (floating point), but don't quote me.Lazy8s said:What about floating point? Were PowerVR processors like the CLX2 the only ones from prior generations with that precision?
Hyp-X said:The thing is that Z has a range of [0, 1].
Z is computed in the vertex shader.
The vertex shader uses FP32.
FP32 will give you a precision of 24 bits at best (given how Z is usually calculated).
So to make actual use of 32 bit Z we'd need a higher precision vertex shader.