Skip to content

Commit 1d2a8bc

Browse files
committed
Added fog to shader
1 parent 8366d90 commit 1d2a8bc

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

src/renderer/webgl/shaders/Mesh-frag.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ module.exports = [
88
'uniform vec3 uLightDiffuse;',
99
'uniform vec3 uLightSpecular;',
1010
'',
11+
'uniform vec3 uFogColor;',
12+
'uniform float uFogNear;',
13+
'uniform float uFogFar;',
14+
'',
1115
'uniform vec3 uMaterialAmbient;',
1216
'uniform vec3 uMaterialDiffuse;',
1317
'uniform vec3 uMaterialSpecular;',
@@ -39,7 +43,15 @@ module.exports = [
3943
'',
4044
' vec3 result = (ambient + diffuse + specular) * color.rgb;',
4145
'',
42-
' gl_FragColor = vec4(result, color.a);',
46+
' float depth = gl_FragCoord.z / gl_FragCoord.w;',
47+
'',
48+
' float fogFactor = smoothstep(uFogNear, uFogFar, depth);',
49+
'',
50+
' // gl_FragColor = vec4(result, color.a);',
51+
'',
52+
' gl_FragColor.rgb = mix(result.rgb, uFogColor, fogFactor);',
53+
'',
54+
' gl_FragColor.a = color.a;',
4355
'}',
4456
''
4557
].join('\n');

src/renderer/webgl/shaders/src/Mesh.frag

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ uniform vec3 uLightAmbient;
77
uniform vec3 uLightDiffuse;
88
uniform vec3 uLightSpecular;
99

10+
uniform vec3 uFogColor;
11+
uniform float uFogNear;
12+
uniform float uFogFar;
13+
1014
uniform vec3 uMaterialAmbient;
1115
uniform vec3 uMaterialDiffuse;
1216
uniform vec3 uMaterialSpecular;
@@ -38,5 +42,11 @@ void main (void)
3842

3943
vec3 result = (ambient + diffuse + specular) * color.rgb;
4044

41-
gl_FragColor = vec4(result, color.a);
45+
float depth = gl_FragCoord.z / gl_FragCoord.w;
46+
47+
float fogFactor = smoothstep(uFogNear, uFogFar, depth);
48+
49+
gl_FragColor.rgb = mix(result.rgb, uFogColor, fogFactor);
50+
51+
gl_FragColor.a = color.a;
4252
}

0 commit comments

Comments
 (0)