Addendum to Tracing Ray Differentials

Homan Igehy
Stanford University

The purpose of this addendum is to prove that equation (12) in [1] is correct for an arbitrary surface.

Equation (9) states that for a ray that intersects a surface at t, the new ray is given by:

Its ray differential is given by (10): In the paper, the value of dt/dx is derived for a plane in (12), and it is stated without proof that the expression is valid for all surfaces. Here, we give a simple proof of this fact.

Suppose we have a surface S that is parameterized by surface coordinates u and v:

It's unit surface normal N is given by the normalized cross product of its two partial derivatives:

The intersection of this surface with the ray defined by P and D is given by the system of equations: Implictly differentiating with respect to image space coordinate x, we get: All of the terms in the above equation are known for an intersected surface except for dt/dx (which is what we are solving for) and dS/dx. A novel application of the surface normal will get rid of this dS/dx term. Now, the Chain Rule for multivariate functions tells us that dS/dx is a surface tangent vector given by a linear combination of the two basis tangent vectors dS/du and dS/dv: The du/dx and dv/dx tell us the rate of change in the local surface parameterizations u and v with respect to the image space coordinate x, but as we shall see, these values are irrelevant. The dot product of the surface tangent vector dS/dx with the surface normal N is of course zero: Thus, we can take our original equation: And take its dot product with N to get: Rearranging, we are left with:


H. Igehy. Tracing Ray Differentials. Computer Graphics (SIGGRAPH 99 Proceedings), 33, 179-186, 1999.