46 flt fallstart,
flt fallend);
50 flt fallstart,
flt fallend);
56 static int light_bbox(
void * obj, vector * min, vector * max);
static flt directional_light_shade_diffuse(directional_light *li, shadedata *shadevars)
flt Kq
quadratic attenuation factor
static flt light_complex_attenuation(void *vli, flt Llen)
static flt light_no_falloff(void *vli, vector *L)
flt fallstart
fallof start angle
flt Kl
linear attenuation factor
static flt simple_point_light_shade_diffuse(point_light *li, shadedata *shadevars)
static int light_bbox(void *obj, vector *min, vector *max)
struct directional_light_t directional_light
flt rad
point light radius when visible
flt(* attenuationfunc)(void *, flt)
attenuation fctn pointer
point_light * newpointlight(void *, vector, flt)
flt(* spotfunc)(void *, vector *)
spotlight fctn pointer
RT_OBJECT_HEAD flt(* shade_diffuse)(struct light_t *, shadedata *)
diffuse shading function
static void light_normal(const point_light *l, const vector *pnt, const ray *incident, vector *N)
static flt light_no_attenuation(void *vli, flt Llen)
double flt
generic floating point number, using double
flt fallend
fallof end angle
void light_set_attenuation(point_light *li, flt Kc, flt Kl, flt Kq)
void free_light_special(void *voidlight)
flt Kc
constant attenuation factor
vector ctr
point light position
point_light * newlight(void *, vector, flt)
RT_OBJECT_HEAD flt(* shade_diffuse)(struct directional_light_t *, shadedata *)
diffuse shading function
static flt light_spotlight_falloff(void *vli, vector *L)
struct point_light_t point_light
vector spotdir
spotlight direction
point_light * newspotlight(void *tex, vector ctr, flt rad, vector dir, flt fallstart, flt fallend)
static flt point_light_shade_diffuse(point_light *li, shadedata *shadevars)
static void light_intersect(const point_light *l, ray *ry)
RT_OBJECT_HEAD flt(* shade_diffuse)(struct point_light_t *, shadedata *)
diffuse shading function
vector dir
lighting direction
directional_light * newdirectionallight(void *, vector)