VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::Light Class Reference

Directional, point, spot, or area light with shadow mapping and cookie projection. More...

#include <scene/light.h>

Public Member Functions

bool atlasSlotUpdated () const
bool atlasViewportAllocated () const
float cascadeBlend () const
float cascadeDistribution () const
const std::array< Vector4, 4 > & cascadeViewports () const
bool castShadows () const
Texturecookie () const
GraphicsDevicedevice () const
bool enabled () const
LightRenderDatagetRenderData (Camera *camera, int face)
 Light (GraphicsDevice *graphicsDevice, bool clusteredLighting)
MaskType mask () const
GraphNodenode () const
float normalBias () const
int numCascades () const
int numShadowFaces () const
float outerConeAngle () const
float range () const
void setCascadeBlend (const float value)
void setCascadeDistribution (const float value)
void setCastShadows (const bool value)
void setEnabled (const bool value)
void setMask (const MaskType value)
void setNode (GraphNode *value)
void setNormalBias (const float value)
void setNumCascades (int value)
void setOuterConeAngle (const float value)
void setRange (const float value)
void setShadowBias (const float value)
void setShadowDistance (const float value)
void setShadowIntensity (const float value)
void setShadowMap (ShadowMap *value)
void setShadowResolution (const int value)
void setShadowType (const ShadowType value)
void setShadowUpdateMode (const ShadowUpdateType mode)
void setShadowViewProjection (const Matrix4 &value)
void setType (const LightType value)
void setVisibleThisFrame (const bool value)
float shadowBias () const
const std::array< float, 4 > & shadowCascadeDistances () const
float * shadowCascadeDistancesData ()
float shadowDistance () const
float shadowIntensity () const
ShadowMapshadowMap () const
const std::array< float, 64 > & shadowMatrixPalette () const
float * shadowMatrixPaletteData ()
int shadowResolution () const
ShadowType shadowType () const
ShadowUpdateType shadowUpdateMode () const
const Matrix4shadowViewProjection () const
LightType type () const
bool visibleThisFrame () const

Detailed Description

Directional, point, spot, or area light with shadow mapping and cookie projection.

Light defines the type, color, intensity, range, and shadow parameters for a light source. Shadow-casting lights own LightRenderData instances (one per face for omni shadows) that hold the shadow camera, viewport, and scissor used during shadow pass rendering.

Definition at line 53 of file light.h.

Constructor & Destructor Documentation

◆ Light()

visutwin::canvas::Light::Light ( GraphicsDevice * graphicsDevice,
bool clusteredLighting )

Definition at line 20 of file light.cpp.

Member Function Documentation

◆ atlasSlotUpdated()

bool visutwin::canvas::Light::atlasSlotUpdated ( ) const
inline

Definition at line 60 of file light.h.

◆ atlasViewportAllocated()

bool visutwin::canvas::Light::atlasViewportAllocated ( ) const
inline

Definition at line 58 of file light.h.

◆ cascadeBlend()

float visutwin::canvas::Light::cascadeBlend ( ) const
inline

Definition at line 90 of file light.h.

◆ cascadeDistribution()

float visutwin::canvas::Light::cascadeDistribution ( ) const
inline

◆ cascadeViewports()

const std::array< Vector4, 4 > & visutwin::canvas::Light::cascadeViewports ( ) const
inline

Definition at line 93 of file light.h.

Referenced by visutwin::canvas::ShadowRendererDirectional::cull().

◆ castShadows()

bool visutwin::canvas::Light::castShadows ( ) const

◆ cookie()

Texture * visutwin::canvas::Light::cookie ( ) const
inline

Definition at line 65 of file light.h.

◆ device()

GraphicsDevice * visutwin::canvas::Light::device ( ) const
inline

Definition at line 139 of file light.h.

◆ enabled()

bool visutwin::canvas::Light::enabled ( ) const
inline

Definition at line 62 of file light.h.

Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().

◆ getRenderData()

LightRenderData * visutwin::canvas::Light::getRenderData ( Camera * camera,
int face )

Definition at line 77 of file light.cpp.

Referenced by visutwin::canvas::ShadowRenderer::getLightRenderData().

◆ mask()

MaskType visutwin::canvas::Light::mask ( ) const
inline

Definition at line 76 of file light.h.

◆ node()

◆ normalBias()

float visutwin::canvas::Light::normalBias ( ) const
inline

Definition at line 121 of file light.h.

◆ numCascades()

int visutwin::canvas::Light::numCascades ( ) const

◆ numShadowFaces()

◆ outerConeAngle()

float visutwin::canvas::Light::outerConeAngle ( ) const
inline

Definition at line 136 of file light.h.

◆ range()

float visutwin::canvas::Light::range ( ) const
inline

Definition at line 133 of file light.h.

◆ setCascadeBlend()

void visutwin::canvas::Light::setCascadeBlend ( const float value)
inline

Definition at line 91 of file light.h.

◆ setCascadeDistribution()

void visutwin::canvas::Light::setCascadeDistribution ( const float value)
inline

