A slightly improved perspective BTF ordering

Finding a single BTF (back-to-front) ordering for perspectively rendered volumes without sorting is more difficult than it sounds. See what happens when we make use of a traditional BTF (Frieder et al., 1985): it breaks badly.

Ed Swan came up with a super-elegant constructive proof for a perspective BTF ordering that works (Swan, 1998). However, his “PBTF” rendering and its proof assume that voxels are infinitesimally small. As is very often the case, voxels can have significant size, and volume resolution is often lower than screen resolution, which results in disturbing rendering artefacts. Ed’s algorithm is still a great improvement: see here, but note the artefact.

This problem has been cooking in the back of my head for quite a while now. I think I might’ve solved it: click here.

ADDENDUM:

Some more samples: before and after.