From 80689ad99ad1f123799a0ffb1ff5fbf2cdc90127 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 16:08:12 -0400 Subject: [PATCH 01/21] WIP: Display P3 render example --- examples/files.json | 1 + src/math/ColorManagement.js | 30 +++++++++++++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/examples/files.json b/examples/files.json index cbc164b4216590..b72521ae65d266 100644 --- a/examples/files.json +++ b/examples/files.json @@ -213,6 +213,7 @@ "webgl_sprites", "webgl_test_memory", "webgl_test_memory2", + "webgl_test_wide_gamut", "webgl_tonemapping", "webgl_video_kinect", "webgl_video_panorama_equirectangular", diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index d15d3d3539c98e..f928ebc6108b47 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -1,4 +1,4 @@ -import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, } from '../constants.js'; +import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, } from '../constants.js'; import { Matrix3 } from './Matrix3.js'; export function SRGBToLinear( c ) { @@ -51,24 +51,40 @@ function LinearSRGBToDisplayP3( color ) { } +function LinearDisplayP3ToLinearSRGB( color ) { + + return color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ); + +} + +function LinearSRGBToLinearDisplayP3( color ) { + + return color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ); + +} + // Conversions from to Linear-sRGB reference space. -const TO_LINEAR = { +const TO_REFERENCE = { [ LinearSRGBColorSpace ]: ( color ) => color, [ SRGBColorSpace ]: ( color ) => color.convertSRGBToLinear(), [ DisplayP3ColorSpace ]: DisplayP3ToLinearSRGB, + [ LinearDisplayP3ColorSpace ]: LinearDisplayP3ToLinearSRGB, }; // Conversions to from Linear-sRGB reference space. -const FROM_LINEAR = { +const FROM_REFERENCE = { [ LinearSRGBColorSpace ]: ( color ) => color, [ SRGBColorSpace ]: ( color ) => color.convertLinearToSRGB(), [ DisplayP3ColorSpace ]: LinearSRGBToDisplayP3, + [ LinearDisplayP3ColorSpace ]: LinearSRGBToLinearDisplayP3, }; export const ColorManagement = { enabled: true, + _workingColorSpace: LinearSRGBColorSpace, + get legacyMode() { console.warn( 'THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150.' ); @@ -87,13 +103,13 @@ export const ColorManagement = { get workingColorSpace() { - return LinearSRGBColorSpace; + return this._workingColorSpace; }, set workingColorSpace( colorSpace ) { - console.warn( 'THREE.ColorManagement: .workingColorSpace is readonly.' ); + this._workingColorSpace = colorSpace; }, @@ -105,8 +121,8 @@ export const ColorManagement = { } - const sourceToLinear = TO_LINEAR[ sourceColorSpace ]; - const targetFromLinear = FROM_LINEAR[ targetColorSpace ]; + const sourceToLinear = TO_REFERENCE[ sourceColorSpace ]; + const targetFromLinear = FROM_REFERENCE[ targetColorSpace ]; if ( sourceToLinear === undefined || targetFromLinear === undefined ) { From 47e09778dd12b773d3068d82900a4efd5245e806 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 19:26:55 -0400 Subject: [PATCH 02/21] WIP: P3 implementation --- examples/jsm/capabilities/WebGL.js | 19 ++ .../textures/wide_gamut/webkit_logo_p3.png | Bin 0 -> 78074 bytes .../textures/wide_gamut/webkit_logo_srgb.png | Bin 0 -> 6210 bytes .../textures/wide_gamut/yellow_flower_p3.jpg | Bin 0 -> 89773 bytes .../wide_gamut/yellow_flower_srgb.jpg | Bin 0 -> 89221 bytes examples/webgl_test_wide_gamut.html | 240 ++++++++++++++++++ src/constants.js | 6 + src/math/ColorManagement.js | 67 ++++- src/renderers/WebGLRenderer.js | 30 ++- .../colorspace_pars_fragment.glsl.js | 27 +- src/renderers/shaders/UniformsUtils.js | 3 +- src/renderers/webgl/WebGLBackground.js | 7 +- src/renderers/webgl/WebGLProgram.js | 37 ++- src/renderers/webgl/WebGLPrograms.js | 5 +- src/renderers/webgl/WebGLTextures.js | 27 +- src/renderers/webgl/WebGLUtils.js | 8 +- 16 files changed, 447 insertions(+), 29 deletions(-) create mode 100644 examples/textures/wide_gamut/webkit_logo_p3.png create mode 100644 examples/textures/wide_gamut/webkit_logo_srgb.png create mode 100644 examples/textures/wide_gamut/yellow_flower_p3.jpg create mode 100644 examples/textures/wide_gamut/yellow_flower_srgb.jpg create mode 100644 examples/webgl_test_wide_gamut.html diff --git a/examples/jsm/capabilities/WebGL.js b/examples/jsm/capabilities/WebGL.js index 08666feb103f91..41cdbf07588a79 100644 --- a/examples/jsm/capabilities/WebGL.js +++ b/examples/jsm/capabilities/WebGL.js @@ -30,6 +30,25 @@ class WebGL { } + static isColorSpaceAvailable( colorSpace ) { + + if ( ! window.matchMedia( '( color-gamut: p3 )' ).matches ) return false; + + try { + + const canvas = document.createElement( 'canvas' ); + const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); + ctx.drawingBufferColorSpace = colorSpace; + return ctx.drawingBufferColorSpace === colorSpace; + + } catch ( e ) { + + return false; + + } + + } + static getWebGLErrorMessage() { return this.getErrorMessage( 1 ); diff --git a/examples/textures/wide_gamut/webkit_logo_p3.png b/examples/textures/wide_gamut/webkit_logo_p3.png new file mode 100644 index 0000000000000000000000000000000000000000..55bad7f812570a85cf5d702de55ac32d4caa599d GIT binary patch literal 78074 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