Definition at line 88 of file light.h.

◆ setCastShadows()

void visutwin::canvas::Light::setCastShadows ( const bool value)
inline

Definition at line 74 of file light.h.

◆ setEnabled()

void visutwin::canvas::Light::setEnabled ( const bool value)
inline

Definition at line 63 of file light.h.

◆ setMask()

void visutwin::canvas::Light::setMask ( const MaskType value)
inline

Definition at line 77 of file light.h.

◆ setNode()

void visutwin::canvas::Light::setNode ( GraphNode * value)
inline

Definition at line 108 of file light.h.

◆ setNormalBias()

void visutwin::canvas::Light::setNormalBias ( const float value)
inline

Definition at line 122 of file light.h.

◆ setNumCascades()

void visutwin::canvas::Light::setNumCascades ( int value)

Definition at line 48 of file light.cpp.

◆ setOuterConeAngle()

void visutwin::canvas::Light::setOuterConeAngle ( const float value)
inline

Definition at line 137 of file light.h.

◆ setRange()

void visutwin::canvas::Light::setRange ( const float value)
inline

Definition at line 134 of file light.h.

◆ setShadowBias()

void visutwin::canvas::Light::setShadowBias ( const float value)
inline

Definition at line 118 of file light.h.

◆ setShadowDistance()

void visutwin::canvas::Light::setShadowDistance ( const float value)
inline

Definition at line 111 of file light.h.

◆ setShadowIntensity()

void visutwin::canvas::Light::setShadowIntensity ( const float value)
inline

Definition at line 126 of file light.h.

◆ setShadowMap()

void visutwin::canvas::Light::setShadowMap ( ShadowMap * value)
inline

Definition at line 100 of file light.h.

Referenced by visutwin::canvas::Renderer::cullShadowmaps().

◆ setShadowResolution()

void visutwin::canvas::Light::setShadowResolution ( const int value)
inline

Definition at line 114 of file light.h.

◆ setShadowType()

void visutwin::canvas::Light::setShadowType ( const ShadowType value)
inline

Definition at line 105 of file light.h.

◆ setShadowUpdateMode()

void visutwin::canvas::Light::setShadowUpdateMode ( const ShadowUpdateType mode)
inline

Definition at line 80 of file light.h.

Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().

◆ setShadowViewProjection()

void visutwin::canvas::Light::setShadowViewProjection ( const Matrix4 & value)
inline

Definition at line 130 of file light.h.

◆ setType()

void visutwin::canvas::Light::setType ( const LightType value)
inline

Definition at line 71 of file light.h.

◆ setVisibleThisFrame()

void visutwin::canvas::Light::setVisibleThisFrame ( const bool value)
inline

Definition at line 68 of file light.h.

◆ shadowBias()

float visutwin::canvas::Light::shadowBias ( ) const
inline

Definition at line 117 of file light.h.

◆ shadowCascadeDistances()

const std::array< float, 4 > & visutwin::canvas::Light::shadowCascadeDistances ( ) const
inline

Definition at line 96 of file light.h.

Referenced by visutwin::canvas::ShadowRendererDirectional::cull().

◆ shadowCascadeDistancesData()

float * visutwin::canvas::Light::shadowCascadeDistancesData ( )
inline

◆ shadowDistance()

float visutwin::canvas::Light::shadowDistance ( ) const
inline

Definition at line 110 of file light.h.

Referenced by visutwin::canvas::ShadowRendererDirectional::cull().

◆ shadowIntensity()

float visutwin::canvas::Light::shadowIntensity ( ) const
inline

Definition at line 125 of file light.h.

◆ shadowMap()

ShadowMap * visutwin::canvas::Light::shadowMap ( ) const
inline

◆ shadowMatrixPalette()

const std::array< float, 64 > & visutwin::canvas::Light::shadowMatrixPalette ( ) const
inline

Definition at line 94 of file light.h.

◆ shadowMatrixPaletteData()

float * visutwin::canvas::Light::shadowMatrixPaletteData ( )
inline

Definition at line 95 of file light.h.

Referenced by visutwin::canvas::ShadowRendererDirectional::cull().

◆ shadowResolution()

int visutwin::canvas::Light::shadowResolution ( ) const
inline

◆ shadowType()

ShadowType visutwin::canvas::Light::shadowType ( ) const
inline

Definition at line 104 of file light.h.

Referenced by visutwin::canvas::ShadowMap::create().

◆ shadowUpdateMode()

ShadowUpdateType visutwin::canvas::Light::shadowUpdateMode ( ) const
inline

Definition at line 79 of file light.h.

Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().

◆ shadowViewProjection()

const Matrix4 & visutwin::canvas::Light::shadowViewProjection ( ) const
inline

Definition at line 129 of file light.h.

◆ type()

◆ visibleThisFrame()

bool visutwin::canvas::Light::visibleThisFrame ( ) const
inline

Definition at line 67 of file light.h.

Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().


The documentation for this class was generated from the following files: