diff options
| author | x2048 <codeforsmile@gmail.com> | 2022-09-06 08:25:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-06 08:25:18 +0200 |
| commit | ff6dcfea82974df6db5a557e31aaddb6bdb7a71f (patch) | |
| tree | 18bafaedcfdff36a0c0719653b99370b7434b344 /client/shaders/nodes_shader | |
| parent | 464043b8abdbd936640757604ecb21662592043b (diff) | |
| download | minetest-ff6dcfea82974df6db5a557e31aaddb6bdb7a71f.tar.xz | |
Implement rendering pipeline and post-processing (#12465)
Co-authored-by: Lars Mueller <appgurulars@gmx.de>
Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: lhofhansl <lhofhansl@yahoo.com>
Diffstat (limited to 'client/shaders/nodes_shader')
| -rw-r--r-- | client/shaders/nodes_shader/opengl_fragment.glsl | 43 | ||||
| -rw-r--r-- | client/shaders/nodes_shader/opengl_vertex.glsl | 4 |
2 files changed, 8 insertions, 39 deletions
diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index c4b947e72..1f7d98069 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -45,6 +45,9 @@ centroid varying vec2 varTexCoord; #endif varying vec3 eyeVec; varying float nightRatio; +varying vec3 tsEyeVec; +varying vec3 lightVec; +varying vec3 tsLightVec; const float fogStart = FOG_START; const float fogShadingParameter = 1.0 / ( 1.0 - fogStart); @@ -359,40 +362,6 @@ float getShadow(sampler2D shadowsampler, vec2 smTexCoord, float realDistance) #endif #endif -#if ENABLE_TONE_MAPPING - -/* Hable's UC2 Tone mapping parameters - A = 0.22; - B = 0.30; - C = 0.10; - D = 0.20; - E = 0.01; - F = 0.30; - W = 11.2; - equation used: ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F -*/ - -vec3 uncharted2Tonemap(vec3 x) -{ - return ((x * (0.22 * x + 0.03) + 0.002) / (x * (0.22 * x + 0.3) + 0.06)) - 0.03333; -} - -vec4 applyToneMapping(vec4 color) -{ - color = vec4(pow(color.rgb, vec3(2.2)), color.a); - const float gamma = 1.6; - const float exposureBias = 5.5; - color.rgb = uncharted2Tonemap(exposureBias * color.rgb); - // Precalculated white_scale from - //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W)); - vec3 whiteScale = vec3(1.036015346); - color.rgb *= whiteScale; - return vec4(pow(color.rgb, vec3(1.0 / gamma)), color.a); -} -#endif - - - void main(void) { vec3 color; @@ -470,10 +439,6 @@ void main(void) } #endif -#if ENABLE_TONE_MAPPING - col = applyToneMapping(col); -#endif - // Due to a bug in some (older ?) graphics stacks (possibly in the glsl compiler ?), // the fog will only be rendered correctly if the last operation before the // clamp() is an addition. Else, the clamp() seems to be ignored. @@ -488,5 +453,5 @@ void main(void) col = mix(skyBgColor, col, clarity); col = vec4(col.rgb, base.a); - gl_FragColor = col; + gl_FragData[0] = col; } diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index 40f0965e1..42fae7612 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -42,6 +42,7 @@ centroid varying vec2 varTexCoord; varying float perspective_factor; #endif +varying float area_enable_parallax; varying vec3 eyeVec; varying float nightRatio; @@ -193,6 +194,9 @@ void main(void) vPosition = gl_Position.xyz; eyeVec = -(mWorldView * pos).xyz; +#ifdef SECONDSTAGE + normalPass = normalize((inVertexNormal+1)/2); +#endif vNormal = inVertexNormal; // Calculate color. |
