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.