giant.ray_tracer.illumination.ILLUM_DTYPE¶
- giant.ray_tracer.illumination.ILLUM_DTYPE: dtype = dtype([('incidence', '<f8', (3,)), ('exidence', '<f8', (3,)), ('normal', '<f8', (3,)), ('albedo', '<f8'), ('visible', '?')])¶
The numpy datatype expected by the illumination functions in this module as input for conversion to intensity values.
For an overview of how structured data types work in numpy, refer to https://numpy.org/doc/stable/user/basics.rec.html
The following table describes the purpose of each field.
Field
Type
Description
incidence
3 element double
The unit vector from the light source to the surface as a 3 element array
exidence
3 element double
The unit vector from the surface to the camera as a 3 element array
normal
3 element double
The unit vector from that is normal to the surface as a 3 element array
albedo
double
The albedo of the surface as a float
visible
bool
A boolean flag specifying if these components are visible. Something is typically considered not visible if (a) nothing was struck by the ray the record corresponds to, (b) the spot struck was in shadow, or (c) the spot struct had the normal vector pointing in the wrong direction.