no illumination
local illumination
global illumination
ambient: \(I_a m_a\)
diffuse: \(I_l m_d \left( \vec{n} \cdot \vec{l} \right)\)
specular: \(I_l m_s \left( \vec{r} \cdot \vec{v} \right)^s\)


adaptive meshing
curvature visualization

We want this…
…but we get this
Mach band effect
source Wikipedia
\[ \vec{n}(T) = \frac{\left(\vec{b}-\vec{a}\right) \times \left(\vec{c}-\vec{a}\right)} {\norm{\left(\vec{b}-\vec{a}\right) \times \left(\vec{c}-\vec{a}\right)}} \]
\[ \vec{n}(V) = \frac{ \sum_{T_i \ni V} w(T_i) \, \vec{n}(T_i)} { \norm{ \sum_{T_i \ni V} w(T_i) \, \vec{n}(T_i)} } \]
triangulation (flat shading)
no weighting
angle-weighted
Flat Shading
Phong Shading
Flat Shading
Phong Shading
each geometric primitive intersected only once (no mailboxing required)
standard ray tracing
+soft shadows
+caustics
+indirect lighting
© Henrik Wann Jensen
H. Lensch, “Efficient Image-Based Appearance Acquisition of Real-World Objects”, PhD thesis, 2004
Which light paths can a standard recursive ray-tracer handle?
Which light paths can a standard recursive ray-tracer handle?