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.