Isophote



In geometry, an isophote is a curve on an illuminated surface that connects points of equal brightness. One supposes that the illumination is done by parallel light and the brightness $b$ is measured by the following scalar product:
 * $$b(P)= \vec n(P)\cdot \vec v=\cos\varphi $$

where $\vec n(P)$ is the unit normal vector of the surface at point $P$ and $\vec v$ the unit vector of the light's direction. If $b(P) = 0$, i.e. the light is perpendicular to the surface normal, then point $P$ is a point of the surface silhouette observed in direction $\vec v.$ Brightness 1 means that the light vector is perpendicular to the surface. A plane has no isophotes, because every point has the same brightness.

In astronomy, an isophote is a curve on a photo connecting points of equal brightness.

Application and example
In computer-aided design, isophotes are used for checking optically the smoothness of surface connections. For a surface (implicit or parametric), which is differentiable enough, the normal vector depends on the first derivatives. Hence, the differentiability of the isophotes and their geometric continuity is 1 less than that of the surface. If at a surface point only the tangent planes are continuous (i.e. G1-continuous), the isophotes have there a kink (i.e. is only G0-continuous).

In the following example (s. diagram), two intersecting Bezier surfaces are blended by a third surface patch. For the left picture, the blending surface has only G1-contact to the Bezier surfaces and for the right picture the surfaces have G2-contact. This difference can not be recognized from the picture. But the geometric continuity of the isophotes show: on the left side, they have kinks (i.e. G0-continuity), and on the right side, they are smooth (i.e. G1-continuity).

On an implicit surface
For an implicit surface with equation $$ f(x,y,z)=0,$$ the isophote condition is $$ \frac{\nabla f \cdot \vec v}{|\nabla f|}= c \ .$$ That means: points of an isophote with given parameter $c$ are solutions of the nonlinear system $$\begin{align} f(x,y,z) &= 0, \\[4pt] \nabla f (x,y,z)\cdot \vec v -c\;|\nabla f(x,y,z)| &= 0, \end{align}$$ which can be considered as the intersection curve of two implicit surfaces. Using the tracing algorithm of Bajaj et al. (see references) one can calculate a polygon of points.

On a parametric surface
In case of a parametric surface $$\vec x= \vec S(s,t)$$ the isophote condition is

$$ \frac{(\vec S_s\times\vec S_t)\cdot\vec v}{|\vec S_s\times\vec S_t|}=c\ .$$

which is equivalent to $$ \ (\vec S_s\times\vec S_t)\cdot\vec v- c\;|\vec S_s\times\vec S_t|=0 \ .$$ This equation describes an implicit curve in the s-t-plane, which can be traced by a suitable algorithm (see implicit curve) and transformed by $$\vec S(s,t)$$ into surface points.