|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
#include <scene/graphics/renderPassSsao.h>
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) |
| Texture * | ssaoTexture () 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< Shader > | shader () 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< ColorAttachmentOps > | colorOps () const |
| std::shared_ptr< DepthStencilAttachmentOps > | depthStencilOps () 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< RenderTarget > | renderTarget () 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< BlendState > | blendState = std::make_shared<BlendState>() |
| CullMode | cullMode = CullMode::CULLFACE_NONE |
| std::shared_ptr< DepthState > | depthState = std::make_shared<DepthState>() |
| std::optional< Vector4 > | scissor |
| std::shared_ptr< StencilParameters > | stencilBack = nullptr |
| std::shared_ptr< StencilParameters > | stencilFront = nullptr |
| std::optional< Vector4 > | viewport |
Additional Inherited Members | |
| Protected Member Functions inherited from visutwin::canvas::RenderPass | |
| std::shared_ptr< GraphicsDevice > | device () const |
| Protected Attributes inherited from visutwin::canvas::RenderPass | |
| std::string | _name |
| bool | _requiresCubemaps = true |
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.
| visutwin::canvas::RenderPassSsao::RenderPassSsao | ( | const std::shared_ptr< GraphicsDevice > & | device, |
| Texture * | sourceTexture, | ||
| CameraComponent * | cameraComponent, | ||
| bool | blurEnabled ) |
|
default |
|
overridevirtual |
Reimplemented from visutwin::canvas::RenderPass.
Definition at line 158 of file renderPassSsao.cpp.
|
overridevirtual |
Reimplemented from visutwin::canvas::RenderPassShaderQuad.
Definition at line 89 of file renderPassSsao.cpp.
References visutwin::canvas::SsaoPassParams::angleIncCos, visutwin::canvas::SsaoPassParams::angleIncSin, visutwin::canvas::SsaoPassParams::aspect, visutwin::canvas::SsaoPassParams::bias, visutwin::canvas::SsaoPassParams::cameraFar, visutwin::canvas::SsaoPassParams::cameraNear, visutwin::canvas::DEG_TO_RAD, visutwin::canvas::SsaoPassParams::depthTexture, visutwin::canvas::RenderPass::device(), intensity, visutwin::canvas::SsaoPassParams::intensity, visutwin::canvas::SsaoPassParams::invRadiusSquared, visutwin::canvas::SsaoPassParams::invResolutionX, visutwin::canvas::SsaoPassParams::invResolutionY, minAngle, visutwin::canvas::SsaoPassParams::minHorizonAngleSineSquared, visutwin::canvas::SsaoPassParams::peak2, visutwin::canvas::PI, power, visutwin::canvas::SsaoPassParams::power, visutwin::canvas::SsaoPassParams::projectionScaleRadius, radius, randomize, visutwin::canvas::SsaoPassParams::randomize, visutwin::canvas::RenderPass::renderTarget(), sampleCount, visutwin::canvas::SsaoPassParams::sampleCount, scale(), and visutwin::canvas::SsaoPassParams::spiralTurns.
|
inline |
Definition at line 44 of file renderPassSsao.h.
Referenced by execute().
| void visutwin::canvas::RenderPassSsao::setScale | ( | float | value | ) |
Definition at line 163 of file renderPassSsao.cpp.
References visutwin::canvas::RenderPass::setOptions().
|
inline |
The output SSAO texture (R8, single channel occlusion).
Definition at line 38 of file renderPassSsao.h.
| float visutwin::canvas::RenderPassSsao::intensity = 0.5f |
Definition at line 31 of file renderPassSsao.h.
Referenced by execute().
| float visutwin::canvas::RenderPassSsao::minAngle = 10.0f |
Definition at line 34 of file renderPassSsao.h.
Referenced by execute().
| float visutwin::canvas::RenderPassSsao::power = 6.0f |
Definition at line 32 of file renderPassSsao.h.
Referenced by execute().
| float visutwin::canvas::RenderPassSsao::radius = 30.0f |
Definition at line 30 of file renderPassSsao.h.
Referenced by execute().
| bool visutwin::canvas::RenderPassSsao::randomize = false |
Definition at line 35 of file renderPassSsao.h.
Referenced by execute().
| int visutwin::canvas::RenderPassSsao::sampleCount = 12 |
Definition at line 33 of file renderPassSsao.h.
Referenced by execute().