SG_Light — Agar-SG
light source node
#include <agar/core.h>
#include <agar/sg.h>
The SG_Light node defines a light source
in a SG(3)
scene-graph. Each light source is associated with a priority number, which
determines which lights are used in the rendering. The number of lights
supported for rendering is dependent on the renderer implementation.
SG_Light *
SG_LightNew(SG_Node
*parent, const char
*name);
void
SG_LightAmbient(SG_Light
*lt, M_Color
c);
void
SG_LightDiffuse(SG_Light
*lt, M_Color
c);
void
SG_LightSpecular(SG_Light
*lt, M_Color
c);
void
SG_LightSpot(SG_Light
*lt, M_Real cutoff,
M_Real exponent,
M_Vector3 dir);
The
SG_LightNew()
function allocates, initializes, and attaches a
SG_Light object.
The functions
SG_LightAmbient(),
SG_LightDiffuse() and
SG_LightSpecular() configure the colors associated
with the ambient, diffuse and specular components of the light source.
SG_LightSpot()
sets the spot parameters of the light source. cutoff
specifies the cutoff angle in degrees, exponent
specifies the light intensity (the higher the exponent, the more focused the
light source; a value of 0 provides uniform distribution), and
dir is the direction vector. If the cutoff angle is
< 180 degrees, the light source is directional, otherwise it is treated
as a point source and the direction vector is ignored.
void
SG_LightSetup(SG_Light
*lt, SG_View
*sv);
The
SG_LightSetup()
function sets up the renderer states associated with a light, prior to
rendering. This function is usually invoked from the
draw()
operation of an
SG_View(3)
(or derived) widget, prior to rendering a scene.
For the SG_Light object:
- int pri
- Priority of light source when number of sources is limited (0 = highest
priority).
- M_Color ambient
- Ambient color component of source.
- M_Color diffuse
- Diffuse color component of source.
- M_Color specular
- Specular color component of source.
- M_Real spot_cutoff
- Spotlight cutoff angle (or 180 for point source).
- M_Real spot_exponent
- Spotlight intensity distribution.
- M_Vector3 spot_dir
- Spotlight direction.
- M_Real Kc
- Constant light attenuation factor.
- M_Real Kl
- Linear light attenuation factor.
- M_Real Kq
- Quadratic light attenuation factor.
The SG_Light node class first appeared in
Agar 1.6.0.