Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bloom #12791

Merged
merged 25 commits into from
Sep 29, 2022
Merged

Bloom #12791

merged 25 commits into from
Sep 29, 2022

Conversation

x2048
Copy link
Contributor

@x2048 x2048 commented Sep 20, 2022

This PR adds exposure control and bloom effect to the game.

The following settings are introduced:

  • exposure_factor emulates the amount of light that is captured on screen. Default: 1.0, min: 0.1, max: 10.0
  • enable_bloom turns bloom effect on and off
  • bloom_intensity controls the amount of bloom on screen. Default: 0.05, min: 0.01 max: 1.0
  • bloom_radius controls the size of the blur convolution kernel. Default: 16, min: 1, max: 64

To do

This PR is Ready for Review.

How to test

  1. Turn bloom on
  2. Start any game
  3. Find scene where source of light overlaps a dark object. Examples:
  • Looking at the sky/sun from a dark cave
  • Looking at lava from around a corner
  • Lava in front of obsidian
  • Forest skyline
  1. Notice that the light bleeds from the light source to the dark area

Experiments:

  • Type /set exposure_factor 2 - entire scene becomes lighter
  • Type /set bloom_radius 32 - light bleeds further into the dark areas
  • Type /set bloom_intensity 0.15 - the intensity of bloom effect is higher.

@x2048 x2048 added @ Client / Audiovisuals Roadmap The change matches an item on the current roadmap. Feature ✨ PRs that add or enhance a feature labels Sep 20, 2022
@x2048 x2048 self-assigned this Sep 20, 2022
@x2048 x2048 added this to the 5.7.0 milestone Sep 20, 2022
@x2048
Copy link
Contributor Author

x2048 commented Sep 20, 2022

All the settings are client-side to give early adopters ability to experiment. Game controls need separate discussion and will come in a PR of their own.

builtin/settingtypes.txt Outdated Show resolved Hide resolved
builtin/settingtypes.txt Outdated Show resolved Hide resolved
@lhofhansl
Copy link
Contributor

Works. Code looks good (I'll trust you on the details of the constants in the calculations).

@x2048
Copy link
Contributor Author

x2048 commented Sep 24, 2022

I've received a report that bloom causes visual artifacts on certain hardware:

image

I've added enable_bloom_debug setting to troubleshoot such issues.

To avoid artifacts on low-profile systems
For compatibility with certain GPUs (AMD on Windows is known to have problems)
@x2048
Copy link
Contributor Author

x2048 commented Sep 25, 2022

@lhofhansl I've pushed minor changes to detect and the issue mentioned above, could you take a look?

@x2048
Copy link
Contributor Author

x2048 commented Sep 25, 2022

Issue with visual artifacts has been caused by the use of ping-pong buffer (rendering calls between two textures). Apparently on some hardware the render steps can overlap, causing renderbuffer texture to be sampled before it's fully written by the previous step, leading to undefined behavior. Fixed by rerouting rendering to a new texture, hidden behind a configuration flag enable_bloom_dedicated_texture.

@srifqi
Copy link
Member

srifqi commented Sep 25, 2022

Here are some screenshots:

Screenshots

from inside a cave facing out
a lava lake inside a cave

builtin/settingtypes.txt Outdated Show resolved Hide resolved
src/client/render/secondstage.h Outdated Show resolved Hide resolved
src/client/renderingengine.h Show resolved Hide resolved
@lhofhansl
Copy link
Contributor

Still looks good. :) I maintain my "One Approval"

@x2048 x2048 merged commit 9df79a4 into minetest:master Sep 29, 2022
@x2048 x2048 deleted the pp_bloom branch September 29, 2022 18:34
@superfloh247
Copy link
Contributor

superfloh247 commented Sep 30, 2022

error on MacOS 12.5.1 m1pro cpu+gpu

minetest latest master as of now, 5.7.0-dev-525fc38
irrlichtmt latest master as of now

doesn't matter if bloom_enabled = true or not

2022-09-30 14:33:50: ERROR[Main]: Irrlicht: GLSL (> 2.x) shader failed to compile: shaderType: 35632
2022-09-30 14:33:50: ERROR[Main]: Irrlicht: ERROR: 0:25: '' : syntax error: incorrect preprocessor directive
ERROR: 0:25: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:75: '' : syntax error: incorrect preprocessor directive
ERROR: 0:75: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:87: '' : syntax error: incorrect preprocessor directive
ERROR: 0:87: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline

