Polyphase Game Engine
Loading...
Searching...
No Matches
BlurPass.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Graphics/Vulkan/PostProcess/PostProcessPass.h
"
4
5
#define BLUR_MAX_SAMPLES 127
6
7
struct
BlurUniforms
8
{
9
int32_t
mHorizontal
= 0;
10
int32_t
mNumSamples
= 4;
11
float
mBlurSize
= 4.0f;
12
float
mSigmaRatio
= 0.2f;
13
14
int32_t
mBoxBlur
= 0;
15
int32_t
mInputWidth
= 1;
16
int32_t
mInputHeight
= 1;
17
int32_t
mPad0
= 1337;
18
19
glm::vec4
mGaussianWeights
[
BLUR_MAX_SAMPLES
] = { };
20
};
21
22
class
BlurPass
:
public
PostProcessPass
23
{
24
public
:
25
26
virtual
void
Create
()
override
;
27
virtual
void
Destroy
()
override
;
28
29
virtual
void
Render
(Image* input, Image* output)
override
;
30
31
virtual
void
GatherProperties
(std::vector<Property>& props)
override
;
32
33
protected
:
34
35
Image*
mXBlurImage
=
nullptr
;
36
BlurUniforms
mUniforms
= {};
37
38
// Extra render targets used when blurring at half or quarter resolution.
39
Image*
mXBlurLowResImage
=
nullptr
;
40
Image*
mYBlurLowResImage
=
nullptr
;
41
int32_t
mDownsampleFactor
= 1;
42
bool
mEnableDownsample
=
false
;
43
};
BLUR_MAX_SAMPLES
#define BLUR_MAX_SAMPLES
Definition
BlurPass.h:5
PostProcessPass.h
BlurPass
Definition
BlurPass.h:23
BlurPass::mEnableDownsample
bool mEnableDownsample
Definition
BlurPass.h:42
BlurPass::Destroy
virtual void Destroy() override
Definition
BlurPass.cpp:28
BlurPass::GatherProperties
virtual void GatherProperties(std::vector< Property > &props) override
Definition
BlurPass.cpp:312
BlurPass::mXBlurImage
Image * mXBlurImage
Definition
BlurPass.h:35
BlurPass::mXBlurLowResImage
Image * mXBlurLowResImage
Definition
BlurPass.h:39
BlurPass::Create
virtual void Create() override
Definition
BlurPass.cpp:5
BlurPass::Render
virtual void Render(Image *input, Image *output) override
Definition
BlurPass.cpp:45
BlurPass::mDownsampleFactor
int32_t mDownsampleFactor
Definition
BlurPass.h:41
BlurPass::mYBlurLowResImage
Image * mYBlurLowResImage
Definition
BlurPass.h:40
BlurPass::mUniforms
BlurUniforms mUniforms
Definition
BlurPass.h:36
PostProcessPass
Definition
PostProcessPass.h:9
BlurUniforms
Definition
BlurPass.h:8
BlurUniforms::mHorizontal
int32_t mHorizontal
Definition
BlurPass.h:9
BlurUniforms::mBoxBlur
int32_t mBoxBlur
Definition
BlurPass.h:14
BlurUniforms::mGaussianWeights
glm::vec4 mGaussianWeights[BLUR_MAX_SAMPLES]
Definition
BlurPass.h:19
BlurUniforms::mInputWidth
int32_t mInputWidth
Definition
BlurPass.h:15
BlurUniforms::mBlurSize
float mBlurSize
Definition
BlurPass.h:11
BlurUniforms::mInputHeight
int32_t mInputHeight
Definition
BlurPass.h:16
BlurUniforms::mPad0
int32_t mPad0
Definition
BlurPass.h:17
BlurUniforms::mSigmaRatio
float mSigmaRatio
Definition
BlurPass.h:12
BlurUniforms::mNumSamples
int32_t mNumSamples
Definition
BlurPass.h:10
Engine
Source
Graphics
Vulkan
PostProcess
BlurPass.h
Generated by
1.9.8