Super duper bloom.

This commit is contained in:
Jonathas Costa
2019-07-13 16:54:44 -04:00
parent e3775849a3
commit 3c5f4afc3f
8 changed files with 102 additions and 23 deletions

View File

@@ -62,6 +62,7 @@ public:
void setResolution(glm::ivec2 res) override;
void setNAaSamples(int nAaSamples) override;
void setBlurrinessLevel(int level) override;
void setHDRExposure(float hdrExposure) override;
void setGamma(float gamma) override;
void setMaxWhite(float maxWhite) override;
@@ -147,6 +148,7 @@ private:
GLuint _fragmentTexture;
GLuint _vertexPositionBuffer;
int _nAaSamples;
int _blurrinessLevel = 1;
float _hdrExposure = 0.4f;
float _hdrBackground = 2.8f;

View File

@@ -156,6 +156,7 @@ public:
void setResolution(glm::ivec2 res) override;
void setNAaSamples(int nAaSamples) override;
void setBlurrinessLevel(int level) override;
void setHDRExposure(float hdrExposure) override;
void setGamma(float gamma) override;
void setMaxWhite(float maxWhite) override;
@@ -230,8 +231,11 @@ private:
toneMapOperator, aveLum, maxWhite, Hue, Saturation, Value,
Lightness, colorSpace, nAaSamples) _hdrUniformCache;
UniformCache(renderedImage, bloomImage, bloomOrigFactor, bloomNewFactor)
_bloomUniformCache;
UniformCache(renderedImage, bloomImage, bloomOrigFactor, bloomNewFactor,
numberOfSamples) _bloomUniformCache;
UniformCache(numberOfSamples, msaaTexture, blurriness)
_bloomFilterUniformCache;
UniformCache(renderedImage, maxWhite, imageWidth, imageHeight) _histoUniformCache;
@@ -260,6 +264,7 @@ private:
glm::ivec2 _resolution = glm::ivec2(0);
int _nAaSamples;
int _blurrinessLevel = 1;
float _hdrExposure = 1.68f;
float _gamma = 0.86f;
float _maxWhite = 1.0f;

View File

@@ -243,6 +243,7 @@ private:
properties::PropertyOwner _bloomOwner;
properties::BoolProperty _enableBloom;
properties::BoolProperty _automaticBloom;
properties::IntProperty _bloomBlurrinessLevel;
properties::FloatProperty _bloomThreshouldMin;
properties::FloatProperty _bloomThreshouldMax;
properties::FloatProperty _bloomOrigColorFactor;

View File

@@ -50,6 +50,7 @@ public:
virtual void setResolution(glm::ivec2 res) = 0;
virtual void setNAaSamples(int nAaSamples) = 0;
virtual void setBlurrinessLevel(int level) = 0;
virtual void setHDRExposure(float hdrExposure) = 0;
virtual void setGamma(float gamma) = 0;
virtual void setMaxWhite(float maxWhite) = 0;