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

#include <scene/renderer/shadowRendererDirectional.h>

Public Member Functions

void buildNonClusteredRenderPasses (FrameGraph *frameGraph, const std::unordered_map< Camera *, std::vector< Light * > > &cameraDirShadowLights)
void cull (Light *light, Camera *camera)
std::shared_ptr< RenderPassgetLightRenderPass (Light *light, Camera *camera, int face, bool clearRenderTarget, bool allCascadesRendering)
 ShadowRendererDirectional (const std::shared_ptr< GraphicsDevice > &device, Renderer *renderer, ShadowRenderer *shadowRenderer)

Static Public Member Functions

static void generateSplitDistances (Light *light, float nearDist, float farDist)

Detailed Description

Definition at line 23 of file shadowRendererDirectional.h.

Constructor & Destructor Documentation

◆ ShadowRendererDirectional()

visutwin::canvas::ShadowRendererDirectional::ShadowRendererDirectional ( const std::shared_ptr< GraphicsDevice > & device,
Renderer * renderer,
ShadowRenderer * shadowRenderer )

Definition at line 20 of file shadowRendererDirectional.cpp.

Member Function Documentation

◆ buildNonClusteredRenderPasses()

void visutwin::canvas::ShadowRendererDirectional::buildNonClusteredRenderPasses ( FrameGraph * frameGraph,
const std::unordered_map< Camera *, std::vector< Light * > > & cameraDirShadowLights )

◆ cull()

void visutwin::canvas::ShadowRendererDirectional::cull ( Light * light,
Camera * camera )

Definition at line 47 of file shadowRendererDirectional.cpp.

References visutwin::canvas::Light::cascadeViewports(), visutwin::canvas::Vector3::dot(), visutwin::canvas::Camera::farClip(), visutwin::canvas::Quaternion::fromEulerAngles(), generateSplitDistances(), visutwin::canvas::Matrix4::getColumn(), visutwin::canvas::Camera::getFrustumCorners(), visutwin::canvas::Vector4::getW(), visutwin::canvas::Vector4::getX(), visutwin::canvas::Vector4::getY(), visutwin::canvas::Vector3::getZ(), visutwin::canvas::Vector4::getZ(), visutwin::canvas::Matrix4::identity(), visutwin::canvas::Matrix4::inverse(), visutwin::canvas::Vector3::lengthSquared(), visutwin::canvas::LIGHTTYPE_DIRECTIONAL, visutwin::canvas::Camera::nearClip(), visutwin::canvas::Camera::node(), visutwin::canvas::Light::node(), visutwin::canvas::Vector3::normalized(), visutwin::canvas::Light::numCascades(), visutwin::canvas::Orthographic, visutwin::canvas::Camera::projectionMatrix(), visutwin::canvas::GraphNode::rotation(), visutwin::canvas::Camera::setAspectRatio(), visutwin::canvas::Matrix4::setElement(), visutwin::canvas::Camera::setFarClip(), visutwin::canvas::Camera::setNearClip(), visutwin::canvas::Camera::setOrthoHeight(), visutwin::canvas::Camera::setProjection(), visutwin::canvas::LightRenderData::shadowCamera, visutwin::canvas::Light::shadowCascadeDistances(), visutwin::canvas::Light::shadowDistance(), visutwin::canvas::Light::shadowMatrixPaletteData(), visutwin::canvas::Light::shadowResolution(), visutwin::canvas::LightRenderData::shadowScissor, visutwin::canvas::LightRenderData::shadowViewport, visutwin::canvas::Matrix4::transformPoint(), visutwin::canvas::Matrix4::trs(), visutwin::canvas::Light::type(), and visutwin::canvas::GraphNode::worldTransform().

◆ generateSplitDistances()

void visutwin::canvas::ShadowRendererDirectional::generateSplitDistances ( Light * light,
float nearDist,
float farDist )
static

◆ getLightRenderPass()

std::shared_ptr< RenderPass > visutwin::canvas::ShadowRendererDirectional::getLightRenderPass ( Light * light,
Camera * camera,
int face,
bool clearRenderTarget,
bool allCascadesRendering )

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