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

Perspective or orthographic camera with projection matrix, jitter (TAA), and render target binding. More...

#include <scene/camera.h>

Public Member Functions

void _enableRenderPassColorGrab (const std::shared_ptr< GraphicsDevice > &device, bool enable)
void _enableRenderPassDepthGrab (const std::shared_ptr< GraphicsDevice > &device, bool enable)
float aspectRatio () const
AspectRatioMode aspectRatioMode () const
const ColorclearColor () const
bool clearColorBufferEnabled () const
bool clearDepthBufferEnabled () const
bool clearStencilBufferEnabled () const
float farClip () const
float fov () const
std::array< Vector3, 8 > getFrustumCorners (const float nearDist, const float farDist) const
bool horizontalFov () const
float jitter () const
const std::array< float, 4 > & jitters () const
float nearClip () const
const std::unique_ptr< GraphNode > & node () const
float orthoHeight () const
bool planarReflectionDepthPass () const
ProjectionType projection () const
const Matrix4projectionMatrix ()
const Matrix4projectionMatrixSkybox ()
const Vector4rect () const
const std::shared_ptr< RenderPassColorGrab > & renderPassColorGrab () const
const std::shared_ptr< RenderPass > & renderPassDepthGrab () const
const std::vector< std::shared_ptr< RenderPass > > & renderPasses () const
const std::shared_ptr< RenderTarget > & renderTarget () const
const Vector4scissorRect () const
void setAspectRatio (float value)
void setAspectRatioMode (AspectRatioMode value)
void setClearColor (const Color &value)
void setClearColorBuffer (bool value)
void setClearDepthBuffer (bool value)
void setClearStencilBuffer (bool value)
void setFarClip (const float value)
void setFov (float value)
void setJitter (const float value)
void setNearClip (const float value)
void setNode (GraphNode *value)
void setOrthoHeight (const float value)
void setPlanarReflectionDepthPass (bool v)
void setProjection (ProjectionType value)
void setRect (const Vector4 &value)
void setRenderTarget (const std::shared_ptr< RenderTarget > &value)
void setScissorRect (const Vector4 &value)
void setScissorRectClear (bool value)
void storeShaderMatrices (const Matrix4 &viewProjection, float jitterX, float jitterY, int renderVersion)
const Matrix4viewProjectionInverse () const
const Matrix4viewProjectionPrevious () const

Detailed Description

Perspective or orthographic camera with projection matrix, jitter (TAA), and render target binding.

Camera manages the view-to-clip transformation and owns the list of RenderPass instances that define how the camera's view is rendered (forward, shadow, post-process).

Definition at line 39 of file camera.h.

Member Function Documentation

◆ _enableRenderPassColorGrab()

void visutwin::canvas::Camera::_enableRenderPassColorGrab ( const std::shared_ptr< GraphicsDevice > & device,
bool enable )

Definition at line 77 of file camera.cpp.

◆ _enableRenderPassDepthGrab()

void visutwin::canvas::Camera::_enableRenderPassDepthGrab ( const std::shared_ptr< GraphicsDevice > & device,
bool enable )

Definition at line 88 of file camera.cpp.

◆ aspectRatio()

float visutwin::canvas::Camera::aspectRatio ( ) const
inline

Definition at line 48 of file camera.h.

◆ aspectRatioMode()

AspectRatioMode visutwin::canvas::Camera::aspectRatioMode ( ) const
inline

Definition at line 50 of file camera.h.

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

◆ clearColor()

const Color & visutwin::canvas::Camera::clearColor ( ) const
inline

Definition at line 89 of file camera.h.

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

◆ clearColorBufferEnabled()

bool visutwin::canvas::Camera::clearColorBufferEnabled ( ) const
inline

Definition at line 112 of file camera.h.

◆ clearDepthBufferEnabled()

bool visutwin::canvas::Camera::clearDepthBufferEnabled ( ) const
inline

Definition at line 113 of file camera.h.

◆ clearStencilBufferEnabled()

bool visutwin::canvas::Camera::clearStencilBufferEnabled ( ) const
inline

Definition at line 114 of file camera.h.

◆ farClip()

float visutwin::canvas::Camera::farClip ( ) const
inline

Definition at line 57 of file camera.h.

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

◆ fov()

float visutwin::canvas::Camera::fov ( ) const
inline

Definition at line 42 of file camera.h.

◆ getFrustumCorners()

std::array< Vector3, 8 > visutwin::canvas::Camera::getFrustumCorners ( const float nearDist,
const float farDist ) const
inline

◆ horizontalFov()

bool visutwin::canvas::Camera::horizontalFov ( ) const
inline

Definition at line 63 of file camera.h.

◆ jitter()

float visutwin::canvas::Camera::jitter ( ) const
inline

Definition at line 76 of file camera.h.

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

◆ jitters()

const std::array< float, 4 > & visutwin::canvas::Camera::jitters ( ) const
inline

Definition at line 81 of file camera.h.

