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

#include <scene/graphics/renderPassSsao.h>

Inheritance diagram for visutwin::canvas::RenderPassSsao:
[legend]

Public Member Functions

void after () override
void execute () override
 RenderPassSsao (const std::shared_ptr< GraphicsDevice > &device, Texture *sourceTexture, CameraComponent *cameraComponent, bool blurEnabled)
float scale () const
void setScale (float value)
TexturessaoTexture () const
 The output SSAO texture (R8, single channel occlusion).
 ~RenderPassSsao ()
Public Member Functions inherited from visutwin::canvas::RenderPassShaderQuad
void clearQuadTextureBindings ()
 RenderPassShaderQuad (const std::shared_ptr< GraphicsDevice > &device)
void setQuadTextureBinding (const size_t slot, Texture *texture)
void setShader (const std::shared_ptr< Shader > &shader)
std::shared_ptr< Shadershader () const
Public Member Functions inherited from visutwin::canvas::RenderPass
void addAfterPass (const std::shared_ptr< RenderPass > &renderPass)
void addBeforePass (const std::shared_ptr< RenderPass > &renderPass)
const std::vector< std::shared_ptr< RenderPass > > & afterPasses () const
void allocateAttachments ()
virtual void before ()
const std::vector< std::shared_ptr< RenderPass > > & beforePasses () const
void clearAfterPasses ()
void clearBeforePasses ()
const std::vector< std::shared_ptr< ColorAttachmentOps > > & colorArrayOps () const
std::shared_ptr< ColorAttachmentOpscolorOps () const
std::shared_ptr< DepthStencilAttachmentOpsdepthStencilOps () const
bool enabled () const
virtual void frameUpdate () const
virtual void init (const std::shared_ptr< RenderTarget > &renderTarget=nullptr, const std::shared_ptr< RenderPassOptions > &options=nullptr)
void log (std::shared_ptr< GraphicsDevice > device, int index=0) const
virtual void onDisable ()
virtual void onEnable ()
virtual void postInit ()
void render ()
 RenderPass (const std::shared_ptr< GraphicsDevice > &device)
std::shared_ptr< RenderTargetrenderTarget () const
bool requiresCubemaps () const
float scaleX () const
float scaleY () const
void setClearColor (const Color *color=nullptr)
void setClearDepth (const float *depthValue=nullptr)
void setClearStencil (const int *stencilValue=nullptr)
void setEnabled (bool value)
void setOptions (const std::shared_ptr< RenderPassOptions > &value)
void setRequiresCubemaps (bool value)
void setSkipEnd (const bool value)
void setSkipStart (const bool value)

Public Attributes

float intensity = 0.5f
float minAngle = 10.0f
float power = 6.0f
float radius = 30.0f
bool randomize = false
int sampleCount = 12
Public Attributes inherited from visutwin::canvas::RenderPassShaderQuad
std::shared_ptr< BlendStateblendState = std::make_shared<BlendState>()
CullMode cullMode = CullMode::CULLFACE_NONE
std::shared_ptr< DepthStatedepthState = std::make_shared<DepthState>()
std::optional< Vector4scissor
std::shared_ptr< StencilParametersstencilBack = nullptr
std::shared_ptr< StencilParametersstencilFront = nullptr
std::optional< Vector4viewport

Additional Inherited Members

Protected Member Functions inherited from visutwin::canvas::RenderPass
std::shared_ptr< GraphicsDevicedevice () const
Protected Attributes inherited from visutwin::canvas::RenderPass
std::string _name
bool _requiresCubemaps = true

Detailed Description

Render pass implementation of Screen-Space Ambient Occlusion (SSAO) based on the non-linear depth buffer. Uses Scalable Ambient Obscurance algorithm (Morgan McGuire) adapted by Naughty Dog.

Definition at line 22 of file renderPassSsao.h.

Constructor & Destructor Documentation

◆ RenderPassSsao()

visutwin::canvas::RenderPassSsao::RenderPassSsao ( const std::shared_ptr< GraphicsDevice > & device,
Texture * sourceTexture,
CameraComponent * cameraComponent,
bool blurEnabled )

◆ ~RenderPassSsao()

visutwin::canvas::RenderPassSsao::~RenderPassSsao ( )
default

Member Function Documentation

◆ after()

void visutwin::canvas::RenderPassSsao::after ( )
overridevirtual

Reimplemented from visutwin::canvas::RenderPass.

Definition at line 158 of file renderPassSsao.cpp.

◆ execute()

◆ scale()

float visutwin::canvas::RenderPassSsao::scale ( ) const
inline

Definition at line 44 of file renderPassSsao.h.

Referenced by execute().

◆ setScale()

void visutwin::canvas::RenderPassSsao::setScale ( float value)

Definition at line 163 of file renderPassSsao.cpp.

References visutwin::canvas::RenderPass::setOptions().

◆ ssaoTexture()

Texture * visutwin::canvas::RenderPassSsao::ssaoTexture ( ) const
inline

The output SSAO texture (R8, single channel occlusion).

Definition at line 38 of file renderPassSsao.h.

Member Data Documentation

◆ intensity

float visutwin::canvas::RenderPassSsao::intensity = 0.5f

Definition at line 31 of file renderPassSsao.h.

Referenced by execute().

◆ minAngle

float visutwin::canvas::RenderPassSsao::minAngle = 10.0f

Definition at line 34 of file renderPassSsao.h.

Referenced by execute().

◆ power

float visutwin::canvas::RenderPassSsao::power = 6.0f

Definition at line 32 of file renderPassSsao.h.

Referenced by execute().

◆ radius

float visutwin::canvas::RenderPassSsao::radius = 30.0f

Definition at line 30 of file renderPassSsao.h.

Referenced by execute().

◆ randomize

bool visutwin::canvas::RenderPassSsao::randomize = false

Definition at line 35 of file renderPassSsao.h.

Referenced by execute().

◆ sampleCount

int visutwin::canvas::RenderPassSsao::sampleCount = 12

Definition at line 33 of file renderPassSsao.h.

Referenced by execute().


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