Gdr{sfu7LwK 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 literal 0 HcmV?d00001 diff --git a/examples/textures/wide_gamut/yellow_flower_srgb.jpg b/examples/textures/wide_gamut/yellow_flower_srgb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f06a536c2df9a82b7c6ee35e5f6dd30d17290bba GIT binary patch literal 89221 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

%UqD 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 literal 0 HcmV?d00001 diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html new file mode 100644 index 00000000000000..bca599cd5cec97 --- /dev/null +++ b/examples/webgl_test_wide_gamut.html @@ -0,0 +1,240 @@ + + + + three.js webgl - test - wide gamut + + + + + + + + +
+ three.js - wide gamut test
+
+ +
+
+

sRGB

+

Display P3

+
+ + + + + + + + + + diff --git a/src/constants.js b/src/constants.js index d30a7713755a3a..9784bd229623ce 100644 --- a/src/constants.js +++ b/src/constants.js @@ -158,6 +158,12 @@ export const LinearSRGBColorSpace = 'srgb-linear'; export const DisplayP3ColorSpace = 'display-p3'; export const LinearDisplayP3ColorSpace = 'display-p3-linear'; +export const LinearTransferFunction = 'linear'; +export const SRGBTransferFunction = 'srgb'; + +export const Rec709Primaries = 'rec709'; +export const P3Primaries = 'p3'; + export const ZeroStencilOp = 0; export const KeepStencilOp = 7680; export const ReplaceStencilOp = 7681; diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index f928ebc6108b47..b34884f8b5164d 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -1,4 +1,4 @@ -import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, } from '../constants.js'; +import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, Rec709Primaries, P3Primaries, SRGBTransferFunction, LinearTransferFunction, NoColorSpace, } from '../constants.js'; import { Matrix3 } from './Matrix3.js'; export function SRGBToLinear( c ) { @@ -79,6 +79,8 @@ const FROM_REFERENCE = { [ LinearDisplayP3ColorSpace ]: LinearSRGBToLinearDisplayP3, }; +const SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] ); + export const ColorManagement = { enabled: true, @@ -109,6 +111,12 @@ export const ColorManagement = { set workingColorSpace( colorSpace ) { + if ( ! SUPPORTED_WORKING_COLOR_SPACES.has( colorSpace ) ) { + + throw new Error( `Unsupported working color space, "${ colorSpace }".` ); + + } + this._workingColorSpace = colorSpace; }, @@ -136,14 +144,67 @@ export const ColorManagement = { fromWorkingColorSpace: function ( color, targetColorSpace ) { - return this.convert( color, this.workingColorSpace, targetColorSpace ); + return this.convert( color, this._workingColorSpace, targetColorSpace ); }, toWorkingColorSpace: function ( color, sourceColorSpace ) { - return this.convert( color, sourceColorSpace, this.workingColorSpace ); + return this.convert( color, sourceColorSpace, this._workingColorSpace ); + + }, + + getPrimaries: function ( colorSpace ) { + + switch ( colorSpace ) { + + case SRGBColorSpace: + case LinearSRGBColorSpace: + return Rec709Primaries; + + case DisplayP3ColorSpace: + case LinearDisplayP3ColorSpace: + return P3Primaries; + + default: + throw new Error( `Unsupported color space, "${ colorSpace }."` ); + + } + + }, + + getTransferFunction: function ( colorSpace ) { + + switch ( colorSpace ) { + + case SRGBColorSpace: + case DisplayP3ColorSpace: + return SRGBTransferFunction; + + case LinearSRGBColorSpace: + case LinearDisplayP3ColorSpace: + case NoColorSpace: + return LinearTransferFunction; + + default: + throw new Error( `Unsupported color space, "${ colorSpace }."` ); + + } }, + getUnpackColorSpace: function () { + + switch ( this._workingColorSpace ) { + + case LinearSRGBColorSpace: + return SRGBColorSpace; + + case LinearDisplayP3ColorSpace: + return DisplayP3ColorSpace; + + } + + } + }; diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 4c675bddf54f2a..2a8d77926aecf6 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -21,7 +21,8 @@ import { UnsignedInt248Type, UnsignedShort4444Type, UnsignedShort5551Type, - WebGLCoordinateSystem + WebGLCoordinateSystem, + DisplayP3ColorSpace } from '../constants.js'; import { Color } from '../math/Color.js'; import { Frustum } from '../math/Frustum.js'; @@ -59,6 +60,7 @@ import { WebXRManager } from './webxr/WebXRManager.js'; import { WebGLMaterials } from './webgl/WebGLMaterials.js'; import { WebGLUniformsGroups } from './webgl/WebGLUniformsGroups.js'; import { createCanvasElement } from '../utils.js'; +import { ColorManagement } from '../math/ColorManagement.js'; class WebGLRenderer { @@ -140,7 +142,7 @@ class WebGLRenderer { // physically based shading - this.outputColorSpace = SRGBColorSpace; + this._outputColorSpace = SRGBColorSpace; // physical lights @@ -2392,6 +2394,16 @@ class WebGLRenderer { }; + this.resetColorManagement = function () { + + _gl.drawingBufferColorSpace = this._outputColorSpace === DisplayP3ColorSpace ? DisplayP3ColorSpace : 'srgb'; + _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); + + const { drawingBufferColorSpace, unpackColorSpace } = _gl; + console.log({ drawingBufferColorSpace, unpackColorSpace }); + + }; + this.resetState = function () { _currentActiveCubeFace = 0; @@ -2417,6 +2429,20 @@ class WebGLRenderer { } + get outputColorSpace() { + + return this._outputColorSpace; + + } + + set outputColorSpace( colorSpace ) { + + this._outputColorSpace = colorSpace; + + this.resetColorManagement(); + + } + get physicallyCorrectLights() { // @deprecated, r150 console.warn( 'THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' ); diff --git a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js index 26371675293d38..357750b76016fc 100644 --- a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js @@ -1,11 +1,32 @@ export default /* glsl */` -vec4 LinearToLinear( in vec4 value ) { +// http://www.russellcottrell.com/photo/matrixCalculator.htm + +mat3 REC709_TO_P3 = transpose( mat3( + 0.8224621, 0.0331941, 0.0170827, + 0.1775380, 0.9668058, 0.0723974, + -0.0000001, 0.0000001, 0.9105199 +) ); + +mat3 P3_TO_REC709 = transpose( mat3( + 1.2249401, - 0.0420569, - 0.0196376, + - 0.2249404, 1.0420571, - 0.0786361, + 0.0000001, 0.0000000, 1.0982735 +) ); + +vec4 Rec709ToP3( in vec4 value ) { + return vec4( value.rgb * REC709_TO_P3, value.a ); +} + +vec4 P3ToRec709( in vec4 value ) { + return vec4( value.rgb * P3_TO_REC709, value.a ); +} + +vec4 LinearTransferOETF( in vec4 value ) { return value; } -vec4 LinearTosRGB( in vec4 value ) { +vec4 sRGBTransferOETF( in vec4 value ) { return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); } - `; diff --git a/src/renderers/shaders/UniformsUtils.js b/src/renderers/shaders/UniformsUtils.js index b8628bbee035c1..9f06625b407502 100644 --- a/src/renderers/shaders/UniformsUtils.js +++ b/src/renderers/shaders/UniformsUtils.js @@ -1,4 +1,5 @@ import { LinearSRGBColorSpace } from '../../constants.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; /** * Uniform Utilities @@ -93,7 +94,7 @@ export function getUnlitUniformColorSpace( renderer ) { } - return LinearSRGBColorSpace; + return ColorManagement.workingColorSpace; } diff --git a/src/renderers/webgl/WebGLBackground.js b/src/renderers/webgl/WebGLBackground.js index 041fec87767671..c625059743db0b 100644 --- a/src/renderers/webgl/WebGLBackground.js +++ b/src/renderers/webgl/WebGLBackground.js @@ -1,8 +1,9 @@ -import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBColorSpace } from '../../constants.js'; +import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBColorSpace, SRGBTransferFunction } from '../../constants.js'; import { BoxGeometry } from '../../geometries/BoxGeometry.js'; import { PlaneGeometry } from '../../geometries/PlaneGeometry.js'; import { ShaderMaterial } from '../../materials/ShaderMaterial.js'; import { Color } from '../../math/Color.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; import { Mesh } from '../../objects/Mesh.js'; import { ShaderLib } from '../shaders/ShaderLib.js'; import { cloneUniforms, getUnlitUniformColorSpace } from '../shaders/UniformsUtils.js'; @@ -108,7 +109,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, boxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1; boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness; boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - boxMesh.material.toneMapped = ( background.colorSpace === SRGBColorSpace ) ? false : true; + boxMesh.material.toneMapped = ( ColorManagement.getTransferFunction( background.colorSpace ) === SRGBTransferFunction ) ? false : true; if ( currentBackground !== background || currentBackgroundVersion !== background.version || @@ -164,7 +165,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, planeMesh.material.uniforms.t2D.value = background; planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - planeMesh.material.toneMapped = ( background.colorSpace === SRGBColorSpace ) ? false : true; + planeMesh.material.toneMapped = ( ColorManagement.getTransferFunction( background.colorSpace ) === SRGBTransferFunction ) ? false : true; if ( background.matrixAutoUpdate === true ) { diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index ec5cd753dbf7dc..ae775f30932adc 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -1,7 +1,8 @@ import { WebGLUniforms } from './WebGLUniforms.js'; import { WebGLShader } from './WebGLShader.js'; import { ShaderChunk } from '../shaders/ShaderChunk.js'; -import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearSRGBColorSpace, SRGBColorSpace } from '../../constants.js'; +import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearSRGBColorSpace, SRGBColorSpace, LinearDisplayP3ColorSpace, DisplayP3ColorSpace, P3Primaries, Rec709Primaries, NoColorSpace } from '../../constants.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; let programIdCount = 0; @@ -26,15 +27,39 @@ function handleSource( string, errorLine ) { function getEncodingComponents( colorSpace ) { + let gamutMapping = ''; + + if ( colorSpace !== NoColorSpace ) { + + const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); + const encodingPrimaries = colorSpace === NoColorSpace ? '' : ColorManagement.getPrimaries( colorSpace ); + + if ( workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries ) { + + gamutMapping = 'P3ToRec709'; + + } else if ( workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries ) { + + gamutMapping = 'Rec709ToP3'; + + } + + } + switch ( colorSpace ) { + case NoColorSpace: case LinearSRGBColorSpace: - return [ 'Linear', '( value )' ]; + case LinearDisplayP3ColorSpace: + return [ gamutMapping, 'LinearTransferOETF' ]; + case SRGBColorSpace: - return [ 'sRGB', '( value )' ]; + case DisplayP3ColorSpace: + return [ gamutMapping, 'sRGBTransferOETF' ]; + default: console.warn( 'THREE.WebGLProgram: Unsupported color space:', colorSpace ); - return [ 'Linear', '( value )' ]; + return [ gamutMapping, 'LinearTransferOETF' ]; } @@ -67,7 +92,9 @@ function getShaderErrors( gl, shader, type ) { function getTexelEncodingFunction( functionName, colorSpace ) { const components = getEncodingComponents( colorSpace ); - return 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[ 0 ] + components[ 1 ] + '; }'; + const result = `vec4 ${functionName}( vec4 value ) { return ${components[ 0 ]}( ${components[ 1 ]}( value ) ); }`; + console.log(result); + return result; } diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 0457aa0ebb1616..d7453755c465f1 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -1,9 +1,10 @@ -import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBColorSpace } from '../../constants.js'; +import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBColorSpace, SRGBTransferFunction } from '../../constants.js'; import { Layers } from '../../core/Layers.js'; import { WebGLProgram } from './WebGLProgram.js'; import { WebGLShaderCache } from './WebGLShaderCache.js'; import { ShaderLib } from '../shaders/ShaderLib.js'; import { UniformsUtils } from '../shaders/UniformsUtils.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) { @@ -335,7 +336,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities toneMapping: toneMapping, useLegacyLights: renderer._useLegacyLights, - decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( material.map.colorSpace === SRGBColorSpace ), + decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransferFunction( material.map.colorSpace ) === SRGBTransferFunction ), premultipliedAlpha: material.premultipliedAlpha, diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 5065c3d94056b9..14cd92c330ae57 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -1,7 +1,8 @@ -import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, SRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, DisplayP3ColorSpace } from '../../constants.js'; +import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, SRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransferFunction, LinearTransferFunction } from '../../constants.js'; import * as MathUtils from '../../math/MathUtils.js'; import { ImageUtils } from '../../extras/ImageUtils.js'; import { createElementNS } from '../../utils.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) { @@ -178,9 +179,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, if ( glFormat === _gl.RGBA ) { + const transfer = forceLinearTransfer ? LinearTransferFunction : ColorManagement.getTransferFunction( colorSpace ); + if ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F; if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F; - if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( colorSpace === SRGBColorSpace && forceLinearTransfer === false ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8; + if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransferFunction ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8; if ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4; if ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1; @@ -735,10 +738,15 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, state.activeTexture( _gl.TEXTURE0 + slot ); + const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); + const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); + + _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); - _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE ); + _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL ); const needsPowerOfTwo = textureNeedsPowerOfTwo( texture ) && isPowerOfTwo( texture.image ) === false; let image = resizeImage( texture.image, needsPowerOfTwo, false, maxTextureSize ); @@ -1149,10 +1157,15 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, state.activeTexture( _gl.TEXTURE0 + slot ); + const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); + const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); + + _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); - _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE ); + _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL ); const isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture ); const isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture ); @@ -2029,11 +2042,15 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, if ( texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _SRGBAFormat ) return image; + const transferFunction = ColorManagement.getTransferFunction( colorSpace ); + + console.log({ transferFunction }); + if ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) { // sRGB - if ( colorSpace === SRGBColorSpace || colorSpace === DisplayP3ColorSpace ) { + if ( transferFunction === SRGBTransferFunction ) { if ( isWebGL2 === false ) { diff --git a/src/renderers/webgl/WebGLUtils.js b/src/renderers/webgl/WebGLUtils.js index 986bf0a86e4e93..4130d54377706d 100644 --- a/src/renderers/webgl/WebGLUtils.js +++ b/src/renderers/webgl/WebGLUtils.js @@ -1,7 +1,5 @@ -import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, SRGBColorSpace, NoColorSpace, DisplayP3ColorSpace } from '../../constants.js'; - -const LinearTransferFunction = 0; -const SRGBTransferFunction = 1; +import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, SRGBColorSpace, NoColorSpace, DisplayP3ColorSpace, SRGBTransferFunction } from '../../constants.js'; +import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLUtils( gl, extensions, capabilities ) { @@ -11,7 +9,7 @@ function WebGLUtils( gl, extensions, capabilities ) { let extension; - const transferFunction = ( colorSpace === SRGBColorSpace || colorSpace === DisplayP3ColorSpace ) ? SRGBTransferFunction : LinearTransferFunction; + const transferFunction = ColorManagement.getTransferFunction( colorSpace ); if ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE; if ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4; From caabb882af8d9a7a130170fd0e4493d61382546a Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 19:40:15 -0400 Subject: [PATCH 03/21] Clean up --- examples/jsm/capabilities/WebGL.js | 2 -- examples/webgl_test_wide_gamut.html | 7 +++++-- src/renderers/WebGLRenderer.js | 10 ++++------ src/renderers/webgl/WebGLProgram.js | 4 +--- src/renderers/webgl/WebGLTextures.js | 10 +--------- 5 files changed, 11 insertions(+), 22 deletions(-) diff --git a/examples/jsm/capabilities/WebGL.js b/examples/jsm/capabilities/WebGL.js index 41cdbf07588a79..7070ee755d2b4c 100644 --- a/examples/jsm/capabilities/WebGL.js +++ b/examples/jsm/capabilities/WebGL.js @@ -32,8 +32,6 @@ class WebGL { static isColorSpaceAvailable( colorSpace ) { - if ( ! window.matchMedia( '( color-gamut: p3 )' ).matches ) return false; - try { const canvas = document.createElement( 'canvas' ); diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index bca599cd5cec97..3838b0c59e35ea 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -88,7 +88,10 @@ }; - if ( WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ) ) { + const hasP3Display = window.matchMedia( '( color-gamut: p3 )' ).matches; + const hasP3Context = WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ); + + if ( hasP3Display && hasP3Context ) { THREE.ColorManagement.workingColorSpace = THREE.LinearDisplayP3ColorSpace; @@ -123,7 +126,7 @@ renderer.setAnimationLoop( render ); container.appendChild( renderer.domElement ); - if ( WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ) ) { + if ( hasP3Display && hasP3Context ) { renderer.outputColorSpace = THREE.DisplayP3ColorSpace; diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 2a8d77926aecf6..e0d4baada4a052 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -22,7 +22,8 @@ import { UnsignedShort4444Type, UnsignedShort5551Type, WebGLCoordinateSystem, - DisplayP3ColorSpace + DisplayP3ColorSpace, + LinearDisplayP3ColorSpace } from '../constants.js'; import { Color } from '../math/Color.js'; import { Frustum } from '../math/Frustum.js'; @@ -2396,11 +2397,8 @@ class WebGLRenderer { this.resetColorManagement = function () { - _gl.drawingBufferColorSpace = this._outputColorSpace === DisplayP3ColorSpace ? DisplayP3ColorSpace : 'srgb'; - _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); - - const { drawingBufferColorSpace, unpackColorSpace } = _gl; - console.log({ drawingBufferColorSpace, unpackColorSpace }); + _gl.drawingBufferColorSpace = this._outputColorSpace === DisplayP3ColorSpace ? 'display-p3' : 'srgb'; + _gl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? 'display-p3' : 'srgb'; }; diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index ae775f30932adc..e8933b7ca36dbb 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -92,9 +92,7 @@ function getShaderErrors( gl, shader, type ) { function getTexelEncodingFunction( functionName, colorSpace ) { const components = getEncodingComponents( colorSpace ); - const result = `vec4 ${functionName}( vec4 value ) { return ${components[ 0 ]}( ${components[ 1 ]}( value ) ); }`; - console.log(result); - return result; + return `vec4 ${functionName}( vec4 value ) { return ${components[ 0 ]}( ${components[ 1 ]}( value ) ); }`; } diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 14cd92c330ae57..0a67bffa90c90c 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -741,8 +741,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); - _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); - _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); @@ -1160,8 +1158,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); - _gl.unpackColorSpace = ColorManagement.getUnpackColorSpace(); - _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); @@ -2042,15 +2038,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, if ( texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _SRGBAFormat ) return image; - const transferFunction = ColorManagement.getTransferFunction( colorSpace ); - - console.log({ transferFunction }); - if ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) { // sRGB - if ( transferFunction === SRGBTransferFunction ) { + if ( ColorManagement.getTransferFunction( colorSpace ) === SRGBTransferFunction ) { if ( isWebGL2 === false ) { From a0c0c43a3ef6b495f9f03938599d106f794d9d97 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 20:00:25 -0400 Subject: [PATCH 04/21] TransferFunction -> Transfer --- .../screenshots/webgl_test_wide_gamut.jpg | Bin 0 -> 44434 bytes src/constants.js | 4 +- src/math/ColorManagement.js | 8 ++-- src/renderers/webgl/WebGLBackground.js | 6 +-- src/renderers/webgl/WebGLPrograms.js | 4 +- src/renderers/webgl/WebGLTextures.js | 8 ++-- src/renderers/webgl/WebGLUtils.js | 40 +++++++++--------- 7 files changed, 35 insertions(+), 35 deletions(-) create mode 100644 examples/screenshots/webgl_test_wide_gamut.jpg diff --git a/examples/screenshots/webgl_test_wide_gamut.jpg b/examples/screenshots/webgl_test_wide_gamut.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9bf665a845a7637462b6af1012fa9515d9a8bf1 GIT binary patch literal 44434 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

e`TBxyc(Edb5l^S-cG%`QbFwYmd} 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%0Ar_I1ub#;R5Lf$8jF_p>J|U(9Z3vHs8Y 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 literal 0 HcmV?d00001 diff --git a/src/constants.js b/src/constants.js index 9784bd229623ce..aab485cb35f31c 100644 --- a/src/constants.js +++ b/src/constants.js @@ -158,8 +158,8 @@ export const LinearSRGBColorSpace = 'srgb-linear'; export const DisplayP3ColorSpace = 'display-p3'; export const LinearDisplayP3ColorSpace = 'display-p3-linear'; -export const LinearTransferFunction = 'linear'; -export const SRGBTransferFunction = 'srgb'; +export const LinearTransfer = 'linear'; +export const SRGBTransfer = 'srgb'; export const Rec709Primaries = 'rec709'; export const P3Primaries = 'p3'; diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index b34884f8b5164d..7364c3f71ae8de 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -1,4 +1,4 @@ -import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, Rec709Primaries, P3Primaries, SRGBTransferFunction, LinearTransferFunction, NoColorSpace, } from '../constants.js'; +import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, Rec709Primaries, P3Primaries, SRGBTransfer, LinearTransfer, NoColorSpace, } from '../constants.js'; import { Matrix3 } from './Matrix3.js'; export function SRGBToLinear( c ) { @@ -173,18 +173,18 @@ export const ColorManagement = { }, - getTransferFunction: function ( colorSpace ) { + getTransfer: function ( colorSpace ) { switch ( colorSpace ) { case SRGBColorSpace: case DisplayP3ColorSpace: - return SRGBTransferFunction; + return SRGBTransfer; case LinearSRGBColorSpace: case LinearDisplayP3ColorSpace: case NoColorSpace: - return LinearTransferFunction; + return LinearTransfer; default: throw new Error( `Unsupported color space, "${ colorSpace }."` ); diff --git a/src/renderers/webgl/WebGLBackground.js b/src/renderers/webgl/WebGLBackground.js index c625059743db0b..59108cebbd69bd 100644 --- a/src/renderers/webgl/WebGLBackground.js +++ b/src/renderers/webgl/WebGLBackground.js @@ -1,4 +1,4 @@ -import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBColorSpace, SRGBTransferFunction } from '../../constants.js'; +import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBColorSpace, SRGBTransfer } from '../../constants.js'; import { BoxGeometry } from '../../geometries/BoxGeometry.js'; import { PlaneGeometry } from '../../geometries/PlaneGeometry.js'; import { ShaderMaterial } from '../../materials/ShaderMaterial.js'; @@ -109,7 +109,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, boxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1; boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness; boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - boxMesh.material.toneMapped = ( ColorManagement.getTransferFunction( background.colorSpace ) === SRGBTransferFunction ) ? false : true; + boxMesh.material.toneMapped = ( ColorManagement.getTransfer( background.colorSpace ) === SRGBTransfer ) ? false : true; if ( currentBackground !== background || currentBackgroundVersion !== background.version || @@ -165,7 +165,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, planeMesh.material.uniforms.t2D.value = background; planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - planeMesh.material.toneMapped = ( ColorManagement.getTransferFunction( background.colorSpace ) === SRGBTransferFunction ) ? false : true; + planeMesh.material.toneMapped = ( ColorManagement.getTransfer( background.colorSpace ) === SRGBTransfer ) ? false : true; if ( background.matrixAutoUpdate === true ) { diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index d7453755c465f1..ecdebbc8bb7d6f 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -1,4 +1,4 @@ -import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBColorSpace, SRGBTransferFunction } from '../../constants.js'; +import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBColorSpace, SRGBTransfer } from '../../constants.js'; import { Layers } from '../../core/Layers.js'; import { WebGLProgram } from './WebGLProgram.js'; import { WebGLShaderCache } from './WebGLShaderCache.js'; @@ -336,7 +336,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities toneMapping: toneMapping, useLegacyLights: renderer._useLegacyLights, - decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransferFunction( material.map.colorSpace ) === SRGBTransferFunction ), + decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.map.colorSpace ) === SRGBTransfer ), premultipliedAlpha: material.premultipliedAlpha, diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 0a67bffa90c90c..623307b7027821 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -1,4 +1,4 @@ -import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, SRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransferFunction, LinearTransferFunction } from '../../constants.js'; +import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, SRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransfer, LinearTransfer } from '../../constants.js'; import * as MathUtils from '../../math/MathUtils.js'; import { ImageUtils } from '../../extras/ImageUtils.js'; import { createElementNS } from '../../utils.js'; @@ -179,11 +179,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, if ( glFormat === _gl.RGBA ) { - const transfer = forceLinearTransfer ? LinearTransferFunction : ColorManagement.getTransferFunction( colorSpace ); + const transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer( colorSpace ); if ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F; if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F; - if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransferFunction ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8; + if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransfer ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8; if ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4; if ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1; @@ -2042,7 +2042,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, // sRGB - if ( ColorManagement.getTransferFunction( colorSpace ) === SRGBTransferFunction ) { + if ( ColorManagement.getTransfer( colorSpace ) === SRGBTransfer ) { if ( isWebGL2 === false ) { diff --git a/src/renderers/webgl/WebGLUtils.js b/src/renderers/webgl/WebGLUtils.js index 4130d54377706d..19632d78572ac3 100644 --- a/src/renderers/webgl/WebGLUtils.js +++ b/src/renderers/webgl/WebGLUtils.js @@ -1,4 +1,4 @@ -import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, SRGBColorSpace, NoColorSpace, DisplayP3ColorSpace, SRGBTransferFunction } from '../../constants.js'; +import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, SRGBColorSpace, NoColorSpace, DisplayP3ColorSpace, SRGBTransfer } from '../../constants.js'; import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLUtils( gl, extensions, capabilities ) { @@ -9,7 +9,7 @@ function WebGLUtils( gl, extensions, capabilities ) { let extension; - const transferFunction = ColorManagement.getTransferFunction( colorSpace ); + const transfer = ColorManagement.getTransfer( colorSpace ); if ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE; if ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4; @@ -77,7 +77,7 @@ function WebGLUtils( gl, extensions, capabilities ) { if ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) { - if ( transferFunction === SRGBTransferFunction ) { + if ( transfer === SRGBTransfer ) { extension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' ); @@ -162,8 +162,8 @@ function WebGLUtils( gl, extensions, capabilities ) { if ( extension !== null ) { - if ( p === RGB_ETC2_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2; - if ( p === RGBA_ETC2_EAC_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC; + if ( p === RGB_ETC2_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2; + if ( p === RGBA_ETC2_EAC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC; } else { @@ -185,20 +185,20 @@ function WebGLUtils( gl, extensions, capabilities ) { if ( extension !== null ) { - if ( p === RGBA_ASTC_4x4_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR; - if ( p === RGBA_ASTC_5x4_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR; - if ( p === RGBA_ASTC_5x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR; - if ( p === RGBA_ASTC_6x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR; - if ( p === RGBA_ASTC_6x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR; - if ( p === RGBA_ASTC_8x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR; - if ( p === RGBA_ASTC_8x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR; - if ( p === RGBA_ASTC_8x8_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR; - if ( p === RGBA_ASTC_10x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR; - if ( p === RGBA_ASTC_10x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR; - if ( p === RGBA_ASTC_10x8_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR; - if ( p === RGBA_ASTC_10x10_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR; - if ( p === RGBA_ASTC_12x10_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR; - if ( p === RGBA_ASTC_12x12_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR; + if ( p === RGBA_ASTC_4x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR; + if ( p === RGBA_ASTC_5x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR; + if ( p === RGBA_ASTC_5x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR; + if ( p === RGBA_ASTC_6x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR; + if ( p === RGBA_ASTC_6x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR; + if ( p === RGBA_ASTC_8x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR; + if ( p === RGBA_ASTC_8x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR; + if ( p === RGBA_ASTC_8x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR; + if ( p === RGBA_ASTC_10x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR; + if ( p === RGBA_ASTC_10x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR; + if ( p === RGBA_ASTC_10x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR; + if ( p === RGBA_ASTC_10x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR; + if ( p === RGBA_ASTC_12x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR; + if ( p === RGBA_ASTC_12x12_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR; } else { @@ -216,7 +216,7 @@ function WebGLUtils( gl, extensions, capabilities ) { if ( extension !== null ) { - if ( p === RGBA_BPTC_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT; + if ( p === RGBA_BPTC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT; if ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT; if ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT; From d0736da9ee91e6f70241c7cdec700a62a851b39d Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 20:34:32 -0400 Subject: [PATCH 05/21] Clean up --- examples/webgl_test_wide_gamut.html | 11 +----- src/math/ColorManagement.js | 55 ++++++----------------------- 2 files changed, 12 insertions(+), 54 deletions(-) diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index 3838b0c59e35ea..89a88962a23817 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -111,11 +111,6 @@ loader = new THREE.TextureLoader().setPath( 'textures/wide_gamut/' ); - const light = new THREE.HemisphereLight( 0xffffff, 0x444444, 3 ); - light.position.set( - 2, 2, 2 ); - sceneL.add( light.clone() ); - sceneR.add( light.clone() ); - initTextures(); initSlider(); @@ -142,11 +137,6 @@ async function initTextures() { - // TODO: With workingColorSpace="p3-linear", outputColorSpace="srgb", images display quite differently. Expected? - // TODO: Where should .unpackColorSpace be set? Per texture or globally on the renderer? - // TODO: What happens given a Linear-sRGB texture when working color space is Linear-P3? Can we support that? - // TODO: How to detect support for drawingBufferColorSpace="display-p3"? - textureL = await loader.loadAsync( params.image.replace( '{colorSpace}', 'srgb' ) ); textureR = await loader.loadAsync( params.image.replace( '{colorSpace}', 'p3' ) ); @@ -209,6 +199,7 @@ // Sets the matrix uv transform so the texture image is contained in a region having the specified aspect ratio, // and does so without distortion. Akin to CSS object-fit: contain. + // Source: https://github.com/mrdoob/three.js/pull/17199 var imageAspect = ( target.image && target.image.width ) ? target.image.width / target.image.height : 1; diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index 7364c3f71ae8de..e6bbce2344e765 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -75,8 +75,16 @@ const TO_REFERENCE = { const FROM_REFERENCE = { [ LinearSRGBColorSpace ]: ( color ) => color, [ SRGBColorSpace ]: ( color ) => color.convertLinearToSRGB(), - [ DisplayP3ColorSpace ]: LinearSRGBToDisplayP3, [ LinearDisplayP3ColorSpace ]: LinearSRGBToLinearDisplayP3, + [ DisplayP3ColorSpace ]: LinearSRGBToDisplayP3, +}; + +const COLOR_SPACE_COMPONENTS = { + [ NoColorSpace ]: { transfer: LinearTransfer, primaries: undefined }, + [ LinearSRGBColorSpace ]: { transfer: LinearTransfer, primaries: Rec709Primaries }, + [ SRGBColorSpace ]: { transfer: SRGBTransfer, primaries: Rec709Primaries }, + [ LinearDisplayP3ColorSpace ]: { transfer: LinearTransfer, primaries: P3Primaries }, + [ DisplayP3ColorSpace ]: { transfer: SRGBTransfer, primaries: P3Primaries }, }; const SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] ); @@ -156,55 +164,14 @@ export const ColorManagement = { getPrimaries: function ( colorSpace ) { - switch ( colorSpace ) { - - case SRGBColorSpace: - case LinearSRGBColorSpace: - return Rec709Primaries; - - case DisplayP3ColorSpace: - case LinearDisplayP3ColorSpace: - return P3Primaries; - - default: - throw new Error( `Unsupported color space, "${ colorSpace }."` ); - - } + return COLOR_SPACE_COMPONENTS[ colorSpace ].primaries; }, getTransfer: function ( colorSpace ) { - switch ( colorSpace ) { - - case SRGBColorSpace: - case DisplayP3ColorSpace: - return SRGBTransfer; - - case LinearSRGBColorSpace: - case LinearDisplayP3ColorSpace: - case NoColorSpace: - return LinearTransfer; - - default: - throw new Error( `Unsupported color space, "${ colorSpace }."` ); - - } + return COLOR_SPACE_COMPONENTS[ colorSpace ].transfer; }, - getUnpackColorSpace: function () { - - switch ( this._workingColorSpace ) { - - case LinearSRGBColorSpace: - return SRGBColorSpace; - - case LinearDisplayP3ColorSpace: - return DisplayP3ColorSpace; - - } - - } - }; From d68770801b5ddef14e275b4d9674ce151eb5399f Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 20:46:03 -0400 Subject: [PATCH 06/21] Clean up --- src/math/ColorManagement.js | 120 +++++++++++++++--------------------- 1 file changed, 49 insertions(+), 71 deletions(-) diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index e6bbce2344e765..f67061fba8cda1 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -1,18 +1,6 @@ import { SRGBColorSpace, LinearSRGBColorSpace, DisplayP3ColorSpace, LinearDisplayP3ColorSpace, Rec709Primaries, P3Primaries, SRGBTransfer, LinearTransfer, NoColorSpace, } from '../constants.js'; import { Matrix3 } from './Matrix3.js'; -export function SRGBToLinear( c ) { - - return ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 ); - -} - -export function LinearToSRGB( c ) { - - return ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055; - -} - /** * Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping * or clipping. Based on W3C specifications for sRGB and Display P3, @@ -37,54 +25,35 @@ const LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().fromArray( 0.0000001, 0.0000000, 1.0982735 ] ); -function DisplayP3ToLinearSRGB( color ) { - - // Display P3 uses the sRGB transfer functions - return color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ); - -} - -function LinearSRGBToDisplayP3( color ) { - - // Display P3 uses the sRGB transfer functions - return color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(); - -} - -function LinearDisplayP3ToLinearSRGB( color ) { - - return color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ); - -} - -function LinearSRGBToLinearDisplayP3( color ) { - - return color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ); - -} - -// Conversions from to Linear-sRGB reference space. -const TO_REFERENCE = { - [ LinearSRGBColorSpace ]: ( color ) => color, - [ SRGBColorSpace ]: ( color ) => color.convertSRGBToLinear(), - [ DisplayP3ColorSpace ]: DisplayP3ToLinearSRGB, - [ LinearDisplayP3ColorSpace ]: LinearDisplayP3ToLinearSRGB, -}; - -// Conversions to from Linear-sRGB reference space. -const FROM_REFERENCE = { - [ LinearSRGBColorSpace ]: ( color ) => color, - [ SRGBColorSpace ]: ( color ) => color.convertLinearToSRGB(), - [ LinearDisplayP3ColorSpace ]: LinearSRGBToLinearDisplayP3, - [ DisplayP3ColorSpace ]: LinearSRGBToDisplayP3, -}; - -const COLOR_SPACE_COMPONENTS = { - [ NoColorSpace ]: { transfer: LinearTransfer, primaries: undefined }, - [ LinearSRGBColorSpace ]: { transfer: LinearTransfer, primaries: Rec709Primaries }, - [ SRGBColorSpace ]: { transfer: SRGBTransfer, primaries: Rec709Primaries }, - [ LinearDisplayP3ColorSpace ]: { transfer: LinearTransfer, primaries: P3Primaries }, - [ DisplayP3ColorSpace ]: { transfer: SRGBTransfer, primaries: P3Primaries }, +/** + * Defines supported color spaces by transfer function and primaries, + * and provides conversions to/from the Linear-sRGB reference space. + */ +const COLOR_SPACES = { + [ LinearSRGBColorSpace ]: { + transfer: LinearTransfer, + primaries: Rec709Primaries, + toReference: ( color ) => color, + fromReference: ( color ) => color, + }, + [ SRGBColorSpace ]: { + transfer: SRGBTransfer, + primaries: Rec709Primaries, + toReference: ( color ) => color.convertSRGBToLinear(), + fromReference: ( color ) => color.convertLinearToSRGB(), + }, + [ LinearDisplayP3ColorSpace ]: { + transfer: LinearTransfer, + primaries: P3Primaries, + toReference: ( color ) => color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ), + fromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ), + }, + [ DisplayP3ColorSpace ]: { + transfer: SRGBTransfer, + primaries: P3Primaries, + toReference: ( color ) => color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ), + fromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(), + }, }; const SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] ); @@ -137,16 +106,10 @@ export const ColorManagement = { } - const sourceToLinear = TO_REFERENCE[ sourceColorSpace ]; - const targetFromLinear = FROM_REFERENCE[ targetColorSpace ]; - - if ( sourceToLinear === undefined || targetFromLinear === undefined ) { - - throw new Error( `Unsupported color space conversion, "${ sourceColorSpace }" to "${ targetColorSpace }".` ); - - } + const sourceToReference = COLOR_SPACES[ sourceColorSpace ].toReference; + const targetFromReference = COLOR_SPACES[ targetColorSpace ].fromReference; - return targetFromLinear( sourceToLinear( color ) ); + return targetFromReference( sourceToReference( color ) ); }, @@ -164,14 +127,29 @@ export const ColorManagement = { getPrimaries: function ( colorSpace ) { - return COLOR_SPACE_COMPONENTS[ colorSpace ].primaries; + return COLOR_SPACES[ colorSpace ].primaries; }, getTransfer: function ( colorSpace ) { - return COLOR_SPACE_COMPONENTS[ colorSpace ].transfer; + if ( colorSpace === NoColorSpace ) return LinearTransfer; + + return COLOR_SPACES[ colorSpace ].transfer; }, }; + + +export function SRGBToLinear( c ) { + + return ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 ); + +} + +export function LinearToSRGB( c ) { + + return ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055; + +} From 6339846cffa6efb2f5d6d4c437cfa5f69e34bc30 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 20:55:07 -0400 Subject: [PATCH 07/21] Clean up --- src/renderers/webgl/WebGLProgram.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index e8933b7ca36dbb..596868288982b6 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -27,28 +27,27 @@ function handleSource( string, errorLine ) { function getEncodingComponents( colorSpace ) { - let gamutMapping = ''; + const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); + const encodingPrimaries = ColorManagement.getPrimaries( colorSpace ); - if ( colorSpace !== NoColorSpace ) { + let gamutMapping; - const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); - const encodingPrimaries = colorSpace === NoColorSpace ? '' : ColorManagement.getPrimaries( colorSpace ); + if ( workingPrimaries === encodingPrimaries ) { - if ( workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries ) { + gamutMapping = ''; - gamutMapping = 'P3ToRec709'; + } else if ( workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries ) { - } else if ( workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries ) { + gamutMapping = 'P3ToRec709'; - gamutMapping = 'Rec709ToP3'; + } else if ( workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries ) { - } + gamutMapping = 'Rec709ToP3'; } switch ( colorSpace ) { - case NoColorSpace: case LinearSRGBColorSpace: case LinearDisplayP3ColorSpace: return [ gamutMapping, 'LinearTransferOETF' ]; From 8db039be607eda247802f2fc3f04d86b2646d111 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:03:53 -0400 Subject: [PATCH 08/21] Move capabilities check out of WebGL.js --- examples/jsm/capabilities/WebGL.js | 17 ----------------- examples/webgl_test_wide_gamut.html | 8 ++++---- src/math/ColorManagement.js | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/examples/jsm/capabilities/WebGL.js b/examples/jsm/capabilities/WebGL.js index 7070ee755d2b4c..08666feb103f91 100644 --- a/examples/jsm/capabilities/WebGL.js +++ b/examples/jsm/capabilities/WebGL.js @@ -30,23 +30,6 @@ class WebGL { } - static isColorSpaceAvailable( colorSpace ) { - - try { - - const canvas = document.createElement( 'canvas' ); - const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); - ctx.drawingBufferColorSpace = colorSpace; - return ctx.drawingBufferColorSpace === colorSpace; - - } catch ( e ) { - - return false; - - } - - } - static getWebGLErrorMessage() { return this.getErrorMessage( 1 ); diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index 89a88962a23817..dde137750dd2df 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -88,10 +88,10 @@ }; - const hasP3Display = window.matchMedia( '( color-gamut: p3 )' ).matches; - const hasP3Context = WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ); + const isP3Display = window.matchMedia( '( color-gamut: p3 )' ).matches; + const isP3Context = THREE.ColorManagement.isDrawingBufferColorSpaceSupported( THREE.DisplayP3ColorSpace ); - if ( hasP3Display && hasP3Context ) { + if ( isP3Display && isP3Context ) { THREE.ColorManagement.workingColorSpace = THREE.LinearDisplayP3ColorSpace; @@ -121,7 +121,7 @@ renderer.setAnimationLoop( render ); container.appendChild( renderer.domElement ); - if ( hasP3Display && hasP3Context ) { + if ( isP3Display && isP3Context ) { renderer.outputColorSpace = THREE.DisplayP3ColorSpace; diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index f67061fba8cda1..b3696d9597e513 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -139,6 +139,23 @@ export const ColorManagement = { }, + isDrawingBufferColorSpaceSupported: function ( colorSpace ) { + + try { + + const canvas = document.createElement( 'canvas' ); + const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); + ctx.drawingBufferColorSpace = colorSpace; + return ctx.drawingBufferColorSpace === colorSpace; + + } catch ( e ) { + + return false; + + } + + } + }; From b990e5d23a46909069f0dd4dd41daad480532ae2 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:13:48 -0400 Subject: [PATCH 09/21] Fix regressions --- src/renderers/shaders/UniformsUtils.js | 1 - src/renderers/webgl/WebGLTextures.js | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/renderers/shaders/UniformsUtils.js b/src/renderers/shaders/UniformsUtils.js index 9f06625b407502..14025664a38c1d 100644 --- a/src/renderers/shaders/UniformsUtils.js +++ b/src/renderers/shaders/UniformsUtils.js @@ -1,4 +1,3 @@ -import { LinearSRGBColorSpace } from '../../constants.js'; import { ColorManagement } from '../../math/ColorManagement.js'; /** diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 623307b7027821..343d5540ccfc58 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -739,12 +739,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, state.activeTexture( _gl.TEXTURE0 + slot ); const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); - const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); + const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace ); + const unpackConversion = texture.colorSpace === NoColorSpace ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); - _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL ); + _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion ); const needsPowerOfTwo = textureNeedsPowerOfTwo( texture ) && isPowerOfTwo( texture.image ) === false; let image = resizeImage( texture.image, needsPowerOfTwo, false, maxTextureSize ); @@ -1156,12 +1157,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, state.activeTexture( _gl.TEXTURE0 + slot ); const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); - const texturePrimaries = ColorManagement.getPrimaries( texture.colorSpace ); + const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace ); + const unpackConversion = texture.colorSpace === NoColorSpace ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); - _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL ); + _gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion ); const isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture ); const isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture ); From 253e141d65c350cab42ed22370e51c3b84132ae7 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:34:05 -0400 Subject: [PATCH 10/21] Clean up, fix typo --- src/math/ColorManagement.js | 2 +- src/renderers/webgl/WebGLBackground.js | 2 +- src/renderers/webgl/WebGLProgram.js | 2 +- src/renderers/webgl/WebGLTextures.js | 4 ++-- src/renderers/webgl/WebGLUtils.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index b3696d9597e513..ef3b898ef36f9f 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -146,7 +146,7 @@ export const ColorManagement = { const canvas = document.createElement( 'canvas' ); const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); ctx.drawingBufferColorSpace = colorSpace; - return ctx.drawingBufferColorSpace === colorSpace; + return ctx.drawingBufferColorSpace === colorSpace; // deepscan-disable-line SAME_OPERAND_VALUE } catch ( e ) { diff --git a/src/renderers/webgl/WebGLBackground.js b/src/renderers/webgl/WebGLBackground.js index 59108cebbd69bd..b1ee3efd6982ac 100644 --- a/src/renderers/webgl/WebGLBackground.js +++ b/src/renderers/webgl/WebGLBackground.js @@ -1,4 +1,4 @@ -import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBColorSpace, SRGBTransfer } from '../../constants.js'; +import { BackSide, FrontSide, CubeUVReflectionMapping, SRGBTransfer } from '../../constants.js'; import { BoxGeometry } from '../../geometries/BoxGeometry.js'; import { PlaneGeometry } from '../../geometries/PlaneGeometry.js'; import { ShaderMaterial } from '../../materials/ShaderMaterial.js'; diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index 596868288982b6..d580d88fc9962e 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -1,7 +1,7 @@ import { WebGLUniforms } from './WebGLUniforms.js'; import { WebGLShader } from './WebGLShader.js'; import { ShaderChunk } from '../shaders/ShaderChunk.js'; -import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearSRGBColorSpace, SRGBColorSpace, LinearDisplayP3ColorSpace, DisplayP3ColorSpace, P3Primaries, Rec709Primaries, NoColorSpace } from '../../constants.js'; +import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearSRGBColorSpace, SRGBColorSpace, LinearDisplayP3ColorSpace, DisplayP3ColorSpace, P3Primaries, Rec709Primaries } from '../../constants.js'; import { ColorManagement } from '../../math/ColorManagement.js'; let programIdCount = 0; diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 343d5540ccfc58..6cfb8809cb8c6d 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -740,7 +740,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace ); - const unpackConversion = texture.colorSpace === NoColorSpace ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; + const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); @@ -1158,7 +1158,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, const workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace ); const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace ); - const unpackConversion = texture.colorSpace === NoColorSpace ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; + const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); diff --git a/src/renderers/webgl/WebGLUtils.js b/src/renderers/webgl/WebGLUtils.js index 19632d78572ac3..989c84989c9c0b 100644 --- a/src/renderers/webgl/WebGLUtils.js +++ b/src/renderers/webgl/WebGLUtils.js @@ -1,4 +1,4 @@ -import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, SRGBColorSpace, NoColorSpace, DisplayP3ColorSpace, SRGBTransfer } from '../../constants.js'; +import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, LuminanceAlphaFormat, LuminanceFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, _SRGBAFormat, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, NoColorSpace, SRGBTransfer } from '../../constants.js'; import { ColorManagement } from '../../math/ColorManagement.js'; function WebGLUtils( gl, extensions, capabilities ) { From 5091edb316d303f92d47cbd614fcf545490e02f0 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:37:14 -0400 Subject: [PATCH 11/21] Clean up --- src/renderers/webgl/WebGLPrograms.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index ecdebbc8bb7d6f..3546ed5823243c 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -1,4 +1,4 @@ -import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBColorSpace, SRGBTransfer } from '../../constants.js'; +import { BackSide, DoubleSide, CubeUVReflectionMapping, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping, NormalBlending, LinearSRGBColorSpace, SRGBTransfer } from '../../constants.js'; import { Layers } from '../../core/Layers.js'; import { WebGLProgram } from './WebGLProgram.js'; import { WebGLShaderCache } from './WebGLShaderCache.js'; From 7fcb67afed80339c16eb184887266fb59a89387a Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:55:15 -0400 Subject: [PATCH 12/21] Listen for display gamut changes. --- examples/webgl_test_wide_gamut.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index dde137750dd2df..e480c840c71574 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -88,10 +88,9 @@ }; - const isP3Display = window.matchMedia( '( color-gamut: p3 )' ).matches; const isP3Context = THREE.ColorManagement.isDrawingBufferColorSpaceSupported( THREE.DisplayP3ColorSpace ); - if ( isP3Display && isP3Context ) { + if ( isP3Context ) { THREE.ColorManagement.workingColorSpace = THREE.LinearDisplayP3ColorSpace; @@ -121,7 +120,7 @@ renderer.setAnimationLoop( render ); container.appendChild( renderer.domElement ); - if ( isP3Display && isP3Context ) { + if ( isP3Context && window.matchMedia( '( color-gamut: p3 )' ).matches ) { renderer.outputColorSpace = THREE.DisplayP3ColorSpace; @@ -132,6 +131,7 @@ gui.add( params, 'image', IMAGE_OPTIONS ).onChange( initTextures ); window.addEventListener( 'resize', onWindowResize ); + window.matchMedia( '( color-gamut: p3 )' ).addEventListener( 'change', onGamutChange ); } @@ -195,6 +195,15 @@ } + function onGamutChange( { matches } ) { + + renderer.outputColorSpace = isP3Context && matches ? THREE.DisplayP3ColorSpace : THREE.SRGBColorSpace; + + textureL.needsUpdate = true; + textureR.needsUpdate = true; + + } + function containTexture ( aspect, target ) { // Sets the matrix uv transform so the texture image is contained in a region having the specified aspect ratio, From c9c7a9e3c290595466fc74738867f624bd148a17 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 21:56:36 -0400 Subject: [PATCH 13/21] Clean up --- src/renderers/webgl/WebGLTextures.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 6cfb8809cb8c6d..61bb37effa4ef6 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -1,4 +1,4 @@ -import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, SRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransfer, LinearTransfer } from '../../constants.js'; +import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedShortType, UnsignedIntType, UnsignedInt248Type, FloatType, HalfFloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, _SRGBAFormat, NoColorSpace, LinearSRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransfer, LinearTransfer } from '../../constants.js'; import * as MathUtils from '../../math/MathUtils.js'; import { ImageUtils } from '../../extras/ImageUtils.js'; import { createElementNS } from '../../utils.js'; From 6aaa7788835188da03b468f256e0b0bebcee1dca Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 22:57:07 -0400 Subject: [PATCH 14/21] Fix regression in OutputPass. --- examples/jsm/postprocessing/OutputPass.js | 5 +++-- examples/jsm/shaders/OutputShader.js | 4 ++-- examples/webgl_test_wide_gamut.html | 1 - .../colorspace_pars_fragment.glsl.js | 20 +++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/examples/jsm/postprocessing/OutputPass.js b/examples/jsm/postprocessing/OutputPass.js index d2207624d9ed95..09e36614b25325 100644 --- a/examples/jsm/postprocessing/OutputPass.js +++ b/examples/jsm/postprocessing/OutputPass.js @@ -1,11 +1,12 @@ import { + ColorManagement, RawShaderMaterial, UniformsUtils, LinearToneMapping, ReinhardToneMapping, CineonToneMapping, ACESFilmicToneMapping, - SRGBColorSpace + SRGBTransfer } from 'three'; import { Pass, FullScreenQuad } from './Pass.js'; import { OutputShader } from '../shaders/OutputShader.js'; @@ -51,7 +52,7 @@ class OutputPass extends Pass { this.material.defines = {}; - if ( this._outputColorSpace == SRGBColorSpace ) this.material.defines.SRGB_COLOR_SPACE = ''; + if ( ColorManagement.getTransfer( this._outputColorSpace ) === SRGBTransfer ) this.material.defines.SRGB_TRANSFER = ''; if ( this._toneMapping === LinearToneMapping ) this.material.defines.LINEAR_TONE_MAPPING = ''; else if ( this._toneMapping === ReinhardToneMapping ) this.material.defines.REINHARD_TONE_MAPPING = ''; diff --git a/examples/jsm/shaders/OutputShader.js b/examples/jsm/shaders/OutputShader.js index d15c4dd143aef8..cf7a18ae7f9de8 100644 --- a/examples/jsm/shaders/OutputShader.js +++ b/examples/jsm/shaders/OutputShader.js @@ -65,9 +65,9 @@ const OutputShader = { // color space - #ifdef SRGB_COLOR_SPACE + #ifdef SRGB_TRANSFER - gl_FragColor = LinearTosRGB( gl_FragColor ); + gl_FragColor = sRGBTransferOETF( gl_FragColor ); #endif diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index e480c840c71574..1959f45690b336 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -69,7 +69,6 @@ import * as THREE from 'three'; - import WebGL from 'three/addons/capabilities/WebGL.js'; import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; let container, camera, renderer, loader; diff --git a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js index 357750b76016fc..fa35caeab28dc2 100644 --- a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js @@ -2,17 +2,17 @@ export default /* glsl */` // http://www.russellcottrell.com/photo/matrixCalculator.htm -mat3 REC709_TO_P3 = transpose( mat3( - 0.8224621, 0.0331941, 0.0170827, - 0.1775380, 0.9668058, 0.0723974, - -0.0000001, 0.0000001, 0.9105199 -) ); +const mat3 REC709_TO_P3 = mat3( + 0.8224621, 0.177538, - 0.0000001, + 0.0331941, 0.9668058, 0.0000001, + 0.0170827, 0.0723974, 0.9105199 +); -mat3 P3_TO_REC709 = transpose( mat3( - 1.2249401, - 0.0420569, - 0.0196376, - - 0.2249404, 1.0420571, - 0.0786361, - 0.0000001, 0.0000000, 1.0982735 -) ); +const mat3 P3_TO_REC709 = mat3( + 1.2249401, - 0.2249404, 0.0000001, + - 0.0420569, 1.0420571, 0.0000000, + - 0.0196376, - 0.0786361, 1.0982735 +); vec4 Rec709ToP3( in vec4 value ) { return vec4( value.rgb * REC709_TO_P3, value.a ); From 499149dfb5257f7cbc6d8d0e8efb73161a244069 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 23:05:41 -0400 Subject: [PATCH 15/21] Add 'LinearTosRGB' for backward-compatibility. --- examples/jsm/shaders/GammaCorrectionShader.js | 2 +- .../shaders/ShaderChunk/colorspace_pars_fragment.glsl.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/jsm/shaders/GammaCorrectionShader.js b/examples/jsm/shaders/GammaCorrectionShader.js index ca0732605d92f8..719960497b6008 100644 --- a/examples/jsm/shaders/GammaCorrectionShader.js +++ b/examples/jsm/shaders/GammaCorrectionShader.js @@ -34,7 +34,7 @@ const GammaCorrectionShader = { vec4 tex = texture2D( tDiffuse, vUv ); - gl_FragColor = LinearTosRGB( tex ); + gl_FragColor = sRGBTransferOETF( tex ); }` diff --git a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js index fa35caeab28dc2..53c28873685215 100644 --- a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js @@ -29,4 +29,9 @@ vec4 LinearTransferOETF( in vec4 value ) { vec4 sRGBTransferOETF( in vec4 value ) { return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); } + +// @deprecated, r156 +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +} `; From 1fcc38baed30e9d15f844a1a8ef72b6fe2cc7567 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 24 Aug 2023 23:07:04 -0400 Subject: [PATCH 16/21] Add 'LinearToLinear' for backward-compatibility. --- .../shaders/ShaderChunk/colorspace_pars_fragment.glsl.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js index 53c28873685215..0eabd05a8c6d26 100644 --- a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js @@ -30,6 +30,11 @@ vec4 sRGBTransferOETF( in vec4 value ) { return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); } +// @deprecated, r156 +vec4 LinearToLinear( in vec4 value ) { + return value; +} + // @deprecated, r156 vec4 LinearTosRGB( in vec4 value ) { return sRGBTransferOETF( value ); From 8b2fb849cc6f83baf125561468e299d544a10204 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 31 Aug 2023 15:07:45 -0400 Subject: [PATCH 17/21] Clean up --- .../screenshots/webgl_test_wide_gamut.jpg | Bin 44434 -> 6091 bytes examples/textures/wide_gamut/logo_p3.png | Bin 0 -> 14424 bytes examples/textures/wide_gamut/logo_srgb.png | Bin 0 -> 2297 bytes .../textures/wide_gamut/webkit_logo_p3.png | Bin 78074 -> 0 bytes .../textures/wide_gamut/webkit_logo_srgb.png | Bin 6210 -> 0 bytes .../textures/wide_gamut/yellow_flower_p3.jpg | Bin 89773 -> 0 bytes .../wide_gamut/yellow_flower_srgb.jpg | Bin 89221 -> 0 bytes examples/webgl_test_wide_gamut.html | 25 ++++------------- src/math/ColorManagement.js | 22 +++++++-------- .../colorspace_pars_fragment.glsl.js | 26 ++++++++++-------- src/renderers/webgl/WebGLProgram.js | 4 +-- 11 files changed, 32 insertions(+), 45 deletions(-) create mode 100644 examples/textures/wide_gamut/logo_p3.png create mode 100644 examples/textures/wide_gamut/logo_srgb.png delete mode 100644 examples/textures/wide_gamut/webkit_logo_p3.png delete mode 100644 examples/textures/wide_gamut/webkit_logo_srgb.png delete mode 100644 examples/textures/wide_gamut/yellow_flower_p3.jpg delete mode 100644 examples/textures/wide_gamut/yellow_flower_srgb.jpg diff --git a/examples/screenshots/webgl_test_wide_gamut.jpg b/examples/screenshots/webgl_test_wide_gamut.jpg index c9bf665a845a7637462b6af1012fa9515d9a8bf1..24a491060ec9a8a3a427f4c30d9994522cac5313 100644 GIT binary patch literal 6091 zcmeHLcT`i!zrUe{x`;F(3Q8yfA_$>LlXa<)D#ZmUF1WNMbY!Kes0boxC_)edQUocH zUL{LtfyAP08fSq_Yi^}w^Uv9Ypouyb&HO;9dQ4k#CtgM*WY zlZ*Snn0LH9+`I=5e|^Tn&dSQp4dsA-E&d-l@DD(M6WE13WQ7O-ECLW#0SMR$dCJ7d z{uLS%=wAk5VP#|IfHEQQ9Ad&|Wo3e8XCh_38Oe(8Lp`AM zmC?UP=+^&=(KkZh_<-X8FDryOV5|aw0YGcRrxCX)CxJYc8{EM6?0Xk{SHbs*@GTYy zWZ58F0H9Zz!p^1f`HsA?KyYfcu@CiGTs*W3p~5O@Owq$#`bY4M z&PYjt_ZEszq-|W`YSDnUx>`GVxd#(E_c%PO4R((fDfY8X$E>_%fOmHxEG9vxdOt+s zl{MrXJ0Jx7gG}r#t%G1~`euNfqkYU$Ong_xa1*XR@Gh6~JkXduv?QsRMM9KlmW8HSAdK-@lb2n5<+ zfWX|1h~f60o8*E2ta%plph)b-x8@P)=_6-VjwjvXXLE#G=%`I46=;x{#G5vW56>W zQAs>M8h}K+6G;gQ^YC9hawzcT7EhF@H=Q`icFH3fUuHuXsrVtRZk1NFi~Zy0jM&?+ zgA5$dsDk@wXF2aa2YjUA=bYM?mAGZBfWh=*@gBlX<-5))(cF29m;Jj=-mU^oBUjIi zFJoeg!ng0EKG%Cc^v&=@Hk(fLzt;6F@3@``wfa4}Z%_K;9x6qSr;E}p^Lg3X4vQFZ ze5p;)Z9rx0LpdwNzEtPho6PajCS z7v54lqyFTBVm$;>-xx7GFc?VWyIm&o=NfX$Eq_~Ie9>lbgD&jd-rgf%hM<4cKAo^q z*nsR?8Q4_o~b12W=*_b}7z4J6!XN-IeEyb_UZCSi7_i@p3111!Gy6E>X zkJ3pav2^}5h=oGvWS<@4(cJTltNVBFN=_KouKFoE7c(VBpBo6leeSo=GS5b%)3Plh zpR3+>u9#dwSre2tIxk-K!b#m-*akd=k&Y4z}6mlIvv}m3W`pt{PZL*-7 zZGTks>N$;Ld#X(((<>I^dZ{X9ote4_p|WSNk#zNyoXS5vam9&y%h5}SX%TkRA9qE{N~!fId4F-J z&Oh9-W;Op1`LbTb!+(nA;2{E|!c$KFEK4j7o2 z=^tMj_SF}uZp3>wHJjc^LK~l0-`=^!XFRqD2&<@>mj9^1Ieq4^O~d#E1q2ZL?9TU9 z6AzacPOV{*a%vqH%qG9o&71^*#NG;2T1hyQh{uv~K|hogld_jk zu{Eo5EvbEw*$+73+HBbI!xy!na0P^3U4T~%BT|tOALD}ofnVp##CpRb6gB(a>89Cl zMrteKm=U0xpA_;F?JA|ik;=G94e#l!jtC*UOvQy&6&do7bgTCBr(5fCPD_~iKTG_W zBjN4NzrmR_Y1e(WG~RBxN#1pkNFQr4K(yjYGoV_f_qzy5%UU7B_VCEb!FNfiiRLz_ z0eSQBkl;zp(P|RtQ7uW+t0)WTULAY$WB~#H zbGGvmr%8r7#(7nFecdgHp5oTtrqDU|rLKC((qXnv@Ui#7$tv zy8Sh#W*w6=CTBFPIH{czF4s(Ha3W)KSaQ!#ZhJzVQSDw4fC7Q_fOXXv?jSfiwQnYD z@%-z(N#vT#BNJy3xSLEXqY5Ia4c$aBze(xV>WGKFZ8B8BDdJHsMdW@Hf3}uZ)JY;C}vN!ZmPh+aox{#CXTGGT|$;h-^Go_wri_$qsuvuuk*#&4&Sf& zu$wmQXlVLv;r| zeO6Rc(FHAoQVOZUdKv^4 z_g25)U(LF5QN?}AD|3_g-b~@U@L6x@KkXNRKmhSx%;_p>c9acOKOv}SNwL5ugK?A^ z-Bl{*5I{kpdA#4kuU4 zs~35>*aR+h7`!fR>8`+{AMZ#c!wLGTUBh#@8y6o8*FG~UtH^n>?IQW3ziY>rR4V^1 z1pclQ2;2*6nfk#S-HOqOyGG_$?Q8!~qjR3e+*TFYq;sw}TyM~s%-hs%G#c)rq`WR{ zz!^cvm9n3?k@%zmodd%=62q?>#GjITOV_(ne0jFNzB*A}`*8%JZL+MvR=>Q!o` z$Fc+d^xDcbiYt5UnR!{pEip&SXu_{sUMFfO{Dq$NzqjE;&|$n6X_z5dR`1{syLY5x z@*IaL{^ItuY(DX97d+;^AJudtBwAZbAac}>o`+v4EMvpD{ zDQ2#%GI`HD+)G>{kp0}NRB&eF);>5pBd5R$3qqv22Y#qE=&7%@d{Z;hr)r}|(cSBP z?ishXxer0;U+n}dY-~$M%}8#2R>p1D*7fn%qQICRCjPdr3e)?KNi1$Y(Tx9y+ z@4yqP)z(ao6ll*Tr7Gop6i=+MOgz292zHX$z&~_fzkrhU%RPN&WooHGi>E9Lhw^M` z^e4hILe~5!ryOMKH3iRZxy)-!Yv;s;6p0*QHU$N&HU delta 44181 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%0Ar_I1ub#;R5Lf$8jF_p>J|U(9Z3vHs8Ypy%Qj zh~j*3Rs>(vSD%P{Nk92Fu!cuV$(_^;vX^0r?e(5kLOTnQaqdSH&V!Hs|6oSPF*-@yIW zU#Tuosie|>BXjn*{jTmVe_?MKTX>_y%Py^|+NPCbD%yy?($czzR0josk8vap0L^o7 zCj`ZKk%E;9U%IC+X(fB|sH>~)mbOUnxRv3sc`ZrC(QP!BcJ$c%o4UOy=Wws?NLNSU ztt5)=s7B44jyl%vq$ht86SKK)&rnUn4cFSfYZprO8$l+SwWnUHux!_tR-M(3N$Sq8 zLe?@>cUO;ypmWWwj+QIn(Sy6Sc}|;5n+x{A>OVSMj5%53pEvi1BWDVTt|+?W*MDaO=(_I zZMOTiez}W+qZq+#mWQArSYil+oL9=bw|01KIZEtwN&H5WdJ0dV{2xk0=oA4R8RILimZHM}4GUq?^z(GPhdze121i%P|fW zBV*^KhW2vij;WJec#=&r?mLNF1xO9rtI7r@B4!QLe=j?ecG{-7rR$_lVBlfHDuD9^xP_)*xX-E?>SyMb7 zGhd?cb^{NZQk5#JWA6BN6szD|X0K*>&xSv2T>|BXo8w59ES!0yaroEM;`kpC1!D*T!qx~5hTbp^A)fdiZk|Dm^Jbt(dS&XRo8Q<@ZZF% z9Z7%2o2(xuZi-39ex9}DVzR1~mpwgE<6`o+O}SCkb~_C}UKaaex?u4?-EeEftB2;+ zJDweEFFvu+qSn2jX?`crt~6`gc;>dciILIQD!`0m6^~K_q2;7a4^u>RFcx9I1 zxc>l!Y2)bPTx!SNsTPy8mtLARsjhd#^>U0%RH-RKYVm2c>Yt(Iz8?L%z7p!rk!v0l z*DP{Ie3>JZ52qr&yA$E&bwxKytR?Gp{$~X)Jj05YOPvg`{MC(omMez%zX>Lm9ui(t{{S?1)8if;sJ-fvUa@CUr}($_Y19gszA@fo zxqTVNE6J&X;<|b~BL4uu(YoSp9hdyS`_umbBGkH{z!;l+9~hcN&qdNC-B_wTNoz|9 zXZ|z~i1>Yf%k}p%wbzQi3|X(8Z{vTP>#n3MT1zf{KJgXRM=jzS`g;hkS)-b-7Vz~Y zrB^RVzxW3;s{YbCSA)>Mg?uz-xl&5p-phbL;3GBd(BRtG$y*m$MRty_?>u}*9$~4) ztTiUzd1#Lh_{;H!$A1=e!K?VdT?muv!u)Ys^_CP$RyI9Gp51y0HC z-^Bf2Z@~D>%Q(j7_0;hay|znb=#B>K69cxrh}4oi=c?4m)FYY|E{(`F)k=3}T)Gvs z{bpZ0BODsiwG}Ab!cypT+I9TKFx!p@>t01#YW6aor$eCXO}G;M`sTdcO(kQVOG}-F zrmG*2GUwjBNzr`4%uD^NANPOFN3mhdc`x?le&3ycK>KCf?dBhEt;S^okItH^ueftu z*0sM$7v(jlIccO^hWl#_^z{{Ss*6n0f>rW&9(b*zSkXHWPpC2}23KD8>$(k|@v{{V&lA_n0Q&(|GIOxAye$!L8g;Js!W zoh~pKWDa?$Qo1p+vC-Q8^*&QgE0Ra3>E)A=Lsm05KZqU_k5jUeFDw$uM@l0RE{DsX z7rqj{pQ($qw>T%BJJBebwHq9iJ`i|D<%r~aR}DvTUqesBu*q*RR$>V0UJfcZB|9GL z`!)Es9}oEM%IfvNUBG{3k4pS=#X41M@a(BWtNfEbpM>QVnkO#D>Sw`U6I$zD9JaoW zP(wry2ETwa{3PgNr4KXo{K}h@Q%9iN%qMNzyVuOlE;=3r znNdqK00&ZNvwI09-I3*g9{x31czaBL4rsS3_je1ll|OKIHTHiTJCRhx)m7@Rbst%g zWU`diddo$z@E`mXAI3VCoA5T{LeXvJn)_P1js!?lme>epJbgb}{*Um}1xl|FMzvOy zDW>)BvO9RsFjy>-X+L^)iv3S9{gM9wZM}ElMa`FjJau(7rNRIf-tQrqeMW2RIMaY| z`NSuS!X+g7uIGQte&wBUaOO1T7?6m4kF_SM!vzJXTwe z_H&NR`_!Wacqd z>7(j!+@=G9am9XnT9bo5M-f6$W{H$4ZrlJJO>$Y@#~pv2?0#;4!DN5np*|b^o4j@5 zj|9tNFHQSPE#k&OXk$%m&Qi?%r&j2ijeeFXJHxN3TLhjn)fpTt?NQq7?$LE*G&pCQ@KiL z;WfQscQFs1Yv^cEm9;dBO_i+fUg&3__N{6~K)beBmefdvam{BLJLp=8n7R@BSSp=s zvQ?U=sg$X9H?-|OSmObd`-<}_)J>etSi64{J+p6KE1p)ChAn7m+v}i20dfz1Ym!)f zO!-Iu0B;ZZ=zlt&tA{D&e`>q+Kb?M`^@*KCwwE`4dh`0zSczXyI;|z!%K@`n`+qXi zW~^j^l0LMaAa`ZhZ&|Ij2Ix4gY2q!rHH^EN_g7LzaQzQYYUx;nQq)^lf>W{EpJRVj z?NjP&8ydPq^4UxZbfccz8>=Ou>R${s$)vlEPcwx)(v?nSVc$dPe};PNPiYz%bBqdv z*_5|EXT$I3M5ekTN>?>*ZHbSiQ4S|LtJ$N;u#N{&O7A3*F@Kxp+yQy8vZ-t&KUaECRJ$l zKW>c|I!R3*RCp)iZkyr@IOnvvR@^%^em|IHHL%qhl03{-Uu{v>T53Y&bGm=LS<>Y^ zij+AR>+ccinp6f`n}rx3-V~`}Ygd(`iKm0DURH`cqvFr)4F#2y)|w>4fI*WyfA#C^ zvThlbN{Urc^;vF3PL--w*U0b(*6#J&`E}h&;hS+MbDo3NzerekVd<(+N7N@}q4KBg zC-DhBAbdtk8!7i#>Axg+JQjcMYxW)$%U)ZR^T~Vj-27{e^G~kk3WOiKO@1f9AGMdn zU0UDcTIzZw^CQ`=6shaaPtw1ncrz=bJcZM$uB3be#MQ&%RN(eK=k`ed0D^+*HhN$D zBD&_NP%?#Rhex;CcTro7&I_1wGIN;Z^sKGO|}g-3MmnfC|5@7m+Rz9x9BjKgX zSYfGCZMK%jjSR9FR_lLPc8qmDo8Q}8_NDP3?O*#r>wgus+t+9(oW-TW%yA96pOgXb z*YU6QL&MGz!thrOQOoG7Nh`_slid7!h_iWT8I7-M)8ZVqYW(BAB>w=xTs3cn zz7je=!>ae#`{cVJ4dPJ=A2`L!BTFE=8^H&?Fai}{C54T z^$Tmyi@qppxa}CVwXzH%6UK3#PAm8R74Z9qcru)$ms7Kr@5ubOIpRFSJLOf~lIV^e z%E^WbC)8Kd*P|Ah;l(?h2Z!zFj&X?3*A?@4>U@Z)TU&n~li`JBh%}9iEqs10tLSAb z*wDPx+Be#!xvA1kT*Z(bVB_X**0lBnJDJ+9uI4f~_3d3WXseFrGj%YMX5Q87LN;0& z!$w)s?-DWPxyPZbs?%>&bt|(@8N+?k`ckJ&Lsn@U6U75c;egFmXBST3)48>#TJBA+ z+Pn(0vpIif3$ZV3fKmYM+MFtCa!wZ5$B;C7c7o{ z%RlqYe=7REc$<=2#hE~51KbKuYoHt2QUQ#bwL2g+T%tvS!=*21i(3_Ay(+~U1D-QU z*HAQCi!7@;?LF$Di?M3u87J~2>PI{gTYYUUTQz@M9S4Q)Mf~dnkaN`Lx+!9#Ct~i; zQSg48)&XRPzB*TGl4Ty-@Sk0HW{w%MI(4UXDQb_Qd>?cswnLuPy*X${HIdZBVwydt z8Lh8!T(vQ^jWE5=V-=j66L%>80A~4Y7DWd&o$Mou_?h85d)s3=MluF-S=6Y7bz{f1 zT`_+xE*U3Ksxy{u-u2;Qs#B#-Rc7rJn|~q3GOHyBE4FWZFVUgYuhQis{o4J)M{n;} z^G_OQ)pHy}meE=z<^FG}`$r4pl(PB?a#x$&^>>28@Fta|#sjb3abKCKRfBaZA8BZ{ z%8ya_N8+t}!DS(u>7F6nwrk|GtR5d6n@fLET??buB>kf0g4jc66EuWkzBO>dl&>eD zhxT!Qs6o;eWLCG3CUHeq=+`*V%t? zhCw{nAMNTd-NRSvcw9xC!zsW@SNEQa`tm+#)USr0qugq9xh^3;G3rh$^-5IzrXn=s zwa>#UPE(Vdo!iy=p9Xwo)lRkX0{-~E?8$(CI{u5uX{T)(Qt}31%05o@-QHC-#zNplCl$bI$a-2I0TIISXF8zB#yI2(m_z}y(`PaRgH`1cQvZSAC*69E=GCZnmxZd`rEPzE#}0a zkLOJ=H+0+9KoyT#+TdzMbLKB6w|c@=EX@%e#lA*IUfkCvBCV0Mb|dplcnsX1TH%Fi zidQsRqNUWp=QX>nIjw)kdloz~sL5-nf~57uX->T8$u!2D(e3{L4s~;Ki5%E9^b|3C z$kH!E*!(eQR7Y_OV2lt&cSfbbv)cX~_>0c9SS27xqX*u)Ay(U%Nu#{e^&gl9ehq4> zrUk-@Gww9p(+!xHw(tmvBehJVh?6*P7*852K<9!FHN{$XGID=B6XNEj0&3R&9kyZS zT(OdJzrz^q_?rCRjWbD8q4j7z^?#!MPp;ui2e-ugd2F`-05f;PTI5`r>4H?D|Ngj>hOMwhR=61_BIW_XxjCr3bJql8`tnW0t8)q zf=2$(^pAu;4Yhxd9_nf3Ld$Fzd9xA6&{xanS*0Adle_o2BO3UsczS&DJddj`UxKz8SmmR=;+t zQCdbU+_QDB-Lm|?zH5ty9*XilhQ21A7K^DjWRHclFN%K}zsEm`*IqW%rDnGCyt^35 z;ZPpGjekN?$|!LDQye50y}N#A;rZ5cQ#i~V@9r%TW8*Hqx<`X$iC+byB;fm2IUXO| z$HU*l_e{R?B{hWQwb}#6qD*bOgZ3TAsFK| z(;2G@=s|AaXCJLTbP3#*A;`vPQnMLq&dKFqfkEcFAv^2`L8fR$W8BOC0N1VCRt;IV zq**j%F<$*Ej=f8*0qArIGe;OyTw=URw{F5t7|EPBYjel_LeC`*@ZPMFn4qIiE8lQ&~=Bm*_)wP_k!-q0JvxsDnb)zM!K38cJGNX&UxdfxrxZ z8p5W9*wcZ0z%p}@)K`&-HjU8B%RVxqxuJhD?#$_JiO6C28t9C{vHC@c6iLL8N_M8n=3$q2cXLNep)If_q^_e3mAPSCc(RR?zw< z;1BHo0OF4x%MPKc+R1HV2qdt>IQD<9%(#z=>+c45Gf41e zmlm0&TB-z4K2cwaWAXK|)tyR=`AlXqrY=prj|~01Jab{;Z3f+ME<&Jk@3{I3{RhLW z1x#ilT&u|Ta+#_)M>!vmKem_cJE{Cp*3W|cJ#@=tlI)wyZVx>x`(uGPPL_XBhx*lJ z?{vBO_ZD#+v6K3>7w)auo$z~17B(?1-ov$Y=XG65jQK1&vN8VvX$^dTX3GM&7>w~< z+%1Lu>Sb1TK2*H5Yl*Xuyxx`i{WFyJf)!sY%#}p@FViEQ(!M^{H*5Zp;~Mer`P~)btSy zu=#iZb5^BrB(Sqr$?V z!=(8*Bv&<5t)VUINhE0+;MWaQt#D4vp>ZrhiN{`*&{(Rs3{uTPq zv0aZhk@g_ez8_vgX3{mQ40rzkB8N)LVC8F}!Rwke-kow?V_-ALuQt9K&ggM^Sd&Y* zY>%3`9Vcc{(CL>fKvT{u$i!jaV?`rXP|BR3HRIKcp(~c1%GZDP3L^6ra78M0HLyFG z>y&XS4s%^PHD)X5cRm5}8G(^qutD{$uvHXi$i&+{zrfxiisIc=NHdRG`dT-!JjZ#Y z>v6=OJN4=btsAoiBVyadzuBNk6x<&}SyZ*OExVeQzYzndaX&xrSD#X>qq8Dgk=}et zS0*thw_4{|xhH?CA-f#Ei#$}*K;>lMgWkI1h*c@HIJL}=3%9&$Eq?kpCnoWmpMGod z+hZSLJ%8Yzg>~PEI=mVehi%KrBLH8rk5gX(pJMR&Z3kAfvPaNh z`Kmn+zW)Gb{{YyVMeyWMYkn*u?&|@t==O@m_u| zDoCX(T^-(&tptpG-K*!TP`eyzKBj|sfp&iYTyQIyVYM{&k!F1UC5a>>IrZkcV}*7f zJVt-QPapX-{;I>CC)8i?i^Kl_JXi9s()moT$nQKS1h(xPK%^1rLym&Ey`({r>Dv2P%m{9VwRB{f zk|n(lLhx6_*S6X`%zD?igRJDWGm+?eU&ScrRR&@82D@h1lewgRA^e+s{DbdYvzzK^ zeFe1f>&D+K`5#*IaTBt-8?!{Qc+!7KWzU*~T zvoITi2+Po;J2|J_%73b5+F<6?O&YWM|b5z1E_D97Zw@3UHX46Bm zyYL6WTcxK2td2JSJHOM+@&%@6jKa z9yizZj}z-RULe=C8E)?`a7&jW{}grgcXVxt(VB(_NW%C&m9ims(c zc|F-n!d77~gseKBO5Yh$^z2;~c6ayMxUt8ochqSG8(N4(m--vfVZMi=- zNj3KwWPO}YYL8Qu)9n`DQCS!czP0T-x*4N+ufR}2?b^7NNuf5nm1lp|IVu{u=}Jz< zGikD&#qQuqZq?TchDHXrbc{C>(z;_eAvR>(YEg)=hn#mcv}w03NoHNu+;~4XKGoF- zF%%5Jr2}^)*8H}Ju94gLYsrQf%MeZn6zHo1-0ZZw?Vw|d+1}&5jc6|c9eMVxAkq-> z44js!n^(A{qA|Q#1Y&>8vFltoiM1AGeRVh~)kBs;j%&+Tv3rbVl3p-sz0?Ud$s*GO zsmkL%wJxoS~EWO@A=cTMeiS?-|(&VANl5g?~416k=e?~ z?*1L>F~DESCm-z5Ym1efkBIySETNL()Z~xu(v%BHSn{tN{3$OSl0k2bWRL}N)P<3p z;*T~ub;gx=Z6|+^8&6YSb!1~}GoaDoR>2~?y43U)&G_w*#t0p2f~_RbT;sfdrTKZe zjZQJmd9H(_K4r5lJDz!{>I-is3mWt((sEZ5b{k>h$!#SYBqRgtTgHr_`H?rd(`f!b zb-*_ry=&2@7gi+fbvjRvJoFJX#~!<@&%{B+yO$Spe@TDw2bg|ocs)Qh%f)ob|M*V1h{+W__3jL@)BX~*y9j2o!gbp`1O8Gp0 z31xWMd(nTf?LIS=HSVJq;)m@q@ps3ztzoM8qIj*CV8siOxOxJuB0vCV_5P(#$r}hv|yS zwdSmLQdT6_wUBL?md1Kg!%(!&rq46+2BNaxZ6|-6`q$NAskqZQDmQaJS5YSM{58^( zXv>+R8FfJ(Rh;u$DmNxgBvz8|dCD5qLzKn45z8^#%N+aFB5q@AS23a-Fy_0k@NJ6c zH9YM!g@bWkq+?_SOQ~BsbH#56qGZTzH@(vGe)VZRAjvyl4_;)1&ozx1B#M0wzfEZh zf(3tRbUUMJ(aNafoKehz=(8NG-A!dWmO^UlQwzpgh%k9!xyNeq@ikPv(#YqPp2Q|++gL-OQTP(JA{ zx+}|LiFabPRXy7cZd;1MHVFv*YZp^n8>D}l9W+^wXz7X*vna*Cux~eV1J=8#)Y8m} zLs4yPW^4ebp7f_uD94qWmRc;W)jvw(sa+s14-UviLJ!8U`pPL-Kj9pg`-@BKQ461~ zU+|1u{{YVc`B&-3Um+dGh2Ut2@(1Nc<5AS+d_~}!X+a)9C)`tTlQmIRJnzKc4WfT( z7!RO`b2}trq6q=0qxR4+g4@K3Q04+{m}E zW*IrIGNvNsF=PX)!iT?cW+wsFw}1=l_?w+p?NH~hC$lCij_F3b~zin z9p|$q<5SD2E!fGvoQZn(&303chBqH=cD`NEh;OOb_-@(=m`NiH*Pj}; zleu;~O)60PKwJ#gimFituI_C@(U1cQJ+_1S5bBr9YYEzMfm{`S*0 zJuDV%)V8-_2#;0(#g6+sg@-rpxg~xFA1Sgao4shj;1l(iBo3HmxOSDh5ajrrZ-Y$30StC z8Ew5W^%aZ7>NKQ~zwm#IpKr>S*2iggKT&J<6Q~$|?Z4fow;J5Y)s=ESQPa}3e+g$N z;w4<;X#3uk4`Si5&Uk_-n&0M)PaVa1mG(2MvF83Vv$Qe3ZDZ;E!CqZW&N+NXllYnl zBe_0YD8KHg70n|Vd`CBXS-pgL?~c(o6SRI`TIiwi0m#4x=Hq|8dQk%WAZ^YCO#UDu z)BqPz;C83>MJ7^P0bChIB{Gx zL7FlEA#4uS%haguV%?Hl=DnH;XRJNwtKLvj}8E#L8fp4Hz> z=#J+-sgt?6?_PhUEsHtd5fkMeYtq8*Otv{*vmE-@uC_2+fhTF_y)U#6V=C~UJo8<& z%mjnI69Kn>ckriAa4~Lqervuv6C$L*Z0TFaa!L}9n!01L6ZlOHJOG0NxoYlIHb&lv ze}1FsT(bC)soUuP0P3p=Y{1c0ZNrn+v%3Pezy6>K>fx};s&d&iv)B!d zJPn;aD~7J-hLyM;XHM12KZMZPu>;KK7R*Jh1aon@eA!If<-V7@Ly)l9IS7(W_DgCsYBM|DZdzi|uM%}kfL}iP^0&dG z{@(YbkL$=?qbs?(wai4j*wOBO|SB(YhK=7Y}yR$q~|J9wfBN1Gp~)I zCOhXS%FplD-D=^Jl>f3wm%l)GcI8uH^|$)jkcW}ES5H^Q6~B}@N~JXX-5mHgX&QAi z{?0$)ioDwIU(aOv=fbbzC^o}+pRMDlo{PfguJEmOed;D)k4%aQo^_G>6*Eoj>5LdU zlc$=S?(}>o!|FDj!sQ9!j3I&GriazHqpSVd#`i1t7Au}!R*$*h{xKpPbuI1G#fv*a zw5pjz$Jhzyr)fO}P`13e#ivIy>uSDoS1ySkJEbqc5#T{uec`8BSGwE?uk`!6tAoK5 zBZ|)XR#;>B5~0h87UM5w#>2_M#f^3RYhiHa*Z7~R-R@R(UR|U~A;g}oGK~lEAX2OH zQuQdH3NEkBEzIZM0`7&uV zcvj_oF-G!az|Frz+WnQrA)E6m+^1cn1h|j}qI4;=oyFI`dl#zO*deJTt)Zh(zHVe= zGYo3c(1##1DGms_7K4PKbQBEIdiDRw&|=lLlH82A&j}aplgX+2mD}40sC_LPvQB1A z9&e_tN%|bW5Y4~6`x?sUH*VMtkej2N+DlXjJ!y}Dpuft-kWzBMc%HkCNvQnch`)&t z%;pQOg1s(&>*ya1-f}bq z0DTS&#QdqE7k(nI#iw#*N@pdsdU`?v0fr6d0vLo*G*hR=an)G0?VJb?)b_opHV5B1 z9?0;Q3QUqDd@`99M_sj<9izz(4rTlMK2O8K@bFp_XsV#{Adz~&6@^L8?h^BX)$xiU zpsuvPNH6YPRf?yb_SgHg-RrX`pI8F=p01xG*lq(X*>#I|x_wJ$tjXGoaVwM(0ahah znnK-J{KKxiIlHy*5)T81BXno`B@hXzaIc;axRp7*oa;WPws{R*` z&SZJT~zWNFVhODeTHSExM6K4%sau zG+TKk)}ieqSnz=x`cOzZEba;Bj=9|x@JJuKMPN%{gZf0nPM|pDOg(si4^(z0M1hr? z>DP6p!yRMQIPisyENtIHedm;IOI+zOaI4eV$ow=|STDU-iGUv}rXJ0fT-o)^3DQb8 zhIhSUwokLi2p9b3bb>>P6$a3S448~H_}YkpBBPczwU2yzG>Eq)3LM^|TM9O!hy0TO zUUPIw!H(acmoq#!lESE{_1MP{dX)i-OJO0XML!?qf=+u#h%E9(W#aas0E57FV5oC$~>j@{fH%hE2|welN{u?M78&$}2X zO|%ke7Q|~mHBUo;c@xfDa;&Ij^4Mkusju>r@vP%AZd^Oi>05R6&Yg0xq|#o02(=MV z&php*s3mGcwxjg8YE$J#I9i%FFlX~#_drU1xTLc90Xyw6>an#tTEtoLk@FNnejAdn zrS8BVvixVDALNWL>1sIjL=h#sD7`7OL0)6!b!Yr0(|j-J-5X~6I4WvG+{Y~MpB>H! zGETv^+RT*B26@ym&>1yK#?F~Pm>S{&H&IWzRm?Q*g5yjz?t zX|JP-w78S|<_7G3f1RAjkgaLxKj6O~VJz*lAf)~Q4YVVFEyISsKRfr>$>f?y?u&`p zKf-L9KfaJXMbyr=KR3z6uUpeQ!UZKe@t$TngBSsai|z`{%0;m`)wisD(!Fg`UKcyD zk8Q0prFUn-msebYEbj4YE%=`IKOU4rg{32ff6L>|YtVr)7e*=;ID5H)Li&9ulIfQ8 zM>r^Amv~!HqlEmBXkdrPWSi#)WgoktJi=MoN^oTOFYIOBmibPCaEE=514fvcfK=>S z6<^chWq)pYRoIcN8BHAd{!PfWmm>6c`veE@r^pR!N!n#8gwwa3ov=i5tdB!K-R~DR-rU! z>ToE0r(B0t+12y0?41&wp&7m0VwS1eKlKF<@_*%w`>M{GB2~?Dih39d-df=CiC5zMQ3x%=*&F4lquAf$fMKvSs?e=LZ zMCasNV6Dp~i^by+Lh1`V?$N*Ia-gg^5woqqn1kx}cgq9K1^o1W`w!f2WHBl-6ST!P zOdym`?imEK8DDQ*vt`Ol(J_VsrktSyq45a)hv-Nw>>=7bcZm~ElW!qyO*EefV%c-L zllfY!!5-L^$!A6_eo=^G@?AKPoT;HE)z`TJf|~j<0<%V|E;xXNQy!$230oSVp}%@w z!X3Rva44S}P`vFxM~^`Tj7mV}5-(PHetWnU#atxL%id=c&h$6H@MODtcG?@w7Ox@u zSIEbUW2u#iFA8*V&-Po5LXV!;=c06iwd2x~AR-8F1I^J>A53HsP62%O?2g&P#lU?2 z80teLEcH#1dUPLgN}GBzBP71dEv5I`EEa!rPa8=(`_bEi9`mv2(&QsOA;#%3r4#*P zu~Z9Z-s$_}Cz2j^VNzN%zRbhe$KgvapCijdcw2ZVIG=G0nIuV_Nj|cg!?SAWlFuIA$_hzE##9-&MH*a^h zW-QO&hK<8zEKJ}@k7|HkXwxElv0dJKC#-75NF{8OwG>Jr>`kv?3p(AGc;$p~_gPaif!W$1#`r z3TOtiew$M#%nY3IcoD8NVqkpT*}V_wTJ2&!;1gWDp=*B@Qu}KpAjimO1(owtjDGXZ zb`E+ny$PvCYwJ7aXkfb*r%%K5dq<%TLB!;D>ciur0B1 zOkKXSiO=Cz(oGb^TxV#;2&1sLmuamT&XQ|CiaI0yPRt31B!*{BJb8P!YRq`l2{Xk* zy5C@s?T%@&?|~nG3Tb0mN;6>*WS%vd*kO-fiY1kohc*l$M`psK_w`8OA)pv_`iTuY zdVS5?7pHifeT}VK?TrpxxBEhlOLs#KAv z+~V=-*>nx)WM``6D?mN`QT7o1P(qC!6P)39en`?Z{0z-@G(Mo`n?znEEDn1^B;HE0 zmf8MWx)+);P=Ow!a?KsCJk||u%{Q;)CSN|r+BlN!-u&sa>B3z^;E>G&#xQr^qYu$J zl8UhB->h$2(np1YwLJe5%Lw+yzfs8foM2dNcx%Q!h_3UMu=-8b6Cn6tmc`E?c3diK z?(%ABueki6UgdGGi@nW>kK+I4`X^vk5Rto32}|)FzT>wwYn9B{61aoyuG3rt25}|* zIg~bYCd1;-7Eso5)0p3gQ$w_x$=4UzUHiXfH^y*M^qAiu+}YPzkV}Mt=*9x7{}MhE zjxUjXPKWC4Tl7bH=~Y%j0VcueUopGN{SXq8Vei&pKGG~+>J>U)SRnQf%tg0a-HI4kyZyx6}9o_)U8E^#ki|mVfvbfC@--ar*I<; zrqb3GYw?5KR%1e`7*} z?$%=kx{5^0?9=!KRTm@P7Rgrop2LZ0w1*7140T&QCv`?ye_r7s@$tuEcr%25+T&|+ znPOj%eDs*T-HG;!DrWoh??gn${j|Rgdo&pn(sh50ro-UJeq7^d3B`g1zaX#d|qI=^BYcgR|6>KDlPk%bgZBD+VIL^>hJfn8vGr~_IDS&j44w6wqXM9ybEmR zLH|wd{`CqIb1Zgyx)F@l3}o}Kc1xrtN_?^Tyr+l{C5{cUGX=v(+@8)`1-Sir zLsOnY@uNZC3|$cFQFmIzp~ zj11rw$)@4QT{OP7A+sOU&{czb`}9m=dr#sd;X@7GzJ@Jx#aMOT`M#H*w=R-+>T+1@ z`O65wpDtC5Lk_QYmG7#IRAeCK8eZ@JdmMO659xVZEJV|GqG^mJ@OwY2vt!lFriV@z zOf}jQ@hE+I=D@Ms+4A+)L2j8OOtMe1h@&O3tp6XuxI7{0(Rf6B3CV0bjyRyCYo6FB zo9;u*qRHb25)0WQwk0UnGD)&Q6Yl;su5rO3CZ>{yi9<2Z~a_yK11{4aFy*4q$*QyH- zeIEKfzL0<{|G;cdi$#@+(6@OH3KtzC53e}FqXGsePB=S?hGfG0`OCN*C6;d{wPtwO zrN(gJi&-1W*maW_?DW+3yceg5{+RrC{2?>IyiGqyr?WB)w*y#uBq?a(oRt=2vmcQ!WudPUSSbm40KHxk~cCrj!tnAJ{Y9JAIdh(yzHj zPP%|R(^G_Gq=s)mw3kEFKJ}}sC?*wJUUB; zZ_t<9HS|dC#rAk{TNX?@dHb~6oxR3no8r!Nr(M})rQ2ZHpSzlQI*6E+;@&NdDDPW&aQBFTbbU1rSY`}$#N@5h`i3LMEBb!Wze#SyxVZ#Mv&|wxKZq}%uiP=3+Q2#@ zPc={+9dROz*Ovh2p1$(TV;JaU5~ zfVJ5ArL%5@E}yt(=Q_g0Jky)-%#(?u_v06jDxWv1E}Cd1jxNf+-J9w5*nx7i@-x%y zcXEPvzsK#FI!SEFOkC+KNv}!uANCOmhlf2(z>bn;*wlT!+ovy$!(OUm+8D}!F;kNW6DNu#r`*R1dqHz;X2s32 zOMRR6b{ZSLal9+Ar~a?>%|Wj(4*~`|z_)59qGFJ8Z_1J7fX5WdN1_460Gz`!j4Q-L9Mg=zSu#$y+SfnTY_2g-^9J+)AGBKm)^sj74 z%A*8(|MvU`&kf_LDL+kA$};%OujfG8v*!hP9ji>n+v_Wzbgwu0J23S+3c)$tna0fd zUQT=8-3r?N*7;`X{l}o?!ez|QUj@xcP#SXj{(42)de!IkpYI&v46G7|BaG&+^dB^! zc~UMGn^uG^Q7oPHaGzZza$I`i16@s_Ahd19n9rcvmgu_|)?Pwi2+U3BTJnWE$``BF zx!-!m32rk4j8iN=H8^bJQPnAfaiK>|*ElJUk;021N<&EdyxVW{6uzxC(dRu9 zqo{-u0nFby?=i|X(lB*x`1;7MNqwBrkF&GX4yHqaKHOfhC=E&(SaL~CODzxMA<&gk z33M5btJigK>y4>lHK7QA<)nT!)}(K?_n;j5PIkD3*L4AvEVHI}jC1ktJISR_k{wsE zwAs5i&JHxscuA1dkDwREY`oful<$A{%uGrbmu;;0|NSHpeF`S3r z^TXte;&o?H8#Z>94(u0H#tkw97F6gt@KN<|`ov(qeUyiJ3UTU;Zq))cbPWF(YJ9ni z%gda8AvK@P3;A1faLLe65h-1)T`&z%s!ZpFLI;RK8vnJuZ*eslc|r zt7teHuthTH3}LgD<7mM-ThiCQQgN$&MfX}daXf;D#juFF2+V4!J~d%axXQlnL1018 zU&WR$-yOueZnh1hRP}4&|@-26;7L{UG^86v^ut%2J=AShH@2e z4#3ZGYZB-(l{E*pi&Ym!M{lFvkyRJYvtBZ4XWD440Fm^rRiwIGZ57>}1YqD#Rtn!g zAw{MKO5`kEy!R&1n3~xX7(KA>F6Bth?7zzr3z$;%8%#3sqRY2f8d!~{3?g$_k~YB9 zqx-WS@*xW@Q}-SJOW0Y%zV}bUE9Ke<_O;G;cqJ;LA|19Jq*NF165d0aN6;2;@+K6> z?2`M3ST!+VOj{Q5%`0bvEm&x+Eun3t&9FRma_-{2WPONcrgCy6Fupk3q0y1dojl_U zuT8h0HydFHp-T=N3AOqVFc<<1ii2@l=vWUlwdg*1ku&H?HQ0Q*NULJ@iMiJW4<>S7 zSI6dYRSmFltI)WDKY#d!G)U346Q~y6ye)wpYT?CTQkt4AyJR8 zU1#YFf>*zkfBp5;-3nyNSEn9!(aQJB({ifbkqklt*{lUQT1=A<&8&cS>N=VGpHzSK zCwcsOT-{13&EkiK69ZX!cFn6L2+paNd^jZ(1)6jRD*NzPy(Jilupn~7BH9pird{10yHIrnopGhj4lwXlwqVoG<@?{FoEUNC32t24g z&&*W@#h3B1nL5^+=phLPbbuim;ZAfYJml`}*GGy}1_|~&$^MJ98t)ec%$(^9Ilf$& zpSOW%Yl7D+qC%HfPwfQ&OfurhW1J&@kc? zuPc4mE3Ua^JD|UUd-^*4kr7veprgn4KU+mOY|mg@9loW0t-w~O$yI3{QRk#Q?4BRW z`t}k;myVSbjk{KVo$+yZ5RV!i(!#h_3eJy5G;}piaWQ|9c>VoyH)d{fwQ$)D=NbC~ zo&<^Was$)akKF|qEBp=u=~-QfOBxi#e?YdaWNWlajz^3x>ZksB*bkmw{3bBN(Sqhb zyx)U)r&r#cn-iI#4C*Mwo%G{cN%&L1!Q7C!fNk|&N%^ESfV1>?*h`I=qL=f}^cAEy zzi0OPmjlHO;M#fb=P}yLY?X%ujd0C-I`%l+=)?Sk_bY{@*v?q*B`a=mZvxB8yQ(ba zJhb#m<0ZhjIJeSl{(hIe)HIsNhTd!)j!Wo!s7JUdc`9eqtn%EP-2BVF%EpG-?A5tV zEf<#M(}VHt9@Vp@|CKt*O}JuTOssFXrXjtQELAi8GkZTSVIfOR{f5Gt-bFrL55NLl zuAY9SN#>nlOJ*O?WU+OK7i^a)eGwZ+O<7y{>o3K(eBzu!<=>NyKM2AFrCuw=uzO_r zmZcaUbI+f|$(1hzOL5*1GVbVrjn=MMurz`vzJ$&b)puWnE#e?P2>qm@v2Yl9irbkPtcrYRj8{u1SkD}flk^ep|x#1ob6irqA<(yX}w9IoOYilK? zu8hJkxzglcnjr&7<1xzMsJBo04%hDagAaCk?kHZ{-JnX=2A$b+zTknZY@azDoFBVt zVI-ys?dLz1Cw$yR!Fq>SHS98dpGw^Usm3=Yvu>mpXOPmthx6M;|AyiH3GIiQh8+mQp1xbb zRWvp~y|0=9Q>(Ea+`JtGzz*+{75TQLo+wmuqA%egnS0YTx^$fbufDhH(_Hmd9v|BO z5kp?3>q&y%Wr*YN=TmP}UwMWHomCp0ENRdZtASZ3Z+AKRvz=gUaUD4K$nZNg2aq&? zAFdl7Ojz}FZl89V{jO_6Ha&L_mJAl*N{2P+OzJcpwf-x0Y;j!D{mW2bv+wr2?5ipI zdswtmVMV){|2_H|{NVh$`47gw4MK0ck6%a+**Rs*)Jr_MobzpUix3bt_7bztSAY{^ zy>w0oZl&e&@BKZUGbrw4LS9|)l`u&$0un7(+2G)7HKM1;tx6cv^%BL?nT!kGJ5N&t zK>2ga<*KoJ1iIfHT1htKRsPp`usgwgEt9U<^Lca}E%2fRc6({&|1kSTs5sld{@Am7 zs_s<*S=7<{&spp}t0`H_)Ypn&&6DX8oD&el6@AzX@K2<1&uvnVQfY$vqgF%rM_D8y z{%&tW>)fPm)##=TR#~GdaI#Bf*Qci1WSKdrhwE3l@Y zj|p>VBiqbQS~7hNmG`PeKLsv!ui9<(%=7`c!=RN5X|T92H=?P}epwRYZ0YZ5Q=7y1 zw-m_Ed9QI=->^(i8tB3#iwc*V@&2Dvh5iiK$;%=}FxVo`nn>YWbV+KG&iM72{kzE_ zdCX@3RZME-u^fj}p1yOg#!Rw^G%}a_I;N$3AldHS7(Wt)EPuLTyP8X4En9e@d6Y7^ z%J|-G+)x@wjQ@!VU! zq6x0vNqVyz4O`VXf2BAwl5Opdfn+Q_dZ}sk6PGBy{V-4sBzR!fzSS5uY1bYfOAtSy z1lVcDLuz&?aj9qJj9iHE*znc-*se(IvME^>VziGRmB%~(Bi91-uB`nn<^iC-kA=!d z)y!VI(I9V5KmVQjN*DL}F!37Rk{)P2B8pc4`-JZL>~|8TPrh(|pt`8-%TxV|$<2kS z*RY<+$(yfb#QooN!RYA-Vc5GDnXvbK@W18gz=att4|g>q*iTq%EMvrM?Ym0`Z|E1?pmfgKiqiF*^X``{H<8K_3qqN4^L z+-^tmQTlsc;TF~RExEtjXyvh#1CEo25(<2XO%$I_me=}KAV4}wshi^BdAMY;#i+=~ z+IT#u`5T6}WyE83zG3vVA`14dC=IqX_D$1+=?r_8X|GB7fG46ijI!~v`CYx1peb)D z;e!C9ePiQc$&oOvaaw?3it9k7^-d3~?HXkeDbaanG`n=qvpRlRANu>nV=+g@k(DA~ zA3geZuM?T=$68HGdi7>=Z{9DDcyrzOo9~6Iq;Dn%gDMhyr*Pl z8W3({l8{bvKY;-seFm)sy;EWpk1S75fyS8g z;8HQq?NdiOynXzutH;|^4i;-pzhkz)){D$0N5rKLk>0x3M4s4L_8cZt;&InIt_rsY zV%XFen130U8vv#`KbD#yp{b2qqd$`W8`*z$D`WIb2QvH9AyGWgOaxm+BH3D8R1Qwu zpx;UVP;H<$5Nj(mXxoU;%e-t7!{)*qYqmE+y|PMz^>s) zwvG=V%d04_95I*;{WaxZ>8y68+yHpHOcsk5JGe<@(yPYXEJX2gi*+pJRVC#bYyQMB zl6Qo0upuZF@=Z7Nxz=AcUfwD{!YCZ~(3*bj0-rtI{upjvhVZMu=M1Mihb0s6PEz@8 zIbGV@tkT<399nXQy!K@p`wpcmr-^g@Miq>Tq=KURdCa#x52yN_fjuw|I3eJ;%qqYr z%+tv1)px+Sl=1%K#bb@4Pwj`utWiySzd1Yao zPOA-D0!=l{+dO@J{a+(%#X5m*FKSvUkC4H~@KTdmA8O^7=Vy2S00aXlr-~R;xmNK> zK$tj^cNjn|Qgq`IIT8k_`wf6(7f(Nknt-1(E?IQI^v5lBl+@4}nI`a-k#e+ce}owo zvoH#ag5nx)1`NKHmM4(QzZQSEEAYBKjs9FHAi--P4H5woAB?m$aL+?OWS$0S+zw;0MjW&jrc`TK;rOEr0D>(@Qiie@5aF zh@wVCBiWt~o($f8|4bJYt%}Q>A`Gm!Kw=#j8Ffcuq&JtpVe}3&oig;a;>(848}{0xCenOqf=KDzvd%zNLzNi|M+*M zX=M(ObOjP5SJ?z^&MrDeVd7FZ^f|b@tag9#Q~%rgWmC5Hr}mD8x9aJ+PQe~!TJj1z zTmFQ<7FY9NiZCr7V5hLNF$$}xH%+O926LJozv;U@+}z2i*owJMvnTp9@T}X$T+-ZJ z`EA2WnW41&LvHd_X z&GNNhkcdoeZ0VeC!`7gJ{ig=$jL}F^^k~D;&Roe~%jpKafeZEQyR2?FZC!ZOTya>} z)hBh|iCd;aSDV)N9>|1yZoc|^VtEVyDlk!}P-ZISaou+{<29+D+U%@lSAt{D*ld2* zh7-S_EI!`KGLbLsiY%Q>sx2aJbf;O<@5tNLQ&U|Pk7>c9?)gt%y|z_NyT5UxcW+^4 zg9A?)^h?U%!?QCAzZB?!O1ta;FO-?PaXlTT5m4{T(u;z9s_to9@mTf@`b4gnYA-Pa zNpLLpJ4&)3qwssOGrpm#!C`r7McusciG0hSlvr+UT%jI3N_zd-cEj@L#K_!@_9^iUL%ABsA|90@0tRq5e%RP=KSM^o?194GlVC?Vw0yfQlh|Ea?)vD8$UuP~~xJ06_ zJ+5RfY7s6A-r4hqT1%);wAc^!QcQ|BLs|z1GC3;{!UF zLYI#PYQy#QSnpqTXje8p-C0f3N=!HDhMaE^p$>g$0px8DvO>E5@KMAf*;_kexqnfA z(aCj$DCD$#1nESU{Yt3VKhU)!0qq}dyzy~dA?MDD-2BrIMF%%$u|rC8k2iEDYMAYt z1J}Dd8S8!uWT%A*yc-v)GWuuRoTZ(t2PoLTQ;lF%rUassm1JH~);|KP-m|Hp^1wct8J4QDX-!scq z4>muZWUMA6uUM=MV6MF<@}z|8&el4hajSh&ilHZ!xvJ7tP0Gk^8L;|l%>f|=&}lj2 zr0V|OZ66yRbshzJXPt}_#xVJ(Vc;%; z7&W11u9|-XG`{j)XCh*mZl}TOZ;V%hRgQZ8Bh5R!UrrP})<^byA;b$9h)502K)|s$ z<4-UG^ix?TI3QH*a$EDslV3Dry;n1y>UTXtyAlF~Mm`g?>T<@T4(@)=l-H%{&JOEQ z5h)IJl|@6o`=9MDADGWdZro}mO!E}~hlUOuUTQ9WI%aQb`LC6njTQy`v{COlorM}Y zB~WL(pY1&|VOyzu`0zdB0n-T&L1)yH?g#a|S!?$^0lBsedt zP8*6lsn8FOxN+02nb>;%NDrFyuG={ouI1_xvhkRE52`xf=TT zem)kIIMKB^wA zyww*K$M8Juz1Iu{HXvjb9s=$EjmfwgR|ESPQ-$7f05#^RR2~n+1Ct--9Z}R4)+K0* zdsb1)s==Mfg!QhE4CtBp9~xqywjXPG+&tvAoZ96!xH=cGJg@BX4ciLtbEfZxSMyi; zti+KAV^)liD#VQ<(H|)W3gHL>m6E*GKL6a>F{-}=?{Tjv0X!3+?-GCP8-6CxmE`Ey zZczoHnh{uSzUEwWuz)cYBz;-jzZw5iAtak7uVtH99*J#Lp!Peq58Y}OhL#|rSvRDS z_x{RyIa+uR!374oK)=SfEgi?67di2{jT&bWL`~;reuMMy}R0gN-gb@1~LOD7U_0} z*z4|sMjF56pWm@e*2zkf-7P+Jk!c5@RqE}NF0sWK>>|n;dJ3GaM0H|(Ff44Nvmv6d< zi_&nIn+Pj&;Ptw%<`dH7TQa+9ekKas+(!%~L29R)nAbo_ogvxsr6wB-V@p9r4;1|4 zZ)_J>XG1O&fhmNtO`U<$8btbU` zw8!(TOOeQFYfz{l?DvEruu^Dlx1g<*k3qWJH|ywlF9_qA(1x%&(fE$^n zvONRoM&|6(7hVJOkI1*Q z^HXSR8i-rJ9zKIbI)m2D$WwblQB=I+1I2UGrOa#S!@nUw-t@ppeOkUsyV)h9#iDgdM zj0m*4{JGCyR^h7>Bn;|>ii1=1JLRFH=LUqjI2ncczDzjuXAgGS_1N}f(Gfno!x3B#PkEqFok)MLL79Q~|5^eoz(zIHr!zXm0%jmsAn#rJ|r z{{+@F%sSaJd2^$TwFS+gbq8dWgQJiQId3?I$W96Wl>}`RsL@%U=K~7#*m1NW7r6J4~76|JX5@q>$E z2Tn4e58bp56<9jG;qiBjrb}ip)Pr{o){jHn_sO(2RYWl)v?;UTwrR)N0`3wv3g1gj zGZu}7o37u?s8;l~Q4dbO1Wmp1+ek3FR99igun!pQ2N%ICK8@8n;7zrM7T~<&$|6Dv z-vfejmO4~5&3u-1K&Y5CK<)l;I_!1AWdqdFYXVFnK|KLQ>7P^O=fAlVe2==>%_|F?=FqyZ63W^C zaPQU;NJSKaijONC{$hln(>ibnZ(>q3NBI)tOU13jW;*f(&#_wBKK{ GkN7_YZsL*>k2LAJ=SkOTaY0UQ+mj2PlvMW8r3sX zHtdlsen$`D?)XXYYctZ){1L>4nJ=qZCRW5rVY zG6n{A8BZ6-kcv5PuNpEkDDWIGII#b@VzRq1>))#93;|!ZF*DpqWMBwnV-QFkrAC8b oG!=|ygwe8Kv^X3QHNsa$=}MOWCfAA$fR!hMr>mdKI;Vst0J6EIM*si- literal 0 HcmV?d00001 diff --git a/examples/textures/wide_gamut/webkit_logo_p3.png b/examples/textures/wide_gamut/webkit_logo_p3.png deleted file mode 100644 index 55bad7f812570a85cf5d702de55ac32d4caa599d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78074 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

Gdr{sfu7LwK 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 diff --git a/examples/textures/wide_gamut/yellow_flower_srgb.jpg b/examples/textures/wide_gamut/yellow_flower_srgb.jpg deleted file mode 100644 index f06a536c2df9a82b7c6ee35e5f6dd30d17290bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89221 zcmeFa2UHZz(l9(^$)FejC4+**C1=S=Bu5D@yGxL;u)Aad6%`Xv5l{gU1q1=fNx+08 z$w2`Xkt8UJgww1R6X>rzgZt**{2oY<_tl4 zdP2|+2!d!JMiNqp5`->*n+b#&!22q=cao4nB;ZZB*+?je@0%dZz8Ss?!iP3#NI_Tv zq!j?~Y;eOsm<7Ds!L10wOyE5NZnp?>BA+=BUIB?T;9h92jVG6ukr@|EToZcoQUqc; z2>pDkA<<4KE@M|T4vlq1dvj@M05S<_QE9G2hH!+N7Xd5?0g#M>xQqf!j!Ocj0FzgM z!60)C+|LcmWhKg`jzRl-LHnVbXE(~B5Asgl44Z;5&&7?h63TIKGmHdbD256m2QP6L zOoA+CqfEAdh2R;4auDin)P+S^Uj9OtO1;CGaLgdh2ic-UfBT7xEU@4VWzvk%0hB)BMjI>q`!s9 zehX9n78bv^QCF3Kj|2$QfOJhD47*1`)I&E2O942+a^^soa1rcd8QgNS=h&m(W+-E?1gQO6FWe%{BI~PbGB@ia?KJ70J`I3RaeO~Ao zAo#mhWntn{Fj;8{*v}MODM6Y)E*WuAaV}3!VC`g^c1y7PE!)-yd2HFXDG2{=+a#nL zbzlqNq?_SVLZyLA7u*Cnx8Cb-)~6skqSZQT7(%4$Um*r!3__kJkgg9v=ODTrJ9bd- zprfXyW2U8{W!}w5N5{B(->zM|ckSB8Oh>#nUmKCXpCt6OwDb)0ObiT6EDQ_`EQALG z%SICB{|$rnClK=v=mZo)M#2M;GLw)oldQi3bxghff~X1trxE zY8qOSzmX&mDcKg12_hjUAtNOxrJ$nRK|w|*36RWWf6+ZMcfX{rXLR1u+3&)QjMA6AV+*o6RxbV#37KW}ug4deK@9iJ}C|D@rpM8l3aI__)E3*W znoPWv>&iN`q^PWD@$Eq`O=!VT`8srN{xH5G%6lEka!BnK_fg2(HH~Gjxq4$tBF#Ob zqp&O#bv0m>t$DoWpo&#eJsF8GESjaZ^;9Q5OsDJlOpyj73*DLCiRnc}uiDcN(euYA z%Z|Rdf5VsU@T=C6s)u`}l;g=t1v4_6Wxc{CM3=)_L!Cw>mPM9QZIe2&++SZjdb3DE z@+G&{HM`;Ufd8j;=)p?=w@NQHKkwZ7cOve!kA!OmSJ+;t9Db$y@v6_!i%lGJ_sM35 z6B;L12Ro6Y1!S0*H`CGm-)kL%b|2t;D81x+`B71#M|SB&gfM&{*1~h8f3?T1cO7~r zdXn1V+M48HRPtWZ*}1-iN1P*-Iak)9*)B_?p6DF8$a=KZ3A zA^FL$GimQzQty}HcVbR0MRP}sI-w*2s@jC_1R&NS$uYzY9?ZV_)$zC-M!}`8O{hIp zyHkz0OCEQt<_4he4bFBI@0qU7XBb9#x(~abW``D@c6klHb5O({VwJrb@I$Wh=~17F zh^mh0<@Y@YxxWiyO`CT`hYw`W`%E03j{ch45;2hL)p3Pe&hM-7`!|Apcgqdf;gN}_ zAHLSOlz9CO-MnK7js>^mD$#UGnkH<${bN5oo4@n!>$5Bz-zY5OZ2F!tspxAz(c~~! zBOzrfy6Bp~M0KeHw+@*Gx#+h2uus;Gz0towS>!{K%iUTy7KF;fu0wOjSwipk9h1>} zRhVICyABx+^zXNQcF;Gt=Ipnmj!L~o);GJ07)3isn=bTPtIf;2GgH<6p*j?n46Mk8 zbJzH4jnZy8>;3X~!gPb~a~kETzW0PbpLx}BshR`(Fhr+_Trwx*c<@(0$y>qR@BPca zsAT<+u07VOnphT=v&JwuZS>h2d#I%@=OF9Ag9ZdfqHV^WJ!$o1>Ri`w#hX%^+wbE0 z=Ggo4M(4`#oI{6>zIFa+56{P6alnuTOMhFt0cx9Pb@1dm6g}U&$ICe|Z68VrbD?~O z^QQNW>C|ufs?}>9H^o2PxTW{xbNNI6-dA>0>2?PT#_=$_w$*(vDqTtk3hnVFZzk4? z)}a}pHf!#8M(p+NB@rW|w)xJxRy^LcU9YTPhq`klV&x=WtbOrWhr;V+T%SespdT&` zXI0&U+X~#+J31n@*x%b@acmvBTKHKu?CEQ#D_(wvALPDf=eiUeT!;8FyT6E4p~sg! z@=lQl-B^cie^!hnP-fYSi|HS^hOmd>Kuhjl31Aj)(dsyK3SPw*|_ z<#9V@+57e=uYqgca!VZz1;cZI!zU3H(8AjcuUwt5XUv`#koqvZ*JSQ^a6?``qi1QD z;yPqKZ>8sGn6AjXkYI7b7Z+KcD3g?(aqOFws`IyEl*2mIsk%G$yXyV9bx7mX{Lw4+ zEXh}0`@KRhsQO%WDZRW7eXZsI7II@PsOXC9yYEf=c=+RVu88WbL$aLj>Nz-5Bi2&! z4dO=3jVgj{7x6k)`@*ige`p*Y2N%H_aknTs zybiNyemu!(<37Ri<-uCMNkNg>eyT?tFfrGK*H+7Hs?XP-v?wV%_y8k#*}sdYO1X^-EMqR0Jvi?rwSGCRD3 zgRx_KEjnkZ?y{>=WM1~k-RHR8@!^Q_HCCND4iI5LxH%kwc0CDL<{WRW8*r-Vk?lIQ%+S%%th>CY2=6QJH1{>xzJ&gn`ar!8 zoMj+q9g?n}tzU~@hjMH<_l+WTYDwxiXTlfVM;qRc!e|yo*BGaL-2xSKnQPrD9R}f(5BE|@wT@ZS zJ_uHgS&-+psIqN2|Lm^TY4@zR?+1HqH6?GP;ymAK96Md{DncrReo%|&ID+GK2s__b zG}n#lduyL-BG#_1`PeKPLX@#Ajka=C&5gyAKj@+(P)twsu+as{^?cDSE^CI4ZO=T9 ziQUg*xp3Of_aeurMLfH%D^qWD3`f|_%&Q*}FQho*Iu%OtgCBa0YY66_5vNM2#eZ+Q zU|(%NSFih`bo>Ct)Ppv9&S|=ViEm(lDq3l4vnOMZFbIzfEs5+_ex?!jvH#n0_4UIH zpG92wDh4YD=hvZ*%eq+R^WH;?M)Pe9s^3+c!d}5|9~2=OT8Hl89US&rJuP@WPiJ@2 zztS;O%a6WQ_4en79E*y}lV9nlg0+i2Slt0#iNS47fRhH40gB-c^ z+ta2*q9zMyv*hHhMd3Hjt3-5tZkn7!jJ#Vo$zk;1#JJI`d_3Bo)+fmu#wQf0%oSb{ z*V)DWJVu8`DK_@pIV19mT)Lr`R!3>bcMAJ5ro-p*lA_IQqIE^cCgc)!joFO~MU{dOi$*^>uGdaz6{0SF(do80^ucAgA^27ZXR_-;4ex}FiK49RD!*m$ zI@F%Qz~IW@UHGK8@EH{TRnd2K(Bem}UV%Hp0VcGkBnn}lqw!&8fd z3cMHcvPOgZ72j3%{eD*HuR^?nk`fK%F1{1YR|CE|h;>9P(Lc2DyBZz44%M8rkDh$J zyZ>a7dVLJz*T>CAgG)odtvGqVwtO~}#i<{x9rblEtzy!=jC<)!FG4<{44oTUyl-Bo ztZQIdwlEi1h0A3%PS~7z}kmbR;wkBWD z=|8yyw|ASn$JgOQNCRUVG|i; zlVvs)wOv_-fn-?rbx1AG3X}i2TKNN8WRKi)&rEkU)yjn+#T?8Pl>%pak-EnLH!335 zAr;H}7eY@;3-i+B@~GFL*5>6w{HtB{FQj8tZ8=W_J_cjWJ9n17wfp+4$C?e-tIfnXD-_S(6&e`?{PhZ(QeWIv^ zW*t6{O+3%e;fYy?*1N`%PMq1#OBZ2@6S}YIdCV>pZnmgne)cQw?Ymy+SVVkPLA2W$ zZj7@0Kq}YsXP?DA7_y9%m@dW$ic(okxb*HRHVDv~@T1AkO>naui&)`D+Zfor_Ug$j zY?#aT(sM6y_f=hNPaC_(ds+LlItAKg(F$?t`bVm;r*lHLUyJK7-5W276bqzx?Y{PG ztTNPdjy{)vXi&T8AtzV?WPZw!Q3Lu0y#iFB#tlzup(97kqYaMb~2VlE~~8 zdqc`H^W~=ZsVU74)X&Q~t*_0o$-Fjr0{XPj`TX!6iEmY%s53(?dn|SQlJ`Gu`^jPEl?*T|yeG30ta6Q+eIp^9;_Fnh=<_4Ec-?qXud=%e#r&5VKJ0D_FX(B}SpKgB3 zx`Ri0#(V8c?ZYC0VBWLC^ZxAJXIup?*QgCHn^?896*jFZci3><9Js?5y7(>3&1C+C z`#ta7!I+XR3qJ8Phnd+VZeLSi-P3&YBY!2!$+u$~mvbYrj%f-xXVP97H65ZoZnWM# zGH8Fjui*KyhP0~wvZ6}u>0tcB{K9t{S3KRApMEKtL3~M$8G0jBX3>rqlfEOTSU85Y z9aF>x2uY*fwg#v}r%li&zGl3ZAsID!?pYC{(~&3pX2RnWkLtG^*cH3)LUm3rAKM(i zvj3e%gixl0yoJPyHYR+=_n@-BJ1j&vl&->?{;QU z_03Wts;%yxSJWb&ckkNK3wE>!)+ZG(XBX&u@`3iWJ5Z6ZtKcKJIRRrdg9*Hfc&DiAMc# z{=EJcG=tTx7&7>d*X2jd@|nk5bYT3Ij_ZBvQ*121d~A}U;*gxWo*_BG`2|5o_LJB` zWbFJp`+@%j{NGP%3^D%YhuKdm3+*8Ie!xG8{iI3|t+>3Tq`359ac~iN@e_G5y*tb9 z{GPT}(v$PJtj=Zw&D68TsP8eQ_X4@RvcxSe%&?8tp-( z(DTBfP+q>C1Oy>Wcx!lI2ysSYS~Ir*0)@I8j*y0c-r$MC9D{qJ%(bk|0caz$jReLR zG}_q=h4b|`ayp3sNIJ+E!a!*7&l%!^%peqmgM1-x0xO8d`zJMs5!tAF;Jh{^qI2?f z^T4@z5m^E}HIZ7w(8gdxvx)>3q$1$)tHe8hE3uI`&JFE_1^B%LN)2zE*H$4wA)PQk zBc?7`!=DiijF-l*h!^fxC`bua|BU(>K;h0?ckZAcP6D;7t%4I*M}MVDneD=D@GK zUAATjj}5pn264oOz=3!%AuwofD_0b#TwtMYUM^eeV;~?*flTUX91iX2f%bCQOhUJX zA&BrBoPG;#>gMA5JA!r#0c870PiQM-QyVgn2!l89Gi|+z?TFxj2d-h_llV|Q4Lq}i zmP}8K652BdG0ysDoNSgDrzSqZgM^ss;D(QL!@*5JkrE}CCsOG`V$RNh&;vXPj#NUT z4Mc!^~OO65uM)~dSoL+$&A2bLwZ6KB8dTMtU-Vt^bw|@r_hExK%e0c`U?z%1#t;z zqtry|KOUP6ivS~VAaMHg`i14+a4%mELeECvI`1UD5iqNn*=UQ{j^ zw6FIcAWAgG&Bg6!f2n0g;BG{O0Uq>lUmRKo<%Pn)aVR7JK<0toTird)1~CCb!036p zaDmr_>&4TzxpKOu%#mp=ywIXiSirhnvfmrWiL0ue${XC8t87oZ-I2u9Vsjg~4q@Zn*{ilbqJcMFZ`D#{8yS z<_-SpIzJI033LqYMbI@h4($zwWGw3UzKX^JbZY+srE?;7g8u@i1y$_&H#xB#9wKA} z##~^|s?)^qMw??MhDkR1BytvFj9}0t#8d=&h^dnh2REVpoB+W`5Ofy=nM$F3V9({B zJ(+*@Wd7Nc`Dah&pFNp>_GJFqllf;)=AS*8fA(bl*^~KaPv)OJnSb_V{@IiHXHVw; zlY25m?*=z;Vn7fa+`#_j%A&=xyRpC+! zPzdn!_C(>}TmhaQURZ?yWga4P1rR2H#dx@gBsh0v9^$vNT-JuhTpDN$ic4BlMg$=t z3FDHL7nP8fhsj9^a}hrN7892elaLpYkW>KwrNp^5FCLH^2I;I|s;Rx17lUQWTAG0cqvs#l&G^FqjCS5Wxm|;ot!xURd5O4w@(|0^>&9mEj_A1UnACIAtCn zDX|Dh#80l?z)wiziA0E@JW!q}FB}%AOM*};A}!n(6nHzmqQJNLM8yJ%pVUBA+f#4V z!WLWat#9PFC;y2i=CG9ra5psEKEW1$PtTvSU~yW0pwQdNzD12CxDv%oQCPGu27%J@ z1EuHP$_$G$Mg7wLwkGvwazOqwF#?0#K4%2j%)`J%FmQhn;Fl!q#}L#l4unP`6r9l* zPdE_S%@gi|5xS|4hhqR57>_8(8Pt`6AsXrC90+#20GMF+BH}V4Fgf$BKYBPUA+8|4 zNveTC0kSPpacL34e+l!gukttenF6W2T!2)Y>_O{8g6*`eRR1=EpVp*6Al=9cG<(7h z@W15qilyZVZ!3+%*G|>oOLR-?) z-0CfmXoMS5;TIPB#Athii6mpB(#zq6& z<9DvIvM>p8Nf~vRwyc(nxVV(IhLoC`rY1~VT3ky;R!VIvt)3Sa2lqmt2$Fz05p@Gn zNWf%K(g>uCh^)Mo6z;DL3c6A8W~N-) z9%z3Q2FnHhrbWXPwm}2D^;n{@$cxHsK!AF{-V638LPm6xot3K_4y6wFAPA()qv4AM zn>ZUu)W8l35&JWdgd{;QIf8)@Br!(;y9E0yz62YSl9S#7gH26k9$-luRAvN%P1`*z zxdn8EW4yh9K%mN{H|UP~db)WLq%iYDqj9cVRz=8&SnbEqZdjBl3h9g3Xa`&AED2j1 zI2=mN6Kr3BjDO{TMEjc)W!VIQ#Javf)L+rxW!r@6V8AZX?_@;4HiYUPzNp{n2=Q&m zEZv+i8@fHbB{4{)hCB&0O)y6w)K7{2Kp25!F2AJx17`y^fYAQirz6U{Jxa~T7rs4) zApG_iV_%Fnp;>LJ=MOOqL6-%_xu3{i#oxYs+u{Ez=5{21m3BLlKMTDb#UEwgj^Ga! zY)9~yCblE_TOmJfdV76rgZ@h$+fe+ajcq9YRK_+0f9PTx{2!{=2LG2PwxRf25oX>V zZa8za7iiUHu3)a_5A5id+5CllLZt z>}E#_*kZtZ!4!^k^99)+CXW4tZgdl&3C3tQk6$@%g0+w?C_^~b{r8U77>&hgfNxU% zO&_a+fxCJA)$eZ8S8rvwRfKIwHv0UH0bz@bFpJt8)wR6fPQP_R1dJiv%NGp4ZeYB^ z5C(+5#4rXUpf~uE#?22!*t&K@z(I+(>hl*4?1H-mp+O(EE!Gr`BTkgSJZ)o)`i-j@ z;0R1uVrww`4W&lRdAsZ^z!zG;Qno``1EA*G<-3Bo3k@R6lj8;VBxt@4cpLc=<6u>j0KL_Kx+_JBY(|i&A@yS3CDoh zCviITJBg;73knM?N?t=;S{4QaQ&1UoEg3mEFjJF~mC%O4w4}9UC1o@>lK$4Fh~FtH z^AI3Fp@h#rup2a+M*3^kCoLff%bzaWW* z{U=fz4K%tPOCkbD3aUa<+S3!*$)5?0F(^Mb6qpeGRu`KYf~AocmavM`*q9z}&WAU# z+F+GwhH@dUu{Q}e3!@9i0u2#YgM{^!?`91HFrh>IBPTTvuu?(>s(FKPj4+!cQUk{U zSUw^MYbZ2k(~Dq+^4Sb|xT*ZLW>XR)cm)8QYa_HlEA|Hu;$mAtm)Pe8Zo`v{xV~0^ zZ_bdBV2$cWSh8$@y*CCp(D^CzAU5n6h2(O^pgp-ZR<{8n2*MxKiy$yCE*yFjh;wsx z<`MfT_Fq|G;lE|zw#~Z6$w>kxB`z-|f)tmP6p@lgNs7Q_oRA{UPU1)zI1=IHgaQiR z5YQid5=mGB{;_D3Rgjd}T9s~)VbRVw!n#(CF!|hC?-_47FSs@u5Eob`ae>v(?|

%UqD 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 diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index 1959f45690b336..4f2d0ce95dceb6 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -69,24 +69,11 @@ import * as THREE from 'three'; - import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; - let container, camera, renderer, loader; let sceneL, sceneR, textureL, textureR; let sliderPos = window.innerWidth / 2; - const IMAGE_OPTIONS = { - 'Yellow flower': 'yellow_flower_{colorSpace}.jpg', - 'Webkit logo': 'webkit_logo_{colorSpace}.png', - }; - - const params = { - - image: Object.values( IMAGE_OPTIONS )[ 0 ], - - }; - const isP3Context = THREE.ColorManagement.isDrawingBufferColorSpaceSupported( THREE.DisplayP3ColorSpace ); if ( isP3Context ) { @@ -107,7 +94,7 @@ camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 0.1, 100 ); camera.position.z = 6; - loader = new THREE.TextureLoader().setPath( 'textures/wide_gamut/' ); + loader = new THREE.TextureLoader(); initTextures(); initSlider(); @@ -125,10 +112,6 @@ } - const gui = new GUI(); - - gui.add( params, 'image', IMAGE_OPTIONS ).onChange( initTextures ); - window.addEventListener( 'resize', onWindowResize ); window.matchMedia( '( color-gamut: p3 )' ).addEventListener( 'change', onGamutChange ); @@ -136,8 +119,10 @@ async function initTextures() { - textureL = await loader.loadAsync( params.image.replace( '{colorSpace}', 'srgb' ) ); - textureR = await loader.loadAsync( params.image.replace( '{colorSpace}', 'p3' ) ); + const path = 'textures/wide_gamut/logo_{colorSpace}.png'; + + textureL = await loader.loadAsync( path.replace( '{colorSpace}', 'srgb' ) ); + textureR = await loader.loadAsync( path.replace( '{colorSpace}', 'p3' ) ); textureL.colorSpace = THREE.SRGBColorSpace; textureR.colorSpace = THREE.DisplayP3ColorSpace; diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index ef3b898ef36f9f..2af6dc77dcc563 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -13,17 +13,17 @@ import { Matrix3 } from './Matrix3.js'; * - http://www.russellcottrell.com/photo/matrixCalculator.htm */ -const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().fromArray( [ - 0.8224621, 0.0331941, 0.0170827, - 0.1775380, 0.9668058, 0.0723974, - - 0.0000001, 0.0000001, 0.9105199 -] ); - -const LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().fromArray( [ - 1.2249401, - 0.0420569, - 0.0196376, - - 0.2249404, 1.0420571, - 0.0786361, - 0.0000001, 0.0000000, 1.0982735 -] ); +const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().set( + 0.8224621, 0.177538, 0.0, + 0.0331941, 0.9668058, 0.0, + 0.0170827, 0.0723974, 0.9105199, +); + +const LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().set( + 1.2249401, - 0.2249404, 0.0, + - 0.0420569, 1.0420571, 0.0, + - 0.0196376, - 0.0786361, 1.0982735 +); /** * Defines supported color spaces by transfer function and primaries, diff --git a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js index 0eabd05a8c6d26..4b52daad72fb8e 100644 --- a/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js @@ -2,24 +2,26 @@ export default /* glsl */` // http://www.russellcottrell.com/photo/matrixCalculator.htm -const mat3 REC709_TO_P3 = mat3( - 0.8224621, 0.177538, - 0.0000001, - 0.0331941, 0.9668058, 0.0000001, - 0.0170827, 0.0723974, 0.9105199 +// Linear sRGB => XYZ => Linear Display P3 +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) ); -const mat3 P3_TO_REC709 = mat3( - 1.2249401, - 0.2249404, 0.0000001, - - 0.0420569, 1.0420571, 0.0000000, - - 0.0196376, - 0.0786361, 1.0982735 +// Linear Display P3 => XYZ => Linear sRGB +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) ); -vec4 Rec709ToP3( in vec4 value ) { - return vec4( value.rgb * REC709_TO_P3, value.a ); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); } -vec4 P3ToRec709( in vec4 value ) { - return vec4( value.rgb * P3_TO_REC709, value.a ); +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); } vec4 LinearTransferOETF( in vec4 value ) { diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index d580d88fc9962e..01614ad5a22079 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -38,11 +38,11 @@ function getEncodingComponents( colorSpace ) { } else if ( workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries ) { - gamutMapping = 'P3ToRec709'; + gamutMapping = 'LinearDisplayP3ToLinearSRGB'; } else if ( workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries ) { - gamutMapping = 'Rec709ToP3'; + gamutMapping = 'LinearSRGBToLinearDisplayP3'; } From 9b42148c69b6e09928d693a979c0af098aa3f03f Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 31 Aug 2023 15:11:23 -0400 Subject: [PATCH 18/21] Align labels --- .../screenshots/webgl_test_wide_gamut.jpg | Bin 6091 -> 6148 bytes examples/webgl_test_wide_gamut.html | 5 ++++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/screenshots/webgl_test_wide_gamut.jpg b/examples/screenshots/webgl_test_wide_gamut.jpg index 24a491060ec9a8a3a427f4c30d9994522cac5313..a1250f0ee67f1361518274178389f000709759be 100644 GIT binary patch delta 3012 zcmcIlX*iUP0)0iHq}R(#1~{tK(?!=!X_dbi#u%6@o*Wa6-w0^efJp-m7SY_uj=U*ttm2Bp5{!0$L48 zjMqD`a+)b~m+?2NJ1SBZ^_zaz%_>4bz#BfsL)ahSlJkFr|J9M%lIe%Q9(T572?YEw zJhe;`4CgIz)Gr)Hw$Y3!l6Py~1}iVAv>kRwT<-9&^v}M2X0M2;O5m80IkFJ)!wJQ} zub7O=HsXCI+o-P*5$Xd=zC+lE518}Z5+HCm_5l|<*r8ggRcxlzpU62Ipb;4X)c6VBfpK#PTY70K$xI~(MRk7Jm z<}}T>*G~7_%jLf=k9R{{^CvpenG;3P-F?4 zxAl!x>Z6<7Z;;fqEc=|r{z5GA=nc$GZedV#oOCu)j4XePeeq$*$)K_Os_17E+x6ZOH?eKAQ^d?Lk^l!OH$L^Rar;~kn|~qfJdzmux*Eca~|xaGxC}FO*7q0X+H?qSs<|A zUd(13+ZPNsWzaTv8m@W@Cr0C<*K`r?xhpjVSY*6GE%8$|ErCZ1ys;PEaI7-YedEv> z<%X$&4-_x!7@bi%%i_Rv`bs;j(XAF&VyJ1}+^T@7bdz`d`koFSbr?cycgNy3jS^ib z;X}w7-}vsQg_8>r3TjF`<0~rf)&e?V7In{>Yl7_5?x`E8NKZ(4FSzBXTRVL<<}9jj zn2$jF9Ml+KqGuSOivT^K^rI=(OMWtoB5qgEF&0(%Im{!ohXw(oc64|@1h_yza*puk ziQS~_4SsSlKA0YsgMEL&W=B3#=;T_kNxOQ=xO_DSM|Ew;&(1E?#)+sBk*V?Y71Hf> zUG=Wq9CwCX+aG^uy*4abSZ)n4^;GDi5-TE1A}zp(Xbgo{9ONjP9(Kkx4aQv+xt+Gy zFMDz4Py_CzM<1bS*rR`Rjn!}G_}U;d3yx~{(%SIt#6tjQA9C*wYwj{gs z1x`=YcvvbI8$Uz~7BVlm9rsDOsOl%Pwh#i&boYJ^?F#kQR9Itbq)$Iabcnw(XX;tkid-TNQ;LpKjQV#@Zs~XR{g}e@!(3F;%8%0i-r$|oZ?DfN2 zCtG(uhfRtfywH8*lSJViwRb1!Ox^4)DTlfD}VmZ=MkS+h#c!r*1fIjR4&bi zQ$sr@!ZfnKesRk#(IHX1LOQyK=KSmy{b?hG{^f|P2(Lh>_w?e~4ZXw?q%qCIDvJRNNJ)Rk3;Kx@*3aa`M;J?R3mR)>(wRNZ2$z{-FZwc zR30$aDKcrjPY(hYsz#Uv^AX17+Rereih}NjYy+__O+GNAU|72L@dZxZ#2T&fRlhWC zN=JpR`V$o~xL2D=bHRrF3NB+u^z=98pk0#<%q<h?xZ0G|!~9;t zfRAu@lA4Le5se{3e+|8RGfxus-?m)t3YnE^_t3nXr(a^37f&Q*rNxDB%$?K4h{RzR z;}gPa_7u7ftt=qNG8ETE{C~`6?PFQTPRErdHg$bPgqlNhjW?((Jo;7wC9kcKn;ngh;aJAZ|<$T)Gg%7-D82$qCJB zgQnNTAYfvi1il1Sa~W~_PV8|AILWeinblw<&z1_z8ucLV{#0OTe_XMCV>=w{96cR< z#zN9i;M~hRC&%`ONpg$Xy;&(=iPqMAM!xk6jSTzb#-3EARV>;fU3DS%(s&s-F*Y|) zIFUK@e_)ll!k%EEJw*IfUUhw?ol;I>> z*HURoMMHpUZxhP&`NK`^QYh|9X*Xrc-Qo&_n)_aT7Np}9)&Uw%y;{l0lq8V)UX6i`Q8S62>{5zESS3_ZY+-+2w| qiGQd3l7|Zxw-{BJ84@r`L&~fFI#)%E61OU5npf%njMAJSH1bd5?>N!` delta 2853 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 Date: Thu, 31 Aug 2023 15:14:33 -0400 Subject: [PATCH 19/21] Move detection of display-p3 capabilility to WebGL.js --- examples/jsm/capabilities/WebGL.js | 17 +++++++++++++++++ examples/webgl_test_wide_gamut.html | 4 +++- src/math/ColorManagement.js | 17 ----------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/examples/jsm/capabilities/WebGL.js b/examples/jsm/capabilities/WebGL.js index 08666feb103f91..2abf2614fccbc0 100644 --- a/examples/jsm/capabilities/WebGL.js +++ b/examples/jsm/capabilities/WebGL.js @@ -30,6 +30,23 @@ class WebGL { } + static isColorSpaceAvailable( colorSpace ) { + + try { + + const canvas = document.createElement( 'canvas' ); + const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); + ctx.drawingBufferColorSpace = colorSpace; + return ctx.drawingBufferColorSpace === colorSpace; // deepscan-disable-line SAME_OPERAND_VALUE + + } catch ( e ) { + + return false; + + } + + } + static getWebGLErrorMessage() { return this.getErrorMessage( 1 ); diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index 5abba96adb0ac5..641c80685d88e6 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -72,12 +72,14 @@ import * as THREE from 'three'; + import WebGL from 'three/addons/capabilities/WebGL.js'; + let container, camera, renderer, loader; let sceneL, sceneR, textureL, textureR; let sliderPos = window.innerWidth / 2; - const isP3Context = THREE.ColorManagement.isDrawingBufferColorSpaceSupported( THREE.DisplayP3ColorSpace ); + const isP3Context = WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ); if ( isP3Context ) { diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index 2af6dc77dcc563..296334d2929ac4 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -139,23 +139,6 @@ export const ColorManagement = { }, - isDrawingBufferColorSpaceSupported: function ( colorSpace ) { - - try { - - const canvas = document.createElement( 'canvas' ); - const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); - ctx.drawingBufferColorSpace = colorSpace; - return ctx.drawingBufferColorSpace === colorSpace; // deepscan-disable-line SAME_OPERAND_VALUE - - } catch ( e ) { - - return false; - - } - - } - }; From bb5b1f36fef9d15e9c9a142268690efe5350cec1 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Mon, 4 Sep 2023 22:19:28 -0400 Subject: [PATCH 20/21] Apply suggestions from code review Co-authored-by: Levi Pesin <35454228+LeviPesin@users.noreply.github.com> --- src/renderers/webgl/WebGLBackground.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/webgl/WebGLBackground.js b/src/renderers/webgl/WebGLBackground.js index b1ee3efd6982ac..c236a0c2039a89 100644 --- a/src/renderers/webgl/WebGLBackground.js +++ b/src/renderers/webgl/WebGLBackground.js @@ -109,7 +109,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, boxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1; boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness; boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - boxMesh.material.toneMapped = ( ColorManagement.getTransfer( background.colorSpace ) === SRGBTransfer ) ? false : true; + boxMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer; if ( currentBackground !== background || currentBackgroundVersion !== background.version || @@ -165,7 +165,7 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, planeMesh.material.uniforms.t2D.value = background; planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; - planeMesh.material.toneMapped = ( ColorManagement.getTransfer( background.colorSpace ) === SRGBTransfer ) ? false : true; + planeMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer; if ( background.matrixAutoUpdate === true ) { From b313f113c8e11fc5f9b9cd11d48c2a928054a180 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 7 Sep 2023 10:23:33 -0400 Subject: [PATCH 21/21] Remove renderer.resetColorManangement() --- src/renderers/WebGLRenderer.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index e0d4baada4a052..35b215c3e2198d 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -2395,13 +2395,6 @@ class WebGLRenderer { }; - this.resetColorManagement = function () { - - _gl.drawingBufferColorSpace = this._outputColorSpace === DisplayP3ColorSpace ? 'display-p3' : 'srgb'; - _gl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? 'display-p3' : 'srgb'; - - }; - this.resetState = function () { _currentActiveCubeFace = 0; @@ -2437,7 +2430,9 @@ class WebGLRenderer { this._outputColorSpace = colorSpace; - this.resetColorManagement(); + const gl = this.getContext(); + gl.drawingBufferColorSpace = colorSpace === DisplayP3ColorSpace ? 'display-p3' : 'srgb'; + gl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? 'display-p3' : 'srgb'; }