◆ nearClip()

float visutwin::canvas::Camera::nearClip ( ) const
inline

Definition at line 54 of file camera.h.

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

◆ node()

◆ orthoHeight()

float visutwin::canvas::Camera::orthoHeight ( ) const
inline

Definition at line 60 of file camera.h.

◆ planarReflectionDepthPass()

bool visutwin::canvas::Camera::planarReflectionDepthPass ( ) const
inlinenodiscard

Definition at line 220 of file camera.h.

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

◆ projection()

ProjectionType visutwin::canvas::Camera::projection ( ) const
inline

Definition at line 45 of file camera.h.

◆ projectionMatrix()

◆ projectionMatrixSkybox()

const Matrix4 & visutwin::canvas::Camera::projectionMatrixSkybox ( )
inline

Definition at line 70 of file camera.h.

◆ rect()

const Vector4 & visutwin::canvas::Camera::rect ( ) const
inline

Definition at line 94 of file camera.h.

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

◆ renderPassColorGrab()

const std::shared_ptr< RenderPassColorGrab > & visutwin::canvas::Camera::renderPassColorGrab ( ) const
inline

Definition at line 116 of file camera.h.

◆ renderPassDepthGrab()

const std::shared_ptr< RenderPass > & visutwin::canvas::Camera::renderPassDepthGrab ( ) const
inline

Definition at line 118 of file camera.h.

◆ renderPasses()

const std::vector< std::shared_ptr< RenderPass > > & visutwin::canvas::Camera::renderPasses ( ) const
inline

Definition at line 84 of file camera.h.

◆ renderTarget()

const std::shared_ptr< RenderTarget > & visutwin::canvas::Camera::renderTarget ( ) const
inline

◆ scissorRect()

const Vector4 & visutwin::canvas::Camera::scissorRect ( ) const
inline

Definition at line 99 of file camera.h.

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

◆ setAspectRatio()

void visutwin::canvas::Camera::setAspectRatio ( float value)

◆ setAspectRatioMode()

void visutwin::canvas::Camera::setAspectRatioMode ( AspectRatioMode value)

Definition at line 33 of file camera.cpp.

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

◆ setClearColor()

void visutwin::canvas::Camera::setClearColor ( const Color & value)
inline

Definition at line 90 of file camera.h.

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

◆ setClearColorBuffer()

void visutwin::canvas::Camera::setClearColorBuffer ( bool value)
inline

Definition at line 111 of file camera.h.

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

◆ setClearDepthBuffer()

void visutwin::canvas::Camera::setClearDepthBuffer ( bool value)
inline

Definition at line 107 of file camera.h.

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

◆ setClearStencilBuffer()

void visutwin::canvas::Camera::setClearStencilBuffer ( bool value)
inline

Definition at line 109 of file camera.h.

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

◆ setFarClip()

void visutwin::canvas::Camera::setFarClip ( const float value)
inline

◆ setFov()

void visutwin::canvas::Camera::setFov ( float value)
inline

◆ setJitter()

void visutwin::canvas::Camera::setJitter ( const float value)
inline

Definition at line 77 of file camera.h.

◆ setNearClip()

void visutwin::canvas::Camera::setNearClip ( const float value)
inline

◆ setNode()

void visutwin::canvas::Camera::setNode ( GraphNode * value)

Definition at line 12 of file camera.cpp.

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

◆ setOrthoHeight()

void visutwin::canvas::Camera::setOrthoHeight ( const float value)
inline

Definition at line 61 of file camera.h.

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

◆ setPlanarReflectionDepthPass()

void visutwin::canvas::Camera::setPlanarReflectionDepthPass ( bool v)
inline

Definition at line 219 of file camera.h.

◆ setProjection()

void visutwin::canvas::Camera::setProjection ( ProjectionType value)

◆ setRect()

void visutwin::canvas::Camera::setRect ( const Vector4 & value)
inline

Definition at line 95 of file camera.h.

◆ setRenderTarget()

void visutwin::canvas::Camera::setRenderTarget ( const std::shared_ptr< RenderTarget > & value)
inline

◆ setScissorRect()

void visutwin::canvas::Camera::setScissorRect ( const Vector4 & value)
inline

Definition at line 100 of file camera.h.

◆ setScissorRectClear()

void visutwin::canvas::Camera::setScissorRectClear ( bool value)
inline

Definition at line 105 of file camera.h.

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

◆ storeShaderMatrices()

void visutwin::canvas::Camera::storeShaderMatrices ( const Matrix4 & viewProjection,
float jitterX,
float jitterY,
int renderVersion )

◆ viewProjectionInverse()

const Matrix4 & visutwin::canvas::Camera::viewProjectionInverse ( ) const
inline

Definition at line 80 of file camera.h.

◆ viewProjectionPrevious()

const Matrix4 & visutwin::canvas::Camera::viewProjectionPrevious ( ) const
inline

Definition at line 79 of file camera.h.


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