# Perspective correct interpolation z-buffer

Computer Graphics Asked by lightxbulb on August 27, 2021

While I was deriving expressions for perspective-correct linear interpolation on triangles, I reached the conclusion that the interpolation may be kept linear only if view-space $$Z$$ is available. However, computing view-space $$Z$$ requires nonlinear interpolation (it is a rational function based on my results). Is nonlinear interpolation performed in hardware to get perspective correct $$Z$$, or equivalently linear interpolation is performed on $$frac{1}{Z}$$ but a division is required to get view-space $$Z$$ anyways? As far as I get it there is no way around that – a division is required per-pixel to get perspective-correct Z values – is that correct?

Yes, that's correct. Perspective-correct interpolation works by (for some quantity $$u$$ to be interpolated) calculating $$u/z$$ and $$1/z$$ at each vertex, linearly interpolating those values in screen space, then calculating $$u = (u/z) / (1/z)$$ at each sample point. This is done by the GPU hardware behind the scenes.