Skip to content

Commit f82fedc

Browse files
committed
Apply fog before color space
This makes behavior more consistent between rendering to an SRGB texture and rendering to the WebGL default framebuffer. Encoding the color values should always happen after fog has been applied.
1 parent 15e4656 commit f82fedc

17 files changed

+18
-19
lines changed

examples/jsm/effects/OutlineEffect.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ class OutlineEffect {
165165
' gl_FragColor = vec4( outlineColor, outlineAlpha );',
166166

167167
' #include <tonemapping_fragment>',
168-
' #include <colorspace_fragment>',
169168
' #include <fog_fragment>',
169+
' #include <colorspace_fragment>',
170170
' #include <premultiplied_alpha_fragment>',
171171

172172
'}'

examples/jsm/lines/LineMaterial.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,8 @@ ShaderLib[ 'line' ] = {
426426
gl_FragColor = vec4( diffuseColor.rgb, alpha );
427427
428428
#include <tonemapping_fragment>
429-
#include <colorspace_fragment>
430429
#include <fog_fragment>
430+
#include <colorspace_fragment>
431431
#include <premultiplied_alpha_fragment>
432432
433433
}

examples/jsm/loaders/LDrawLoader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ class LDrawConditionalLineMaterial extends ShaderMaterial {
133133
outgoingLight = diffuseColor.rgb; // simple shader
134134
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
135135
#include <tonemapping_fragment>
136-
#include <colorspace_fragment>
137136
#include <fog_fragment>
137+
#include <colorspace_fragment>
138138
#include <premultiplied_alpha_fragment>
139139
}
140140
`,

examples/jsm/materials/MeshGouraudMaterial.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,8 @@ const GouraudShader = {
294294
295295
#include <opaque_fragment>
296296
#include <tonemapping_fragment>
297-
#include <colorspace_fragment>
298297
#include <fog_fragment>
298+
#include <colorspace_fragment>
299299
#include <premultiplied_alpha_fragment>
300300
#include <dithering_fragment>
301301

examples/jsm/objects/Water.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ class Water extends Mesh {
181181
gl_FragColor = vec4( outgoingLight, alpha );
182182
183183
#include <tonemapping_fragment>
184+
#include <fog_fragment>
184185
#include <colorspace_fragment>
185-
#include <fog_fragment>
186186
}`
187187

188188
};

examples/jsm/objects/Water2.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,8 @@ Water.WaterShader = {
348348
gl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );
349349
350350
#include <tonemapping_fragment>
351-
#include <colorspace_fragment>
352351
#include <fog_fragment>
352+
#include <colorspace_fragment>
353353
354354
}`
355355

src/renderers/shaders/ShaderLib/linedashed.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ void main() {
6767
6868
#include <opaque_fragment>
6969
#include <tonemapping_fragment>
70-
#include <colorspace_fragment>
7170
#include <fog_fragment>
71+
#include <colorspace_fragment>
7272
#include <premultiplied_alpha_fragment>
7373
7474
}

src/renderers/shaders/ShaderLib/meshbasic.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ void main() {
105105
106106
#include <opaque_fragment>
107107
#include <tonemapping_fragment>
108-
#include <colorspace_fragment>
109108
#include <fog_fragment>
109+
#include <colorspace_fragment>
110110
#include <premultiplied_alpha_fragment>
111111
#include <dithering_fragment>
112112

src/renderers/shaders/ShaderLib/meshlambert.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ void main() {
113113
#include <envmap_fragment>
114114
#include <opaque_fragment>
115115
#include <tonemapping_fragment>
116-
#include <colorspace_fragment>
117116
#include <fog_fragment>
117+
#include <colorspace_fragment>
118118
#include <premultiplied_alpha_fragment>
119119
#include <dithering_fragment>
120120

src/renderers/shaders/ShaderLib/meshmatcap.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ void main() {
100100
101101
#include <opaque_fragment>
102102
#include <tonemapping_fragment>
103-
#include <colorspace_fragment>
104103
#include <fog_fragment>
104+
#include <colorspace_fragment>
105105
#include <premultiplied_alpha_fragment>
106106
#include <dithering_fragment>
107107

src/renderers/shaders/ShaderLib/meshphong.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ void main() {
115115
#include <envmap_fragment>
116116
#include <opaque_fragment>
117117
#include <tonemapping_fragment>
118-
#include <colorspace_fragment>
119118
#include <fog_fragment>
119+
#include <colorspace_fragment>
120120
#include <premultiplied_alpha_fragment>
121121
#include <dithering_fragment>
122122

src/renderers/shaders/ShaderLib/meshphysical.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ void main() {
213213
214214
#include <opaque_fragment>
215215
#include <tonemapping_fragment>
216-
#include <colorspace_fragment>
217216
#include <fog_fragment>
217+
#include <colorspace_fragment>
218218
#include <premultiplied_alpha_fragment>
219219
#include <dithering_fragment>
220220

src/renderers/shaders/ShaderLib/meshtoon.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ void main() {
107107
108108
#include <opaque_fragment>
109109
#include <tonemapping_fragment>
110-
#include <colorspace_fragment>
111110
#include <fog_fragment>
111+
#include <colorspace_fragment>
112112
#include <premultiplied_alpha_fragment>
113113
#include <dithering_fragment>
114114

src/renderers/shaders/ShaderLib/points.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ void main() {
7878
7979
#include <opaque_fragment>
8080
#include <tonemapping_fragment>
81-
#include <colorspace_fragment>
8281
#include <fog_fragment>
82+
#include <colorspace_fragment>
8383
#include <premultiplied_alpha_fragment>
8484
8585
}

src/renderers/shaders/ShaderLib/shadow.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ void main() {
4747
gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
4848
4949
#include <tonemapping_fragment>
50-
#include <colorspace_fragment>
5150
#include <fog_fragment>
51+
#include <colorspace_fragment>
5252
5353
}
5454
`;

src/renderers/shaders/ShaderLib/sprite.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ void main() {
7474
7575
#include <opaque_fragment>
7676
#include <tonemapping_fragment>
77-
#include <colorspace_fragment>
7877
#include <fog_fragment>
78+
#include <colorspace_fragment>
7979
8080
}
8181
`;

src/renderers/webgl/WebGLMaterials.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { BackSide } from '../../constants.js';
2-
import { getUnlitUniformColorSpace } from '../shaders/UniformsUtils.js';
1+
import { BackSide, LinearSRGBColorSpace } from '../../constants.js';
32

43
function WebGLMaterials( renderer, properties ) {
54

@@ -17,7 +16,7 @@ function WebGLMaterials( renderer, properties ) {
1716

1817
function refreshFogUniforms( uniforms, fog ) {
1918

20-
fog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );
19+
fog.color.getRGB( uniforms.fogColor.value, LinearSRGBColorSpace );
2120

2221
if ( fog.isFog ) {
2322

0 commit comments

Comments
 (0)