Plasma Engine  2.0
Loading...
Searching...
No Matches
SeparatedBilateralBlur.h
1#pragma once
2
3#include <RendererCore/Declarations.h>
4#include <RendererCore/Pipeline/RenderPipelinePass.h>
5#include <RendererCore/Shader/ConstantBufferStorage.h>
6#include <RendererCore/Shader/ShaderResource.h>
7
12class PL_RENDERERCORE_DLL plSeparatedBilateralBlurPass : public plRenderPipelinePass
13{
14 PL_ADD_DYNAMIC_REFLECTION(plSeparatedBilateralBlurPass, plRenderPipelinePass);
15
16public:
19
21
22 virtual void Execute(const plRenderViewContext& renderViewContext, const plArrayPtr<plRenderPipelinePassConnection* const> inputs, const plArrayPtr<plRenderPipelinePassConnection* const> outputs) override;
23 virtual plResult Serialize(plStreamWriter& inout_stream) const override;
24 virtual plResult Deserialize(plStreamReader& inout_stream) override;
25
26 void SetRadius(plUInt32 uiRadius);
27 plUInt32 GetRadius() const;
28
29 void SetGaussianSigma(float fSigma);
30 float GetGaussianSigma() const;
31
32 void SetSharpness(float fSharpness);
33 float GetSharpness() const;
34
35protected:
36 plRenderPipelineNodeInputPin m_PinBlurSourceInput;
37 plRenderPipelineNodeInputPin m_PinDepthInput;
39
40 plUInt32 m_uiRadius = 7;
41 float m_fGaussianSigma = 3.5f;
42 float m_fSharpness = 120.0f;
43 plConstantBufferStorageHandle m_hBilateralBlurCB;
44 plShaderResourceHandle m_hShader;
45};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition ConstantBufferStorage.h:54
Definition RenderPipelinePass.h:26
virtual void Execute(const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)=0
Render into outputs. Both inputs and outputs are passed in with actual texture handles....
virtual bool GetRenderTargetDescriptions(const plView &view, const plArrayPtr< plGALTextureCreationDescription *const > inputs, plArrayPtr< plGALTextureCreationDescription > outputs)=0
For a given input pin configuration, provide the output configuration of this node....
Depth aware blur on input and writes it to an output buffer of the same format.
Definition SeparatedBilateralBlur.h:13
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
Encapsulates a view on the given world through the given camera and rendered with the specified Rende...
Definition View.h:21
Definition RenderPipelineNode.h:44
Definition RenderPipelineNode.h:51
Definition Declarations.h:51
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54