|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
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 |
| Texture * | cookie () const |
| GraphicsDevice * | device () const |
| bool | enabled () const |
| LightRenderData * | getRenderData (Camera *camera, int face) |
| Light (GraphicsDevice *graphicsDevice, bool clusteredLighting) | |
| MaskType | mask () const |
| GraphNode * | node () 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 |
| ShadowMap * | shadowMap () const |
| const std::array< float, 64 > & | shadowMatrixPalette () const |
| float * | shadowMatrixPaletteData () |
| int | shadowResolution () const |
| ShadowType | shadowType () const |
| ShadowUpdateType | shadowUpdateMode () const |
| const Matrix4 & | shadowViewProjection () const |
| LightType | type () const |
| bool | visibleThisFrame () const |
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.
| visutwin::canvas::Light::Light | ( | GraphicsDevice * | graphicsDevice, |
| bool | clusteredLighting ) |
|
inline |
|
inline |
|
inline |
Definition at line 87 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::generateSplitDistances().
|
inline |
Definition at line 93 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull().
| bool visutwin::canvas::Light::castShadows | ( | ) | const |
Definition at line 26 of file light.cpp.
References visutwin::canvas::MASK_BAKE, and visutwin::canvas::MASK_NONE.
Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().
|
inline |
|
inline |
Definition at line 62 of file light.h.
Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().
| LightRenderData * visutwin::canvas::Light::getRenderData | ( | Camera * | camera, |
| int | face ) |
Definition at line 77 of file light.cpp.
Referenced by visutwin::canvas::ShadowRenderer::getLightRenderData().
|
inline |
Definition at line 107 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull(), and visutwin::canvas::RenderPassShadowLocalNonClustered::RenderPassShadowLocalNonClustered().
| int visutwin::canvas::Light::numCascades | ( | ) | const |
Definition at line 42 of file light.cpp.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull(), visutwin::canvas::ShadowRendererDirectional::generateSplitDistances(), and numShadowFaces().
| int visutwin::canvas::Light::numShadowFaces | ( | ) | const |
Definition at line 31 of file light.cpp.
References visutwin::canvas::LIGHTTYPE_DIRECTIONAL, visutwin::canvas::LIGHTTYPE_OMNI, and numCascades().
Referenced by visutwin::canvas::ShadowRendererLocal::buildNonClusteredRenderPasses(), visutwin::canvas::ShadowMap::create(), visutwin::canvas::ShadowRendererDirectional::getLightRenderPass(), and visutwin::canvas::ShadowRenderer::needsShadowRendering().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 100 of file light.h.
Referenced by visutwin::canvas::Renderer::cullShadowmaps().
|
inline |
|
inline |
|
inline |
Definition at line 80 of file light.h.
Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 96 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull().
|
inline |
Definition at line 97 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::generateSplitDistances().
|
inline |
Definition at line 110 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull().
|
inline |
|
inline |
Definition at line 99 of file light.h.
Referenced by visutwin::canvas::Renderer::cullShadowmaps(), visutwin::canvas::ShadowRenderer::prepareFace(), and visutwin::canvas::Renderer::renderForwardLayer().
|
inline |
|
inline |
Definition at line 95 of file light.h.
Referenced by visutwin::canvas::ShadowRendererDirectional::cull().
|
inline |
Definition at line 113 of file light.h.
Referenced by visutwin::canvas::ShadowMap::create(), and visutwin::canvas::ShadowRendererDirectional::cull().
|
inline |
Definition at line 104 of file light.h.
Referenced by visutwin::canvas::ShadowMap::create().
|
inline |
Definition at line 79 of file light.h.
Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().
|
inline |
|
inline |
Definition at line 70 of file light.h.
Referenced by visutwin::canvas::ShadowRendererLocal::buildNonClusteredRenderPasses(), visutwin::canvas::ShadowMap::create(), visutwin::canvas::ShadowRendererDirectional::cull(), visutwin::canvas::ShadowRenderer::getLightRenderData(), visutwin::canvas::ShadowRendererDirectional::getLightRenderPass(), and visutwin::canvas::ShadowRenderer::prepareFace().
|
inline |
Definition at line 67 of file light.h.
Referenced by visutwin::canvas::ShadowRenderer::needsShadowRendering().