AshikhminShirleyDiffuseIllumination

giant.ray_tracer.illumination:

class giant.ray_tracer.illumination.AshikhminShirleyDiffuseIllumination[source]

This illumination model computes the intensity values according to the Ashikhmin Shirley diffuse law

Mathematically this is given by

\[I = -\mathbf{n}^T\mathbf{i}(1-(1+\frac{\mathbf{n}^T\mathbf{i}}{2})^5)(1-(1-\frac{\mathbf{n}^T\mathbf{e}}{2})^5)\]

where \(\mathbf{n}\) is the unit normal vector, \(\mathbf{i}\) is the unit incidence vector, \(\mathbf{e}\) is the unit exidence vector, and \(I\) is the intensity value.

Anywhere that is not visible (either because the visible flag was set to False, or the cosine of the incidence angle is less than 0) is set to 0 in the return.

This illumination model has not been thoroughly tested for use with natural bodies.

Summary of Methods