diff --git a/examples/jsm/effects/OutlineEffect.js b/examples/jsm/effects/OutlineEffect.js index 3ab6034a8400c9..78bde0be88b352 100644 --- a/examples/jsm/effects/OutlineEffect.js +++ b/examples/jsm/effects/OutlineEffect.js @@ -164,9 +164,9 @@ class OutlineEffect { ' gl_FragColor = vec4( outlineColor, outlineAlpha );', + ' #include ', ' #include ', ' #include ', - ' #include ', ' #include ', '}' diff --git a/examples/jsm/lines/LineMaterial.js b/examples/jsm/lines/LineMaterial.js index 4e30e7614a30bd..562460e7af6bbd 100644 --- a/examples/jsm/lines/LineMaterial.js +++ b/examples/jsm/lines/LineMaterial.js @@ -425,9 +425,9 @@ ShaderLib[ 'line' ] = { gl_FragColor = vec4( diffuseColor.rgb, alpha ); + #include #include #include - #include #include } diff --git a/examples/jsm/loaders/LDrawLoader.js b/examples/jsm/loaders/LDrawLoader.js index 14ca28db63322c..f79f78eb68ef76 100644 --- a/examples/jsm/loaders/LDrawLoader.js +++ b/examples/jsm/loaders/LDrawLoader.js @@ -132,9 +132,9 @@ class LDrawConditionalLineMaterial extends ShaderMaterial { #include outgoingLight = diffuseColor.rgb; // simple shader gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include #include #include - #include #include } `, diff --git a/examples/jsm/materials/MeshGouraudMaterial.js b/examples/jsm/materials/MeshGouraudMaterial.js index 21758cf43cd2d1..5dafdaebedf2cc 100644 --- a/examples/jsm/materials/MeshGouraudMaterial.js +++ b/examples/jsm/materials/MeshGouraudMaterial.js @@ -293,9 +293,9 @@ const GouraudShader = { #include #include + #include #include #include - #include #include #include diff --git a/examples/jsm/objects/Water.js b/examples/jsm/objects/Water.js index 20882312bca18b..bf7853e9114bb9 100644 --- a/examples/jsm/objects/Water.js +++ b/examples/jsm/objects/Water.js @@ -180,9 +180,9 @@ class Water extends Mesh { vec3 outgoingLight = albedo; gl_FragColor = vec4( outgoingLight, alpha ); + #include #include #include - #include }` }; diff --git a/examples/jsm/objects/Water2.js b/examples/jsm/objects/Water2.js index 4989b953334020..1c4ca065aaf7d8 100644 --- a/examples/jsm/objects/Water2.js +++ b/examples/jsm/objects/Water2.js @@ -347,9 +347,9 @@ Water.WaterShader = { // multiply water color with the mix of both textures gl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance ); + #include #include #include - #include }` diff --git a/examples/screenshots/games_fps.jpg b/examples/screenshots/games_fps.jpg index 7d03a632af7f2b..c73c26493f5d26 100644 Binary files a/examples/screenshots/games_fps.jpg and b/examples/screenshots/games_fps.jpg differ diff --git a/examples/screenshots/misc_controls_map.jpg b/examples/screenshots/misc_controls_map.jpg index fa2084f8a4c4ea..4594df8962ea79 100644 Binary files a/examples/screenshots/misc_controls_map.jpg and b/examples/screenshots/misc_controls_map.jpg differ diff --git a/examples/screenshots/webaudio_orientation.jpg b/examples/screenshots/webaudio_orientation.jpg index 9e71e1e23629ca..a5ca25e8b3b5e0 100644 Binary files a/examples/screenshots/webaudio_orientation.jpg and b/examples/screenshots/webaudio_orientation.jpg differ diff --git a/examples/screenshots/webgl_animation_skinning_ik.jpg b/examples/screenshots/webgl_animation_skinning_ik.jpg index 22c8cd9652c5c8..b842fd71fc9134 100644 Binary files a/examples/screenshots/webgl_animation_skinning_ik.jpg and b/examples/screenshots/webgl_animation_skinning_ik.jpg differ diff --git a/examples/screenshots/webgl_buffergeometry.jpg b/examples/screenshots/webgl_buffergeometry.jpg index 1c065d774bef22..120e8d30cab3f1 100644 Binary files a/examples/screenshots/webgl_buffergeometry.jpg and b/examples/screenshots/webgl_buffergeometry.jpg differ diff --git a/examples/screenshots/webgl_buffergeometry_points.jpg b/examples/screenshots/webgl_buffergeometry_points.jpg index 2e97e5efc681e8..38791113d991f0 100644 Binary files a/examples/screenshots/webgl_buffergeometry_points.jpg and b/examples/screenshots/webgl_buffergeometry_points.jpg differ diff --git a/examples/screenshots/webgl_buffergeometry_points_interleaved.jpg b/examples/screenshots/webgl_buffergeometry_points_interleaved.jpg index 0021f4de97b000..2c94b328c29d17 100644 Binary files a/examples/screenshots/webgl_buffergeometry_points_interleaved.jpg and b/examples/screenshots/webgl_buffergeometry_points_interleaved.jpg differ diff --git a/examples/screenshots/webgl_buffergeometry_uint.jpg b/examples/screenshots/webgl_buffergeometry_uint.jpg index e5f185c0a4a572..d741a8b29df1c1 100644 Binary files a/examples/screenshots/webgl_buffergeometry_uint.jpg and b/examples/screenshots/webgl_buffergeometry_uint.jpg differ diff --git a/examples/screenshots/webgl_custom_attributes_points2.jpg b/examples/screenshots/webgl_custom_attributes_points2.jpg index 08350bb2f3b670..e62a8d955fcfcf 100644 Binary files a/examples/screenshots/webgl_custom_attributes_points2.jpg and b/examples/screenshots/webgl_custom_attributes_points2.jpg differ diff --git a/examples/screenshots/webgl_custom_attributes_points3.jpg b/examples/screenshots/webgl_custom_attributes_points3.jpg index e6b6bd7863a225..09be4e7a789279 100644 Binary files a/examples/screenshots/webgl_custom_attributes_points3.jpg and b/examples/screenshots/webgl_custom_attributes_points3.jpg differ diff --git a/examples/screenshots/webgl_geometry_dynamic.jpg b/examples/screenshots/webgl_geometry_dynamic.jpg index b4b29381bac0d8..d74dab15c9246f 100644 Binary files a/examples/screenshots/webgl_geometry_dynamic.jpg and b/examples/screenshots/webgl_geometry_dynamic.jpg differ diff --git a/examples/screenshots/webgl_geometry_terrain.jpg b/examples/screenshots/webgl_geometry_terrain.jpg index 3ebff65e3000b0..126e4af04800d7 100644 Binary files a/examples/screenshots/webgl_geometry_terrain.jpg and b/examples/screenshots/webgl_geometry_terrain.jpg differ diff --git a/examples/screenshots/webgl_geometry_text.jpg b/examples/screenshots/webgl_geometry_text.jpg index b9e0f4154e1ac0..9446255b6803ec 100644 Binary files a/examples/screenshots/webgl_geometry_text.jpg and b/examples/screenshots/webgl_geometry_text.jpg differ diff --git a/examples/screenshots/webgl_gpgpu_birds_gltf.jpg b/examples/screenshots/webgl_gpgpu_birds_gltf.jpg index 7c656d9d8d7241..e2944f17d9ba15 100644 Binary files a/examples/screenshots/webgl_gpgpu_birds_gltf.jpg and b/examples/screenshots/webgl_gpgpu_birds_gltf.jpg differ diff --git a/examples/screenshots/webgl_gpgpu_protoplanet.jpg b/examples/screenshots/webgl_gpgpu_protoplanet.jpg index ae0cb7e5e0ced5..b33df40546a0d5 100644 Binary files a/examples/screenshots/webgl_gpgpu_protoplanet.jpg and b/examples/screenshots/webgl_gpgpu_protoplanet.jpg differ diff --git a/examples/screenshots/webgl_helpers.jpg b/examples/screenshots/webgl_helpers.jpg index bf82bca86d75ef..b9cb914782e8c0 100644 Binary files a/examples/screenshots/webgl_helpers.jpg and b/examples/screenshots/webgl_helpers.jpg differ diff --git a/examples/screenshots/webgl_interactive_buffergeometry.jpg b/examples/screenshots/webgl_interactive_buffergeometry.jpg index f154ddd4a792a4..72be4c699bf4b8 100644 Binary files a/examples/screenshots/webgl_interactive_buffergeometry.jpg and b/examples/screenshots/webgl_interactive_buffergeometry.jpg differ diff --git a/examples/screenshots/webgl_interactive_points.jpg b/examples/screenshots/webgl_interactive_points.jpg index 26dcb30e58f116..15e2d8fdd42ba9 100644 Binary files a/examples/screenshots/webgl_interactive_points.jpg and b/examples/screenshots/webgl_interactive_points.jpg differ diff --git a/examples/screenshots/webgl_loader_amf.jpg b/examples/screenshots/webgl_loader_amf.jpg index 067bdceb44a968..47aa0a05d355f8 100644 Binary files a/examples/screenshots/webgl_loader_amf.jpg and b/examples/screenshots/webgl_loader_amf.jpg differ diff --git a/examples/screenshots/webgl_loader_gcode.jpg b/examples/screenshots/webgl_loader_gcode.jpg index ec10d1974e3e2b..d6451d83ea310e 100644 Binary files a/examples/screenshots/webgl_loader_gcode.jpg and b/examples/screenshots/webgl_loader_gcode.jpg differ diff --git a/examples/screenshots/webgl_loader_md2_control.jpg b/examples/screenshots/webgl_loader_md2_control.jpg index 44fa5f48728c15..e092a46f0cc3d9 100644 Binary files a/examples/screenshots/webgl_loader_md2_control.jpg and b/examples/screenshots/webgl_loader_md2_control.jpg differ diff --git a/examples/screenshots/webgl_loader_pcd.jpg b/examples/screenshots/webgl_loader_pcd.jpg index 68bbe6bc29f744..dc84b420488a08 100644 Binary files a/examples/screenshots/webgl_loader_pcd.jpg and b/examples/screenshots/webgl_loader_pcd.jpg differ diff --git a/examples/screenshots/webgl_loader_texture_ktx.jpg b/examples/screenshots/webgl_loader_texture_ktx.jpg index 1cda63f347d3c7..83557bbaf970e5 100644 Binary files a/examples/screenshots/webgl_loader_texture_ktx.jpg and b/examples/screenshots/webgl_loader_texture_ktx.jpg differ diff --git a/examples/screenshots/webgl_loader_ttf.jpg b/examples/screenshots/webgl_loader_ttf.jpg index b22008229a8865..9c0740f4bf9ffb 100644 Binary files a/examples/screenshots/webgl_loader_ttf.jpg and b/examples/screenshots/webgl_loader_ttf.jpg differ diff --git a/examples/screenshots/webgl_lod.jpg b/examples/screenshots/webgl_lod.jpg index 2de4d5b1a0e086..240c357efd6b0c 100644 Binary files a/examples/screenshots/webgl_lod.jpg and b/examples/screenshots/webgl_lod.jpg differ diff --git a/examples/screenshots/webgl_materials_texture_filters.jpg b/examples/screenshots/webgl_materials_texture_filters.jpg index f1eba6abce3c57..8fc8e9623b519f 100644 Binary files a/examples/screenshots/webgl_materials_texture_filters.jpg and b/examples/screenshots/webgl_materials_texture_filters.jpg differ diff --git a/examples/screenshots/webgl_materials_texture_manualmipmap.jpg b/examples/screenshots/webgl_materials_texture_manualmipmap.jpg index be9a849add1d94..383c78f09a35e9 100644 Binary files a/examples/screenshots/webgl_materials_texture_manualmipmap.jpg and b/examples/screenshots/webgl_materials_texture_manualmipmap.jpg differ diff --git a/examples/screenshots/webgl_points_billboards.jpg b/examples/screenshots/webgl_points_billboards.jpg index ca85f98b0588ec..d397f2434e6f6e 100644 Binary files a/examples/screenshots/webgl_points_billboards.jpg and b/examples/screenshots/webgl_points_billboards.jpg differ diff --git a/examples/screenshots/webgl_postprocessing_glitch.jpg b/examples/screenshots/webgl_postprocessing_glitch.jpg index dc6fb98db84c6c..4b9c7aa946b50d 100644 Binary files a/examples/screenshots/webgl_postprocessing_glitch.jpg and b/examples/screenshots/webgl_postprocessing_glitch.jpg differ diff --git a/examples/screenshots/webgl_postprocessing_pixel.jpg b/examples/screenshots/webgl_postprocessing_pixel.jpg index bea6d2c1d85409..eb92ec271b8513 100644 Binary files a/examples/screenshots/webgl_postprocessing_pixel.jpg and b/examples/screenshots/webgl_postprocessing_pixel.jpg differ diff --git a/examples/screenshots/webgl_postprocessing_procedural.jpg b/examples/screenshots/webgl_postprocessing_procedural.jpg index 61450c2cf17b15..72f100ecd2e1f4 100644 Binary files a/examples/screenshots/webgl_postprocessing_procedural.jpg and b/examples/screenshots/webgl_postprocessing_procedural.jpg differ diff --git a/examples/screenshots/webgl_sprites.jpg b/examples/screenshots/webgl_sprites.jpg index ee9396c01e42a4..1e1b4cb8d80746 100644 Binary files a/examples/screenshots/webgl_sprites.jpg and b/examples/screenshots/webgl_sprites.jpg differ diff --git a/examples/screenshots/webxr_vr_teleport.jpg b/examples/screenshots/webxr_vr_teleport.jpg index 86f55d661dffd5..6a495d0e2a4a76 100644 Binary files a/examples/screenshots/webxr_vr_teleport.jpg and b/examples/screenshots/webxr_vr_teleport.jpg differ diff --git a/examples/screenshots/webxr_xr_cubes.jpg b/examples/screenshots/webxr_xr_cubes.jpg index 214028953b5d6d..785e3236243a51 100644 Binary files a/examples/screenshots/webxr_xr_cubes.jpg and b/examples/screenshots/webxr_xr_cubes.jpg differ diff --git a/examples/screenshots/webxr_xr_dragging.jpg b/examples/screenshots/webxr_xr_dragging.jpg index f1771c66083f9e..a55cae32e18d94 100644 Binary files a/examples/screenshots/webxr_xr_dragging.jpg and b/examples/screenshots/webxr_xr_dragging.jpg differ diff --git a/src/renderers/shaders/ShaderLib/linedashed.glsl.js b/src/renderers/shaders/ShaderLib/linedashed.glsl.js index 42bfbb39ac9ff5..f6ebebc7c28019 100644 --- a/src/renderers/shaders/ShaderLib/linedashed.glsl.js +++ b/src/renderers/shaders/ShaderLib/linedashed.glsl.js @@ -66,9 +66,9 @@ void main() { outgoingLight = diffuseColor.rgb; // simple shader #include + #include #include #include - #include #include } diff --git a/src/renderers/shaders/ShaderLib/meshbasic.glsl.js b/src/renderers/shaders/ShaderLib/meshbasic.glsl.js index ec44579c18381f..0d96bd083cf38c 100644 --- a/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshbasic.glsl.js @@ -104,9 +104,9 @@ void main() { #include #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/meshlambert.glsl.js b/src/renderers/shaders/ShaderLib/meshlambert.glsl.js index e8e2f28b7295df..bff91f88217c2e 100644 --- a/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshlambert.glsl.js @@ -112,9 +112,9 @@ void main() { #include #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js b/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js index d1018bbc985d30..39836c6254da9d 100644 --- a/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js @@ -99,9 +99,9 @@ void main() { vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/meshphong.glsl.js b/src/renderers/shaders/ShaderLib/meshphong.glsl.js index 3248b1aa87d545..cc76af4fbbf055 100644 --- a/src/renderers/shaders/ShaderLib/meshphong.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphong.glsl.js @@ -114,9 +114,9 @@ void main() { #include #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index a3acad519f3938..3af29e5c98e01d 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -212,9 +212,9 @@ void main() { #endif #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/meshtoon.glsl.js b/src/renderers/shaders/ShaderLib/meshtoon.glsl.js index 458b406743132f..27ae03baef410f 100644 --- a/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshtoon.glsl.js @@ -106,9 +106,9 @@ void main() { vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; #include + #include #include #include - #include #include #include diff --git a/src/renderers/shaders/ShaderLib/points.glsl.js b/src/renderers/shaders/ShaderLib/points.glsl.js index be07fd06ed84f4..a0578bab880abc 100644 --- a/src/renderers/shaders/ShaderLib/points.glsl.js +++ b/src/renderers/shaders/ShaderLib/points.glsl.js @@ -77,9 +77,9 @@ void main() { outgoingLight = diffuseColor.rgb; #include + #include #include #include - #include #include } diff --git a/src/renderers/shaders/ShaderLib/shadow.glsl.js b/src/renderers/shaders/ShaderLib/shadow.glsl.js index ad2405c4d065a3..475a7206745b47 100644 --- a/src/renderers/shaders/ShaderLib/shadow.glsl.js +++ b/src/renderers/shaders/ShaderLib/shadow.glsl.js @@ -46,9 +46,9 @@ void main() { gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include #include #include - #include } `; diff --git a/src/renderers/shaders/ShaderLib/sprite.glsl.js b/src/renderers/shaders/ShaderLib/sprite.glsl.js index 864dee4f84bdc2..cd908a4dfe6ca1 100644 --- a/src/renderers/shaders/ShaderLib/sprite.glsl.js +++ b/src/renderers/shaders/ShaderLib/sprite.glsl.js @@ -73,9 +73,9 @@ void main() { outgoingLight = diffuseColor.rgb; #include + #include #include #include - #include } `; diff --git a/src/renderers/webgl/WebGLMaterials.js b/src/renderers/webgl/WebGLMaterials.js index 2c2cc1ab585fe6..c1de0e0e458a07 100644 --- a/src/renderers/webgl/WebGLMaterials.js +++ b/src/renderers/webgl/WebGLMaterials.js @@ -1,5 +1,5 @@ -import { BackSide } from '../../constants.js'; -import { getUnlitUniformColorSpace } from '../shaders/UniformsUtils.js'; +import { BackSide, LinearSRGBColorSpace, SRGBColorSpace } from '../../constants.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLMaterials( renderer, properties ) { @@ -17,7 +17,26 @@ function WebGLMaterials( renderer, properties ) { function refreshFogUniforms( uniforms, fog ) { - fog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) ); + if ( ColorManagement.enabled ) { + + fog.color.getRGB( uniforms.fogColor.value, LinearSRGBColorSpace ); + + } else { + + if ( getUnlitUniformColorSpace( renderer ) === SRGBColorSpace ) { + + // We do this to match previous behaviour, though it's a bit unintuitive to apply color management operations in case color management is disabled. + + _color.copySRGBToLinear( fog.color ); + _color.getRGB( uniforms.fogColor.value ); + + } else { + + fog.color.getRGB( uniforms.fogColor.value ); + + } + + } if ( fog.isFog ) {