I am trying to implement Rauwendall and Bailey's Conservative Voxelization algorithm in a compute shader (Section 7)(page 20/34).
This algorithm is similar to Schwarz & Seidel's, in that it orthogonally projects a triangle into a plane (aligned with an axis - the depth axis), then iterates over all the points in the plane, using edge functions to determine if they are within the triangle's projection.
Rather than then perform a box-plane intersection for each voxel however as in Schwarz and Seidel, this algorithm computes the range of points along the depth axis to check, then just checks the projection in the remaining two planes.
What I do not understand is how that algorithm identifies the range in the depth axis.
The paper does not go into much more detail than I just did, and I can't work out from the pseudo-code how it functions.
Can anyone explain?
(PS. I have tried to implement the pseudo-code as written, and I needed to make a couple of corrections to get it working. The minimal range check is the last bit that is not functioning. I need to understand how it works so I can fix it.)