| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "Uniforms.glsl"
- #include "Samplers.glsl"
- #include "Transform.glsl"
- #include "ScreenPos.glsl"
- #include "PostProcess.glsl"
- varying vec2 vTexCoord;
- varying vec2 vScreenPos;
- #ifdef COMPILEPS
- uniform float cBloomHDRThreshold;
- uniform float cBloomHDRBlurSigma;
- uniform float cBloomHDRBlurRadius;
- uniform vec2 cBloomHDRBlurDir;
- uniform vec2 cBloomHDRMix;
- uniform vec2 cBright2InvSize;
- uniform vec2 cBright4InvSize;
- uniform vec2 cBright8InvSize;
- uniform vec2 cBright16InvSize;
- const int BlurKernelSize = 5;
- #endif
- void VS()
- {
- mat4 modelMatrix = iModelMatrix;
- vec3 worldPos = GetWorldPos(modelMatrix);
- gl_Position = GetClipPos(worldPos);
- vTexCoord = GetQuadTexCoord(gl_Position);
- vScreenPos = GetScreenPosPreDiv(gl_Position);
- }
- void PS()
- {
- #ifdef BRIGHT
- vec3 color = texture2D(sDiffMap, vScreenPos).rgb;
- gl_FragColor = vec4(max(color - cBloomHDRThreshold, 0.0), 1.0);
- #endif
- #ifdef BLUR16
- gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright16InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos);
- #endif
- #ifdef BLUR8
- gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright8InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos);
- #endif
- #ifdef BLUR4
- gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright4InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos);
- #endif
- #ifdef BLUR2
- gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright2InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos);
- #endif
- #ifdef COMBINE16
- gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord);
- #endif
- #ifdef COMBINE8
- gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord);
- #endif
- #ifdef COMBINE4
- gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord);
- #endif
- #ifdef COMBINE2
- vec3 color = texture2D(sDiffMap, vScreenPos).rgb * cBloomHDRMix.x;
- vec3 bloom = texture2D(sNormalMap, vTexCoord).rgb * cBloomHDRMix.y;
- gl_FragColor = vec4(color + bloom, 1.0);
- #endif
- }
|