2022-09-30 14:33:50: ERROR[Main]: generate_shader(): failed to generate "second_stage", addHighLevelShaderMaterial failed.
2022-09-30 14:33:50: WARNING[Main]: Vertex shader program:
2022-09-30 14:33:50: WARNING[Main]: ----------------------------------
2022-09-30 14:33:50: WARNING[Main]: 1:
2022-09-30 14:33:50: WARNING[Main]: 2: #version 120
2022-09-30 14:33:50: WARNING[Main]: 3: #define lowp
2022-09-30 14:33:50: WARNING[Main]: 4: #define mediump
2022-09-30 14:33:50: WARNING[Main]: 5: #define highp
2022-09-30 14:33:50: WARNING[Main]: 6: #define NDT_NORMAL 0
2022-09-30 14:33:50: WARNING[Main]: 7: #define NDT_AIRLIKE 1
2022-09-30 14:33:50: WARNING[Main]: 8: #define NDT_LIQUID 2
2022-09-30 14:33:50: WARNING[Main]: 9: #define NDT_FLOWINGLIQUID 3
2022-09-30 14:33:50: WARNING[Main]: 10: #define NDT_GLASSLIKE 4
2022-09-30 14:33:50: WARNING[Main]: 11: #define NDT_ALLFACES 5
2022-09-30 14:33:50: WARNING[Main]: 12: #define NDT_ALLFACES_OPTIONAL 6
2022-09-30 14:33:50: WARNING[Main]: 13: #define NDT_TORCHLIKE 7
2022-09-30 14:33:50: WARNING[Main]: 14: #define NDT_SIGNLIKE 8
2022-09-30 14:33:50: WARNING[Main]: 15: #define NDT_PLANTLIKE 9
2022-09-30 14:33:50: WARNING[Main]: 16: #define NDT_FENCELIKE 10
2022-09-30 14:33:50: WARNING[Main]: 17: #define NDT_RAILLIKE 11
2022-09-30 14:33:50: WARNING[Main]: 18: #define NDT_NODEBOX 12
2022-09-30 14:33:50: WARNING[Main]: 19: #define NDT_GLASSLIKE_FRAMED 13
2022-09-30 14:33:50: WARNING[Main]: 20: #define NDT_FIRELIKE 14
2022-09-30 14:33:50: WARNING[Main]: 21: #define NDT_GLASSLIKE_FRAMED_OPTIONAL 15
2022-09-30 14:33:50: WARNING[Main]: 22: #define NDT_PLANTLIKE_ROOTED 17
2022-09-30 14:33:50: WARNING[Main]: 23: #define TILE_MATERIAL_BASIC 0
2022-09-30 14:33:50: WARNING[Main]: 24: #define TILE_MATERIAL_ALPHA 1
2022-09-30 14:33:50: WARNING[Main]: 25: #define TILE_MATERIAL_LIQUID_TRANSPARENT 2
2022-09-30 14:33:50: WARNING[Main]: 26: #define TILE_MATERIAL_LIQUID_OPAQUE 3
2022-09-30 14:33:50: WARNING[Main]: 27: #define TILE_MATERIAL_WAVING_LEAVES 4
2022-09-30 14:33:50: WARNING[Main]: 28: #define TILE_MATERIAL_WAVING_PLANTS 5
2022-09-30 14:33:50: WARNING[Main]: 29: #define TILE_MATERIAL_OPAQUE 6
2022-09-30 14:33:50: WARNING[Main]: 30: #define TILE_MATERIAL_WAVING_LIQUID_BASIC 7
2022-09-30 14:33:50: WARNING[Main]: 31: #define TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT 8
2022-09-30 14:33:50: WARNING[Main]: 32: #define TILE_MATERIAL_WAVING_LIQUID_OPAQUE 9
2022-09-30 14:33:50: WARNING[Main]: 33: #define TILE_MATERIAL_PLAIN 10
2022-09-30 14:33:50: WARNING[Main]: 34: #define TILE_MATERIAL_PLAIN_ALPHA 11
2022-09-30 14:33:50: WARNING[Main]: 35: #define MATERIAL_TYPE 10
2022-09-30 14:33:50: WARNING[Main]: 36: #define DRAW_TYPE 16
2022-09-30 14:33:50: WARNING[Main]: 37: #define ENABLE_WAVING_WATER 0
2022-09-30 14:33:50: WARNING[Main]: 38: #define ENABLE_WAVING_LEAVES 0
2022-09-30 14:33:50: WARNING[Main]: 39: #define ENABLE_WAVING_PLANTS 0
2022-09-30 14:33:50: WARNING[Main]: 40: #define ENABLE_TONE_MAPPING 1
2022-09-30 14:33:50: WARNING[Main]: 41: #define FOG_START 0.400000
2022-09-30 14:33:50: WARNING[Main]: 42: #define ENABLE_BLOOM 1
2022-09-30 14:33:50: WARNING[Main]: 43: #line 0
2022-09-30 14:33:50: WARNING[Main]: 44:
2022-09-30 14:33:50: WARNING[Main]: 45: #define mWorldView gl_ModelViewMatrix
2022-09-30 14:33:50: WARNING[Main]: 46: #define mWorldViewProj gl_ModelViewProjectionMatrix
2022-09-30 14:33:50: WARNING[Main]: 47: #define mTexture (gl_TextureMatrix[0])
2022-09-30 14:33:50: WARNING[Main]: 48: #define mNormal gl_NormalMatrix
2022-09-30 14:33:50: WARNING[Main]: 49:
2022-09-30 14:33:50: WARNING[Main]: 50: #define inVertexPosition gl_Vertex
2022-09-30 14:33:50: WARNING[Main]: 51: #define inVertexColor gl_Color
2022-09-30 14:33:50: WARNING[Main]: 52: #define inTexCoord0 gl_MultiTexCoord0
2022-09-30 14:33:50: WARNING[Main]: 53: #define inVertexNormal gl_Normal
2022-09-30 14:33:50: WARNING[Main]: 54: #define inVertexTangent gl_MultiTexCoord1
2022-09-30 14:33:50: WARNING[Main]: 55: #define inVertexBinormal gl_MultiTexCoord2
2022-09-30 14:33:50: WARNING[Main]: 56: #ifdef GL_ES
2022-09-30 14:33:50: WARNING[Main]: 57: varying mediump vec2 varTexCoord;
2022-09-30 14:33:50: WARNING[Main]: 58: #else
2022-09-30 14:33:50: WARNING[Main]: 59: centroid varying vec2 varTexCoord;
2022-09-30 14:33:50: WARNING[Main]: 60: #endif
2022-09-30 14:33:50: WARNING[Main]: 61:
2022-09-30 14:33:50: WARNING[Main]: 62: void main(void)
2022-09-30 14:33:50: WARNING[Main]: 63: {
2022-09-30 14:33:50: WARNING[Main]: 64: varTexCoord.st = inTexCoord0.st;
2022-09-30 14:33:50: WARNING[Main]: 65: gl_Position = inVertexPosition;
2022-09-30 14:33:50: WARNING[Main]: 66: }
2022-09-30 14:33:50: WARNING[Main]: 67:
2022-09-30 14:33:50: WARNING[Main]: End of Vertex shader program.
2022-09-30 14:33:50: WARNING[Main]:
2022-09-30 14:33:50: WARNING[Main]: Fragment shader program:
2022-09-30 14:33:50: WARNING[Main]: ----------------------------------
2022-09-30 14:33:50: WARNING[Main]: 1:
2022-09-30 14:33:50: WARNING[Main]: 2: #version 120
2022-09-30 14:33:50: WARNING[Main]: 3: #define lowp
2022-09-30 14:33:50: WARNING[Main]: 4: #define mediump
2022-09-30 14:33:50: WARNING[Main]: 5: #define highp
2022-09-30 14:33:50: WARNING[Main]: 6: #define NDT_NORMAL 0
2022-09-30 14:33:50: WARNING[Main]: 7: #define NDT_AIRLIKE 1
2022-09-30 14:33:50: WARNING[Main]: 8: #define NDT_LIQUID 2
2022-09-30 14:33:50: WARNING[Main]: 9: #define NDT_FLOWINGLIQUID 3
2022-09-30 14:33:50: WARNING[Main]: 10: #define NDT_GLASSLIKE 4
2022-09-30 14:33:50: WARNING[Main]: 11: #define NDT_ALLFACES 5
2022-09-30 14:33:50: WARNING[Main]: 12: #define NDT_ALLFACES_OPTIONAL 6
2022-09-30 14:33:50: WARNING[Main]: 13: #define NDT_TORCHLIKE 7
2022-09-30 14:33:50: WARNING[Main]: 14: #define NDT_SIGNLIKE 8
2022-09-30 14:33:50: WARNING[Main]: 15: #define NDT_PLANTLIKE 9
2022-09-30 14:33:50: WARNING[Main]: 16: #define NDT_FENCELIKE 10
2022-09-30 14:33:50: WARNING[Main]: 17: #define NDT_RAILLIKE 11
2022-09-30 14:33:50: WARNING[Main]: 18: #define NDT_NODEBOX 12
2022-09-30 14:33:50: WARNING[Main]: 19: #define NDT_GLASSLIKE_FRAMED 13
2022-09-30 14:33:50: WARNING[Main]: 20: #define NDT_FIRELIKE 14
2022-09-30 14:33:50: WARNING[Main]: 21: #define NDT_GLASSLIKE_FRAMED_OPTIONAL 15
2022-09-30 14:33:50: WARNING[Main]: 22: #define NDT_PLANTLIKE_ROOTED 17
2022-09-30 14:33:50: WARNING[Main]: 23: #define TILE_MATERIAL_BASIC 0
2022-09-30 14:33:50: WARNING[Main]: 24: #define TILE_MATERIAL_ALPHA 1
2022-09-30 14:33:50: WARNING[Main]: 25: #define TILE_MATERIAL_LIQUID_TRANSPARENT 2
2022-09-30 14:33:50: WARNING[Main]: 26: #define TILE_MATERIAL_LIQUID_OPAQUE 3
2022-09-30 14:33:50: WARNING[Main]: 27: #define TILE_MATERIAL_WAVING_LEAVES 4
2022-09-30 14:33:50: WARNING[Main]: 28: #define TILE_MATERIAL_WAVING_PLANTS 5
2022-09-30 14:33:50: WARNING[Main]: 29: #define TILE_MATERIAL_OPAQUE 6
2022-09-30 14:33:50: WARNING[Main]: 30: #define TILE_MATERIAL_WAVING_LIQUID_BASIC 7
2022-09-30 14:33:50: WARNING[Main]: 31: #define TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT 8
2022-09-30 14:33:50: WARNING[Main]: 32: #define TILE_MATERIAL_WAVING_LIQUID_OPAQUE 9
2022-09-30 14:33:50: WARNING[Main]: 33: #define TILE_MATERIAL_PLAIN 10
2022-09-30 14:33:50: WARNING[Main]: 34: #define TILE_MATERIAL_PLAIN_ALPHA 11
2022-09-30 14:33:50: WARNING[Main]: 35: #define MATERIAL_TYPE 10
2022-09-30 14:33:50: WARNING[Main]: 36: #define DRAW_TYPE 16
2022-09-30 14:33:50: WARNING[Main]: 37: #define ENABLE_WAVING_WATER 0
2022-09-30 14:33:50: WARNING[Main]: 38: #define ENABLE_WAVING_LEAVES 0
2022-09-30 14:33:50: WARNING[Main]: 39: #define ENABLE_WAVING_PLANTS 0
2022-09-30 14:33:50: WARNING[Main]: 40: #define ENABLE_TONE_MAPPING 1
2022-09-30 14:33:50: WARNING[Main]: 41: #define FOG_START 0.400000
2022-09-30 14:33:50: WARNING[Main]: 42: #define ENABLE_BLOOM 1
2022-09-30 14:33:50: WARNING[Main]: 43: #line 0
2022-09-30 14:33:50: WARNING[Main]: 44:
2022-09-30 14:33:50: WARNING[Main]: 45: #define baseTexture texture0
2022-09-30 14:33:50: WARNING[Main]: 46: #define normalTexture texture1
2022-09-30 14:33:50: WARNING[Main]: 47: #define textureFlags texture2
2022-09-30 14:33:50: WARNING[Main]: 48: #define rendered texture0
2022-09-30 14:33:50: WARNING[Main]: 49: #define bloom texture1
2022-09-30 14:33:50: WARNING[Main]: 50:
2022-09-30 14:33:50: WARNING[Main]: 51: uniform sampler2D rendered;
2022-09-30 14:33:50: WARNING[Main]: 52: uniform sampler2D bloom;
2022-09-30 14:33:50: WARNING[Main]: 53: uniform mediump float exposureFactor = 2.5;
2022-09-30 14:33:50: WARNING[Main]: 54: uniform lowp float bloomIntensity = 1.0;
2022-09-30 14:33:50: WARNING[Main]: 55:
2022-09-30 14:33:50: WARNING[Main]: 56: #ifdef GL_ES
2022-09-30 14:33:50: WARNING[Main]: 57: varying mediump vec2 varTexCoord;
2022-09-30 14:33:50: WARNING[Main]: 58: #else
2022-09-30 14:33:50: WARNING[Main]: 59: centroid varying vec2 varTexCoord;
2022-09-30 14:33:50: WARNING[Main]: 60: #endif
2022-09-30 14:33:50: WARNING[Main]: 61:
2022-09-30 14:33:50: WARNING[Main]: 62: #if ENABLE_BLOOM
2022-09-30 14:33:50: WARNING[Main]: 63:
2022-09-30 14:33:50: WARNING[Main]: 64: vec4 applyBloom(vec4 color, vec2 uv)
2022-09-30 14:33:50: WARNING[Main]: 65: {
2022-09-30 14:33:50: WARNING[Main]: 66: float bias = bloomIntensity;
2022-09-30 14:33:50: WARNING[Main]: 67: vec4 bloom = texture2D(bloom, uv);
2022-09-30 14:33:50: WARNING[Main]: 68: #if ENABLE_BLOOM_DEBUG
2022-09-30 14:33:50: WARNING[Main]: 69: if (uv.x > 0.5 && uv.y < 0.5)
2022-09-30 14:33:50: WARNING[Main]: 70: return vec4(bloom.rgb, color.a);
2022-09-30 14:33:50: WARNING[Main]: 71: if (uv.x < 0.5)
2022-09-30 14:33:50: WARNING[Main]: 72: return color;
2022-09-30 14:33:50: WARNING[Main]: 73: #endif
2022-09-30 14:33:50: WARNING[Main]: 74: color.rgb = mix(color.rgb, bloom.rgb, bias);
2022-09-30 14:33:50: WARNING[Main]: 75: return color;
2022-09-30 14:33:50: WARNING[Main]: 76: }
2022-09-30 14:33:50: WARNING[Main]: 77:
2022-09-30 14:33:50: WARNING[Main]: 78: #endif
2022-09-30 14:33:50: WARNING[Main]: 79:
2022-09-30 14:33:50: WARNING[Main]: 80: #if ENABLE_TONE_MAPPING
2022-09-30 14:33:50: WARNING[Main]: 81:
2022-09-30 14:33:50: WARNING[Main]: 82: /* Hable's UC2 Tone mapping parameters
2022-09-30 14:33:50: WARNING[Main]: 83: A = 0.22;
2022-09-30 14:33:50: WARNING[Main]: 84: B = 0.30;
2022-09-30 14:33:50: WARNING[Main]: 85: C = 0.10;
2022-09-30 14:33:50: WARNING[Main]: 86: D = 0.20;
2022-09-30 14:33:50: WARNING[Main]: 87: E = 0.01;
2022-09-30 14:33:50: WARNING[Main]: 88: F = 0.30;
2022-09-30 14:33:50: WARNING[Main]: 89: W = 11.2;
2022-09-30 14:33:50: WARNING[Main]: 90: equation used: ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F
2022-09-30 14:33:50: WARNING[Main]: 91: */
2022-09-30 14:33:50: WARNING[Main]: 92:
2022-09-30 14:33:50: WARNING[Main]: 93: vec3 uncharted2Tonemap(vec3 x)
2022-09-30 14:33:50: WARNING[Main]: 94: {
2022-09-30 14:33:50: WARNING[Main]: 95: return ((x * (0.22 * x + 0.03) + 0.002) / (x * (0.22 * x + 0.3) + 0.06)) - 0.03333;
2022-09-30 14:33:50: WARNING[Main]: 96: }
2022-09-30 14:33:50: WARNING[Main]: 97:
2022-09-30 14:33:50: WARNING[Main]: 98: vec4 applyToneMapping(vec4 color)
2022-09-30 14:33:50: WARNING[Main]: 99: {
2022-09-30 14:33:50: WARNING[Main]: 100: const float exposureBias = 2.0;
2022-09-30 14:33:50: WARNING[Main]: 101: color.rgb = uncharted2Tonemap(exposureBias * color.rgb);
2022-09-30 14:33:50: WARNING[Main]: 102: // Precalculated white_scale from
2022-09-30 14:33:50: WARNING[Main]: 103: //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W));
2022-09-30 14:33:50: WARNING[Main]: 104: vec3 whiteScale = vec3(1.036015346);
2022-09-30 14:33:50: WARNING[Main]: 105: color.rgb *= whiteScale;
2022-09-30 14:33:50: WARNING[Main]: 106: return color;
2022-09-30 14:33:50: WARNING[Main]: 107: }
2022-09-30 14:33:50: WARNING[Main]: 108: #endif
2022-09-30 14:33:50: WARNING[Main]: 109:
2022-09-30 14:33:50: WARNING[Main]: 110: void main(void)
2022-09-30 14:33:50: WARNING[Main]: 111: {
2022-09-30 14:33:50: WARNING[Main]: 112: vec2 uv = varTexCoord.st;
2022-09-30 14:33:50: WARNING[Main]: 113: vec4 color = texture2D(rendered, uv).rgba;
2022-09-30 14:33:50: WARNING[Main]: 114:
2022-09-30 14:33:50: WARNING[Main]: 115: // translate to linear colorspace (approximate)
2022-09-30 14:33:50: WARNING[Main]: 116: color.rgb = pow(color.rgb, vec3(2.2));
2022-09-30 14:33:50: WARNING[Main]: 117:
2022-09-30 14:33:50: WARNING[Main]: 118: #if ENABLE_BLOOM_DEBUG
2022-09-30 14:33:50: WARNING[Main]: 119: if (uv.x > 0.5 || uv.y > 0.5)
2022-09-30 14:33:50: WARNING[Main]: 120: #endif
2022-09-30 14:33:50: WARNING[Main]: 121: {
2022-09-30 14:33:50: WARNING[Main]: 122: color.rgb *= exposureFactor;
2022-09-30 14:33:50: WARNING[Main]: 123: }
2022-09-30 14:33:50: WARNING[Main]: 124:
2022-09-30 14:33:50: WARNING[Main]: 125:
2022-09-30 14:33:50: WARNING[Main]: 126: #if ENABLE_BLOOM
2022-09-30 14:33:50: WARNING[Main]: 127: color = applyBloom(color, uv);
2022-09-30 14:33:50: WARNING[Main]: 128: #endif
2022-09-30 14:33:50: WARNING[Main]: 129:
2022-09-30 14:33:50: WARNING[Main]: 130: #if ENABLE_BLOOM_DEBUG
2022-09-30 14:33:50: WARNING[Main]: 131: if (uv.x > 0.5 || uv.y > 0.5)
2022-09-30 14:33:50: WARNING[Main]: 132: #endif
2022-09-30 14:33:50: WARNING[Main]: 133: {
2022-09-30 14:33:50: WARNING[Main]: 134: #if ENABLE_TONE_MAPPING
2022-09-30 14:33:50: WARNING[Main]: 135: color = applyToneMapping(color);
2022-09-30 14:33:50: WARNING[Main]: 136: #else
2022-09-30 14:33:50: WARNING[Main]: 137: color.rgb /= 2.5; // default exposure factor, see also RenderingEngine::DEFAULT_EXPOSURE_FACTOR;
2022-09-30 14:33:50: WARNING[Main]: 138: #endif
2022-09-30 14:33:50: WARNING[Main]: 139: }
2022-09-30 14:33:50: WARNING[Main]: 140:
2022-09-30 14:33:50: WARNING[Main]: 141: color.rgb = clamp(color.rgb, vec3(0.), vec3(1.));
2022-09-30 14:33:50: WARNING[Main]: 142:
2022-09-30 14:33:50: WARNING[Main]: 143: // return to sRGB colorspace (approximate)
2022-09-30 14:33:50: WARNING[Main]: 144: color.rgb = pow(color.rgb, vec3(1.0 / 2.2));
2022-09-30 14:33:50: WARNING[Main]: 145:
2022-09-30 14:33:50: WARNING[Main]: 146: gl_FragColor = vec4(color.rgb, 1.0); // force full alpha to avoid holes in the image.
2022-09-30 14:33:50: WARNING[Main]: 147: }
2022-09-30 14:33:50: WARNING[Main]: 148:
2022-09-30 14:33:50: WARNING[Main]: End of Fragment shader program.
2022-09-30 14:33:50: WARNING[Main]:
2022-09-30 14:33:50: WARNING[Main]: Geometry shader program:
2022-09-30 14:33:50: WARNING[Main]: ----------------------------------
2022-09-30 14:33:50: WARNING[Main]: 1:
2022-09-30 14:33:50: WARNING[Main]: End of Geometry shader program.
2022-09-30 14:33:50: WARNING[Main]:

@SmallJoker
Copy link
Member

I assume the error above is caused by ENABLE_BLOOM_DEBUG which is not specified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@ Client / Audiovisuals Feature ✨ PRs that add or enhance a feature One approval ✅ ◻️ Roadmap The change matches an item on the current roadmap.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants