A spotlight, where light rays in a given cone are radiating from a single point in space. Implements distance attenuation and cone soft transition.
More...
|
| SpotLight ()=default |
|
| SpotLight (const glm::vec3 &worldPosition, const glm::vec3 &worldDirection, const glm::vec3 &color, float innerAngle, float outerAngle, float radius) |
|
void | draw (LightRenderer &renderer) override |
|
void | update (double fullTime, double frameTime) override |
|
void | setScene (const BoundingBox &sceneBox) override |
|
glm::vec3 | sample (const glm::vec3 &position, float &dist, float &attenuation) const override |
|
bool | decode (const KeyValues ¶ms) |
|
KeyValues | encode () const override |
|
const glm::vec3 & | position () const |
|
const glm::vec3 & | direction () const |
|
const glm::vec2 & | angles () const |
|
float | radius () const |
|
| Light () |
|
| Light (const glm::vec3 &color) |
|
void | addAnimation (const std::shared_ptr< Animation > &anim) |
|
virtual void | draw (LightRenderer &renderer)=0 |
|
virtual void | update (double fullTime, double frameTime)=0 |
|
virtual void | setScene (const BoundingBox &sceneBox)=0 |
|
virtual glm::vec3 | sample (const glm::vec3 &position, float &dist, float &attenuation) const =0 |
|
virtual KeyValues | encode () const |
|
bool | castsShadow () const |
|
void | setCastShadow (bool shouldCast) |
|
const glm::vec3 & | intensity () const |
|
void | setIntensity (const glm::vec3 &color) |
|
const glm::mat4 & | vp () const |
|
const glm::mat4 & | model () const |
|
const ShadowMap::Region & | shadowMap () const |
|
void | registerShadowMap (const Texture *map, ShadowMode mode, size_t layer=0, const glm::vec2 &minUV=glm::vec2(0.0f), const glm::vec2 &maxUV=glm::vec2(1.0f)) |
|
bool | animated () const |
|
virtual | ~Light ()=default |
|
| Light (const Light &)=delete |
|
Light & | operator= (const Light &)=delete |
|
| Light (Light &&)=default |
|
Light & | operator= (Light &&)=delete |
|
|
static std::shared_ptr< Light > | decode (const KeyValues ¶ms) |
|
bool | decodeBase (const KeyValues ¶ms) |
|
std::vector< std::shared_ptr< Animation > > | _animations |
| Animations list (will be applied in order).
|
|
ShadowMap::Region | _shadowMapInfos |
| Region of the (optional) shadow map containing this light information.
|
|
BoundingBox | _sceneBox |
| The scene bounding box, to fit the shadow map.
|
|
glm::mat4 | _vp |
| VP matrix for shadow casting.
|
|
glm::mat4 | _model |
| Model matrix of the mesh containing the light-covered region.
|
|
glm::vec3 | _color |
| Colored intensity.
|
|
bool | _castShadows |
| Is the light casting shadows (and thus use a shadow map)..
|
|
A spotlight, where light rays in a given cone are radiating from a single point in space. Implements distance attenuation and cone soft transition.
It can be associated with a shadow 2D map with perspective projection, generated using Variance shadow mapping. It is rendered as a cone in deferred rendering.
- See also
- GPU::Frag::Spot_light, GPU::Frag::Light_shadow, GPU::Frag::Light_debug
bool SpotLight::decode |
( |
const KeyValues & |
params | ) |
|
Setup a spot light parameters from a list of key-value tuples. The following keywords will be searched for:
direction: dirX,dirY,dirZ
position: X,Y,Z
radius: radius
cone: innerAngle outerAngle
intensity: R,G,B
shadows: bool
animations:
- animationtype: ...
- ...
- Parameters
-
params | the parameters tuple |
- Returns
- decoding status