From e84ea228f979cb8e395c31bc0ab7efa66d57ecdd Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 27 Feb 2023 16:43:42 -0800 Subject: [PATCH 01/40] plumbing --- examples/jsm/exporters/GLTFExporter.js | 48 +++++++++++++++ examples/jsm/loaders/GLTFLoader.js | 61 +++++++++++++++++++ manual/resources/threejs-material-table.js | 2 + src/loaders/MaterialLoader.js | 3 + src/materials/Material.js | 9 +++ src/materials/MeshPhysicalMaterial.js | 26 ++++++++ .../lights_physical_fragment.glsl.js | 12 ++++ .../lights_physical_pars_fragment.glsl.js | 4 ++ src/renderers/shaders/ShaderLib.js | 3 + .../shaders/ShaderLib/meshphysical.glsl.js | 8 +++ src/renderers/webgl/WebGLMaterials.js | 12 ++++ src/renderers/webgl/WebGLProgram.js | 5 ++ src/renderers/webgl/WebGLPrograms.js | 5 +- 13 files changed, 197 insertions(+), 1 deletion(-) diff --git a/examples/jsm/exporters/GLTFExporter.js b/examples/jsm/exporters/GLTFExporter.js index fcc347b295384a..93be3e56207aba 100644 --- a/examples/jsm/exporters/GLTFExporter.js +++ b/examples/jsm/exporters/GLTFExporter.js @@ -120,6 +120,12 @@ class GLTFExporter { } ); + this.register( function ( writer ) { + + return new GLTFMaterialsAnisotropyExtension( writer ); + + } ); + this.register( function ( writer ) { return new GLTFMaterialsEmissiveStrengthExtension( writer ); @@ -2804,6 +2810,48 @@ class GLTFMaterialsSheenExtension { } +/** + * Anisotropy Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_anisotropy + */ +class GLTFMaterialsAnisotropyExtension { + + constructor( writer ) { + + this.writer = writer; + this.name = 'KHR_materials_anisotropy'; + + } + + writeMaterial( material, materialDef ) { + + if ( ! material.isMeshPhysicalMaterial || material.anisotropy == 0.0 ) return; + + const writer = this.writer; + const extensionsUsed = writer.extensionsUsed; + + const extensionDef = {}; + + if ( material.anisotropyMap ) { + + const anisotropyMapDef = { index: writer.processTexture( material.anisotropyMap ) }; + writer.applyTextureTransform( anisotropyMapDef, material.anisotropyMap ); + extensionDef.anisotropyTexture = anisotropyMapDef; + + } + + extensionDef.anisotropyStrength = material.anisotropyStrength; + + materialDef.extensions = materialDef.extensions || {}; + materialDef.extensions[ this.name ] = extensionDef; + + extensionsUsed[ this.name ] = true; + + } + +} + /** * Materials Emissive Strength Extension * diff --git a/examples/jsm/loaders/GLTFLoader.js b/examples/jsm/loaders/GLTFLoader.js index cc39873ae7b1c4..41e2bff73fa12f 100644 --- a/examples/jsm/loaders/GLTFLoader.js +++ b/examples/jsm/loaders/GLTFLoader.js @@ -142,6 +142,12 @@ class GLTFLoader extends Loader { } ); + this.register( function ( parser ) { + + return new GLTFMaterialsAnisotropyExtension( parser ); + + } ); + this.register( function ( parser ) { return new GLTFLightsExtension( parser ); @@ -472,6 +478,7 @@ const EXTENSIONS = { KHR_MATERIALS_SPECULAR: 'KHR_materials_specular', KHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission', KHR_MATERIALS_IRIDESCENCE: 'KHR_materials_iridescence', + KHR_MATERIALS_ANISOTROPY: 'KHR_materials_anisotropy', KHR_MATERIALS_UNLIT: 'KHR_materials_unlit', KHR_MATERIALS_VOLUME: 'KHR_materials_volume', KHR_TEXTURE_BASISU: 'KHR_texture_basisu', @@ -1187,6 +1194,60 @@ class GLTFMaterialsSpecularExtension { } +/** + * Materials anisotropy Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy + */ +class GLTFMaterialsAnisotropyExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + materialParams.anisotropyStrength = extension.anisotropyStrength !== undefined ? extension.anisotropyStrength : 1.0; + + if ( extension.anisotropyTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + /** * BasisU Texture Extension * diff --git a/manual/resources/threejs-material-table.js b/manual/resources/threejs-material-table.js index 906896b4c07b76..b0dd21f8a97d88 100644 --- a/manual/resources/threejs-material-table.js +++ b/manual/resources/threejs-material-table.js @@ -164,6 +164,8 @@ const materials = [ 'transmissionMap', 'attenuationDistance', 'attenuationColor', + 'anisotropy', + 'anisotropyMap', 'specularIntensity', 'specularIntensityMap', 'specularColor', diff --git a/src/loaders/MaterialLoader.js b/src/loaders/MaterialLoader.js index 2fb13925fc1d20..ef42e755d8905f 100644 --- a/src/loaders/MaterialLoader.js +++ b/src/loaders/MaterialLoader.js @@ -110,6 +110,7 @@ class MaterialLoader extends Loader { if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); + if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -310,6 +311,8 @@ class MaterialLoader extends Loader { if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); + if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); + if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/src/materials/Material.js b/src/materials/Material.js index c3a9a82bec1717..b1f0c67f114378 100644 --- a/src/materials/Material.js +++ b/src/materials/Material.js @@ -230,6 +230,15 @@ class Material extends EventDispatcher { } + if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; + if ( this.anisotropyStrength !== undefined ) data.anisotropyStrength = this.anisotropyStrength; + + if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { + + data.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid; + + } + if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; diff --git a/src/materials/MeshPhysicalMaterial.js b/src/materials/MeshPhysicalMaterial.js index b3fb4c5d910e20..d8f78d01632cd0 100644 --- a/src/materials/MeshPhysicalMaterial.js +++ b/src/materials/MeshPhysicalMaterial.js @@ -63,10 +63,14 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; + this.anisotropyStrength = 1.0; + this.anisotropyMap = null; + this._sheen = 0.0; this._clearcoat = 0; this._iridescence = 0; this._transmission = 0; + this._anisotropy = 0; this.setValues( parameters ); @@ -144,6 +148,24 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { } + get anisotropy() { + + return this._anisotropy; + + } + + set anisotropy( value ) { + + if ( this._anisotropy > 0 !== value > 0 ) { + + this.version ++; + + } + + this._anisotropy = value; + + } + copy( source ) { super.copy( source ); @@ -189,6 +211,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor.copy( source.specularColor ); this.specularColorMap = source.specularColorMap; + this.anisotropy = source.anisotropy; + this.anisotropyStrength = source.anisotropyStrength; + this.anisotropyMap = source.anisotropyMap; + return this; } diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 33ffd3724bc4ff..d8006cb8f76ea0 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -116,5 +116,17 @@ material.roughness = min( material.roughness, 1.0 ); #endif +#endif + +#ifdef USE_ANISOTROPY + + material.anisotropy = vec2( 1.0 ) * anisotropyStrength; + + #ifdef USE_ANISOTROPYMAP + + material.anisotropy *= texture2D( anisotropyMap, vUv ).rg; + + #endif + #endif `; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 0af32ea590ed4a..cb1f0d3973e4f5 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -38,6 +38,10 @@ struct PhysicalMaterial { vec3 attenuationColor; #endif + #ifdef USE_ANISOTROPY + vec2 anisotropy; + #endif + }; // temporary diff --git a/src/renderers/shaders/ShaderLib.js b/src/renderers/shaders/ShaderLib.js index 3e628c0843d36a..a50a24a66dcfce 100644 --- a/src/renderers/shaders/ShaderLib.js +++ b/src/renderers/shaders/ShaderLib.js @@ -333,6 +333,9 @@ ShaderLib.physical = { specularIntensityMap: { value: null }, specularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) }, specularColorMap: { value: null }, + anisotropy: { value: 0 }, + anisotropyStrength: { value: 1 }, + anisotropyMap: { value: null }, } ] ), diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index 6a1352fe77d9f1..f20e9807274cef 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -114,6 +114,14 @@ uniform float opacity; #endif #endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropy; + + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif + varying vec3 vViewPosition; #include diff --git a/src/renderers/webgl/WebGLMaterials.js b/src/renderers/webgl/WebGLMaterials.js index 52042186e77596..2e6ffbef5211f2 100644 --- a/src/renderers/webgl/WebGLMaterials.js +++ b/src/renderers/webgl/WebGLMaterials.js @@ -633,6 +633,18 @@ function WebGLMaterials( renderer, properties ) { } + if ( material.anisotropy > 0 ) { + + uniforms.anisotropyStrength.value = material.anisotropyStrength; + + if ( material.anisotropyMap ) { + + uniforms.anisotropyMap.value = material.anisotropyMap; + + } + + } + uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index 55468993fad8b1..f455df60a22358 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -491,6 +491,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '', parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '', @@ -653,6 +655,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '', + parameters.anisotropy ? '#define USE_ANISOTROPY' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index aefd3ec79a4338..419f76ea949bc9 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -171,13 +171,16 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities transmissionMap: !! material.transmissionMap, thicknessMap: !! material.thicknessMap, + anisotropy: material.anisotropy > 0, + anisotropyMap: !! material.anisotropyMap, + combine: material.combine, vertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap, - uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap, + uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.anisotropyMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap, fog: !! fog, useFog: material.fog === true, From aae2b680068cbac207588e55180f5b2caaafe264 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 10:34:33 -0800 Subject: [PATCH 02/40] refactored tangents --- .../clearcoat_normal_fragment_maps.glsl.js | 10 +-------- .../ShaderChunk/normal_fragment_begin.glsl.js | 22 +++++++++---------- .../ShaderChunk/normal_fragment_maps.glsl.js | 12 ++-------- .../normalmap_pars_fragment.glsl.js | 8 +++---- 4 files changed, 18 insertions(+), 34 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js index 9a35bdbee1afa9..f64e9cbaf649ea 100644 --- a/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js @@ -4,15 +4,7 @@ export default /* glsl */` vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; clearcoatMapN.xy *= clearcoatNormalScale; - #ifdef USE_TANGENT - - clearcoatNormal = normalize( vTBN * clearcoatMapN ); - - #else - - clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); - - #endif + clearcoatNormal = normalize( vTBN * clearcoatMapN ); #endif `; diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js index fc90fbb58d5fde..3467d1bc5cbc10 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js @@ -11,29 +11,29 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - normal = normal * faceDirection; + #ifdef USE_TANGENT - #endif + mat3 vTBN = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #ifdef USE_TANGENT + #else - vec3 tangent = normalize( vTangent ); - vec3 bitangent = normalize( vBitangent ); + mat3 vTBN = getTangentSpace( - vViewPosition, normal ); + + #endif #ifdef DOUBLE_SIDED - tangent = tangent * faceDirection; - bitangent = bitangent * faceDirection; + vTBN = vTBN * faceDirection; #endif - #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + #endif - mat3 vTBN = mat3( tangent, bitangent, normal ); + #ifdef DOUBLE_SIDED - #endif + normal = normal * faceDirection; #endif diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js index df19bdbbe5118f..3fdf5c152bdda4 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js @@ -23,19 +23,11 @@ export default /* glsl */` vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; mapN.xy *= normalScale; - #ifdef USE_TANGENT - - normal = normalize( vTBN * mapN ); - - #else - - normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); - - #endif + normal = normalize( vTBN * mapN ); #elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); + normal = normalize( vTBN * dHdxy_fwd() ); #endif `; diff --git a/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js index 6d80da660777cf..66ae882ca5fdd4 100644 --- a/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js @@ -12,12 +12,12 @@ export default /* glsl */` #endif -#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) // Normal Mapping Without Precomputed Tangents // http://www.thetenthplanet.de/archives/1180 - vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + mat3 getTangentSpace( vec3 eye_pos, vec3 surf_norm ) { vec3 q0 = dFdx( eye_pos.xyz ); vec3 q1 = dFdy( eye_pos.xyz ); @@ -33,9 +33,9 @@ export default /* glsl */` vec3 B = q1perp * st0.y + q0perp * st1.y; float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + return mat3( T * scale, B * scale, N ); } From 0bc855ca8f54f6098ee064a7bf8c7984f654843b Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 11:12:42 -0800 Subject: [PATCH 03/40] fix bump map --- src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js index 3467d1bc5cbc10..4c3d6a86143f05 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js @@ -11,7 +11,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; vec3 normal = normalize( vNormal ); - #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_BUMPMAP ) || defined( USE_ANISOTROPY ) #ifdef USE_TANGENT From 0aea9f391818b3f4d103e7e20921acd8e3861531 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 11:15:10 -0800 Subject: [PATCH 04/40] fix bump map again --- src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js | 2 +- src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js index 4c3d6a86143f05..3467d1bc5cbc10 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js @@ -11,7 +11,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; vec3 normal = normalize( vNormal ); - #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_BUMPMAP ) || defined( USE_ANISOTROPY ) + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) #ifdef USE_TANGENT diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js index 3fdf5c152bdda4..16eab77839691f 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js @@ -27,7 +27,7 @@ export default /* glsl */` #elif defined( USE_BUMPMAP ) - normal = normalize( vTBN * dHdxy_fwd() ); + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); #endif `; From fba9c0d0d4beabe2535ab6aab76cc4e0538f1718 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 15:08:25 -0800 Subject: [PATCH 05/40] added IBL anisotropy support --- .../envmap_physical_pars_fragment.glsl.js | 22 +++++++++++++++++++ .../ShaderChunk/lights_fragment_maps.glsl.js | 12 +++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 17461bae5accdb..95883cd7e92033 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -42,5 +42,27 @@ export default /* glsl */` } + #if defined( USE_ANISOTROPY ) + + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + + #if defined( ENVMAP_TYPE_CUBE_UV ) + + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = cross( bentNormal, bitangent ); + bentNormal = normalize( mix( normal , bentNormal, anisotropy ) ); + + return getIBLRadiance( viewDir, bentNormal, roughness ); + + #else + + return vec3( 0.0 ); + + #endif + + } + + #endif + #endif `; diff --git a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js index 940f1d30133051..ffcf722a5a3b2c 100644 --- a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js @@ -20,7 +20,17 @@ export default /* glsl */` #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #if defined( USE_ANISOTROPY ) + + vec3 anisotropyBitangent = vTBN[ 0 ] * material.anisotropy.x + vTBN[ 1 ] * material.anisotropy.y; + + radiance += getIBLRadianceAnisotropy( geometry.viewDir, geometry.normal, material.roughness, anisotropyBitangent, length( material.anisotropy ) ); + + #else + + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + + #endif #ifdef USE_CLEARCOAT From 81d2fabd2a147f014487ec01a415bd0c6926c384 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 16:47:08 -0800 Subject: [PATCH 06/40] added direct anisotropy support --- .../shaders/ShaderChunk/bsdfs.glsl.js | 78 ++++++++++++++++--- .../envmap_physical_pars_fragment.glsl.js | 10 +-- .../ShaderChunk/lights_fragment_maps.glsl.js | 6 +- .../lights_physical_fragment.glsl.js | 12 ++- .../lights_physical_pars_fragment.glsl.js | 17 ++-- 5 files changed, 89 insertions(+), 34 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js index 86001f31e4dda9..89a4948dd1c43f 100644 --- a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +++ b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js @@ -66,8 +66,37 @@ float D_GGX( const in float alpha, const in float dotNH ) { } +#ifdef USE_ANISOTROPY + + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + + float lambdaV = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float lambdaL = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( lambdaV + lambdaL ); + + return saturate(v); + + } + + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + + return a2 * w2 * w2 * ( 1.0 * RECIPROCAL_PI ); + + } + +#endif + // GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) { +vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; float alpha = pow2( roughness ); // UE4's roughness @@ -88,28 +117,53 @@ vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 norm } -#ifdef USE_IRIDESCENCE +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 BRDF_GGX_Iridescence( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float iridescence, const in vec3 iridescenceFresnel, const in float roughness ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; - float alpha = pow2( roughness ); // UE4's roughness + float alpha = pow2( roughness ); // UE4's roughness - vec3 halfDir = normalize( lightDir + viewDir ); + vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + + vec3 F = F_Schlick( f0, f90, dotVH ); + + #ifdef USE_IRIDESCENCE + + F = mix( F, material.iridescenceFresnel, material.iridescence ); + + #endif - vec3 F = mix( F_Schlick( f0, f90, dotVH ), iridescenceFresnel, iridescence ); + #ifdef USE_ANISOTROPY + + float dotTL = saturate( dot( material.anisotropyT, lightDir ) ); + float dotTV = saturate( dot( material.anisotropyT, viewDir ) ); + float dotTH = saturate( dot( material.anisotropyT, halfDir ) ); + float dotBL = saturate( dot( material.anisotropyB, lightDir ) ); + float dotBV = saturate( dot( material.anisotropyB, viewDir ) ); + float dotBH = saturate( dot( material.anisotropyB, halfDir ) ); + + float V = V_GGX_SmithCorrelated_Anisotropic( alpha, material.alphaB, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + + float D = D_GGX_Anisotropic( alpha, material.alphaB, dotNH, dotTH, dotBH ); + + #else float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); + #endif - } + return F * ( V * D ); + +} #endif diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 95883cd7e92033..f0a9eb301b2464 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -1,9 +1,9 @@ export default /* glsl */` -#if defined( USE_ENVMAP ) +#ifdef USE_ENVMAP vec3 getIBLIrradiance( const in vec3 normal ) { - #if defined( ENVMAP_TYPE_CUBE_UV ) + #ifdef ENVMAP_TYPE_CUBE_UV vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); @@ -21,7 +21,7 @@ export default /* glsl */` vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #if defined( ENVMAP_TYPE_CUBE_UV ) + #ifdef ENVMAP_TYPE_CUBE_UV vec3 reflectVec = reflect( - viewDir, normal ); @@ -42,11 +42,11 @@ export default /* glsl */` } - #if defined( USE_ANISOTROPY ) + #ifdef USE_ANISOTROPY vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #if defined( ENVMAP_TYPE_CUBE_UV ) + #ifdef ENVMAP_TYPE_CUBE_UV vec3 bentNormal = cross( bitangent, viewDir ); bentNormal = cross( bentNormal, bitangent ); diff --git a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js index ffcf722a5a3b2c..998fa200dffedd 100644 --- a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js @@ -20,11 +20,9 @@ export default /* glsl */` #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #if defined( USE_ANISOTROPY ) + #ifdef USE_ANISOTROPY - vec3 anisotropyBitangent = vTBN[ 0 ] * material.anisotropy.x + vTBN[ 1 ] * material.anisotropy.y; - - radiance += getIBLRadianceAnisotropy( geometry.viewDir, geometry.normal, material.roughness, anisotropyBitangent, length( material.anisotropy ) ); + radiance += getIBLRadianceAnisotropy( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy ); #else diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index d8006cb8f76ea0..d252b332bec015 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -120,13 +120,21 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPY - material.anisotropy = vec2( 1.0 ) * anisotropyStrength; + vec2 anisotropyV = vec2( 1.0 ) * anisotropyStrength; #ifdef USE_ANISOTROPYMAP - material.anisotropy *= texture2D( anisotropyMap, vUv ).rg; + anisotropyV *= texture2D( anisotropyMap, vUv ).rg; #endif + material.anisotropy = length( anisotropyV ); + + // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. + material.alphaB = pow2( mix( material.roughness, 1.0, material.anisotropy ) ); + + material.anisotropyT = vTBN[ 0 ] * anisotropyV.x + vTBN[ 1 ] * anisotropyV.y; + material.anisotropyB = vTBN[ 1 ] * anisotropyV.x - vTBN[ 0 ] * anisotropyV.y; + #endif `; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index cb1f0d3973e4f5..67d6a955a1ef3d 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -39,7 +39,10 @@ struct PhysicalMaterial { #endif #ifdef USE_ANISOTROPY - vec2 anisotropy; + float anisotropy; + float alphaB; + vec3 anisotropyT; + vec3 anisotropyB; #endif }; @@ -185,7 +188,7 @@ void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricC vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + clearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material ); #endif @@ -195,15 +198,7 @@ void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricC #endif - #ifdef USE_IRIDESCENCE - - reflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness ); - - #else - - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); - - #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material ); reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } From 3fdb06e28570024bf91580f17c2ff6d72a48493f Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 17:10:34 -0800 Subject: [PATCH 07/40] reshuffle chunks --- src/renderers/shaders/ShaderChunk.js | 2 + .../lights_physical_pars_fragment.glsl.js | 47 ------------------ .../physical_pars_fragment.glsl.js | 49 +++++++++++++++++++ .../shaders/ShaderLib/meshphysical.glsl.js | 1 + 4 files changed, 52 insertions(+), 47 deletions(-) create mode 100644 src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js diff --git a/src/renderers/shaders/ShaderChunk.js b/src/renderers/shaders/ShaderChunk.js index e8435e4359944a..55907a247abde2 100644 --- a/src/renderers/shaders/ShaderChunk.js +++ b/src/renderers/shaders/ShaderChunk.js @@ -77,6 +77,7 @@ import clearcoat_pars_fragment from './ShaderChunk/clearcoat_pars_fragment.glsl. import iridescence_pars_fragment from './ShaderChunk/iridescence_pars_fragment.glsl.js'; import output_fragment from './ShaderChunk/output_fragment.glsl.js'; import packing from './ShaderChunk/packing.glsl.js'; +import physical_pars_fragment from './ShaderChunk/physical_pars_fragment.glsl.js'; import premultiplied_alpha_fragment from './ShaderChunk/premultiplied_alpha_fragment.glsl.js'; import project_vertex from './ShaderChunk/project_vertex.glsl.js'; import dithering_fragment from './ShaderChunk/dithering_fragment.glsl.js'; @@ -203,6 +204,7 @@ export const ShaderChunk = { iridescence_pars_fragment: iridescence_pars_fragment, output_fragment: output_fragment, packing: packing, + physical_pars_fragment: physical_pars_fragment, premultiplied_alpha_fragment: premultiplied_alpha_fragment, project_vertex: project_vertex, dithering_fragment: dithering_fragment, diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 67d6a955a1ef3d..5126dba8387f1d 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -1,51 +1,4 @@ export default /* glsl */` -struct PhysicalMaterial { - - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - - #ifdef IOR - float ior; - #endif - - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaB; - vec3 anisotropyT; - vec3 anisotropyB; - #endif - -}; // temporary vec3 clearcoatSpecular = vec3( 0.0 ); diff --git a/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js new file mode 100644 index 00000000000000..136d1767b0e2b9 --- /dev/null +++ b/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js @@ -0,0 +1,49 @@ +export default /* glsl */` +struct PhysicalMaterial { + + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + + #ifdef IOR + float ior; + #endif + + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaB; + vec3 anisotropyT; + vec3 anisotropyB; + #endif + +}; +`; diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index f20e9807274cef..b714886be9321b 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -136,6 +136,7 @@ varying vec3 vViewPosition; #include #include #include +#include #include #include #include From fd6649017b06f49c39f68de782cd5db46e346b40 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 17:19:33 -0800 Subject: [PATCH 08/40] fix clearcoat --- .../shaders/ShaderChunk/bsdfs.glsl.js | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js index 89a4948dd1c43f..afcb826bbe6eb9 100644 --- a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +++ b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js @@ -91,31 +91,35 @@ float D_GGX( const in float alpha, const in float dotNH ) { #endif -// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility -vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { +#ifdef USE_CLEARCOAT - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; + // GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - float alpha = pow2( roughness ); // UE4's roughness + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; - vec3 halfDir = normalize( lightDir + viewDir ); + float alpha = pow2( roughness ); // UE4's roughness - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 halfDir = normalize( lightDir + viewDir ); - vec3 F = F_Schlick( f0, f90, dotVH ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + vec3 F = F_Schlick( f0, f90, dotVH ); - float D = D_GGX( alpha, dotNH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - return F * ( V * D ); + float D = D_GGX( alpha, dotNH ); -} + return F * ( V * D ); + + } + +#endif vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { From c96774b620f64a805dc8df07e177616b7eef9b97 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 1 Mar 2023 17:31:12 -0800 Subject: [PATCH 09/40] fix dangling endif --- src/renderers/shaders/ShaderChunk/bsdfs.glsl.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js index afcb826bbe6eb9..8450228e4f29a5 100644 --- a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +++ b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js @@ -169,8 +169,6 @@ vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 norm } -#endif - // Rect Area Light // Real-Time Polygonal-Light Shading with Linearly Transformed Cosines From d13d0fa4856bfde160b8769ee55e952f674320de Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Thu, 2 Mar 2023 16:04:44 -0800 Subject: [PATCH 10/40] separate physical BRDF from blinnPhong --- src/renderers/shaders/ShaderChunk.js | 2 - .../shaders/ShaderChunk/bsdfs.glsl.js | 327 ---------------- .../shaders/ShaderChunk/common.glsl.js | 6 + .../lights_physical_pars_fragment.glsl.js | 370 ++++++++++++++++++ .../physical_pars_fragment.glsl.js | 49 --- .../shaders/ShaderLib/meshphysical.glsl.js | 2 - 6 files changed, 376 insertions(+), 380 deletions(-) delete mode 100644 src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js diff --git a/src/renderers/shaders/ShaderChunk.js b/src/renderers/shaders/ShaderChunk.js index 55907a247abde2..e8435e4359944a 100644 --- a/src/renderers/shaders/ShaderChunk.js +++ b/src/renderers/shaders/ShaderChunk.js @@ -77,7 +77,6 @@ import clearcoat_pars_fragment from './ShaderChunk/clearcoat_pars_fragment.glsl. import iridescence_pars_fragment from './ShaderChunk/iridescence_pars_fragment.glsl.js'; import output_fragment from './ShaderChunk/output_fragment.glsl.js'; import packing from './ShaderChunk/packing.glsl.js'; -import physical_pars_fragment from './ShaderChunk/physical_pars_fragment.glsl.js'; import premultiplied_alpha_fragment from './ShaderChunk/premultiplied_alpha_fragment.glsl.js'; import project_vertex from './ShaderChunk/project_vertex.glsl.js'; import dithering_fragment from './ShaderChunk/dithering_fragment.glsl.js'; @@ -204,7 +203,6 @@ export const ShaderChunk = { iridescence_pars_fragment: iridescence_pars_fragment, output_fragment: output_fragment, packing: packing, - physical_pars_fragment: physical_pars_fragment, premultiplied_alpha_fragment: premultiplied_alpha_fragment, project_vertex: project_vertex, dithering_fragment: dithering_fragment, diff --git a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js index 8450228e4f29a5..72b3c7ef45f517 100644 --- a/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +++ b/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js @@ -1,292 +1,5 @@ export default /* glsl */` -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - - return RECIPROCAL_PI * diffuseColor; - -} // validated - -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - - // Original approximation by Christophe Schlick '94 - // float fresnel = pow( 1.0 - dotVH, 5.0 ); - - // Optimized variant (presented by Epic at SIGGRAPH '13) - // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); - -} // validated - -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - - // Original approximation by Christophe Schlick '94 - // float fresnel = pow( 1.0 - dotVH, 5.0 ); - - // Optimized variant (presented by Epic at SIGGRAPH '13) - // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); - -} // validated - -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} - -// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2 -// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - - float a2 = pow2( alpha ); - - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - - return 0.5 / max( gv + gl, EPSILON ); - -} - -// Microfacet Models for Refraction through Rough Surfaces - equation (33) -// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html -// alpha is "roughness squared" in Disney’s reparameterization -float D_GGX( const in float alpha, const in float dotNH ) { - - float a2 = pow2( alpha ); - - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; // avoid alpha = 0 with dotNH = 1 - - return RECIPROCAL_PI * a2 / pow2( denom ); - -} - -#ifdef USE_ANISOTROPY - - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - - float lambdaV = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float lambdaL = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( lambdaV + lambdaL ); - - return saturate(v); - - } - - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - - return a2 * w2 * w2 * ( 1.0 * RECIPROCAL_PI ); - - } - -#endif - -#ifdef USE_CLEARCOAT - - // GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - - float alpha = pow2( roughness ); // UE4's roughness - - vec3 halfDir = normalize( lightDir + viewDir ); - - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - - vec3 F = F_Schlick( f0, f90, dotVH ); - - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - - float D = D_GGX( alpha, dotNH ); - - return F * ( V * D ); - - } - -#endif - -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - - float alpha = pow2( roughness ); // UE4's roughness - - vec3 halfDir = normalize( lightDir + viewDir ); - - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - - vec3 F = F_Schlick( f0, f90, dotVH ); - - #ifdef USE_IRIDESCENCE - - F = mix( F, material.iridescenceFresnel, material.iridescence ); - - #endif - - #ifdef USE_ANISOTROPY - - float dotTL = saturate( dot( material.anisotropyT, lightDir ) ); - float dotTV = saturate( dot( material.anisotropyT, viewDir ) ); - float dotTH = saturate( dot( material.anisotropyT, halfDir ) ); - float dotBL = saturate( dot( material.anisotropyB, lightDir ) ); - float dotBV = saturate( dot( material.anisotropyB, viewDir ) ); - float dotBH = saturate( dot( material.anisotropyB, halfDir ) ); - - float V = V_GGX_SmithCorrelated_Anisotropic( alpha, material.alphaB, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - - float D = D_GGX_Anisotropic( alpha, material.alphaB, dotNH, dotTH, dotBH ); - - #else - - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - - float D = D_GGX( alpha, dotNH ); - - #endif - - return F * ( V * D ); - -} - -// Rect Area Light - -// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines -// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt -// code: https://github.com/selfshadow/ltc_code/ - -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - - float dotNV = saturate( dot( N, V ) ); - - // texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) ) - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - - uv = uv * LUT_SCALE + LUT_BIAS; - - return uv; - -} - -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - - // Real-Time Area Lighting: a Journey from Research to Production (p.102) - // An approximation of the form factor of a horizon-clipped rectangle. - - float l = length( f ); - - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); - -} - -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - - float x = dot( v1, v2 ); - - float y = abs( x ); - - // rational polynomial approximation to theta / sin( theta ) / 2PI - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - - return cross( v1, v2 ) * theta_sintheta; - -} - -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - - // bail if point is on back side of plane of light - // assumes ccw winding order of light vertices - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - - // construct orthonormal basis around N - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system - - // compute transform - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - - // transform rect - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - - // project rect onto sphere - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - - // calculate vector form factor - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - - // adjust for horizon clipping - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - -/* - // alternate method of adjusting for horizon clipping (see referece) - // refactoring required - float len = length( vectorFormFactor ); - float z = vectorFormFactor.z / len; - - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - - // tabulated horizon-clipped sphere, apparently... - vec2 uv = vec2( z * 0.5 + 0.5, len ); - uv = uv * LUT_SCALE + LUT_BIAS; - - float scale = texture2D( ltc_2, uv ).w; - - float result = len * scale; -*/ - - return vec3( result ); - -} - -// End Rect Area Light - - float G_BlinnPhong_Implicit( /* const in float dotNL, const in float dotNV */ ) { // geometry term is (n dot l)(n dot v) / 4(n dot l)(n dot v) @@ -317,44 +30,4 @@ vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in ve } // validated -#if defined( USE_SHEEN ) - -// https://github.com/google/filament/blob/master/shaders/src/brdf.fs -float D_Charlie( float roughness, float dotNH ) { - - float alpha = pow2( roughness ); - - // Estevez and Kulla 2017, "Production Friendly Microfacet Sheen BRDF" - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); // 2^(-14/2), so sin2h^2 > 0 in fp16 - - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); - -} - -// https://github.com/google/filament/blob/master/shaders/src/brdf.fs -float V_Neubelt( float dotNV, float dotNL ) { - - // Neubelt and Pettineo 2013, "Crafting a Next-gen Material Pipeline for The Order: 1886" - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); - -} - -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - - vec3 halfDir = normalize( lightDir + viewDir ); - - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - - return sheenColor * ( D * V ); - -} - -#endif `; diff --git a/src/renderers/shaders/ShaderChunk/common.glsl.js b/src/renderers/shaders/ShaderChunk/common.glsl.js index b9f49739624495..9b9b0e3b58f03e 100644 --- a/src/renderers/shaders/ShaderChunk/common.glsl.js +++ b/src/renderers/shaders/ShaderChunk/common.glsl.js @@ -115,4 +115,10 @@ vec2 equirectUv( in vec3 dir ) { return vec2( u, v ); } + +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + + return RECIPROCAL_PI * diffuseColor; + +} // validated `; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 5126dba8387f1d..b8065af14eb8c7 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -1,9 +1,379 @@ export default /* glsl */` +struct PhysicalMaterial { + + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + + #ifdef IOR + float ior; + #endif + + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaB; + vec3 anisotropyT; + vec3 anisotropyB; + #endif + +}; + // temporary vec3 clearcoatSpecular = vec3( 0.0 ); vec3 sheenSpecular = vec3( 0.0 ); + +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + + // Original approximation by Christophe Schlick '94 + // float fresnel = pow( 1.0 - dotVH, 5.0 ); + + // Optimized variant (presented by Epic at SIGGRAPH '13) + // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); + +} // validated + +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + + // Original approximation by Christophe Schlick '94 + // float fresnel = pow( 1.0 - dotVH, 5.0 ); + + // Optimized variant (presented by Epic at SIGGRAPH '13) + // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); + +} // validated + +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} + +// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2 +// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + + float a2 = pow2( alpha ); + + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + + return 0.5 / max( gv + gl, EPSILON ); + +} + +// Microfacet Models for Refraction through Rough Surfaces - equation (33) +// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html +// alpha is "roughness squared" in Disney’s reparameterization +float D_GGX( const in float alpha, const in float dotNH ) { + + float a2 = pow2( alpha ); + + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; // avoid alpha = 0 with dotNH = 1 + + return RECIPROCAL_PI * a2 / pow2( denom ); + +} + +#ifdef USE_ANISOTROPY + + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + + float lambdaV = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float lambdaL = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( lambdaV + lambdaL ); + + return saturate(v); + + } + + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + + return a2 * w2 * w2 * ( 1.0 * RECIPROCAL_PI ); + + } + +#endif + +#ifdef USE_CLEARCOAT + + // GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + + float alpha = pow2( roughness ); // UE4's roughness + + vec3 halfDir = normalize( lightDir + viewDir ); + + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + + vec3 F = F_Schlick( f0, f90, dotVH ); + + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + + float D = D_GGX( alpha, dotNH ); + + return F * ( V * D ); + + } + +#endif + +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + + float alpha = pow2( roughness ); // UE4's roughness + + vec3 halfDir = normalize( lightDir + viewDir ); + + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + + vec3 F = F_Schlick( f0, f90, dotVH ); + + #ifdef USE_IRIDESCENCE + + F = mix( F, material.iridescenceFresnel, material.iridescence ); + + #endif + + #ifdef USE_ANISOTROPY + + float dotTL = saturate( dot( material.anisotropyT, lightDir ) ); + float dotTV = saturate( dot( material.anisotropyT, viewDir ) ); + float dotTH = saturate( dot( material.anisotropyT, halfDir ) ); + float dotBL = saturate( dot( material.anisotropyB, lightDir ) ); + float dotBV = saturate( dot( material.anisotropyB, viewDir ) ); + float dotBH = saturate( dot( material.anisotropyB, halfDir ) ); + + float V = V_GGX_SmithCorrelated_Anisotropic( alpha, material.alphaB, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + + float D = D_GGX_Anisotropic( alpha, material.alphaB, dotNH, dotTH, dotBH ); + + #else + + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + + float D = D_GGX( alpha, dotNH ); + + #endif + + return F * ( V * D ); + +} + +// Rect Area Light + +// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines +// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt +// code: https://github.com/selfshadow/ltc_code/ + +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + + float dotNV = saturate( dot( N, V ) ); + + // texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) ) + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + + uv = uv * LUT_SCALE + LUT_BIAS; + + return uv; + +} + +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + + // Real-Time Area Lighting: a Journey from Research to Production (p.102) + // An approximation of the form factor of a horizon-clipped rectangle. + + float l = length( f ); + + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); + +} + +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + + float x = dot( v1, v2 ); + + float y = abs( x ); + + // rational polynomial approximation to theta / sin( theta ) / 2PI + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + + return cross( v1, v2 ) * theta_sintheta; + +} + +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + + // bail if point is on back side of plane of light + // assumes ccw winding order of light vertices + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + + // construct orthonormal basis around N + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system + + // compute transform + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + + // transform rect + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + + // project rect onto sphere + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + + // calculate vector form factor + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + + // adjust for horizon clipping + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + +/* + // alternate method of adjusting for horizon clipping (see referece) + // refactoring required + float len = length( vectorFormFactor ); + float z = vectorFormFactor.z / len; + + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + + // tabulated horizon-clipped sphere, apparently... + vec2 uv = vec2( z * 0.5 + 0.5, len ); + uv = uv * LUT_SCALE + LUT_BIAS; + + float scale = texture2D( ltc_2, uv ).w; + + float result = len * scale; +*/ + + return vec3( result ); + +} + +// End Rect Area Light + +#if defined( USE_SHEEN ) + +// https://github.com/google/filament/blob/master/shaders/src/brdf.fs +float D_Charlie( float roughness, float dotNH ) { + + float alpha = pow2( roughness ); + + // Estevez and Kulla 2017, "Production Friendly Microfacet Sheen BRDF" + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); // 2^(-14/2), so sin2h^2 > 0 in fp16 + + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); + +} + +// https://github.com/google/filament/blob/master/shaders/src/brdf.fs +float V_Neubelt( float dotNV, float dotNL ) { + + // Neubelt and Pettineo 2013, "Crafting a Next-gen Material Pipeline for The Order: 1886" + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); + +} + +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + + vec3 halfDir = normalize( lightDir + viewDir ); + + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + + return sheenColor * ( D * V ); + +} + +#endif + // This is a curve-fit approxmation to the "Charlie sheen" BRDF integrated over the hemisphere from // Estevez and Kulla 2017, "Production Friendly Microfacet Sheen BRDF". The analysis can be found // in the Sheen section of https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing diff --git a/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js deleted file mode 100644 index 136d1767b0e2b9..00000000000000 --- a/src/renderers/shaders/ShaderChunk/physical_pars_fragment.glsl.js +++ /dev/null @@ -1,49 +0,0 @@ -export default /* glsl */` -struct PhysicalMaterial { - - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - - #ifdef IOR - float ior; - #endif - - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaB; - vec3 anisotropyT; - vec3 anisotropyB; - #endif - -}; -`; diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index b714886be9321b..125778ce71d02a 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -136,8 +136,6 @@ varying vec3 vViewPosition; #include #include #include -#include -#include #include #include #include From e06229b75fd3df76ab6dd3f2595315bd53b5dd88 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Thu, 2 Mar 2023 16:48:10 -0800 Subject: [PATCH 11/40] prod CI --- .../shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index b8065af14eb8c7..4a85f655a6959c 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -52,7 +52,6 @@ struct PhysicalMaterial { vec3 clearcoatSpecular = vec3( 0.0 ); vec3 sheenSpecular = vec3( 0.0 ); - vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { // Original approximation by Christophe Schlick '94 From 878f528dcb4effd3fdaf4c4fb5fec8c1582607c6 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 09:29:26 -0800 Subject: [PATCH 12/40] move Schlick to common --- .../shaders/ShaderChunk/common.glsl.js | 26 +++++++++++++++++++ .../lights_physical_pars_fragment.glsl.js | 26 ------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/common.glsl.js b/src/renderers/shaders/ShaderChunk/common.glsl.js index 9b9b0e3b58f03e..fbdfcee34237b1 100644 --- a/src/renderers/shaders/ShaderChunk/common.glsl.js +++ b/src/renderers/shaders/ShaderChunk/common.glsl.js @@ -120,5 +120,31 @@ vec3 BRDF_Lambert( const in vec3 diffuseColor ) { return RECIPROCAL_PI * diffuseColor; +} // validated + +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + + // Original approximation by Christophe Schlick '94 + // float fresnel = pow( 1.0 - dotVH, 5.0 ); + + // Optimized variant (presented by Epic at SIGGRAPH '13) + // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); + +} // validated + +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + + // Original approximation by Christophe Schlick '94 + // float fresnel = pow( 1.0 - dotVH, 5.0 ); + + // Optimized variant (presented by Epic at SIGGRAPH '13) + // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); + } // validated `; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 4a85f655a6959c..b7a9134af33cda 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -52,32 +52,6 @@ struct PhysicalMaterial { vec3 clearcoatSpecular = vec3( 0.0 ); vec3 sheenSpecular = vec3( 0.0 ); -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - - // Original approximation by Christophe Schlick '94 - // float fresnel = pow( 1.0 - dotVH, 5.0 ); - - // Optimized variant (presented by Epic at SIGGRAPH '13) - // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); - -} // validated - -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - - // Original approximation by Christophe Schlick '94 - // float fresnel = pow( 1.0 - dotVH, 5.0 ); - - // Optimized variant (presented by Epic at SIGGRAPH '13) - // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); - -} // validated - vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); float x2 = x * x; From a8f1818bd75086eac9a9c4c7a75812b7fe1a917a Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 11:33:33 -0800 Subject: [PATCH 13/40] fixed plumbing --- examples/jsm/exporters/GLTFExporter.js | 2 +- examples/jsm/loaders/GLTFLoader.js | 6 +++++- src/materials/Material.js | 1 - src/materials/MeshPhysicalMaterial.js | 2 -- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- src/renderers/shaders/ShaderLib.js | 1 - src/renderers/webgl/WebGLMaterials.js | 2 +- src/renderers/webgl/WebGLPrograms.js | 4 ++++ 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/examples/jsm/exporters/GLTFExporter.js b/examples/jsm/exporters/GLTFExporter.js index 93be3e56207aba..a44e56b776b26d 100644 --- a/examples/jsm/exporters/GLTFExporter.js +++ b/examples/jsm/exporters/GLTFExporter.js @@ -2841,7 +2841,7 @@ class GLTFMaterialsAnisotropyExtension { } - extensionDef.anisotropyStrength = material.anisotropyStrength; + extensionDef.anisotropyStrength = material.anisotropy; materialDef.extensions = materialDef.extensions || {}; materialDef.extensions[ this.name ] = extensionDef; diff --git a/examples/jsm/loaders/GLTFLoader.js b/examples/jsm/loaders/GLTFLoader.js index 41e2bff73fa12f..1be32407c5f3aa 100644 --- a/examples/jsm/loaders/GLTFLoader.js +++ b/examples/jsm/loaders/GLTFLoader.js @@ -1234,7 +1234,11 @@ class GLTFMaterialsAnisotropyExtension { const extension = materialDef.extensions[ this.name ]; - materialParams.anisotropyStrength = extension.anisotropyStrength !== undefined ? extension.anisotropyStrength : 1.0; + if ( extension.anisotropyStrength !== undefined ) { + + materialParams.anisotropy = extension.anisotropyStrength; + + } if ( extension.anisotropyTexture !== undefined ) { diff --git a/src/materials/Material.js b/src/materials/Material.js index 4251fe634be5bf..413fc2ca1432c1 100644 --- a/src/materials/Material.js +++ b/src/materials/Material.js @@ -231,7 +231,6 @@ class Material extends EventDispatcher { } if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; - if ( this.anisotropyStrength !== undefined ) data.anisotropyStrength = this.anisotropyStrength; if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { diff --git a/src/materials/MeshPhysicalMaterial.js b/src/materials/MeshPhysicalMaterial.js index d8f78d01632cd0..9ec6d2c36c87a3 100644 --- a/src/materials/MeshPhysicalMaterial.js +++ b/src/materials/MeshPhysicalMaterial.js @@ -63,7 +63,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this.anisotropyStrength = 1.0; this.anisotropyMap = null; this._sheen = 0.0; @@ -212,7 +211,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColorMap = source.specularColorMap; this.anisotropy = source.anisotropy; - this.anisotropyStrength = source.anisotropyStrength; this.anisotropyMap = source.anisotropyMap; return this; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index d252b332bec015..555e01393d2091 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -120,7 +120,7 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPY - vec2 anisotropyV = vec2( 1.0 ) * anisotropyStrength; + vec2 anisotropyV = vec2( 1.0 ) * anisotropy; #ifdef USE_ANISOTROPYMAP diff --git a/src/renderers/shaders/ShaderLib.js b/src/renderers/shaders/ShaderLib.js index a50a24a66dcfce..454da8084f0471 100644 --- a/src/renderers/shaders/ShaderLib.js +++ b/src/renderers/shaders/ShaderLib.js @@ -334,7 +334,6 @@ ShaderLib.physical = { specularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) }, specularColorMap: { value: null }, anisotropy: { value: 0 }, - anisotropyStrength: { value: 1 }, anisotropyMap: { value: null }, } ] ), diff --git a/src/renderers/webgl/WebGLMaterials.js b/src/renderers/webgl/WebGLMaterials.js index 2e6ffbef5211f2..b50a209e1f6ad1 100644 --- a/src/renderers/webgl/WebGLMaterials.js +++ b/src/renderers/webgl/WebGLMaterials.js @@ -635,7 +635,7 @@ function WebGLMaterials( renderer, properties ) { if ( material.anisotropy > 0 ) { - uniforms.anisotropyStrength.value = material.anisotropyStrength; + uniforms.anisotropy.value = material.anisotropy; if ( material.anisotropyMap ) { diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 419f76ea949bc9..723f44f9aa6059 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -443,6 +443,10 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities _programLayers.enable( 23 ); if ( parameters.opaque ) _programLayers.enable( 24 ); + if ( parameters.anisotropy ) + _programLayers.enable( 25 ); + if ( parameters.anisotropyMap ) + _programLayers.enable( 26 ); array.push( _programLayers.mask ); From 0ef60d7657e9fa854ef57ec3c98610d11b240896 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 11:57:28 -0800 Subject: [PATCH 14/40] fixed shader compilation --- .../shaders/ShaderChunk/lights_fragment_maps.glsl.js | 2 +- src/renderers/shaders/ShaderLib/meshphysical.glsl.js | 2 +- src/renderers/webgl/WebGLPrograms.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js index 998fa200dffedd..c0623bb132bf86 100644 --- a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js @@ -22,7 +22,7 @@ export default /* glsl */` #ifdef USE_ANISOTROPY - radiance += getIBLRadianceAnisotropy( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy ); + radiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy ); #else diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index 125778ce71d02a..4e7f0b7988a3b5 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -115,7 +115,7 @@ uniform float opacity; #endif #ifdef USE_ANISOTROPY - uniform vec2 anisotropy; + uniform float anisotropy; #ifdef USE_ANISOTROPYMAP uniform sampler2D anisotropyMap; diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 723f44f9aa6059..d7310223ed0db3 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -179,8 +179,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities vertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, - vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap, - uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.anisotropyMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap, + vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap || material.anisotropy > 0, + uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap || material.anisotropy > 0 ) && !! material.displacementMap, fog: !! fog, useFog: material.fog === true, From 2c2b219364d0161563aa3205fae0cd93d6a64554 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 12:44:05 -0800 Subject: [PATCH 15/40] fixed mappings --- .../envmap_physical_pars_fragment.glsl.js | 2 +- .../ShaderChunk/lights_physical_fragment.glsl.js | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index f0a9eb301b2464..d917de3ed8d328 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -49,7 +49,7 @@ export default /* glsl */` #ifdef ENVMAP_TYPE_CUBE_UV vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = cross( bentNormal, bitangent ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); bentNormal = normalize( mix( normal , bentNormal, anisotropy ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 555e01393d2091..33e0c092c27378 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -120,15 +120,18 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPY - vec2 anisotropyV = vec2( 1.0 ) * anisotropy; - #ifdef USE_ANISOTROPYMAP - anisotropyV *= texture2D( anisotropyMap, vUv ).rg; + vec2 anisotropyV = texture2D( anisotropyMap, vUv ).rg * anisotropy; + material.anisotropy = length( anisotropyV ); + anisotropyV /= material.anisotropy; - #endif + #else - material.anisotropy = length( anisotropyV ); + vec2 anisotropyV = vec2( 1.0 , 0.0 ); + material.anisotropy = anisotropy; + + #endif // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. material.alphaB = pow2( mix( material.roughness, 1.0, material.anisotropy ) ); From 02822a791143a0cdb7de355535468c81b220085f Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 16:35:19 -0800 Subject: [PATCH 16/40] fixed tangents --- src/renderers/WebGLRenderer.js | 2 +- src/renderers/webgl/WebGLPrograms.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 2367ba7e1e9a99..a314a667683a9f 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -1510,7 +1510,7 @@ function WebGLRenderer( parameters = {} ) { const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; + const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || !! material.anisotropy > 0 ); const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index d7310223ed0db3..618f9ac6a203be 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -176,7 +176,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities combine: material.combine, - vertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ), + vertexTangents: !! geometry.attributes.tangent && ( !! material.normalMap || !! material.anisotropy > 0 ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap || material.anisotropy > 0, From aa81f022f5caed1c3917b22dbd9a201573b4f1b9 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 16:51:57 -0800 Subject: [PATCH 17/40] changed IBL mapping --- .../shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index d917de3ed8d328..2ee63850f562fb 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -50,7 +50,7 @@ export default /* glsl */` vec3 bentNormal = cross( bitangent, viewDir ); bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( normal , bentNormal, anisotropy ) ); + bentNormal = normalize( mix( normal , bentNormal, anisotropy * ( 1.0 - roughness * roughness ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); From a8fe73032f4908124f80e79674cfad0766f92446 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 3 Mar 2023 17:08:54 -0800 Subject: [PATCH 18/40] fix typo --- src/renderers/WebGLRenderer.js | 2 +- src/renderers/webgl/WebGLPrograms.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index a314a667683a9f..e3f1cd8e1d2841 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -1510,7 +1510,7 @@ function WebGLRenderer( parameters = {} ) { const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || !! material.anisotropy > 0 ); + const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 618f9ac6a203be..62e866ab3915e1 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -176,7 +176,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities combine: material.combine, - vertexTangents: !! geometry.attributes.tangent && ( !! material.normalMap || !! material.anisotropy > 0 ), + vertexTangents: !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap || material.anisotropy > 0, From 35ba4c28a2aa08adc229c03c2941e05ac0112edb Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 7 Mar 2023 15:53:21 -0800 Subject: [PATCH 19/40] fixed direct lighting --- .../envmap_physical_pars_fragment.glsl.js | 6 +++--- .../ShaderChunk/lights_fragment_maps.glsl.js | 2 +- .../lights_physical_fragment.glsl.js | 2 +- .../lights_physical_pars_fragment.glsl.js | 20 +++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 2ee63850f562fb..1d70ab77e06133 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -44,12 +44,12 @@ export default /* glsl */` #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 tangent, const in float anisotropy ) { #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); + vec3 bentNormal = cross( tangent, viewDir ); + bentNormal = normalize( cross( bentNormal, tangent ) ); bentNormal = normalize( mix( normal , bentNormal, anisotropy * ( 1.0 - roughness * roughness ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); diff --git a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js index c0623bb132bf86..24e83203e16811 100644 --- a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js @@ -22,7 +22,7 @@ export default /* glsl */` #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy ); + radiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyT, material.anisotropy ); #else diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 33e0c092c27378..c08e7b7925363d 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -128,7 +128,7 @@ material.roughness = min( material.roughness, 1.0 ); #else - vec2 anisotropyV = vec2( 1.0 , 0.0 ); + vec2 anisotropyV = vec2( 0.0 , 1.0 ); material.anisotropy = anisotropy; #endif diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index b7a9134af33cda..665a0f71381af6 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -90,9 +90,9 @@ float D_GGX( const in float alpha, const in float dotNH ) { float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float lambdaV = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float lambdaL = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( lambdaV + lambdaL ); + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); return saturate(v); @@ -105,7 +105,7 @@ float D_GGX( const in float alpha, const in float dotNH ) { highp float v2 = dot( v, v ); float w2 = a2 / v2; - return a2 * w2 * w2 * ( 1.0 * RECIPROCAL_PI ); + return RECIPROCAL_PI * a2 * pow2 ( w2 ); } @@ -166,12 +166,12 @@ vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 norm #ifdef USE_ANISOTROPY - float dotTL = saturate( dot( material.anisotropyT, lightDir ) ); - float dotTV = saturate( dot( material.anisotropyT, viewDir ) ); - float dotTH = saturate( dot( material.anisotropyT, halfDir ) ); - float dotBL = saturate( dot( material.anisotropyB, lightDir ) ); - float dotBV = saturate( dot( material.anisotropyB, viewDir ) ); - float dotBH = saturate( dot( material.anisotropyB, halfDir ) ); + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); float V = V_GGX_SmithCorrelated_Anisotropic( alpha, material.alphaB, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); From bba8dcc8befebac096adb3930d44ad9bc82af92f Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 7 Mar 2023 16:24:09 -0800 Subject: [PATCH 20/40] linearized mappings --- .../shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js | 2 +- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 1d70ab77e06133..002f4d31c4de9f 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -50,7 +50,7 @@ export default /* glsl */` vec3 bentNormal = cross( tangent, viewDir ); bentNormal = normalize( cross( bentNormal, tangent ) ); - bentNormal = normalize( mix( normal , bentNormal, anisotropy * ( 1.0 - roughness * roughness ) ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index c08e7b7925363d..d65f8038930c83 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -134,7 +134,7 @@ material.roughness = min( material.roughness, 1.0 ); #endif // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. - material.alphaB = pow2( mix( material.roughness, 1.0, material.anisotropy ) ); + material.alphaB = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); material.anisotropyT = vTBN[ 0 ] * anisotropyV.x + vTBN[ 1 ] * anisotropyV.y; material.anisotropyB = vTBN[ 1 ] * anisotropyV.x - vTBN[ 0 ] * anisotropyV.y; From c6dd624bf4a37b621ea6d886caae0476433d5fbc Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 8 Mar 2023 12:56:10 -0800 Subject: [PATCH 21/40] added anisotropyDirection --- examples/jsm/exporters/GLTFExporter.js | 1 + examples/jsm/loaders/GLTFLoader.js | 6 ++++++ manual/resources/threejs-material-table.js | 1 + src/loaders/MaterialLoader.js | 1 + src/materials/Material.js | 1 + src/materials/MeshPhysicalMaterial.js | 2 ++ .../ShaderChunk/lights_physical_fragment.glsl.js | 14 +++++++++----- src/renderers/shaders/ShaderLib.js | 2 +- .../shaders/ShaderLib/meshphysical.glsl.js | 2 +- src/renderers/webgl/WebGLMaterials.js | 2 +- 10 files changed, 24 insertions(+), 8 deletions(-) diff --git a/examples/jsm/exporters/GLTFExporter.js b/examples/jsm/exporters/GLTFExporter.js index a44e56b776b26d..fbb7ea13226069 100644 --- a/examples/jsm/exporters/GLTFExporter.js +++ b/examples/jsm/exporters/GLTFExporter.js @@ -2842,6 +2842,7 @@ class GLTFMaterialsAnisotropyExtension { } extensionDef.anisotropyStrength = material.anisotropy; + extensionDef.anisotropyDirection = material.anisotropyAngle; materialDef.extensions = materialDef.extensions || {}; materialDef.extensions[ this.name ] = extensionDef; diff --git a/examples/jsm/loaders/GLTFLoader.js b/examples/jsm/loaders/GLTFLoader.js index c33644d1088c9c..e5b384d640a539 100644 --- a/examples/jsm/loaders/GLTFLoader.js +++ b/examples/jsm/loaders/GLTFLoader.js @@ -1240,6 +1240,12 @@ class GLTFMaterialsAnisotropyExtension { } + if ( extension.anisotropyDirection !== undefined ) { + + materialParams.anisotropyAngle = extension.anisotropyDirection; + + } + if ( extension.anisotropyTexture !== undefined ) { pending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) ); diff --git a/manual/resources/threejs-material-table.js b/manual/resources/threejs-material-table.js index b0dd21f8a97d88..b3840a5fee515c 100644 --- a/manual/resources/threejs-material-table.js +++ b/manual/resources/threejs-material-table.js @@ -165,6 +165,7 @@ const materials = [ 'attenuationDistance', 'attenuationColor', 'anisotropy', + 'anisotropyAngle', 'anisotropyMap', 'specularIntensity', 'specularIntensityMap', diff --git a/src/loaders/MaterialLoader.js b/src/loaders/MaterialLoader.js index ef42e755d8905f..d67ffd76098659 100644 --- a/src/loaders/MaterialLoader.js +++ b/src/loaders/MaterialLoader.js @@ -111,6 +111,7 @@ class MaterialLoader extends Loader { if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; + if ( json.anisotropyAngle !== undefined ) material.anisotropyAngle = json.anisotropyAngle; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; diff --git a/src/materials/Material.js b/src/materials/Material.js index 413fc2ca1432c1..5b4f124e71dd19 100644 --- a/src/materials/Material.js +++ b/src/materials/Material.js @@ -231,6 +231,7 @@ class Material extends EventDispatcher { } if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; + if ( this.anisotropyAngle !== undefined ) data.anisotropyAngle = this.anisotropyAngle; if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { diff --git a/src/materials/MeshPhysicalMaterial.js b/src/materials/MeshPhysicalMaterial.js index 9ec6d2c36c87a3..8b5114d3bcef97 100644 --- a/src/materials/MeshPhysicalMaterial.js +++ b/src/materials/MeshPhysicalMaterial.js @@ -63,6 +63,7 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; + this.anisotropyAngle = 0; this.anisotropyMap = null; this._sheen = 0.0; @@ -211,6 +212,7 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColorMap = source.specularColorMap; this.anisotropy = source.anisotropy; + this.anisotropyAngle = source.anisotropyAngle; this.anisotropyMap = source.anisotropyMap; return this; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index d65f8038930c83..56e79d4e02fcc4 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -122,17 +122,21 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP - vec2 anisotropyV = texture2D( anisotropyMap, vUv ).rg * anisotropy; - material.anisotropy = length( anisotropyV ); - anisotropyV /= material.anisotropy; + mat2 anisotropyMap; + anisotropyMap[ 0 ] = anisotropyVector; + anisotropyMap[ 1 ] = vec2( anisotropyVector.y, -1.0 * anisotropyVector.x ); + vec2 anisotropyV = anisotropyMap * texture2D( anisotropyMap, vUv ).rg; #else - vec2 anisotropyV = vec2( 0.0 , 1.0 ); - material.anisotropy = anisotropy; + vec2 anisotropyV = anisotropyVector; #endif + material.anisotropy = length( anisotropyV ); + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. material.alphaB = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); diff --git a/src/renderers/shaders/ShaderLib.js b/src/renderers/shaders/ShaderLib.js index 454da8084f0471..57b62d27bd467e 100644 --- a/src/renderers/shaders/ShaderLib.js +++ b/src/renderers/shaders/ShaderLib.js @@ -333,7 +333,7 @@ ShaderLib.physical = { specularIntensityMap: { value: null }, specularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) }, specularColorMap: { value: null }, - anisotropy: { value: 0 }, + anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, anisotropyMap: { value: null }, } ] ), diff --git a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js index 4e7f0b7988a3b5..39cc476c08da72 100644 --- a/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +++ b/src/renderers/shaders/ShaderLib/meshphysical.glsl.js @@ -115,7 +115,7 @@ uniform float opacity; #endif #ifdef USE_ANISOTROPY - uniform float anisotropy; + uniform vec2 anisotropyVector; #ifdef USE_ANISOTROPYMAP uniform sampler2D anisotropyMap; diff --git a/src/renderers/webgl/WebGLMaterials.js b/src/renderers/webgl/WebGLMaterials.js index b50a209e1f6ad1..27ed71744e743f 100644 --- a/src/renderers/webgl/WebGLMaterials.js +++ b/src/renderers/webgl/WebGLMaterials.js @@ -635,7 +635,7 @@ function WebGLMaterials( renderer, properties ) { if ( material.anisotropy > 0 ) { - uniforms.anisotropy.value = material.anisotropy; + uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyAngle ), material.anisotropy * Math.sin( material.anisotropyAngle ) ); if ( material.anisotropyMap ) { From 24e49661bb3bc7bc4dac257ccecd50fa6827b321 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 8 Mar 2023 13:12:38 -0800 Subject: [PATCH 22/40] fixed angle direction --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 56e79d4e02fcc4..ca69acc72096d8 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -122,9 +122,7 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMap; - anisotropyMap[ 0 ] = anisotropyVector; - anisotropyMap[ 1 ] = vec2( anisotropyVector.y, -1.0 * anisotropyVector.x ); + mat2 anisotropyMap = mat2( anisotropyVector.x, -1.0 * anisotropyVector.y, anisotropyVector.y, anisotropyVector.x ); vec2 anisotropyV = anisotropyMap * texture2D( anisotropyMap, vUv ).rg; #else @@ -140,8 +138,8 @@ material.roughness = min( material.roughness, 1.0 ); // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. material.alphaB = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); - material.anisotropyT = vTBN[ 0 ] * anisotropyV.x + vTBN[ 1 ] * anisotropyV.y; - material.anisotropyB = vTBN[ 1 ] * anisotropyV.x - vTBN[ 0 ] * anisotropyV.y; + material.anisotropyT = vTBN[ 0 ] * anisotropyV.x - vTBN[ 1 ] * anisotropyV.y; + material.anisotropyB = vTBN[ 1 ] * anisotropyV.x + vTBN[ 0 ] * anisotropyV.y; #endif `; From b3d8b7a589649c10710aea05b097accb569c24d9 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 8 Mar 2023 13:54:12 -0800 Subject: [PATCH 23/40] added references --- .../shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js | 1 + .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- .../shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 002f4d31c4de9f..7f44a5b85063d1 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -48,6 +48,7 @@ export default /* glsl */` #ifdef ENVMAP_TYPE_CUBE_UV + // https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy vec3 bentNormal = cross( tangent, viewDir ); bentNormal = normalize( cross( bentNormal, tangent ) ); bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index ca69acc72096d8..53ad7bd451a002 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -122,7 +122,7 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMap = mat2( anisotropyVector.x, -1.0 * anisotropyVector.y, anisotropyVector.y, anisotropyVector.x ); + mat2 anisotropyMap = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); vec2 anisotropyV = anisotropyMap * texture2D( anisotropyMap, vUv ).rg; #else diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index 665a0f71381af6..ae1b5636631151 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -86,6 +86,7 @@ float D_GGX( const in float alpha, const in float dotNH ) { } +// https://google.github.io/filament/Filament.md.html#materialsystem/anisotropicmodel/anisotropicspecularbrdf #ifdef USE_ANISOTROPY float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { From 785975fce2bbe0497d63548398d434acbf2cc811 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Wed, 8 Mar 2023 15:36:31 -0800 Subject: [PATCH 24/40] fix anisotropy map --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 53ad7bd451a002..6b65954f8391d1 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -123,7 +123,7 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP mat2 anisotropyMap = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec2 anisotropyV = anisotropyMap * texture2D( anisotropyMap, vUv ).rg; + vec2 anisotropyV = anisotropyMap * ( 2.0 * texture2D( anisotropyMap, vUv ).rg - vec2( 1.0 ) ); #else From 2019065c3a6c9f70e85cc73896bdfe436c096a07 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Thu, 9 Mar 2023 14:50:22 -0800 Subject: [PATCH 25/40] Angle -> Rotation --- examples/jsm/exporters/GLTFExporter.js | 2 +- examples/jsm/loaders/GLTFLoader.js | 2 +- manual/resources/threejs-material-table.js | 2 +- src/loaders/MaterialLoader.js | 2 +- src/materials/Material.js | 2 +- src/materials/MeshPhysicalMaterial.js | 4 ++-- src/renderers/webgl/WebGLMaterials.js | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/jsm/exporters/GLTFExporter.js b/examples/jsm/exporters/GLTFExporter.js index fbb7ea13226069..3bae1e8b74f45d 100644 --- a/examples/jsm/exporters/GLTFExporter.js +++ b/examples/jsm/exporters/GLTFExporter.js @@ -2842,7 +2842,7 @@ class GLTFMaterialsAnisotropyExtension { } extensionDef.anisotropyStrength = material.anisotropy; - extensionDef.anisotropyDirection = material.anisotropyAngle; + extensionDef.anisotropyDirection = material.anisotropyRotation; materialDef.extensions = materialDef.extensions || {}; materialDef.extensions[ this.name ] = extensionDef; diff --git a/examples/jsm/loaders/GLTFLoader.js b/examples/jsm/loaders/GLTFLoader.js index e5b384d640a539..df6b0f8db78491 100644 --- a/examples/jsm/loaders/GLTFLoader.js +++ b/examples/jsm/loaders/GLTFLoader.js @@ -1242,7 +1242,7 @@ class GLTFMaterialsAnisotropyExtension { if ( extension.anisotropyDirection !== undefined ) { - materialParams.anisotropyAngle = extension.anisotropyDirection; + materialParams.anisotropyRotation = extension.anisotropyDirection; } diff --git a/manual/resources/threejs-material-table.js b/manual/resources/threejs-material-table.js index b3840a5fee515c..cfe5552b74ea8d 100644 --- a/manual/resources/threejs-material-table.js +++ b/manual/resources/threejs-material-table.js @@ -165,7 +165,7 @@ const materials = [ 'attenuationDistance', 'attenuationColor', 'anisotropy', - 'anisotropyAngle', + 'anisotropyRotation', 'anisotropyMap', 'specularIntensity', 'specularIntensityMap', diff --git a/src/loaders/MaterialLoader.js b/src/loaders/MaterialLoader.js index d67ffd76098659..b314c8925b2c48 100644 --- a/src/loaders/MaterialLoader.js +++ b/src/loaders/MaterialLoader.js @@ -111,7 +111,7 @@ class MaterialLoader extends Loader { if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; - if ( json.anisotropyAngle !== undefined ) material.anisotropyAngle = json.anisotropyAngle; + if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; diff --git a/src/materials/Material.js b/src/materials/Material.js index 5b4f124e71dd19..49569c156ce452 100644 --- a/src/materials/Material.js +++ b/src/materials/Material.js @@ -231,7 +231,7 @@ class Material extends EventDispatcher { } if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; - if ( this.anisotropyAngle !== undefined ) data.anisotropyAngle = this.anisotropyAngle; + if ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation; if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { diff --git a/src/materials/MeshPhysicalMaterial.js b/src/materials/MeshPhysicalMaterial.js index 8b5114d3bcef97..f30af1e39f0897 100644 --- a/src/materials/MeshPhysicalMaterial.js +++ b/src/materials/MeshPhysicalMaterial.js @@ -63,7 +63,7 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this.anisotropyAngle = 0; + this.anisotropyRotation = 0; this.anisotropyMap = null; this._sheen = 0.0; @@ -212,7 +212,7 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColorMap = source.specularColorMap; this.anisotropy = source.anisotropy; - this.anisotropyAngle = source.anisotropyAngle; + this.anisotropyRotation = source.anisotropyRotation; this.anisotropyMap = source.anisotropyMap; return this; diff --git a/src/renderers/webgl/WebGLMaterials.js b/src/renderers/webgl/WebGLMaterials.js index 27ed71744e743f..a20eaa37cf3e3e 100644 --- a/src/renderers/webgl/WebGLMaterials.js +++ b/src/renderers/webgl/WebGLMaterials.js @@ -635,7 +635,7 @@ function WebGLMaterials( renderer, properties ) { if ( material.anisotropy > 0 ) { - uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyAngle ), material.anisotropy * Math.sin( material.anisotropyAngle ) ); + uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); if ( material.anisotropyMap ) { From 287d97b8ccd3a92c0eab21674e484a89be6f59da Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 10 Mar 2023 13:37:59 -0800 Subject: [PATCH 26/40] fixed tangent sign --- .../ShaderChunk/normal_fragment_begin.glsl.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js index 3467d1bc5cbc10..360e6598db3224 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js @@ -11,6 +11,12 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + + normal *= faceDirection; + + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) #ifdef USE_TANGENT @@ -25,18 +31,13 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #ifdef DOUBLE_SIDED - vTBN = vTBN * faceDirection; + vTBN[0] *= faceDirection; + vTBN[1] *= faceDirection; #endif #endif - #ifdef DOUBLE_SIDED - - normal = normal * faceDirection; - - #endif - #endif // non perturbed normal for clearcoat among others From 6228a0210d5506a00f5bd92d6bbf11e3669d0f9a Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 20 Mar 2023 16:23:46 -0700 Subject: [PATCH 27/40] rename anisotropyMat --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 6b65954f8391d1..218bde0452bab2 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -122,8 +122,8 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMap = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec2 anisotropyV = anisotropyMap * ( 2.0 * texture2D( anisotropyMap, vUv ).rg - vec2( 1.0 ) ); + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vUv ).rg - vec2( 1.0 ) ); #else From aedce0a1428b73f02900c49bf09ab1d811853324 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 20 Mar 2023 16:37:43 -0700 Subject: [PATCH 28/40] fix 90 deg rotation --- .../ShaderChunk/envmap_physical_pars_fragment.glsl.js | 6 +++--- .../shaders/ShaderChunk/lights_fragment_maps.glsl.js | 2 +- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 4 ++-- .../ShaderChunk/lights_physical_pars_fragment.glsl.js | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js index 7f44a5b85063d1..914e4fee916e1b 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js @@ -44,13 +44,13 @@ export default /* glsl */` #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 tangent, const in float anisotropy ) { + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { #ifdef ENVMAP_TYPE_CUBE_UV // https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy - vec3 bentNormal = cross( tangent, viewDir ); - bentNormal = normalize( cross( bentNormal, tangent ) ); + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); diff --git a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js index 24e83203e16811..c0623bb132bf86 100644 --- a/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js @@ -22,7 +22,7 @@ export default /* glsl */` #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyT, material.anisotropy ); + radiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy ); #else diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 218bde0452bab2..287daa422fbabe 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -135,8 +135,8 @@ material.roughness = min( material.roughness, 1.0 ); anisotropyV /= material.anisotropy; material.anisotropy = saturate( material.anisotropy ); - // Roughness along the anisotropy tangent is the material roughness, while the bitangent roughness increases with anisotropy. - material.alphaB = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); + // Roughness along the anisotropy bitangent is the material roughness, while the tangent roughness increases with anisotropy. + material.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); material.anisotropyT = vTBN[ 0 ] * anisotropyV.x - vTBN[ 1 ] * anisotropyV.y; material.anisotropyB = vTBN[ 1 ] * anisotropyV.x + vTBN[ 0 ] * anisotropyV.y; diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js index ae1b5636631151..2a7bf454cd55c2 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js @@ -41,7 +41,7 @@ struct PhysicalMaterial { #ifdef USE_ANISOTROPY float anisotropy; - float alphaB; + float alphaT; vec3 anisotropyT; vec3 anisotropyB; #endif @@ -174,9 +174,9 @@ vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 norm float dotBV = dot( material.anisotropyB, viewDir ); float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( alpha, material.alphaB, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( alpha, material.alphaB, dotNH, dotTH, dotBH ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); #else From 288b00807e1394f9c463838814dc3766d16cc5f9 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 20 Mar 2023 16:47:50 -0700 Subject: [PATCH 29/40] update to spec --- examples/jsm/exporters/GLTFExporter.js | 2 +- examples/jsm/loaders/GLTFLoader.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/jsm/exporters/GLTFExporter.js b/examples/jsm/exporters/GLTFExporter.js index 3bae1e8b74f45d..09c9b3e4292887 100644 --- a/examples/jsm/exporters/GLTFExporter.js +++ b/examples/jsm/exporters/GLTFExporter.js @@ -2842,7 +2842,7 @@ class GLTFMaterialsAnisotropyExtension { } extensionDef.anisotropyStrength = material.anisotropy; - extensionDef.anisotropyDirection = material.anisotropyRotation; + extensionDef.anisotropyRotation = material.anisotropyRotation; materialDef.extensions = materialDef.extensions || {}; materialDef.extensions[ this.name ] = extensionDef; diff --git a/examples/jsm/loaders/GLTFLoader.js b/examples/jsm/loaders/GLTFLoader.js index df6b0f8db78491..522097ab6cd809 100644 --- a/examples/jsm/loaders/GLTFLoader.js +++ b/examples/jsm/loaders/GLTFLoader.js @@ -1240,9 +1240,9 @@ class GLTFMaterialsAnisotropyExtension { } - if ( extension.anisotropyDirection !== undefined ) { + if ( extension.anisotropyRotation !== undefined ) { - materialParams.anisotropyRotation = extension.anisotropyDirection; + materialParams.anisotropyRotation = extension.anisotropyRotation; } From cebace1d27762c007580ca3eb72ae8b071aa25eb Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 28 Mar 2023 15:13:15 -0700 Subject: [PATCH 30/40] updated alphaT mapping --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index 0ae2c7659daa1b..f07ec3d89e522f 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -136,7 +136,7 @@ material.roughness = min( material.roughness, 1.0 ); material.anisotropy = saturate( material.anisotropy ); // Roughness along the anisotropy bitangent is the material roughness, while the tangent roughness increases with anisotropy. - material.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y; From ea0c4b1bfd6e8701614bca972c57889b081fb7d1 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 28 Mar 2023 15:30:37 -0700 Subject: [PATCH 31/40] Revert "updated alphaT mapping" This reverts commit cebace1d27762c007580ca3eb72ae8b071aa25eb. --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index f07ec3d89e522f..0ae2c7659daa1b 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -136,7 +136,7 @@ material.roughness = min( material.roughness, 1.0 ); material.anisotropy = saturate( material.anisotropy ); // Roughness along the anisotropy bitangent is the material roughness, while the tangent roughness increases with anisotropy. - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y; From f3ef3cde16afe508e8067d8731acfacd7a03e9c2 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Fri, 31 Mar 2023 21:51:49 +0900 Subject: [PATCH 32/40] WebGLProgram: Added missing ANISOTROPYMAP_UV define. --- src/renderers/webgl/WebGLProgram.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index 0787fca70da377..69497205013e7c 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -469,6 +469,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', @@ -505,7 +507,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '', parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', From 498265fef6fbd1fd438495c1e1e169ae7c6cadf0 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Fri, 31 Mar 2023 21:55:56 +0900 Subject: [PATCH 33/40] Reverted builds. --- build/three.cjs | 107 +++++++------------------------------- build/three.js | 107 +++++++------------------------------- build/three.min.js | 2 +- build/three.module.js | 107 +++++++------------------------------- build/three.module.min.js | 2 +- 5 files changed, 59 insertions(+), 266 deletions(-) diff --git a/build/three.cjs b/build/three.cjs index 43e3962443a289..7933dc1eb2565c 100644 --- a/build/three.cjs +++ b/build/three.cjs @@ -8450,15 +8450,6 @@ class Material extends EventDispatcher { } - if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; - if ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation; - - if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { - - data.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid; - - } - if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; @@ -13484,7 +13475,7 @@ var lights_lambert_pars_fragment = "varying vec3 vViewPosition;\nstruct LambertM var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; -var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; +var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13494,13 +13485,13 @@ var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; -var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) );\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; +var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; -var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; +var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; -var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; +var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13532,7 +13523,7 @@ var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\tuniform float morphTar var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; -var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; +var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13542,7 +13533,7 @@ var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; -var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; +var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13596,11 +13587,11 @@ var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; -var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; +var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13654,7 +13645,7 @@ const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive; const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; -const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; +const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14373,9 +14364,7 @@ ShaderLib.physical = { specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, - anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, - anisotropyMap: { value: null }, + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } } ] ), @@ -19242,8 +19231,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19397,9 +19384,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', - parameters.anisotropy ? '#define USE_ANISOTROPY' : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -19922,14 +19906,11 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; - const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; - const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; - const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20002,9 +19983,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, - anisotropy: HAS_ANISOTROPY, - anisotropyMap: HAS_ANISOTROPYMAP, - clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20048,8 +20026,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), - anisotropyMapUv: HAS_ANISOTROPY && getChannel( material.anisotropyMap.channel ), - clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20071,7 +20047,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities // - vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP && HAS_ANISOTROPY ), + vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs2: HAS_ATTRIBUTE_UV2, @@ -20201,7 +20177,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); - array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20271,8 +20246,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities _programLayers.enable( 13 ); if ( parameters.vertexTangents ) _programLayers.enable( 14 ); - if ( parameters.anisotropy ) - _programLayers.enable( 15 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27069,18 +27042,6 @@ function WebGLMaterials( renderer, properties ) { } - if ( material.anisotropy > 0 ) { - - uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); - - if ( material.anisotropyMap ) { - - uniforms.anisotropyMap.value = material.anisotropyMap; - - } - - } - uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29014,7 +28975,7 @@ class WebGLRenderer { const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); + const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -38413,9 +38374,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.type = 'MeshPhysicalMaterial'; - this.anisotropyRotation = 0; - this.anisotropyMap = null; - this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38459,31 +38417,30 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._anisotropy = 0; + this._sheen = 0.0; this._clearcoat = 0; this._iridescence = 0; - this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get anisotropy() { + get sheen() { - return this._anisotropy; + return this._sheen; } - set anisotropy( value ) { + set sheen( value ) { - if ( this._anisotropy > 0 !== value > 0 ) { + if ( this._sheen > 0 !== value > 0 ) { this.version ++; } - this._anisotropy = value; + this._sheen = value; } @@ -38523,24 +38480,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { } - get sheen() { - - return this._sheen; - - } - - set sheen( value ) { - - if ( this._sheen > 0 !== value > 0 ) { - - this.version ++; - - } - - this._sheen = value; - - } - get transmission() { return this._transmission; @@ -38570,10 +38509,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { }; - this.anisotropy = source.anisotropy; - this.anisotropyRotation = source.anisotropyRotation; - this.anisotropyMap = source.anisotropyMap; - this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -42854,8 +42789,6 @@ class MaterialLoader extends Loader { if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); - if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; - if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43056,8 +42989,6 @@ class MaterialLoader extends Loader { if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); - if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); - if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.js b/build/three.js index 7dd85b1d07a16c..58e6e475923443 100644 --- a/build/three.js +++ b/build/three.js @@ -8455,15 +8455,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } - if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; - if ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation; - - if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { - - data.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid; - - } - if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; @@ -13489,7 +13480,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; - var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; + var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13499,13 +13490,13 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; - var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) );\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; + var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; - var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; + var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; - var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; + var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13537,7 +13528,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; - var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; + var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13547,7 +13538,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; - var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; + var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13601,11 +13592,11 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; - var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; + var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; - var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; + var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; - var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; + var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13659,7 +13650,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; - const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; + const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14378,9 +14369,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, - anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, - anisotropyMap: { value: null }, + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } } ] ), @@ -19247,8 +19236,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19402,9 +19389,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', - parameters.anisotropy ? '#define USE_ANISOTROPY' : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -19927,14 +19911,11 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; - const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; - const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; - const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20007,9 +19988,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, - anisotropy: HAS_ANISOTROPY, - anisotropyMap: HAS_ANISOTROPYMAP, - clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20053,8 +20031,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), - anisotropyMapUv: HAS_ANISOTROPY && getChannel( material.anisotropyMap.channel ), - clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20076,7 +20052,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated // - vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP && HAS_ANISOTROPY ), + vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs2: HAS_ATTRIBUTE_UV2, @@ -20206,7 +20182,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); - array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20276,8 +20251,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated _programLayers.enable( 13 ); if ( parameters.vertexTangents ) _programLayers.enable( 14 ); - if ( parameters.anisotropy ) - _programLayers.enable( 15 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27074,18 +27047,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } - if ( material.anisotropy > 0 ) { - - uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); - - if ( material.anisotropyMap ) { - - uniforms.anisotropyMap.value = material.anisotropyMap; - - } - - } - uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29019,7 +28980,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); + const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -38418,9 +38379,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated this.type = 'MeshPhysicalMaterial'; - this.anisotropyRotation = 0; - this.anisotropyMap = null; - this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38464,31 +38422,30 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._anisotropy = 0; + this._sheen = 0.0; this._clearcoat = 0; this._iridescence = 0; - this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get anisotropy() { + get sheen() { - return this._anisotropy; + return this._sheen; } - set anisotropy( value ) { + set sheen( value ) { - if ( this._anisotropy > 0 !== value > 0 ) { + if ( this._sheen > 0 !== value > 0 ) { this.version ++; } - this._anisotropy = value; + this._sheen = value; } @@ -38528,24 +38485,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } - get sheen() { - - return this._sheen; - - } - - set sheen( value ) { - - if ( this._sheen > 0 !== value > 0 ) { - - this.version ++; - - } - - this._sheen = value; - - } - get transmission() { return this._transmission; @@ -38575,10 +38514,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated }; - this.anisotropy = source.anisotropy; - this.anisotropyRotation = source.anisotropyRotation; - this.anisotropyMap = source.anisotropyMap; - this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -42859,8 +42794,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); - if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; - if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43061,8 +42994,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); - if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); - if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.min.js b/build/three.min.js index 93a065e37ba0ce..76ad47d97fcd02 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -4,4 +4,4 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="151",n=0,i=1,r=2,s=1,a=2,o=3,l=0,c=1,h=2,u=0,d=1,p=2,m=3,f=4,g=5,v=100,y=101,_=102,x=103,M=104,S=200,b=201,w=202,T=203,A=204,E=205,C=206,L=207,P=208,R=209,I=210,D=0,U=1,N=2,O=3,z=4,B=5,F=6,k=7,G=0,V=1,H=2,W=0,j=1,q=2,X=3,Y=4,Z=5,J=300,K=301,$=302,Q=303,tt=304,et=306,nt=1e3,it=1001,rt=1002,st=1003,at=1004,ot=1005,lt=1006,ct=1007,ht=1008,ut=1009,dt=1010,pt=1011,mt=1012,ft=1013,gt=1014,vt=1015,yt=1016,_t=1017,xt=1018,Mt=1020,St=1021,bt=1023,wt=1024,Tt=1025,At=1026,Et=1027,Ct=1028,Lt=1029,Pt=1030,Rt=1031,It=1033,Dt=33776,Ut=33777,Nt=33778,Ot=33779,zt=35840,Bt=35841,Ft=35842,kt=35843,Gt=36196,Vt=37492,Ht=37496,Wt=37808,jt=37809,qt=37810,Xt=37811,Yt=37812,Zt=37813,Jt=37814,Kt=37815,$t=37816,Qt=37817,te=37818,ee=37819,ne=37820,ie=37821,re=36492,se=36283,ae=36284,oe=36285,le=36286,ce=2300,he=2301,ue=2302,de=2400,pe=2401,me=2402,fe=2500,ge=2501,ve=3e3,ye=3001,_e=3201,xe=0,Me=1,Se="srgb",be="srgb-linear",we="display-p3",Te=7680,Ae=35044,Ee="300 es",Ce=1035;class Le{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+Pe[t>>16&255]+Pe[t>>24&255]+"-"+Pe[255&e]+Pe[e>>8&255]+"-"+Pe[e>>16&15|64]+Pe[e>>24&255]+"-"+Pe[63&n|128]+Pe[n>>8&255]+"-"+Pe[n>>16&255]+Pe[n>>24&255]+Pe[255&i]+Pe[i>>8&255]+Pe[i>>16&255]+Pe[i>>24&255]).toLowerCase()}function Ne(t,e,n){return Math.max(e,Math.min(n,t))}function Oe(t,e){return(t%e+e)%e}function ze(t,e,n){return(1-n)*t+n*e}function Be(t){return 0==(t&t-1)&&0!==t}function Fe(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ke(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Ge(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ve(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const He={DEG2RAD:Ie,RAD2DEG:De,generateUUID:Ue,clamp:Ne,euclideanModulo:Oe,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:ze,damp:function(t,e,n,i){return ze(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Oe(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(Re=t);let e=Re+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*Ie},radToDeg:function(t){return t*De},isPowerOfTwo:Be,ceilPowerOfTwo:Fe,floorPowerOfTwo:ke,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ve,denormalize:Ge};class We{constructor(t=0,e=0){We.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ne(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class je{constructor(){je.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],_=i[7],x=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*x,r[3]=s*f+a*y+o*M,r[6]=s*g+a*_+o*S,r[1]=l*m+c*v+h*x,r[4]=l*f+c*y+h*M,r[7]=l*g+c*_+h*S,r[2]=u*m+d*v+p*x,r[5]=u*f+d*y+p*M,r[8]=u*g+d*_+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(qe.makeScale(t,e)),this}rotate(t){return this.premultiply(qe.makeRotation(-t)),this}translate(t,e){return this.premultiply(qe.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const qe=new je;function Xe(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Ye={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Ze(t,e){return new Ye[t](e)}function Je(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Ke(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function $e(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Qe=(new je).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),tn=(new je).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const en={[be]:t=>t,[Se]:t=>t.convertSRGBToLinear(),[we]:function(t){return t.convertSRGBToLinear().applyMatrix3(tn)}},nn={[be]:t=>t,[Se]:t=>t.convertLinearToSRGB(),[we]:function(t){return t.applyMatrix3(Qe).convertLinearToSRGB()}},rn={enabled:!1,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return be},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=en[e],r=nn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let sn;class an{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===sn&&(sn=Je("canvas")),sn.width=t.width,sn.height=t.height;const n=sn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=sn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Je("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==J)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case nt:t.x=t.x-Math.floor(t.x);break;case it:t.x=t.x<0?0:1;break;case rt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case nt:t.y=t.y-Math.floor(t.y);break;case it:t.y=t.y<0?0:1;break;case rt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}hn.DEFAULT_IMAGE=null,hn.DEFAULT_MAPPING=J,hn.DEFAULT_ANISOTROPY=1;class un{constructor(t=0,e=0,n=0,i=1){un.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Ne(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class gn{constructor(t=0,e=0,n=0){gn.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(yn.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(yn.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return vn.copy(this).projectOnVector(t),this.sub(vn)}reflect(t){return this.sub(vn.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ne(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const vn=new gn,yn=new fn;class _n{constructor(t=new gn(1/0,1/0,1/0),e=new gn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Mn),Mn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ln),Pn.subVectors(this.max,Ln),bn.subVectors(t.a,Ln),wn.subVectors(t.b,Ln),Tn.subVectors(t.c,Ln),An.subVectors(wn,bn),En.subVectors(Tn,wn),Cn.subVectors(bn,Tn);let e=[0,-An.z,An.y,0,-En.z,En.y,0,-Cn.z,Cn.y,An.z,0,-An.x,En.z,0,-En.x,Cn.z,0,-Cn.x,-An.y,An.x,0,-En.y,En.x,0,-Cn.y,Cn.x,0];return!!Dn(e,bn,wn,Tn,Pn)&&(e=[1,0,0,0,1,0,0,0,1],!!Dn(e,bn,wn,Tn,Pn)&&(Rn.crossVectors(An,En),e=[Rn.x,Rn.y,Rn.z],Dn(e,bn,wn,Tn,Pn)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Mn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Mn).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(xn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),xn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),xn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),xn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),xn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),xn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),xn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),xn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(xn)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const xn=[new gn,new gn,new gn,new gn,new gn,new gn,new gn,new gn],Mn=new gn,Sn=new _n,bn=new gn,wn=new gn,Tn=new gn,An=new gn,En=new gn,Cn=new gn,Ln=new gn,Pn=new gn,Rn=new gn,In=new gn;function Dn(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){In.fromArray(t,s);const a=r.x*Math.abs(In.x)+r.y*Math.abs(In.y)+r.z*Math.abs(In.z),o=e.dot(In),l=n.dot(In),c=i.dot(In);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Un=new _n,Nn=new gn,On=new gn;class zn{constructor(t=new gn,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Un.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Nn.subVectors(t,this.center);const e=Nn.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(Nn,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(On.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Nn.copy(t.center).add(On)),this.expandByPoint(Nn.copy(t.center).sub(On))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Bn=new gn,Fn=new gn,kn=new gn,Gn=new gn,Vn=new gn,Hn=new gn,Wn=new gn;class jn{constructor(t=new gn,e=new gn(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Bn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Bn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bn.copy(this.origin).addScaledVector(this.direction,e),Bn.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Fn.copy(t).add(e).multiplyScalar(.5),kn.copy(e).sub(t).normalize(),Gn.copy(this.origin).sub(Fn);const r=.5*t.distanceTo(e),s=-this.direction.dot(kn),a=Gn.dot(this.direction),o=-Gn.dot(kn),l=Gn.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Fn).addScaledVector(kn,u),d}intersectSphere(t,e){Bn.subVectors(t.center,this.origin);const n=Bn.dot(this.direction),i=Bn.dot(Bn)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Bn)}intersectTriangle(t,e,n,i,r){Vn.subVectors(e,t),Hn.subVectors(n,t),Wn.crossVectors(Vn,Hn);let s,a=this.direction.dot(Wn);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Gn.subVectors(this.origin,t);const o=s*this.direction.dot(Hn.crossVectors(Gn,Hn));if(o<0)return null;const l=s*this.direction.dot(Vn.cross(Gn));if(l<0)return null;if(o+l>a)return null;const c=-s*Gn.dot(Wn);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class qn{constructor(){qn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new qn).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Xn.setFromMatrixColumn(t,0).length(),r=1/Xn.setFromMatrixColumn(t,1).length(),s=1/Xn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Zn,t,Jn)}lookAt(t,e,n){const i=this.elements;return Qn.subVectors(t,e),0===Qn.lengthSq()&&(Qn.z=1),Qn.normalize(),Kn.crossVectors(n,Qn),0===Kn.lengthSq()&&(1===Math.abs(n.z)?Qn.x+=1e-4:Qn.z+=1e-4,Qn.normalize(),Kn.crossVectors(n,Qn)),Kn.normalize(),$n.crossVectors(Qn,Kn),i[0]=Kn.x,i[4]=$n.x,i[8]=Qn.x,i[1]=Kn.y,i[5]=$n.y,i[9]=Qn.y,i[2]=Kn.z,i[6]=$n.z,i[10]=Qn.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],_=n[11],x=n[15],M=i[0],S=i[4],b=i[8],w=i[12],T=i[1],A=i[5],E=i[9],C=i[13],L=i[2],P=i[6],R=i[10],I=i[14],D=i[3],U=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*L+l*D,r[4]=s*S+a*A+o*P+l*U,r[8]=s*b+a*E+o*R+l*N,r[12]=s*w+a*C+o*I+l*O,r[1]=c*M+h*T+u*L+d*D,r[5]=c*S+h*A+u*P+d*U,r[9]=c*b+h*E+u*R+d*N,r[13]=c*w+h*C+u*I+d*O,r[2]=p*M+m*T+f*L+g*D,r[6]=p*S+m*A+f*P+g*U,r[10]=p*b+m*E+f*R+g*N,r[14]=p*w+m*C+f*I+g*O,r[3]=v*M+y*T+_*L+x*D,r[7]=v*S+y*A+_*P+x*U,r[11]=v*b+y*E+_*R+x*N,r[15]=v*w+y*C+_*I+x*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,_=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,x=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*y+i*_+r*x;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=y*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=_*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=x*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,_=o*h,x=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*x,i[1]=(d+_)*x,i[2]=(p-y)*x,i[3]=0,i[4]=(d-_)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+y)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Xn.set(i[0],i[1],i[2]).length();const s=Xn.set(i[4],i[5],i[6]).length(),a=Xn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Yn.copy(this);const o=1/r,l=1/s,c=1/a;return Yn.elements[0]*=o,Yn.elements[1]*=o,Yn.elements[2]*=o,Yn.elements[4]*=l,Yn.elements[5]*=l,Yn.elements[6]*=l,Yn.elements[8]*=c,Yn.elements[9]*=c,Yn.elements[10]*=c,e.setFromRotationMatrix(Yn),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Xn=new gn,Yn=new qn,Zn=new gn(0,0,0),Jn=new gn(1,1,1),Kn=new gn,$n=new gn,Qn=new gn,ti=new qn,ei=new fn;class ni{constructor(t=0,e=0,n=0,i=ni.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(Ne(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Ne(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(Ne(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-Ne(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Ne(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Ne(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return ti.makeRotationFromQuaternion(t),this.setFromRotationMatrix(ti,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return ei.setFromEuler(this),this.setFromQuaternion(ei,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ni.DEFAULT_ORDER="XYZ";class ii{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ci,t,hi),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ci,ui,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){yi.subVectors(i,e),_i.subVectors(n,e),xi.subVectors(t,e);const s=yi.dot(yi),a=yi.dot(_i),o=yi.dot(xi),l=_i.dot(_i),c=_i.dot(xi),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Mi),Mi.x>=0&&Mi.y>=0&&Mi.x+Mi.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===Ci&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ci=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Mi),o.setScalar(0),o.addScaledVector(r,Mi.x),o.addScaledVector(s,Mi.y),o.addScaledVector(a,Mi.z),o}static isFrontFacing(t,e,n,i){return yi.subVectors(n,e),_i.subVectors(t,e),yi.cross(_i).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return yi.subVectors(this.c,this.b),_i.subVectors(this.a,this.b),.5*yi.cross(_i).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Li.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Li.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Ci&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ci=!0),Li.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Li.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Li.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Li.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Si.subVectors(i,n),bi.subVectors(r,n),Ti.subVectors(t,n);const o=Si.dot(Ti),l=bi.dot(Ti);if(o<=0&&l<=0)return e.copy(n);Ai.subVectors(t,i);const c=Si.dot(Ai),h=bi.dot(Ai);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Si,s);Ei.subVectors(t,r);const d=Si.dot(Ei),p=bi.dot(Ei);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(bi,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return wi.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(wi,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Si,s).addScaledVector(bi,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Pi=0;class Ri extends Le{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Pi++}),this.uuid=Ue(),this.name="",this.type="Material",this.blending=d,this.side=l,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=A,this.blendDst=E,this.blendEquation=v,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=O,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Te,this.stencilZFail=Te,this.stencilZPass=Te,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==d&&(n.blending=this.blending),this.side!==l&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Ii={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Di={h:0,s:0,l:0},Ui={h:0,s:0,l:0};function Ni(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Oi{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Se){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,rn.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=rn.workingColorSpace){return this.r=t,this.g=e,this.b=n,rn.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=rn.workingColorSpace){if(t=Oe(t,1),e=Ne(e,0,1),n=Ne(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Ni(r,i,t+1/3),this.g=Ni(r,i,t),this.b=Ni(r,i,t-1/3)}return rn.toWorkingColorSpace(this,i),this}setStyle(t,e=Se){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,rn.toWorkingColorSpace(this,e),n(r[4]),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,rn.toWorkingColorSpace(this,e),n(r[4]),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const t=parseFloat(r[1])/360,i=parseFloat(r[2])/100,s=parseFloat(r[3])/100;return n(r[4]),this.setHSL(t,i,s,e)}break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Se){const n=Ii[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ke(t.r),this.g=Ke(t.g),this.b=Ke(t.b),this}copyLinearToSRGB(t){return this.r=$e(t.r),this.g=$e(t.g),this.b=$e(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Se){return rn.fromWorkingColorSpace(zi.copy(this),t),Ne(255*zi.r,0,255)<<16^Ne(255*zi.g,0,255)<<8^Ne(255*zi.b,0,255)<<0}getHexString(t=Se){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=rn.workingColorSpace){rn.fromWorkingColorSpace(zi.copy(this),e);const n=zi.r,i=zi.g,r=zi.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Gi(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Ne(t,-65504,65504),Fi.floatView[0]=t;const e=Fi.uint32View[0],n=e>>23&511;return Fi.baseTable[n]+((8388607&e)>>Fi.shiftTable[n])}function Vi(t){const e=t>>10;return Fi.uint32View[0]=Fi.mantissaTable[Fi.offsetTable[e]+(1023&t)]+Fi.exponentTable[e],Fi.floatView[0]}const Hi={toHalfFloat:Gi,fromHalfFloat:Vi},Wi=new gn,ji=new We;class qi{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=Ae,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}if(rr.copy(r).invert(),sr.copy(t.ray).applyMatrix4(rr),null!==n.boundingBox&&!1===sr.intersectsBox(n.boundingBox))return;let s;const a=n.index,o=n.attributes.position,l=n.attributes.uv,c=n.attributes.uv2,h=n.attributes.normal,u=n.groups,d=n.drawRange;if(null!==a)if(Array.isArray(i))for(let n=0,r=u.length;nn.far?null:{distance:u,point:xr.clone(),object:t}}(t,e,n,i,lr,cr,hr,_r);if(d){r&&(pr.fromBufferAttribute(r,o),mr.fromBufferAttribute(r,h),fr.fromBufferAttribute(r,u),d.uv=Li.getInterpolation(_r,lr,cr,hr,pr,mr,fr,new We)),s&&(pr.fromBufferAttribute(s,o),mr.fromBufferAttribute(s,h),fr.fromBufferAttribute(s,u),d.uv2=Li.getInterpolation(_r,lr,cr,hr,pr,mr,fr,new We)),a&&(gr.fromBufferAttribute(a,o),vr.fromBufferAttribute(a,h),yr.fromBufferAttribute(a,u),d.normal=Li.getInterpolation(_r,lr,cr,hr,gr,vr,yr,new gn),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const t={a:o,b:h,c:u,normal:new gn,materialIndex:0};Li.getNormal(lr,cr,hr,t.normal),d.face=t}return d}class br extends ir{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,_=p/g,x=s/2,M=p/2,S=m/2,b=f+1,w=g+1;let T=0,A=0;const E=new gn;for(let s=0;s0?1:-1,c.push(E.x,E.y,E.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Lr extends vi{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qn,this.projectionMatrix=new qn,this.projectionMatrixInverse=new qn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Pr extends Lr{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*De*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Ie*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*De*Math.atan(Math.tan(.5*Ie*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Ie*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Rr=-90;class Ir extends vi{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Pr(Rr,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Pr(Rr,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Pr(Rr,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Pr(Rr,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Pr(Rr,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Pr(Rr,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=W,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Dr extends hn{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:K,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ur extends dn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Dr(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:lt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new br(5,5,5),r=new Cr({name:"CubemapFromEquirect",uniforms:wr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:c,blending:u});r.uniforms.tEquirect.value=e;const s=new Mr(i,r),a=e.minFilter;e.minFilter===ht&&(e.minFilter=lt);return new Ir(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Nr=new gn,Or=new gn,zr=new je;class Br{constructor(t=new gn(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Nr.subVectors(n,e).cross(Or.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Nr),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||zr.getNormalMatrix(t),i=this.coplanarPoint(Nr).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Fr=new zn,kr=new gn;class Gr{constructor(t=new Br,e=new Br,n=new Br,i=new Br,r=new Br,s=new Br){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Fr.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Fr.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Fr)}intersectsSprite(t){return Fr.center.set(0,0,0),Fr.radius=.7071067811865476,Fr.applyMatrix4(t.matrixWorld),this.intersectsSphere(Fr)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,kr.y=i.normal.y>0?t.max.y:t.min.y,kr.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(kr)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Vr(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Hr(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) );\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},qr={common:{diffuse:{value:new Oi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new je},alphaMap:{value:null},alphaMapTransform:{value:new je},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new je}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new je}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new je}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new je},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new je},normalScale:{value:new We(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new je},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new je}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new je}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new je}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Oi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Oi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new je}},sprite:{diffuse:{value:new Oi(16777215)},opacity:{value:1},center:{value:new We(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new je},alphaMap:{value:null},alphaTest:{value:0}}},Xr={basic:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.fog]),vertexShader:jr.meshbasic_vert,fragmentShader:jr.meshbasic_frag},lambert:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)}}]),vertexShader:jr.meshlambert_vert,fragmentShader:jr.meshlambert_frag},phong:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)},specular:{value:new Oi(1118481)},shininess:{value:30}}]),vertexShader:jr.meshphong_vert,fragmentShader:jr.meshphong_frag},standard:{uniforms:Tr([qr.common,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.roughnessmap,qr.metalnessmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:jr.meshphysical_vert,fragmentShader:jr.meshphysical_frag},toon:{uniforms:Tr([qr.common,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.gradientmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)}}]),vertexShader:jr.meshtoon_vert,fragmentShader:jr.meshtoon_frag},matcap:{uniforms:Tr([qr.common,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,{matcap:{value:null}}]),vertexShader:jr.meshmatcap_vert,fragmentShader:jr.meshmatcap_frag},points:{uniforms:Tr([qr.points,qr.fog]),vertexShader:jr.points_vert,fragmentShader:jr.points_frag},dashed:{uniforms:Tr([qr.common,qr.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:jr.linedashed_vert,fragmentShader:jr.linedashed_frag},depth:{uniforms:Tr([qr.common,qr.displacementmap]),vertexShader:jr.depth_vert,fragmentShader:jr.depth_frag},normal:{uniforms:Tr([qr.common,qr.bumpmap,qr.normalmap,qr.displacementmap,{opacity:{value:1}}]),vertexShader:jr.meshnormal_vert,fragmentShader:jr.meshnormal_frag},sprite:{uniforms:Tr([qr.sprite,qr.fog]),vertexShader:jr.sprite_vert,fragmentShader:jr.sprite_frag},background:{uniforms:{uvTransform:{value:new je},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:jr.background_vert,fragmentShader:jr.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:jr.backgroundCube_vert,fragmentShader:jr.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:jr.cube_vert,fragmentShader:jr.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:jr.equirect_vert,fragmentShader:jr.equirect_frag},distanceRGBA:{uniforms:Tr([qr.common,qr.displacementmap,{referencePosition:{value:new gn},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:jr.distanceRGBA_vert,fragmentShader:jr.distanceRGBA_frag},shadow:{uniforms:Tr([qr.lights,qr.fog,{color:{value:new Oi(0)},opacity:{value:1}}]),vertexShader:jr.shadow_vert,fragmentShader:jr.shadow_frag}};Xr.physical={uniforms:Tr([Xr.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new je},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new je},clearcoatNormalScale:{value:new We(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new je},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new je},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new je},sheen:{value:0},sheenColor:{value:new Oi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new je},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new je},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new je},transmissionSamplerSize:{value:new We},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new je},attenuationDistance:{value:0},attenuationColor:{value:new Oi(0)},specularColor:{value:new Oi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new je},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new je},anisotropyVector:{value:new We},anisotropyMap:{value:null}}]),vertexShader:jr.meshphysical_vert,fragmentShader:jr.meshphysical_frag};const Yr={r:0,b:0,g:0};function Zr(t,e,n,i,r,s,a){const o=new Oi(0);let h,u,d=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(Yr,Ar(t)),i.buffers.color.setClear(Yr.r,Yr.g,Yr.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),d=e,g(o,d)},getClearAlpha:function(){return d},setClearAlpha:function(t){d=t,g(o,d)},render:function(i,s){let a=!1,v=!0===s.isScene?s.background:null;if(v&&v.isTexture){v=(s.backgroundBlurriness>0?n:e).get(v)}const y=t.xr,_=y.getSession&&y.getSession();_&&"additive"===_.environmentBlendMode&&(v=null),null===v?g(o,d):v&&v.isColor&&(g(v,1),a=!0),(t.autoClear||a)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),v&&(v.isCubeTexture||v.mapping===et)?(void 0===u&&(u=new Mr(new br(1,1,1),new Cr({name:"BackgroundCubeMaterial",uniforms:wr(Xr.backgroundCube.uniforms),vertexShader:Xr.backgroundCube.vertexShader,fragmentShader:Xr.backgroundCube.fragmentShader,side:c,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(u)),u.material.uniforms.envMap.value=v,u.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,u.material.uniforms.backgroundBlurriness.value=s.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,u.material.toneMapped=v.encoding!==ye,p===v&&m===v.version&&f===t.toneMapping||(u.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),u.layers.enableAll(),i.unshift(u,u.geometry,u.material,0,0,null)):v&&v.isTexture&&(void 0===h&&(h=new Mr(new Wr(2,2),new Cr({name:"BackgroundMaterial",uniforms:wr(Xr.background.uniforms),vertexShader:Xr.background.vertexShader,fragmentShader:Xr.background.fragmentShader,side:l,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(h)),h.material.uniforms.t2D.value=v,h.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,h.material.toneMapped=v.encoding!==ye,!0===v.matrixAutoUpdate&&v.updateMatrix(),h.material.uniforms.uvTransform.value.copy(v.matrix),p===v&&m===v.version&&f===t.toneMapping||(h.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),h.layers.enableAll(),i.unshift(h,h.geometry,h.material,0,0,null))}}}function Jr(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,_,d,x),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,_,d,x)}else{const t=!0===l.wireframe;c.geometry===_.id&&c.program===d.id&&c.wireframe===t||(c.geometry=_.id,c.program=d.id,c.wireframe=t,M=!0)}null!==x&&n.update(x,34963),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,_=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:_,floatVertexTextures:y&&_,maxSamples:s?t.getParameter(36183):0}}function Qr(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Br,o=new je,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function ts(t){let e=new WeakMap;function n(t,e){return e===Q?t.mapping=K:e===tt&&(t.mapping=$),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===Q||s===tt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new Ur(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class es extends Lr{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const ns=4,is=[.125,.215,.35,.446,.526,.582],rs=20,ss=new es,as=new Oi;let os=null;const ls=(1+Math.sqrt(5))/2,cs=1/ls,hs=[new gn(1,1,1),new gn(-1,1,1),new gn(1,1,-1),new gn(-1,1,-1),new gn(0,ls,cs),new gn(0,ls,-cs),new gn(cs,0,ls),new gn(-cs,0,ls),new gn(ls,cs,0),new gn(-ls,cs,0)];class us{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){os=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=fs(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ms(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-ns?o=is[a-t+ns-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),y=new Float32Array(f*p*d),_=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),y.set(u,f*p*t);const r=[t,t,t,t,t,t];_.set(r,g*p*t)}const x=new ir;x.setAttribute("position",new qi(v,m)),x.setAttribute("uv",new qi(y,f)),x.setAttribute("faceIndex",new qi(_,g)),e.push(x),r>ns&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(rs),r=new gn(0,1,0),s=new Cr({name:"SphericalGaussianBlur",defines:{n:rs,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Mr(this._lodPlanes[0],t);this._renderer.compile(e,ss)}_sceneToCubeUV(t,e,n,i){const r=new Pr(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,h=o.toneMapping;o.getClearColor(as),o.toneMapping=W,o.autoClear=!1;const u=new Bi({name:"PMREM.Background",side:c,depthWrite:!1,depthTest:!1}),d=new Mr(new br,u);let p=!1;const m=t.background;m?m.isColor&&(u.color.copy(m),t.background=null,p=!0):(u.color.copy(as),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ps(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(d,r),o.render(t,r)}d.geometry.dispose(),d.material.dispose(),o.toneMapping=h,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===K||t.mapping===$;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=fs()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ms());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Mr(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ps(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,ss)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;ers&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${rs}`);const f=[];let g=0;for(let t=0;tv-ns?i-v+ns:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(e),o.render(c,ss)}}function ds(t,e,n){const i=new dn(t,e,n);return i.texture.mapping=et,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ps(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ms(){return new Cr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function fs(){return new Cr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function gs(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function vs(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===Q||s===tt,o=s===K||s===$;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new us(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(T=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const A=new Float32Array(w*T*4*p),E=new pn(A,w,T,p);E.type=vt,E.needsUpdate=!0;const C=4*b;for(let P=0;P0)return t;const r=e*n;let s=Ps[r];if(void 0===s&&(s=new Float32Array(r),Ps[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Os(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Da(t,e){const n=function(t){switch(t){case ve:return["Linear","( value )"];case ye:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Ua(t,e){let n;switch(e){case j:n="Linear";break;case q:n="Reinhard";break;case X:n="OptimizedCineon";break;case Y:n="ACESFilmic";break;case Z:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Na(t){return""!==t}function Oa(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function za(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Ba=/^[ \t]*#include +<([\w\d./]+)>/gm;function Fa(t){return t.replace(Ba,ka)}function ka(t,e){const n=jr[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Fa(n)}const Ga=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Va(t){return t.replace(Ga,Ha)}function Ha(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(_+="\n"),x=[g,v].filter(Na).join("\n"),x.length>0&&(x+="\n")):(_=[Wa(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Na).join("\n"),x=[g,Wa(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==W?"#define TONE_MAPPING":"",n.toneMapping!==W?jr.tonemapping_pars_fragment:"",n.toneMapping!==W?Ua("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",jr.encodings_pars_fragment,Da("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Na).join("\n")),c=Fa(c),c=Oa(c,n),c=za(c,n),h=Fa(h),h=Oa(h,n),h=za(h,n),c=Va(c),h=Va(h),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,x=["#define varying in",n.glslVersion===Ee?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Ee?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const S=M+x+h,b=Pa(r,35633,M+_+c),w=Pa(r,35632,S);if(r.attachShader(y,b),r.attachShader(y,w),void 0!==n.index0AttributeName?r.bindAttribLocation(y,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(y).trim(),n=r.getShaderInfoLog(b).trim(),i=r.getShaderInfoLog(w).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(y,35714))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,y,b,w);else{const t=Ia(r,b,"vertex"),n=Ia(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:_},fragmentShader:{log:i,prefix:x}})}let T,A;return r.deleteShader(b),r.deleteShader(w),this.getUniforms=function(){return void 0===T&&(T=new La(r,y)),T},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,Z=s.clearcoat>0,J=s.iridescence>0,K=s.sheen>0,$=s.transmission>0,Q=Y&&!!s.anisotropyMap,tt=Z&&!!s.clearcoatMap,nt=Z&&!!s.clearcoatNormalMap,it=Z&&!!s.clearcoatRoughnessMap,rt=J&&!!s.iridescenceMap,st=J&&!!s.iridescenceThicknessMap,at=K&&!!s.sheenColorMap,ot=K&&!!s.sheenRoughnessMap,lt=!!s.specularMap,ct=!!s.specularColorMap,ht=!!s.specularIntensityMap,ut=$&&!!s.transmissionMap,dt=$&&!!s.thicknessMap,pt=!!s.gradientMap,mt=!!s.alphaMap,ft=s.alphaTest>0,gt=!!s.extensions,vt=!!S.attributes.uv2;return{isWebGL2:p,shaderID:A,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:g,instancing:N,instancingColor:N&&null!==x.instanceColor,supportsVertexTextures:f,outputEncoding:null===U?t.outputEncoding:!0===U.isXRRenderTarget?U.texture.encoding:ve,map:O,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:T,aoMap:F,lightMap:k,bumpMap:G,normalMap:V,displacementMap:f&&H,emissiveMap:j,normalMapObjectSpace:V&&s.normalMapType===Me,normalMapTangentSpace:V&&s.normalMapType===xe,decodeVideoTexture:O&&!0===s.map.isVideoTexture&&s.map.encoding===ye,metalnessMap:q,roughnessMap:X,anisotropy:Y,anisotropyMap:Q,clearcoat:Z,clearcoatMap:tt,clearcoatNormalMap:nt,clearcoatRoughnessMap:it,iridescence:J,iridescenceMap:rt,iridescenceThicknessMap:st,sheen:K,sheenColorMap:at,sheenRoughnessMap:ot,specularMap:lt,specularColorMap:ct,specularIntensityMap:ht,transmission:$,transmissionMap:ut,thicknessMap:dt,gradientMap:pt,opaque:!1===s.transparent&&s.blending===d,alphaMap:mt,alphaTest:ft,combine:s.combine,mapUv:O&&y(s.map.channel),aoMapUv:F&&y(s.aoMap.channel),lightMapUv:k&&y(s.lightMap.channel),bumpMapUv:G&&y(s.bumpMap.channel),normalMapUv:V&&y(s.normalMap.channel),displacementMapUv:H&&y(s.displacementMap.channel),emissiveMapUv:j&&y(s.emissiveMap.channel),metalnessMapUv:q&&y(s.metalnessMap.channel),roughnessMapUv:X&&y(s.roughnessMap.channel),anisotropyMapUv:Y&&y(s.anisotropyMap.channel),clearcoatMapUv:tt&&y(s.clearcoatMap.channel),clearcoatNormalMapUv:nt&&y(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:it&&y(s.clearcoatRoughnessMap.channel),iridescenceMapUv:rt&&y(s.iridescenceMap.channel),iridescenceThicknessMapUv:st&&y(s.iridescenceThicknessMap.channel),sheenColorMapUv:at&&y(s.sheenColorMap.channel),sheenRoughnessMapUv:ot&&y(s.sheenRoughnessMap.channel),specularMapUv:lt&&y(s.specularMap.channel),specularColorMapUv:ct&&y(s.specularColorMap.channel),specularIntensityMapUv:ht&&y(s.specularIntensityMap.channel),transmissionMapUv:ut&&y(s.transmissionMap.channel),thicknessMapUv:dt&&y(s.thicknessMap.channel),alphaMapUv:mt&&y(s.alphaMap.channel),vertexTangents:!!S.attributes.tangent&&V&&Y,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!S.attributes.color&&4===S.attributes.color.itemSize,vertexUvs2:vt,pointsUvs:!0===x.isPoints&&!!S.attributes.uv&&(O||mt),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:m,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==S.morphAttributes.position,morphNormals:void 0!==S.morphAttributes.normal,morphColors:void 0!==S.morphAttributes.color,morphTargetsCount:C,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:W,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===h,flipSided:s.side===c,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:gt&&!0===s.extensions.derivatives,extensionFragDepth:gt&&!0===s.extensions.fragDepth,extensionDrawBuffers:gt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:gt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:p||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:p||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:p||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUvs2&&o.enable(13);e.vertexTangents&&o.enable(14);e.anisotropy&&o.enable(15);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.decodeVideoTexture&&o.enable(17);e.opaque&&o.enable(18);e.pointsUvs&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=Xr[e];n=Er.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=u.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Ka),i.length>1&&i.sort(e||$a),r.length>1&&r.sort(e||$a)}}}function to(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Qa,t.set(e,[r])):n>=i.length?(r=new Qa,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function eo(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new gn,color:new Oi};break;case"SpotLight":n={position:new gn,direction:new gn,color:new Oi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new gn,color:new Oi,distance:0,decay:0};break;case"HemisphereLight":n={direction:new gn,skyColor:new Oi,groundColor:new Oi};break;case"RectAreaLight":n={color:new Oi,position:new gn,halfWidth:new gn,halfHeight:new gn}}return t[e.id]=n,n}}}let no=0;function io(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function ro(t,e){const n=new eo,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new We};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new We,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new gn);const s=new gn,a=new qn,o=new qn;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,y=0,_=0;s.sort(io);const x=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=qr.LTC_FLOAT_1,r.rectAreaLTC2=qr.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=qr.LTC_HALF_1,r.rectAreaLTC2=qr.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===y||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+y-_,r.spotLightMap.length=y,r.numSpotLightShadowsWithMaps=_,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=y,r.version=no++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new so(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class oo extends Ri{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class lo extends Ri{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const co="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",ho="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function uo(t,e,n){let i=new Gr;const r=new We,a=new We,d=new un,p=new oo({depthPacking:_e}),m=new lo,f={},g=n.maxTextureSize,v={[l]:c,[c]:l,[h]:h},y=new Cr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new We},radius:{value:4}},vertexShader:co,fragmentShader:ho}),_=y.clone();_.defines.HORIZONTAL_PASS=1;const x=new ir;x.setAttribute("position",new qi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Mr(x,y),S=this;function b(n,i){const s=e.update(M);y.defines.VSM_SAMPLES!==n.blurSamples&&(y.defines.VSM_SAMPLES=n.blurSamples,_.defines.VSM_SAMPLES=n.blurSamples,y.needsUpdate=!0,_.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new dn(r.x,r.y)),y.uniforms.shadow_pass.value=n.map.texture,y.uniforms.resolution.value=n.mapSize,y.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,y,M,null),_.uniforms.shadow_pass.value=n.mapPass.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,_,M,null)}function w(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?m:p,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=f[t];void 0===i&&(i={},f[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===o?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function T(n,r,s,a,l){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&l===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let o=0,c=e.length;og||r.y>g)&&(r.x>g&&(a.x=Math.floor(g/u.x),r.x=a.x*u.x,h.mapSize.x=a.x),r.y>g&&(a.y=Math.floor(g/u.y),r.y=a.y*u.y,h.mapSize.y=a.y)),null===h.map){const t=this.type!==o?{minFilter:st,magFilter:st}:{};h.map=new dn(r.x,r.y,t),h.map.texture.name=c.name+".shadowMap",h.camera.updateProjectionMatrix()}t.setRenderTarget(h.map),t.clear();const m=h.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,mt={};const ft=t.getParameter(3088),gt=t.getParameter(2978),vt=(new un).fromArray(ft),yt=(new un).fromArray(gt);function _t(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ke:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=y(s,a));const o=n?y(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function x(t){return Be(t.width)&&Be(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==st&&t.minFilter!==lt}function S(e){t.generateMipmap(e)}function b(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===ye&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function w(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==st&&t.minFilter!==lt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(t){return t===st||t===at||t===ot?9728:9729}function A(t){const e=t.target;e.removeEventListener("dispose",A),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&C(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function E(e){const n=e.target;n.removeEventListener("dispose",E),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void N(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(3553,r.__webglTexture,33984+e)}const R={[nt]:10497,[it]:33071,[rt]:33648},I={[st]:9728,[at]:9984,[ot]:9986,[lt]:9729,[ct]:9985,[ht]:9987};function D(n,s,a){if(a?(t.texParameteri(n,10242,R[s.wrapS]),t.texParameteri(n,10243,R[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,R[s.wrapR]),t.texParameteri(n,10240,I[s.magFilter]),t.texParameteri(n,10241,I[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===it&&s.wrapT===it||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,T(s.magFilter)),t.texParameteri(n,10241,T(s.minFilter)),s.minFilter!==st&&s.minFilter!==lt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===st)return;if(s.minFilter!==ot&&s.minFilter!==ht)return;if(s.type===vt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===yt&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function U(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",A));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&C(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function N(e,r,a){let l=3553;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=35866),r.isData3DTexture&&(l=32879);const c=U(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,33984+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=function(t){return!o&&(t.wrapS!==it||t.wrapT!==it||t.minFilter!==st&&t.minFilter!==lt)}(r)&&!1===x(r.image);let i=_(r.image,e,!1,h);i=G(r,i);const p=x(i)||o,m=s.convert(r.format,r.encoding);let f,g=s.convert(r.type),v=b(r.internalFormat,m,g,r.encoding,r.isVideoTexture);D(l,r,p);const y=r.mipmaps,T=o&&!0!==r.isVideoTexture,A=void 0===d.__version||!0===c,E=w(r,i,p);if(r.isDepthTexture)v=6402,o?v=r.type===vt?36012:r.type===gt?33190:r.type===Mt?35056:33189:r.type===vt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===At&&6402===v&&r.type!==mt&&r.type!==gt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=gt,g=s.convert(r.type)),r.format===Et&&6402===v&&(v=34041,r.type!==Mt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Mt,g=s.convert(r.type))),A&&(T?n.texStorage2D(3553,1,v,i.width,i.height):n.texImage2D(3553,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(y.length>0&&p){T&&A&&n.texStorage2D(3553,E,v,y[0].width,y[0].height);for(let t=0,e=y.length;t>=1,e>>=1}}else if(y.length>0&&p){T&&A&&n.texStorage2D(3553,E,v,y[0].width,y[0].height);for(let t=0,e=y.length;t=34069&&l<=34074)&&t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function z(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===vt?r=36012:e.type===gt&&(r=33190));const i=F(n);k(n)?d.renderbufferStorageMultisampleEXT(36161,i,r,n.width,n.height):t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=F(n);i&&!1===k(n)?t.renderbufferStorageMultisample(36161,r,35056,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(36161,r,35056,n.width,n.height):t.renderbufferStorage(36161,34041,n.width,n.height),t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function G(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===Ce||i!==ve&&(i===ye?!1===o?!0===e.has("EXT_sRGB")&&r===bt?(t.format=Ce,t.minFilter=lt,t.generateMipmaps=!1):n=an.sRGBToLinear(n):r===bt&&s===ut||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=L;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),L+=1,t},this.resetTextureUnits=function(){L=0},this.setTexture2D=P,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(35866,r.__webglTexture,33984+e)},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(32879,r.__webglTexture,33984+e)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=U(e,r),h=r.source;n.bindTexture(34067,e.__webglTexture,33984+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:_(r.image[t],!1,!0,c),d[t]=G(r,d[t]);const p=d[0],m=x(p)||o,f=s.convert(r.format,r.encoding),g=s.convert(r.type),v=b(r.internalFormat,f,g,r.encoding),y=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let A,E=w(r,p,m);if(D(34067,r,m),e){y&&T&&n.texStorage2D(34067,E,v,p.width,p.height);for(let t=0;t<6;t++){A=d[t].mipmaps;for(let e=0;e0&&E++,n.texStorage2D(34067,E,v,d[0].width,d[0].height));for(let t=0;t<6;t++)if(i){y?n.texSubImage2D(34069+t,0,0,0,d[t].width,d[t].height,f,g,d[t].data):n.texImage2D(34069+t,0,v,d[t].width,d[t].height,0,f,g,d[t].data);for(let e=0;e0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=16384;const l=[],c=e.stencilBuffer?33306:36096,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(yo)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new vo;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class xo extends hn{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:At)!==At&&c!==Et)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===At&&(n=gt),void 0===n&&c===Et&&(n=Mt),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:st,this.minFilter=void 0!==o?o:st,this.flipY=!1,this.generateMipmaps=!1}}class Mo extends Le{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],y=[],_=new Set,x=new Map,M=new Pr;M.layers.enable(1),M.viewport=new un;const S=new Pr;S.layers.enable(2),S.viewport=new un;const b=[M,S],w=new go;w.layers.enable(1),w.layers.enable(2);let T=null,A=null;function E(t){const e=y.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&n.dispatchEvent({type:t.type,data:t.inputSource})}function C(){i.removeEventListener("select",E),i.removeEventListener("selectstart",E),i.removeEventListener("selectend",E),i.removeEventListener("squeeze",E),i.removeEventListener("squeezestart",E),i.removeEventListener("squeezeend",E),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",L);for(let t=0;t=0&&(y[i]=null,v[i].disconnect(n))}for(let e=0;e=y.length){y.push(n),i=t;break}if(null===y[t]){y[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new _o,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new _o,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new _o,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",E),i.addEventListener("selectstart",E),i.addEventListener("selectend",E),i.addEventListener("squeeze",E),i.addEventListener("squeezestart",E),i.addEventListener("squeezeend",E),i.addEventListener("end",C),i.addEventListener("inputsourceschange",L),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:m.alpha,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new dn(d.framebufferWidth,d.framebufferHeight,{format:bt,type:ut,encoding:t.outputEncoding,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?35056:33190,n=m.stencil?Et:At,s=m.stencil?Mt:gt);const o={colorFormat:32856,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new dn(u.textureWidth,u.textureHeight,{format:bt,type:ut,depthTexture:new xo(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,encoding:t.outputEncoding,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),U.setContext(i),U.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const P=new gn,R=new gn;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;w.near=S.near=M.near=t.near,w.far=S.far=M.far=t.far,T===w.near&&A===w.far||(i.updateRenderState({depthNear:w.near,depthFar:w.far}),T=w.near,A=w.far);const e=t.parent,n=w.cameras;I(w,e);for(let t=0;te&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else _.add(t),x.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){D=t},this.dispose=function(){}}}function So(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===c&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===c&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Ar(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===c&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function bo(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(35375):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color,m=i.toneMapped?x.toneMapping:W,f=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,g=void 0!==f?f.length:0,y=K.get(i),_=v.state.lights;if(!0===F&&(!0===k||t!==A)){const e=t===A&&i.id===T;lt.setState(i,t,e)}let M=!1;i.version===y.__version?y.needsLights&&y.lightsStateVersion!==_.state.version||y.outputEncoding!==o||r.isInstancedMesh&&!1===y.instancing?M=!0:r.isInstancedMesh||!0!==y.instancing?r.isSkinnedMesh&&!1===y.skinning?M=!0:r.isSkinnedMesh||!0!==y.skinning?y.envMap!==l||!0===i.fog&&y.fog!==s?M=!0:void 0===y.numClippingPlanes||y.numClippingPlanes===lt.numPlanes&&y.numIntersection===lt.numIntersection?(y.vertexAlphas!==c||y.vertexTangents!==h||y.morphTargets!==u||y.morphNormals!==d||y.morphColors!==p||y.toneMapping!==m||!0===Y.isWebGL2&&y.morphTargetsCount!==g)&&(M=!0):M=!0:M=!0:M=!0:(M=!0,y.__version=i.version);let S=y.currentProgram;!0===M&&(S=Bt(i,e,r));let b=!1,E=!1,C=!1;const L=S.getUniforms(),P=y.uniforms;Z.useProgram(S.program)&&(b=!0,E=!0,C=!0);i.id!==T&&(T=i.id,E=!0);if(b||A!==t){if(L.setValue(Mt,"projectionMatrix",t.projectionMatrix),Y.logarithmicDepthBuffer&&L.setValue(Mt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),A!==t&&(A=t,E=!0,C=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=L.map.cameraPosition;void 0!==e&&e.setValue(Mt,H.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&L.setValue(Mt,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&L.setValue(Mt,"viewMatrix",t.matrixWorldInverse)}if(r.isSkinnedMesh){L.setOptional(Mt,r,"bindMatrix"),L.setOptional(Mt,r,"bindMatrixInverse");const t=r.skeleton;t&&(Y.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),L.setValue(Mt,"boneTexture",t.boneTexture,$),L.setValue(Mt,"boneTextureSize",t.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const D=n.morphAttributes;(void 0!==D.position||void 0!==D.normal||void 0!==D.color&&!0===Y.isWebGL2)&&pt.update(r,n,S);(E||y.receiveShadow!==r.receiveShadow)&&(y.receiveShadow=r.receiveShadow,L.setValue(Mt,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(P.envMap.value=l,P.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1);E&&(L.setValue(Mt,"toneMappingExposure",x.toneMappingExposure),y.needsLights&&(N=C,(U=P).ambientLightColor.needsUpdate=N,U.lightProbe.needsUpdate=N,U.directionalLights.needsUpdate=N,U.directionalLightShadows.needsUpdate=N,U.pointLights.needsUpdate=N,U.pointLightShadows.needsUpdate=N,U.spotLights.needsUpdate=N,U.spotLightShadows.needsUpdate=N,U.rectAreaLights.needsUpdate=N,U.hemisphereLights.needsUpdate=N),s&&!0===i.fog&&st.refreshFogUniforms(P,s),st.refreshMaterialUniforms(P,i,I,R,G),La.upload(Mt,y.uniformsList,P,$));var U,N;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(La.upload(Mt,y.uniformsList,P,$),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&L.setValue(Mt,"center",r.center);if(L.setValue(Mt,"modelViewMatrix",r.modelViewMatrix),L.setValue(Mt,"normalMatrix",r.normalMatrix),L.setValue(Mt,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e0&&function(t,e,n,i){if(null===G){const t=Y.isWebGL2;G=new dn(1024,1024,{generateMipmaps:!0,type:X.has("EXT_color_buffer_half_float")?yt:ut,minFilter:ht,samples:t&&!0===o?4:0})}const r=x.getRenderTarget();x.setRenderTarget(G),x.clear();const s=x.toneMapping;x.toneMapping=W,Ot(t,n,i),$.updateMultisampleRenderTarget(G),$.updateRenderTargetMipmap(G);let a=!1;for(let t=0,r=e.length;t0&&Ot(r,e,n),s.length>0&&Ot(s,e,n),a.length>0&&Ot(a,e,n),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1)}function Ot(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?_[_.length-1]:null,y.pop(),g=y.length>0?y[y.length-1]:null},this.getActiveCubeFace=function(){return S},this.getActiveMipmapLevel=function(){return b},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,S=e,b=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=K.get(t);void 0!==n.__useDefaultFramebuffer?(Z.bindFramebuffer(36160,null),i=!1):void 0===n.__webglFramebuffer?$.setupRenderTarget(t):n.__hasExternalTextures&&$.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=Y.isWebGL2&&t.samples>0&&!1===$.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:l,E.copy(t.viewport),C.copy(t.scissor),L=t.scissorTest}else E.copy(N).multiplyScalar(I).floor(),C.copy(O).multiplyScalar(I).floor(),L=z;if(Z.bindFramebuffer(36160,r)&&Y.drawBuffers&&i&&Z.drawBuffers(t,r),Z.viewport(E),Z.scissor(C),Z.setScissorTest(L),s){const i=K.get(t.texture);Mt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;Mt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Z.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==bt&>.convert(o)!==Mt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===yt&&(X.has("EXT_color_buffer_half_float")||Y.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===ut||gt.convert(l)===Mt.getParameter(35738)||l===vt&&(Y.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Mt.readPixels(e,n,i,r,gt.convert(o),gt.convert(l),s)}finally{const t=null!==w?K.get(w).__webglFramebuffer:null;Z.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);$.setTexture2D(e,0),Mt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Z.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=gt.convert(n.format),o=gt.convert(n.type);$.setTexture2D(n,0),Mt.pixelStorei(37440,n.flipY),Mt.pixelStorei(37441,n.premultiplyAlpha),Mt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?Mt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Mt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Mt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Mt.generateMipmap(3553),Z.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=gt.convert(i.format),c=gt.convert(i.type);let h;if(i.isData3DTexture)$.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");$.setTexture2DArray(i,0),h=35866}Mt.pixelStorei(37440,i.flipY),Mt.pixelStorei(37441,i.premultiplyAlpha),Mt.pixelStorei(3317,i.unpackAlignment);const u=Mt.getParameter(3314),d=Mt.getParameter(32878),p=Mt.getParameter(3316),m=Mt.getParameter(3315),f=Mt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Mt.pixelStorei(3314,g.width),Mt.pixelStorei(32878,g.height),Mt.pixelStorei(3316,t.min.x),Mt.pixelStorei(3315,t.min.y),Mt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Mt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Mt.pixelStorei(3314,u),Mt.pixelStorei(32878,d),Mt.pixelStorei(3316,p),Mt.pixelStorei(3315,m),Mt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&Mt.generateMipmap(h),Z.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?$.setTextureCube(t,0):t.isData3DTexture?$.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?$.setTexture2DArray(t,0):$.setTexture2D(t,0),Z.unbindTexture()},this.resetState=function(){S=0,b=0,w=null,Z.reset(),_t.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}}class Ao extends To{}Ao.prototype.isWebGL1Renderer=!0;class Eo{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Oi(t),this.density=e}clone(){return new Eo(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Co{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Oi(t),this.near=e,this.far=n}clone(){return new Co(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Lo extends vi{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Po{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=Ae,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ue()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:No.clone(),uv:Li.getInterpolation(No,Go,Vo,Ho,Wo,jo,qo,new We),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Yo(t,e,n,i,r,s){Bo.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Fo.x=s*Bo.x-r*Bo.y,Fo.y=r*Bo.x+s*Bo.y):Fo.copy(Bo),t.copy(e),t.x+=Fo.x,t.y+=Fo.y,t.applyMatrix4(ko)}const Zo=new gn,Jo=new gn;class Ko extends vi{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Zo.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Zo);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Zo.setFromMatrixPosition(t.matrixWorld),Jo.setFromMatrixPosition(this.matrixWorld);const n=Zo.distanceTo(Jo)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class zl extends hn{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Bl{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new We:new gn);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new gn,i=[],r=[],s=[],a=new gn,o=new qn;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new gn)}r[0]=new gn,s[0]=new gn;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(Ne(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(Ne(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Fl extends Bl{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new We,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Vl.subVectors(i[0],i[1]).add(i[0]),a=Vl);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Xl(a,o.x,l.x,c.x,h.x),Xl(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ac extends ir{constructor(t=[new We(0,-.5),new We(.5,0),new We(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=Ne(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new gn,u=new We,d=new gn,p=new gn,m=new gn;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Zi(h,3)),this.setAttribute("normal",new Zi(u,3)),this.setAttribute("uv",new Zi(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new cc(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class hc extends cc{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new hc(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class uc extends ir{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Zi(r,3)),this.setAttribute("normal",new Zi(r.slice(),3)),this.setAttribute("uv",new Zi(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new uc(t.vertices,t.indices,t.radius,t.details)}}class dc extends uc{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new dc(t.radius,t.detail)}}const pc=new gn,mc=new gn,fc=new gn,gc=new Li;class vc extends ir{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(Ie*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Sc(s,a,n,o,l,p,0),a};function xc(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Gc(s,t[s],t[s+1],a);return a&&Nc(a,a.next)&&(Vc(a),a=a.next),a}function Mc(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Nc(i,i.next)&&0!==Uc(i.prev,i,i.next))i=i.next;else{if(Vc(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Sc(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Pc(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?wc(t,i,r,s):bc(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Vc(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Sc(t=Tc(Mc(t),e,n),e,n,i,r,s,2):2===a&&Ac(t,e,n,i,r,s):Sc(Mc(t),e,n,i,r,s,1);break}}function bc(t){const e=t.prev,n=t,i=t.next;if(Uc(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Ic(r,o,s,l,a,c,m.x,m.y)&&Uc(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function wc(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Uc(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Pc(p,m,e,n,i),y=Pc(f,g,e,n,i);let _=t.prevZ,x=t.nextZ;for(;_&&_.z>=v&&x&&x.z<=y;){if(_.x>=p&&_.x<=f&&_.y>=m&&_.y<=g&&_!==r&&_!==a&&Ic(o,h,l,u,c,d,_.x,_.y)&&Uc(_.prev,_,_.next)>=0)return!1;if(_=_.prevZ,x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ic(o,h,l,u,c,d,x.x,x.y)&&Uc(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;_&&_.z>=v;){if(_.x>=p&&_.x<=f&&_.y>=m&&_.y<=g&&_!==r&&_!==a&&Ic(o,h,l,u,c,d,_.x,_.y)&&Uc(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;x&&x.z<=y;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ic(o,h,l,u,c,d,x.x,x.y)&&Uc(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Tc(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Nc(r,s)&&Oc(r,i,i.next,s)&&Fc(r,s)&&Fc(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Vc(i),Vc(i.next),i=t=s),i=i.next}while(i!==t);return Mc(i)}function Ac(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Dc(a,t)){let o=kc(a,t);return a=Mc(a,a.next),o=Mc(o,o.next),Sc(a,e,n,i,r,s,0),void Sc(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Ec(t,e){return t.x-e.x}function Cc(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Ic(an.x||i.x===n.x&&Lc(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=kc(n,t);return Mc(i,i.next),Mc(n,n.next)}function Lc(t,e){return Uc(t.prev,t,e.prev)<0&&Uc(e.next,t,t.next)<0}function Pc(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Rc(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Dc(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Oc(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Fc(t,e)&&Fc(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Uc(t.prev,t,e.prev)||Uc(t,e.prev,e))||Nc(t,e)&&Uc(t.prev,t,t.next)>0&&Uc(e.prev,e,e.next)>0)}function Uc(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Nc(t,e){return t.x===e.x&&t.y===e.y}function Oc(t,e,n,i){const r=Bc(Uc(t,e,n)),s=Bc(Uc(t,e,i)),a=Bc(Uc(n,i,t)),o=Bc(Uc(n,i,e));return r!==s&&a!==o||(!(0!==r||!zc(t,n,e))||(!(0!==s||!zc(t,i,e))||(!(0!==a||!zc(n,t,i))||!(0!==o||!zc(n,e,i)))))}function zc(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Bc(t){return t>0?1:t<0?-1:0}function Fc(t,e){return Uc(t.prev,t,t.next)<0?Uc(t,e,t.next)>=0&&Uc(t,t.prev,e)>=0:Uc(t,e,t.prev)<0||Uc(t,t.next,e)<0}function kc(t,e){const n=new Hc(t.i,t.x,t.y),i=new Hc(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Gc(t,e,n,i){const r=new Hc(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Vc(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Hc(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wc{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function qc(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new We(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new We(i/s,r/s)}const R=[];for(let t=0,e=A.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=A.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class uh extends Ri{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Oi(16777215),this.specular=new Oi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=G,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class dh extends Ri{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Oi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class ph extends Ri{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class mh extends Ri{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Oi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=G,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class fh extends Ri{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Oi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class gh extends _l{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function vh(t,e,n){return _h(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function yh(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function _h(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function xh(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Mh(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Sh(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const bh={arraySlice:vh,convertArray:yh,isTypedArray:_h,getKeyframeOrder:xh,sortedArray:Mh,flattenJSON:Sh,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=vh(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=vh(t.resultBuffer,e,n)}if("quaternion"===r){(new fn).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=vh(n,r,s),this.values=vh(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&_h(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=vh(this.times),e=vh(this.values),n=this.getValueSize(),i=this.getInterpolation()===ue,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=vh(t,0,s),this.values=vh(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=vh(this.times,0),e=vh(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Ch.prototype.TimeBufferType=Float32Array,Ch.prototype.ValueBufferType=Float32Array,Ch.prototype.DefaultInterpolation=he;class Lh extends Ch{}Lh.prototype.ValueTypeName="bool",Lh.prototype.ValueBufferType=Array,Lh.prototype.DefaultInterpolation=ce,Lh.prototype.InterpolantFactoryMethodLinear=void 0,Lh.prototype.InterpolantFactoryMethodSmooth=void 0;class Ph extends Ch{}Ph.prototype.ValueTypeName="color";class Rh extends Ch{}Rh.prototype.ValueTypeName="number";class Ih extends wh{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)fn.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Dh extends Ch{InterpolantFactoryMethodLinear(t){return new Ih(this.times,this.values,this.getValueSize(),t)}}Dh.prototype.ValueTypeName="quaternion",Dh.prototype.DefaultInterpolation=he,Dh.prototype.InterpolantFactoryMethodSmooth=void 0;class Uh extends Ch{}Uh.prototype.ValueTypeName="string",Uh.prototype.ValueBufferType=Array,Uh.prototype.DefaultInterpolation=ce,Uh.prototype.InterpolantFactoryMethodLinear=void 0,Uh.prototype.InterpolantFactoryMethodSmooth=void 0;class Nh extends Ch{}Nh.prototype.ValueTypeName="vector";class Oh{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Ue(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(zh(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Ch.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Sh(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Vh[t])return void Vh[t].push({onLoad:e,onProgress:n,onError:i});Vh[t]=[],Vh[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Vh[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Bh.add(t,e);const n=Vh[t];delete Vh[t];for(let t=0,i=n.length;t{const n=Vh[t];if(void 0===n)throw this.manager.itemError(t),e;delete Vh[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class jh extends Gh{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Bh.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=Je("img");function o(){c(),Bh.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class qh extends vi{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Oi(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}class Xh extends qh{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Oi(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const Yh=new qn,Zh=new gn,Jh=new gn;class Kh{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new We(512,512),this.map=null,this.mapPass=null,this.matrix=new qn,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Gr,this._frameExtents=new We(1,1),this._viewportCount=1,this._viewports=[new un(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Zh.setFromMatrixPosition(t.matrixWorld),e.position.copy(Zh),Jh.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Jh),e.updateMatrixWorld(),Yh.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Yh),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(Yh)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class $h extends Kh{constructor(){super(new Pr(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*De*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class Qh extends qh{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.target=new vi,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new $h}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const tu=new qn,eu=new gn,nu=new gn;class iu extends Kh{constructor(){super(new Pr(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new We(4,2),this._viewportCount=6,this._viewports=[new un(2,1,1,1),new un(0,1,1,1),new un(3,1,1,1),new un(1,1,1,1),new un(3,0,1,1),new un(1,0,1,1)],this._cubeDirections=[new gn(1,0,0),new gn(-1,0,0),new gn(0,0,1),new gn(0,0,-1),new gn(0,1,0),new gn(0,-1,0)],this._cubeUps=[new gn(0,1,0),new gn(0,1,0),new gn(0,1,0),new gn(0,1,0),new gn(0,0,1),new gn(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),eu.setFromMatrixPosition(t.matrixWorld),n.position.copy(eu),nu.copy(n.position),nu.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(nu),n.updateMatrixWorld(),i.makeTranslation(-eu.x,-eu.y,-eu.z),tu.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(tu)}}class ru extends qh{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new iu}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class su extends Kh{constructor(){super(new es(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class au extends qh{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.target=new vi,this.shadow=new su}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class ou extends qh{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class lu extends qh{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class cu{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new gn)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class hu extends qh{constructor(t=new cu,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class uu extends Gh{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new Wh(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=uu.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Oi).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.anisotropy&&(i.anisotropy=t.anisotropy),void 0!==t.anisotropyRotation&&(i.anisotropyRotation=t.anisotropyRotation),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Oi).setHex(r.value);break;case"v2":i.uniforms[e].value=(new We).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new gn).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new un).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new je).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new qn).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new We).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new We).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:oh,SpriteMaterial:Do,RawShaderMaterial:lh,ShaderMaterial:Cr,PointsMaterial:Pl,MeshPhysicalMaterial:hh,MeshStandardMaterial:ch,MeshPhongMaterial:uh,MeshToonMaterial:dh,MeshNormalMaterial:ph,MeshLambertMaterial:mh,MeshDepthMaterial:oo,MeshDistanceMaterial:lo,MeshBasicMaterial:Bi,MeshMatcapMaterial:fh,LineDashedMaterial:gh,LineBasicMaterial:_l,Material:Ri}[t]}}class du{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){fn.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;fn.multiplyQuaternionsFlat(t,s,t,e,t,n),fn.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Nu="\\[\\]\\.:\\/",Ou=new RegExp("["+Nu+"]","g"),zu="[^"+Nu+"]",Bu="[^"+Nu.replace("\\.","")+"]",Fu=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",zu)+/(WCOD+)?/.source.replace("WCOD",Bu)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",zu)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",zu)+"$"),ku=["material","materials","bones","map"];class Gu{constructor(t,e,n){this.path=e,this.parsedPath=n||Gu.parseTrackName(e),this.node=Gu.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Gu.Composite(t,e,n):new Gu(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Ou,"")}static parseTrackName(t){const e=Fu.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==ku.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===ge)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=pe,i.endingEnd=pe):(i.endingStart=t?this.zeroSlopeAtStart?pe:de:me,i.endingEnd=e?this.zeroSlopeAtEnd?pe:de:me)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const Hu=new Float32Array(1);class Wu{constructor(t){this.value=t}clone(){return new Wu(void 0===this.value.clone?this.value:this.value.clone())}}let ju=0;function qu(t,e){return t.distance-e.distance}function Xu(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new Gu(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}},t.AnimationUtils=bh,t.ArcCurve=kl,t.ArrayCamera=go,t.ArrowHelper=class extends vi{constructor(t=new gn(0,0,1),e=new gn(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===pd&&(pd=new ir,pd.setAttribute("position",new Zi([0,0,0,0,1,0],3)),md=new cc(0,.5,1,5,1),md.translate(0,-.5,0)),this.position.copy(e),this.line=new Tl(pd,new _l({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Mr(md,new Bi({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{dd.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(dd,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=Lu,t.AudioAnalyser=class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;nthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Yu).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},t.Box3=_n,t.Box3Helper=class extends Cl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new ir;i.setIndex(new qi(n,1)),i.setAttribute("position",new Zi([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new _l({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends br{constructor(t,e,n,i,r,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(t,e,n,i,r,s)}},t.BoxGeometry=br,t.BoxHelper=class extends Cl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new ir;r.setIndex(new qi(n,1)),r.setAttribute("position",new qi(i,3)),super(r,new _l({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&ud.setFromObject(this.object),ud.isEmpty())return;const e=ud.min,n=ud.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=qi,t.BufferGeometry=ir,t.BufferGeometryLoader=mu,t.ByteType=dt,t.Cache=Bh,t.Camera=Lr,t.CameraHelper=class extends Cl{constructor(t){const e=new ir,n=new _l({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new Zi(i,3)),e.setAttribute("color",new Zi(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Oi(16755200),c=new Oi(16711680),h=new Oi(43775),u=new Oi(16777215),d=new Oi(3355443);this.setColors(l,c,h,u,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;cd.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),hd("c",e,t,cd,0,0,-1),hd("t",e,t,cd,0,0,1),hd("n1",e,t,cd,-1,-1,-1),hd("n2",e,t,cd,1,-1,-1),hd("n3",e,t,cd,-1,1,-1),hd("n4",e,t,cd,1,1,-1),hd("f1",e,t,cd,-1,-1,1),hd("f2",e,t,cd,1,-1,1),hd("f3",e,t,cd,-1,1,1),hd("f4",e,t,cd,1,1,1),hd("u1",e,t,cd,.7,1.1,-1),hd("u2",e,t,cd,-.7,1.1,-1),hd("u3",e,t,cd,0,2,-1),hd("cf1",e,t,cd,-1,0,1),hd("cf2",e,t,cd,1,0,1),hd("cf3",e,t,cd,0,-1,1),hd("cf4",e,t,cd,0,1,1),hd("cn1",e,t,cd,-1,0,-1),hd("cn2",e,t,cd,1,0,-1),hd("cn3",e,t,cd,0,-1,-1),hd("cn4",e,t,cd,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends hn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends oc{constructor(t,e,n,i){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(t,e,n,i)}},t.CapsuleGeometry=oc,t.CatmullRomCurve3=ql,t.CineonToneMapping=X,t.CircleBufferGeometry=class extends lc{constructor(t,e,n,i){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(t,e,n,i)}},t.CircleGeometry=lc,t.ClampToEdgeWrapping=it,t.Clock=bu,t.Color=Oi,t.ColorKeyframeTrack=Ph,t.ColorManagement=rn,t.CompressedArrayTexture=class extends zl{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=it}},t.CompressedTexture=zl,t.CompressedTextureLoader=class extends Gh{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new zl,o=new Wh(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=lt),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e0){const n=new Fh(e);r=new jh(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new jh(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e1)for(let n=0;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Wc.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new yc,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Ao,t.WebGL3DRenderTarget=class extends dn{constructor(t=1,e=1,n=1){super(t,e),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new mn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends dn{constructor(t=1,e=1,n=1){super(t,e),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new pn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=Ur,t.WebGLMultipleRenderTargets=class extends dn{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLMultipleRenderTargets=!0;const r=this.texture;this.texture=[];for(let t=0;t>8&255]+Pe[t>>16&255]+Pe[t>>24&255]+"-"+Pe[255&e]+Pe[e>>8&255]+"-"+Pe[e>>16&15|64]+Pe[e>>24&255]+"-"+Pe[63&n|128]+Pe[n>>8&255]+"-"+Pe[n>>16&255]+Pe[n>>24&255]+Pe[255&i]+Pe[i>>8&255]+Pe[i>>16&255]+Pe[i>>24&255]).toLowerCase()}function Ne(t,e,n){return Math.max(e,Math.min(n,t))}function Oe(t,e){return(t%e+e)%e}function ze(t,e,n){return(1-n)*t+n*e}function Be(t){return 0==(t&t-1)&&0!==t}function Fe(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ke(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Ge(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ve(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const He={DEG2RAD:Ie,RAD2DEG:De,generateUUID:Ue,clamp:Ne,euclideanModulo:Oe,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:ze,damp:function(t,e,n,i){return ze(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Oe(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(Re=t);let e=Re+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*Ie},radToDeg:function(t){return t*De},isPowerOfTwo:Be,ceilPowerOfTwo:Fe,floorPowerOfTwo:ke,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ve,denormalize:Ge};class We{constructor(t=0,e=0){We.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ne(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class je{constructor(){je.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],_=i[4],x=i[7],y=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*y,r[3]=s*f+a*_+o*M,r[6]=s*g+a*x+o*S,r[1]=l*m+c*v+h*y,r[4]=l*f+c*_+h*M,r[7]=l*g+c*x+h*S,r[2]=u*m+d*v+p*y,r[5]=u*f+d*_+p*M,r[8]=u*g+d*x+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(qe.makeScale(t,e)),this}rotate(t){return this.premultiply(qe.makeRotation(-t)),this}translate(t,e){return this.premultiply(qe.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const qe=new je;function Xe(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Ye={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Ze(t,e){return new Ye[t](e)}function Je(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Ke(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function $e(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Qe=(new je).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),tn=(new je).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const en={[be]:t=>t,[Se]:t=>t.convertSRGBToLinear(),[we]:function(t){return t.convertSRGBToLinear().applyMatrix3(tn)}},nn={[be]:t=>t,[Se]:t=>t.convertLinearToSRGB(),[we]:function(t){return t.applyMatrix3(Qe).convertLinearToSRGB()}},rn={enabled:!1,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return be},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=en[e],r=nn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let sn;class an{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===sn&&(sn=Je("canvas")),sn.width=t.width,sn.height=t.height;const n=sn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=sn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Je("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==J)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case nt:t.x=t.x-Math.floor(t.x);break;case it:t.x=t.x<0?0:1;break;case rt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case nt:t.y=t.y-Math.floor(t.y);break;case it:t.y=t.y<0?0:1;break;case rt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}hn.DEFAULT_IMAGE=null,hn.DEFAULT_MAPPING=J,hn.DEFAULT_ANISOTROPY=1;class un{constructor(t=0,e=0,n=0,i=1){un.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Ne(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class gn{constructor(t=0,e=0,n=0){gn.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_n.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_n.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return vn.copy(this).projectOnVector(t),this.sub(vn)}reflect(t){return this.sub(vn.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ne(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const vn=new gn,_n=new fn;class xn{constructor(t=new gn(1/0,1/0,1/0),e=new gn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Mn),Mn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ln),Pn.subVectors(this.max,Ln),bn.subVectors(t.a,Ln),wn.subVectors(t.b,Ln),Tn.subVectors(t.c,Ln),En.subVectors(wn,bn),An.subVectors(Tn,wn),Cn.subVectors(bn,Tn);let e=[0,-En.z,En.y,0,-An.z,An.y,0,-Cn.z,Cn.y,En.z,0,-En.x,An.z,0,-An.x,Cn.z,0,-Cn.x,-En.y,En.x,0,-An.y,An.x,0,-Cn.y,Cn.x,0];return!!Dn(e,bn,wn,Tn,Pn)&&(e=[1,0,0,0,1,0,0,0,1],!!Dn(e,bn,wn,Tn,Pn)&&(Rn.crossVectors(En,An),e=[Rn.x,Rn.y,Rn.z],Dn(e,bn,wn,Tn,Pn)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Mn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Mn).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(yn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),yn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),yn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),yn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),yn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),yn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),yn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),yn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(yn)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const yn=[new gn,new gn,new gn,new gn,new gn,new gn,new gn,new gn],Mn=new gn,Sn=new xn,bn=new gn,wn=new gn,Tn=new gn,En=new gn,An=new gn,Cn=new gn,Ln=new gn,Pn=new gn,Rn=new gn,In=new gn;function Dn(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){In.fromArray(t,s);const a=r.x*Math.abs(In.x)+r.y*Math.abs(In.y)+r.z*Math.abs(In.z),o=e.dot(In),l=n.dot(In),c=i.dot(In);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Un=new xn,Nn=new gn,On=new gn;class zn{constructor(t=new gn,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Un.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Nn.subVectors(t,this.center);const e=Nn.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(Nn,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(On.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Nn.copy(t.center).add(On)),this.expandByPoint(Nn.copy(t.center).sub(On))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Bn=new gn,Fn=new gn,kn=new gn,Gn=new gn,Vn=new gn,Hn=new gn,Wn=new gn;class jn{constructor(t=new gn,e=new gn(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Bn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Bn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bn.copy(this.origin).addScaledVector(this.direction,e),Bn.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Fn.copy(t).add(e).multiplyScalar(.5),kn.copy(e).sub(t).normalize(),Gn.copy(this.origin).sub(Fn);const r=.5*t.distanceTo(e),s=-this.direction.dot(kn),a=Gn.dot(this.direction),o=-Gn.dot(kn),l=Gn.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Fn).addScaledVector(kn,u),d}intersectSphere(t,e){Bn.subVectors(t.center,this.origin);const n=Bn.dot(this.direction),i=Bn.dot(Bn)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Bn)}intersectTriangle(t,e,n,i,r){Vn.subVectors(e,t),Hn.subVectors(n,t),Wn.crossVectors(Vn,Hn);let s,a=this.direction.dot(Wn);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Gn.subVectors(this.origin,t);const o=s*this.direction.dot(Hn.crossVectors(Gn,Hn));if(o<0)return null;const l=s*this.direction.dot(Vn.cross(Gn));if(l<0)return null;if(o+l>a)return null;const c=-s*Gn.dot(Wn);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class qn{constructor(){qn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new qn).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Xn.setFromMatrixColumn(t,0).length(),r=1/Xn.setFromMatrixColumn(t,1).length(),s=1/Xn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Zn,t,Jn)}lookAt(t,e,n){const i=this.elements;return Qn.subVectors(t,e),0===Qn.lengthSq()&&(Qn.z=1),Qn.normalize(),Kn.crossVectors(n,Qn),0===Kn.lengthSq()&&(1===Math.abs(n.z)?Qn.x+=1e-4:Qn.z+=1e-4,Qn.normalize(),Kn.crossVectors(n,Qn)),Kn.normalize(),$n.crossVectors(Qn,Kn),i[0]=Kn.x,i[4]=$n.x,i[8]=Qn.x,i[1]=Kn.y,i[5]=$n.y,i[9]=Qn.y,i[2]=Kn.z,i[6]=$n.z,i[10]=Qn.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],_=n[7],x=n[11],y=n[15],M=i[0],S=i[4],b=i[8],w=i[12],T=i[1],E=i[5],A=i[9],C=i[13],L=i[2],P=i[6],R=i[10],I=i[14],D=i[3],U=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*L+l*D,r[4]=s*S+a*E+o*P+l*U,r[8]=s*b+a*A+o*R+l*N,r[12]=s*w+a*C+o*I+l*O,r[1]=c*M+h*T+u*L+d*D,r[5]=c*S+h*E+u*P+d*U,r[9]=c*b+h*A+u*R+d*N,r[13]=c*w+h*C+u*I+d*O,r[2]=p*M+m*T+f*L+g*D,r[6]=p*S+m*E+f*P+g*U,r[10]=p*b+m*A+f*R+g*N,r[14]=p*w+m*C+f*I+g*O,r[3]=v*M+_*T+x*L+y*D,r[7]=v*S+_*E+x*P+y*U,r[11]=v*b+_*A+x*R+y*N,r[15]=v*w+_*C+x*I+y*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,_=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,y=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*_+i*x+r*y;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=_*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=x*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=y*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,_=o*c,x=o*h,y=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*y,i[1]=(d+x)*y,i[2]=(p-_)*y,i[3]=0,i[4]=(d-x)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+_)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Xn.set(i[0],i[1],i[2]).length();const s=Xn.set(i[4],i[5],i[6]).length(),a=Xn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Yn.copy(this);const o=1/r,l=1/s,c=1/a;return Yn.elements[0]*=o,Yn.elements[1]*=o,Yn.elements[2]*=o,Yn.elements[4]*=l,Yn.elements[5]*=l,Yn.elements[6]*=l,Yn.elements[8]*=c,Yn.elements[9]*=c,Yn.elements[10]*=c,e.setFromRotationMatrix(Yn),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Xn=new gn,Yn=new qn,Zn=new gn(0,0,0),Jn=new gn(1,1,1),Kn=new gn,$n=new gn,Qn=new gn,ti=new qn,ei=new fn;class ni{constructor(t=0,e=0,n=0,i=ni.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(Ne(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Ne(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(Ne(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-Ne(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Ne(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Ne(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return ti.makeRotationFromQuaternion(t),this.setFromRotationMatrix(ti,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return ei.setFromEuler(this),this.setFromQuaternion(ei,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ni.DEFAULT_ORDER="XYZ";class ii{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ci,t,hi),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ci,ui,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){_i.subVectors(i,e),xi.subVectors(n,e),yi.subVectors(t,e);const s=_i.dot(_i),a=_i.dot(xi),o=_i.dot(yi),l=xi.dot(xi),c=xi.dot(yi),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Mi),Mi.x>=0&&Mi.y>=0&&Mi.x+Mi.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===Ci&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ci=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Mi),o.setScalar(0),o.addScaledVector(r,Mi.x),o.addScaledVector(s,Mi.y),o.addScaledVector(a,Mi.z),o}static isFrontFacing(t,e,n,i){return _i.subVectors(n,e),xi.subVectors(t,e),_i.cross(xi).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return _i.subVectors(this.c,this.b),xi.subVectors(this.a,this.b),.5*_i.cross(xi).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Li.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Li.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Ci&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ci=!0),Li.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Li.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Li.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Li.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Si.subVectors(i,n),bi.subVectors(r,n),Ti.subVectors(t,n);const o=Si.dot(Ti),l=bi.dot(Ti);if(o<=0&&l<=0)return e.copy(n);Ei.subVectors(t,i);const c=Si.dot(Ei),h=bi.dot(Ei);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Si,s);Ai.subVectors(t,r);const d=Si.dot(Ai),p=bi.dot(Ai);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(bi,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return wi.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(wi,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Si,s).addScaledVector(bi,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Pi=0;class Ri extends Le{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Pi++}),this.uuid=Ue(),this.name="",this.type="Material",this.blending=d,this.side=l,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=E,this.blendDst=A,this.blendEquation=v,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=O,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Te,this.stencilZFail=Te,this.stencilZPass=Te,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==d&&(n.blending=this.blending),this.side!==l&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Ii={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Di={h:0,s:0,l:0},Ui={h:0,s:0,l:0};function Ni(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Oi{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Se){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,rn.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=rn.workingColorSpace){return this.r=t,this.g=e,this.b=n,rn.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=rn.workingColorSpace){if(t=Oe(t,1),e=Ne(e,0,1),n=Ne(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Ni(r,i,t+1/3),this.g=Ni(r,i,t),this.b=Ni(r,i,t-1/3)}return rn.toWorkingColorSpace(this,i),this}setStyle(t,e=Se){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,rn.toWorkingColorSpace(this,e),n(r[4]),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,rn.toWorkingColorSpace(this,e),n(r[4]),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const t=parseFloat(r[1])/360,i=parseFloat(r[2])/100,s=parseFloat(r[3])/100;return n(r[4]),this.setHSL(t,i,s,e)}break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Se){const n=Ii[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Ke(t.r),this.g=Ke(t.g),this.b=Ke(t.b),this}copyLinearToSRGB(t){return this.r=$e(t.r),this.g=$e(t.g),this.b=$e(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Se){return rn.fromWorkingColorSpace(zi.copy(this),t),Ne(255*zi.r,0,255)<<16^Ne(255*zi.g,0,255)<<8^Ne(255*zi.b,0,255)<<0}getHexString(t=Se){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=rn.workingColorSpace){rn.fromWorkingColorSpace(zi.copy(this),e);const n=zi.r,i=zi.g,r=zi.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Gi(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Ne(t,-65504,65504),Fi.floatView[0]=t;const e=Fi.uint32View[0],n=e>>23&511;return Fi.baseTable[n]+((8388607&e)>>Fi.shiftTable[n])}function Vi(t){const e=t>>10;return Fi.uint32View[0]=Fi.mantissaTable[Fi.offsetTable[e]+(1023&t)]+Fi.exponentTable[e],Fi.floatView[0]}const Hi={toHalfFloat:Gi,fromHalfFloat:Vi},Wi=new gn,ji=new We;class qi{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=Ee,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}if(rr.copy(r).invert(),sr.copy(t.ray).applyMatrix4(rr),null!==n.boundingBox&&!1===sr.intersectsBox(n.boundingBox))return;let s;const a=n.index,o=n.attributes.position,l=n.attributes.uv,c=n.attributes.uv2,h=n.attributes.normal,u=n.groups,d=n.drawRange;if(null!==a)if(Array.isArray(i))for(let n=0,r=u.length;nn.far?null:{distance:u,point:yr.clone(),object:t}}(t,e,n,i,lr,cr,hr,xr);if(d){r&&(pr.fromBufferAttribute(r,o),mr.fromBufferAttribute(r,h),fr.fromBufferAttribute(r,u),d.uv=Li.getInterpolation(xr,lr,cr,hr,pr,mr,fr,new We)),s&&(pr.fromBufferAttribute(s,o),mr.fromBufferAttribute(s,h),fr.fromBufferAttribute(s,u),d.uv2=Li.getInterpolation(xr,lr,cr,hr,pr,mr,fr,new We)),a&&(gr.fromBufferAttribute(a,o),vr.fromBufferAttribute(a,h),_r.fromBufferAttribute(a,u),d.normal=Li.getInterpolation(xr,lr,cr,hr,gr,vr,_r,new gn),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const t={a:o,b:h,c:u,normal:new gn,materialIndex:0};Li.getNormal(lr,cr,hr,t.normal),d.face=t}return d}class br extends ir{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const _=s/f,x=p/g,y=s/2,M=p/2,S=m/2,b=f+1,w=g+1;let T=0,E=0;const A=new gn;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Lr extends vi{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qn,this.projectionMatrix=new qn,this.projectionMatrixInverse=new qn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Pr extends Lr{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*De*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Ie*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*De*Math.atan(Math.tan(.5*Ie*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Ie*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Rr=-90;class Ir extends vi{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Pr(Rr,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Pr(Rr,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Pr(Rr,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Pr(Rr,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Pr(Rr,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Pr(Rr,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=W,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Dr extends hn{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:K,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ur extends dn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Dr(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:lt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new br(5,5,5),r=new Cr({name:"CubemapFromEquirect",uniforms:wr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:c,blending:u});r.uniforms.tEquirect.value=e;const s=new Mr(i,r),a=e.minFilter;e.minFilter===ht&&(e.minFilter=lt);return new Ir(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Nr=new gn,Or=new gn,zr=new je;class Br{constructor(t=new gn(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Nr.subVectors(n,e).cross(Or.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Nr),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||zr.getNormalMatrix(t),i=this.coplanarPoint(Nr).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Fr=new zn,kr=new gn;class Gr{constructor(t=new Br,e=new Br,n=new Br,i=new Br,r=new Br,s=new Br){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],_=n[15];return e[0].setComponents(a-i,h-o,m-u,_-f).normalize(),e[1].setComponents(a+i,h+o,m+u,_+f).normalize(),e[2].setComponents(a+r,h+l,m+d,_+g).normalize(),e[3].setComponents(a-r,h-l,m-d,_-g).normalize(),e[4].setComponents(a-s,h-c,m-p,_-v).normalize(),e[5].setComponents(a+s,h+c,m+p,_+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Fr.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Fr.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Fr)}intersectsSprite(t){return Fr.center.set(0,0,0),Fr.radius=.7071067811865476,Fr.applyMatrix4(t.matrixWorld),this.intersectsSphere(Fr)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,kr.y=i.normal.y>0?t.max.y:t.min.y,kr.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(kr)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Vr(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Hr(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},qr={common:{diffuse:{value:new Oi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new je},alphaMap:{value:null},alphaMapTransform:{value:new je},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new je}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new je}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new je}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new je},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new je},normalScale:{value:new We(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new je},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new je}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new je}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new je}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Oi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Oi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new je}},sprite:{diffuse:{value:new Oi(16777215)},opacity:{value:1},center:{value:new We(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new je},alphaMap:{value:null},alphaTest:{value:0}}},Xr={basic:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.fog]),vertexShader:jr.meshbasic_vert,fragmentShader:jr.meshbasic_frag},lambert:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)}}]),vertexShader:jr.meshlambert_vert,fragmentShader:jr.meshlambert_frag},phong:{uniforms:Tr([qr.common,qr.specularmap,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)},specular:{value:new Oi(1118481)},shininess:{value:30}}]),vertexShader:jr.meshphong_vert,fragmentShader:jr.meshphong_frag},standard:{uniforms:Tr([qr.common,qr.envmap,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.roughnessmap,qr.metalnessmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:jr.meshphysical_vert,fragmentShader:jr.meshphysical_frag},toon:{uniforms:Tr([qr.common,qr.aomap,qr.lightmap,qr.emissivemap,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.gradientmap,qr.fog,qr.lights,{emissive:{value:new Oi(0)}}]),vertexShader:jr.meshtoon_vert,fragmentShader:jr.meshtoon_frag},matcap:{uniforms:Tr([qr.common,qr.bumpmap,qr.normalmap,qr.displacementmap,qr.fog,{matcap:{value:null}}]),vertexShader:jr.meshmatcap_vert,fragmentShader:jr.meshmatcap_frag},points:{uniforms:Tr([qr.points,qr.fog]),vertexShader:jr.points_vert,fragmentShader:jr.points_frag},dashed:{uniforms:Tr([qr.common,qr.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:jr.linedashed_vert,fragmentShader:jr.linedashed_frag},depth:{uniforms:Tr([qr.common,qr.displacementmap]),vertexShader:jr.depth_vert,fragmentShader:jr.depth_frag},normal:{uniforms:Tr([qr.common,qr.bumpmap,qr.normalmap,qr.displacementmap,{opacity:{value:1}}]),vertexShader:jr.meshnormal_vert,fragmentShader:jr.meshnormal_frag},sprite:{uniforms:Tr([qr.sprite,qr.fog]),vertexShader:jr.sprite_vert,fragmentShader:jr.sprite_frag},background:{uniforms:{uvTransform:{value:new je},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:jr.background_vert,fragmentShader:jr.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:jr.backgroundCube_vert,fragmentShader:jr.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:jr.cube_vert,fragmentShader:jr.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:jr.equirect_vert,fragmentShader:jr.equirect_frag},distanceRGBA:{uniforms:Tr([qr.common,qr.displacementmap,{referencePosition:{value:new gn},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:jr.distanceRGBA_vert,fragmentShader:jr.distanceRGBA_frag},shadow:{uniforms:Tr([qr.lights,qr.fog,{color:{value:new Oi(0)},opacity:{value:1}}]),vertexShader:jr.shadow_vert,fragmentShader:jr.shadow_frag}};Xr.physical={uniforms:Tr([Xr.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new je},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new je},clearcoatNormalScale:{value:new We(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new je},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new je},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new je},sheen:{value:0},sheenColor:{value:new Oi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new je},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new je},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new je},transmissionSamplerSize:{value:new We},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new je},attenuationDistance:{value:0},attenuationColor:{value:new Oi(0)},specularColor:{value:new Oi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new je},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new je}}]),vertexShader:jr.meshphysical_vert,fragmentShader:jr.meshphysical_frag};const Yr={r:0,b:0,g:0};function Zr(t,e,n,i,r,s,a){const o=new Oi(0);let h,u,d=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(Yr,Er(t)),i.buffers.color.setClear(Yr.r,Yr.g,Yr.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),d=e,g(o,d)},getClearAlpha:function(){return d},setClearAlpha:function(t){d=t,g(o,d)},render:function(i,s){let a=!1,v=!0===s.isScene?s.background:null;if(v&&v.isTexture){v=(s.backgroundBlurriness>0?n:e).get(v)}const _=t.xr,x=_.getSession&&_.getSession();x&&"additive"===x.environmentBlendMode&&(v=null),null===v?g(o,d):v&&v.isColor&&(g(v,1),a=!0),(t.autoClear||a)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),v&&(v.isCubeTexture||v.mapping===et)?(void 0===u&&(u=new Mr(new br(1,1,1),new Cr({name:"BackgroundCubeMaterial",uniforms:wr(Xr.backgroundCube.uniforms),vertexShader:Xr.backgroundCube.vertexShader,fragmentShader:Xr.backgroundCube.fragmentShader,side:c,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(u)),u.material.uniforms.envMap.value=v,u.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,u.material.uniforms.backgroundBlurriness.value=s.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,u.material.toneMapped=v.encoding!==_e,p===v&&m===v.version&&f===t.toneMapping||(u.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),u.layers.enableAll(),i.unshift(u,u.geometry,u.material,0,0,null)):v&&v.isTexture&&(void 0===h&&(h=new Mr(new Wr(2,2),new Cr({name:"BackgroundMaterial",uniforms:wr(Xr.background.uniforms),vertexShader:Xr.background.vertexShader,fragmentShader:Xr.background.fragmentShader,side:l,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(h)),h.material.uniforms.t2D.value=v,h.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,h.material.toneMapped=v.encoding!==_e,!0===v.matrixAutoUpdate&&v.updateMatrix(),h.material.uniforms.uvTransform.value.copy(v.matrix),p===v&&m===v.version&&f===t.toneMapping||(h.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),h.layers.enableAll(),i.unshift(h,h.geometry,h.material,0,0,null))}}}function Jr(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,x,d,y),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,x,d,y)}else{const t=!0===l.wireframe;c.geometry===x.id&&c.program===d.id&&c.wireframe===t||(c.geometry=x.id,c.program=d.id,c.wireframe=t,M=!0)}null!==y&&n.update(y,34963),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),_=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:x,floatVertexTextures:_&&x,maxSamples:s?t.getParameter(36183):0}}function Qr(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Br,o=new je,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function ts(t){let e=new WeakMap;function n(t,e){return e===Q?t.mapping=K:e===tt&&(t.mapping=$),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===Q||s===tt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new Ur(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class es extends Lr{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const ns=4,is=[.125,.215,.35,.446,.526,.582],rs=20,ss=new es,as=new Oi;let os=null;const ls=(1+Math.sqrt(5))/2,cs=1/ls,hs=[new gn(1,1,1),new gn(-1,1,1),new gn(1,1,-1),new gn(-1,1,-1),new gn(0,ls,cs),new gn(0,ls,-cs),new gn(cs,0,ls),new gn(-cs,0,ls),new gn(ls,cs,0),new gn(-ls,cs,0)];class us{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){os=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=fs(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ms(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-ns?o=is[a-t+ns-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),_=new Float32Array(f*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),_.set(u,f*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const y=new ir;y.setAttribute("position",new qi(v,m)),y.setAttribute("uv",new qi(_,f)),y.setAttribute("faceIndex",new qi(x,g)),e.push(y),r>ns&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(rs),r=new gn(0,1,0),s=new Cr({name:"SphericalGaussianBlur",defines:{n:rs,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Mr(this._lodPlanes[0],t);this._renderer.compile(e,ss)}_sceneToCubeUV(t,e,n,i){const r=new Pr(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,h=o.toneMapping;o.getClearColor(as),o.toneMapping=W,o.autoClear=!1;const u=new Bi({name:"PMREM.Background",side:c,depthWrite:!1,depthTest:!1}),d=new Mr(new br,u);let p=!1;const m=t.background;m?m.isColor&&(u.color.copy(m),t.background=null,p=!0):(u.color.copy(as),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ps(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(d,r),o.render(t,r)}d.geometry.dispose(),d.material.dispose(),o.toneMapping=h,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===K||t.mapping===$;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=fs()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ms());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Mr(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ps(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,ss)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;ers&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${rs}`);const f=[];let g=0;for(let t=0;tv-ns?i-v+ns:0),4*(this._cubeSize-_),3*_,2*_),o.setRenderTarget(e),o.render(c,ss)}}function ds(t,e,n){const i=new dn(t,e,n);return i.texture.mapping=et,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ps(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ms(){return new Cr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function fs(){return new Cr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:gs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function gs(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function vs(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===Q||s===tt,o=s===K||s===$;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new us(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(T=Math.ceil(w/e.maxTextureSize),w=e.maxTextureSize);const E=new Float32Array(w*T*4*p),A=new pn(E,w,T,p);A.type=vt,A.needsUpdate=!0;const C=4*b;for(let P=0;P0)return t;const r=e*n;let s=Ps[r];if(void 0===s&&(s=new Float32Array(r),Ps[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Os(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Da(t,e){const n=function(t){switch(t){case ve:return["Linear","( value )"];case _e:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Ua(t,e){let n;switch(e){case j:n="Linear";break;case q:n="Reinhard";break;case X:n="OptimizedCineon";break;case Y:n="ACESFilmic";break;case Z:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Na(t){return""!==t}function Oa(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function za(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Ba=/^[ \t]*#include +<([\w\d./]+)>/gm;function Fa(t){return t.replace(Ba,ka)}function ka(t,e){const n=jr[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Fa(n)}const Ga=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Va(t){return t.replace(Ga,Ha)}function Ha(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(x+="\n"),y=[g,v].filter(Na).join("\n"),y.length>0&&(y+="\n")):(x=[Wa(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Na).join("\n"),y=[g,Wa(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==W?"#define TONE_MAPPING":"",n.toneMapping!==W?jr.tonemapping_pars_fragment:"",n.toneMapping!==W?Ua("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",jr.encodings_pars_fragment,Da("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Na).join("\n")),c=Fa(c),c=Oa(c,n),c=za(c,n),h=Fa(h),h=Oa(h,n),h=za(h,n),c=Va(c),h=Va(h),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",x=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+x,y=["#define varying in",n.glslVersion===Ae?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Ae?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+y);const S=M+y+h,b=Pa(r,35633,M+x+c),w=Pa(r,35632,S);if(r.attachShader(_,b),r.attachShader(_,w),void 0!==n.index0AttributeName?r.bindAttribLocation(_,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(_,0,"position"),r.linkProgram(_),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(_).trim(),n=r.getShaderInfoLog(b).trim(),i=r.getShaderInfoLog(w).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(_,35714))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,_,b,w);else{const t=Ia(r,b,"vertex"),n=Ia(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(_,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:x},fragmentShader:{log:i,prefix:y}})}let T,E;return r.deleteShader(b),r.deleteShader(w),this.getUniforms=function(){return void 0===T&&(T=new La(r,_)),T},this.getAttributes=function(){return void 0===E&&(E=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,Z=s.iridescence>0,J=s.sheen>0,K=s.transmission>0,$=Y&&!!s.clearcoatMap,Q=Y&&!!s.clearcoatNormalMap,tt=Y&&!!s.clearcoatRoughnessMap,nt=Z&&!!s.iridescenceMap,it=Z&&!!s.iridescenceThicknessMap,rt=J&&!!s.sheenColorMap,st=J&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ct=K&&!!s.transmissionMap,ht=K&&!!s.thicknessMap,ut=!!s.gradientMap,dt=!!s.alphaMap,pt=s.alphaTest>0,mt=!!s.extensions,ft=!!S.attributes.uv2;return{isWebGL2:p,shaderID:E,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:g,instancing:N,instancingColor:N&&null!==y.instanceColor,supportsVertexTextures:f,outputEncoding:null===U?t.outputEncoding:!0===U.isXRRenderTarget?U.texture.encoding:ve,map:O,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:T,aoMap:F,lightMap:k,bumpMap:G,normalMap:V,displacementMap:f&&H,emissiveMap:j,normalMapObjectSpace:V&&s.normalMapType===Me,normalMapTangentSpace:V&&s.normalMapType===ye,decodeVideoTexture:O&&!0===s.map.isVideoTexture&&s.map.encoding===_e,metalnessMap:q,roughnessMap:X,clearcoat:Y,clearcoatMap:$,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:Z,iridescenceMap:nt,iridescenceThicknessMap:it,sheen:J,sheenColorMap:rt,sheenRoughnessMap:st,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:K,transmissionMap:ct,thicknessMap:ht,gradientMap:ut,opaque:!1===s.transparent&&s.blending===d,alphaMap:dt,alphaTest:pt,combine:s.combine,mapUv:O&&_(s.map.channel),aoMapUv:F&&_(s.aoMap.channel),lightMapUv:k&&_(s.lightMap.channel),bumpMapUv:G&&_(s.bumpMap.channel),normalMapUv:V&&_(s.normalMap.channel),displacementMapUv:H&&_(s.displacementMap.channel),emissiveMapUv:j&&_(s.emissiveMap.channel),metalnessMapUv:q&&_(s.metalnessMap.channel),roughnessMapUv:X&&_(s.roughnessMap.channel),clearcoatMapUv:$&&_(s.clearcoatMap.channel),clearcoatNormalMapUv:Q&&_(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&_(s.clearcoatRoughnessMap.channel),iridescenceMapUv:nt&&_(s.iridescenceMap.channel),iridescenceThicknessMapUv:it&&_(s.iridescenceThicknessMap.channel),sheenColorMapUv:rt&&_(s.sheenColorMap.channel),sheenRoughnessMapUv:st&&_(s.sheenRoughnessMap.channel),specularMapUv:at&&_(s.specularMap.channel),specularColorMapUv:ot&&_(s.specularColorMap.channel),specularIntensityMapUv:lt&&_(s.specularIntensityMap.channel),transmissionMapUv:ct&&_(s.transmissionMap.channel),thicknessMapUv:ht&&_(s.thicknessMap.channel),alphaMapUv:dt&&_(s.alphaMap.channel),vertexTangents:V&&!!S.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!S.attributes.color&&4===S.attributes.color.itemSize,vertexUvs2:ft,pointsUvs:!0===y.isPoints&&!!S.attributes.uv&&(O||dt),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:m,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==S.morphAttributes.position,morphNormals:void 0!==S.morphAttributes.normal,morphColors:void 0!==S.morphAttributes.color,morphTargetsCount:C,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:W,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===h,flipSided:s.side===c,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:mt&&!0===s.extensions.derivatives,extensionFragDepth:mt&&!0===s.extensions.fragDepth,extensionDrawBuffers:mt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:mt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:p||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:p||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:p||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUvs2&&o.enable(13);e.vertexTangents&&o.enable(14);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.decodeVideoTexture&&o.enable(17);e.opaque&&o.enable(18);e.pointsUvs&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=Xr[e];n=Ar.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=u.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Ka),i.length>1&&i.sort(e||$a),r.length>1&&r.sort(e||$a)}}}function to(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Qa,t.set(e,[r])):n>=i.length?(r=new Qa,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function eo(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new gn,color:new Oi};break;case"SpotLight":n={position:new gn,direction:new gn,color:new Oi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new gn,color:new Oi,distance:0,decay:0};break;case"HemisphereLight":n={direction:new gn,skyColor:new Oi,groundColor:new Oi};break;case"RectAreaLight":n={color:new Oi,position:new gn,halfWidth:new gn,halfHeight:new gn}}return t[e.id]=n,n}}}let no=0;function io(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function ro(t,e){const n=new eo,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new We};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new We,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new gn);const s=new gn,a=new qn,o=new qn;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,_=0,x=0;s.sort(io);const y=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=qr.LTC_FLOAT_1,r.rectAreaLTC2=qr.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=qr.LTC_HALF_1,r.rectAreaLTC2=qr.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===_||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+_-x,r.spotLightMap.length=_,r.numSpotLightShadowsWithMaps=x,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=_,r.version=no++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new so(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class oo extends Ri{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class lo extends Ri{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const co="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",ho="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function uo(t,e,n){let i=new Gr;const r=new We,a=new We,d=new un,p=new oo({depthPacking:xe}),m=new lo,f={},g=n.maxTextureSize,v={[l]:c,[c]:l,[h]:h},_=new Cr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new We},radius:{value:4}},vertexShader:co,fragmentShader:ho}),x=_.clone();x.defines.HORIZONTAL_PASS=1;const y=new ir;y.setAttribute("position",new qi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Mr(y,_),S=this;function b(n,i){const s=e.update(M);_.defines.VSM_SAMPLES!==n.blurSamples&&(_.defines.VSM_SAMPLES=n.blurSamples,x.defines.VSM_SAMPLES=n.blurSamples,_.needsUpdate=!0,x.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new dn(r.x,r.y)),_.uniforms.shadow_pass.value=n.map.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,_,M,null),x.uniforms.shadow_pass.value=n.mapPass.texture,x.uniforms.resolution.value=n.mapSize,x.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,x,M,null)}function w(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?m:p,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=f[t];void 0===i&&(i={},f[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===o?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function T(n,r,s,a,l){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&l===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let o=0,c=e.length;og||r.y>g)&&(r.x>g&&(a.x=Math.floor(g/u.x),r.x=a.x*u.x,h.mapSize.x=a.x),r.y>g&&(a.y=Math.floor(g/u.y),r.y=a.y*u.y,h.mapSize.y=a.y)),null===h.map){const t=this.type!==o?{minFilter:st,magFilter:st}:{};h.map=new dn(r.x,r.y,t),h.map.texture.name=c.name+".shadowMap",h.camera.updateProjectionMatrix()}t.setRenderTarget(h.map),t.clear();const m=h.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,mt={};const ft=t.getParameter(3088),gt=t.getParameter(2978),vt=(new un).fromArray(ft),_t=(new un).fromArray(gt);function xt(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ke:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=_(s,a));const o=n?_(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function y(t){return Be(t.width)&&Be(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==st&&t.minFilter!==lt}function S(e){t.generateMipmap(e)}function b(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===_e&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function w(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==st&&t.minFilter!==lt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(t){return t===st||t===at||t===ot?9728:9729}function E(t){const e=t.target;e.removeEventListener("dispose",E),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&C(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void N(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(3553,r.__webglTexture,33984+e)}const R={[nt]:10497,[it]:33071,[rt]:33648},I={[st]:9728,[at]:9984,[ot]:9986,[lt]:9729,[ct]:9985,[ht]:9987};function D(n,s,a){if(a?(t.texParameteri(n,10242,R[s.wrapS]),t.texParameteri(n,10243,R[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,R[s.wrapR]),t.texParameteri(n,10240,I[s.magFilter]),t.texParameteri(n,10241,I[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===it&&s.wrapT===it||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,T(s.magFilter)),t.texParameteri(n,10241,T(s.minFilter)),s.minFilter!==st&&s.minFilter!==lt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===st)return;if(s.minFilter!==ot&&s.minFilter!==ht)return;if(s.type===vt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===_t&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function U(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",E));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&C(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function N(e,r,a){let l=3553;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=35866),r.isData3DTexture&&(l=32879);const c=U(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,33984+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=function(t){return!o&&(t.wrapS!==it||t.wrapT!==it||t.minFilter!==st&&t.minFilter!==lt)}(r)&&!1===y(r.image);let i=x(r.image,e,!1,h);i=G(r,i);const p=y(i)||o,m=s.convert(r.format,r.encoding);let f,g=s.convert(r.type),v=b(r.internalFormat,m,g,r.encoding,r.isVideoTexture);D(l,r,p);const _=r.mipmaps,T=o&&!0!==r.isVideoTexture,E=void 0===d.__version||!0===c,A=w(r,i,p);if(r.isDepthTexture)v=6402,o?v=r.type===vt?36012:r.type===gt?33190:r.type===Mt?35056:33189:r.type===vt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Et&&6402===v&&r.type!==mt&&r.type!==gt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=gt,g=s.convert(r.type)),r.format===At&&6402===v&&(v=34041,r.type!==Mt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Mt,g=s.convert(r.type))),E&&(T?n.texStorage2D(3553,1,v,i.width,i.height):n.texImage2D(3553,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(_.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,_[0].width,_[0].height);for(let t=0,e=_.length;t>=1,e>>=1}}else if(_.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,_[0].width,_[0].height);for(let t=0,e=_.length;t=34069&&l<=34074)&&t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function z(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===vt?r=36012:e.type===gt&&(r=33190));const i=F(n);k(n)?d.renderbufferStorageMultisampleEXT(36161,i,r,n.width,n.height):t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=F(n);i&&!1===k(n)?t.renderbufferStorageMultisample(36161,r,35056,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(36161,r,35056,n.width,n.height):t.renderbufferStorage(36161,34041,n.width,n.height),t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function G(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===Ce||i!==ve&&(i===_e?!1===o?!0===e.has("EXT_sRGB")&&r===bt?(t.format=Ce,t.minFilter=lt,t.generateMipmaps=!1):n=an.sRGBToLinear(n):r===bt&&s===ut||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=L;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),L+=1,t},this.resetTextureUnits=function(){L=0},this.setTexture2D=P,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(35866,r.__webglTexture,33984+e)},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(32879,r.__webglTexture,33984+e)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=U(e,r),h=r.source;n.bindTexture(34067,e.__webglTexture,33984+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:x(r.image[t],!1,!0,c),d[t]=G(r,d[t]);const p=d[0],m=y(p)||o,f=s.convert(r.format,r.encoding),g=s.convert(r.type),v=b(r.internalFormat,f,g,r.encoding),_=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let E,A=w(r,p,m);if(D(34067,r,m),e){_&&T&&n.texStorage2D(34067,A,v,p.width,p.height);for(let t=0;t<6;t++){E=d[t].mipmaps;for(let e=0;e0&&A++,n.texStorage2D(34067,A,v,d[0].width,d[0].height));for(let t=0;t<6;t++)if(i){_?n.texSubImage2D(34069+t,0,0,0,d[t].width,d[t].height,f,g,d[t].data):n.texImage2D(34069+t,0,v,d[t].width,d[t].height,0,f,g,d[t].data);for(let e=0;e0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=16384;const l=[],c=e.stencilBuffer?33306:36096,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(_o)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new vo;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class yo extends hn{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:Et)!==Et&&c!==At)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Et&&(n=gt),void 0===n&&c===At&&(n=Mt),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:st,this.minFilter=void 0!==o?o:st,this.flipY=!1,this.generateMipmaps=!1}}class Mo extends Le{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],_=[],x=new Set,y=new Map,M=new Pr;M.layers.enable(1),M.viewport=new un;const S=new Pr;S.layers.enable(2),S.viewport=new un;const b=[M,S],w=new go;w.layers.enable(1),w.layers.enable(2);let T=null,E=null;function A(t){const e=_.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&n.dispatchEvent({type:t.type,data:t.inputSource})}function C(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",L);for(let t=0;t=0&&(_[i]=null,v[i].disconnect(n))}for(let e=0;e=_.length){_.push(n),i=t;break}if(null===_[t]){_[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new xo,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new xo,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new xo,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",C),i.addEventListener("inputsourceschange",L),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:m.alpha,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new dn(d.framebufferWidth,d.framebufferHeight,{format:bt,type:ut,encoding:t.outputEncoding,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?35056:33190,n=m.stencil?At:Et,s=m.stencil?Mt:gt);const o={colorFormat:32856,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new dn(u.textureWidth,u.textureHeight,{format:bt,type:ut,depthTexture:new yo(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,encoding:t.outputEncoding,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),U.setContext(i),U.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const P=new gn,R=new gn;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;w.near=S.near=M.near=t.near,w.far=S.far=M.far=t.far,T===w.near&&E===w.far||(i.updateRenderState({depthNear:w.near,depthFar:w.far}),T=w.near,E=w.far);const e=t.parent,n=w.cameras;I(w,e);for(let t=0;te&&(y.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else x.add(t),y.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){D=t},this.dispose=function(){}}}function So(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===c&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===c&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Er(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===c&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function bo(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(35375):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0&&function(t,e,n,i){if(null===G){const t=Y.isWebGL2;G=new dn(1024,1024,{generateMipmaps:!0,type:X.has("EXT_color_buffer_half_float")?_t:ut,minFilter:ht,samples:t&&!0===o?4:0})}const r=y.getRenderTarget();y.setRenderTarget(G),y.clear();const s=y.toneMapping;y.toneMapping=W,Ot(t,n,i),$.updateMultisampleRenderTarget(G),$.updateRenderTargetMipmap(G);let a=!1;for(let t=0,r=e.length;t0&&Ot(r,e,n),s.length>0&&Ot(s,e,n),a.length>0&&Ot(a,e,n),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1)}function Ot(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?x[x.length-1]:null,_.pop(),g=_.length>0?_[_.length-1]:null},this.getActiveCubeFace=function(){return S},this.getActiveMipmapLevel=function(){return b},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,S=e,b=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=K.get(t);void 0!==n.__useDefaultFramebuffer?(Z.bindFramebuffer(36160,null),i=!1):void 0===n.__webglFramebuffer?$.setupRenderTarget(t):n.__hasExternalTextures&&$.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=Y.isWebGL2&&t.samples>0&&!1===$.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:l,A.copy(t.viewport),C.copy(t.scissor),L=t.scissorTest}else A.copy(N).multiplyScalar(I).floor(),C.copy(O).multiplyScalar(I).floor(),L=z;if(Z.bindFramebuffer(36160,r)&&Y.drawBuffers&&i&&Z.drawBuffers(t,r),Z.viewport(A),Z.scissor(C),Z.setScissorTest(L),s){const i=K.get(t.texture);Mt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;Mt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Z.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==bt&>.convert(o)!==Mt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===_t&&(X.has("EXT_color_buffer_half_float")||Y.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===ut||gt.convert(l)===Mt.getParameter(35738)||l===vt&&(Y.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Mt.readPixels(e,n,i,r,gt.convert(o),gt.convert(l),s)}finally{const t=null!==w?K.get(w).__webglFramebuffer:null;Z.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);$.setTexture2D(e,0),Mt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Z.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=gt.convert(n.format),o=gt.convert(n.type);$.setTexture2D(n,0),Mt.pixelStorei(37440,n.flipY),Mt.pixelStorei(37441,n.premultiplyAlpha),Mt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?Mt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Mt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Mt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Mt.generateMipmap(3553),Z.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=gt.convert(i.format),c=gt.convert(i.type);let h;if(i.isData3DTexture)$.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");$.setTexture2DArray(i,0),h=35866}Mt.pixelStorei(37440,i.flipY),Mt.pixelStorei(37441,i.premultiplyAlpha),Mt.pixelStorei(3317,i.unpackAlignment);const u=Mt.getParameter(3314),d=Mt.getParameter(32878),p=Mt.getParameter(3316),m=Mt.getParameter(3315),f=Mt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Mt.pixelStorei(3314,g.width),Mt.pixelStorei(32878,g.height),Mt.pixelStorei(3316,t.min.x),Mt.pixelStorei(3315,t.min.y),Mt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Mt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Mt.pixelStorei(3314,u),Mt.pixelStorei(32878,d),Mt.pixelStorei(3316,p),Mt.pixelStorei(3315,m),Mt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&Mt.generateMipmap(h),Z.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?$.setTextureCube(t,0):t.isData3DTexture?$.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?$.setTexture2DArray(t,0):$.setTexture2D(t,0),Z.unbindTexture()},this.resetState=function(){S=0,b=0,w=null,Z.reset(),xt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}}class Eo extends To{}Eo.prototype.isWebGL1Renderer=!0;class Ao{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Oi(t),this.density=e}clone(){return new Ao(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Co{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Oi(t),this.near=e,this.far=n}clone(){return new Co(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Lo extends vi{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Po{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=Ee,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ue()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:No.clone(),uv:Li.getInterpolation(No,Go,Vo,Ho,Wo,jo,qo,new We),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Yo(t,e,n,i,r,s){Bo.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Fo.x=s*Bo.x-r*Bo.y,Fo.y=r*Bo.x+s*Bo.y):Fo.copy(Bo),t.copy(e),t.x+=Fo.x,t.y+=Fo.y,t.applyMatrix4(ko)}const Zo=new gn,Jo=new gn;class Ko extends vi{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Zo.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Zo);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Zo.setFromMatrixPosition(t.matrixWorld),Jo.setFromMatrixPosition(this.matrixWorld);const n=Zo.distanceTo(Jo)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class zl extends hn{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Bl{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new We:new gn);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new gn,i=[],r=[],s=[],a=new gn,o=new qn;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new gn)}r[0]=new gn,s[0]=new gn;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(Ne(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(Ne(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Fl extends Bl{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new We,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Vl.subVectors(i[0],i[1]).add(i[0]),a=Vl);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Xl(a,o.x,l.x,c.x,h.x),Xl(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ac extends ir{constructor(t=[new We(0,-.5),new We(.5,0),new We(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=Ne(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new gn,u=new We,d=new gn,p=new gn,m=new gn;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Zi(h,3)),this.setAttribute("normal",new Zi(u,3)),this.setAttribute("uv",new Zi(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new cc(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class hc extends cc{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new hc(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class uc extends ir{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Zi(r,3)),this.setAttribute("normal",new Zi(r.slice(),3)),this.setAttribute("uv",new Zi(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new uc(t.vertices,t.indices,t.radius,t.details)}}class dc extends uc{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new dc(t.radius,t.detail)}}const pc=new gn,mc=new gn,fc=new gn,gc=new Li;class vc extends ir{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(Ie*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Sc(s,a,n,o,l,p,0),a};function yc(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Gc(s,t[s],t[s+1],a);return a&&Nc(a,a.next)&&(Vc(a),a=a.next),a}function Mc(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Nc(i,i.next)&&0!==Uc(i.prev,i,i.next))i=i.next;else{if(Vc(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Sc(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Pc(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?wc(t,i,r,s):bc(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Vc(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Sc(t=Tc(Mc(t),e,n),e,n,i,r,s,2):2===a&&Ec(t,e,n,i,r,s):Sc(Mc(t),e,n,i,r,s,1);break}}function bc(t){const e=t.prev,n=t,i=t.next;if(Uc(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Ic(r,o,s,l,a,c,m.x,m.y)&&Uc(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function wc(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Uc(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Pc(p,m,e,n,i),_=Pc(f,g,e,n,i);let x=t.prevZ,y=t.nextZ;for(;x&&x.z>=v&&y&&y.z<=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ic(o,h,l,u,c,d,x.x,x.y)&&Uc(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ic(o,h,l,u,c,d,y.x,y.y)&&Uc(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ic(o,h,l,u,c,d,x.x,x.y)&&Uc(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;y&&y.z<=_;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ic(o,h,l,u,c,d,y.x,y.y)&&Uc(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function Tc(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Nc(r,s)&&Oc(r,i,i.next,s)&&Fc(r,s)&&Fc(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Vc(i),Vc(i.next),i=t=s),i=i.next}while(i!==t);return Mc(i)}function Ec(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Dc(a,t)){let o=kc(a,t);return a=Mc(a,a.next),o=Mc(o,o.next),Sc(a,e,n,i,r,s,0),void Sc(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Ac(t,e){return t.x-e.x}function Cc(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Ic(an.x||i.x===n.x&&Lc(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=kc(n,t);return Mc(i,i.next),Mc(n,n.next)}function Lc(t,e){return Uc(t.prev,t,e.prev)<0&&Uc(e.next,t,t.next)<0}function Pc(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Rc(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Dc(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Oc(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Fc(t,e)&&Fc(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Uc(t.prev,t,e.prev)||Uc(t,e.prev,e))||Nc(t,e)&&Uc(t.prev,t,t.next)>0&&Uc(e.prev,e,e.next)>0)}function Uc(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Nc(t,e){return t.x===e.x&&t.y===e.y}function Oc(t,e,n,i){const r=Bc(Uc(t,e,n)),s=Bc(Uc(t,e,i)),a=Bc(Uc(n,i,t)),o=Bc(Uc(n,i,e));return r!==s&&a!==o||(!(0!==r||!zc(t,n,e))||(!(0!==s||!zc(t,i,e))||(!(0!==a||!zc(n,t,i))||!(0!==o||!zc(n,e,i)))))}function zc(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Bc(t){return t>0?1:t<0?-1:0}function Fc(t,e){return Uc(t.prev,t,t.next)<0?Uc(t,e,t.next)>=0&&Uc(t,t.prev,e)>=0:Uc(t,e,t.prev)<0||Uc(t,t.next,e)<0}function kc(t,e){const n=new Hc(t.i,t.x,t.y),i=new Hc(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Gc(t,e,n,i){const r=new Hc(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Vc(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Hc(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wc{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function qc(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new We(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new We(i/s,r/s)}const R=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class uh extends Ri{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Oi(16777215),this.specular=new Oi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ye,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=G,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class dh extends Ri{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Oi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ye,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class ph extends Ri{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ye,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class mh extends Ri{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Oi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Oi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ye,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=G,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class fh extends Ri{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Oi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ye,this.normalScale=new We(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class gh extends xl{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function vh(t,e,n){return xh(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function _h(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function xh(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function yh(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Mh(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Sh(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const bh={arraySlice:vh,convertArray:_h,isTypedArray:xh,getKeyframeOrder:yh,sortedArray:Mh,flattenJSON:Sh,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=vh(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=vh(t.resultBuffer,e,n)}if("quaternion"===r){(new fn).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=vh(n,r,s),this.values=vh(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&xh(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=vh(this.times),e=vh(this.values),n=this.getValueSize(),i=this.getInterpolation()===ue,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=vh(t,0,s),this.values=vh(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=vh(this.times,0),e=vh(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Ch.prototype.TimeBufferType=Float32Array,Ch.prototype.ValueBufferType=Float32Array,Ch.prototype.DefaultInterpolation=he;class Lh extends Ch{}Lh.prototype.ValueTypeName="bool",Lh.prototype.ValueBufferType=Array,Lh.prototype.DefaultInterpolation=ce,Lh.prototype.InterpolantFactoryMethodLinear=void 0,Lh.prototype.InterpolantFactoryMethodSmooth=void 0;class Ph extends Ch{}Ph.prototype.ValueTypeName="color";class Rh extends Ch{}Rh.prototype.ValueTypeName="number";class Ih extends wh{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)fn.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Dh extends Ch{InterpolantFactoryMethodLinear(t){return new Ih(this.times,this.values,this.getValueSize(),t)}}Dh.prototype.ValueTypeName="quaternion",Dh.prototype.DefaultInterpolation=he,Dh.prototype.InterpolantFactoryMethodSmooth=void 0;class Uh extends Ch{}Uh.prototype.ValueTypeName="string",Uh.prototype.ValueBufferType=Array,Uh.prototype.DefaultInterpolation=ce,Uh.prototype.InterpolantFactoryMethodLinear=void 0,Uh.prototype.InterpolantFactoryMethodSmooth=void 0;class Nh extends Ch{}Nh.prototype.ValueTypeName="vector";class Oh{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Ue(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(zh(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Ch.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Sh(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Vh[t])return void Vh[t].push({onLoad:e,onProgress:n,onError:i});Vh[t]=[],Vh[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Vh[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Bh.add(t,e);const n=Vh[t];delete Vh[t];for(let t=0,i=n.length;t{const n=Vh[t];if(void 0===n)throw this.manager.itemError(t),e;delete Vh[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class jh extends Gh{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Bh.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=Je("img");function o(){c(),Bh.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class qh extends vi{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Oi(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}class Xh extends qh{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Oi(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const Yh=new qn,Zh=new gn,Jh=new gn;class Kh{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new We(512,512),this.map=null,this.mapPass=null,this.matrix=new qn,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Gr,this._frameExtents=new We(1,1),this._viewportCount=1,this._viewports=[new un(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Zh.setFromMatrixPosition(t.matrixWorld),e.position.copy(Zh),Jh.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Jh),e.updateMatrixWorld(),Yh.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Yh),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(Yh)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class $h extends Kh{constructor(){super(new Pr(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*De*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class Qh extends qh{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.target=new vi,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new $h}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const tu=new qn,eu=new gn,nu=new gn;class iu extends Kh{constructor(){super(new Pr(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new We(4,2),this._viewportCount=6,this._viewports=[new un(2,1,1,1),new un(0,1,1,1),new un(3,1,1,1),new un(1,1,1,1),new un(3,0,1,1),new un(1,0,1,1)],this._cubeDirections=[new gn(1,0,0),new gn(-1,0,0),new gn(0,0,1),new gn(0,0,-1),new gn(0,1,0),new gn(0,-1,0)],this._cubeUps=[new gn(0,1,0),new gn(0,1,0),new gn(0,1,0),new gn(0,1,0),new gn(0,0,1),new gn(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),eu.setFromMatrixPosition(t.matrixWorld),n.position.copy(eu),nu.copy(n.position),nu.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(nu),n.updateMatrixWorld(),i.makeTranslation(-eu.x,-eu.y,-eu.z),tu.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(tu)}}class ru extends qh{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new iu}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class su extends Kh{constructor(){super(new es(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class au extends qh{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(vi.DEFAULT_UP),this.updateMatrix(),this.target=new vi,this.shadow=new su}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class ou extends qh{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class lu extends qh{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class cu{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new gn)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class hu extends qh{constructor(t=new cu,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class uu extends Gh{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new Wh(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=uu.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Oi).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Oi).setHex(r.value);break;case"v2":i.uniforms[e].value=(new We).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new gn).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new un).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new je).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new qn).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new We).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new We).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:oh,SpriteMaterial:Do,RawShaderMaterial:lh,ShaderMaterial:Cr,PointsMaterial:Pl,MeshPhysicalMaterial:hh,MeshStandardMaterial:ch,MeshPhongMaterial:uh,MeshToonMaterial:dh,MeshNormalMaterial:ph,MeshLambertMaterial:mh,MeshDepthMaterial:oo,MeshDistanceMaterial:lo,MeshBasicMaterial:Bi,MeshMatcapMaterial:fh,LineDashedMaterial:gh,LineBasicMaterial:xl,Material:Ri}[t]}}class du{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){fn.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;fn.multiplyQuaternionsFlat(t,s,t,e,t,n),fn.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Nu="\\[\\]\\.:\\/",Ou=new RegExp("["+Nu+"]","g"),zu="[^"+Nu+"]",Bu="[^"+Nu.replace("\\.","")+"]",Fu=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",zu)+/(WCOD+)?/.source.replace("WCOD",Bu)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",zu)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",zu)+"$"),ku=["material","materials","bones","map"];class Gu{constructor(t,e,n){this.path=e,this.parsedPath=n||Gu.parseTrackName(e),this.node=Gu.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Gu.Composite(t,e,n):new Gu(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Ou,"")}static parseTrackName(t){const e=Fu.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==ku.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===ge)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=pe,i.endingEnd=pe):(i.endingStart=t?this.zeroSlopeAtStart?pe:de:me,i.endingEnd=e?this.zeroSlopeAtEnd?pe:de:me)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const Hu=new Float32Array(1);class Wu{constructor(t){this.value=t}clone(){return new Wu(void 0===this.value.clone?this.value:this.value.clone())}}let ju=0;function qu(t,e){return t.distance-e.distance}function Xu(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new Gu(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}},t.AnimationUtils=bh,t.ArcCurve=kl,t.ArrayCamera=go,t.ArrowHelper=class extends vi{constructor(t=new gn(0,0,1),e=new gn(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===pd&&(pd=new ir,pd.setAttribute("position",new Zi([0,0,0,0,1,0],3)),md=new cc(0,.5,1,5,1),md.translate(0,-.5,0)),this.position.copy(e),this.line=new Tl(pd,new xl({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Mr(md,new Bi({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{dd.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(dd,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=Lu,t.AudioAnalyser=class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;nthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Yu).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},t.Box3=xn,t.Box3Helper=class extends Cl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new ir;i.setIndex(new qi(n,1)),i.setAttribute("position",new Zi([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new xl({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends br{constructor(t,e,n,i,r,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(t,e,n,i,r,s)}},t.BoxGeometry=br,t.BoxHelper=class extends Cl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new ir;r.setIndex(new qi(n,1)),r.setAttribute("position",new qi(i,3)),super(r,new xl({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&ud.setFromObject(this.object),ud.isEmpty())return;const e=ud.min,n=ud.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=qi,t.BufferGeometry=ir,t.BufferGeometryLoader=mu,t.ByteType=dt,t.Cache=Bh,t.Camera=Lr,t.CameraHelper=class extends Cl{constructor(t){const e=new ir,n=new xl({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new Zi(i,3)),e.setAttribute("color",new Zi(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Oi(16755200),c=new Oi(16711680),h=new Oi(43775),u=new Oi(16777215),d=new Oi(3355443);this.setColors(l,c,h,u,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;cd.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),hd("c",e,t,cd,0,0,-1),hd("t",e,t,cd,0,0,1),hd("n1",e,t,cd,-1,-1,-1),hd("n2",e,t,cd,1,-1,-1),hd("n3",e,t,cd,-1,1,-1),hd("n4",e,t,cd,1,1,-1),hd("f1",e,t,cd,-1,-1,1),hd("f2",e,t,cd,1,-1,1),hd("f3",e,t,cd,-1,1,1),hd("f4",e,t,cd,1,1,1),hd("u1",e,t,cd,.7,1.1,-1),hd("u2",e,t,cd,-.7,1.1,-1),hd("u3",e,t,cd,0,2,-1),hd("cf1",e,t,cd,-1,0,1),hd("cf2",e,t,cd,1,0,1),hd("cf3",e,t,cd,0,-1,1),hd("cf4",e,t,cd,0,1,1),hd("cn1",e,t,cd,-1,0,-1),hd("cn2",e,t,cd,1,0,-1),hd("cn3",e,t,cd,0,-1,-1),hd("cn4",e,t,cd,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends hn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends oc{constructor(t,e,n,i){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(t,e,n,i)}},t.CapsuleGeometry=oc,t.CatmullRomCurve3=ql,t.CineonToneMapping=X,t.CircleBufferGeometry=class extends lc{constructor(t,e,n,i){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(t,e,n,i)}},t.CircleGeometry=lc,t.ClampToEdgeWrapping=it,t.Clock=bu,t.Color=Oi,t.ColorKeyframeTrack=Ph,t.ColorManagement=rn,t.CompressedArrayTexture=class extends zl{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=it}},t.CompressedTexture=zl,t.CompressedTextureLoader=class extends Gh{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new zl,o=new Wh(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=lt),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e0){const n=new Fh(e);r=new jh(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new jh(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e1)for(let n=0;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Wc.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new _c,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Eo,t.WebGL3DRenderTarget=class extends dn{constructor(t=1,e=1,n=1){super(t,e),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new mn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends dn{constructor(t=1,e=1,n=1){super(t,e),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new pn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=Ur,t.WebGLMultipleRenderTargets=class extends dn{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLMultipleRenderTargets=!0;const r=this.texture;this.texture=[];for(let t=0;t 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; -var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; +var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13492,13 +13483,13 @@ var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; -var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) );\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; +var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; -var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; +var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; -var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; +var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13530,7 +13521,7 @@ var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\tuniform float morphTar var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; -var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; +var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13540,7 +13531,7 @@ var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; -var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; +var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13594,11 +13585,11 @@ var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; -var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; +var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13652,7 +13643,7 @@ const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive; const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; -const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; +const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14371,9 +14362,7 @@ ShaderLib.physical = { specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, - anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, - anisotropyMap: { value: null }, + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } } ] ), @@ -19240,8 +19229,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19395,9 +19382,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', - parameters.anisotropy ? '#define USE_ANISOTROPY' : '', - parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', - parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -19920,14 +19904,11 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; - const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; - const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; - const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20000,9 +19981,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, - anisotropy: HAS_ANISOTROPY, - anisotropyMap: HAS_ANISOTROPYMAP, - clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20046,8 +20024,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), - anisotropyMapUv: HAS_ANISOTROPY && getChannel( material.anisotropyMap.channel ), - clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20069,7 +20045,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities // - vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP && HAS_ANISOTROPY ), + vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs2: HAS_ATTRIBUTE_UV2, @@ -20199,7 +20175,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); - array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20269,8 +20244,6 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities _programLayers.enable( 13 ); if ( parameters.vertexTangents ) _programLayers.enable( 14 ); - if ( parameters.anisotropy ) - _programLayers.enable( 15 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27067,18 +27040,6 @@ function WebGLMaterials( renderer, properties ) { } - if ( material.anisotropy > 0 ) { - - uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); - - if ( material.anisotropyMap ) { - - uniforms.anisotropyMap.value = material.anisotropyMap; - - } - - } - uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29012,7 +28973,7 @@ class WebGLRenderer { const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); + const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -38411,9 +38372,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.type = 'MeshPhysicalMaterial'; - this.anisotropyRotation = 0; - this.anisotropyMap = null; - this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38457,31 +38415,30 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._anisotropy = 0; + this._sheen = 0.0; this._clearcoat = 0; this._iridescence = 0; - this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get anisotropy() { + get sheen() { - return this._anisotropy; + return this._sheen; } - set anisotropy( value ) { + set sheen( value ) { - if ( this._anisotropy > 0 !== value > 0 ) { + if ( this._sheen > 0 !== value > 0 ) { this.version ++; } - this._anisotropy = value; + this._sheen = value; } @@ -38521,24 +38478,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { } - get sheen() { - - return this._sheen; - - } - - set sheen( value ) { - - if ( this._sheen > 0 !== value > 0 ) { - - this.version ++; - - } - - this._sheen = value; - - } - get transmission() { return this._transmission; @@ -38568,10 +38507,6 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { }; - this.anisotropy = source.anisotropy; - this.anisotropyRotation = source.anisotropyRotation; - this.anisotropyMap = source.anisotropyMap; - this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -42852,8 +42787,6 @@ class MaterialLoader extends Loader { if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); - if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; - if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43054,8 +42987,6 @@ class MaterialLoader extends Loader { if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); - if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); - if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.module.min.js b/build/three.module.min.js index 84f3809ee86512..6a818bb79ea9a8 100644 --- a/build/three.module.min.js +++ b/build/three.module.min.js @@ -3,4 +3,4 @@ * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT */ -const t="151",e={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},i=0,r=1,s=2,a=3,o=0,l=1,c=2,h=3,u=0,d=1,p=2,f=2,m=0,g=1,v=2,y=3,_=4,x=5,M=100,b=101,S=102,w=103,T=104,E=200,A=201,C=202,P=203,L=204,R=205,I=206,D=207,U=208,N=209,O=210,z=0,B=1,F=2,k=3,V=4,H=5,G=6,W=7,j=0,X=1,q=2,Y=0,Z=1,J=2,K=3,$=4,Q=5,tt=300,et=301,nt=302,it=303,rt=304,st=306,at=1e3,ot=1001,lt=1002,ct=1003,ht=1004,ut=1004,dt=1005,pt=1005,ft=1006,mt=1007,gt=1007,vt=1008,yt=1008,_t=1009,xt=1010,Mt=1011,bt=1012,St=1013,wt=1014,Tt=1015,Et=1016,At=1017,Ct=1018,Pt=1020,Lt=1021,Rt=1023,It=1024,Dt=1025,Ut=1026,Nt=1027,Ot=1028,zt=1029,Bt=1030,Ft=1031,kt=1033,Vt=33776,Ht=33777,Gt=33778,Wt=33779,jt=35840,Xt=35841,qt=35842,Yt=35843,Zt=36196,Jt=37492,Kt=37496,$t=37808,Qt=37809,te=37810,ee=37811,ne=37812,ie=37813,re=37814,se=37815,ae=37816,oe=37817,le=37818,ce=37819,he=37820,ue=37821,de=36492,pe=36283,fe=36284,me=36285,ge=36286,ve=2200,ye=2201,_e=2202,xe=2300,Me=2301,be=2302,Se=2400,we=2401,Te=2402,Ee=2500,Ae=2501,Ce=0,Pe=1,Le=2,Re=3e3,Ie=3001,De=3200,Ue=3201,Ne=0,Oe=1,ze="",Be="srgb",Fe="srgb-linear",ke="display-p3",Ve=0,He=7680,Ge=7681,We=7682,je=7683,Xe=34055,qe=34056,Ye=5386,Ze=512,Je=513,Ke=514,$e=515,Qe=516,tn=517,en=518,nn=519,rn=35044,sn=35048,an=35040,on=35045,ln=35049,cn=35041,hn=35046,un=35050,dn=35042,pn="100",fn="300 es",mn=1035;class gn{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+vn[t>>16&255]+vn[t>>24&255]+"-"+vn[255&e]+vn[e>>8&255]+"-"+vn[e>>16&15|64]+vn[e>>24&255]+"-"+vn[63&n|128]+vn[n>>8&255]+"-"+vn[n>>16&255]+vn[n>>24&255]+vn[255&i]+vn[i>>8&255]+vn[i>>16&255]+vn[i>>24&255]).toLowerCase()}function bn(t,e,n){return Math.max(e,Math.min(n,t))}function Sn(t,e){return(t%e+e)%e}function wn(t,e,n){return(1-n)*t+n*e}function Tn(t){return 0==(t&t-1)&&0!==t}function En(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function An(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Cn(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Pn(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const Ln={DEG2RAD:_n,RAD2DEG:xn,generateUUID:Mn,clamp:bn,euclideanModulo:Sn,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:wn,damp:function(t,e,n,i){return wn(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Sn(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(yn=t);let e=yn+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*_n},radToDeg:function(t){return t*xn},isPowerOfTwo:Tn,ceilPowerOfTwo:En,floorPowerOfTwo:An,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),f=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*f,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*f,o*c);break;case"ZYZ":t.set(l*f,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Pn,denormalize:Cn};class Rn{constructor(t=0,e=0){Rn.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(bn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class In{constructor(){In.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],v=i[1],y=i[4],_=i[7],x=i[2],M=i[5],b=i[8];return r[0]=s*f+a*v+o*x,r[3]=s*m+a*y+o*M,r[6]=s*g+a*_+o*b,r[1]=l*f+c*v+h*x,r[4]=l*m+c*y+h*M,r[7]=l*g+c*_+h*b,r[2]=u*f+d*v+p*x,r[5]=u*m+d*y+p*M,r[8]=u*g+d*_+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=h*f,t[1]=(i*l-c*n)*f,t[2]=(a*n-i*s)*f,t[3]=u*f,t[4]=(c*e-i*o)*f,t[5]=(i*r-a*e)*f,t[6]=d*f,t[7]=(n*o-l*e)*f,t[8]=(s*e-n*r)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(Dn.makeScale(t,e)),this}rotate(t){return this.premultiply(Dn.makeRotation(-t)),this}translate(t,e){return this.premultiply(Dn.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const Dn=new In;function Un(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Nn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function On(t,e){return new Nn[t](e)}function zn(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Bn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Fn(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const kn=(new In).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Vn=(new In).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const Hn={[Fe]:t=>t,[Be]:t=>t.convertSRGBToLinear(),[ke]:function(t){return t.convertSRGBToLinear().applyMatrix3(Vn)}},Gn={[Fe]:t=>t,[Be]:t=>t.convertLinearToSRGB(),[ke]:function(t){return t.applyMatrix3(kn).convertLinearToSRGB()}},Wn={enabled:!1,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return Fe},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=Hn[e],r=Gn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let jn;class Xn{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===jn&&(jn=zn("canvas")),jn.width=t.width,jn.height=t.height;const n=jn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=jn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=zn("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==tt)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case at:t.x=t.x-Math.floor(t.x);break;case ot:t.x=t.x<0?0:1;break;case lt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case at:t.y=t.y-Math.floor(t.y);break;case ot:t.y=t.y<0?0:1;break;case lt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}Jn.DEFAULT_IMAGE=null,Jn.DEFAULT_MAPPING=tt,Jn.DEFAULT_ANISOTROPY=1;class Kn{constructor(t=0,e=0,n=0,i=1){Kn.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+f*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(bn(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class si{constructor(t=0,e=0,n=0){si.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(oi.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(oi.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ai.copy(this).projectOnVector(t),this.sub(ai)}reflect(t){return this.sub(ai.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(bn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const ai=new si,oi=new ri;class li{constructor(t=new si(1/0,1/0,1/0),e=new si(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,hi),hi.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(yi),_i.subVectors(this.max,yi),di.subVectors(t.a,yi),pi.subVectors(t.b,yi),fi.subVectors(t.c,yi),mi.subVectors(pi,di),gi.subVectors(fi,pi),vi.subVectors(di,fi);let e=[0,-mi.z,mi.y,0,-gi.z,gi.y,0,-vi.z,vi.y,mi.z,0,-mi.x,gi.z,0,-gi.x,vi.z,0,-vi.x,-mi.y,mi.x,0,-gi.y,gi.x,0,-vi.y,vi.x,0];return!!bi(e,di,pi,fi,_i)&&(e=[1,0,0,0,1,0,0,0,1],!!bi(e,di,pi,fi,_i)&&(xi.crossVectors(mi,gi),e=[xi.x,xi.y,xi.z],bi(e,di,pi,fi,_i)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,hi).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(hi).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ci[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ci[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ci[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ci[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ci[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ci[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ci[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ci[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ci)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const ci=[new si,new si,new si,new si,new si,new si,new si,new si],hi=new si,ui=new li,di=new si,pi=new si,fi=new si,mi=new si,gi=new si,vi=new si,yi=new si,_i=new si,xi=new si,Mi=new si;function bi(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Mi.fromArray(t,s);const a=r.x*Math.abs(Mi.x)+r.y*Math.abs(Mi.y)+r.z*Math.abs(Mi.z),o=e.dot(Mi),l=n.dot(Mi),c=i.dot(Mi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Si=new li,wi=new si,Ti=new si;class Ei{constructor(t=new si,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Si.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;wi.subVectors(t,this.center);const e=wi.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(wi,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Ti.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(wi.copy(t.center).add(Ti)),this.expandByPoint(wi.copy(t.center).sub(Ti))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Ai=new si,Ci=new si,Pi=new si,Li=new si,Ri=new si,Ii=new si,Di=new si;class Ui{constructor(t=new si,e=new si(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Ai)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Ai.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Ai.copy(this.origin).addScaledVector(this.direction,e),Ai.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Ci.copy(t).add(e).multiplyScalar(.5),Pi.copy(e).sub(t).normalize(),Li.copy(this.origin).sub(Ci);const r=.5*t.distanceTo(e),s=-this.direction.dot(Pi),a=Li.dot(this.direction),o=-Li.dot(Pi),l=Li.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Ci).addScaledVector(Pi,u),d}intersectSphere(t,e){Ai.subVectors(t.center,this.origin);const n=Ai.dot(this.direction),i=Ai.dot(Ai)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Ai)}intersectTriangle(t,e,n,i,r){Ri.subVectors(e,t),Ii.subVectors(n,t),Di.crossVectors(Ri,Ii);let s,a=this.direction.dot(Di);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Li.subVectors(this.origin,t);const o=s*this.direction.dot(Ii.crossVectors(Li,Ii));if(o<0)return null;const l=s*this.direction.dot(Ri.cross(Li));if(l<0)return null;if(o+l>a)return null;const c=-s*Li.dot(Di);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Ni{constructor(){Ni.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Ni).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Oi.setFromMatrixColumn(t,0).length(),r=1/Oi.setFromMatrixColumn(t,1).length(),s=1/Oi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Bi,t,Fi)}lookAt(t,e,n){const i=this.elements;return Hi.subVectors(t,e),0===Hi.lengthSq()&&(Hi.z=1),Hi.normalize(),ki.crossVectors(n,Hi),0===ki.lengthSq()&&(1===Math.abs(n.z)?Hi.x+=1e-4:Hi.z+=1e-4,Hi.normalize(),ki.crossVectors(n,Hi)),ki.normalize(),Vi.crossVectors(Hi,ki),i[0]=ki.x,i[4]=Vi.x,i[8]=Hi.x,i[1]=ki.y,i[5]=Vi.y,i[9]=Hi.y,i[2]=ki.z,i[6]=Vi.z,i[10]=Hi.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],y=n[7],_=n[11],x=n[15],M=i[0],b=i[4],S=i[8],w=i[12],T=i[1],E=i[5],A=i[9],C=i[13],P=i[2],L=i[6],R=i[10],I=i[14],D=i[3],U=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*P+l*D,r[4]=s*b+a*E+o*L+l*U,r[8]=s*S+a*A+o*R+l*N,r[12]=s*w+a*C+o*I+l*O,r[1]=c*M+h*T+u*P+d*D,r[5]=c*b+h*E+u*L+d*U,r[9]=c*S+h*A+u*R+d*N,r[13]=c*w+h*C+u*I+d*O,r[2]=p*M+f*T+m*P+g*D,r[6]=p*b+f*E+m*L+g*U,r[10]=p*S+f*A+m*R+g*N,r[14]=p*w+f*C+m*I+g*O,r[3]=v*M+y*T+_*P+x*D,r[7]=v*b+y*E+_*L+x*U,r[11]=v*S+y*A+_*R+x*N,r[15]=v*w+y*C+_*I+x*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],v=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,y=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,_=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,x=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m,M=e*v+n*y+i*_+r*x;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/M;return t[0]=v*b,t[1]=(f*u*r-h*m*r-f*i*d+n*m*d+h*i*g-n*u*g)*b,t[2]=(a*m*r-f*o*r+f*i*l-n*m*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(c*m*r-p*u*r+p*i*d-e*m*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*m*r-p*i*l+e*m*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=_*b,t[9]=(p*h*r-c*f*r-p*n*d+e*f*d+c*n*g-e*h*g)*b,t[10]=(s*f*r-p*a*r+p*n*l-e*f*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=x*b,t[13]=(c*f*i-p*h*i+p*n*u-e*f*u-c*n*m+e*h*m)*b,t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,f=s*c,m=s*h,g=a*h,v=o*l,y=o*c,_=o*h,x=n.x,M=n.y,b=n.z;return i[0]=(1-(f+g))*x,i[1]=(d+_)*x,i[2]=(p-y)*x,i[3]=0,i[4]=(d-_)*M,i[5]=(1-(u+g))*M,i[6]=(m+v)*M,i[7]=0,i[8]=(p+y)*b,i[9]=(m-v)*b,i[10]=(1-(u+f))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Oi.set(i[0],i[1],i[2]).length();const s=Oi.set(i[4],i[5],i[6]).length(),a=Oi.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],zi.copy(this);const o=1/r,l=1/s,c=1/a;return zi.elements[0]*=o,zi.elements[1]*=o,zi.elements[2]*=o,zi.elements[4]*=l,zi.elements[5]*=l,zi.elements[6]*=l,zi.elements[8]*=c,zi.elements[9]*=c,zi.elements[10]*=c,e.setFromRotationMatrix(zi),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Oi=new si,zi=new Ni,Bi=new si(0,0,0),Fi=new si(1,1,1),ki=new si,Vi=new si,Hi=new si,Gi=new Ni,Wi=new ri;class ji{constructor(t=0,e=0,n=0,i=ji.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(bn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-bn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(bn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-bn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(bn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-bn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Gi.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Gi,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Wi.setFromEuler(this),this.setFromQuaternion(Wi,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ji.DEFAULT_ORDER="XYZ";class Xi{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($i,t,Qi),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($i,tr,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){or.subVectors(i,e),lr.subVectors(n,e),cr.subVectors(t,e);const s=or.dot(or),a=or.dot(lr),o=or.dot(cr),l=lr.dot(lr),c=lr.dot(cr),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,hr),hr.x>=0&&hr.y>=0&&hr.x+hr.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===vr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),vr=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,hr),o.setScalar(0),o.addScaledVector(r,hr.x),o.addScaledVector(s,hr.y),o.addScaledVector(a,hr.z),o}static isFrontFacing(t,e,n,i){return or.subVectors(n,e),lr.subVectors(t,e),or.cross(lr).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return or.subVectors(this.c,this.b),lr.subVectors(this.a,this.b),.5*or.cross(lr).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return yr.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return yr.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===vr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),vr=!0),yr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return yr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return yr.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return yr.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ur.subVectors(i,n),dr.subVectors(r,n),fr.subVectors(t,n);const o=ur.dot(fr),l=dr.dot(fr);if(o<=0&&l<=0)return e.copy(n);mr.subVectors(t,i);const c=ur.dot(mr),h=dr.dot(mr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ur,s);gr.subVectors(t,r);const d=ur.dot(gr),p=dr.dot(gr);if(p>=0&&d<=p)return e.copy(r);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(dr,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return pr.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(pr,a);const g=1/(m+f+u);return s=f*g,a=u*g,e.copy(n).addScaledVector(ur,s).addScaledVector(dr,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let _r=0;class xr extends gn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:_r++}),this.uuid=Mn(),this.name="",this.type="Material",this.blending=g,this.side=u,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=L,this.blendDst=R,this.blendEquation=M,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=k,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=He,this.stencilZFail=He,this.stencilZPass=He,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==g&&(n.blending=this.blending),this.side!==u&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Mr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},br={h:0,s:0,l:0},Sr={h:0,s:0,l:0};function wr(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Tr{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Be){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Wn.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=Wn.workingColorSpace){return this.r=t,this.g=e,this.b=n,Wn.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=Wn.workingColorSpace){if(t=Sn(t,1),e=bn(e,0,1),n=bn(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=wr(r,i,t+1/3),this.g=wr(r,i,t),this.b=wr(r,i,t-1/3)}return Wn.toWorkingColorSpace(this,i),this}setStyle(t,e=Be){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,Wn.toWorkingColorSpace(this,e),n(r[4]),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,Wn.toWorkingColorSpace(this,e),n(r[4]),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const t=parseFloat(r[1])/360,i=parseFloat(r[2])/100,s=parseFloat(r[3])/100;return n(r[4]),this.setHSL(t,i,s,e)}break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Be){const n=Mr[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Bn(t.r),this.g=Bn(t.g),this.b=Bn(t.b),this}copyLinearToSRGB(t){return this.r=Fn(t.r),this.g=Fn(t.g),this.b=Fn(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Be){return Wn.fromWorkingColorSpace(Er.copy(this),t),bn(255*Er.r,0,255)<<16^bn(255*Er.g,0,255)<<8^bn(255*Er.b,0,255)<<0}getHexString(t=Be){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Wn.workingColorSpace){Wn.fromWorkingColorSpace(Er.copy(this),e);const n=Er.r,i=Er.g,r=Er.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Lr(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=bn(t,-65504,65504),Cr.floatView[0]=t;const e=Cr.uint32View[0],n=e>>23&511;return Cr.baseTable[n]+((8388607&e)>>Cr.shiftTable[n])}function Rr(t){const e=t>>10;return Cr.uint32View[0]=Cr.mantissaTable[Cr.offsetTable[e]+(1023&t)]+Cr.exponentTable[e],Cr.floatView[0]}const Ir={toHalfFloat:Lr,fromHalfFloat:Rr},Dr=new si,Ur=new Rn;class Nr{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}if(ts.copy(r).invert(),es.copy(t.ray).applyMatrix4(ts),null!==n.boundingBox&&!1===es.intersectsBox(n.boundingBox))return;let s;const a=n.index,o=n.attributes.position,l=n.attributes.uv,c=n.attributes.uv2,h=n.attributes.normal,u=n.groups,d=n.drawRange;if(null!==a)if(Array.isArray(i))for(let n=0,r=u.length;nn.far?null:{distance:c,point:gs.clone(),object:t}}(t,e,n,i,rs,ss,as,ms);if(h){r&&(cs.fromBufferAttribute(r,o),hs.fromBufferAttribute(r,l),us.fromBufferAttribute(r,c),h.uv=yr.getInterpolation(ms,rs,ss,as,cs,hs,us,new Rn)),s&&(cs.fromBufferAttribute(s,o),hs.fromBufferAttribute(s,l),us.fromBufferAttribute(s,c),h.uv2=yr.getInterpolation(ms,rs,ss,as,cs,hs,us,new Rn)),a&&(ds.fromBufferAttribute(a,o),ps.fromBufferAttribute(a,l),fs.fromBufferAttribute(a,c),h.normal=yr.getInterpolation(ms,rs,ss,as,ds,ps,fs,new si),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new si,materialIndex:0};yr.getNormal(rs,ss,as,t.normal),h.face=t}return h}class _s extends Qr{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,f,m,g,v){const y=s/m,_=p/g,x=s/2,M=p/2,b=f/2,S=m+1,w=g+1;let T=0,E=0;const A=new si;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/m),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Ts extends ar{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ni,this.projectionMatrix=new Ni,this.projectionMatrixInverse=new Ni}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Es extends Ts{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*xn*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*_n*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*xn*Math.atan(Math.tan(.5*_n*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*_n*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const As=-90;class Cs extends ar{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Es(As,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Es(As,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Es(As,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Es(As,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Es(As,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Es(As,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=Y,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Ps extends Jn{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:et,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ls extends $n{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Ps(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:ft}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new _s(5,5,5),r=new ws({name:"CubemapFromEquirect",uniforms:xs(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:m});r.uniforms.tEquirect.value=e;const s=new vs(i,r),a=e.minFilter;e.minFilter===vt&&(e.minFilter=ft);return new Cs(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Rs=new si,Is=new si,Ds=new In;class Us{constructor(t=new si(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Rs.subVectors(n,e).cross(Is.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Rs),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ds.getNormalMatrix(t),i=this.coplanarPoint(Rs).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Ns=new Ei,Os=new si;class zs{constructor(t=new Us,e=new Us,n=new Us,i=new Us,r=new Us,s=new Us){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,f-u,y-m).normalize(),e[1].setComponents(a+i,h+o,f+u,y+m).normalize(),e[2].setComponents(a+r,h+l,f+d,y+g).normalize(),e[3].setComponents(a-r,h-l,f-d,y-g).normalize(),e[4].setComponents(a-s,h-c,f-p,y-v).normalize(),e[5].setComponents(a+s,h+c,f+p,y+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Ns.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Ns.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Ns)}intersectsSprite(t){return Ns.center.set(0,0,0),Ns.radius=.7071067811865476,Ns.applyMatrix4(t.matrixWorld),this.intersectsSphere(Ns)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,Os.y=i.normal.y>0?t.max.y:t.min.y,Os.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Os)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Bs(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Fs(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) );\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Hs={common:{diffuse:{value:new Tr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new In}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new In}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new In}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new In},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new In},normalScale:{value:new Rn(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new In},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new In}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new In}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new In}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Tr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Tr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new In}},sprite:{diffuse:{value:new Tr(16777215)},opacity:{value:1},center:{value:new Rn(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaTest:{value:0}}},Gs={basic:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.fog]),vertexShader:Vs.meshbasic_vert,fragmentShader:Vs.meshbasic_frag},lambert:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)}}]),vertexShader:Vs.meshlambert_vert,fragmentShader:Vs.meshlambert_frag},phong:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)},specular:{value:new Tr(1118481)},shininess:{value:30}}]),vertexShader:Vs.meshphong_vert,fragmentShader:Vs.meshphong_frag},standard:{uniforms:Ms([Hs.common,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.roughnessmap,Hs.metalnessmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Vs.meshphysical_vert,fragmentShader:Vs.meshphysical_frag},toon:{uniforms:Ms([Hs.common,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.gradientmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)}}]),vertexShader:Vs.meshtoon_vert,fragmentShader:Vs.meshtoon_frag},matcap:{uniforms:Ms([Hs.common,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,{matcap:{value:null}}]),vertexShader:Vs.meshmatcap_vert,fragmentShader:Vs.meshmatcap_frag},points:{uniforms:Ms([Hs.points,Hs.fog]),vertexShader:Vs.points_vert,fragmentShader:Vs.points_frag},dashed:{uniforms:Ms([Hs.common,Hs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Vs.linedashed_vert,fragmentShader:Vs.linedashed_frag},depth:{uniforms:Ms([Hs.common,Hs.displacementmap]),vertexShader:Vs.depth_vert,fragmentShader:Vs.depth_frag},normal:{uniforms:Ms([Hs.common,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,{opacity:{value:1}}]),vertexShader:Vs.meshnormal_vert,fragmentShader:Vs.meshnormal_frag},sprite:{uniforms:Ms([Hs.sprite,Hs.fog]),vertexShader:Vs.sprite_vert,fragmentShader:Vs.sprite_frag},background:{uniforms:{uvTransform:{value:new In},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Vs.background_vert,fragmentShader:Vs.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Vs.backgroundCube_vert,fragmentShader:Vs.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Vs.cube_vert,fragmentShader:Vs.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Vs.equirect_vert,fragmentShader:Vs.equirect_frag},distanceRGBA:{uniforms:Ms([Hs.common,Hs.displacementmap,{referencePosition:{value:new si},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Vs.distanceRGBA_vert,fragmentShader:Vs.distanceRGBA_frag},shadow:{uniforms:Ms([Hs.lights,Hs.fog,{color:{value:new Tr(0)},opacity:{value:1}}]),vertexShader:Vs.shadow_vert,fragmentShader:Vs.shadow_frag}};Gs.physical={uniforms:Ms([Gs.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new In},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new In},clearcoatNormalScale:{value:new Rn(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new In},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new In},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new In},sheen:{value:0},sheenColor:{value:new Tr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new In},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new In},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new In},transmissionSamplerSize:{value:new Rn},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new In},attenuationDistance:{value:0},attenuationColor:{value:new Tr(0)},specularColor:{value:new Tr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new In},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new In},anisotropyVector:{value:new Rn},anisotropyMap:{value:null}}]),vertexShader:Vs.meshphysical_vert,fragmentShader:Vs.meshphysical_frag};const Ws={r:0,b:0,g:0};function js(t,e,n,i,r,s,a){const o=new Tr(0);let l,c,h=!0===s?0:1,p=null,f=0,m=null;function g(e,n){e.getRGB(Ws,bs(t)),i.buffers.color.setClear(Ws.r,Ws.g,Ws.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,g(o,h)},render:function(i,s){let a=!1,v=!0===s.isScene?s.background:null;if(v&&v.isTexture){v=(s.backgroundBlurriness>0?n:e).get(v)}const y=t.xr,_=y.getSession&&y.getSession();_&&"additive"===_.environmentBlendMode&&(v=null),null===v?g(o,h):v&&v.isColor&&(g(v,1),a=!0),(t.autoClear||a)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),v&&(v.isCubeTexture||v.mapping===st)?(void 0===c&&(c=new vs(new _s(1,1,1),new ws({name:"BackgroundCubeMaterial",uniforms:xs(Gs.backgroundCube.uniforms),vertexShader:Gs.backgroundCube.vertexShader,fragmentShader:Gs.backgroundCube.fragmentShader,side:d,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(c)),c.material.uniforms.envMap.value=v,c.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=s.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,c.material.toneMapped=v.encoding!==Ie,p===v&&f===v.version&&m===t.toneMapping||(c.material.needsUpdate=!0,p=v,f=v.version,m=t.toneMapping),c.layers.enableAll(),i.unshift(c,c.geometry,c.material,0,0,null)):v&&v.isTexture&&(void 0===l&&(l=new vs(new ks(2,2),new ws({name:"BackgroundMaterial",uniforms:xs(Gs.background.uniforms),vertexShader:Gs.background.vertexShader,fragmentShader:Gs.background.fragmentShader,side:u,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=v,l.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,l.material.toneMapped=v.encoding!==Ie,!0===v.matrixAutoUpdate&&v.updateMatrix(),l.material.uniforms.uvTransform.value.copy(v.matrix),p===v&&f===v.version&&m===t.toneMapping||(l.material.needsUpdate=!0,p=v,f=v.version,m=t.toneMapping),l.layers.enableAll(),i.unshift(l,l.geometry,l.material,0,0,null))}}}function Xs(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,_,d,x),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,_,d,x)}else{const t=!0===l.wireframe;c.geometry===_.id&&c.program===d.id&&c.wireframe===t||(c.geometry=_.id,c.program=d.id,c.wireframe=t,M=!0)}null!==x&&n.update(x,34963),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;f();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),f=t.getParameter(34921),m=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,_=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:_,floatVertexTextures:y&&_,maxSamples:s?t.getParameter(36183):0}}function Zs(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Us,o=new In,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=f.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Js(t){let e=new WeakMap;function n(t,e){return e===it?t.mapping=et:e===rt&&(t.mapping=nt),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===it||s===rt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new Ls(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class Ks extends Ts{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const $s=4,Qs=[.125,.215,.35,.446,.526,.582],ta=20,ea=new Ks,na=new Tr;let ia=null;const ra=(1+Math.sqrt(5))/2,sa=1/ra,aa=[new si(1,1,1),new si(-1,1,1),new si(1,1,-1),new si(-1,1,-1),new si(0,ra,sa),new si(0,ra,-sa),new si(sa,0,ra),new si(-sa,0,ra),new si(ra,sa,0),new si(-ra,sa,0)];class oa{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ia=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=ua(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ha(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-$s?o=Qs[a-t+$s-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,v=new Float32Array(f*p*d),y=new Float32Array(m*p*d),_=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,f*p*t),y.set(u,m*p*t);const r=[t,t,t,t,t,t];_.set(r,g*p*t)}const x=new Qr;x.setAttribute("position",new Nr(v,f)),x.setAttribute("uv",new Nr(y,m)),x.setAttribute("faceIndex",new Nr(_,g)),e.push(x),r>$s&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(ta),r=new si(0,1,0),s=new ws({name:"SphericalGaussianBlur",defines:{n:ta,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:m,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new vs(this._lodPlanes[0],t);this._renderer.compile(e,ea)}_sceneToCubeUV(t,e,n,i){const r=new Es(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(na),o.toneMapping=Y,o.autoClear=!1;const h=new Ar({name:"PMREM.Background",side:d,depthWrite:!1,depthTest:!1}),u=new vs(new _s,h);let p=!1;const f=t.background;f?f.isColor&&(h.color.copy(f),t.background=null,p=!0):(h.color.copy(na),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ca(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=f}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===et||t.mapping===nt;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=ua()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ha());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new vs(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ca(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,ea)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eta&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${ta}`);const m=[];let g=0;for(let t=0;tv-$s?i-v+$s:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(e),o.render(c,ea)}}function la(t,e,n){const i=new $n(t,e,n);return i.texture.mapping=st,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ca(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ha(){return new ws({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:m,depthTest:!1,depthWrite:!1})}function ua(){return new ws({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:m,depthTest:!1,depthWrite:!1})}function da(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function pa(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===it||s===rt,o=s===et||s===nt;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new oa(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(f=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const m=new Float32Array(p*f*4*r),g=new Qn(m,p,f,r);g.type=Tt,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=Ea[r];if(void 0===s&&(s=new Float32Array(r),Ea[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Ia(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Lo(t,e){const n=function(t){switch(t){case Re:return["Linear","( value )"];case Ie:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Ro(t,e){let n;switch(e){case Z:n="Linear";break;case J:n="Reinhard";break;case K:n="OptimizedCineon";break;case $:n="ACESFilmic";break;case Q:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Io(t){return""!==t}function Do(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Uo(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const No=/^[ \t]*#include +<([\w\d./]+)>/gm;function Oo(t){return t.replace(No,zo)}function zo(t,e){const n=Vs[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Oo(n)}const Bo=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Fo(t){return t.replace(Bo,ko)}function ko(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(_+="\n"),x=[g,v].filter(Io).join("\n"),x.length>0&&(x+="\n")):(_=[Vo(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Io).join("\n"),x=[g,Vo(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+f:"",m?"#define CUBEUV_TEXEL_WIDTH "+m.texelWidth:"",m?"#define CUBEUV_TEXEL_HEIGHT "+m.texelHeight:"",m?"#define CUBEUV_MAX_MIP "+m.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Y?"#define TONE_MAPPING":"",n.toneMapping!==Y?Vs.tonemapping_pars_fragment:"",n.toneMapping!==Y?Ro("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Vs.encodings_pars_fragment,Lo("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Io).join("\n")),a=Oo(a),a=Do(a,n),a=Uo(a,n),o=Oo(o),o=Do(o,n),o=Uo(o,n),a=Fo(a),o=Fo(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,x=["#define varying in",n.glslVersion===fn?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===fn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const b=M+x+o,S=Ao(r,35633,M+_+a),w=Ao(r,35632,b);if(r.attachShader(y,S),r.attachShader(y,w),void 0!==n.index0AttributeName?r.bindAttribLocation(y,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(y).trim(),n=r.getShaderInfoLog(S).trim(),i=r.getShaderInfoLog(w).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(y,35714))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,y,S,w);else{const t=Po(r,S,"vertex"),n=Po(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:_},fragmentShader:{log:i,prefix:x}})}let T,E;return r.deleteShader(S),r.deleteShader(w),this.getUniforms=function(){return void 0===T&&(T=new Eo(r,y)),T},this.getAttributes=function(){return void 0===E&&(E=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,Z=s.clearcoat>0,J=s.iridescence>0,K=s.sheen>0,$=s.transmission>0,Q=q&&!!s.anisotropyMap,tt=Z&&!!s.clearcoatMap,et=Z&&!!s.clearcoatNormalMap,nt=Z&&!!s.clearcoatRoughnessMap,it=J&&!!s.iridescenceMap,rt=J&&!!s.iridescenceThicknessMap,at=K&&!!s.sheenColorMap,ot=K&&!!s.sheenRoughnessMap,lt=!!s.specularMap,ct=!!s.specularColorMap,ht=!!s.specularIntensityMap,ut=$&&!!s.transmissionMap,dt=$&&!!s.thicknessMap,pt=!!s.gradientMap,ft=!!s.alphaMap,mt=s.alphaTest>0,gt=!!s.extensions,vt=!!b.attributes.uv2;return{isWebGL2:h,shaderID:E,shaderName:s.type,vertexShader:P,fragmentShader:L,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:m,instancing:N,instancingColor:N&&null!==x.instanceColor,supportsVertexTextures:f,outputEncoding:null===U?t.outputEncoding:!0===U.isXRRenderTarget?U.texture.encoding:Re,map:O,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:T,aoMap:F,lightMap:k,bumpMap:V,normalMap:H,displacementMap:f&&G,emissiveMap:W,normalMapObjectSpace:H&&s.normalMapType===Oe,normalMapTangentSpace:H&&s.normalMapType===Ne,decodeVideoTexture:O&&!0===s.map.isVideoTexture&&s.map.encoding===Ie,metalnessMap:j,roughnessMap:X,anisotropy:q,anisotropyMap:Q,clearcoat:Z,clearcoatMap:tt,clearcoatNormalMap:et,clearcoatRoughnessMap:nt,iridescence:J,iridescenceMap:it,iridescenceThicknessMap:rt,sheen:K,sheenColorMap:at,sheenRoughnessMap:ot,specularMap:lt,specularColorMap:ct,specularIntensityMap:ht,transmission:$,transmissionMap:ut,thicknessMap:dt,gradientMap:pt,opaque:!1===s.transparent&&s.blending===g,alphaMap:ft,alphaTest:mt,combine:s.combine,mapUv:O&&y(s.map.channel),aoMapUv:F&&y(s.aoMap.channel),lightMapUv:k&&y(s.lightMap.channel),bumpMapUv:V&&y(s.bumpMap.channel),normalMapUv:H&&y(s.normalMap.channel),displacementMapUv:G&&y(s.displacementMap.channel),emissiveMapUv:W&&y(s.emissiveMap.channel),metalnessMapUv:j&&y(s.metalnessMap.channel),roughnessMapUv:X&&y(s.roughnessMap.channel),anisotropyMapUv:q&&y(s.anisotropyMap.channel),clearcoatMapUv:tt&&y(s.clearcoatMap.channel),clearcoatNormalMapUv:et&&y(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:nt&&y(s.clearcoatRoughnessMap.channel),iridescenceMapUv:it&&y(s.iridescenceMap.channel),iridescenceThicknessMapUv:rt&&y(s.iridescenceThicknessMap.channel),sheenColorMapUv:at&&y(s.sheenColorMap.channel),sheenRoughnessMapUv:ot&&y(s.sheenRoughnessMap.channel),specularMapUv:lt&&y(s.specularMap.channel),specularColorMapUv:ct&&y(s.specularColorMap.channel),specularIntensityMapUv:ht&&y(s.specularIntensityMap.channel),transmissionMapUv:ut&&y(s.transmissionMap.channel),thicknessMapUv:dt&&y(s.thicknessMap.channel),alphaMapUv:ft&&y(s.alphaMap.channel),vertexTangents:!!b.attributes.tangent&&H&&q,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUvs2:vt,pointsUvs:!0===x.isPoints&&!!b.attributes.uv&&(O||ft),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:C,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:Y,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:gt&&!0===s.extensions.derivatives,extensionFragDepth:gt&&!0===s.extensions.fragDepth,extensionDrawBuffers:gt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:gt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUvs2&&o.enable(13);e.vertexTangents&&o.enable(14);e.anisotropy&&o.enable(15);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.decodeVideoTexture&&o.enable(17);e.opaque&&o.enable(18);e.pointsUvs&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=Gs[e];n=Ss.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Yo),i.length>1&&i.sort(e||Zo),r.length>1&&r.sort(e||Zo)}}}function Ko(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Jo,t.set(e,[r])):n>=i.length?(r=new Jo,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function $o(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new si,color:new Tr};break;case"SpotLight":n={position:new si,direction:new si,color:new Tr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new si,color:new Tr,distance:0,decay:0};break;case"HemisphereLight":n={direction:new si,skyColor:new Tr,groundColor:new Tr};break;case"RectAreaLight":n={color:new Tr,position:new si,halfWidth:new si,halfHeight:new si}}return t[e.id]=n,n}}}let Qo=0;function tl(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function el(t,e){const n=new $o,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Rn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Rn,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new si);const s=new si,a=new Ni,o=new Ni;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,v=0,y=0,_=0;s.sort(tl);const x=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Hs.LTC_FLOAT_1,r.rectAreaLTC2=Hs.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Hs.LTC_HALF_1,r.rectAreaLTC2=Hs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===f&&M.numDirectionalShadows===m&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===y||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=f,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+y-_,r.spotLightMap.length=y,r.numSpotLightShadowsWithMaps=_,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=f,M.numDirectionalShadows=m,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=y,r.version=Qo++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new nl(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class rl extends xr{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class sl extends xr{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const al="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",ol="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function ll(t,e,n){let i=new zs;const r=new Rn,s=new Rn,a=new Kn,o=new rl({depthPacking:Ue}),c=new sl,f={},g=n.maxTextureSize,v={[u]:d,[d]:u,[p]:p},y=new ws({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Rn},radius:{value:4}},vertexShader:al,fragmentShader:ol}),_=y.clone();_.defines.HORIZONTAL_PASS=1;const x=new Qr;x.setAttribute("position",new Nr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new vs(x,y),b=this;function S(n,i){const s=e.update(M);y.defines.VSM_SAMPLES!==n.blurSamples&&(y.defines.VSM_SAMPLES=n.blurSamples,_.defines.VSM_SAMPLES=n.blurSamples,y.needsUpdate=!0,_.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new $n(r.x,r.y)),y.uniforms.shadow_pass.value=n.map.texture,y.uniforms.resolution.value=n.mapSize,y.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,y,M,null),_.uniforms.shadow_pass.value=n.mapPass.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,_,M,null)}function w(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=f[t];void 0===i&&(i={},f[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===h?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function T(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lg||r.y>g)&&(r.x>g&&(s.x=Math.floor(g/p.x),r.x=s.x*p.x,u.mapSize.x=s.x),r.y>g&&(s.y=Math.floor(g/p.y),r.y=s.y*p.y,u.mapSize.y=s.y)),null===u.map){const t=this.type!==h?{minFilter:ct,magFilter:ct}:{};u.map=new $n(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,ft={};const mt=t.getParameter(3088),gt=t.getParameter(2978),vt=(new Kn).fromArray(mt),yt=(new Kn).fromArray(gt);function _t(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?An:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===m&&(m=y(s,a));const o=n?y(s,a):m;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function x(t){return Tn(t.width)&&Tn(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==ct&&t.minFilter!==ft}function b(e){t.generateMipmap(e)}function S(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===Ie&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function w(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==ct&&t.minFilter!==ft?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(t){return t===ct||t===ht||t===dt?9728:9729}function E(t){const e=t.target;e.removeEventListener("dispose",E),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&C(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&f.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void N(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(3553,r.__webglTexture,33984+e)}const R={[at]:10497,[ot]:33071,[lt]:33648},I={[ct]:9728,[ht]:9984,[dt]:9986,[ft]:9729,[mt]:9985,[vt]:9987};function D(n,s,a){if(a?(t.texParameteri(n,10242,R[s.wrapS]),t.texParameteri(n,10243,R[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,R[s.wrapR]),t.texParameteri(n,10240,I[s.magFilter]),t.texParameteri(n,10241,I[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===ot&&s.wrapT===ot||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,T(s.magFilter)),t.texParameteri(n,10241,T(s.minFilter)),s.minFilter!==ct&&s.minFilter!==ft&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===ct)return;if(s.minFilter!==dt&&s.minFilter!==vt)return;if(s.type===Tt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Et&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function U(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",E));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&C(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function N(e,r,a){let l=3553;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=35866),r.isData3DTexture&&(l=32879);const c=U(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,33984+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=function(t){return!o&&(t.wrapS!==ot||t.wrapT!==ot||t.minFilter!==ct&&t.minFilter!==ft)}(r)&&!1===x(r.image);let i=_(r.image,e,!1,h);i=V(r,i);const p=x(i)||o,f=s.convert(r.format,r.encoding);let m,g=s.convert(r.type),v=S(r.internalFormat,f,g,r.encoding,r.isVideoTexture);D(l,r,p);const y=r.mipmaps,T=o&&!0!==r.isVideoTexture,E=void 0===d.__version||!0===c,A=w(r,i,p);if(r.isDepthTexture)v=6402,o?v=r.type===Tt?36012:r.type===wt?33190:r.type===Pt?35056:33189:r.type===Tt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Ut&&6402===v&&r.type!==bt&&r.type!==wt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=wt,g=s.convert(r.type)),r.format===Nt&&6402===v&&(v=34041,r.type!==Pt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Pt,g=s.convert(r.type))),E&&(T?n.texStorage2D(3553,1,v,i.width,i.height):n.texImage2D(3553,0,v,i.width,i.height,0,f,g,null));else if(r.isDataTexture)if(y.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,y[0].width,y[0].height);for(let t=0,e=y.length;t>=1,e>>=1}}else if(y.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,y[0].width,y[0].height);for(let t=0,e=y.length;t=34069&&l<=34074)&&t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function z(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Tt?r=36012:e.type===wt&&(r=33190));const i=F(n);k(n)?d.renderbufferStorageMultisampleEXT(36161,i,r,n.width,n.height):t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=F(n);i&&!1===k(n)?t.renderbufferStorageMultisample(36161,r,35056,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(36161,r,35056,n.width,n.height):t.renderbufferStorage(36161,34041,n.width,n.height),t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===mn||i!==Re&&(i===Ie?!1===o?!0===e.has("EXT_sRGB")&&r===Rt?(t.format=mn,t.minFilter=ft,t.generateMipmaps=!1):n=Xn.sRGBToLinear(n):r===Rt&&s===_t||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=P;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),P+=1,t},this.resetTextureUnits=function(){P=0},this.setTexture2D=L,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(35866,r.__webglTexture,33984+e)},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(32879,r.__webglTexture,33984+e)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=U(e,r),h=r.source;n.bindTexture(34067,e.__webglTexture,33984+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:_(r.image[t],!1,!0,c),d[t]=V(r,d[t]);const p=d[0],f=x(p)||o,m=s.convert(r.format,r.encoding),g=s.convert(r.type),v=S(r.internalFormat,m,g,r.encoding),y=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let E,A=w(r,p,f);if(D(34067,r,f),e){y&&T&&n.texStorage2D(34067,A,v,p.width,p.height);for(let t=0;t<6;t++){E=d[t].mipmaps;for(let e=0;e0&&A++,n.texStorage2D(34067,A,v,d[0].width,d[0].height));for(let t=0;t<6;t++)if(i){y?n.texSubImage2D(34069+t,0,0,0,d[t].width,d[t].height,m,g,d[t].data):n.texImage2D(34069+t,0,v,d[t].width,d[t].height,0,m,g,d[t].data);for(let e=0;e0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=16384;const l=[],c=e.stencilBuffer?33306:36096,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(fl)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new pl;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class gl extends Jn{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:Ut)!==Ut&&c!==Nt)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Ut&&(n=wt),void 0===n&&c===Nt&&(n=Pt),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:ct,this.minFilter=void 0!==o?o:ct,this.flipY=!1,this.generateMipmaps=!1}}class vl extends gn{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const f=e.getContextAttributes();let m=null,g=null;const v=[],y=[],_=new Set,x=new Map,M=new Es;M.layers.enable(1),M.viewport=new Kn;const b=new Es;b.layers.enable(2),b.viewport=new Kn;const S=[M,b],w=new dl;w.layers.enable(1),w.layers.enable(2);let T=null,E=null;function A(t){const e=y.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&n.dispatchEvent({type:t.type,data:t.inputSource})}function C(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",P);for(let t=0;t=0&&(y[i]=null,v[i].disconnect(n))}for(let e=0;e=y.length){y.push(n),i=t;break}if(null===y[t]){y[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new ml,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new ml,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new ml,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(m=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",C),i.addEventListener("inputsourceschange",P),!0!==f.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||f.antialias,alpha:f.alpha,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new $n(d.framebufferWidth,d.framebufferHeight,{format:Rt,type:_t,encoding:t.outputEncoding,stencilBuffer:f.stencil})}else{let n=null,s=null,a=null;f.depth&&(a=f.stencil?35056:33190,n=f.stencil?Nt:Ut,s=f.stencil?Pt:wt);const o={colorFormat:32856,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new $n(u.textureWidth,u.textureHeight,{format:Rt,type:_t,depthTexture:new gl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,encoding:t.outputEncoding,samples:f.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),U.setContext(i),U.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const L=new si,R=new si;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;w.near=b.near=M.near=t.near,w.far=b.far=M.far=t.far,T===w.near&&E===w.far||(i.updateRenderState({depthNear:w.near,depthFar:w.far}),T=w.near,E=w.far);const e=t.parent,n=w.cameras;I(w,e);for(let t=0;te&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else _.add(t),x.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){D=t},this.dispose=function(){}}}function yl(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===d&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===d&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,bs(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===d&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function _l(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(35375):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color,f=i.toneMapped?x.toneMapping:Y,m=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,g=void 0!==m?m.length:0,y=K.get(i),_=v.state.lights;if(!0===F&&(!0===k||t!==E)){const e=t===E&&i.id===T;lt.setState(i,t,e)}let M=!1;i.version===y.__version?y.needsLights&&y.lightsStateVersion!==_.state.version||y.outputEncoding!==o||r.isInstancedMesh&&!1===y.instancing?M=!0:r.isInstancedMesh||!0!==y.instancing?r.isSkinnedMesh&&!1===y.skinning?M=!0:r.isSkinnedMesh||!0!==y.skinning?y.envMap!==l||!0===i.fog&&y.fog!==s?M=!0:void 0===y.numClippingPlanes||y.numClippingPlanes===lt.numPlanes&&y.numIntersection===lt.numIntersection?(y.vertexAlphas!==c||y.vertexTangents!==h||y.morphTargets!==u||y.morphNormals!==d||y.morphColors!==p||y.toneMapping!==f||!0===q.isWebGL2&&y.morphTargetsCount!==g)&&(M=!0):M=!0:M=!0:M=!0:(M=!0,y.__version=i.version);let b=y.currentProgram;!0===M&&(b=Bt(i,e,r));let S=!1,A=!1,C=!1;const P=b.getUniforms(),L=y.uniforms;Z.useProgram(b.program)&&(S=!0,A=!0,C=!0);i.id!==T&&(T=i.id,A=!0);if(S||E!==t){if(P.setValue(yt,"projectionMatrix",t.projectionMatrix),q.logarithmicDepthBuffer&&P.setValue(yt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),E!==t&&(E=t,A=!0,C=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=P.map.cameraPosition;void 0!==e&&e.setValue(yt,G.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&P.setValue(yt,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&P.setValue(yt,"viewMatrix",t.matrixWorldInverse)}if(r.isSkinnedMesh){P.setOptional(yt,r,"bindMatrix"),P.setOptional(yt,r,"bindMatrixInverse");const t=r.skeleton;t&&(q.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),P.setValue(yt,"boneTexture",t.boneTexture,$),P.setValue(yt,"boneTextureSize",t.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const D=n.morphAttributes;(void 0!==D.position||void 0!==D.normal||void 0!==D.color&&!0===q.isWebGL2)&&ut.update(r,n,b);(A||y.receiveShadow!==r.receiveShadow)&&(y.receiveShadow=r.receiveShadow,P.setValue(yt,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(L.envMap.value=l,L.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1);A&&(P.setValue(yt,"toneMappingExposure",x.toneMappingExposure),y.needsLights&&(N=C,(U=L).ambientLightColor.needsUpdate=N,U.lightProbe.needsUpdate=N,U.directionalLights.needsUpdate=N,U.directionalLightShadows.needsUpdate=N,U.pointLights.needsUpdate=N,U.pointLightShadows.needsUpdate=N,U.spotLights.needsUpdate=N,U.spotLightShadows.needsUpdate=N,U.rectAreaLights.needsUpdate=N,U.hemisphereLights.needsUpdate=N),s&&!0===i.fog&&st.refreshFogUniforms(L,s),st.refreshMaterialUniforms(L,i,I,R,V),Eo.upload(yt,y.uniformsList,L,$));var U,N;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(Eo.upload(yt,y.uniformsList,L,$),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&P.setValue(yt,"center",r.center);if(P.setValue(yt,"modelViewMatrix",r.modelViewMatrix),P.setValue(yt,"normalMatrix",r.normalMatrix),P.setValue(yt,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e0&&function(t,e,n,i){if(null===V){const t=q.isWebGL2;V=new $n(1024,1024,{generateMipmaps:!0,type:X.has("EXT_color_buffer_half_float")?Et:_t,minFilter:vt,samples:t&&!0===o?4:0})}const r=x.getRenderTarget();x.setRenderTarget(V),x.clear();const s=x.toneMapping;x.toneMapping=Y,Ot(t,n,i),$.updateMultisampleRenderTarget(V),$.updateRenderTargetMipmap(V);let a=!1;for(let t=0,r=e.length;t0&&Ot(r,e,n),s.length>0&&Ot(s,e,n),a.length>0&&Ot(a,e,n),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1)}function Ot(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?_[_.length-1]:null,y.pop(),g=y.length>0?y[y.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,b=e,S=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=K.get(t);void 0!==n.__useDefaultFramebuffer?(Z.bindFramebuffer(36160,null),i=!1):void 0===n.__webglFramebuffer?$.setupRenderTarget(t):n.__hasExternalTextures&&$.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=q.isWebGL2&&t.samples>0&&!1===$.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:l,A.copy(t.viewport),C.copy(t.scissor),P=t.scissorTest}else A.copy(N).multiplyScalar(I).floor(),C.copy(O).multiplyScalar(I).floor(),P=z;if(Z.bindFramebuffer(36160,r)&&q.drawBuffers&&i&&Z.drawBuffers(t,r),Z.viewport(A),Z.scissor(C),Z.setScissorTest(P),s){const i=K.get(t.texture);yt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;yt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Z.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==Rt&&ft.convert(o)!==yt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Et&&(X.has("EXT_color_buffer_half_float")||q.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===_t||ft.convert(l)===yt.getParameter(35738)||l===Tt&&(q.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&yt.readPixels(e,n,i,r,ft.convert(o),ft.convert(l),s)}finally{const t=null!==w?K.get(w).__webglFramebuffer:null;Z.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);$.setTexture2D(e,0),yt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Z.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=ft.convert(n.format),o=ft.convert(n.type);$.setTexture2D(n,0),yt.pixelStorei(37440,n.flipY),yt.pixelStorei(37441,n.premultiplyAlpha),yt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?yt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?yt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):yt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&yt.generateMipmap(3553),Z.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=ft.convert(i.format),c=ft.convert(i.type);let h;if(i.isData3DTexture)$.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");$.setTexture2DArray(i,0),h=35866}yt.pixelStorei(37440,i.flipY),yt.pixelStorei(37441,i.premultiplyAlpha),yt.pixelStorei(3317,i.unpackAlignment);const u=yt.getParameter(3314),d=yt.getParameter(32878),p=yt.getParameter(3316),f=yt.getParameter(3315),m=yt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;yt.pixelStorei(3314,g.width),yt.pixelStorei(32878,g.height),yt.pixelStorei(3316,t.min.x),yt.pixelStorei(3315,t.min.y),yt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),yt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),yt.pixelStorei(3314,u),yt.pixelStorei(32878,d),yt.pixelStorei(3316,p),yt.pixelStorei(3315,f),yt.pixelStorei(32877,m),0===r&&i.generateMipmaps&&yt.generateMipmap(h),Z.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?$.setTextureCube(t,0):t.isData3DTexture?$.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?$.setTexture2DArray(t,0):$.setTexture2D(t,0),Z.unbindTexture()},this.resetState=function(){b=0,S=0,w=null,Z.reset(),mt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}}class bl extends Ml{}bl.prototype.isWebGL1Renderer=!0;class Sl{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Tr(t),this.density=e}clone(){return new Sl(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class wl{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Tr(t),this.near=e,this.far=n}clone(){return new wl(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Tl extends ar{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class El{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Mn()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Rl.clone(),uv:yr.getInterpolation(Rl,zl,Bl,Fl,kl,Vl,Hl,new Rn),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Wl(t,e,n,i,r,s){Ul.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Nl.x=s*Ul.x-r*Ul.y,Nl.y=r*Ul.x+s*Ul.y):Nl.copy(Ul),t.copy(e),t.x+=Nl.x,t.y+=Nl.y,t.applyMatrix4(Ol)}const jl=new si,Xl=new si;class ql extends ar{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){jl.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(jl);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){jl.setFromMatrixPosition(t.matrixWorld),Xl.setFromMatrixPosition(this.matrixWorld);const n=jl.distanceTo(Xl)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(f.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Dc extends Jn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:ft,this.magFilter=void 0!==r?r:ft,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Uc extends Jn{constructor(t,e,n){super({width:t,height:e}),this.isFramebufferTexture=!0,this.format=n,this.magFilter=ct,this.minFilter=ct,this.generateMipmaps=!1,this.needsUpdate=!0}}class Nc extends Jn{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Oc extends Nc{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ot}}class zc extends Jn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Bc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Rn:new si);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new si,i=[],r=[],s=[],a=new si,o=new Ni;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new si)}r[0]=new si,s[0]=new si;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(bn(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(bn(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Fc extends Bc{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new Rn,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Hc.subVectors(i[0],i[1]).add(i[0]),a=Hc);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(qc(a,o.x,l.x,c.x,h.x),qc(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ah extends Qr{constructor(t=[new Rn(0,-.5),new Rn(.5,0),new Rn(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=bn(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new si,u=new Rn,d=new si,p=new si,f=new si;let m=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:m=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(f.x,f.y,f.z);break;default:m=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),f=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*f,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*f;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Wr(h,3)),this.setAttribute("normal",new Wr(u,3)),this.setAttribute("uv",new Wr(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new ch(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class hh extends ch{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new hh(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class uh extends Qr{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Wr(r,3)),this.setAttribute("normal",new Wr(r.slice(),3)),this.setAttribute("uv",new Wr(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new uh(t.vertices,t.indices,t.radius,t.details)}}class dh extends uh{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new dh(t.radius,t.detail)}}const ph=new si,fh=new si,mh=new si,gh=new yr;class vh extends Qr{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(_n*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return bh(s,a,n,o,l,p,0),a};function xh(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Vh(s,t[s],t[s+1],a);return a&&Nh(a,a.next)&&(Hh(a),a=a.next),a}function Mh(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Nh(i,i.next)&&0!==Uh(i.prev,i,i.next))i=i.next;else{if(Hh(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function bh(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Lh(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?wh(t,i,r,s):Sh(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Hh(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?bh(t=Th(Mh(t),e,n),e,n,i,r,s,2):2===a&&Eh(t,e,n,i,r,s):bh(Mh(t),e,n,i,r,s,1);break}}function Sh(t){const e=t.prev,n=t,i=t.next;if(Uh(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=i.next;for(;f!==e;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&Ih(r,o,s,l,a,c,f.x,f.y)&&Uh(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function wh(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Uh(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Lh(p,f,e,n,i),y=Lh(m,g,e,n,i);let _=t.prevZ,x=t.nextZ;for(;_&&_.z>=v&&x&&x.z<=y;){if(_.x>=p&&_.x<=m&&_.y>=f&&_.y<=g&&_!==r&&_!==a&&Ih(o,h,l,u,c,d,_.x,_.y)&&Uh(_.prev,_,_.next)>=0)return!1;if(_=_.prevZ,x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==a&&Ih(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;_&&_.z>=v;){if(_.x>=p&&_.x<=m&&_.y>=f&&_.y<=g&&_!==r&&_!==a&&Ih(o,h,l,u,c,d,_.x,_.y)&&Uh(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;x&&x.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==r&&x!==a&&Ih(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Th(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Nh(r,s)&&Oh(r,i,i.next,s)&&Fh(r,s)&&Fh(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Hh(i),Hh(i.next),i=t=s),i=i.next}while(i!==t);return Mh(i)}function Eh(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Dh(a,t)){let o=kh(a,t);return a=Mh(a,a.next),o=Mh(o,o.next),bh(a,e,n,i,r,s,0),void bh(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Ah(t,e){return t.x-e.x}function Ch(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Ih(an.x||i.x===n.x&&Ph(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=kh(n,t);return Mh(i,i.next),Mh(n,n.next)}function Ph(t,e){return Uh(t.prev,t,e.prev)<0&&Uh(e.next,t,t.next)<0}function Lh(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Rh(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Dh(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Oh(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Fh(t,e)&&Fh(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Uh(t.prev,t,e.prev)||Uh(t,e.prev,e))||Nh(t,e)&&Uh(t.prev,t,t.next)>0&&Uh(e.prev,e,e.next)>0)}function Uh(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Nh(t,e){return t.x===e.x&&t.y===e.y}function Oh(t,e,n,i){const r=Bh(Uh(t,e,n)),s=Bh(Uh(t,e,i)),a=Bh(Uh(n,i,t)),o=Bh(Uh(n,i,e));return r!==s&&a!==o||(!(0!==r||!zh(t,n,e))||(!(0!==s||!zh(t,i,e))||(!(0!==a||!zh(n,t,i))||!(0!==o||!zh(n,e,i)))))}function zh(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Bh(t){return t>0?1:t<0?-1:0}function Fh(t,e){return Uh(t.prev,t,t.next)<0?Uh(t,e,t.next)>=0&&Uh(t,t.prev,e)>=0:Uh(t,e,t.prev)<0||Uh(t,t.next,e)<0}function kh(t,e){const n=new Gh(t.i,t.x,t.y),i=new Gh(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Vh(t,e,n,i){const r=new Gh(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Hh(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Gh(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wh{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function Xh(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,f=e.y+a/u,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-o*l);i=p+a*m-t.x,r=f+o*m-t.y;const g=i*i+r*r;if(g<=2)return new Rn(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new Rn(i/s,r/s)}const R=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class uu extends xr{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Tr(16777215),this.specular=new Tr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=j,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class du extends xr{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Tr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class pu extends xr{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class fu extends xr{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Tr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=j,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class mu extends xr{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Tr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class gu extends mc{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function vu(t,e,n){return _u(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function yu(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function _u(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function xu(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Mu(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function bu(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Su={arraySlice:vu,convertArray:yu,isTypedArray:_u,getKeyframeOrder:xu,sortedArray:Mu,flattenJSON:bu,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=vu(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=vu(t.resultBuffer,e,n)}if("quaternion"===r){(new ri).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=vu(n,r,s),this.values=vu(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&_u(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=vu(this.times),e=vu(this.values),n=this.getValueSize(),i=this.getInterpolation()===be,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=vu(t,0,s),this.values=vu(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=vu(this.times,0),e=vu(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Cu.prototype.TimeBufferType=Float32Array,Cu.prototype.ValueBufferType=Float32Array,Cu.prototype.DefaultInterpolation=Me;class Pu extends Cu{}Pu.prototype.ValueTypeName="bool",Pu.prototype.ValueBufferType=Array,Pu.prototype.DefaultInterpolation=xe,Pu.prototype.InterpolantFactoryMethodLinear=void 0,Pu.prototype.InterpolantFactoryMethodSmooth=void 0;class Lu extends Cu{}Lu.prototype.ValueTypeName="color";class Ru extends Cu{}Ru.prototype.ValueTypeName="number";class Iu extends wu{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)ri.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Du extends Cu{InterpolantFactoryMethodLinear(t){return new Iu(this.times,this.values,this.getValueSize(),t)}}Du.prototype.ValueTypeName="quaternion",Du.prototype.DefaultInterpolation=Me,Du.prototype.InterpolantFactoryMethodSmooth=void 0;class Uu extends Cu{}Uu.prototype.ValueTypeName="string",Uu.prototype.ValueBufferType=Array,Uu.prototype.DefaultInterpolation=xe,Uu.prototype.InterpolantFactoryMethodLinear=void 0,Uu.prototype.InterpolantFactoryMethodSmooth=void 0;class Nu extends Cu{}Nu.prototype.ValueTypeName="vector";class Ou{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Mn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(zu(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Cu.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];bu(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Hu[t])return void Hu[t].push({onLoad:e,onProgress:n,onError:i});Hu[t]=[],Hu[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Hu[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Bu.add(t,e);const n=Hu[t];delete Hu[t];for(let t=0,i=n.length;t{const n=Hu[t];if(void 0===n)throw this.manager.itemError(t),e;delete Hu[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class ju extends Vu{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Wu(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Tr).setHex(r.value);break;case"v2":i.uniforms[e].value=(new Rn).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new si).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new Kn).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new In).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new Ni).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Rn).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Rn).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:ou,SpriteMaterial:Pl,RawShaderMaterial:lu,ShaderMaterial:ws,PointsMaterial:Ec,MeshPhysicalMaterial:hu,MeshStandardMaterial:cu,MeshPhongMaterial:uu,MeshToonMaterial:du,MeshNormalMaterial:pu,MeshLambertMaterial:fu,MeshDepthMaterial:rl,MeshDistanceMaterial:sl,MeshBasicMaterial:Ar,MeshMatcapMaterial:mu,LineDashedMaterial:gu,LineBasicMaterial:mc,Material:xr}[t]}}class vd{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){const n=new Fu(e);r=new qu(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new qu(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){ri.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;ri.multiplyQuaternionsFlat(t,s,t,e,t,n),ri.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Zd="\\[\\]\\.:\\/",Jd=new RegExp("["+Zd+"]","g"),Kd="[^"+Zd+"]",$d="[^"+Zd.replace("\\.","")+"]",Qd=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",Kd)+/(WCOD+)?/.source.replace("WCOD",$d)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Kd)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Kd)+"$"),tp=["material","materials","bones","map"];class ep{constructor(t,e,n){this.path=e,this.parsedPath=n||ep.parseTrackName(e),this.node=ep.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new ep.Composite(t,e,n):new ep(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Jd,"")}static parseTrackName(t){const e=Qd.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==tp.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new ep(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class ip{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:Se,endingEnd:Se};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===Ae)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=we,i.endingEnd=we):(i.endingStart=t?this.zeroSlopeAtStart?we:Se:Te,i.endingEnd=e?this.zeroSlopeAtEnd?we:Se:Te)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const rp=new Float32Array(1);class sp extends gn{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Yd(ep.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,gp).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const yp=new si,_p=new si;class xp{constructor(t=new si,e=new si){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){yp.subVectors(t,this.start),_p.subVectors(this.end,this.start);const n=_p.dot(_p);let i=_p.dot(yp)/n;return e&&(i=bn(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Mp=new si;class bp extends ar{constructor(t,e){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new Qr,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{qp.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(qp,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class Kp extends wc{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new Qr;n.setAttribute("position",new Wr(e,3)),n.setAttribute("color",new Wr([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new mc({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Tr,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class $p{constructor(){this.type="ShapePath",this.color=new Tr,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new sh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Wh.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new yh,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],f=0;h[f]=void 0,p[f]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t>8&255]+vn[t>>16&255]+vn[t>>24&255]+"-"+vn[255&e]+vn[e>>8&255]+"-"+vn[e>>16&15|64]+vn[e>>24&255]+"-"+vn[63&n|128]+vn[n>>8&255]+"-"+vn[n>>16&255]+vn[n>>24&255]+vn[255&i]+vn[i>>8&255]+vn[i>>16&255]+vn[i>>24&255]).toLowerCase()}function bn(t,e,n){return Math.max(e,Math.min(n,t))}function Sn(t,e){return(t%e+e)%e}function wn(t,e,n){return(1-n)*t+n*e}function Tn(t){return 0==(t&t-1)&&0!==t}function En(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function An(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Cn(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ln(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const Pn={DEG2RAD:_n,RAD2DEG:yn,generateUUID:Mn,clamp:bn,euclideanModulo:Sn,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:wn,damp:function(t,e,n,i){return wn(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Sn(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(xn=t);let e=xn+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*_n},radToDeg:function(t){return t*yn},isPowerOfTwo:Tn,ceilPowerOfTwo:En,floorPowerOfTwo:An,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ln,denormalize:Cn};class Rn{constructor(t=0,e=0){Rn.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(bn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class In{constructor(){In.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],x=i[4],_=i[7],y=i[2],M=i[5],b=i[8];return r[0]=s*m+a*v+o*y,r[3]=s*f+a*x+o*M,r[6]=s*g+a*_+o*b,r[1]=l*m+c*v+h*y,r[4]=l*f+c*x+h*M,r[7]=l*g+c*_+h*b,r[2]=u*m+d*v+p*y,r[5]=u*f+d*x+p*M,r[8]=u*g+d*_+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(Dn.makeScale(t,e)),this}rotate(t){return this.premultiply(Dn.makeRotation(-t)),this}translate(t,e){return this.premultiply(Dn.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const Dn=new In;function Un(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Nn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function On(t,e){return new Nn[t](e)}function zn(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function Bn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Fn(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const kn=(new In).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Vn=(new In).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const Hn={[Fe]:t=>t,[Be]:t=>t.convertSRGBToLinear(),[ke]:function(t){return t.convertSRGBToLinear().applyMatrix3(Vn)}},Gn={[Fe]:t=>t,[Be]:t=>t.convertLinearToSRGB(),[ke]:function(t){return t.applyMatrix3(kn).convertLinearToSRGB()}},Wn={enabled:!1,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return Fe},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=Hn[e],r=Gn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let jn;class qn{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===jn&&(jn=zn("canvas")),jn.width=t.width,jn.height=t.height;const n=jn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=jn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=zn("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==tt)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case at:t.x=t.x-Math.floor(t.x);break;case ot:t.x=t.x<0?0:1;break;case lt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case at:t.y=t.y-Math.floor(t.y);break;case ot:t.y=t.y<0?0:1;break;case lt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}Jn.DEFAULT_IMAGE=null,Jn.DEFAULT_MAPPING=tt,Jn.DEFAULT_ANISOTROPY=1;class Kn{constructor(t=0,e=0,n=0,i=1){Kn.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(bn(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class si{constructor(t=0,e=0,n=0){si.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(oi.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(oi.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ai.copy(this).projectOnVector(t),this.sub(ai)}reflect(t){return this.sub(ai.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(bn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const ai=new si,oi=new ri;class li{constructor(t=new si(1/0,1/0,1/0),e=new si(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,hi),hi.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(xi),_i.subVectors(this.max,xi),di.subVectors(t.a,xi),pi.subVectors(t.b,xi),mi.subVectors(t.c,xi),fi.subVectors(pi,di),gi.subVectors(mi,pi),vi.subVectors(di,mi);let e=[0,-fi.z,fi.y,0,-gi.z,gi.y,0,-vi.z,vi.y,fi.z,0,-fi.x,gi.z,0,-gi.x,vi.z,0,-vi.x,-fi.y,fi.x,0,-gi.y,gi.x,0,-vi.y,vi.x,0];return!!bi(e,di,pi,mi,_i)&&(e=[1,0,0,0,1,0,0,0,1],!!bi(e,di,pi,mi,_i)&&(yi.crossVectors(fi,gi),e=[yi.x,yi.y,yi.z],bi(e,di,pi,mi,_i)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,hi).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(hi).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ci[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ci[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ci[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ci[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ci[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ci[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ci[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ci[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ci)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const ci=[new si,new si,new si,new si,new si,new si,new si,new si],hi=new si,ui=new li,di=new si,pi=new si,mi=new si,fi=new si,gi=new si,vi=new si,xi=new si,_i=new si,yi=new si,Mi=new si;function bi(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Mi.fromArray(t,s);const a=r.x*Math.abs(Mi.x)+r.y*Math.abs(Mi.y)+r.z*Math.abs(Mi.z),o=e.dot(Mi),l=n.dot(Mi),c=i.dot(Mi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Si=new li,wi=new si,Ti=new si;class Ei{constructor(t=new si,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Si.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;wi.subVectors(t,this.center);const e=wi.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(wi,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Ti.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(wi.copy(t.center).add(Ti)),this.expandByPoint(wi.copy(t.center).sub(Ti))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Ai=new si,Ci=new si,Li=new si,Pi=new si,Ri=new si,Ii=new si,Di=new si;class Ui{constructor(t=new si,e=new si(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Ai)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Ai.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Ai.copy(this.origin).addScaledVector(this.direction,e),Ai.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Ci.copy(t).add(e).multiplyScalar(.5),Li.copy(e).sub(t).normalize(),Pi.copy(this.origin).sub(Ci);const r=.5*t.distanceTo(e),s=-this.direction.dot(Li),a=Pi.dot(this.direction),o=-Pi.dot(Li),l=Pi.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Ci).addScaledVector(Li,u),d}intersectSphere(t,e){Ai.subVectors(t.center,this.origin);const n=Ai.dot(this.direction),i=Ai.dot(Ai)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Ai)}intersectTriangle(t,e,n,i,r){Ri.subVectors(e,t),Ii.subVectors(n,t),Di.crossVectors(Ri,Ii);let s,a=this.direction.dot(Di);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Pi.subVectors(this.origin,t);const o=s*this.direction.dot(Ii.crossVectors(Pi,Ii));if(o<0)return null;const l=s*this.direction.dot(Ri.cross(Pi));if(l<0)return null;if(o+l>a)return null;const c=-s*Pi.dot(Di);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Ni{constructor(){Ni.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Ni).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Oi.setFromMatrixColumn(t,0).length(),r=1/Oi.setFromMatrixColumn(t,1).length(),s=1/Oi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Bi,t,Fi)}lookAt(t,e,n){const i=this.elements;return Hi.subVectors(t,e),0===Hi.lengthSq()&&(Hi.z=1),Hi.normalize(),ki.crossVectors(n,Hi),0===ki.lengthSq()&&(1===Math.abs(n.z)?Hi.x+=1e-4:Hi.z+=1e-4,Hi.normalize(),ki.crossVectors(n,Hi)),ki.normalize(),Vi.crossVectors(Hi,ki),i[0]=ki.x,i[4]=Vi.x,i[8]=Hi.x,i[1]=ki.y,i[5]=Vi.y,i[9]=Hi.y,i[2]=ki.z,i[6]=Vi.z,i[10]=Hi.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],x=n[7],_=n[11],y=n[15],M=i[0],b=i[4],S=i[8],w=i[12],T=i[1],E=i[5],A=i[9],C=i[13],L=i[2],P=i[6],R=i[10],I=i[14],D=i[3],U=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*L+l*D,r[4]=s*b+a*E+o*P+l*U,r[8]=s*S+a*A+o*R+l*N,r[12]=s*w+a*C+o*I+l*O,r[1]=c*M+h*T+u*L+d*D,r[5]=c*b+h*E+u*P+d*U,r[9]=c*S+h*A+u*R+d*N,r[13]=c*w+h*C+u*I+d*O,r[2]=p*M+m*T+f*L+g*D,r[6]=p*b+m*E+f*P+g*U,r[10]=p*S+m*A+f*R+g*N,r[14]=p*w+m*C+f*I+g*O,r[3]=v*M+x*T+_*L+y*D,r[7]=v*b+x*E+_*P+y*U,r[11]=v*S+x*A+_*R+y*N,r[15]=v*w+x*C+_*I+y*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,x=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,_=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,y=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*x+i*_+r*y;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/M;return t[0]=v*b,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*b,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=x*b,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=_*b,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*b,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=y*b,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*b,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,x=o*c,_=o*h,y=n.x,M=n.y,b=n.z;return i[0]=(1-(m+g))*y,i[1]=(d+_)*y,i[2]=(p-x)*y,i[3]=0,i[4]=(d-_)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+x)*b,i[9]=(f-v)*b,i[10]=(1-(u+m))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Oi.set(i[0],i[1],i[2]).length();const s=Oi.set(i[4],i[5],i[6]).length(),a=Oi.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],zi.copy(this);const o=1/r,l=1/s,c=1/a;return zi.elements[0]*=o,zi.elements[1]*=o,zi.elements[2]*=o,zi.elements[4]*=l,zi.elements[5]*=l,zi.elements[6]*=l,zi.elements[8]*=c,zi.elements[9]*=c,zi.elements[10]*=c,e.setFromRotationMatrix(zi),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Oi=new si,zi=new Ni,Bi=new si(0,0,0),Fi=new si(1,1,1),ki=new si,Vi=new si,Hi=new si,Gi=new Ni,Wi=new ri;class ji{constructor(t=0,e=0,n=0,i=ji.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(bn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-bn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(bn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-bn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(bn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-bn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Gi.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Gi,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Wi.setFromEuler(this),this.setFromQuaternion(Wi,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ji.DEFAULT_ORDER="XYZ";class qi{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($i,t,Qi),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($i,tr,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){or.subVectors(i,e),lr.subVectors(n,e),cr.subVectors(t,e);const s=or.dot(or),a=or.dot(lr),o=or.dot(cr),l=lr.dot(lr),c=lr.dot(cr),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,hr),hr.x>=0&&hr.y>=0&&hr.x+hr.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===vr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),vr=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,hr),o.setScalar(0),o.addScaledVector(r,hr.x),o.addScaledVector(s,hr.y),o.addScaledVector(a,hr.z),o}static isFrontFacing(t,e,n,i){return or.subVectors(n,e),lr.subVectors(t,e),or.cross(lr).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return or.subVectors(this.c,this.b),lr.subVectors(this.a,this.b),.5*or.cross(lr).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return xr.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return xr.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===vr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),vr=!0),xr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return xr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return xr.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return xr.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ur.subVectors(i,n),dr.subVectors(r,n),mr.subVectors(t,n);const o=ur.dot(mr),l=dr.dot(mr);if(o<=0&&l<=0)return e.copy(n);fr.subVectors(t,i);const c=ur.dot(fr),h=dr.dot(fr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ur,s);gr.subVectors(t,r);const d=ur.dot(gr),p=dr.dot(gr);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(dr,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return pr.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(pr,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ur,s).addScaledVector(dr,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let _r=0;class yr extends gn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:_r++}),this.uuid=Mn(),this.name="",this.type="Material",this.blending=g,this.side=u,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=P,this.blendDst=R,this.blendEquation=M,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=k,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=He,this.stencilZFail=He,this.stencilZPass=He,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==g&&(n.blending=this.blending),this.side!==u&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Mr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},br={h:0,s:0,l:0},Sr={h:0,s:0,l:0};function wr(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Tr{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Be){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Wn.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=Wn.workingColorSpace){return this.r=t,this.g=e,this.b=n,Wn.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=Wn.workingColorSpace){if(t=Sn(t,1),e=bn(e,0,1),n=bn(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=wr(r,i,t+1/3),this.g=wr(r,i,t),this.b=wr(r,i,t-1/3)}return Wn.toWorkingColorSpace(this,i),this}setStyle(t,e=Be){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,Wn.toWorkingColorSpace(this,e),n(r[4]),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,Wn.toWorkingColorSpace(this,e),n(r[4]),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const t=parseFloat(r[1])/360,i=parseFloat(r[2])/100,s=parseFloat(r[3])/100;return n(r[4]),this.setHSL(t,i,s,e)}break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Be){const n=Mr[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Bn(t.r),this.g=Bn(t.g),this.b=Bn(t.b),this}copyLinearToSRGB(t){return this.r=Fn(t.r),this.g=Fn(t.g),this.b=Fn(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Be){return Wn.fromWorkingColorSpace(Er.copy(this),t),bn(255*Er.r,0,255)<<16^bn(255*Er.g,0,255)<<8^bn(255*Er.b,0,255)<<0}getHexString(t=Be){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Wn.workingColorSpace){Wn.fromWorkingColorSpace(Er.copy(this),e);const n=Er.r,i=Er.g,r=Er.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Pr(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=bn(t,-65504,65504),Cr.floatView[0]=t;const e=Cr.uint32View[0],n=e>>23&511;return Cr.baseTable[n]+((8388607&e)>>Cr.shiftTable[n])}function Rr(t){const e=t>>10;return Cr.uint32View[0]=Cr.mantissaTable[Cr.offsetTable[e]+(1023&t)]+Cr.exponentTable[e],Cr.floatView[0]}const Ir={toHalfFloat:Pr,fromHalfFloat:Rr},Dr=new si,Ur=new Rn;class Nr{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}if(ts.copy(r).invert(),es.copy(t.ray).applyMatrix4(ts),null!==n.boundingBox&&!1===es.intersectsBox(n.boundingBox))return;let s;const a=n.index,o=n.attributes.position,l=n.attributes.uv,c=n.attributes.uv2,h=n.attributes.normal,u=n.groups,d=n.drawRange;if(null!==a)if(Array.isArray(i))for(let n=0,r=u.length;nn.far?null:{distance:c,point:gs.clone(),object:t}}(t,e,n,i,rs,ss,as,fs);if(h){r&&(cs.fromBufferAttribute(r,o),hs.fromBufferAttribute(r,l),us.fromBufferAttribute(r,c),h.uv=xr.getInterpolation(fs,rs,ss,as,cs,hs,us,new Rn)),s&&(cs.fromBufferAttribute(s,o),hs.fromBufferAttribute(s,l),us.fromBufferAttribute(s,c),h.uv2=xr.getInterpolation(fs,rs,ss,as,cs,hs,us,new Rn)),a&&(ds.fromBufferAttribute(a,o),ps.fromBufferAttribute(a,l),ms.fromBufferAttribute(a,c),h.normal=xr.getInterpolation(fs,rs,ss,as,ds,ps,ms,new si),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new si,materialIndex:0};xr.getNormal(rs,ss,as,t.normal),h.face=t}return h}class _s extends Qr{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const x=s/f,_=p/g,y=s/2,M=p/2,b=m/2,S=f+1,w=g+1;let T=0,E=0;const A=new si;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Ts extends ar{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ni,this.projectionMatrix=new Ni,this.projectionMatrixInverse=new Ni}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Es extends Ts{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*yn*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*_n*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*yn*Math.atan(Math.tan(.5*_n*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*_n*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const As=-90;class Cs extends ar{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Es(As,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Es(As,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Es(As,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Es(As,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Es(As,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Es(As,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=Y,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Ls extends Jn{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:et,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ps extends $n{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Ls(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:mt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new _s(5,5,5),r=new ws({name:"CubemapFromEquirect",uniforms:ys(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:f});r.uniforms.tEquirect.value=e;const s=new vs(i,r),a=e.minFilter;e.minFilter===vt&&(e.minFilter=mt);return new Cs(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Rs=new si,Is=new si,Ds=new In;class Us{constructor(t=new si(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Rs.subVectors(n,e).cross(Is.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Rs),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ds.getNormalMatrix(t),i=this.coplanarPoint(Rs).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Ns=new Ei,Os=new si;class zs{constructor(t=new Us,e=new Us,n=new Us,i=new Us,r=new Us,s=new Us){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],x=n[15];return e[0].setComponents(a-i,h-o,m-u,x-f).normalize(),e[1].setComponents(a+i,h+o,m+u,x+f).normalize(),e[2].setComponents(a+r,h+l,m+d,x+g).normalize(),e[3].setComponents(a-r,h-l,m-d,x-g).normalize(),e[4].setComponents(a-s,h-c,m-p,x-v).normalize(),e[5].setComponents(a+s,h+c,m+p,x+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Ns.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Ns.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Ns)}intersectsSprite(t){return Ns.center.set(0,0,0),Ns.radius=.7071067811865476,Ns.applyMatrix4(t.matrixWorld),this.intersectsSphere(Ns)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,Os.y=i.normal.y>0?t.max.y:t.min.y,Os.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Os)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Bs(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Fs(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, vec2 fullSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\t\n\t\tvec2 lodFudge = pow( 1.95, lod ) / fullSize;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec2 fullSize = vec2( textureSize( sampler, 0 ) );\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), fullSize, floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), fullSize, ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_UV2\n\tattribute vec2 uv2;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Hs={common:{diffuse:{value:new Tr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new In}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new In}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new In}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new In},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new In},normalScale:{value:new Rn(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new In},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new In}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new In}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new In}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Tr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Tr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new In}},sprite:{diffuse:{value:new Tr(16777215)},opacity:{value:1},center:{value:new Rn(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaTest:{value:0}}},Gs={basic:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.fog]),vertexShader:Vs.meshbasic_vert,fragmentShader:Vs.meshbasic_frag},lambert:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)}}]),vertexShader:Vs.meshlambert_vert,fragmentShader:Vs.meshlambert_frag},phong:{uniforms:Ms([Hs.common,Hs.specularmap,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)},specular:{value:new Tr(1118481)},shininess:{value:30}}]),vertexShader:Vs.meshphong_vert,fragmentShader:Vs.meshphong_frag},standard:{uniforms:Ms([Hs.common,Hs.envmap,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.roughnessmap,Hs.metalnessmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Vs.meshphysical_vert,fragmentShader:Vs.meshphysical_frag},toon:{uniforms:Ms([Hs.common,Hs.aomap,Hs.lightmap,Hs.emissivemap,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.gradientmap,Hs.fog,Hs.lights,{emissive:{value:new Tr(0)}}]),vertexShader:Vs.meshtoon_vert,fragmentShader:Vs.meshtoon_frag},matcap:{uniforms:Ms([Hs.common,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,Hs.fog,{matcap:{value:null}}]),vertexShader:Vs.meshmatcap_vert,fragmentShader:Vs.meshmatcap_frag},points:{uniforms:Ms([Hs.points,Hs.fog]),vertexShader:Vs.points_vert,fragmentShader:Vs.points_frag},dashed:{uniforms:Ms([Hs.common,Hs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Vs.linedashed_vert,fragmentShader:Vs.linedashed_frag},depth:{uniforms:Ms([Hs.common,Hs.displacementmap]),vertexShader:Vs.depth_vert,fragmentShader:Vs.depth_frag},normal:{uniforms:Ms([Hs.common,Hs.bumpmap,Hs.normalmap,Hs.displacementmap,{opacity:{value:1}}]),vertexShader:Vs.meshnormal_vert,fragmentShader:Vs.meshnormal_frag},sprite:{uniforms:Ms([Hs.sprite,Hs.fog]),vertexShader:Vs.sprite_vert,fragmentShader:Vs.sprite_frag},background:{uniforms:{uvTransform:{value:new In},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Vs.background_vert,fragmentShader:Vs.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Vs.backgroundCube_vert,fragmentShader:Vs.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Vs.cube_vert,fragmentShader:Vs.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Vs.equirect_vert,fragmentShader:Vs.equirect_frag},distanceRGBA:{uniforms:Ms([Hs.common,Hs.displacementmap,{referencePosition:{value:new si},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Vs.distanceRGBA_vert,fragmentShader:Vs.distanceRGBA_frag},shadow:{uniforms:Ms([Hs.lights,Hs.fog,{color:{value:new Tr(0)},opacity:{value:1}}]),vertexShader:Vs.shadow_vert,fragmentShader:Vs.shadow_frag}};Gs.physical={uniforms:Ms([Gs.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new In},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new In},clearcoatNormalScale:{value:new Rn(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new In},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new In},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new In},sheen:{value:0},sheenColor:{value:new Tr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new In},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new In},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new In},transmissionSamplerSize:{value:new Rn},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new In},attenuationDistance:{value:0},attenuationColor:{value:new Tr(0)},specularColor:{value:new Tr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new In},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new In}}]),vertexShader:Vs.meshphysical_vert,fragmentShader:Vs.meshphysical_frag};const Ws={r:0,b:0,g:0};function js(t,e,n,i,r,s,a){const o=new Tr(0);let l,c,h=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(Ws,bs(t)),i.buffers.color.setClear(Ws.r,Ws.g,Ws.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,g(o,h)},render:function(i,s){let a=!1,v=!0===s.isScene?s.background:null;if(v&&v.isTexture){v=(s.backgroundBlurriness>0?n:e).get(v)}const x=t.xr,_=x.getSession&&x.getSession();_&&"additive"===_.environmentBlendMode&&(v=null),null===v?g(o,h):v&&v.isColor&&(g(v,1),a=!0),(t.autoClear||a)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),v&&(v.isCubeTexture||v.mapping===st)?(void 0===c&&(c=new vs(new _s(1,1,1),new ws({name:"BackgroundCubeMaterial",uniforms:ys(Gs.backgroundCube.uniforms),vertexShader:Gs.backgroundCube.vertexShader,fragmentShader:Gs.backgroundCube.fragmentShader,side:d,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(c)),c.material.uniforms.envMap.value=v,c.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=s.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,c.material.toneMapped=v.encoding!==Ie,p===v&&m===v.version&&f===t.toneMapping||(c.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),c.layers.enableAll(),i.unshift(c,c.geometry,c.material,0,0,null)):v&&v.isTexture&&(void 0===l&&(l=new vs(new ks(2,2),new ws({name:"BackgroundMaterial",uniforms:ys(Gs.background.uniforms),vertexShader:Gs.background.vertexShader,fragmentShader:Gs.background.fragmentShader,side:u,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=v,l.material.uniforms.backgroundIntensity.value=s.backgroundIntensity,l.material.toneMapped=v.encoding!==Ie,!0===v.matrixAutoUpdate&&v.updateMatrix(),l.material.uniforms.uvTransform.value.copy(v.matrix),p===v&&m===v.version&&f===t.toneMapping||(l.material.needsUpdate=!0,p=v,m=v.version,f=t.toneMapping),l.layers.enableAll(),i.unshift(l,l.geometry,l.material,0,0,null))}}}function qs(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,_,d,y),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,_,d,y)}else{const t=!0===l.wireframe;c.geometry===_.id&&c.program===d.id&&c.wireframe===t||(c.geometry=_.id,c.program=d.id,c.wireframe=t,M=!0)}null!==y&&n.update(y,34963),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),x=u>0,_=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:x,floatFragmentTextures:_,floatVertexTextures:x&&_,maxSamples:s?t.getParameter(36183):0}}function Zs(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Us,o=new In,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Js(t){let e=new WeakMap;function n(t,e){return e===it?t.mapping=et:e===rt&&(t.mapping=nt),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===it||s===rt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new Ps(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class Ks extends Ts{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const $s=4,Qs=[.125,.215,.35,.446,.526,.582],ta=20,ea=new Ks,na=new Tr;let ia=null;const ra=(1+Math.sqrt(5))/2,sa=1/ra,aa=[new si(1,1,1),new si(-1,1,1),new si(1,1,-1),new si(-1,1,-1),new si(0,ra,sa),new si(0,ra,-sa),new si(sa,0,ra),new si(-sa,0,ra),new si(ra,sa,0),new si(-ra,sa,0)];class oa{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ia=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=ua(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ha(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-$s?o=Qs[a-t+$s-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),x=new Float32Array(f*p*d),_=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),x.set(u,f*p*t);const r=[t,t,t,t,t,t];_.set(r,g*p*t)}const y=new Qr;y.setAttribute("position",new Nr(v,m)),y.setAttribute("uv",new Nr(x,f)),y.setAttribute("faceIndex",new Nr(_,g)),e.push(y),r>$s&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(ta),r=new si(0,1,0),s=new ws({name:"SphericalGaussianBlur",defines:{n:ta,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new vs(this._lodPlanes[0],t);this._renderer.compile(e,ea)}_sceneToCubeUV(t,e,n,i){const r=new Es(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(na),o.toneMapping=Y,o.autoClear=!1;const h=new Ar({name:"PMREM.Background",side:d,depthWrite:!1,depthTest:!1}),u=new vs(new _s,h);let p=!1;const m=t.background;m?m.isColor&&(h.color.copy(m),t.background=null,p=!0):(h.color.copy(na),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ca(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===et||t.mapping===nt;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=ua()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ha());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new vs(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ca(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,ea)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eta&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${ta}`);const f=[];let g=0;for(let t=0;tv-$s?i-v+$s:0),4*(this._cubeSize-x),3*x,2*x),o.setRenderTarget(e),o.render(c,ea)}}function la(t,e,n){const i=new $n(t,e,n);return i.texture.mapping=st,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ca(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ha(){return new ws({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1})}function ua(){return new ws({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:da(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1})}function da(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function pa(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===it||s===rt,o=s===et||s===nt;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new oa(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const f=new Float32Array(p*m*4*r),g=new Qn(f,p,m,r);g.type=Tt,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=Ea[r];if(void 0===s&&(s=new Float32Array(r),Ea[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Ia(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Po(t,e){const n=function(t){switch(t){case Re:return["Linear","( value )"];case Ie:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Ro(t,e){let n;switch(e){case Z:n="Linear";break;case J:n="Reinhard";break;case K:n="OptimizedCineon";break;case $:n="ACESFilmic";break;case Q:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Io(t){return""!==t}function Do(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Uo(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const No=/^[ \t]*#include +<([\w\d./]+)>/gm;function Oo(t){return t.replace(No,zo)}function zo(t,e){const n=Vs[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Oo(n)}const Bo=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Fo(t){return t.replace(Bo,ko)}function ko(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(_+="\n"),y=[g,v].filter(Io).join("\n"),y.length>0&&(y+="\n")):(_=[Vo(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Io).join("\n"),y=[g,Vo(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs2?"#define USE_UV2":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Y?"#define TONE_MAPPING":"",n.toneMapping!==Y?Vs.tonemapping_pars_fragment:"",n.toneMapping!==Y?Ro("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Vs.encodings_pars_fragment,Po("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Io).join("\n")),a=Oo(a),a=Do(a,n),a=Uo(a,n),o=Oo(o),o=Do(o,n),o=Uo(o,n),a=Fo(a),o=Fo(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,y=["#define varying in",n.glslVersion===mn?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===mn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+y);const b=M+y+o,S=Ao(r,35633,M+_+a),w=Ao(r,35632,b);if(r.attachShader(x,S),r.attachShader(x,w),void 0!==n.index0AttributeName?r.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(x,0,"position"),r.linkProgram(x),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(x).trim(),n=r.getShaderInfoLog(S).trim(),i=r.getShaderInfoLog(w).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(x,35714))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,x,S,w);else{const t=Lo(r,S,"vertex"),n=Lo(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(x,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:_},fragmentShader:{log:i,prefix:y}})}let T,E;return r.deleteShader(S),r.deleteShader(w),this.getUniforms=function(){return void 0===T&&(T=new Eo(r,x)),T},this.getAttributes=function(){return void 0===E&&(E=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,Z=s.iridescence>0,J=s.sheen>0,K=s.transmission>0,$=X&&!!s.clearcoatMap,Q=X&&!!s.clearcoatNormalMap,tt=X&&!!s.clearcoatRoughnessMap,et=Z&&!!s.iridescenceMap,nt=Z&&!!s.iridescenceThicknessMap,it=J&&!!s.sheenColorMap,rt=J&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ct=K&&!!s.transmissionMap,ht=K&&!!s.thicknessMap,ut=!!s.gradientMap,dt=!!s.alphaMap,pt=s.alphaTest>0,mt=!!s.extensions,ft=!!b.attributes.uv2;return{isWebGL2:h,shaderID:E,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:f,instancing:N,instancingColor:N&&null!==y.instanceColor,supportsVertexTextures:m,outputEncoding:null===U?t.outputEncoding:!0===U.isXRRenderTarget?U.texture.encoding:Re,map:O,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:T,aoMap:F,lightMap:k,bumpMap:V,normalMap:H,displacementMap:m&&G,emissiveMap:W,normalMapObjectSpace:H&&s.normalMapType===Oe,normalMapTangentSpace:H&&s.normalMapType===Ne,decodeVideoTexture:O&&!0===s.map.isVideoTexture&&s.map.encoding===Ie,metalnessMap:j,roughnessMap:q,clearcoat:X,clearcoatMap:$,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:Z,iridescenceMap:et,iridescenceThicknessMap:nt,sheen:J,sheenColorMap:it,sheenRoughnessMap:rt,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:K,transmissionMap:ct,thicknessMap:ht,gradientMap:ut,opaque:!1===s.transparent&&s.blending===g,alphaMap:dt,alphaTest:pt,combine:s.combine,mapUv:O&&x(s.map.channel),aoMapUv:F&&x(s.aoMap.channel),lightMapUv:k&&x(s.lightMap.channel),bumpMapUv:V&&x(s.bumpMap.channel),normalMapUv:H&&x(s.normalMap.channel),displacementMapUv:G&&x(s.displacementMap.channel),emissiveMapUv:W&&x(s.emissiveMap.channel),metalnessMapUv:j&&x(s.metalnessMap.channel),roughnessMapUv:q&&x(s.roughnessMap.channel),clearcoatMapUv:$&&x(s.clearcoatMap.channel),clearcoatNormalMapUv:Q&&x(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&x(s.clearcoatRoughnessMap.channel),iridescenceMapUv:et&&x(s.iridescenceMap.channel),iridescenceThicknessMapUv:nt&&x(s.iridescenceThicknessMap.channel),sheenColorMapUv:it&&x(s.sheenColorMap.channel),sheenRoughnessMapUv:rt&&x(s.sheenRoughnessMap.channel),specularMapUv:at&&x(s.specularMap.channel),specularColorMapUv:ot&&x(s.specularColorMap.channel),specularIntensityMapUv:lt&&x(s.specularIntensityMap.channel),transmissionMapUv:ct&&x(s.transmissionMap.channel),thicknessMapUv:ht&&x(s.thicknessMap.channel),alphaMapUv:dt&&x(s.alphaMap.channel),vertexTangents:H&&!!b.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUvs2:ft,pointsUvs:!0===y.isPoints&&!!b.attributes.uv&&(O||dt),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:C,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:Y,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:mt&&!0===s.extensions.derivatives,extensionFragDepth:mt&&!0===s.extensions.fragDepth,extensionDrawBuffers:mt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:mt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUvs2&&o.enable(13);e.vertexTangents&&o.enable(14);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.decodeVideoTexture&&o.enable(17);e.opaque&&o.enable(18);e.pointsUvs&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=Gs[e];n=Ss.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Yo),i.length>1&&i.sort(e||Zo),r.length>1&&r.sort(e||Zo)}}}function Ko(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Jo,t.set(e,[r])):n>=i.length?(r=new Jo,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function $o(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new si,color:new Tr};break;case"SpotLight":n={position:new si,direction:new si,color:new Tr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new si,color:new Tr,distance:0,decay:0};break;case"HemisphereLight":n={direction:new si,skyColor:new Tr,groundColor:new Tr};break;case"RectAreaLight":n={color:new Tr,position:new si,halfWidth:new si,halfHeight:new si}}return t[e.id]=n,n}}}let Qo=0;function tl(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function el(t,e){const n=new $o,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Rn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Rn,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new si);const s=new si,a=new Ni,o=new Ni;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,x=0,_=0;s.sort(tl);const y=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Hs.LTC_FLOAT_1,r.rectAreaLTC2=Hs.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Hs.LTC_HALF_1,r.rectAreaLTC2=Hs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===x||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+x-_,r.spotLightMap.length=x,r.numSpotLightShadowsWithMaps=_,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=x,r.version=Qo++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new nl(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class rl extends yr{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class sl extends yr{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const al="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",ol="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function ll(t,e,n){let i=new zs;const r=new Rn,s=new Rn,a=new Kn,o=new rl({depthPacking:Ue}),c=new sl,m={},g=n.maxTextureSize,v={[u]:d,[d]:u,[p]:p},x=new ws({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Rn},radius:{value:4}},vertexShader:al,fragmentShader:ol}),_=x.clone();_.defines.HORIZONTAL_PASS=1;const y=new Qr;y.setAttribute("position",new Nr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new vs(y,x),b=this;function S(n,i){const s=e.update(M);x.defines.VSM_SAMPLES!==n.blurSamples&&(x.defines.VSM_SAMPLES=n.blurSamples,_.defines.VSM_SAMPLES=n.blurSamples,x.needsUpdate=!0,_.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new $n(r.x,r.y)),x.uniforms.shadow_pass.value=n.map.texture,x.uniforms.resolution.value=n.mapSize,x.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,x,M,null),_.uniforms.shadow_pass.value=n.mapPass.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,_,M,null)}function w(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=m[t];void 0===i&&(i={},m[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===h?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function T(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lg||r.y>g)&&(r.x>g&&(s.x=Math.floor(g/p.x),r.x=s.x*p.x,u.mapSize.x=s.x),r.y>g&&(s.y=Math.floor(g/p.y),r.y=s.y*p.y,u.mapSize.y=s.y)),null===u.map){const t=this.type!==h?{minFilter:ct,magFilter:ct}:{};u.map=new $n(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const m=u.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,mt={};const ft=t.getParameter(3088),gt=t.getParameter(2978),vt=(new Kn).fromArray(ft),xt=(new Kn).fromArray(gt);function _t(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?An:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=x(s,a));const o=n?x(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function y(t){return Tn(t.width)&&Tn(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==ct&&t.minFilter!==mt}function b(e){t.generateMipmap(e)}function S(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=s===Ie&&!1===a?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function w(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==ct&&t.minFilter!==mt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(t){return t===ct||t===ht||t===dt?9728:9729}function E(t){const e=t.target;e.removeEventListener("dispose",E),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&C(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void N(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(3553,r.__webglTexture,33984+e)}const R={[at]:10497,[ot]:33071,[lt]:33648},I={[ct]:9728,[ht]:9984,[dt]:9986,[mt]:9729,[ft]:9985,[vt]:9987};function D(n,s,a){if(a?(t.texParameteri(n,10242,R[s.wrapS]),t.texParameteri(n,10243,R[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,R[s.wrapR]),t.texParameteri(n,10240,I[s.magFilter]),t.texParameteri(n,10241,I[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===ot&&s.wrapT===ot||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,T(s.magFilter)),t.texParameteri(n,10241,T(s.minFilter)),s.minFilter!==ct&&s.minFilter!==mt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===ct)return;if(s.minFilter!==dt&&s.minFilter!==vt)return;if(s.type===Tt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Et&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function U(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",E));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&C(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function N(e,r,a){let l=3553;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=35866),r.isData3DTexture&&(l=32879);const c=U(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,33984+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=function(t){return!o&&(t.wrapS!==ot||t.wrapT!==ot||t.minFilter!==ct&&t.minFilter!==mt)}(r)&&!1===y(r.image);let i=_(r.image,e,!1,h);i=V(r,i);const p=y(i)||o,m=s.convert(r.format,r.encoding);let f,g=s.convert(r.type),v=S(r.internalFormat,m,g,r.encoding,r.isVideoTexture);D(l,r,p);const x=r.mipmaps,T=o&&!0!==r.isVideoTexture,E=void 0===d.__version||!0===c,A=w(r,i,p);if(r.isDepthTexture)v=6402,o?v=r.type===Tt?36012:r.type===wt?33190:r.type===Lt?35056:33189:r.type===Tt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Ut&&6402===v&&r.type!==bt&&r.type!==wt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=wt,g=s.convert(r.type)),r.format===Nt&&6402===v&&(v=34041,r.type!==Lt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Lt,g=s.convert(r.type))),E&&(T?n.texStorage2D(3553,1,v,i.width,i.height):n.texImage2D(3553,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(x.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,x[0].width,x[0].height);for(let t=0,e=x.length;t>=1,e>>=1}}else if(x.length>0&&p){T&&E&&n.texStorage2D(3553,A,v,x[0].width,x[0].height);for(let t=0,e=x.length;t=34069&&l<=34074)&&t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function z(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Tt?r=36012:e.type===wt&&(r=33190));const i=F(n);k(n)?d.renderbufferStorageMultisampleEXT(36161,i,r,n.width,n.height):t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=F(n);i&&!1===k(n)?t.renderbufferStorageMultisample(36161,r,35056,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(36161,r,35056,n.width,n.height):t.renderbufferStorage(36161,34041,n.width,n.height),t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(t,n){const i=t.encoding,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===fn||i!==Re&&(i===Ie?!1===o?!0===e.has("EXT_sRGB")&&r===Rt?(t.format=fn,t.minFilter=mt,t.generateMipmaps=!1):n=qn.sRGBToLinear(n):r===Rt&&s===_t||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=function(){const t=L;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),L+=1,t},this.resetTextureUnits=function(){L=0},this.setTexture2D=P,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(35866,r.__webglTexture,33984+e)},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?N(r,t,e):n.bindTexture(32879,r.__webglTexture,33984+e)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=U(e,r),h=r.source;n.bindTexture(34067,e.__webglTexture,33984+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(33984+a),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:_(r.image[t],!1,!0,c),d[t]=V(r,d[t]);const p=d[0],m=y(p)||o,f=s.convert(r.format,r.encoding),g=s.convert(r.type),v=S(r.internalFormat,f,g,r.encoding),x=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let E,A=w(r,p,m);if(D(34067,r,m),e){x&&T&&n.texStorage2D(34067,A,v,p.width,p.height);for(let t=0;t<6;t++){E=d[t].mipmaps;for(let e=0;e0&&A++,n.texStorage2D(34067,A,v,d[0].width,d[0].height));for(let t=0;t<6;t++)if(i){x?n.texSubImage2D(34069+t,0,0,0,d[t].width,d[t].height,f,g,d[t].data):n.texImage2D(34069+t,0,v,d[t].width,d[t].height,0,f,g,d[t].data);for(let e=0;e0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=16384;const l=[],c=e.stencilBuffer?33306:36096,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(ml)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new pl;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class gl extends Jn{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:Ut)!==Ut&&c!==Nt)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Ut&&(n=wt),void 0===n&&c===Nt&&(n=Lt),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:ct,this.minFilter=void 0!==o?o:ct,this.flipY=!1,this.generateMipmaps=!1}}class vl extends gn{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],x=[],_=new Set,y=new Map,M=new Es;M.layers.enable(1),M.viewport=new Kn;const b=new Es;b.layers.enable(2),b.viewport=new Kn;const S=[M,b],w=new dl;w.layers.enable(1),w.layers.enable(2);let T=null,E=null;function A(t){const e=x.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&n.dispatchEvent({type:t.type,data:t.inputSource})}function C(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",L);for(let t=0;t=0&&(x[i]=null,v[i].disconnect(n))}for(let e=0;e=x.length){x.push(n),i=t;break}if(null===x[t]){x[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new fl,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new fl,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new fl,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",C),i.addEventListener("inputsourceschange",L),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:m.alpha,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new $n(d.framebufferWidth,d.framebufferHeight,{format:Rt,type:_t,encoding:t.outputEncoding,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?35056:33190,n=m.stencil?Nt:Ut,s=m.stencil?Lt:wt);const o={colorFormat:32856,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new $n(u.textureWidth,u.textureHeight,{format:Rt,type:_t,depthTexture:new gl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,encoding:t.outputEncoding,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),U.setContext(i),U.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const P=new si,R=new si;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;w.near=b.near=M.near=t.near,w.far=b.far=M.far=t.far,T===w.near&&E===w.far||(i.updateRenderState({depthNear:w.near,depthFar:w.far}),T=w.near,E=w.far);const e=t.parent,n=w.cameras;I(w,e);for(let t=0;te&&(y.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else _.add(t),y.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){D=t},this.dispose=function(){}}}function xl(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===d&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===d&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,bs(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===d&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function _l(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(35375):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0&&function(t,e,n,i){if(null===V){const t=X.isWebGL2;V=new $n(1024,1024,{generateMipmaps:!0,type:q.has("EXT_color_buffer_half_float")?Et:_t,minFilter:vt,samples:t&&!0===o?4:0})}const r=y.getRenderTarget();y.setRenderTarget(V),y.clear();const s=y.toneMapping;y.toneMapping=Y,Ot(t,n,i),$.updateMultisampleRenderTarget(V),$.updateRenderTargetMipmap(V);let a=!1;for(let t=0,r=e.length;t0&&Ot(r,e,n),s.length>0&&Ot(s,e,n),a.length>0&&Ot(a,e,n),Z.buffers.depth.setTest(!0),Z.buffers.depth.setMask(!0),Z.buffers.color.setMask(!0),Z.setPolygonOffset(!1)}function Ot(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?_[_.length-1]:null,x.pop(),g=x.length>0?x[x.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){K.get(t.texture).__webglTexture=e,K.get(t.depthTexture).__webglTexture=n;const i=K.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===q.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=K.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,b=e,S=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=K.get(t);void 0!==n.__useDefaultFramebuffer?(Z.bindFramebuffer(36160,null),i=!1):void 0===n.__webglFramebuffer?$.setupRenderTarget(t):n.__hasExternalTextures&&$.rebindTextures(t,K.get(t.texture).__webglTexture,K.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=X.isWebGL2&&t.samples>0&&!1===$.useMultisampledRTT(t)?K.get(t).__webglMultisampledFramebuffer:l,A.copy(t.viewport),C.copy(t.scissor),L=t.scissorTest}else A.copy(N).multiplyScalar(I).floor(),C.copy(O).multiplyScalar(I).floor(),L=z;if(Z.bindFramebuffer(36160,r)&&X.drawBuffers&&i&&Z.drawBuffers(t,r),Z.viewport(A),Z.scissor(C),Z.setScissorTest(L),s){const i=K.get(t.texture);xt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(a){const i=K.get(t.texture),r=e||0;xt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}T=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Z.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==Rt&&mt.convert(o)!==xt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Et&&(q.has("EXT_color_buffer_half_float")||X.isWebGL2&&q.has("EXT_color_buffer_float"));if(!(l===_t||mt.convert(l)===xt.getParameter(35738)||l===Tt&&(X.isWebGL2||q.has("OES_texture_float")||q.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&xt.readPixels(e,n,i,r,mt.convert(o),mt.convert(l),s)}finally{const t=null!==w?K.get(w).__webglFramebuffer:null;Z.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);$.setTexture2D(e,0),xt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,s),Z.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=mt.convert(n.format),o=mt.convert(n.type);$.setTexture2D(n,0),xt.pixelStorei(37440,n.flipY),xt.pixelStorei(37441,n.premultiplyAlpha),xt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?xt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?xt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):xt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&xt.generateMipmap(3553),Z.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=mt.convert(i.format),c=mt.convert(i.type);let h;if(i.isData3DTexture)$.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");$.setTexture2DArray(i,0),h=35866}xt.pixelStorei(37440,i.flipY),xt.pixelStorei(37441,i.premultiplyAlpha),xt.pixelStorei(3317,i.unpackAlignment);const u=xt.getParameter(3314),d=xt.getParameter(32878),p=xt.getParameter(3316),m=xt.getParameter(3315),f=xt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;xt.pixelStorei(3314,g.width),xt.pixelStorei(32878,g.height),xt.pixelStorei(3316,t.min.x),xt.pixelStorei(3315,t.min.y),xt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?xt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),xt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):xt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),xt.pixelStorei(3314,u),xt.pixelStorei(32878,d),xt.pixelStorei(3316,p),xt.pixelStorei(3315,m),xt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&xt.generateMipmap(h),Z.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?$.setTextureCube(t,0):t.isData3DTexture?$.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?$.setTexture2DArray(t,0):$.setTexture2D(t,0),Z.unbindTexture()},this.resetState=function(){b=0,S=0,w=null,Z.reset(),ft.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}}class bl extends Ml{}bl.prototype.isWebGL1Renderer=!0;class Sl{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Tr(t),this.density=e}clone(){return new Sl(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class wl{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Tr(t),this.near=e,this.far=n}clone(){return new wl(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Tl extends ar{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class El{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Mn()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Rl.clone(),uv:xr.getInterpolation(Rl,zl,Bl,Fl,kl,Vl,Hl,new Rn),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Wl(t,e,n,i,r,s){Ul.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Nl.x=s*Ul.x-r*Ul.y,Nl.y=r*Ul.x+s*Ul.y):Nl.copy(Ul),t.copy(e),t.x+=Nl.x,t.y+=Nl.y,t.applyMatrix4(Ol)}const jl=new si,ql=new si;class Xl extends ar{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){jl.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(jl);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){jl.setFromMatrixPosition(t.matrixWorld),ql.setFromMatrixPosition(this.matrixWorld);const n=jl.distanceTo(ql)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Dc extends Jn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:mt,this.magFilter=void 0!==r?r:mt,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Uc extends Jn{constructor(t,e,n){super({width:t,height:e}),this.isFramebufferTexture=!0,this.format=n,this.magFilter=ct,this.minFilter=ct,this.generateMipmaps=!1,this.needsUpdate=!0}}class Nc extends Jn{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Oc extends Nc{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ot}}class zc extends Jn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Bc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Rn:new si);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new si,i=[],r=[],s=[],a=new si,o=new Ni;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new si)}r[0]=new si,s[0]=new si;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(bn(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(bn(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Fc extends Bc{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new Rn,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Hc.subVectors(i[0],i[1]).add(i[0]),a=Hc);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Xc(a,o.x,l.x,c.x,h.x),Xc(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ah extends Qr{constructor(t=[new Rn(0,-.5),new Rn(.5,0),new Rn(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=bn(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new si,u=new Rn,d=new si,p=new si,m=new si;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Wr(h,3)),this.setAttribute("normal",new Wr(u,3)),this.setAttribute("uv",new Wr(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new ch(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class hh extends ch{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new hh(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class uh extends Qr{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Wr(r,3)),this.setAttribute("normal",new Wr(r.slice(),3)),this.setAttribute("uv",new Wr(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new uh(t.vertices,t.indices,t.radius,t.details)}}class dh extends uh{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new dh(t.radius,t.detail)}}const ph=new si,mh=new si,fh=new si,gh=new xr;class vh extends Qr{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(_n*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return bh(s,a,n,o,l,p,0),a};function yh(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Vh(s,t[s],t[s+1],a);return a&&Nh(a,a.next)&&(Hh(a),a=a.next),a}function Mh(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Nh(i,i.next)&&0!==Uh(i.prev,i,i.next))i=i.next;else{if(Hh(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function bh(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Ph(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?wh(t,i,r,s):Sh(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Hh(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?bh(t=Th(Mh(t),e,n),e,n,i,r,s,2):2===a&&Eh(t,e,n,i,r,s):bh(Mh(t),e,n,i,r,s,1);break}}function Sh(t){const e=t.prev,n=t,i=t.next;if(Uh(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Ih(r,o,s,l,a,c,m.x,m.y)&&Uh(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function wh(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Uh(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Ph(p,m,e,n,i),x=Ph(f,g,e,n,i);let _=t.prevZ,y=t.nextZ;for(;_&&_.z>=v&&y&&y.z<=x;){if(_.x>=p&&_.x<=f&&_.y>=m&&_.y<=g&&_!==r&&_!==a&&Ih(o,h,l,u,c,d,_.x,_.y)&&Uh(_.prev,_,_.next)>=0)return!1;if(_=_.prevZ,y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ih(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;_&&_.z>=v;){if(_.x>=p&&_.x<=f&&_.y>=m&&_.y<=g&&_!==r&&_!==a&&Ih(o,h,l,u,c,d,_.x,_.y)&&Uh(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;y&&y.z<=x;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ih(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function Th(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Nh(r,s)&&Oh(r,i,i.next,s)&&Fh(r,s)&&Fh(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Hh(i),Hh(i.next),i=t=s),i=i.next}while(i!==t);return Mh(i)}function Eh(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Dh(a,t)){let o=kh(a,t);return a=Mh(a,a.next),o=Mh(o,o.next),bh(a,e,n,i,r,s,0),void bh(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Ah(t,e){return t.x-e.x}function Ch(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Ih(an.x||i.x===n.x&&Lh(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=kh(n,t);return Mh(i,i.next),Mh(n,n.next)}function Lh(t,e){return Uh(t.prev,t,e.prev)<0&&Uh(e.next,t,t.next)<0}function Ph(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Rh(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Dh(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Oh(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Fh(t,e)&&Fh(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Uh(t.prev,t,e.prev)||Uh(t,e.prev,e))||Nh(t,e)&&Uh(t.prev,t,t.next)>0&&Uh(e.prev,e,e.next)>0)}function Uh(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Nh(t,e){return t.x===e.x&&t.y===e.y}function Oh(t,e,n,i){const r=Bh(Uh(t,e,n)),s=Bh(Uh(t,e,i)),a=Bh(Uh(n,i,t)),o=Bh(Uh(n,i,e));return r!==s&&a!==o||(!(0!==r||!zh(t,n,e))||(!(0!==s||!zh(t,i,e))||(!(0!==a||!zh(n,t,i))||!(0!==o||!zh(n,e,i)))))}function zh(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Bh(t){return t>0?1:t<0?-1:0}function Fh(t,e){return Uh(t.prev,t,t.next)<0?Uh(t,e,t.next)>=0&&Uh(t,t.prev,e)>=0:Uh(t,e,t.prev)<0||Uh(t,t.next,e)<0}function kh(t,e){const n=new Gh(t.i,t.x,t.y),i=new Gh(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Vh(t,e,n,i){const r=new Gh(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Hh(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Gh(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wh{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function qh(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new Rn(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new Rn(i/s,r/s)}const R=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class uu extends yr{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Tr(16777215),this.specular=new Tr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=j,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class du extends yr{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Tr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class pu extends yr{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class mu extends yr{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Tr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Tr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=j,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class fu extends yr{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Tr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Rn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class gu extends fc{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function vu(t,e,n){return _u(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function xu(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function _u(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function yu(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Mu(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function bu(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Su={arraySlice:vu,convertArray:xu,isTypedArray:_u,getKeyframeOrder:yu,sortedArray:Mu,flattenJSON:bu,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=vu(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=vu(t.resultBuffer,e,n)}if("quaternion"===r){(new ri).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=vu(n,r,s),this.values=vu(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&_u(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=vu(this.times),e=vu(this.values),n=this.getValueSize(),i=this.getInterpolation()===be,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=vu(t,0,s),this.values=vu(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=vu(this.times,0),e=vu(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Cu.prototype.TimeBufferType=Float32Array,Cu.prototype.ValueBufferType=Float32Array,Cu.prototype.DefaultInterpolation=Me;class Lu extends Cu{}Lu.prototype.ValueTypeName="bool",Lu.prototype.ValueBufferType=Array,Lu.prototype.DefaultInterpolation=ye,Lu.prototype.InterpolantFactoryMethodLinear=void 0,Lu.prototype.InterpolantFactoryMethodSmooth=void 0;class Pu extends Cu{}Pu.prototype.ValueTypeName="color";class Ru extends Cu{}Ru.prototype.ValueTypeName="number";class Iu extends wu{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)ri.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Du extends Cu{InterpolantFactoryMethodLinear(t){return new Iu(this.times,this.values,this.getValueSize(),t)}}Du.prototype.ValueTypeName="quaternion",Du.prototype.DefaultInterpolation=Me,Du.prototype.InterpolantFactoryMethodSmooth=void 0;class Uu extends Cu{}Uu.prototype.ValueTypeName="string",Uu.prototype.ValueBufferType=Array,Uu.prototype.DefaultInterpolation=ye,Uu.prototype.InterpolantFactoryMethodLinear=void 0,Uu.prototype.InterpolantFactoryMethodSmooth=void 0;class Nu extends Cu{}Nu.prototype.ValueTypeName="vector";class Ou{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Mn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(zu(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Cu.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];bu(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Hu[t])return void Hu[t].push({onLoad:e,onProgress:n,onError:i});Hu[t]=[],Hu[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Hu[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Bu.add(t,e);const n=Hu[t];delete Hu[t];for(let t=0,i=n.length;t{const n=Hu[t];if(void 0===n)throw this.manager.itemError(t),e;delete Hu[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class ju extends Vu{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Wu(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Tr).setHex(r.value);break;case"v2":i.uniforms[e].value=(new Rn).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new si).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new Kn).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new In).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new Ni).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Rn).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Rn).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:ou,SpriteMaterial:Ll,RawShaderMaterial:lu,ShaderMaterial:ws,PointsMaterial:Ec,MeshPhysicalMaterial:hu,MeshStandardMaterial:cu,MeshPhongMaterial:uu,MeshToonMaterial:du,MeshNormalMaterial:pu,MeshLambertMaterial:mu,MeshDepthMaterial:rl,MeshDistanceMaterial:sl,MeshBasicMaterial:Ar,MeshMatcapMaterial:fu,LineDashedMaterial:gu,LineBasicMaterial:fc,Material:yr}[t]}}class vd{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){const n=new Fu(e);r=new Xu(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new Xu(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){ri.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;ri.multiplyQuaternionsFlat(t,s,t,e,t,n),ri.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Zd="\\[\\]\\.:\\/",Jd=new RegExp("["+Zd+"]","g"),Kd="[^"+Zd+"]",$d="[^"+Zd.replace("\\.","")+"]",Qd=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",Kd)+/(WCOD+)?/.source.replace("WCOD",$d)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Kd)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Kd)+"$"),tp=["material","materials","bones","map"];class ep{constructor(t,e,n){this.path=e,this.parsedPath=n||ep.parseTrackName(e),this.node=ep.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new ep.Composite(t,e,n):new ep(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Jd,"")}static parseTrackName(t){const e=Qd.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==tp.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new ep(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class ip{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:Se,endingEnd:Se};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===Ae)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=we,i.endingEnd=we):(i.endingStart=t?this.zeroSlopeAtStart?we:Se:Te,i.endingEnd=e?this.zeroSlopeAtEnd?we:Se:Te)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const rp=new Float32Array(1);class sp extends gn{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Yd(ep.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,gp).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const xp=new si,_p=new si;class yp{constructor(t=new si,e=new si){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){xp.subVectors(t,this.start),_p.subVectors(this.end,this.start);const n=_p.dot(_p);let i=_p.dot(xp)/n;return e&&(i=bn(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Mp=new si;class bp extends ar{constructor(t,e){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new Qr,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Xp.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Xp,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class Kp extends wc{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new Qr;n.setAttribute("position",new Wr(e,3)),n.setAttribute("color",new Wr([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new fc({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Tr,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class $p{constructor(){this.type="ShapePath",this.color=new Tr,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new sh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Wh.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new xh,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t Date: Fri, 31 Mar 2023 22:11:50 +0900 Subject: [PATCH 34/40] WebGLPrograms: Fixed typo. --- 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 983e88b42eb5e7..2be46b87067495 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -247,7 +247,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), - anisotropyMapUv: HAS_ANISOTROPY && getChannel( material.anisotropyMap.channel ), + anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ), clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), From e18fdf537a1bc7602c836315b98cc5f49c460e23 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 3 Apr 2023 16:44:16 -0700 Subject: [PATCH 35/40] update to spec --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 2 +- src/renderers/webgl/WebGLPrograms.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index af8b3803355e86..ac51ee2cabf57b 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -136,7 +136,7 @@ material.roughness = min( material.roughness, 1.0 ); material.anisotropy = saturate( material.anisotropy ); // Roughness along the anisotropy bitangent is the material roughness, while the tangent roughness increases with anisotropy. - material.alphaT = pow2( mix( material.roughness, 1.0, pow2( material.anisotropy ) ) ); + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y; diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 2be46b87067495..6aa4a43b6b575f 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -270,7 +270,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities // - vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP && HAS_ANISOTROPY ), + vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUvs2: HAS_ATTRIBUTE_UV2, From a3c7d9ea12067c9a0317b846a94a346ad8f4dda3 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Mon, 3 Apr 2023 16:47:08 -0700 Subject: [PATCH 36/40] updated golden --- .../screenshots/webgl_loader_gltf_lights.jpg | Bin 25854 -> 25852 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/screenshots/webgl_loader_gltf_lights.jpg b/examples/screenshots/webgl_loader_gltf_lights.jpg index fc07f0b2ab69a143bf677cde40b4b6dda0834e11..cc8dcb990a544409144bfbfb8c369daac93fed3d 100644 GIT binary patch delta 17508 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 delta 17494 zcmV)!K#;%u$pQY!0kAb2f2DA4G2FiflV@pl=4qPIy_yGB->1UM7#RNifmkp+eZoBn ztmjrS+)+}gvOOll#s2^u^?wMyi*r7^J&f_Hqsyec(F7xtyKvwQq!12rdSGXUb+AgO zy(FKhx7Dl3UNLQY9$Dg#0{EN4%4gLqPn2={Grkjcy@#1{i8!HHwb(62#oTwJls$Ly>nJQ?Sz1R!(rD znL?;x_oxF*Twwssa=4u;b{@CnV5b)H-Osa%R+K zDZ%2Q(?e5bjXwMb%Q?^1vYkB*VK#Oi67faGojOeo!wskVf7Rt;@Uf{Dnms%&CDWDe zdxyi1+7nvR1ZtPg0LSsy#O6FdMy=hCtik5)DJ!2&d?Wq3b!`hwj??>Pm6dRQabJ_? zoDD2RcPJz3u$jdPL315ez5f6O57%Q|uKOpm6GQ&os z8aSsd53#>w&x?Pths7NvcqjI#)NMRD1c|WT#Rvpve}Z>ojw|y%Aj$ZX1Bs1%yP9hL zzkx87E=x%HoA$==FTigA{CU=VIr}wu@?R17MhO%9Gg6U*nE^mg%mxk)Mr-sQ9>r#O zthO`EA<0u)t6Q#`bU7y&-$TvPZP19f;CffDB(HH<8onQ%_R{HPww0BE`AQrb^YJl+ z;MA6af9A8$`bYM3{inVt{5aIDr?Bz1sS?8KQ5OD9qaNF<^3EmUOtUbHe#$rRWq-cM zsfNbag10k2O8)?7ulO!s#LoukmbzxY;>qrOga8?)EO;LIugPbTab{0b{uA*MQClmW z?-Pftzj+kSv*Ty{94+yORq*thFM@n!7M#x+e+ERew|4yABVOz={w3y^f2(6LZ`nN> zQG#uMiA78CIn_M2oVnu-eOdWI`%wPU9ya*D2CgR{d~?GPAy7K?D?O?7wm3bWkQ6U;EY%5cvyRi$DG=psOMhx ze??*yhy?aE>BbrmYWPFLwq77jOIz1%ADX|dbs+7*Pci<#!ROKUqNmDVr}k{>M{$WUF* zaIGVfv9m9SnrAdHRGqbx*?(O>;f~A}e_dA-JIijY`t#$D!%z4pAMEL@S@=)F-UPVP zJV&7zeD4zIKN%q~YL2V>$wj5&F~B@v6w73Rw*|gNh9ih`EIpd$z4dT*^0P^P4f>wb zj#-7PbnR}5>-gN~zi40DkKvcb?K%se5`0ea?zZ}Mgi-05Al3A%>vbxsrHrv%e-i*B zacz(vnDiWq%LS9>7%ScpS9{uPPny@uU-K@$XN0XKXDfEoa>wkm`zQPo{j79{(mZK( z;!95xY8RI9==!#uuSF;JU@fq_+e;KnEMS!`#29>hRB9&)c7Nu4?msH6h4-NOqun1Z=dq;~{#r=uma?cew%Z|$?-tsBQWckI{uN_e8vK=AIrty{L2-~89=y859kUSou*8kkvXo~i8D zZ|mjf`vLnyf5A6=cl$&9An}KSd|{#qz9sld##`S8>e@<%T~%U6xcfX^7FezjllF3O zvXz=Gxt_l{z){EL`INA2UBgtnt?wUIeHOnfpJ=i8Tz(EU*SmcsH=_WeAQeCq08jxy94v(Zo%JpoTuTv7Fj582#T(e0uewu-e{Oinf`+*qTx%A@kF6-G^l3j|K9Po0X| z4KX5|4_bW9hcRx>B_|76&RQBqMvbY8FaZL&X4$%yh0!!2K~?~I3dd5pf7m?mg~)8w zq{YnHT3fKg0DUUrh;5bSnnpcHtyPHTBW6|^XU$P9m9FlRHQ;ouqKstOP4AhH2DM8= z7bXjHk@Hbx7r5bbgO#SEa*&d048D{&6x$@X)yh8u>sd;j$Z}<;)|`x}#%ev171>tf zR&4yEnx#yZSGv{)+%N*Qe~lp2&Yx2qhHH4!Wb1OI`jUh{FE!B^YBh83Z}=leg)Tla z{?oq>yjkPF58hw+M?f=aTBfU}K;?9Mp#bYwar6ku|Z})HV>VAGa&UnYtzMUh=xf8DA%8dKfk3uP6J%u$P+f(`?{{Vx1 zzu>3${{S9;XDvJ7e_zFa8_)j$2~U7l3mG*##@_z`U`9lOaLfp1jI?Y6ADNo#c2UBQ zg5o?Zu(jcdr0n9=pIbMl&N6y*vuWL2yuP!;;-^A-!fCbHG`;2NZGSD1@?ZQMAMh_g z)VxnG#9s(ny{3z-rS74m=wUM27P$rdtF37<_xn0rJ;mY=f0Qcf8-NM`tuicSI+*Cy zrnyx`ta?TDUnlq^eJ){zlyd1tdbl*x?-#TCzZ;*CraT^N?+=t5k&JUeq7=e&(t+4( zLfOVB6C3t(=|BtQdw!Izgv9$f&)uhR)K4UX$e?2EVZ~Lz40+^=P22`~cs$Y&n;L;= z!()0-A$+6$e?Cr}BCUcKbTf(&7<`bh7v@+*dljU6dG(sb62VoxXGR_#*J9p7>=shqRgGi1lzarJ;CD<$UDwAX82v)e=S0pnyGDX*_i=ZrLi-kE6##Ya&o ze*gp@_?czlfA}a5hkg}!hgfTU7vdeY&WUjb;1XNY1g&CQzTt2YS0BXdUUp}Njw=sm z)B61E{zf>5B}vLVt-k9&!L#+>{tB1-4qX1xfAC8vem{6#%2n|Wo#3ql#+rqy!gs9V z&L}k!g}Rc6vrOEQwvYjg^YEBVEU-A&e_E5gRhv)e8GY?JKl^vSpLc-8Lmih>!`4=l zR!`)lulX;T{NZ?`OpizL74Df9(vaM`#>hzpGxCw1a7GV2`q$~S<2JB;0!x zm4NM9T#-zG{{RgGy~N&qDcF{-CJE#UZP@^-hd3gjVY45_MZjMqKNKbde$GMZe^tx_ z#in`19Ka#8#ZNH}F-4dsr5wPR<*-IPnq1{s16c+8ywm3k0I?^vE@6ml$o?99;56EM zQ|1uiXmP^kj&X%v%ebaTj0_)5-rY!9th)q~nGlK73Ld0UR~&m*4wGf7 zmL7aZ3UX?Gti#&e4~W`ad3ePyt5|AI!T$gW3q}cY4KJ&!mCs@`;%0MzqaE@otT6qp z#!Ieca;y4PEHN%@Z~P@CR1Kp!^rPyxDORy=4;Vt@=8K@MKZ3#Lqy$#-vY9M>p1G-?(m8Ag$|Fw+xW zhF?iew6%LAJSGK(UoAWT09M@feP{j&NBbIlNY*uve-L<&;r{@Mb*)EN zu{M%xn%9c%B)S+X7GSBi6ChaHKb;*mwlGKj47AE%+DV?O*nR{gf{+yhGuu80Nm${40GLeY;D9 z67Ma$Mu@Y(i=3v=f9R{6$;lqJ2R8PNQ>?7}^k6(f_s>>#ye|@Kk)$&2aLfr}EV1@Rt z%pPY|=5=UPjg>gRns$@>x}RZ{VI4dL8nJhBY5F+3CHSi!$(QX1;0Zhl@hbPhchNd( z8a>U0h&30 zL2HiG`Gnnt5S1R3n_}h|;Rjl2=nmqd#zhUXM+J>X{{UX5>;{sc(^nnGWid+3F2l)?VE)s%#%gG5n>u`qTEe zA1#Le0B190O&-vWQCCTus+>}FQEDuI_G5HrAB{(~4oLvfgSJBsw0mm;i!2Wg&dIe< zocmOLe`O|LD`k713S7hUxg$L|s#vJ8I!rBmIW~6^K%!WPiBo2!w}u)_Y&ouZVr*)u zvC?>19PMMz(wElkCrqh#;n%fnDLD46V~OT7blNMYhn9CZVh^D;e^_Y?+1#E#3lS|sjUdV>)!YPg=3-zj4wnL+#pC*AdyI?Nte|HtK#3>W(>@-h0B}Mw(J~AUu4z;0&HU ze=FvySFel2bJcfm@;=s$3K%Rmv!blOQ`&qL@UdsnlTnp~aWbw6;~8Zi;6EDnu=pn` ze8-cB#`4dV8(t^)Y?^+LHO$Zk2^%?AA9!^mJ-Fhxt%Br*%xL3z=VX5~-|$?o*t@|$ zvA6B-toTRa-j=$5hx}2cL*h*@O^E`>e`EHEW{y~63&O@Gf>Nje2#l%*04LDHR-313 zJywT-kE0rRhsm?l_})!B87eESOyRO37Nlp2eBx;RoBfXe0BJ82cst-_^nVWZ=&w9Y z@m9k@@Xv?imeNU<8#_-5$8UCo#zLdB>K5^);tuqDjoeq~dG#(_UpjVnv+nt?e+zum ze1xi;#;oTztHmdl7wmF6-azCT0ZtkJACeZs?nm1kUuK- zIgg#O5ehlmO*@5zD4%$(TDYtje~gZ}rLZl=GWS+LoitKc8G;T8&00gU0MZUOaYd0M z9IzdGRV0Mf$l6B7CW|0S#1A0{nrRGAGd(d?$|i;0M-5Wa6@WPJMXUX7$_XpCI zg>`ah@6iCl3YQy{nIP6&eboc;teqm1n5n4UNO{laQs9v8$?aB2B*`Q3H4@O$I zNSJP72jf^uO&fBd(#D`{jAZ*(cWfFW5RWqwM^$%W*)i_0M&Lz^`&8YD#GN%Zfj)85 zzH2uNjXqt-rqq7ke7w~te{zqS<7I!c3_Ed-DwJCyS45UN$VLNq6s1M6Mr^d&f;lX* z0q$!jNt<&bMV32+&cJ=?a@*Yspw- zI6lUOOdXL4zmV|AD@6isink0UIWbm=G&YdJ3a$XgY1o7HtNso1e~VSpzi00g&pnpd zH9sDrSWHF>$d<671G!wty!8Fs^})x1oHXjC<$uP<(d3D!H_^L)9^jz$;Hy-sQSBpXSo^1qLnqhulXNPpAuMh7_DU=Pt~87OBJKGRDP6RXyoOIe-yS+6NT?orqdT9KS=xo z;BSiFDfk)iZ{c^rEq>oY)UI^dFYdfU4d;^3NBxIwcRYpEWdt!>qm~?r0`dsWd=_Vj zr%yJiR=tbMy`oq~2X9QkN@~+Hck?^?G^O^3V7$FTwu+3j84bqPz>? ze+24xcNPd% zPUO(ve@=(zlbX%bOwkiAqOw2C`KWZ-LnMkdY{*~mtnFdgjz>p-C0~zoRF;Bi4tr&Q zZ%F_n-j&-6BvZM*F56v!#cv20$=#J&eTOm0&$VXlSZAsy0AgD zMtH7SP`fsbOCgf$F6c-Y{3ujx#N~3Fx{;Lpf7QHUVjFfMlIBzMM1r(XMsjj0%YSyQ zf|W`UC!R@@+S=>7mA%F0ou%B|MQ0bAc_a`sED4aioPqMLNEtk2f!?1aQA%#dv3|^d zus7{N`&0OjNrS?_4YhqQ!&-#P=lIW7(jX{50_Y0K<=lo*vnxXfiDJk~4z$eo8nq zNN_VG(oJy0;0{pW008+~^Ql@2toNI`U81)8-}#?ihNn)APh$tAHD>$DTm8%Pw?o;! zJotjfKZlxTgL7j!76By}D4Trio0BAMf90R{429Tw06W(Bn8n~@7Pf2V-uC;&hm@8* zwDoEHlG^^ZJvZV-)}y6(Q^FTE@LJ4}Lm9Z9;diVstVP+>XO;m~SKWc_T{za`Mv_}A z7+}(sYQAS7$ku*R*S?^9TGE5B>?If1`iF zOuuERqww5N+4%ne!gE||egxF6zCi5irfV5kf+)#DQ0H1FW%5@`@UrLK!aOnf_J9e^P@%d!hp-#`#Y* ze78g9NRclYMjB2&wLZ)_$!+FIWZJUe`sSuk&@PKJ2$C$xan3lb)Lq8f?q-9!Q_ev> z>!B+nHqiEgF_3xs)h5Yl6=s;lCqr5#b2picS{}V2b!)tG<0RQt6FIL3b-Q zKwMGDVv{G11G;%+GZc~{*ug}0AdS(ce=E-VrAfByK~2YI+x)L% z)Q&PSe6(ia8E<5h`|W?4KBc(*q5d0uJopcMO@oYvOS)o8oWo{{VoGqjSSx@QK6VOYi>xHs9XQiN9sP_$-%$ zz61O>vatQXe>_>@t!Koa6Ff_I;=MM?%?16ZgETwC5wnIwc|?%J?FqO@Vpngo%N(13 zc!Bv#z3O>$os~hw>Ga0o~6QwUb z523yVe%imY_s6f;o5TMAw$F=xAZfl5@I~f{9-*w>>e`HO!KX}(Tzo{4{7iM?!mDN|C8t^WXDf%E6=NB;l?f&G-fYERn>$2wPo{{U>; z%@4yme>a5^)5G2j@&1Ktrr2xG1hO=mmY;Vdt13Ry13_>+$Bl#RUoC=ntUO^&s560M zB|53i9$Wta1rGlJf{lN{89p!m&(M5X@y?gw4~n|PmNH4IBHU? z`hI;6({K1E4ujxN3;Y83v-?>5a`BY5{{RjC7-=_A{{U!Pv5aea&dKfLmIBxh?>|cYc~*Mtz)8B# z`2PUosXi%uS=PLEut#t9`+(-!1PdH3v~NTJk+eSSbI7l-z)@ISENLxleAZ!zmNOYT z-Py!7vB%#&_20~La@=d!f}4YW2AY_he@f=lcitRUsgj~cC88+ewB{X%WVAw`dWAcZ z>_H{2I9_VGh_WLv9{&K!tufeR?oraHw1$R!bf98xZ^nWfLzg6uI#4Tzmc_YRS3n_8 zPAZeJNihlpv= zG%@Im$0{lZVd~;B^BOI2tp<6*M&XD9(w{DXn`}`r4f3)4Y4VnY`$fngP%l02UXA*fEwr=F}jM7kte?K*~AGN8; z$#-tu3>{Zh)wR3!)HTgUd%4|JT6>wAM_{TIL1rY76aYN{0=4K$&}_3!G%>?9%eumw zAx3gSF5=rpdJW9S1Gy)?PN*KHi}>Tlm!1=~_5mMzgoLa24iA zOKeFP01E&K0A%q)ZowVQf8~fs$BqG|dlc2hTXLr$b5hwBKTZAvd>qt2;GVy*6rM2g z28S%)8GmRClc4xJ!%;xS{?kstN#+UnlLBUd=LE|%h)4Q9Pm_yMnsqN_s$QL6=)PwQ zhxUdh5MKmdzHhSpm(Q`q{{X>3yl>;Lg1@pif!96MLZjs|ZBBcVFj=~QXy)%ow}?2_+pr`={%qeldx)#-0f^4H4$ z05kLYC!NVC{{VrnwdF_4#8sA1=W(XukxxQUW-3U>KD4Zf)sRgL`*#=M`c|=Mb|OSz z3hnRI)!hR?ZNcL-f3-7|28%-9FkY26Cy|VMUz_gLDHUc$Y*tQ2D*4(3u177BCkClV zrnDe?a2q17<}yNg4c9cAxRh)lLcLEkAQR?lvXc-Tb`-~ZFb<&g6g#locI9!5(y=zM z#vl$&0ue}M!88iW=Gbh12(BA8XopCzw<<*|6p;v)bZjerf0b56B2cc&xyKY*+YD%R z2MdY-k}GMXe1V@}DLErWsuFcD5O&i};PfIlQX$H&DcGK3U$o9slh@vtDi<>#d0m?X z=h~gDA)#efC(9jbm5Q^mDhFZ8flla=lMZQ*ps*<18$J1{Vl1&i$p@uK6{fq|kab%o1gJBiYqS{A)zh7O0OYw=6mI#Z`(-SlT1QQnNvzO3FXgH|0vi zyAOq5Zuuq8wrW}gi6oFh1FO%M<`It;Wu3mFU8Ddo5r2eE$Gcx|mm$WfdA~?oQv= z>Gz*d>wgyfJ@Hq^zBm1{KWf|Aygzk+;qSHR+C zN?uY@f8s+A%3^V|%&JO_H)XBgYkrF9F7H$9GOUsrWhmk*q}pjkdA;AO*U@Rc@A*;t zRQ}N3EB&N?HtRnVJY%X0rn$N+YLPoMHt-^>am5jDn8uODilx403%R~#YWj@715X8o zjW{cQe?K$D%yBZtVw~RHJA98f7Xn88+1dfFfBQ6WmLiT4OZlAoRJ(xYnSjbL+C3?9 zf@CdzS@tr4?^dIr*pEC|1Rk_mh;X@qlmdEFNuxy52)8-JL=p9**qRbpB?s$5u`Lx{ zB}T{054Bk-Sc+Z4lHAjXnGoOC8Lc!kV_s)pl&|Mb!fc91Vl$egh~^p@w)d(?xRJ>3 zf1CsP)fHhkG4Dx{VN8Gw(5+y&hEUuJEGwY|g$^@H$Y#piFd;~;PE>4=^^^|zsc3dV zBclAlg&~eh!MB#DW&$%IbB^Mvp`z?l2{;SKtz{%t$gd$FW|UbHDx^Wl z%GRlfhDL>30R3v!#5BnoeZkk>lT4eFTV1Bzp;srlq~cm*E3R#Y>?+PHmXd%dq^-`_Dz|=y&D# zI=JjYrv>KUM3(Koi2YvFz6y9Zf5IOH=fC}_b#vg~hBj8#TCc@x{Tzs`nhSFx=^hQ! z3uAl`ZJJ3$Tb_HF4+rlr$X3K+DLV^G{B9oPRNADTuM-U&6D+} zqE*;MDmmbhO`t5t5Opj_fA;3HYQb^w{GT$Mdx}LVj{8)dOJq=@DM*eES1BCD zX?MBEG}5p!5=KLUIHpFuMV2LToKsH2vLKQIqa*UFx*?$!BBLc~+@v9eTaqZ|xj?YT zoX{o@3|Z(XA)+%9De0f37hMa8 zHju_M+XTWeCap!VB1@wiZc-}w1l@%dE+$@HY)E@D9{qVALPrOG>^C%yz>LC>`{ z1}l~BZlslV;b5+X1z`GH!yzx@g1guy~jf;T8KGh8jY^`#`CCDFIRz$mz zZd3#Z`qd;!4#B^6YRS>D{!DGrxuo5SxAsN&v-@&>(E1PT@9>LGe`$3MV&r|U^UEzAg{qO} zTuImk9Wp>HRAgs0&56WA3rWsjCEfH!)G5lm`BD8ce$PL#2kg81Km0N9m+Z6f!uH7M zeh08?-xT%*<*mgWBdzjdUo1*9Xkon-vp zmR%B8*&Ml!J<-E`T|3m4vzGpmPs>}rt+Vq6dD=twv)@SB0e@lPtzTc#9_mST+rP7{ z_K?O|rksqtb|}n3#s`~p%rX)sa()**bH_S+q*Q*TxrYNQ&F|! zO(&v;*GX;7-ulPMu5ZRWo9XW^n(pTX+Z_M^00001&;S6(wSAOQin2ZyQ*)Kx1o?>M{0+pFI7ICx!e@di>VQl6lwrv4x z9<*}_+T>;*lPjN~r*dovU03dBj`RXRiMg;&GeM%zm~DXv&!16J)}m}dcBRfo9fd0q z%q(*jeg!5R!{lX<;{%TM7Ga|lMu(1-N!(3XhFyr?AAYhu3uVgi)W6p6vuE@gWvT@A<8gI}50IKC5vJvxKaq z!7GwOZIhC5QOsE<+0kDm_{A4sOAV))^DBS_4u5tjD~!3biEvE$?sU_F+s!fk#FrnMz=~gmUjehKP zH-9Hn?yvYKFTnk4_HX@}HJ|t@M~VDD6!YBp%G=@Z!gy~sgc_CH6TSYXci;g9tWrT6 zay;9XV}l6KnVh<-E|;@*Z%g*kzw6BP@)}feIjkwvS4z#U`lWBZ>*eZxg?vQ+0D_J9 zqxNX{58{7|x7ze~+Gc^Kj|2QT{@jq6e1CD`=bbL~JLr;7HffrCky}J%a233!P|DJ> zABW3wRH#8ymj3`3SF2L{^jdm%XXqK0X9`%Fk)1xbR?#abAJyyY*)#By;x~5_#w_J6GuVdNH9%LMq4RxV%L1cnF75 zPX7Sc_4%_pPKE)0m+a&4BgenBC&#}De$PJ)Z4zB`#roVDb&E=I6dT*;owWSKdg|56M|@#ite2XF z(-|3n$Vs+yuxG%|>)#Hkr)KnBtoM`oU+_M|g>tp^$zmLnKTr#QzwlH)1pHR`IpQ4? zz`wKykFGU8h~L>t-XYQr`%Mppt>#3Y4H_|$vB?xNM=ZN=rLT7KV`D~3hm2(TV`weA zx7JVmx?8=)#F*7q-u34z-rFUmlK%idwR`HUe1@!8e6{q4$J}&sw(YyXBe|ezM6$ZF ze9g$9ZIxs#jIZN=R_$S32bm+rG7lZ}n#U_Xd|j0^!HZD(uB(HwSJ- zJ%ltPIrOH9B=X9SnA0d}RNbA_3g8&2$fWEml7=}2&1YeMG{*^t-Q7iygcC5OU0A-CP1GgRDF{Nc-CP$4q?@;v}i%_zTDl`RREts?tKB;X8p zHH%=Qa>dbqw_7AtURS@ZOjG8$qvhqXo)a!)k+}5DYCr}BvKNn9Lt~`4gr?edVk@62 zOpzz+RztAX5kvDoBAu9rEzCuBprXtP;!W6YwGTq#$4wbU3<%`np*xkK1dusW#DG0> zT1Ar4P$9|O+*YAtNUm+yfDhwR;>iYgko>H1M<|JZV=NT!eh0lxuEvP2B~!|^S19>U zxBmd(ojw$o_GtZ;{wsdm-Y2zqHJ=lBBUJD|!WfxK&2f8t7Si(a+>A2G98yZLvXU8L zzZlFsO;)K3{G`OZ^+*SHdgLi#`_cm7c%jn_VXV z09w*iH0!~YS>q0t?|^gig}9s4i)T<(-57iZaOH{2A3Uv2HeWyL$Lu*YBZtYOPMW<+ zn!iii{s*f*SpB7Z5BpMn(fX@~Ia%8JdURhcmyzT8m%;Cfx?~M?bMVt%jucYOaCC{hy`!rK+qAEIgNp8s zB82vme>8D&PqR6OkGl{nVgZ7N8yh3N2my}9>&7a#Kmtv}ZrWDVq`?YE+3AXUq&{Rl z;fWvRkP%MoV=fo4e>tX0Z4na6xMTF7Ie{hwZ6^mbG{cy7N{!i|X^#1sGQN}*eFRBb zFheeAXhW7ymx@*aB$sf;X^A8-0y>%k!iiTL&>aO?mH5v}T%x)htOr9&l%d7cj%hSY zu;JxxwBxgIgv$4qHhaaHgL!e1+7!}v zS{c=?8WB>L_5FXBbKJjdkJ@X)TJOZ~0Q?R3IjdXA@b}?3v$fOjEaTf{e)e#AQM?%+ zzCj_qo6Y|KmXCXIcSr)r-ezl6Rl`b*dt27$slwP=(8os`TX{)4c1gEyS8cjl$ESb6 z7=LKLe}JC?z8m~a@pr|G%{?_qygQ>SIPjJ3+Tr#^mF3pcH_YF59OGwHW|k1F`p@e57Tel}}97x-`E z8!rv`OHjR*_rmrXuAC*bHj-h*kd>Ev7&i!%e+Iz{3X{7caMdAS3+-J#XS1{Sm#_Jp zS(aTwc)mwbMYVM8q_pYh<@b4Vdf$%pt#%R&NR3{p+9u0tY*+#7e>I{)ZsP0%<}K2ghWX0!g3FI{PoV5hOfw7*(x%M^ zDPH9YuEiK1TC_V6Br>w_393yLg;$aT!gEf^fHc!ccQMD(mntFLbSg8wy3%Mw%_bKB z4r@CxT=dU^A0O?09e5+fp9j2a;g9W)3V6jW<-WI$caCd2>twh~Yq<8Xe-E*4r&fu+ zNfq$j1vPl;jB8Q$(OTK3fAjnQ0LZuTC&X8NE3=kw5BRQach9p=GWf+B&4Pf-=0h07 z7$IX&G4jMuMz1TC#grXO$3<;ulzBB5V17njz?Vdp3|rFPTn-%ry0QofDf z-lLDDf~^Qn&MqlG%U{>Y_e$R5@eg0{9q)y2ejLRE_?yC(x3YP9F0fQ;8bQh1C8gqI zsQ~8(_fmCa1hss&4mi44gIiWsoviq(fnV!@q8&~bMU`N^Zw7}HT{Is+kDH~^T_f7#jompN5f;vKz`zjWIC-HQG)_^E4S@b>rN)|(`=-0B86@8mbh zJP^c^EXpHj@T|pv1dadeCw(7&?_wGVxyB7rRwtE-BC%YM2c-)@e`>@*NpQseHC+T)jzFgm zicJ9%GJ}tP)Qe33=cQ712Ch5j92!lKKd8?Xi%blz2>x{J7aY9&#fMInEeu6$FU+|I zy)6aM5=KwD2jf&r+)pu?uww)1-hm931}~5)raoJV_Hv(i)8-d0qMWbYG^|=es}}1> zV}awT;+2SMf5ovD)%lz7u4~|Vn4J4zy#CfCA5iLw1^9U6b_l|OJKSgxd6frDGVcz zBYU?QscnkG-ax|&C`eCXjU0tW;Z#V0)f1rIMVJ-cf97Z7rfWoy4JKJnmUybs4Q@;# zdvx3meQ9pXAoC=ePI^^xqHakfvqOYKpQS4yrbR8ptTLi_TlPFvre{pI1Rs3<%vGxsTN8BLtRpjuNn&d^auFN&L7z3yGNCk0T zbn+aoqi#@r{weSO0D&HrJ|NAhd^26X8138P*yc4ajGq#2wKmmd*J6s{i6%=;I^GNu z&jL8q55uS7U2w~AP=_jxo^8L)oYT#-3X|q@*U3eGNf?q}-s0Ni3HW8E1JI zlJ0U#A5+Qa-n!Hy1e8|C6P)DRliX{87IvN7Q%$hB6BWk;>r^D}C!Q2-G5$2{7qG>Y z6O2>kV&)cCGL4}0qQY+D04h3WorDDc01yZ1MSv74qQf5?j1y}bn+3%TOJL%in1?9}dCqAK z4)cz4K}n!4Bx zdJm57IFzrI$?j=#h;Cw(ZfC_7Xj&qBD>&{O9&k{5v8j}-e};&e0?uL&oE!s1^tjn6 zo*0hMgFVeFHfJl5nO(Wh6zqgLHwrf6Ii+Hif!OUlnvu3MbeZ`&(^e$}rtAT|`1Gn) z5ebpYbInzNkxHujnk>q(8$5x=(ciUF*jlDNuLxbFXX{IpcN)si9`M*cf|?T=8S#_N z0GS+@4gmo_e;Q~`;SABR{ph01S0qUxMaVhNN?Mh179i(;YGMf*AbwHJC2%4jyJXV= z(JX4Dw_el*hntBQ1yRifa*ta^o91Tbi`Y3rNLm~X)UJl~Lp$swiexrSkV31wchaS{ zE@34LC?^17nrzWKmB3QnD(|5zZVK=nh?K%;@0b`D{Zm1oW|R4eK>d5Qq2f4yldgLf20;WAHJV7D0R>bYPsK~G{6 z7DsBUqAV;i9oWqb5+-5gj1y8etU}Tb!||#~6LcVx92zV!;4+=gIP|F+VyRgV$Z%*M zF(W&|yt$wpgc3WT!0sppk`cVZFb!Hrkr7#r1q^Fa ze^wYfTdq3P6>AY~2PB*f)uC7!j64qX#jzhIfeM?jPo)3~$8`Xmgptbh6b|E6x1M^? zAzC&ffCU}1Km&){O6W}q8*Qda(UOLaQQI`NFK}?mGAclie2UD;>$taW z^siwJF(%?M(u=WKF&YF>xOMfXa;zyHY=3)^LSiC`7!Y&CH>eZuM_-%psjv(rFU%VP zotO%a(gH&soYF09FBr*_k=mFscdLvqT7NE0g^9!mBxe-wacnkuLy*idO%C@L%FKJ0 z)|l)zM+`!h#svh5$;R=FdQ{v9rNJX_9<=wSrn0w zb4uc3CO;Y&(Fl`b_$bJ$0q|co~39jI}w6EIuR^LEt%VsLy{qu4Wwu}=BJo1VH0XF z;BiUZ6L%z%NSySflPIq(!sl)(k|B+EMdS*kiMb-n0fVQ_npSryNJzfTg44Hd0H)I` zMnf*v&z3mtR2D+2e(!1OXc*QBAAcZc-hy3-+2)uXtHAG6k|bMuH+BTA4WV19X`)!j z$4ZfiWAibL4tbmRnk}sIxR*8_(1X2z^odm0)UJ`y|O5;}*B#>~u zDQFCId&wjW0oOEyhiu+{^#u(}XDr{mz{LPGq5GipG|&xWDssz_RICh+Nq-BSrkM@4 zNp7q`%V1Gr(_l%@UMX02WUC?sz!=ARR%7Nwf>_G!0+pFJxY>fZ4W5)Cp%vM1wPjrm zf0*_Bs1s;S%(%xitVq^v#{goDhjD^18x2heafm6-XaS{|94!DUPQdcC0N}g+Zj=tg zT{*|)K$;_D!Q_545Yb}Q<9}88zdBCkCvj#YJC&$RyAk<-@Nq#RD)Ydi;<6VkK3vgj zjIx7_)^B4~xhjFTr9nh;bTrWt*p?&GrR+l$iOJ@KB00aMF_J_-a%e24FW)~}sO)CM zswcQmCAgo)MLvbC$&`NXk)Q&0o@fD${;2&ZA?{CP2icDUtpJM_;D2E8QpU=cYq6WJP@UaPQvyIv z3C&0iL;K3UfEOg~>q_Lj67Ua?W!StZDuqYdk6aohW9XrquVbOM^!E8DDel;&~ zp{ASM1wV9EEr3+%_(;-YL{k3%to$i-5f*#Z6Cu%(Ta!Q`Px{03pnXRm8@f<3Tz>9? l*2Hplpi&Y3@t~3x`?ML31p3fuB>+no^r=8BovHN$|JlXOC$#_o From acb1c2e219eb198c1266c47da976cb328b686df5 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 9 May 2023 15:38:59 -0700 Subject: [PATCH 37/40] update texture definition --- .../shaders/ShaderChunk/lights_physical_fragment.glsl.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js index ac51ee2cabf57b..c0c1a5a56f441d 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js @@ -123,7 +123,8 @@ material.roughness = min( material.roughness, 1.0 ); #ifdef USE_ANISOTROPYMAP mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec2 anisotropyV = anisotropyMat * ( 2.0 * texture2D( anisotropyMap, vAnisotropyMapUv ).rg - vec2( 1.0 ) ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; #else From b47ec43b8593dea01489a13f32210ff7e8d96d4d Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 9 May 2023 17:11:25 -0700 Subject: [PATCH 38/40] added example --- examples/files.json | 1 + examples/models/gltf/AnisotropyBarnLamp.glb | Bin 0 -> 5665948 bytes examples/webgl_loader_gltf_anisotropy.html | 112 ++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 examples/models/gltf/AnisotropyBarnLamp.glb create mode 100644 examples/webgl_loader_gltf_anisotropy.html diff --git a/examples/files.json b/examples/files.json index b4304b5621bb27..6b671e2125cb49 100644 --- a/examples/files.json +++ b/examples/files.json @@ -94,6 +94,7 @@ "webgl_loader_gltf_sheen", "webgl_loader_gltf_transmission", "webgl_loader_gltf_variants", + "webgl_loader_gltf_anisotropy", "webgl_loader_ifc", "webgl_loader_imagebitmap", "webgl_loader_kmz", diff --git a/examples/models/gltf/AnisotropyBarnLamp.glb b/examples/models/gltf/AnisotropyBarnLamp.glb new file mode 100644 index 0000000000000000000000000000000000000000..7707c59a66611f9fd8577aeaf81175a4f86b12b1 GIT binary patch literal 5665948 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

&_I7OXePI0G%Q_?Brly=HM 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

3B2|luDu%jIs0Vli<3}KckIIq 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

WOxsvuh~mo|l9<>$x{r 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Ū&g=y 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 z zzLRrKzK*Pes-)wbNf{VRC!xH2x~YtW8-cqk%Y%`LgeHqeDgz{ysVD#vM&OakQdao)8v2Y*|unwuU&YKlEC&4BToJ)#mlu2&A)~x6O&Ur|mvuQ1qu}8TLd8?Ov5;1P=DfnP zd~18(1*N$v8X;tP7sC9AQpuA3N~n7TM#GvFo8w4TW!f(Xnh#yL!OObBlT91Z{A_<* z(VuZp-ZHJZXDy?V!BDoql>MMmD&bXxSxDR!MOY`EBPD}7k7zn;`@U-cIF%?vLN3t7 z`N*$E#HhU+pn5B%hlV5hMQkSir>w%FyE+M;!X>Y4T5Dd|;M}Xwig|ga%-MGv<@SSP z1f-UD_b6RxjtiKC*wd0jMtU2U#6#)3Z3C2S-671Kvar%+1^VhVg<`rm+w&@P39ca2 z3Bzm2KGb=er^He`vizTNGmPA%jw+M8Zw589Bx9Hb3LDYWb`7+P2JGnlBjf@$7RaI@ zN0yNzVmwbsyqW#@d85%)9c03~H^>NXwaezS3tVIJAT?mM!C%0;f9stRu((nONrAoy z9hETrJVop!?!0!H8)UKcfn9|i)o@9Cj{3vv#=vP82P%GF7c7GCWt6!F{I^S@4*NsHl3Gdh&^biK8jbE@kXoq zzg&R(c)R=`n*EH+@}bo{$ZBH@qKa^dj0LhSWfeLfs0%C9=#qT|_ZNR(EW9!eEvU}p zUUUI?7%PWaJ0|=tObN*3wKsq{g_EK2!P7+wDtl>-8|5(mEe=iNUQjWut^23rva;!q zys?on;g~R4A=!UOUvm|UK~Z|w0!Jd;|G496yWN7wWEH4+FIiS5Xfu2D3qcMQ+R@hZ zJ@`SO>Lj+bboqk;Ut*}$-fT2o%gG@a>32q$o_E)m&ZK*-3e<#TPmC9=w?ra@seg#% zz}iWO)Ion-OP|?qL?HUm5gtu3K8qekH#_;M5{%EXHHo|AsU+DnI|0zIz?p<+GCYHJ zi$*%0$(@Sp?k}C{|Aa;b5XPIl#B5Ms2)FZI}f8 zH#g<%v=KO9eLnF*QU`q8N_h#w9(d*UU-CAZ>4&tlo8Fga>yxLrNqsD2%3QvkK!J9?5Zk8)Wb0-xP zX2;Gthx)diQVM3$ftp2TVoPBSlHsK_xr8ctuzAuFk^TdpoxUMpWkCKE13TQ>c`G z2`Hj!8IhZyS-wGtyRx%hX(+?b~N zMV|TOqlQDKx<)ewJf8-x{jUDke+Z|`5-5u1?%Ug#zGD->O6}h#jLu;%Am0=*JRRp3 z$K9)&D+eKDJNrGxVKav&Y#&o-#@1X$^MzH z(n|VUAT#RGGCY>n)zBrh6;&k{Nwy%k!0*hS((J`|SWvikUtVADEC|_IFtcuLhj)9D zNBlCl$>a_;`&fg{t(lTRsqNJKylP}%lo>G@*iKR}SpNI?t5a*gvwQ00fBU@V4e$Jh)b;5G zTPM4xgH1MC$ENC4H!dYsKepF8llGhkD_^Y&dXKME{S|7*>h@R-%BqUpPM*v^GHn%3 zDTDEmbz9K}&ztFallTW}A8FTrsrcI+{U1%p5t@9gAtx9jFWP5rTHAd&6;De z(Zv;8k9fybn(Y?cu)q~ZUD@1>t)P|FEawf8Wa96OX3{9#d;bawMRPlHeh>Mt4XH_H zYA#_KguAeRI8%WvkwtlJqGIk<{_o-I)x<=7=CuZrntl)Vr09fq#UuzL zr};vUmDJ5Pg#54^*2eFfnRDcfE%yi7*Amfts(OmKGW%ZFCUz#o6gmXYn;6@Fx0(EZ-(*2bJ?KI^>wy#1p6B6T_k!GGYl=bp*AQ$Js!OD!IBKfZL;Q7s|*{{l4T zZU8_yli17W^Vg4m2Vbluap0+ofCKJX@a?c$ULorLoM{p~1AAZ2{1MbXo`_|yhvY?i z=jrD2;ZsQnVwZQ$KtMiss_9FZObR&PxMK!`P&ReHo&z;LOOpK}n|wH#r}+nvYeELn z0`}&g&J#cubD)6=Ib3@2`&;*TLEHhrNU5#LDBx1&>I13XB#<_J4qJ{bC|L|j3o?eC z&Ep|&0wBb+xTz{A04N;GgVX>|88!fp#3Yw7Ak8KY3Ar7-l?0&3phUol@a90H3;>=q zIW79sU3-B?%~u1+3?NC$u~nK$Z_-J;Gz}D@C`>V0q;D$P$k<^od>G;)2(D-=(oOh* z4cq`vmYy#y+L$tCkTNuRFOmp=1pwhyA~=@e5fwm?fsBwBS_7PxIEEK1Ds44sfJz>7 ztg{{r5K%gb@vba^*%N$_0}u`n4+D8Bz_g|Cm#T)1KQRy#83+m@WTyk1paV3e)@PX* zAhD6!5s(069XRY5v4Ii*PBtWRdN^uJ1ReD5my9SNdn3pU05IkN=+M#9!YQ%g*jSOt zO5kWotc(k1Qd*D!7FjMTIz3NiBr;rHW+21XrLrOs=nS_<16U|MVJe@D5=rtgoy*DpF|$uslW{jt4RU$ddw$;czr4V0bQ4%444t`vn6RQc*H5 zGoUMojb4g^AI$)h1^CFIP~xx*z%#<&N;^ZeJOkt6UzP^|r3g?33@D)mE|6Y^7Ap$l zzEcYitzx%R-B2bPUj@bQdkeJ+F_9bw2%5Zav@5}vup`oJF*!7T?+qWoV4+Tx{r`yi z=J?2hX6=cci8i*4jcsnQ!N#_2+qTV(ZQI;fyGb_L*qY#*_rCZ3zJF%UIbD6ax~Hn9 zy1M%**pj{l5nRXwe&TrkAHT5GJT-hebP=KD}dhhUa~96I3Q;dN-7IN3Ov(=Z-9*q5|5QK24F~x z1~zt$aVgzdis4E3R77(^3J?Y(qYpx^4*@zc0Gc8u=m1@KfQgy_GIReH8}$AFVjuxbmgG)CM zEuQSf11d65t$~=x4GK08w*>E|(qyFn_1PsgzCTkZVE$#RW@Y5Dq&4FniNJor7lj%qkp;o4y!3UtGV#cL zout3GYc`$n=RuJOtXG}0DI~bFjWu4xg$m;Dqc5dPTPhGgit0M@RrVOls79`97kJy^ zwCl;mMG7JR=FxHk9z)Ev))+~`6;f*XNN~J$tP9(|Yv?Ndyh>j}Q+f72VO;azG@uFx zNK0K4)w^K9&ABi#G^6`6hWK_P%jcI^xCk`dyC^c3TnKZELbL9JQ?^Xix5l#3bM__QI-edZ@wLR|%WOJ~v*bjvq`52)68pq5I~w8VIb#Kssex&CYmB z#i8iLrycCY)w~P|cP5J#=9M4E%h6}8q+f$-BXTje=vF01BBA7of>9W_(PpDG(Qoxv zU|QS`V3K;ZVR_Dt{cL>Y9DCIzj2ha>Dn_`z;iXy7s3aJbq!UC^eV37b)q>u0)WX

-LVGshZy!9mZ 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 XEQFWyplFJ2n6!9);%r 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 m3 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%0DPy8wQoe)l9 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 *6t38b}rD| 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 z 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 z

JDYA0u~|Rsu=1CMC+Px1wUfr3=RGhTCm=Ab~$s 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%0D3@$ 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

r{;DGm2P+xvXxftRcaOs3kgcp40(XX6(xa*W#b} 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 z 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¬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

dl|F%D6?I>>9Iu5B}VBERMCk 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

~dv%)5~YX$fKQZW@NKhr`Fa{Wy3)Jf4=AvUmJ) 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

gU@@ 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

9j`kZCnlBvE9nY39Jq;MQf1%kRP!(tC`)NN*4P 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�srfouMJzb+vqVSzaW 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%0D3vmW7=RLqe~1(z>)9&ctaJh_ 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

ooba9ljl!!5L#9w!@{&%FbVRF%=*@%k7Ss+ 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 v9j|MlC~-<)D00-?!S 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%0A~ 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%0Dvst$nH$yeG&)aXUS)tYT(!nXYRS_o0!YahN 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

LH9gxgC0@BtQ3tTX)<%!^<{i%XCiBd-52u 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

bt-CVgBs9>8}2COUZAnx&Dz`{Kx0kzwyoQ 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

(jXi#bUr5oTw0S_uA{)C6*&eM41Z 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

>VQsM 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

-uURujbG_H-xk#^JOLmj-fMiAP2r$LS41V&q4CcgaV+xD9B3zOjK z)_Nt>aYb@{Sg`3mt4zAja^$nZfc`Az*Z1ZAk1Wc&rGmMkfomnB;XtmdrJ7?{nb#}L zKz_Asxdo0a9caZE)mCR{71T(6EpjHmMCG=sG=6IPe?`t$hA8&fICA0AIAw4YqkKYZ zTvU2{Q0DhsM0K`}?xZB%M1V_}36u|4iOR9qNjA?m@>Vgo^o#u{KbkNi9EcVl_JV}$ z*-&HflpmlI$KtSDgy$dtN>%i@7c1%nlf0Ey@FM@fd$AP{)C-)YBku9agbm^(y{Sfa z)EXDrie8FRsBRp)Ai$`)E3Sp=OzTO5ze+LJzB|f{F4)YwK~P+ z=7$aX&E80n926z}x4>W;aHOoC>=Ex3ULuWH)`%ySL5?NH&hA82F@Ccz%0{=fS(WU^ zIindFDk#)5rP=|h8}VeLs!T}A4(Tko?s)7oEwK=f zZ%aDKmMAS2&W_9dRRH+fzP7LJYr7GY{R??bf5KhS%|~1(V!ClDr}4brnxoq)>GN-V z$3M|~A$Y0jFFov9dPL@3s#mtYeA6oX?hxiZd)E`-&*sD*rQSb9vT$n#Ol$M(G4HN3 zR?W4F#s#`6?=#w{;M(NNRx6*A5<)h5cj`W8(JX@#K3o**N}|8{Ti+IA?l%L;b?YzWNe(HYiw zY7vNI(}`BF5ijU3Vg$#^L>WB0Gp{h<3v8uW!ETz88}iMgcorwTcdCRzL+($*Lsug?OY)NDeFU zD6d2(E_N7Z*J!{!R5{$T7jdzBI6DP#EN5#pjUCSAMKskE0j?GFh{Xbvb+cQ9k1~d?4*r2+UKSQ4r#1r zQsfh6`sEt$#KsJ8p&p=%Ee{VQfXuq>bfeKgFd`8C+P?Q%bB-wv;)n%113KZo z9Dj71`Mpl4pEbyl)*HlR;0&ikY|*8;MMugla8g#oGj57Mnrx+6KI3zBj}9>8^1d$v zcVE`_a)w&lI7mD6{8=54I}W&i6q!b95nF|+*)62;5!MnC`_VZXXjN-#C=y3h9;YEA zd&^H|V}=kJrUfv_66zIbmqVg7SYztb6LWiN91@QcW1p7%g2gh_|Gs$VF_SIwDm13jN$opWPVG^GeEo!}( z!2#cQWCD-!U1>OmjJl2IS2Clc+Sw$;$$Z8C6zn)?Vh_#Hgh&$i1sd8o`VIaHLj~Jx z?G8K1;u)Xq-x4?!u%m4Aw49*Y)-lKS?2aFeste}SMI%`QHY zqAw!gWIw@UJ-@>9ao^pGnS{P!-St< zw5T}W1{e33grBo#;0I}vPB7ygent^|9l4-GnGX&%!Jeu$NV;UM44(*AxnR)f+~rR& zH2ocR_GUHlob&msZ^F@T($HK!w)o|6)hk`s5h3_*nGQ}0WB=!WerrDVBN(3#=I!u? zMfKY${d<%Dnr&<0J?41qj0RXHh&I{XQtFhy{nN{e#0&Ga(tYQ`sk-DgUOBn~O_B>o zaiuNU*Y#(}zykmk0`@LuGs?l49OW~Fv23(Q<(;^7!q7TCKodJNi!mmD^oH)mvwe{6 zR`t<)Vf#xe{XOARi4Pua!JqOTgSIha38tmoMVIej3->s}v@i0I$`Xh0x;IDS`ha9# zu;gFx5kF^imNxEVh4)+(JLN}lHhcL6@8u1iq*2H{Iwf&58{MVj1BR5mr1|e$>alDn zu3gDq^Z)=L07*naR7~13En?;uyMDydrqyFn4rXUB*Qm=gSYa#3!~j)laXc>uF`xk# zwQuQXOSU>)x-`$Ua}kYpFqOL8W)>&AOU<6tS_GI&9X-23*PA97?U;FpOe}@&%~;tN2lI?tK4IA?sY@s6U`rYc*K353ez6xY+B>b;toy%*gY^oK|*42d2TXo!5fO!1& z&VHvm@=n0)dl1Z}=AM#?eocG3&iX6zOSgR&U#h3l7IeT(x&OMGy{1O<&8d~%s8)YF zPk)1|@7vO{-@aP(mR5)l)$9C#_4o~zz284Ce%=4@dwv(cRnGp#RG}4cN#8RWyqTfR z_m0w=9h4uxLwP5S`QxV44>kPW+QA^>hjg1?ciGGo=bjmDW%?W%k;$r zP;&LlBF`5WXR_i{35UP|-@^f)OKyBj6az0s*;;A}OSCVg&3{@cB6p?!J0`#+V`djg zV6P~GR?^fd5%#I9-RI<qhdIbTcizrC<=dz`TrC>u3 zA?HhF^QzJ{_od3*6cm0etzr}!=2FA`27j-7$R%ZQo4E+N*XPpJZYvPDW!WyE@KLd4 zQ$GX(TOu^4oAM3B3qp~4tXBpaC|2Er0#?452J$jEh#lZ`W{kP!%wC0Szg{Yo@(5de z4}!l+W!&K}nBi9?2<2FZJz{vN@Z=}5(;)E(NBjr=h4xs9)4N)u4ERqtlO2KwBD)g7 zO9lx0Gd#l{Z!=#m593fbLMv_ZlJ7bx6MetHvCIk$eusT!HE&43&ap0=IM;XZQrGQb z%lKT@kcezevpkM7a)x6|$4q?4u@3&QK$+^iZ&%XwVF~rU8SYDxzkZ`uo`bmZPnC^a!Rh%=>sSd{ z9$*U2nmN&%_U?-w-Z??ZDVufD($Z=4Tipv( z9>5X*8;a8QV_hwqYEe8@YU?l8#9BqvhgU<>AJE9i-(HV^Z9Pg3(9Iwob0}Vnl{|1o zx{Z`MWm-1aLm-i6Jd!@bXxi0bx9v#V~*Ref< zd_O0xOVKQ(24UANESPXZ7x*)7G1HZ!&@P{Syujxry0fejW1W|{q|d7&-95~mRz#)~ zn({JZ*^`xTLlf^LO;6C-*>tp7cm;eORIu5yV<4 zLrRsj(15&N|9QQNV%?W&4Xl}0?*1^n)qdLly%d>8Kbk=qnz1hF?KS&r7D8+?|8UgT~MXd_4B$cT)Oiu~S~()%x=u3yC_ zdq{cdKjRY~ntjzaHfA(@Nbv}(wC@JE>oojv}H(% zj~=c0XT9&|_H+BW{oGa!fNymf@6|5ft7g85^4F@;sWnk@ja7L|p3JJay!3Xzt(fX| z{@4f*B_fDb(?Z`?Sp9C*9!1jx5-9eN*=JM zJ@2rad|SK!pt<#C)qZ{C-)wB$h@tdGc(wTG>hkxH`u<@_KJVP8d~d<_ZJ*{%x41t{ zf%7}9nzs@Q{@cIs&;QD`JD4J^5P&tOq;0M^u7>5_73C*)-nf)UxVSG0qp=X@CqNwW zgJd+}GczB?Z*p%4f8N zQ?5GP(FPsuV-yONAd6$wK^9IbjINwj>Ok#0Y1pR$P%+SstE?W(X)dhg&|;6u4jg%MSBBBNecRtv1hyu(5)F; z1bgOE;7)7+J6J$rgSb>t?;d9Pl#vE%@CQCr$Ku((h~EoRe3T3udxX6(3Ni1qcu0VC zJ`%p-o%sYWfvyeH-YLVy$cUS_H|ZZ&-PBt!AY-lgedM`OJ#$oyoOvW0I>2C0%EZo?bhc`QU+h28y^^;u*oP{qZ=~5wa1lb2!x6<7 zG2^Z2)~0862yn2Utq0gOD5gzlWp>a4N1hr_MIHaqj)jDElg{dNXTDDjFHeh;($EE@PkpQUcJbI>*YZof$N)ny5XEd+uAfTam8O6}16z!q-Sxt`K zkpI6qul^raf&BPezL_6Zrg6W*;+zYiwd{9IIPzPoLoLpLtTJa5EON7w7Lz)({EP&J z=r$Pns*BQsFR1|1UVNC)BJ{@D;c|;85l>=9=-;FI`jK1H+={2}&ohn*c9#Y4z7?5;3Wc@m!q!9L-4RLdE1 zgR^`IkD%P~Q8e_Zet~D{i+qQ-urm`rhr=?SJMyD_md@@c`Bcrzm`D$*+d*#2p~jYb zp?<=U7kI`6yj<)9>ax)&DNS`z*iP|8s4BN{Y%3XMPI-jJoB;TY4rrDJ+j%a0k1n0PP}68{ zY{G9O?0$fwyhA&2g1@>3@mb#Z+T5~uf}>MF6K$mMqwE~hV4dXImY7X1E5J_LW-u?8 z&Xd(!%%ijwqwUr@KGEWF8G=u6swZLfq8ZBg1!4|`u~2``+jaex1Zb3?Y05%fxh@#HOIFT#5Yhp z%kN)Rt0`v}SK;}(Tx-2u?)NHYAXch3HQ+^EXBNLEuQ)=h44NfPMr$4muhri-odADR zjrBLsA+BCEzhCNo;~*biPy4T|@Y`mB#`5E9CFWUo0=$Cwo101NA~ITGvU+m*@|C_J(yNa}JmIq#WIc@~GE4gbgjp1Ba ziBJm9Y--;PYe$Am%a1lx=>EQLFKDxrN;t|^Ue zS002H_>AYIZ|9PLA{1TV=+wXlIQt1sk^kuo19*ndOL~Dg5ebA2dHA33Teet){QzI; zKm~UBVDDf;kMLC-GNuyBV=>kFJt&tq;JZqIXw^`elxU`97@X@vjz!0wYVe%OD-e~S zxQ7qPtL0n;qbD5k50s-~t_X(>{D%L6Bicd}PvRf&TS-ulaLi+_XL&aF^*MJ=$#a7N z@1ZNJ`OoGds8H}L9N<6TS9mBn^Re`yFEC3F@QWP0k!{&fRFn_uugpp^Or$SN(y#cC zJ`&x-22%;ZPvz~H>O?%H20x)py+rq8k}ep;#+h;v68k|8Gr?49*+ASL6Lsw^zLe0_ zONd3pOB98CT12(FmVSCc?Ga-=-7ZxW$dW0T z<$WCLbI#RG>@`dci{Ae_sCrmJ2nyzY$uJd7@(4Z9DE16Z+9uv7=M^1A%OM!kvqaz!2p+nR^4Gm>BK6EQJ%zMW#fp;=*bqZSb;a|Ubb^~9~IWO@XSrlp!mC6`hTw!pSPA* zS~wX4oGbPW0!Ox9J0(3v%lb;Im7DZEtH7Jnb@-v_J#W41zXNW1r7zCQklIRwPV}F?B!Gv z>9Y-Nm1xRf>utr+bol~@#vL?8l0-T>HccJ&_^w5EQA`_oOzI%cSZ_{^FZQSAo%B2W zBM|du+q^Mqp%L+=DO%t$etr^@c(#vt!lRg_P9JSI&UR$O4)zR3d4$j6C=Skqs^~y$ z#KoM&#UZ+OxCzg276)>y+rS_X_=*9nv()MwcN@`tjl0fAq!v(-3lde%i0e}|81rrm z{z_UmzOG$%JMd0D6MZ8x%5zsAXkD$bMUxq^x@c}On3%3^H&w38B5~~IRGsEYnNdIB zS?u9r4fruS>j=}u!O;!!CK~hNfj*%lI;juV)HNWri2RMl183>Z-q?qxFKEJ_(Xfig zu=r|D_S70^>}=>WoTV*9AN>rM?j|nT&UZ8>cT3OEdO>H1KfQsWW|e#UKx_68c0=hT zU0lmB_4&8+UWe1DU7`s%}1J%F1vvac1}YhTy- zd#{P@%9(wpzyz4$Rq1oh2N+)Ef4#SHM!v>!eGBm6{g%@I0Bq_5 z7s9(G>Dynun-#onT>15Kp!npL>|>T#yi*|&HujOI zefS=1jfr0f2s?N1gy+iVJmNchl=k8?lA~_xF~S2Q2@nt0yj%}(k?t}*)i3Z_9!eK> zgpG6pb%eV-Dn-q~;5NRqk8qSu_zu3NQdJ?nAH*ak2eOEelDr9#dtmqNlM~`UONa}O4?h)SB#P8gayr(2 zy}(`ip4m#1F#S^D$p-~7BWTo07LdFZpW#ciaHLQ0)&39oT?&!iF`Eh=@gWP54E8g0 zc^eFF9FYJ|@Ms!-vbQ+OUOUmmpKyX-c@hS@$B_j-yYccjs(;)Sas(BWi` zkLaB_Uo(cpZVdqqr-f^uVT#7+>Z|}ikhwjl7?F47nA;Z|67j|6y!S6cQ zad8IG>x_262NQq7ixY&slLj=JtsHT(d+1V&^b6`Kf2O4gYFQStHzGoo|37Pd9BjZ0#1j`Ppa>I;!(_FZ!1IT+x9 zEQ&?=0pcEw&S#m!5C$i6uVlLkPUWbZVZ_rynlcCU?_m3H5xV07^^9D?ar0sr2!-@*Ah3Nq4g2vnfOt0q%O6hWKM+E_^~Sa`I@P=Vs>*+( zVtQl#>M~JlorSC$L{Rxl^U<+d6ZS<|WiN)b#hAWYIklxp;D&mIrd;R~oF%zho=vT8 zkSV1kp5Sb{biybl{M7@H@D3l~P$@*qRrLUvuj(*<# zDBO@oF`GMa4?8n9p3OmYvynj;JmgH<=di%3!?n6S!BM;vwrgu97{kyYo!u`&O7X-+ zX|IgA+$2qS%*R$1XPZ|3-E#7IMX3$7c;w#PHk6hIWi8h_Gz@@%OyHMU_!G`*!r0(|ejk)n5N`-Bg@ z(byQ^s6?IfS0!w`#k0+6vR#v#?53J*p6toCZQE|LZM(@j+2+Z&b=Q5@{U4qmp6}lK zv$sH)0qOHFgr1mL=u#CLKtd5+I~$ zmqgR`@yd?ue|#yPgqQX zztq*~&j`528o3_4ZE|e2(8?lt$~PCzY5+|DHftc?$g=I_GM)45=6t7K75Vxp|AhAVQ%Iek`=OS;qp%ri-GxhAn=-uGwmPa&_hpy7o+2J7UU!ps7f#VCv>MJq& zyL`rNNaW>~)`}-6L&5o%`By^duGjHDdn*85W~E=5XG?0Xl9OjJbF6ZV&hfbHRRSc# zp+W~bv&G|3{F`8!o@=`%szS5}vE}3UP_XtQ+T5`Iy5Zs6r7o(e?XpyNxNpdEP*DO# zyMDM%sPb+yDtPP%3qR3m3V#mtZK#*CM4a@Ec8_?1uxzXxBfe?SZlIE9&6zqk@@_~W z9_MLh{v`yYpBuHIUEV5ypan(P0!{BXEP*O>a@X{4;P?>Jg~--W z*I9X_Ba!&Oi>>*$$I5^GF$_gj>=PboWCewhRQM2G$UKATe1F!U7OP^UA(mW$ACQx( zN2zx_zcN7Q*|`VL)7+pHWczjoNJPDav{tMI^=y07g}vjxh2C>{Qp@o4g4_P?b^HvF zd{yL=V%sp%N6Wni_eOsL=}F-e*XalPgi_zwUTdfIiTSw9f7 z=D>4q!dhfJf+CI?32*vx^vSQ#4jHB$K-lAe+zbCgaif0HE#Qj8kzJDHLMb=>PdZX# zBFy*P{yqziI*n05<{xyS2_Yt^i*T_BJ`I}uzM*TYNGOZ-WL?w58pCC743*+Te{`qA zc(QBATbFX`6N;F?gsX@>IiRRj%-D^fqhW+x18jncE@=oS8trLy#lr?gZ#FT%+Z55V zZ>!Go6w}h3>AS+CNOJ(VL|n0zL`clcOTowcyQHgI#+Rw|I zs>O7nF1jL#%>-Ipmx3TRx9AZ25(%@Tz9>Ijdw<>=1=+Z78c2}e=fFIl>8)=>gFMx_ z%_xd47%!z?1v8HdW6bt}d;KrV$f4;T#s~Emyw&Js|-iUcdfRKv|``r+< z{ha-P>LeeKao)$)^L}zLUg6y_Kl5r)qMpA+@0?})v>yiiWqZTi*dZUA_)sl(&pkCJ zM7xC~9WCBFYz@4}-rq_nsu2~Nf~5S+z0qfwIw0-nKq1F#@1UPm4k_H`_HN+A2AySj zT_8oI4WUF!%PCUK(o{x9!jm(Qr{8vsSxBgcOq=N*XVS8IRfg4w^GOsY&uG_}zA2JlE*}_a!ET5vn}4ddSysNw5{uL{ zsS)>&Qo?Rn7Xh@a+^{4G@D2mC~H?$@~RN`6@RZatoqlncc zd3=yo@H}Y03hx#5?{;WCIaYh(P->OopVK?_|7u+4`-SaLUGFGnHAU#E<%U&~R&0Eo zX2w$ZGv1Y`qd8i3@KZ}yAOch3YYWSQ=%e)!eXVq2!7mR#Bnq6z`;!DVsr)4MefD>YvpxH3TVTFTewUkY zAwLZ2Y|QBh(yNV`yvU6gpF#b^fepZrsX#8aLmUCYfD{$JeqN~s&PdX+06P^Us5(C3 z3{>r|Q#HL86WZtSo5Oo`ZOm#SBOe`>443kof#?nRBs^?iOGC%+vC? z%ZLb`G#zLe8;%t5t?p8|sIisHQO5ziW(33us?R9@mjy`CO3v=*GJvVU2wXn(=~2JX zU4xW6m}u#IeNx%CMVtpp1HGq;Z}1C>mSYmtkprKmM|t5gx$d%nKfpT;LC2i+hJRvP zFU*cJqpE{*=Q7Sq7 zGi%MED~RG0j?q$E#4ddPKyYILz0_|D95ow^gtsdCJ*mBeF}-06okGT}C(&(_jAVMH zmZ0+UY39+Pankm1X@9+UI7k2o)IBB9dM%Vjkpih3Sn%hH%L2sz9&AR$eir=glq9rM z&JXr{a}SP5uOQ%5n<230xCX=BIyxxB_i={nUN`t6O=Uwg1d-F{h^Nr3dkL`UjPHVg(FRZGwU*|(~lrI_qUl!r;)OyE+{U73G1Xk`FKQjGNw!cW^Z7<=ofUcPh&A+2Y^A$58jU| zxM{PazSy%1<{K$59Ke*in*!bXRV^HeTiCJkFZ|SZGdKTFKR|y4GYt1OtYd%Qja%zNFuK z2@8qH7wBI`Kp~`GV?-0h^`Ejva`uwt#<|gr!PlMVqt|=)Eu=SoTfwchdU2U5o8eyHNisCL@gHQ3x(-LRyqb z>^i+-EF^Sr3-7Rne;}j}si$8NkkZId_9WtY3HodgfGt})Xk43;G4&su&8UJ_b>^U$ zS1!+yGEd;i-=3a6ptO)nfn^PS)4{L7=R4q^z2hZ6SK3Q|8vtHH}KPMs~ zV`=$8`;fdX2<{|;k*nff%S5eQx5@KH$}|t@70`#Caa!(W>PZdHXr~%_`YE2YO}OFnxNTzV%7Dg}6|fNa5bnbJCv(yQvjUxiW}X zr>bCpUJ$sR1KlWmtg(;@^QW>H@8FXci)fQk(`P?k zwH8~y0fd@mav*eY9L}4{$zYEf=t2{osY8cFOhDSxEzGuhQ1v3~4`?OZ)3X9bLK*CR z;7E)Mvonp52YY}{m-ZGZkiS1nj>NO@US)_IZJ$^j$^+2URG{pjwU}9czg_OrRdQaZthqd+yj;ixm-X>ad{nKQs6`WVu3!ZJY4y zRqAK{j&F63ZgGCh4xyt^0+E6T@}~6f5t6S~VzHx`Tkzq^!jCA2WWbJ4eEk43`yy0X z-axMuiI);~CfvXKRgyo1T4B67nQy^ur-HN*JHI$`RUrCfNwI;TO(-5pOZ=KLjcHOJ zvX-bPw%@y3H}es@d=UcFeniy8#mj=)W*cME$1}*vT{mwCBh~ryOxZ2s?(dcbF85xW zmCa9^Jb~7WqCfl!?MP{HBRl0iZ29fteUg(Z)+vg$LLEm`$hyR?-iUbr!<~fdmk39WA2cO!~2IQ|A z8Gl!;wF~WP>rIpX8~53bMG5qsMe>y}Q5 zD(TAd4-NMh8=$qG8DwkKq_5U{UdwDc^1~v16J1jcFCLde7e3Fd=kA#mt}u`};g$&1 zTN@O46D=`{O|i}3suycKE2rj_lf~RZ4{3`Y3;bRACUNk-7S%Si4N4w9;uP+)OVtv43f0ci*L4>PMtljmENl;1g~e5hO%$-*@<@_zc(ytr&a$xn%Sc(_vEAq z=j5+eA(Fx5#=NuG$3$VBW;^fyWxn!@CxvESG3g#MZiL`U6a z;|uQ@uzgHOc~;sP4y(D=_YI+bgXS-ZTf+Y~1#WsGrz7UWLRn`PP_qlylL3BtFbYRF zi2f14+segzBd*@7o7BrxwijLh&8d9!m@TGXEKW6ND3a{2h`-3nc279@IlYowy}*FD zH#3T1q{PA?HD4ify5@-H7Cl|a3zXRt`S}!8f?{#C*rGh>?>RlYRUrA28+kjowwV{a zbF;E5aE?VS8ag_?*1LG#bt6$R$JMpcJSaaUZ}XQYJk zMflkS`LvmU{WZFn{A5k9_GzjDDy`s8tqV){Z}OD>SR3lCb8#9(&@$?}EP>%XB8}bc zn9e^`6rIb4?1Jz@4xQ>DN&eCKvnbJf#K@&5#hqP9J8jHIxu_ES#I^V{SrB5j@=s10 zX~Jwp%btwP-vv>3Qm@^$FZ+pQD0$UB+-F}etBU3wFxVsBOlO^lQWM>P>kuLu5Y@%v zy4rG0tCTbt1Y_lg`z(bdqZ6tst~91|&DQvfLBRTLwzL*<&nr`w`DrW?1bcx0lOMmEEMW=N4FFyigz3{P5nRE^&-E8M}S=j zz~a>^leFzKkwAIG!PL#qaSySqL0mWE{8u`R+%CL;YO-&PO%S@5NN-Xyc5bEptJUc* zh#1Klswa$upWng@L9o`>SNdKK?14?eU7MppFeGrMnWu@_RpHxh_JaZFn*->?Ly#Zva8;qMaF zhdGBLa3>@)_2^iVVeIpLKe7#$Bo+bm=w9CB=bZ5SRsj_(yPjn+TKAm8dl1^Vg!`(| z;OafefDz*mq-@+?K&kT`@n;u4p8B4f}>mo)8J_ zp?_d_7B?6piYoYts73d1${p6ZpT5m|1yR2-Tz;LXY(2ybJjJP!AF3P$-J!wwCueu~ibv^ZV-o$pBR^XRB`jKDT(! zswQ$O`HGZ!rwgsN-0Mf8Bu7TCWiw=`j%@MQc=Q}tP=|+M$MYt^4Wdp zl8A4lM(KZA6JgINP+HTg*jIILS^WpQ7=#M|v$zI#GRE+~rfu@3ud!V%Qn?~Tm3-?) ztj#3y_!(a>bLOHl+XAIdIUC785R_m(v{iY0GETx1K~ z<5Fw9D$^;CKUmw04FT^V;;D<8|4vn29#av6-UDlyeS{eZmq<4wB`-|@QL}W=hsB)^p+5ql%z);>a6J}Ue z2iJPLU!Wo*T-r>9^2aC>O6E3f>3ECr@Uip?8#_~ef;IG zmA>WXEAVxdVf}khShFLxXnY6&eT-OgO_xtkccsxeyU@TcqU6ri`CuN0=?-TX%?LT!?6=ee(Dt`!6oh`Cc543xi6hzd$f z{yD;|LGwco&3j$B14!-#dQ`W_VV(z9A!C67s@R-RL)brb(a(67JLow(#2`mXujYD= zsOJX%5q;1;!VjipBqBJ6Azj89Ez+-tK@H*pamYN<-rGQ_X8rO2;h&S!v@+e6SKs~d zpt=?LPM>-O7b1Be4pREr8(Od6#e_AVkJ4|}+UrOvR??0U@Uzm8KzysbwZc2Fu&Hun zmWAV7^MQ9jFCB@mU$+>LL(dLUS;9OG5Uef`D4j2TQYCOYqLTp>c)(U08>qdXif~Gn z?(nEFZq339IvVgG8A=}yBKIh8%;nuh4TO~!kHJd$}A)tOsjqSmkq?e zWL1;oTD!-y&c+A`J&Cur?%vX5X%8v?tp&!Pym$JsG$Bbq%eQcKx#>*%YVEwAT@XhV ztlBnq#47&Zn|z?Ri8*>hV)wge9}N~jl_BWiGo}=$%zX6B3kM9J@UU({GY=VhuKs7; z_;eTz%Y=QL{-9v*>6e8Qo?Utqd5dpOQr$A=P9)eg)b-E@d}&z`OxLaT+;Y&z=R(mWLgA)xM~UdHZ4Mkx$meh!twd zUllh7dYhw|o!dWzvL@2)^_nO= zJw9h1g0vhuah`qo+^Jh72}9p}b&#TCBy_gN z;@yin&xG*Puq(vATzgL){@~po-pRqQ?EyCdFHGHT((wy5U@O*`#w%9Ikj{*9oU~A* zv|49PB~pk{tijy8J@XvYa;k2Rs?J%;2*Je$4H?e(OHfF9enP2!$xp1 zWOrJ}aMvoQ1T56B*$Ik7+X7hBBc7b$FuUaT6q5hh>WYodmvc$j*FWdx0%9lxxP?=E zJ18Wb78_~Ur9F?Vb*9kwmLj$+6PFVqeV+qgEV_o4ke3HV{Ic50fV?7{Rx|k?+R% zBt3fof1jC9|ITtq;T=53H)>S%vFF1bM!hhoyGEt8uL+xDL*DK@xsT1vH=t>WF0^|* z>|n!(cU~o&ah}3Xd~q{|#BxwOF}%~aBk9z_j8_+@$(n@KzgS5VvA{Ypepu@9hQ3Ml zRDJnlgnB~+*=Z_J!9>E0oSaNl$0pC5=0g`Sv-kPju=4c3Nm?J97G%FzlZ8$}6R#HO z){5{uWYl-(9nfOutPF+P$?W@D#wo|wE3(!L?^19iaf2ih;l+7;%6I>biu)S zh3{FbC%M_b*l4edYTi_`8)}Va`w@>icmxYv=6MV~*aUi|$!veC@l005(W>N}1h09aq~vLG&DbbNjT`lLb4IOH`2p zD~EB|`Yw~_`UrN8r<*~QfQnyRLrHtD69=@jv|W4}l3MvLB|12^#(c=NLMJ>4{*P}* zVXd3ujzVAqt3p+&_dWN5G3Etx%b&k9E>B$RW3r&ly%H>~|@iZ-hV-PAKE`YkKxK%>(FQgPa|*EbxKPm*w! z=sM8LBK&eyt?Cg>^pMP$(6PFH({}fYbUGQ5nJul#Eur~XpNpHe$MM%Fpoj)8D!4RAxjp!W&t0?B0T;PMUG?hciNAMJmCU=e<{#!~PEj+HX-J);n3vrOAx z_yhz#OAdX;EQ>VD+r@qQNjfsiN_)r~8`>5f_R2z43_)Yefl=EJ&p5F4xG>!_8wjJN zYl$-b(dEDm zu{n3Z)KC<=jc8+7;&q5EKyjdt0f!QvUp3x0=Y4{tV<2EKmOIhHBK8u->e9N*eZ?S* zUU`>~j$R_OWbbie;lK7r^WYw%ENyITUXy1r6*c=zWlTizC1WT>0Z6T1rM;5^mn$}_ z>+ysXiZe*DIglcdhG&8*Mbt39M};gWYmI0xT1<#k=@b`eu>@(o4gD#Jt?gPXs?DAc zAM}*26gTvgojwak{S2mIPs-sq>>CFDVS1SwWW2y?Jv(!o1>X`h?hI%|4ktYKh+qnU zyo(CM$u0y94U-;UqOz)9n%%*BiPT-*!c>#%}o|sCd{ZL%q)i>qi$2p{a?ptBkfIE znRu1%7OEXw|Lrdql&Nrrci}PR z^sGoMHBG_b?CgWMRDnlwO9M#xlrkQ7clsa39;i#0#M+g zyc;jOkk>RpfbY1k4Fq~w%=3}QC?%A#?)Wf{pHXHf#)2!_H#D|GZ13>4Q%nKK0Z8fY zkUYhOOq5$}Wfo!g5XaGl-u;36oUyE?=231*o+@v$wi#ADTrUU%XLyc;UH)aIW`=Q* zm)$G3qARvVCCSeF8LK7i;8tO6aSONJPV2He;;q}iU~<%DIK#n_<(m4i998BHM1^cO zGCGTyRg->R6zM1=689UftVS+*nTZ=OlvnO#e_JqJKh?I-!EsMFF_7_Gk>PCxNblqi z;xf-Wf-V|$a=ba&wi=riCGrXMe+k7DaFM)7thsDhI||Ep&B$uc%`RBX;ZB#_tYODER+BAAd33N zb`+rNB3#N3{hV&0e2w6`_RwnIe_j0Oc42EwV%4?UxWH++T!g*N=HAFu_n_rZ?!;Q~7h$ zPU4Re0=k13w0H(21TrI7r|Ap^vxcj@QK`v3mt2qA0yH3NXOpfk%fp8I5`U_G>m~na zaLFwQ66`yw=n8?N-3`8qd~Tpsdw}{%I{9}>zJUQMxmlN}#RhH*u%dj+y#m^@V6_QG z_=@r*4W$V3a?ti)s%=_$x$`>EBGb*>1|2o&OU$87ib*<{lgF~MbKp@;F$X^x){7O% zyG7j?9?wWlHSkmYu(%gThBepK$X(Rm1C1hhzV;mlYKl|5rIO8E(jYG0+fc5m)n3=7 zN6#OgOXp9gXM^xt%Uwik1t!Mhf0g$z=vSzrLA>(D;05zaI0SBC2UaKy-9R-oIT( z)kSUSc>#*s;6zBOxP&cAA0s9>A0(_mEaq>?Z$LfdiUVT%1N6|^>I(n@2N1*BPI^`6OMUgV3}Pi`WMLlSNE)HS#-fha%@#+kTego za(kDavTzII$WXcPT*n`;DyDZ=Fs;&)2dkCuO+pySQ{%#7LPE#pAptSnlb9q|#I8;35RJTL)sJ_rtzS%#Mt1W8JH($$(bI zwSBA^xOzlmlmX==wYdycLUj4S;so&8&=kZ#bh}d^+QxEthKw=p%2;>T3n?(Lm660X z;V{$Pi!M-X$S;0lG`4ueicYf!Jl5a{zqtz1Ij_Jc8ix)qZIuFW; z$ky9YbnE>#Eu|fG!rek51Xug;phayD7AIhrJSrA!Ep;RBsY_S&;>VA)cVg5A7S1R~ z@M+VCe|G}00=(2A3S6=Hh{IGgB8@%hrF`PN$Zpu)SLpXrs+ZOgz^>=fY0dm>Lrw#_ z&ytsg>D9p_hXn;{B(!A~-ES&sE9=EE_s-6%(WWzPauYv_BI^}Au}TX@#MEESfn(Yf z&-3hikk-Xi#0=+kO<`L@JpU%*6C*4*I6+)DL+8N4WiTX_J3y$|(&M7ABJ zB~^ShqF=y*?iLk)-q^c3H)qZeE?Mvppb)D*)ajE7%iNLI&zLj{QWL4{JEp{N|h}Fny zQ=lU@Lass$+zWwKdvct}6DW4qP_Z2kYnRkwF5{Y-8PvfcgTJyyc(oZbPx3U`I}5$n zjNS3K$E~@0JU;;b^6&E(X@}Q({!Qg5+vXtOXbbIZ&E$-h z8AtapSGY;tO*`B)YBST@2Tw%}5)*NK)E3ssnWvt$03RX{nfN0`r!i)70ky?$D?8wXPMUc`!nRatZTpn%CvfSIu+4}cex(&^QH#_og}fL*Jcl(z>vKc`EOVcd zuTl*ziv)tP=KJnKFl&ccQZ`_r-H3SN`r(=62mXh8bsNcR5b*oKe_4R0IL~UD`SXhL zim2;87%-34Ru6+8xvU;jLdnJw9%-3!UMNP{7Xy}- zTM>8z*AtE$BXn}4?;c6VZ#>e==F_j3!reC=(;cL&^bm`y417+mL68 zCHW;n!D;Ny{RWZE7}8(l6;OA|<_PH*8l~g1-@&?*e+~?jy`g>eG<9dEmT^#=Fon~I_+3iB}bnvwhM+JzA96-;P^QT`)=- z$&`_3+!W@3Jh5&{YP{p1!tAy281t~!n6uY&jBnZ!{5!=;z>wVZ8&!EkLz&HGpgFBw zi7}^Iz%g0UJRFZjj2xn5T>T4{CG*e8m{lF@c3+Dl=t{-R@dE$q-Av0AU)Ds$y#;#N)Kx=> zgCF`^ElOUGsl(?tYXvmVPAJx)Sy$;}if;>-NTsqx?XG?kkjWj=mscAEb80Op@3RcB zD51l4Yeas6H$OF~Wo(YN-l691Q)ero{0u@M+GkYx$7K^PZ4483^ay7+n)XU!o{1MT zkCeNie~jx0wMVo`&P8Ajm5$)(U*k?xnsQ!McIFjOT?azu%kSY{F=4unVu0xs9l`3` zWA*9JPN`Q8O8h6qrl;p_7dZFlW|iiwDgAMj;c9a{nsCyFW1(T?XwSAD8qy;LcC{+I zxT!V@`NnpV?fWbfg#LUUA!Xd|(k{+fn0W-0LErv9QMGVm^(zOH=JCr!$=M(!fKAH26gY_#r^u*(f=$}&m=om`2$$6mgW*Um|a;I>f;=9Rh zYctHNBfUd(!Li#6UlQwU| z5>``SiYk^j)I-Mnu@#Bi<$#u7dGEDo#=!s9g?zE*pVeU3B`f2hcR#mU*m{=nYT@3s z!h^XY@&Vmr88eRLhldF6j91MgZwOG0y_SFRfgYJ&3szn?*dRyx^6t^m_ujR)E#j>^ z;j;(pHTq@{{q^*1F+10Fzv>9Uts`=`ho{qcAP7JhjoUVEd&mWn6^eFWEb+XM^||Z# z)UQ528y|=5xgE|tPX2Wf8^*OO+Lp2YeKPVO5l~mP#jM|1cc=B_*%LuCTgjRUq#5f> zFMcGKeC0R8@m=EYebp}(%r@#;Mcd;_N%}kiJg53vEw`$%|HwQ9vxk>rSVkp1XOha< ze2DYRlsjTV{=nr9o4d?I6bTCipN5hDQ5aYBHBg1|M5FTR=f+n)w=e1W3)*WOyPx4} zhv!Xs$-(rWxS0PJ)Nz>q^QA4V$_rtd)*#tLEH%la(5E((+Np0Yz%C%rX^>6W$XsG* zWvtLkUR0i;>^QP9SQDvvXMcNO)UEm7Pz`@he+&Ypq1z6VZm&PCVn)$y#XH9=2i0|W~DX!fjlZ2d@*THuMbJ_zMe0v?}Nj0c(dP>+thL>#f#VtMU_dD ze`Ys}b}-&xeN~mO-%l_Ql5uh0$5rD{iZ6Y%9C6AOM{<32&LM2b2#zcoe)hZc%YC1$ zc>-jmZoWn~->5con86{~(Eijn^Ig;ONXoO*eAi2ta1DqNcN>vG2xdRXe0%aC23q&lI#U z@AlB_5fsIJxYnYo3S~_}TW)wPZC0S&>V6|sTMD&3BzwGGl@l1AzZwmSHI)#ySlJ=} z?S3C9&Pf5}9S>!x-^9Ca(;Z&Z=yFmBd=@i3XP5@zO_${{+o3^r4=R`F7XRVi4AafY zOW699XLJ{r$s3{)k7DB)z&(S&#q)y57oaEJe0V`p!;s|usjYD?ns&Ci29Yypi*nUA z6Ar3*mW32H!ctQIwn)CxR)Q`8GDaC>Qy?RQzrLYz4ih2RihLcT zW-G0FW5*(oxN~Eu{cb|K_D#gsG~WIAr-JFQHxwQBO|{GaADm+AQG>eB;VkW`jCqH=syXA(tvu4vh}7(Y%#qJs)L-KR4JY=Q7++ z(W+Ksm`fEoQ+?Q~I9&RA4T;Pab84C_&>6&(O8{{N)uQUz!f7G}sd0cf`2sW}fMVmQ z-6M(srqZRljC&GlGNp>yjk)f1HR;D@(`uyYD_r41Y2+_( z!+OL^>HQ1KN%-Dz^VJX4)ZYb2>u}t@GO%&@Y`^3-KbrA+riNK(4aQ(%>Al0h+l4?S z?Za@W|5ElNQ*nFse*Jt?dHGNDQUw?CJw$#+@45b7^f8aT+d?5{gP}I|tAyUOj^0A>}jJ|Ie#VU47oen-*=t_cG(zE#-{}vMaq?y=IiE7u&-;{nVMh zHQ!b~ZazHs?Zt|XpmJ|-ox!Av;ljgJt48N^q6Itt0DE)2JBQ0;SCHSsHe$|4o8ogc z>7FNJcZv;U%Cfzt7iW6+1SVNC$2F1sTw1h19QE6+hT=}|Z9i8p{fgA@%?Ex&FvRo) zL``hxUjUzHSIsODN@KWK0-n(Qp>|J4YwRWqHU1RIxkU@koQNM;IKp;5>)3n^TciIg z|C;71b6vNv(SKTCPXnEhZPGCxMjS#rb)2C*YY7V?N4+SCFl&k_9~Ke{{4XZk6bsfL zDEohetUGqn;vJ}|>E2RX({U($EP@{6NPfI&vsgku<}xFQcW~K7;SeC(jjgXBv!brO zb21@)e*X~hS`r|SY_aR>I=-RAJMQTPZlm5{Q$fg1;~WS&X6+&*uixQh0eWJ9)?d66FuKX?Fg*syY zjqn-4CjhuZw7Em%I;A>-m%DRiSNeEp23NVgLMEho4J~hoJFOO)b17u0gCW$24$z<6 zJ`kwc$Go?JEBR@l93ng@?qGA^PbJrsrs)_|&Yp+1dWKd7nP1P}t#0pIz1zE1`{!$(C1&^rD?uYAc+RiCM^(RshGWI^h zFc^oB?5={;&>Ph2#!=O`9qp1mAHxGCDfp8tF2y659FOLsETRXsK$7At+%D+ez9~Q7 zM-D5l0;kHjz%d;4dift|%;wab48MKp-E6Ad(m7ou5vn7EiU6l=~6CG%LuSjTc>U@@&~G)$Ep z^=8ORwNzg7>TGk>1vh}lT(>0`2ISOq2lqO{W(RAD|CGBNi$ddVU^yblozW6u#eX!L ze!Va6^VQ<+e#%6179+;I~QMLlU4 z6U!1)T~FligV+cM|73&vuyL`GM`ktrZgcT@^{QXrS?Z?exk%img{j;1dBOa-+2d<< z`XKW3sr)qT87cgZ_YNf1`~dte`oo24FZ#v^Ei*rQwO*`M0km+Vi%#5iU`&swILj#C z`up@<^~16@KJjQpKvPpjvwfTqx|^?PjHJd*lbB~$TUw=0+p&4D1k9P;JFx%6kkjS> zb|gr7O+k{D={&JBxG$^jK-Y;OnNydqWd*;6UpiOe=mqR(w1^SwB+BenZfy*3jndtR zZfn1dhZuEBp-uyxKli{ZkS}Ub=(p!63&Lhk z!5Hzw(I$fwQ{yYQZCzbT-8RhWl4umn`%LTXSI5Lv zmhp(DG`BLVq195k2NS)z*VNbp=^PCl7{$BtdFWEvWOx+Gzv*VW+)`M8bG9589r8In z9yg5!YBgL$LzkIIJ_&W4kl}o{q(`-sLMl6mFyf?BM=U}<|7?Ek@uBnnuXeBkte3X} z2ph7yO!n6aGvmdn)p1E{taMx z2Vl@SmRFv!Uk^N2ZzYEVa|lw!ys8VsHNE??x+IE7&%)LyzZ*y~XwcDgGm_dpU`J%u z?&6APaPi+VN8+_3cV+`;F9knduF}H=j-`EGk55b_n23q5>6PvY)ye@W1WON9xSKT!>6 z6sapxJZ8^C?~8{XWXl=~ap4a#R5kcf`l!p7rm+V-Vj3A)$ZJq1Yl)W0w>*8kIZH!) z&Rb@=V@)Xq9J{eoo1aZoI3CP|NkzY*C5 zHY0nl9?FtAY&^Z<&VeJ^3ie7u$U$9dM(~Q(?$U@3#ZwR}a7X$|DNNDdb32yc8hHK|{Z1KF#(W+Ynq)lD{7PXIx?$u86ps4>_i@W|LkKRk!DJiHf@fTf}|* zFP97btCB_pPKVUrQ4xiv3T(%%Eh)SH->=#&BD>z3cDz-*31P^2$a=d~8AkA1X18Tb zuS@jjFPA{iW=+#YJz~GD;4M^nSIjtA>S?HJe9fwv!@DGdyWH-qNuEfx=OOZSln>`# zcq$IAMjdavd|jvvD26T9j8kkVP-;_j`f#(J;zcGC_aBQjTY^G7h{Bi9t-*&xRhMan`N7{{Qht{EJET4fhVW%p4FN2i2$(yuka z?FNoM@!xiEh2HdE2l5QHg^=iYYa%xE6?#m9ff0%uMr=~{Px=_8>(#VL90~DvZQhR1 zp<><|*7=e1P~PTOp89y~mrdx$YHZmEJ5SsEk=Pg}aHgM|7kNR|UrLu7v?@oxUTWgj zl*4MBTiT2)dLpV<$|__|$RbZF1)!S&_jbZrScK7u0b zcPExp*x^zRSU2Gg-911C)j6(JXdV({aJZX^Gg*+~p`MZP#f4(^uHnRYrQMBD?8DuL zu6(h+g8qgxLZl&?jXrTdUfwE5iTht5jDPrwMP;5r*KM(XE$oN+?_E$GcksKzJS{>! z-{9m;Q3m4{WN-<#;5uCD2gQkQhR=(my=<>;;B(LyvNKk9ttAw%F@Ceoll?nlh#2h4 zz+SY$Zo8WgDxJqW&e+V2*vwcLaY3EM;FthoW-d$E0ZacxD-IqNKxZl`b4u1@!cvV> zji_WWEjOiV95BX3ebHi=GOU(?1b~(n(;2N7qOcmu3({m4a%gb9?6Y;Hg$uOEnT|

l7jKjWrY`7dVT|VDIal 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

Rtzzx=&h+R?;fP-hBF5I1eSy}w0 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 lwjI%m94ISdd7x>2g8n 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 z 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

fuDs8NIUcL4`YT*9j{7oT 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%0DS0eL{h=tN$R?^n?#7K<(P3*%fpMivXxtV4Y!l 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

NhF+nC+SJ7bQ-7rwJ|2s%F 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�)`#G0oi4S)T?_le|45ZDT$d z+S1DgR+Frx;+$HkyKu?nF|$%$pr}W(pE8jt7n+JGS&wp@1Q-y181$!Pc%#X?4v@*S zOU+QbOG|c|3h%7QNQg!9Mu@+p`&Xm|w;n1!SPE}Yxipf}I&YiRdb2TVC0h_r)wVT3 z60WLz#n#*9_Cd3`Z)GztQ7x!jMA=pIfzyYGz~fKQR~i7qVaFM)GFfjOS-5@TP=N!{ zC{Mtn{n#oy3kdFI(HyOl+kr&xkchg78l{3wf7V+STZ5|46yj=*bvIL|EjjR4 zM1hcoM8R{htpwg7Px6GSZ9_k_h#scTYPV#MUX1vQdsnlJC82?P9Fr4JOwG-!MRqjk z@!H#WXhUYS#~~VZ3Muk5ZnUe$c&yK414P`XJ(c28GmFDg-gTFGaI)GO%{3dK zws^=ekzt%gcB<8SV6GPDu`ND^Nb<5{Xm)N}YOzizBEGLz#9Jg;tnCpu#^W>O4QrQ! z1Z=%US5!PYmuxNY*}CVC=JFUb%g%$W+gtCED^9f@>SN`mNhc$?tYaPs-DW7x;d0Et z^wH1dV6d!XC4DwO!8-F^i--fRhEvLPcM6qzv5u^ec?g{k!#eFoAx$pH4jtI#U}#sl z%rPg9MD=ug?7X3PctEFn@0-qbC*0~@7TG7dw={h>z`z5&f1i1ae&9i=3iS|h31&3_ zYa?Gtq;y9;7!$1lt;c|BEo3d(Qbx5dlW57sc#&2^7>3Fqx>GNfTuq+_yoD#i^ZlTJ zcc{*QVt4Kf8f7fnDSS(P?%7|c?EQm_VQYoer76e>g$yu|2tmT;dL=0K&3KIZ*?@2RyzCspCk}e!{-gyz-#l1kI?UffIfr& z9{6tTf+w|{1D}B#^cnaG@HOxZT)`g$KZ5SSFM)ea!7cS$Y5~|734|^3)(AQ*4+Mlk zkTrq8JY!1sBYkH>c%CD;@=!wgr_^}*7eQ#V4`LT_&IP&vKL(dPzkY*Wfd2q~1|EGc zJQYD2_!0Uq!7nG((a!0ijsj%mHSi2PgTDj>KF_mbGX8hAPN`htpCVF{UAR>Z=h$^6ANI}4R|69 zdLr)djd&zjykK!TN;zLgFW{Am!+lpsLp)B)NA?d@E}PAK0i2tQ3-N$fPFF}jQ&==sro4s7R}XjmC5$rD zj7-VJwG6m3j{Ul{OUQ)E$i0BT8{Xv0pflCVrT%K<2iqpi)8# zWDfT#O9AgW1%bg0u=up128frCZD+T`5!r&N)D6aDHBVCAhO0a;AXUOtc^hhtg*z#m zGMkbBkV!e+H;E$x(SW$?q51$jTwdNi9ZygXH+nN(xIMS8Jo!7#YmhxIm|8ES!K@jHwwyb1fd0h*p2hG z5VP11Pi&nsw@U_|SxKJfL$(MD{Sf-cOyu&Wl%A(J%c$nwpE>H}5G^Ff1J;TsQfEy( zG!DHxwe!+xEr9qg)OCD8zM)RVG2nah;(DtI*@K~F|6pH8mQmk{cHMhtH8z3XOZ5!Z zCGS{;ONe2#)L+ zn)G|tgmK}%%c+Dhc3%8Ecun;bxMsR|wq0)1qIGm;L!}I9F70hj2co=|C!3EBoM0RK zv!y*5xEld%s{3loyF1}3e6RjO?w7q?4V=uHXtFFgz7XcN3RvR18B__&*CZFX40Y|403!-neB;j*TA(~ zbbH{5fS&y7y$f2ypK`@ZUG0fJF-o|T0M{hRqR35nfo|g6@Q5!Cn!^@83Cx~94lSe; z(RFVONk=#c$PHj#Nx+B|ScnS+XaUURrWZ_f%rk`lmhSogKm7B(h9K*MAHcN>Wj!gRCtZwZw~doG+JFc2l*{S9+Qgc(;;z62 z_;=79xF_N8S%g-3 zLk1YQ^uzbV-TXkhk#=g&Q2v%>{$7J?siqolS#~B8wMEpQZup;G z`zQfF=A!z(xh+)Cc)NCmO8piOjY^pbK%w%|jsIaTSCXfDc-W}r8$h_J+iew~IYGgx zi%7_r>bGkRE=UId8${v3ly9--r~-jjio}3UiO7>}8`5n1SF%qdpcD|cqzS;50QxYj z;nvCG#4z*`*ShQH9y70mg$H>cmPvD6`Vx2M#L{y2rl%TF@D3(u%*+U`)n75i%I~vr75BV0qy3z_!8j#chIZ zxNNxIak*i=VZGsc&l3O-ES~6rhzeM;x+0u^;JLW!?T7}8IilFF}?$k3Z3RgpYDHSJY#vBJ}Vh-?LGLj#7&jP$=?ak8lq`I)| z556UPn?wLGQDv5$g^+jJ7@KHxgkpq-Sl0ft3jt%;>Uie8(!^&%kz%63v)4!6qr6I{ z<3eGMixw^QR$Ce)NPR`j1Q1I3YG9o*iC!#!+{V(UFrlr8ugUj~7`D!zUO6?mqR#h_ z9~m3>-!=xIMHCA1T}(6tCIUdG9wtXF5W}S25pXGFR~w~SASwq; zB+P&M;l#62Y=DqBDqHv2ut$7Tln@ep9$!CvT1 zs|S!;N4jIZVb)KZBqeCZtmrtjgX2-1q2ho>eGdVK zW1clM5_-p6$U9N~>3MR(#!W=}Ee_kL-B04>)ek4NUC4f(Z4AU@kLPNZ;*0srjY>s{ z(PL#k0^O1s&17|VpDG`XhpXMu0Q(3N+XZj*fc{=pC)RC8*qg)7T>I2ozE=vZyOZu$ zKs~jr`Mx|P7LbSHzU~2bpuOC?Y|SXiQFY%tywsuTcDZ~PKllz-b+2+bVw;xcn%Ft& zjb|C_K8k)2qTS5IIx#N5d0VhbYr(I9yY!9VjA>w+@C9hnGZSrTiYByHD-Md)H+iGN za(W}uaCP9Eqi7T)stsn2g9r#8H8IeIIejyn6EXCxzr5L@sm@Wv31_-t6gGzeU zNd8OL4W@%8kHS2E!pVUbul1i^H{G=@N%p?j8cm}=z)+{`_12^cez~Du6$mrKL z;cM^{@Bw^G4$Z#RDj9y=Dfg6r5~svZfS>1B;4Lc`r)L-I2sP`={;UNLnx=!hQ2;hw zZ=IqmOIXZf^3mRv(rYqXNl0I=Q}+T;WC^d6HC}T#-AgnE&1Zt&!{|v9=_vo<9T>uD;5uwb}PwzUQq^@ zQ`F`K-3U4+9m+?l7vdX+r%X^C9zo3pJyrYZqQym4G@C)IlrvfBkejT0bx#4+przRa zVg)y1Esrq*gq1jn0`~{v@5wwE8Tzs~IW{Z{EZl({o>es@7QjT#t zu6I1$alPSs!{v_kfy)Ey118ub2LLFs5n&v(c)bLJ5=f#%2Vka^_ym8XIB__U^9r;u z71fNQGU51Ipe=#e1k#xe!{YV*rbHQ6UUIA)J)z4Lt=3#;P8|vghiABkmdFv;Ey3xhOWbJm! zQOTb!qg%bAEMF0t3Gq?FcU(L}P2C(G#HB zd=Inn?M>PmcEKB*x7fGs0aWshyeV ztuf0yM1iHGo#motsMa2o+yOco#G%6te>;Ot-UL05ViL5+*3WBhO_caL$hIwJO5|BT z`W|oS_h7HxiPXCT&7HM-x%$aO#rb7>0{#+bCZsr;MQHK01`uSUNl5`RsD67~)BQ;= znao=%NY;JRxbCcBK1y&m6QMu2dD7~2SGox8nHi0g6%SU26MU#6!*m5KnS_pV;1}RS zHw1vwl-CoSQEwvkI(shO3ho)&k%!?DD{rTNwVgS$XYHHW_ zNZ;Lh>!bg8Z(AKTr{X?30=+5!*}y~(;&+fRQ>;t1f9fS_Oa5?Z1CcJne*R^X}hL_ z>G6rI8GZN3JuwXmc#Y6A&9%=Uq*romb|jfO}N1-gZ+0#AyCAMgQw)o@OBgKPdWt?pHHt=cn@aJw86@<&W_FsYw6Gl)wEX z@BG+D-&CiTX8Taz{ntMV%RM4F_VmEt4*|qdeEa3}Znf7=4Uc)rX|A(MOvmNJo8{bC z1H3@bxyD#`-J;jpGToOifCK*sSb_f&xMipQgK999JuxwG0~au|0WSH!6?_6V;1|Ga z?x2emH?w8iL81|x$-J&4+wtXth^^Cts4LH;z6nxC3A7DhXB!t22`lg=^pwAXsYd>I|%b{qXukOr#~1gtYK@?7S18kLDFH!yH#96x=>$qa9E#Wogwgso$%tXEs$80 z18@tJq$YAGdv~;=kT|STLCM>e$qiVs~VQ>Q%_@YpQt3aShvzs3t zRAMdDvlCHjPQ_Gs#T#blAHm(pKu!UJnF9Q-6R!CK8h{75C=ETJ#2!N-jaKr=mk`Ol zT0|NItr>k-0k{j;EP*_(a3<6}W$p6n63oqAmI9(3M!N&6BRlVwiq<`dF{Ug82ed_v zna<2D5l;$td1V_*W5z4C4DuPI%vgMcT+wpnvtToz++1vcyV0sxMt}8sSp4g)(4gc=rsX2W=og{Qj-EBidC=GY4Xd_g(UQVUw|w5 z>wE>RkTEkxptzN5)~aO|$mG8SlL<@EPNqdPbAcAD7Kv;U<@wBhq^8jq2(X$DVUZLa zSA<7}O-rJ81QS6l#O8F$0n(EzPTs2wFqo(KS!bq~EMGECt#SfJyhMUUw*5(U331JV z!}&T*NO@w^Qlvq+m2?XBW=qd*5QM`$vcXeZVHsqO@rXoY^+BhRrJT_7jFeiKETv{6 z%Q!rp*et_MRQXa}3z_ed6${Nt>()D{yCsXclv2>b&Tj=AuBf?2dW+?nZ37wX&SvRl!pdi5oH)9pP5ChKk<+=-@()p&L1 z?-3CCD9YZKb*(8c4-oDSNaZ1tJBO9j7&Um^=g?z|EmU2j2-sWavbVF~G2X}QjC9QH zXdfrhFV|?~&F>+H!7+w7H6!8ykT+4n@3M0{wJtD@Eiw)o@P3k&C^!#rlgK&>dXEKcNzPRa?X^ z2&;4;b*f++lTEtOncYdIA@p^Y_B?@WJ55G@v2D^>aRdG%@Dcd%#`(|FUh(|GA-bWj zqDFaV9Q4$BRR?Dgj-v$*O^ODFa{8sT8)#?-t)D09!ZH!5tjhjSdU};Oqp( zXO~QKW25z57vFe#Woj`d6R-@fSvS`*Yz{SiqHrzjEOa{hgvZFc#v9@g*;l?MIa@}I zp&El1?4B0dM+kHlvl$>KPyG{S8>M>4hI_hfmc>$uZN1^%a75$HxuyDnfA7EU6MNNX zmvmWBV+2pv#x`e7w2AT!c1^vqJ`3LgFA{_W{6hNZxGZKlc@5GQzCgk&$_#W8elBh7 zUdgkHj)eepfj;KqE#iOg&_>DdO5KT-dV*HKsD;i28}u!)LSJGR$2i#9w4w{5(|``~ zp)3YI+RfliCw4sJ46Ia2ngdY5UpDzQBs;)o={w;CfV2o-fFGrc!N+5^%uKrvUxbc7Lk4KXUDFk^McmKh@5ki0Jq3 zKu5m+(-eer!T$8)P3euJ$DB_X{2l!BH@~^NF{kEyIc|v}BXl{C6U|x}4T^q(>s$V= z05<4S)#dwcy3u_%&yCvn1^8oN13p842|l2Ema6X5LTMui7xf$XYv2j`9q<`i(m;TI z3v}Q+=u;X9=&ZqL6iJ0@S%CrPlp=8lTmC8#y+Jw`Ut!Lzk)s_QfD~UgMcid1UKmN z7h>1as;j)n-pNh1a%|nw)%Yw-2$!N_O}Leiov3?@T#go)wR9=j07zE#MWmvf_Z#*m zjbRW%p)U#>@kn_`3FvnfPo2slSc>kAIY(BtU!$!zB_*gNrOPK7e=ysg2gC2p9vu?k zj9GV^yH&^XWaxbpKC){zs$;h*n9u75JidaAMX?v|D0ODRQmSgse+2+7p5u-^BsN|xUji=9XWS#P53$}`oG@$9 z0ST#$nFcqc!GKG+$`}iSLUWX%f>izm%&?`d-L`bl;#cONVcTE^GprA67r4VWcsyXm z<$}jE+_4zeJDzTMe#M8+czQ`3!1}-?Y=0gp?>GE^LY{&xMn3D+VFh^eR*`GuBHW-4 z+4}N9UL~1U*h9V%OKt|N7|lq?#!6cvdOiCd3BqC`^a^-pJroBDxB#zN(w%7-0&Ywg z{Q|uZhH%Y+!$mHU(i?cbF%*rPX-Uo9#vCJ2*vG9n_-B5NO>l$93`yESV2rq;}-|yOcms zxn>qLy9Obse&=GN)wrzJaPz|Aq%^e}rJ3OUtbQsXCwY5dzDrUyBDm8WN|PJS9#oiu zgl(ggH_Y`AT{>4oPP+X*N2WzvxKG5*>&xcORz~s%OozS5ISn0^PiZx+x9Z>bVD9vL zX50NXFSH07r{4W1824VyeIg0ziU!M5+|~>P^sC1lRX_S^sJbo=2fW6hG|>xPE^aFZ z(8P;r|B3gHsR!C85cWw?HC9XP%NET?0ghHxZ_YXQCJ!A{H#J8e#0xyk!Sb4pJHsJ274P&;n%)LGu0nXORc*Ay6TgL0HL?dOo%W`&M zBb-Uez}A1z@CdquyFwmG+bgzOrm(Go*`LYH#7t`iHucl$WH!-YyzW+Sfqo2L-q3hC1t;9njLE|EXrB{%lUeCjjL+`;mnI~iGzzz+33b8tSFQCK8~SJ8 zm2p(Q&ruxCsLf&Cyxec29vqZVz(w;Ue10i=H&DmhYwVTb?Es*-of!>>^vtbgrni7$!Rm4IGNqGPbeZZ^@Rnpb;gYwT#0wIbFeQ)+k3?E~67yZ`j(GxQ{`fS^zA zzh3MnKwP1Zz(?ugq7jr!5AY_uX5Pzy3%P)B*Wg`kd=p?+ZZm=o9??=}e9 zlLS){{W-O;f9t)^{{D$4y8DBW;qjG^rWuaxdXC5s;B4uJwfcMcfBWbE{)hXb;y}HW z7C#{4=LzC}mb+X2>0@BP;p6YAzQt(@6frkcj8Nh*^ye4A3-}+PZ_Wfp>D9IbCF2!X zz^|a6fLHJWtiTF>1w5c{a{4QC25*M@)iM*kE=e5a2t4hMIh^aQ9KA>kRXN_efF&2< z%WSn|X&ew6bO#>5FM#h-gnRi4N2EU5SN?AR%bp(bt1I*Y{A=*H&eDvLi^E|iIDPDp zV7`DCU;%ytynvse4g5(#b!P=n?01m{y#48BMNc}eS;Gft*EMr5?eNh&6|Eu*26xV+ zHBzIdQjOK^>oIG@C%Ldpr;xLVHPv)yBoqY=i-0#ZoBLSH?B}Cor4pP%!5QmKn7Q4{ z0lCqpxYE}E+*HhsWZCM61XVS^G20izfBCCL7AY>(h#@DFB3b>EEK;gg{t~z3#Mn?K zIiVEU_lJGn@&j0_S`Ho`o1R7tn$*x%hP*+mB8paxp?c~Xf(Tg%!jp!Ci1>lPC>Nz! z1##xzJxfD|ZmQ_qa z0EDy9vcL_G2evyNS8NV&DnXk^B??Jit_)sXXRc`>~@HnukHGH3y4%5ybwPR75r&?=-JXRPH-C9L#A z0m94(G;N(_jGn-fCgtO^Dcj)G*$idyb;}s>lE{JdK!MB-SR4(Nla#(R*q)qyvil6% zz>->G@PY`%2^z5qW#hH{m;7qcJ~&4;9&-Rh(eu^fGVkWqJA{yRVm6_k69|98Mye6QbaxP3&EL-Rw`&l}$TVrUGXtaByRw zOYT-FesVcfQlA7MkAM;Tv}>Hz!2={+U@06yJUGw_qO*%>KL8H0s*YllH7n63>(5=w zp)LyhXsynP0Ug`T^FW+(V&|gMCw6OJ)_(Wr83fomCNIg>p(dWq7R&PN_-I(%7g{u4PRS@}Be#r>Mf-6NpIgZc7b&eI!KS)g zsD*ekyc%Aq8x+|9uf(0YLQe~>6e*ZC^KXGy;3IV@UP(pi5A?=9nz{Y-ISQOTo=u46 z4;TP&g=~~g6UHU{1oUv;uxm7{ynmP6f*oC{C)b_hDE?z$p=Tl#rtsM zzsr9p{Hs5~pZu%YE;|+7YXhI(?gVi#DJwe!m)rl<3%EjoGcH|c-MYyiF%YBt<&x3i z2lVY+L^ZyM5CkV~;5WcC@H@a$8VJw={$>Nae+Rxa^#2y_6HOJ@jIE1@G84`u0&OqZ z?qX$+tG`=vwe}2ror7ER4|NA4kn9)WuM+65?Qqa@AC)A5{|s7Y8lxq5J%0`U*7s8h zj7ROcIWewX!yzar>eA*c-` zd_%yd*#{rxQ1;F1isAYy;r zl37sU10>3n;Lh*}B4BbAC^LCGhT~9jOtQWqi>q-{#IY*eT;f|>L;*ls0&?ZT0)>@- zFaRq(Uy5M~l#ciobNo4j7yzB&2?-e+Ii3`GQpvn`+pxg5a8GmxHdP&$l6X3yeOrTj zv62DIJB<-EJczqtG2Aa$?zr7>yW{=-Jb{GdA6~YY_XScs+;JmJCIL2sjC%+ zA?D`DIS8&{GN36h*p3bqij%Wwf%~C|=0q~Q*Wgnixdcx5A3$83Hm zoI~U3msE^&9h#tT!QaaPZl^uQ`Fy~+4;zMSXOP~Uk0>3y;Qr}6efrU$KwU}po3IY0 zUgJ+}e0%LJlTm5N>Q1{`W$l>G`H^jOM3XC@oesUzvi1A{d!G?HngV&eUDkltJ!7HS z5!6srN3GpfGfC_1eOOv*VSdW7(g5SR(Vx@8!M3)GmeaA)n7cIUePm04`!x)Z z`9V%ko4?cs37()c$6M&JTV0a*b5tgvnWN}Tm^}MxW|$>L2S^xSX{!rnufiwj6X4QC ze1@K-XE7xI-vOVbRk{dYiC1D_z4<5i&0Jv^w2&9pwfaDadI3ayl7bQl@cK$zsRdec zxBLt}8SbXnK>tl5UZ6X4VZy0tB6Oo3#7E#mNT{qxtBP~IH%kB9YgyLcSbLp$-C*LL zW0r?`Gvgz#LLsuM$Q+=(N-GVnSF=yTC&+<|^qdzHqD$X_pMX`mNM8w8abZ3jaUW!L zcrsyuE+ojf$9(`ryifu@5tQz5Ls>~I)DmC;@C-dccf+eC^k1eI;vW7>#3d#$OgHFZ z`UreTFukWiiV(pm&rDc4zzx3dT@G*^1?VRLRDQnSb^dm!>yf?BUcx`M^w~f1#GoI$ zJb-6lC;$7glUuEV zUVsbubf|UEaY}}E;Us5)Ob_rGdVrS$ZyfJDZ>OfIlkVV4;P-%k2Ry)+_o+9EPtFba z46NXffvRGrj{}p<;=>jT7hPZZ{T+$4PrqKXKcX>#0-t0DNdf7)$Di z8OBGi;9o;8FA8D;9tB7GERLyeOK+~nBQ{hRt1qwob+h@J9;#_?JoCP-wO}=(iOmxKIXOdzt%DhGX3<+XQAB6r$*ppBKXLFTh>e{6^ zhRmSq7TWb(+HWyQfNWU9lu{nO{EecRenMxmdupwh^9)bz{Fv-T#Bq8dSb1?9aq_Z>UP>Skfhwe7PqU;t$N;8$oZfX=a@GxUd(JNg7_>HFUn z{XZFXL_@9(H^6eJhNfZE527g@*y}@C!+*%b!sr|u-Kz$sLjY%H0tPMMlDWI~rL7;W zP!|P5&QR~Re%dh~qv%+jLDNJ7u2E>;DWeNeb&>}8PATzVP?!xt_|Ide3(Bgsq!5GtON39DjdaVP(zF~($Tg!0&K0b zzxv6ECfRQ5<`*^OVj$8^~qR#$rnK0$Mg)N{;3V2oPpahntT!%)J6 z)>StFz=7~XSFlfYe`FI;HQN~9b5p~N7-lyCP*+HEBEI80*c6`ta2M!$HNHrneS4T0 z`9b<1J%OvVN#BVt)GB^SJxfdSpUeU~5lt3vQ%tmihxGR+rhY91=^|gC8}ylgaiu;| zpa+C8CkK*V^0tC zs{iKtyvr%Rx?YT*rH5~3_JRB$JxMFLN#98?;!1rfK2wV_G|?<(@!i4cVm_sADpnGr zUdS8t83M5y^Gb@u6}k`~sL#|V$xTkZnr@~K)Du0eB=sHefWG34CG1i#(WS9;XRjZG z-}dQLQC0o-|11Bu|KV@N1Dx37OdnHzH8}Ge3E|&V_v6%YX#aqdzhgEK(8BRY?*Ds| z>SbjU~Wp|OW#l0oN=K8ICyVw4n(o7i-f=hm4}28+GrUd{5?@Ycy7V{W-R zXJwn3AcUrNSA+Z{jK#`%nGrT?V3I@vuwgbBvi1V?r&``EGZkq4o9Rfrz!I+IDMqz? zxZKTUS9fF@V9Uov3A#l= zAOJ~3K~x%a1J~q8?wMln;-RhvTl5moAkX(9PZ<$~V#v#u+b++V_8Nhj#s^CAma>-n z!Dh5>R~!Qt+pENqfCk_F3g2At>u+#se)z>eMY8@y9wpinS(^#lJ&hm~aZ+lm-c3k|S0&RZ9n^imo!pkd6x(jz}o85~|t4 zwJyn|OO+ZoYv$Go+LC;}*gLaa~$KP42WbY=8+JP$Ng_PXi=zWQEToXf5B; z%0&y*4_PP5tXXrfR7!#-In%dVoy0@-qiv@0@~c^YTJBm#?YhGb__M>}RmT9dPKE7n z<_UMe6Gt$y27zXrRK2tIzN%AiOtIswnq5za==qSx(JuAGbMgH2;9={+Q*R2K>cNi= z!Pz4Zq`_64(W2f<{(_HG=xYOFC=40gza$e(u;GwunVGTslF1RJ%$jdYc_(gVzshib zJNw!q8{AJ6HIpvFB)_5Mb*kt775WcLpTs6CfZ2oC#0T}+aa$NJK+mpc!$orP8{xCGNFRkSB$HJHyxQi( z(kFR)SkZev7%muOqynY}R)W-;j;dcF5I5ik+=*XPPF$%c!!to*g}yL7Q{Pe>b*E(b zOx%fQYBhoG#Ao0^|JuUczR#*nwTX{@HLdBYH`h};1dzm3`JcYq3AYW4Jq(-iA%3QA z4qx~rJWJ26i@~LD$j`zeeU!dXWZBIZGkR1PW9HuTXoZLV9?|7H;|52pSqpiE1G*76 z;12wnaOz4tQO_2S#23)BH7iMdwpdB56iiP4Y)koW( zF8;UKQS3jDZ_FTUKeD^o>;3m)e9Wc+PO$Pfxq%7Edz?V94-c4z5AT0F1?BgwM*FRg z_=71+@x8v|-?cyg`k&yR{Ogl4>;+g7CW~YL+oNhd30zJqcEr1^xpFu`|Gld^aGF$) z{Wxa0`Tw(|>*vpa&(L<*YIXNnK@ac&{eSGe+m38Yb{#gxjFp*n+xwhuHYr0A)TVg> zDA5f+*gs%@hMx@k8~h7~^%H*bXV?J!1r{Yr08J8ZLN>umcb~H_Rh5}5=I}#AtcX~* z%x*RPB32)uYgc9EWnCiX9AnHeF5qi3Qhx%Tp>J~XIa$b(^jrh@vZl9aikPrz5;75Em2H8gn91SlJUbeiQha&A88I15*5hT*$zl{H8puOjsH ze+d^>1I0G}i^)2EDmjw|AIfQ`39S)k@esuVoylg~8eGH%@I~yI#Dj)MXa5RRl?F-@W;eV!x-oz;d&RN@c@;wlX^hcmkZV1Om(qE6*JzpJ*q z#MlT*$|!A$ytRnn7)A`AG5jTL0Dla;fN9YRorX|7BG|QMjjaYea+MCqt%iCQoKVcTd&{*=F3wXL)$(JztA* zKYhTV*VZ&DYDej32v7G-5u9Z|sM5oF->9lsAj!H%(CD6b5U$nD%+txb}8+A zzTin`@O;TVo~OK`$4S?I4&9-W*h*q-dB3|o$Jbc_tzWA<0_QpovdE_r8}In#b83AM zVMY(Mt{3wR%(dWOZd(=I)STV}(XK`@-!v=ls1M9P*A!9Gjj4_mbjw-3Q)ue63deE* zhZ281;k@1ekyg4X%YIfU^fCf)?X*3adx*`J=H14L)u4q%vM6T8DO1fCs&0$lmwF40 z6yZl%3bez-@D59TY=tl{=tfNC;C)ms?sF>Jp@Mc%orYuUE%G(nVzEMr)nN8^GQ(Fm zIW&&*`2xct;J4|4*aG*QuUhPPna+1!^>PxLE4Cc=>IvA4NP=}HT}?{VazoaV*qG&? ztLCRIGXta=m4@aBv~EB1p(QN5TKhGT>aDkC*Rd8vOKa%IX1s4#a5pFWx3<`&FM}5L zXcKWhok8`KOtF%gZHwqBiX9Uz?h8RF;%8Oa899Ko{W(e|JVR zlb(U2I8X=StMo-8@Iic#hNQug!wq3dqLRd`bOz5EWMPzCGT1b#V^hK&a~kjf9-sjV z<%}Mw19b&1z(|eMl{!<8)X`*=5#LfH^_e=uL5=h;rjsR+yBm3tK2zVa53_AC=vMFF z4lML!#$t0*ZGT#YQ2M#?0$rf1@D7hoGkcbfz#tx|ufi9J(g)x{98}zD`-3UzDxRft zDZL`-l1YT6qSjcwJ`*%BK!@z3t#TxBpsrMkqwJ0(WhSG(CGwG^03WF@^ph!=NE!WN z{0{h*y=eUQ=>oLMM(jNK zDiN~!iEwM^;pUs4(GT{8L~A zo^F@Eofy%fzXgxLH=DW{_8Ekm;+_GxmgHdqAAv6`nu+r2Kh>H`$x`yUI3}Fse)SU? zZ0a(0B{MnAypl~K1KX-_3es$0Sx%+0rsPsJdO5ZMqDU{J{7nY;#3q#&#JLF_SmV$?v?<0Xt}{1^Dk0S{;V=pW(f z2@ek#0xZCiagc!qOYy=jKG(D?Ua)I=4J$4Pgf)Dvvgm%&|05(P$;|N>Ai+KRGI_H9 z$(LA!Y9~9+uH|eJ9%_lhTEQn4ge+Z}HM2{qLTwm4jTDTPKggdntn9fp&9ng` zrpLJFC3oTjrr|0Zp^27jAsPe5#&D^XnxQ7r$yahv)%a?(IHY>BjK+Jd)9hBRvHy&! zyj1(XJjB8}P>pvUV*hS9=gli4)xjBfi1%~bky?bNsEwZGk zL24VI-FGsJtl%!Bgh<4MSG&Hbp z1Os%+On}DD^uKn)-Wz~evvl;=`7|!Dk^{UZQO{#TEcfhr4bA*(;2C(?ocrD%+R%NM zR;#(zjt%X`b#hNc$Ng_is{t6^toc0}s|H(|6C^W-{aGNh%|-O=H;7HO-mGl&rnqcP zc)T<3QlTOyZ`5iMIuY{C4x+}Bvi3-8sqYhP&18A01@o$TY69C1xn*!|o&tR{FTIWY zl z=>st2R?eZ2n@yJ!qx1$|T-W4c3z{?tCon*i4v8C+oM|#3_oxO6elA&CsUb?CWG5<6 zSLjNP@JM~8NIeq|bQ%uSxAZsD7kWy3=3-k-(2b1>Syc*8rY}=V)eHzPb z0svadX&R(p9}HY(FRrk6;OsuqoHztN2thgmlD>Dm20lq2q+!}FnuF=Ck$96X;5FOy z%D_Q7Dd}EyP*yy-I0^KQg_!o_iS9Z^zy4eTy?@( zmC0if{JVwAZ=v(RTx-7%@y}jm>(lLI6#(mq|I({xhq2f)6k7iLKjyFYkpB7atRcb# za0VXM!Q#70pwRD$TMxbfN8kz^<^gQ;z1y26`fg3e=CB%p6Zkj4Zvj68-T;BuEnV$) zJ?TY*KQ*3TfxoGuA3Q-Hz{f_fvnZ|ARIo&2`;(G;C)x5R;5ENh6uEoe?)|R5X0;BP z8)JS1{weUdGHkKa@8@q`!1H{De%VRQR9~BehKDlcFhZx&P5d1AK}lSj8YuixtfQ^c z+7q_mK36OoGf3cNmGHTPW0%FoQAx?4t^7$e=#`_h&B@uKl_Y3d0wcxjA~bOT)|QT9 ziv5Hn80aobv9y&QP&N8-Xb^{DZ4@ET5WWQ#ADI$_U@b1VAl1=-N4Tzer;0{{~bsx(uD?3du#Dyo^NPN&YN(5p7GqcAEtxx<=a z;IeL%#*p=4(_pgd)OWVBEW47IcEu+b=vW|^SaDQYmM2bDZ1Q~9OasyBbt|GhF$ZYC zZ)-sCbV%P*aovn5S#is0RD)9nK=oN_m&HP~Og_4fc_;2OHnn&PDHPds!S3rl$ok&d zW0mR+dZgwJphI`P6*3Ac^AsrXxOQ`-O^j4^L-Vo| zv^U@Yq|EeooUO(3hK9|z9P`BnFlB(=fiw7=f`;;}F)j_uMQ~^qT`P4MvyadgQ#I2; zcdOH^?P*zu#gS3$OlJ1;7?uM8ymgH&SNUpTbO(Q+yXmVtV_@b@X6wnO1?$$-C#&E% z7gQ6lVkK1HiuH?OKV$$@H^VlMcO~p>?XGJlz^Z!;J5PBvv({o=$GFgy&(1;Tr$2M> zFOs3j8NbF1u)8uR4;We$!~M+F|R)-$=dJ zQTmh@;Rwhs@C)s0a@!>z+>gWnI}l%_FFIN_BV}9Ks!22NhYLxCQ1Q;8szrc#bewi)2$`))f3Nu*0jSJp-%<`k%1ou}h`cB$_SvfoP*=vE=B2N0Nx0exMcExPi%XdkJ**FCc3-wqYw=dGw_{bO zH}JQBBk&9a;4}2M;43)xrX_dFP*9fXEL~4OeFwj{W zz?hSSGY8-$2K1MavuI=H8;h7k{Bz)W#lwL2D{@Xbe>hv4c6y1v*YK`dTgnbtz+wgP z3;;NRKLmaO5O{$GApX?tk0O5>8`NH1$p)|0UtL9;ZK9Kou+1WEM(EhPTFRKcO?si- zycaI%qeiMJfHYI<4CTgTF)FB9U6%5dFu1@WsoskZzJQ}u5W?VMwkQ#CEVVJ4i}wEu5+`Po=X3N6o?Vbrtu{(ICCMI@Fj(&5lljOuTj9x-n%lEBN;(Z z0eAzRnOP8I&A762Q06F{g}^BJ$S#?&l{cX^A+d7ddk%TZHQ)fgS6Pu9M!-1rP;hE! zyvQwC*Z_f^Tp}~fO@qsG7w1WqPU;GHeo`f08#B4GZ@rnWslgWut3y);|b*VXSmyImAs1DV^sp_4kXK4pZ z1?3G(kp2|R+;2G5G+cL>xu=#|`sTNP$zA;gw&!HK2+d{oBQ~-zxe_?JYNgVlfeX^2 z;$Q46I5=gJXfFa`#a;alA@-KDB-hGc?kdEq+FIKeyefZFGXSi4nbCXZA3nRTY`qQJ zapb?*$Zc^yt*Twy;;;Q{W52n@Ef{p=U2!EnrcS!3bC#cM_$FojEUmW{dCeEnJ}RKy zMO#{amIqr|f!6Gc3mlyNM1u9>+nSR`t-@f};uR#AZ+T|Q^3~)aiU%_`5=^~$mfi}pG;`hWC z=>hl_ItY?Rz~v^=G19M&R}1bU@hmNA}*_0AgoN~HRgW(MPociHR<3D%* z??vkSfQsb&a6>?|UagHqv$8$wDF7+v_uRYNZ*)d#PuO-rxL>xl zH4%!t5l7%7fMRp>1MmR+Un}u``%!kAA#D?CAJ?|s*&jCg6?|z5Ma?6N_Ek!o%7%>t zl5kIr;3M#Rh4o?6O5?U=e^&{-WV3#LT%QV6hjD_NoU{4W9D19z?Agnu_%4=n9kPB-q0kNqCZ;4YxwM1|WMyGf za+L{CEF6!j-lPifV<8`=aSxVvlcm&IvaL~cDx=0EsZq-F%1l88%ziv|xItGsEPK#9 z5Q!kqlJjA5HE|=ODF_Y@#7K><1KYN!wm-v&!v&`c z9^diw1&?nyy<>qZ0dNyq<;Hf4`+)Ch zVeRD4yFgS2FLF(k-FO|<(GqVU{@KUzCIVD*m)V*G(0)dCwhY|XXz-S_mWzsNj?hh4 zegqDU&v>&N)uWeJ{3aBUJ*?K6NwGt_TGONox7~;9%^;h31^_qWT5wmb!v#g8ThOHL z0aBZx$2vXAIleX*9k(Gb+@Nqck2b|lx3C!OXd^zfL2__0<#5x{QnwEKJ@XlJl0dtV zv1Kv73OHVE1vp14+fkvF=99W3O#ne{S{RC_vQez5~5pcs&3srxD^(Clbk>w7z=KHOqTAKz4*D| zCWZM(8CMCL88GeZL{^uDKHIIDuw1SgX0hKtSLSAHu12p<+lbcHXyG*pvAF13w|0?! z>|n;i&Nkl`_ph|U>V>DS$*V&Q-k%pXm(WCA*ql~jzqxenqjfn7}ojA>%{ z5e(ANon}9iM#nS#8?zAo8tm$lA;6+E5~Fw(40-{MDMeTUDd8$yTu#0v?UgV}l^-qr za%yu9#6UnApn(8!pdu9wSK>R!s3+oRAn;6oFn>3_(n)_aT&WMlU^-9-I-t*#=thZ( z6wC+kIyu;AQvIg|-YX>lRcjzEi!#pdp>!2TV6cmHCNJ(Z0`^D*@F>y!XJ(`H?D&Qr z%&yU|!Q={t2pgr5xQZscKt~`XotY%^DqIA2y^#qG8C5(FFo6a+3?Ls#Vvq(1#DRz@ z;MedSVbBwGBxraB9_a7puO`yp=vTuBY9J1#0|okLNR-j@k)#ImEBFiG2Qw0-OIFal z9_gk5)Q|zQfq-APb<7MmpF#Fp2=!{&Nyl9!6;{J*;!ywqAOJ~3K~!D!mv3h2 z2((Hzta1rkjL2*dVT*5A#rKzoXe(5C_JDst|EI4%|D9>sNSRfKc|)@m`ZBMetl8_= zQl=`Hn>>q$6)ldIvUFeZ(AS3V+>ZLHtNbk++_&|WK7juP_-D{tHTvf*`3Se61L3YY zc+KWSm9 zfdlwM-~xOH;Q#h-D{zgu@*r2o-c{3D$oV>X;iMsLb13`h0q6i4Yv6A)1E5~O!}e27 zS`h2wEMqBD)5`=D&FvH&41rAMFjt7ZP(_n}L`LRP2yK#!#p2N~COf{?3>*M0W;dZJ z@MmHoG}(R@o1-Gq&ey#&e|#}}4b}EDH5wy}z#ds9O(_5+5jPVa#;NyF(&i62K!oI^ zZpaQVldhRLDmNV}ACp~=Xz;+=5>6;#Xxu_f2v8aua3;$#FJ~kTvbaJL(YirbgcCIs z1#~{#bOWv#7EO!@9WLWB!P$-7wt#3DGK}nAwW~BLKpq$Yqo)fkBB99&Rhs7&;xez_ zWYa>=1VC_@Ba9eEgewjsPFEb?aeBw;jMD`}%)s(^#rqkO49-+iDU7N)v6sp2BaR5^aTT%w8E(2*iC6Nb&Nzi1olP6vBQbiF7=+~sXPb*2x zFn>BC`SGr4EmLOT^5T$8P~FH-gjwE)%T59=XZA2ikqeP*+zh(J&~jSCjs88CM;-wC5#AkT}34ZphT6I)q2>hYk}970t@hHF|lEo9p4nEBW<~cg-Kf3&aeIQ*D9Wd(%}&&0U2V>~+oX}baIFCC$OEp7^YHFEczLVd3H8n!60L}ZD-hXYppC$}%H*e6U^N~r z%xqSUZ5e=b`PI-2NidsV$-tp39kGGzvGCTD`pHyu-`TqG*a^EA7-O)P9#IS zsI}M8Bs*wi;j01BZFRvl_-2dXza7awLPssva$i^yB0FjZgLIL<8Q*9oIP~J6`2i;I zd-sds1@?iY^cA?eg1O0(PdQ1o@yVZQTXDD!7j>F0Hq)V=)~NUyON5HF&DJB z0+%$fPX;Pbr#!zeqhN@{_sPx1QYrwRsRQ*2Mbk)qXL^P|P&7T62Kr|xnh%swBSm^3 zuHaYdnG^Ki$i7+{fQ^mPRDGx^@zMq21c?y{c9Fk{Z$_iJ@B-0sFc<85@Z$br_y8mM zRk{MfW#*E(bOqpeVmgwdID(_}MTo9Tu+&#j3Q`bG5SV0Opi6MDmX!?$NHa);eJ(&j6XL^JN^Kv8==vV41?AcTU z@s|Hh-Eu3mwOQOkL%mG5)Ia|>{I`GjD}u*MHT{-g|5q^5S^e|Xq~9f%aF47043VFW z9js#OTOVQh29`v~^5-)~p`{jPivH#2+Ifawg6RKM|8RD`eqGejuj|3$>#lBy{ACb% z+}(-rjw6p-O=o2+QrREDA3}cz0{9606JRL*Ld|T^@`LTS@GEt%fiJ+9+XTQSHnLT; z2k;6wZ~~6d6LCa3k+rx~*eF2PIi3l-or&BWIcyml&aq`lB4;sD<+)r< z8^~nOod^X0RLpQ(t>sPd;tXWTmqzpgyNOM6O-(Tf4xY*@t{l*eFnR#SdZ}a^9b^H5 zhei{VjLw}(K8v14D#^AJj=&*Lo=V^W>gH67R5^m83m%moLnZ-1QOQL35qwW01j(XE zPAVa{o+YayRT}49)-`(U{1L_;VNkI~k3cBzGhHW%HJKt_uiy!yl5jgF?!j`&@9EMB zz=c&`o;-gb3XJqXICCEa;0m6QLWx)gPz5r;6Q-Po7!o#ZCJ=`_^I)*pDH1XP;D8W> zfNTelY<~HxX1W2&A#ou_=>Qg(G>xadrS!bzfMLJU^`w#J;M%Mz#>_3Rp^ zQlYQ}WG5;>7!TRme}Skpw+mV2cUgmu_Zvo2-?2ae8PY6hcgg;JkGW^49ITF9Jrj~t#I z-BkaZ0Y3|z{z)kC)unrq(-f!(lBeCX#akD7gw5RM79a`bR(o1TkjOJPl z^#(4vw57sQbkFsof2O9uPA>7{b9ENgx>xPe#$f1{3}@^9)vY>v{mxwiXWpl?e(8XMbp3(bq2Q0R2{x?W}bycLs!PaR5u9cYZU&?e0q(>?7|ODA~c*mnKNLp0>pu z*LbaT);(Ns#%(@?nrH#_lT59n;p!op(Z;L((^|RmrQY|cv7_m%Z+mOKDwg+BGc6G1 znU{`c{y*pflb19V)$fnC#vtx2lB$?^^)NwWOv5^~N6d|Py7QGdiP+4dl^c+Y1wnm0 z!+M51S14Gq6`FNdZ$QC>N9;bew3aecYie-iG!3(X)f+pvm@~&QIhLIy}8awrQ#Y)&)^}= z1OT3d@F^clMQoO4Yzb1S$G$T4czT1b6sSN9CgtxHP2bZGrWfi+9SwuwoqDH7`e#!# ze=-^TX!>CKOv!YllgaBw2jVke)FT`7nMw5zRKZsjw6%gJ$E0&=Zp5qm#q1plGKasw z3_1{Ue5OYFN8_{P(5w4sb|4Ot2^Z<=el&YZeS&mxy-{aZ1Vj$5XVU>pGXV}9Q!Aa& zj8x6%RwYpqN`VR&0@NFHMLv2%nvqUNlKS3spud=o)R7tt?}m3O(m&Iq>B-zoNB9TR zXOpO-iS%+L^%>E~$9hqr1N1v%C9I?Zux*R_nbLppukmmH@K=X!mo7m2$n`#0Kf~*{ zfbXrm-yKALl?>Q=*v&WpE4=70bsSdT=T^kRuka4BD{J}x=Wl=I=eg;3L?suXGL`sC zgW54WRoq@tfktPu^~5J@*cDMooX#ZMRDWZCURl`{u%fV{1xy9uvl?ki)`Wu zTo&Qfw?@fVyOpixg}c1_epL(rC-9m@Mfw)}0Q@!Z0{%vsn?IGPu(l(s^rvG^varNihO$MtSA!NY)%X>drY3)_)B%*a>ZH8#T)-@B zdIYDe4P5cwlSa)}RRL`l9HwW`L&9Al@804{~C~9QHqdz@x9^{g zkIb%Z-kHSJ&YbC~TE`5opzw9_)5qc;^Ow4Qvn#RKBELYi7yCm)2J`at9JXguceo}3H(Nkk6q`4$&wi(Tj-ZVehH)qq{ zUibS2R-QaiwSAsi7oFLP&3^Mjzm@{?T;+CxdXj_y{j$(#hM`4-j24b9Eycceh`3np z+cCI~y0|rAHn|UJEmXX;`aHUzkNtvsXJ(r)W#cMiHrP=mTL45OzxjX z@;fLpd=#Es@ATJTlpozr=5l+52))1unxt3hO}a>e4&+mcH&h-KHcYatHlQ&Fn5SbI zr3e}oi34PY2f_`J_)1+&Oi8!7i_?Yph3U!gNFPj(l$pMoWO}7W`Ufh|kI*-!@8FR- z(arEm2Q>hn!GStd?YVcFuZaNg#;P~Z;-fRuQsRtxA>ZVr$^8RKrcgWkj*QSph9}|O z^-5>3qx|G1^H(=QFVFxNtsY6~06meJIhJ(yBL*#II+Q8F-62g0BSgA>v4 zmAFte5m~Ko(1rR1@nm{54D?5nu^dU$NPVCO>PY_v`py*LC(7ur2G9rUGcbUMB=fh{ zKxr`wfQ|HpDa(Aix#{?IeXYXWTT=ah`1%i|TmJqI@846Fz^~~z5qV}25JC?Wy9)mn1>CdA?X1M|3`dU=>ffq1za-0wbxO{ zfYeKFdIn#h{{`NjlA$^oO!hcuO}JyR+ZHeh_w!(Ax_U-tVe*s>IvH)VQREM7a<&O% zpX5xxC0~xI(h5bt&up)ehkLBQd6PH&IO%)=NJa*_)3QoeREFcH-~th_#%F&hxwwTV zNblXnYJ8L`1}`QpF>^1f>vE3yMIb~3AS$Jfc`Wf`kvK|k!~+nR zDUEc68TFd1N9ZN6Nk(0O13_p6j>H@FXi&EJZ_up#lN9z_oPR7i|3rkb#Q#QwD-IVN zE*LHtt{5WhTCoIo#1Z2aV?Y>TR}fi-?t&}L<3i<9vVh>A!3`mS!-OmQS|!&gA~J0X z76}j`hfQR1iqusYY0s#qCmK)r+P9?6kE9^ELUQDkM&Xn~+KuLnm@Wgtk!UO{Pbu+` zaxMhO42h)4h;YoU08O|O))`W}fMdQR*l~xe(I_ z=?jV03%~d_(H8qHXXOYsI$mza0JI3gIyBRQ{;h&#x$|j7gbwvibF%?R&H=WpJWb;y z$(@{YzM)#&V4n55lxA}mnA56uqxp2Y6V5AsZA(mq=)!edJ8U+wpBSd`lIEydkN7Mj zk=xo)8yH{jeB35>bO^XF%p497|A}dc8{7iZK9Qvuip+ap|Fkm2~BuB!-HMSi@Vie_J$G`xn1%tu46IrAM19 z%zobQop8X;Ev5Y?ww02yYqaQ%{7Rc22Wz(Y>V04)h5j^mqMhsCdgNE#`nH~~%=r;U zp8!0wz>@lfRJ}(DHU(xagN237J&Mkx%}Jgl`70LxGY+2frGB<#aOM-i%6x0)DKr!B zYZ;q1&mQQ=xt4EGkHxc|p!(|lE~DAfp{fVL%x4MnxR(_MSIzlSGi0_40cc}KSgfo6 z)2Z2$*`;;N)EVc9$6=I4@U3(e57}qd=>FNv!AJLJvv>F_NXNG z6a7qmq#sQWrh)hhztXRUFVu@EmXZ3}dZdGT&Db|zsSkje7n_=y@vHg_!{u3U zfH=qTaTujHFlmDx@}A;^eRg-VNATJG-Ru=k@Z@+f8=*Jn!SpB*I0Ij#vkSygdU8Dw z$#Xv+Nljv=`N1SPO!H^Nfk=Z65gLt3qy5CUCebg%Xc!GnPtzH0{)sx%KT=2fgK02* zC9d!*{fps+3Z}vIE%k}Im_JgW=OanHf*+DoQ$Ew)C;g%$0LZ?uR>!-ver*5ZkNGD* zc?TjeG@%yBzHcm1AJ)wC9m>lGm0=@FV#ojmMqr>u(Qb{{EGHR-J@9Px{@mx`b%%GJ zZVu)B^7@y1er`1?B1kb>S zy$iFOJa`0>;rjsqG=RTbBsed?C+HD;gmSVq)wbJB$`5Rs>)7|mf*1|akdlcs3{hO&WfO#S!daFD|adOgW1}r zp-G$y&4hL`JXA5zM~BKKiw=zmhPMoDb298MMegL;%?>Wl_?b$NTOB3{6CIwyjahO& zJ^vN2>8h(uNRmKRnu(32p68cSnN6-H=qYJnn3Tgs*hGl*n4jM#^PLoT9En4oI;>Lw zv3OUMqSFNi7A3W%+*bn%N+}r>nR65dC_$p`f?3jWpM^&z*Ax8=4x1PR@$f4rq=g=~Bki9@yuoKk&rLF#2I zaLFjwG+yIVi#MdGTi1lo1n2?^?hO)O`@1Zn)?|OtfIr#g=`jOA9MhSWDz2H zsCKP6Nx5tNN<;xDQ=+#t#c51-`Yg)(6zM=Ql%r7AEp_5M=4D}0O~-0tlurf=LkVWi ze#)>d3&+GHh-#W#sRP3rrxqcb5H+Jv6PD5R?|E>zy!X5$w={!Vn}IynB(2!5sPW;h z0D~GWeKWZ<+`y0avh0_L=dvbO=Px`VdYV}Q^vHf^_q+<1w=S5dp1+*Tf2{(DvycE3 z?>YM1HGZlUR*S7o9AOr-sl7r?tEvr~g5%d9>DJ@ep<^eiO;(1Potr_KQ&eMY6q;;o z*=N$`S&yT=z}r=5QoFif?0U|$-WO;D=JVKL&eilQGKn=Xab5wNdxyH!lJS})t`(p!IY?D6KVgnbceEylLueNNSx0rIbfE5n>26FbNJDQ+HCxt}eVEh_12w5FRF_1}G6%-S-F{9~?2we&SOv7k zA2b$TSQ4D-2R*DAKI8m6k`0=;b=j-GhBt7K`d}{N=t~saY&YtrOte0x*0KwC?NGZn z3s+_Wp~Y_0XC6hzDY!f}kZJn-NIL-z9H6hj=>BYY2ERJKnhn57cyhg(F7OA~gXHet z!QMdy9Nix*yg*SpJIoY7Nmn5%&DEA^T=eB7bDht+Ns92n08^xo)R~CMt)3o@uZ*Hc z6U=Ekn}1I|(x0fo`~&sLG*V|es1I~wG9&WO#D#h=Me3b?1kYfAUhW z;QnGELTAYw!6fi1=SEO(XqGMdFb}-^IxR!KnO_Qddh0PiHfPiF9wX10WPL-@0KPwbfYc7_!mV@XG??Nj1 zZI3;FfGW;_73Rjv@eif3jFgF_eiQiNox1ybjQH1T#f%Rq=<`T2kPpW-L~dSh*0 z?}aCe;a&WlBQQWm(2HheaiwetK5oi2v_VU4&ikIr*&H@y={p4;ZNh576Y!hhZ6@Ulu3K{rg-~c?9Ul08;Jl#HS zt3FHW<&j)d?qmDTo(e)7fj96Mz;CRV`t{=39unOAI{eWU|HGTJRiW(qb53QWwo3Zt z&F+WN68%Cz;dd7FAdAkY;J1bIK$3JPMEjteA>>4#_IU0b|HA6_M4Rh7#a0 zWl0dAf;c*07$%IL5OhEe`UT^NWJ!dQgPQ@NG8v!}Zk8`xL%SGA<&MjNc1%7BO4d$? z0+lx)a8@!{nIyQB(^Jf&Xa)9HN#v-xASJ$=s5%IiNd!^lo=wTalbLP0TXj|9z|tyG zhoo|9w^ZGtrxz-p){!YL=3$OZ7qZZsLbm*ANrZ})t8HY}%Y*ZY@rtwc8gKUbt#cRN z-YRTZ(U#ujS-<*#RVx@(96`M%dPPUCxl1x9muHqfzqwU9=U>)u)L=bR3swULCPW5( zgem67vIUy8i=f@qYhYW(t7%eUs`7naS+ET@(fA$!03ZNKL_t&SGwP#Xpbbo)T~XE`2YE5+J<%fRo|)%w@7=9KBo0 zmbt!EXW-5|PR-W9$GzF?sWKXY;|>0XyKn?|(TscTaaAd?rQ%!cr@`1Ue3*?EEiX&! zP-!*8A4@8CM(m}*z&dB9-q@;VX)2)43jMe0{tl38XVQBqIC}@YnR;~|Jj)*a>G9*r zJ+OMyaTd6}MLe@NTr;4~4W`i#o%x z*2AqD*{aD)SJxAB>z0da`^zpfr(5d0St1jA$N#lId3QWBf)RF=Xf_CsaHk!GSNhrc zVD{uX8@|8?@dY?|yqH}bPi6<##q>$KxF3jT=g9!~HyY#v%w6x4K@UdDlj3S7dQ+#s zm=ePh@|e0fYOqP8mxJ0)3D7q=^r|kjfg}t4&SB=%b+9Ci}E6Xj_N&9)P^D=ibnkX763gV^ig`E65 zSU7;4qC7U=U)qKFzxm(rlRy4{0AvoJ|GPi^ef-^z@U!2*pZ)H7*uxT+zf>q`@Ip#*0^Xa7=nudV_y~Ri zUb@y`zb$HkkS#0!)JibU(;&8{fwkZ561sxl%&~=)r?r&{`&*)%pGGuB{3|PsY0>U) zsc2?aZ|(7D41ie`tZW-4TQ#*#!I{%BZ-J^JWXXVbHr-Bee2-nETurukm>^iPFUjxM zy0_|6%2%XfkBk#Ol`IwaIK7Y6YtjKq-hjT8M40R$qZU{!i3On)S< z#0fGWQU^E)(i16kNW%n#nXd4Gx&VV|gb!Ko4}|p5VzK>60|BuT0Aa+SOaL5497YTy zh6qcvfx4_u2{9s$@Bw24N7zEHC*`Sz^nD}@2$mPrlvH3L;SCWunSq{m&yyL9$#v%f zJOdnc4jy2GveF?k&p{eoumf>nr zP00o6qLo94$hv+Z@O_#9E{d2KfSGo=GKnQ|q(xDDnxg7D z_W}~HBCF{9NcZ+}&jreMrM(`Vw*;-&TYv195i?9yGth@EOPev2iu-F`(AVmLWe&?G z$F$DxW!j2Xf{UB-x;4zv48Xz)Gg+xF#A}Z&9n0+uT>|N z0hPjpRTeN5IZ_*Xk_4V(XMtAVXDCoy=u!b@KHzmmiyi5*^2owBXen4uSd`sJFuQr) zx14`g!^89OymkbDZh1Q4R-30ga?e&Tl{Ub+a)j-WO^XMp;|!Lba_DKW`d8L0*X(m> z*EXgqvF9SjoQ=c&!bYa!u-R{6T0}wgQ&Z}3wHC-`vy*c{oX=*G=40%wA>M3OrgjS4=5i5HUh9STfKr;lP6- zn8u)y4$}j5q+U%%5AX90A9smsfL;-q&!}LmhG<|?a!v*n3dj$?f zr(Ch=38$9ko>h}vTl5D&{w5lA2A>^H9$;6G7uv!3M7zpAlPA}UnYq6i&$1`z81&iw zOkUj|fNw$wt_%DMGs>Y0bflhh@4S96DFtPtl@w1Sm0{u!KgFey6lniYCNR7;S07g8)K|Mi$znVT$A50N`F&yEqC3Rq)t31uEqd&Ye z0-y_EsLf7j&|&R*W;MKGX)nt}M6#*jJE1iMjb zyt@?R9YW}px6$mVlM1det1bM%q>;OCv0K>!{_Fo8Kl$UNGyQ)-06(1l-S7V?e*aGa z;NSfL{_J-%w!T{MZprz7sZoIc@UOYq-riS({_jAvS*bAX$YGCB*ph{{n!WwO&3!o< zCpzbwF7|e(`MS#-l54Gj0T1QhKP)wW`sWAWRLa7?0)7Pi415Egz<1yicq*fup4FiE z1K>}9e+K*`=+A*C@Tolc$31l&aO1b@1ubi{un)&C*+#DYgue;A0iS>$-I57%UD&px z8*8O{Tz3uNq#JH)s1{miOTy;VSA&Rl#_MleZmW5W%nofR%7EiReDidcXysYD8h*?5Lz0O+_9DFv6+a|xhK5Ew|% zi~UZbO<>GuT{7&Z5QV`UUS=Z;WTkS^3h-PQ6pV##GKaI3OJ`9qB4Fl8cp-QouI1o5 zluU&J6@lXvx{zf3$@7Fsj$S}^RRi9lBo#=bTuDfmFy$m$R>}%Wr^vuWB^{(Q=tQ6+ zPxZ;b2tN|9)Rh_t%Esb*NK*h_#phIcTlQudEd_EQ(BGjK=m4InGxMN;L1*eAg)S43 z9)JPfFNJ=hCLBX(eaVX^LlaS0YBBdHDjT|R*+khw? zlFL7n-9OxIAg_56LD@D+kkWhu0hu&rVA`{bz2zmuBnQ%Pl6ksE6-w?eEzt;*@o3?p z@~dPrAPv`6xn&xqg#vI%di*?5WN}(mAoG+qp;2i8V6}5;;Dl+EEnNy@N~R{gcH%Bj zu1sz;t8h-2EG|mv&QkS%DqLt8+(~!6SAlls^>Z3XU$knP^yv1I;`o$;Ig+VUVh|I0 z@4YX8R8j3|S)Lq<)C9uzqjR_=AKn2&wX1G!{d~CC2|4ouQm1(o=FZ)dT2tziQPtxe zP4a3B@Udk^tk=2B%DUdmTN_C9ijtzyZtS=!bwz{sU?0~YmGrMkp};yksFul?=HWy0 zqTWN^trAmBBoS9cPMZzOA_HJAXKBa1WTTDJQZTzMnYjzvRzF5C%ShtA;P@))f7?}G zJyFpJ(s$-|g_Vh!{XP*JmPjihRJ#XrUlrRyoSJu3)&9kbIY5KevXHu&ef4ro4$Wi$ z>#wSv2y3cGYi0%OB7fQX{CK^IDnz(!?{`KI_yiy6f?cSGDSLK8sOKTT z?22cXTX5p6+$29y%%jZy4gz`>BK@lw++WDS{j1?3d!|hO#raM|_ZPDdlDmIz1}Q*M zIsqmPN^fBEV2&Vxku)d*MpB*xah8=V30QENKwV6rr;&mybvCa@(lpS|)W!5l$@~NT zV0xgx(j)asKNt=a%pa%=^-6!Cp6H*55iaUNK48`Gr&&lQN??lsXiMz>_J8@$|JVQS z|J-d7=9|a=N7}pXNU~(vVQX!3kH}lqsXoo2M2dh23`Br0EdrWXK4|)1^c8v}^i^sK zqVyzC5NBQp-5`u0i6f!ems6P;H@Cg?U}o-Sev3Fg2Ze*ItjxGrxSQ?0_PP`|)A8&4 zor1lxRRe6nc-$D3@8j%S?&&+jcI*PKTZ4LR*H8O0z?}j6Y8|lhXfw-u)oE+MOmguj zqvwD5FY&9t8eeq;DjmRLul}e17XS3$;$Qz~`0xMu&!G1ITq!_94Es~je-Z!tpX1N} zw>4C^xjL+Ao$riMj*a&8k&%;jW4*ZhGkc=sYm3EiPcL>t*Y46s=nD_P*`1N9{Q>xo zfCKPUqyqx}7vMhz0QAtgh;&cje+c~m0{HWl#&Cx*wqz^r=laZ9BlpH|dQ94jXW){h z&v$H{TEPc5J{{q2g#Y%2fALwZtyc=wiTXKI*g1Z9y$msx6!e(+Y86CF|;Cm{bvjRY| zY#l>F%>*kre&Ma>c$G*@;;O^7o^j{>QV#g)!*pw3c9T(kRb?5G=Y0Gv3&KZt?q zn0)6%sxw?EhkEGKbff|lp=i2NhwS_B)1TR2L!AEDfH36$cM%q0u@sXk-MjLd$q@%6 zYDP2+!*nZIb?aFXfh(kfGx1`O^R-L@jRCq5H{%=3qNj<+4LFb>PIQYrFoKrDh^3ym z3P)N>o=&iGGHVJWJDwQGJ|VOO$d}p&a^p8KK9*i#ZEBm40B(qkf#~>wizIYJZpf)m|HnqP6MuF7*qS8AVeS} z!i)%dVU*_lj5H^!tZl~pVJY3npy&a-2_5N``nD!@Dra)Iz#tCE3u_uy!Z6P8^3+_) z^M1B0Ph>rWRPo$YbL@O_=pSP~SgV%DT`ygV-o&>kJFynunTfPIdgxQoAgoEE)qpNq zC2Z$e2D%3b`@3}GrW@B>8@o~=*MLjam#iG&TA2zoe88nL!lnf#Ta)EkspZY!q4uL<8_bEp1s;xeK_3e6B@W-ft3uhwqd z=sbX7^|IPtlgGJ}e9Q|)_t43eh~~#$L~FIRS7*TEUo=E|1MlGVbD*RXr@2m z5q8^7?dC}DIij#7jMsEKH9@aU4>6)d-V*;?=b16(rM@QTPV}re@?|o#LUmVbwOpr9 zuUfa(EPJl>$HGD=u=QEYSoxaIQ&+vA#=P8mH{+JrYIYDT|b~xFEmKs+@Hvs`%ge14q_)A z+?j@7u3Tc8^328|gZY67^s9MC9qA$H zVxBB(KItcu)4!OG)YX!+jsHabKy`GZUa0S;fqI5ts0$U~?_>vcd8_bd0H95FuIK~k z%6z70FcQ7^2|Dae9?aeWmwo~7z!Mn7R~P9Q@M+IiTAnup10dOBlAx1Tv^zGcXBS00hM|IIn$z`p|k z{kRoT`xpNs`T_sVfBvUa`}Zdnk6Zt*KF%mJ`gpllhSmDiJ8$Cx9-vqVF58v4?nU@= zw*ccd-rfB4$0jQX_i*jIB4BN3-*<#7c?{lHKk<)%V<{(It84H%TV2&{^=hTF-pg#; zC~XRj)No3+ewYu45AyfF0skKSJwP* zZNB(^Iwou~mDW^gS8{=BeA2)SRd#50!_c@hl?dNlx{VQ8%ChoYo)(Lw4B|5f=B8BJ zoR_PL<2vG7nPzoYa|mHJlhb;9@#t=lzuTn-Yd&RsdLR z1^`yR=p0?l1!PEwbgO7g-2apWU=e|E!%%qrR&K5&rU{lGL3PhTkT8LICp)nRzmp~$ zQ?QW?W@q4=G=QH*f`{bRpUq8*3dY=A*ED7(2e2zGnlWhwWFzPfB!Amu%Y9Er z`f!U%R+fe-Qk#TUNS_*mPBAFopy}Vc#I4DLJu;i%=PZGo@LLY~90)uPag?+KiX{zu zbUd;${km!L5>0vwE1g?18X67NEoU5LhF;kL5-2~W6U!&%L4}WvhKxB%T|OE!0_{XW zGmwNOphL*qrbBto#wkrTBcz5j*dPJvDZBY;w*`7|S4PJcC~VkSODJ=Vs93+`87ivU zJEHyN2K}j|4jCD@V#2UIm}iDR<74`mG+(&$_qY;Vf}y;l?%l)}!b(TcEN^J&Sj)nF z9V;n=&TNs?RvY(dz0)Sz>Ib zxLWKDb%2!^2~{-M22KX0)mIYA8ar ztUk1JzR-H4jPBv}{jQSo-Q}5CJqXN}M4^I)P`nyPA=Fvh6zqZi%x_Q@ZgPqM! zmi{)F-?3BogZUjTTO0?Pj)U=ui(L3L3Rrk0eCepr5F(<_FW&lvmRHOn;%n^l3Vqo26)Fm#M6z2a43e(n{);{)LM0 z!PEnvz}GRSV>SR-qW{YQz+|L8sR4eL6V@Ex-^QTto^;q{VLV=I;@%AWPnmJt`zQV! zPry}6S8P+U=1V=#o984gr+`ftoAnR(FMpF_a+gDb0s4PHZ+uSL|Nhgz0)>D1mwNzx zt`PMo#QzBK|G}I90RO@Ni?82z+ztn*1N-@9GQVEVz*9L#B1($pN?(Hw3)$={VDqC# z_vkx2`jEWJzkKMf<-N;u$8cY|Kd6}1#`)JTz)N$zHZQ&jnB8kqcJ>|KQ;^RykTOMh zbC96jc7DEAUw|9b@5*_t^yYU)et#3ICcceD=Yk*G?0uSkfq z0C->y0Vr5nW}c}cCQY6b#I3~Vq6`lR1kw{_n1IqnJ{kLr4XllA4o9d7vCI|Hg7qap zHC8YLK+y?=+()~J03}=V8)3i=awvTPsxM-T@l!lP@4yLuOrS6sB$CDGBH5K_giS3Q zE@jetcJLQ2rXfA5v6GBGNPSZD0U{g@qRSDk8ps|nD3}H+5`g#A6+BR8if|_k?CBr$ zBRm*B4bQ}Zy2)jVrjU{V%yS^H6=(ktGsNGG6N2=o{B@EG6r_Cgll1h*;Sobx-3StK zbaX2BjtO4*J*L#(V%P0dq`i;>c@*=_e=6N>OjxI4f2#ZEV-f2!!!lq zR?PKNDn`;J97=Cf!Z1iFIX4^%C$C7`VM?p%Ma&CHw;a=3B08iTIhMpaWzfZhb|(89 zX$0AsM*@?$D93?Fs61V4+!j>L7VM^vL>7hr@z*DN(?HqV$-&GS|; z;@0VHF%K}(`_5X|F(5g^gHtYT8UrNGmUD_vu1jvAu@b>^J~C9#5X%S>)o--^)+5L* zEi(Z4z!&R0ijC8l3(%{+O6t;KHF3US@y`%^PH(s2^r;C>o;fB%EAAyT=03c6KIzf6 zqOrYxn5dLL#gv6zgE{4tK!t%$sg<5R+D5~Q3At8_^@IwLs_>3=*OxV3Qe(+Ii&7ZT zG22|FM=1P{nE9+%MViw$rqWPtv89z#PupnYD&=HZcP=4d&A@T3%OkMhXzeeQ9+RLx zLJrb~*V8Jel{*sSQZSYMx?Esm6?v<0)vn;Jm^k}c@@7T$<)yJ?X}U(IokAa;jK9+@ z918{-nu*kOsasW_*2Z6zQ`USsxVEGkUH*}UjTqWh3gABko>ngA9YqVbuPf~PN{tT{ zS3-dIt(Dhjx7#f)cW>m`o2d=8xP&4i#?y3N_{@!da?M&ztH?nK30No4jiN5Cum3Uz zrb+azewyu;*mR7X8{O3V6-S7it(tB8b=_&xrwN%=q9tqQ3ia%;M&7~sMx?dSb*+8O zGsVwxcmwUh3gn71ph376A;XQPu?F-PV_nszg50(An0XI!Z>N0_^joU+>MO-69YFd( zJoP0Y2C1V_F}Q(tg#z#l#;A9*FR+70kvCdLz;Ja%GjqIxJ@K7>a=e0F@St44CKpS} zT^7^VE}7m_=9qMlda-jc2+Ah)k<&Jt966tu&1x>D8`YV;RL;8`;r7Tn*7>X0MJO{7#(c zuZ|83!A+EuL(M3cM_Kw>u6NUbO!@DnPNWM#gAz9|8{b&ALPm1qxl$L?&D621r0GcS zO&>v>`7`5{elZ>C&!&s{n~A0m`k4xdZ`2EQr91s(>Zt<-(-D59--sjp#q?8}IuKXc zA)Sy`Iez`T0RUzLfX7jLj!yIy=Xy$`t)RckFJc9-e2`S~NJ(^`@Vn91ob0*Bq*fP&Tst#>`8mPvpVzi2(jOqyJ+o+42nN(7y-2P3HKEg85f}m68MY z1EqGOX!U@HJ{}t4j4{P2pWx|?|KxwgKmI?qqVEQh5m0* zaJYbdw^V4;@1CJwJVdv`y-aKDyH$nt_F+ZV-=^25s&)PHw-q|VBY-}tesHHP+A&Ji zs*mMvF}$e=Jb=FgpP}b_!icIMS#2%H&A=Mxt5Ej zj6nzRGaW1CP1^Vf<&`8;^)cZTL>To4S<^6T$|YtT)0qFM@W2&Q%xbacwvrT#Y2=XM zcn7_x4t%nhr4xb<(of)#=%7m_eNL;9c>2lID8ZwLOo)~j?;s?Tn(<|n3!=-tvw`Z; z>trHCy8}k`z!~d=lS) z9v+QX=te{;Sw5y@h=J-%gV0f(!O4z(rOw1Ng`ggOroX1t-|YVHU<8%ZfRhdY5ge+7 zfFcgCQu&P9&5VnWb`0r{CqI0+LlFZYBE*a=+<o@%yy=M9vTM-h@SLC=1p0xT9>CD|L? zz+?Hu9SE7%pYNH$lx+KxyH6;{8G(+t2nTqw)k@cDUr7Dqc+3<3-1FqaBr<*507Y_2 zNKi(2Oi48YPv2n{988l{SJg0Q!UN0R;&~h^fYFhnuqQ|U%p+6b?90Ut_4F`#ZiY6} zZKzzKmE)cgz`pE3ty-6pIYLvcsp(16*WII(nmc?_tutNcNTn8DK&uwpTAMD+2*~A% zA1BvMR_7Q88c^~y7L`q#Lx^hG>S4xc8m>o*(8bT}d)(*e=?hNUw>HXJP=#%>ZpdF( z;LcQ$TNxOXfj-;9XHo{vin9vtpH{}_>(70P*1cf1M;sL%kV7uM=At;`T1z$FtTm3j z8r#5?;;(7V*!Y>Sosl&E+U8-_Q-L}dfV-rU9o_2|&41s_9UJ`g)dp5|V#FvMsp%*+ z$ZpdWo0mEO4jjQVa)3#_7miv1tGGWY4b0n-Nhp(^(WE6*b+P5YHU?R>2r9jjIK9qs zV5X(nS1WU2H8sqxM9XIBxNax1HBor*3f}}AG$Y<@@{;&4=WA>9`;f9nEyB*mB&wDr zH-2mNOIHi>&fbOQqk_4Kf4ju>v{DNp+87C=CEt7rG_G!6J6=e&Cu^*7$A+1N}*3rVH=T&g&kB{8tB0VbxK*3Xn> z2AIiZxaFiee=+ppJ9u^cNZ#mhBm4#cp@+kGmTs|hv|)e zF`a`ynU3@`{mpzZU8%D<>0eB*ra#aLeb57y{ygP~IX^-N>Pj7@PoSfWqcNwqc2Lt| z#?T9N!Qq4W3vz%TXjjP*k0Uw!@GC|e{|eP(CK!A1LzR| zKO1k-!38TTDIHx#G1yIbcO3$+1=u!H^1PBnX9}hl>V-NPuJn`X8uVs*rpsKxU+EX> z!}Mml(9fo);78M${zf0nuck9a^Dp#Q(;w1^1qx*`%S!4r? z`%$!dOoO}KV*Hc;ImZ;2qn{hF{td7xI9L1WFGFQHc)0UvZ#npjn;`NdSJTQfo`4hJ zQ+)3JJ;ZyQ`psvooMp5T9>B$#PYM7`>A}sxI?M?=ORJnc5PvyhQ!De`o`o>Xub#TF z+1GQdtf~Va;Pc)Z<_4VWQ?&Be|I_Do|6}_lwU|on5UIuv6B{#DRz|I6<#T0QC?QX> zGw&(Hp`g{yFasS%XVY}yn|BoL;QSCq|Kd*BL0$V$X9 zr}k5!^d9MnZopIN2n{KN7TIGwdyc0o#A7-vnL{`e&Kagi-n^KJr*CRmh$^7?=>G%&`j)iCAee0&s@D zP@|g&rI_@LL`aH8s3S-P=nT9hZW(m}27pwTKzx%41Ul->oOW;^2v5hV#q>XYJ~4kC9E|yk zG!F<7EWZDy=3c15$b{wQRAVobfQVRTMyUrfWypXjpmw}cB4~f4S?2TbuIBm6K8hLxifTvvkNt@z`2iAH48c6S9{ za@aPLq0<0{lKFfUg=k_=++d~zUvq?}yWFTy$O+N}lBG{VJVMbRcw*Bl^Up3&pE>x& z>Z-7*i+WZeB_AhimNd|kglY@OG&5;JGWZjTnqZNtHN8No%!YU`)b zp!2inRL=7Nm!Nh__gY9mYw|k_y;SQ?6!RKO>vW58aLR26ZH3Csz1nvZT^;hwSvRm- zBMgs^j1{%Hd7H6eG3VXLvkMT* z6`q^ap=7DWd5E`a+M!j6nMvltV!z`+S1iBSWC@fhG0<;#*_4QEVa4%d-WYJDnW)j# znU9lp=QrAJqV)5Juc}@oOWyL<{j%?D{2CjLF#L`xomtsd}qtZYCLTgPDjn9rRvO2cM2;8 z;@aM-)-P@r;Xt3(9LocDBZ-G=kOmh{bmM#3QuQ??fVI@+O^w>@`lv(+Q#3Iv$Uuv& zmFo-x>{~rNmPikLob>WUa2lhGGYc~)5*9&;H}VyP*qH)9~429vwwNH#l1sh0$P0XpDS8c$PCOr(^> zmv&flQZJ?_Q%~JYKbc=mZ>B(x!H?!L{|NqSexjdE&-7>WGxekS@8}nkQ3vxU>S(&q z4Z2yfD)J}dM!ynA>IHtKoEl`&+{QH8GyquQkQS(z+QFOnN&@UenFg2<2jK$VV84Jv zi3miS*Z9KHLZJD|rGK2-gW9IjyAh>>3P%%T01c$6z`Fy(H-i*a5GY97Ypn z;ml1!&h9XOp`J{==|=rzx|+Y4f+^CE!Daqo{u=ybex^U0p6O@vAF1D&U+88!P*3JZ z>S8kb4GJc}pXfK@N+Lg!&JG1hVp*6yi)HMH-n`t-RWFQ{do z4ZRQ*-n3}DCt*P=tt0~Q0(3;_>FUA5SZ^la-zW983I@rMRwyg^C7FRiSuxUKaq72H zM;c{%jmAVJSElicHzAnRr|Gd$C`kq>Gxi2`W#zNI3D6M)Zc?Ooz>OH7o+NOj zPSjaAl4LvpXQYQEs6Yhz33vfMnegbW6MZ5tP)~J?7b2K$hym)!NbjhN>AUF{^p1+A zPeV^^Q?psCbUfy~C8`!Vq{9`XV`E!2p<{{2Y?()!CA4uDuW%P06() z@6Jw0;=&4FsIA4ud3Z&bO#7!z3INtD`CRB_*CAu&2*V9fb~GnaI{;Q0`0S!!+(gnA zJnPyzPAk;BslA_N?rEM`KsA)Wy=)>ad{j8qrkO;b*66?+>f&t34>a+=vzW(S#^0Tz zeaDJDJDh}Z#Ip^r+g!MifxnUUzf@O@MCsc6q{Tr-M?Y?-Zf&yoS%3}RVV&#mAe+Ya zJYbfDx!zr{%)i#^)YX?IZt_aF(WDQ!x?b`g7`^B1 zK5jg9;%Kb=rYea8dngUSL$z+9YU~rB@8uRqWnz)ZRmLqCSbDi}8cI}*|HLE&n&n#9AR=IxEwv_UUSFXvx zn6ng?wFyiUWn4=JJzuV)EV`K%U`p$4e%GfIjeRZuk^nZr?i);4wPJ;)HB^<$-L}G< zdEYE}q2oS0=^ku;{x(6%HUCr#HN!#>Fdw*TEz!LimPm8O2_EpEySH8ci>?Z{v+06z zhb3cvPlojXd(dgU>q1C45(F>67o}7^!XetpWo7`M9X<4Ec5!|&ySO5qW><}{f3t9dj9)5-jg^ta$g z^Js1%KATSFNArvMC;i#f)2|kPH2oHSGd~*w{R{j?Mbio1(*pteGjXCE3e*$)Omzxp zs-Jt%Yf?6Xsa0|?>2~u>2DGpU}nZi}Pa1F3GQE zo&4E304LIcV`K!}ZJ-8MFul4TMaTy+3g<+X5}b*9rGTuZfN7xIa4>ZSnw#O(Jemj7 z$@E9_H~KMnG&l3-5KpGOlIG9!-gKq^Xz{nE8~kh@3}5Isc%)9I9vJBW$VEuU0vkXPpSE&mjCo9`oB|2g20~vKdcW&wi*X+)Drt1p?6vT z`?`U7ku2~8Ff&DRYE=Em#k5`bJQ#V&1*Z;s#G3sf2e-8d+!$Ros(Q{ZJpueFQGo9| z`(t~NADkJi))ni`yDb)HDCW@{%Q8d%w`$SVQB7sxzTL!ayz7Lh7SehJ2yCbvu;H^R zfPWA80N;Th*JB|xlKCqqs5SF|zlqhWC=~@c4-ISvw`_LJ`J-}9=UZM@i!oKnPV=fc zQ_1E@Pw8yRy%Ef6D)z*%uiXyDzgu}L23$)vK%&VP_?}+LZgL4z+Wcf+lM2ECJTPN_ zSMarpG8R0qIb|Ak9vVRy5g~c0lP$?QGLgd($7k^&^azj%vNAfANJlp`ue z=t!J1*rg7<5rVtSkP>T2c%+5O;g~>xUw~uj5h8H}uBJ}B2+zgU$BOChP&HdUa88yx zqA|zNW>XQ-D5E?nGo(luafJt>6FTBbT&X}1xI)kHG*cmQp?Ye7_reDu$f*vzLI?Uy z0QqD($p>nn2I64e3r-y97bYsYPSBg-!_-kd{9^t`=m%3UIrZKA>*VmG3GQd{_s`#q zQ<0N$Y=bfjYvKx(0YEaScgtY_v6vbpJ0SDi>gPIKFd=#Zrw8&K_H1||KcrrsF3UcG z;K^v>(d>2X}@2$>z==8VJ@dMS016Bn3+$LvN4M-(i1>_8IDJm=G0 zV3`mm#2E7!4c-ed42g)DVxT>DcMb%Hm<~Z2Fi^+Qk_bh`BGffRvc^n88iU}t0k6bW z65(Jcm89+DnWfRBD{=NS!5V7W6lk-8;qk+O*w_A>u`mll499Sh#d74oKyd zd)aY{xxUi)p>El&>`jX{T285*h}67VaizrMjOe;wYR{I-H_{`wIXFL;@4TPHi0am1%c)uCTrZ|c z%dw3fdl@UgwTgMIjhgNfqh=StT|1Wt@8t)T11m?-F|RdD)Tm^-1*XzWn9agS_uL3(W1#_dQ6%p^qB<~cipI0{s&eHDu=+`8Z3 zg0@-9Q0hlm8Do!+>~qsC)NXlf4<@zny|=zSHMkthJMzV2B6mvSJQP9g5mvWE+K z$v3RD2;!RGlB(k#Yk8rZk7qJTs`~VoL4Vjyy~dr1-GBM6|LQA?s&rbgA)?QYq=2rp zXH97+5eVc#eu0_1&vF5};VO8hT(Kw4jx+Fs;lpt=(QyNM-~|NmP8#tnGwI@fCWGOt zD;T2dL%af4DVMrZkpgGudV>y7Z#uvoelb7OJJXXnsSy0l{78K_|1^*0M^iMJ`61{= zKhjU;7se-(%-!@O{CDO~Mf!pIf&P2yMxCiwIH-;=dXh&Ui8I_y5xi0Tm=Q`}kT;EIM1*Hyd%c`Y+fNfaWpc>e(P(81*J3;b-}(Vt8-4^*0sfQqnL!218F z!gXgZO!v|M|9bTO-vQHq3H;fLam~IrJ?_~O?q33rbO-yIEhY3{z)L>CVe`5L{XIgG zLs!tC<8(~u9z}gChk}^%zL!6?*?M!svvJ69^W&`+9`@OqAC6w}e%5*!j{UedTGdfJ z!R@&oua&D3?_5HA(;)6q)7H=WF@CJ&KW$MYv19o83|+uK0N?I^pj#c8wU)^$CCnHd z%{gbLF3D9@xXlQm${Mdf2g4LLFbOiVdCuHqu}&^btXm`?ybMrm62UqUMu%?m7I_$b zi1S(G%<8}N0eGDpU;@;^kbItVlqM59-l=2e4HNK?_da)6KzXlX!nGmFJd=e<0#VsQ zB-!~JF-8c;gyjAKc{0k+m^k`m{ZAMWB^sh!+0tAC=#WEzJCebOQpR{@=}QJr>Arz7 zAtsPLEdpgg4_+m=LhB`axd1T6lx?6yq(}*+$;d?k2I`Pz4+QC!1D_ZG$)m9&JKze> zgmQW(T#25D)Dv|9uEH~OWK^U&prd+efClgeyaaSiwWueg_=Wn3h{gkuq@U4nqYhAK zh$e$N`X}`YeGr$RXX=wWQa9>E57Zmop&NAy@tF=ovHlkr5rhyir35DzAkU6K<^>+} z76TQ$5FNaj%`?paQW${2J#P#H5eN!{U;%yWlPLdg=11_NDJxDmal#3>Di&gGyHF(O#W;gHVM3kkrL zQX)8TikowIgaLk#vZ0Y9JNW?De3l`{47id>gCZR2$RTa=QcM^)Wg_VW17sS%r@~k?DUYcuWIKCp7rsG3X9adQV zR82D-cY=xYmZS^H=41k0g+D){CEXl(YN^YO5m03sr1qTZR_eAb@OLXLv}CrdkWc2p ziB*lTlGvm6pSUuaZ!OL=q|z@7N3DM1T<}}|BSZhMJ zRaf|ISFr_4dNt)@{C=FWh?hK_1a3Z()x1BmdHg?CgG2J6;n04-@0NuT@4etza>kMf zPc(d?d=+`i32Ge`=HNB6U(E#Nm&-%5yzW}VF}W&fWWKkorFy(L{y{5MjYb*Z%=M)?F z&cZlR-VVh8IXb3%US>y5Jplu(lP)BHqX5`IJ(H<=6?t=Ah>kqE4zx3HCB8Y%z}diP zQ3%p27~tOlkS`?ZXW&MDAeHv)$O$_R(XVZ=G zVzLl>b6Pxf`eyzf{A4}^|7t#%!@Orq$o0F)=so>R_2yscKhd8If6_WS_4L}FGNFa{@gaP)1d?Af|cZ%pzg0K4zPBQ`MTO-XY!Q!`0@8+lAgZbA`R?_^&cno@{o2jRt={@z;{3rSoU501) zhZSF4cwR~B0`CdZkI3x2tJt&JaySeAofSv33;_L!1Av(Y&4@>@WdK0yj+%U2OS{{& zsNL1~>GoUaDDTnTcYaITu3?(DahrZR>x+y=NYS)7vr)m_F+i32yHlk<1AlK0Tl0bS z&|_ZnI~CO3nq-T~p8xd<+<@2I)i0}sX%fFdGgo1&WHyPd82;!1QqBqo`~lL~R(apN z{g31){!q1#2Wq?}2WW0Y`9RY#8hcJZaE3x_w1|0qt}22~g^ICn9@QBCvguq_4R-eC z9O2O}ekVUU%@X({^at=`q6cjj(rS4~<%=))2Uq;3k^}zKK9Q5kpJG=;PAg@_R3y$pPD%T zb)K-X18(4xYF2UK001BWNklA^OhX(S0LTZg(qW)>k39dw0ynhDX^Q<4tAIYF{! zCb_}E2pN;2QPCKI&J@9c$&6P=(-pV^ppK>^@J@9C=rM&{5})+1M4&q9Oq{7Fs-s{q zs3&fepd0hv0`X)YlU3pP2r|_aB%jBlL;N(A>&}Ug!?9 z90DxD4HP_P_o`?JDJD6E0c4vDxt-x6-e@;^ls^Z%IwJWZli>sC97p&&@d3V)JsIJH z_+lQxGCWdV4BXD^;YRg1;%!NxHqM-G{42LBl0k>7bH2%?PDa@kEaOkhEp#0jIL{@hj} z%e@K3<1 z_QzRYVQcSa-(_A4EU)Sm^%%Wkt7hG*@_$x&y1YE3X_~UM8b>>@A=l~l+~*VJ4DiLf zYa)}{HRm)iYwixNy!Yv92`e1u2dQj)tS?#t`s;6U@r-rX%8KJNYY9TW0vpSIH2x}6 zX{ZW5CeT%OK%+`vr1|?CtjtT@6{No2#S9A7YpA6OSeNB4*J3_QigV5s0S(|KlgoH- z1Hl8zfUU&5sUyPraA;pfa91y~|7dq-!xPp#s@-Zk(kfzstFO|lPejw3RqG~~+4n;= z!_$1;#$~hUm6)L3w7qS5yc{LAwx`t*;?_u@CZ{{EMyj!eVMgEop=E82Z;j1q*qG^a zan~&Ao#Oy_8L_|?LmypQM{Z*+Ag|ue2pMKz9aWyTs$nn}lk!6oS7bAX#wa(@CK<3UCGXxWdTcOIC83PBLMrG7A!s0z%=8Kd&`HXj7J<%(Kufkx z0VFL+kw0Wq>|jUo3Y;A;#Le*C0U#0q_yQh1UH}2f3jYKK;EVHYc5;1XqT?IXMx#lP zoN!2l5l6$78VrMpl$&lQ3wklPAeq<+^kDwg{N4O)@w@q(xm%>Evv{Mwn4e6q@Pqk< z{zTnOC;Afs#viEvkBZcdI>JG8rYl6a6G!MqrS{m7UU5ll9v67GDYH zfZ&7ELN-^VXb%4XDeDxEuq$~6UK}^#duA{p5MO{Jc=4zN)-bIkzW`_F$?U7kD07Ew zTFJ7QE;%8{h$C?|4Afwt$*G&kOfNxZt{|GwDR5j#|8DUujc6=(rklkV`pNv&bU;!A z_>DT5p6DQcV4PMmivVyn5pwvExIv;Ka|1ac{uxg3xjR||^j9ZL1(-j0s*OQqtg-1O z@xPq`uq~`@H*-^uAveB7}_N_OuYCr@CBgfrq@{cpf8A zTc*NeeagxTXg!kZ5k16uM|lIj+?k6!GD}zi1eT4S&zlf!DG7#&bjWf#FS&qf-BU;U ze_HdM_&TmNXwB!sN7r_$2fRAJw>dQX^QY-GMCcnhtb|6?6d7rK;`s&tMNTT~Fp>+vECuFXea3e8~qv)2u7+-Jxt$dy* zuk>PGL^2e}#Q-C2U<5kI62O`a`qRpjz0x;}dwW?21BRTtn?)QU(UeK$a0MKa%SQ&f zkhG1-!MvjesLv7QPBH*aI50p@M1&5^&X#5xfQ~uR_+WmO92SrwdAt}&OGw5xxB^Fb zG6*tyDiDqAffL+`j)>GvIKl}9V*rK}I0QUFA3(I+np~h~;`j8oL~1dQNEML+k{zaw z)Rnr>pW!F!yWtD3H{&aLrC+HdtattqxDY>5H{e22d^3`~f_>sgGMs@o z!6}ImcmoMugn@cX*RnJaSD2_Hr{vf{2&I`O(B%|h4PYmBfZ&l-CXVx|z`s{eP!M|H z0wr54%dr}aKqm?8l7mn(=%)q}!k~*JQmVfLW14uqX_eVx=HN$}}Y>r!8ZEp6aQ;5V8Xc zJf&7iVWQB}AeXxA9i^D9$Q&?vLm9Qa=`lO`Ycjx`V%}$zcrB)_ssIg*?{jj`K42L> zSnt)dQ(&3vDx@*sj=4YfxX)Z*J@XTkbH2bd!maW`iOHR7f`=-LVXXzXj!0kb5NraH z676xEG}JFoT)>(>=Y7u()g^$!ePt`xv0Ch)3AapbP8en5Ek2Knn6g#Hc`l{K*z%bu z!6x*rZswMD_S#QXYDpiBVqlls&j9ur0r*?s zDLY8q<$vKZve@d*Jl%F-&$H|P9r4I??UCjX3t*jVgH^34#wMX!iGrBp2rPVdRHmm^ zc0zAr9-5JxRcw8hwsQ@%n9Oic41D6m7)_G~%-q9#K~b-Va#meDp#_7-YpkTcQ&16X zaRH*tJ-BA8H)>O=&qL#FrABHqKcqBGI8-JFQoGTyY(dpa9rZWOKy-VHo^lje9rx)G zVxDnMiCuNfvbP<$HVLwrr8j#^s;wL4g+5(6ZEkXygqw8kj3O`C_`tG^1B=tf(3DGbBUkGFeROfdO$LXmzpKbs@?i|Jw>%#XoAM~DcK!Cx&}@DGcF`8RW! zcjnGGn2dg+znKT>W_qRno{DrMdU{Vq=t6byU|^zsL4k6p%PC}GfFGs-Ks8!20g58P z0s4WI7{n`SP^XOd84J81oQOy}Ku5Ei>uTW$H|e`co>A%->WPTLVE6(!adp0tH^+A) z-M_^s(u}AU(_uGZP!d7YBqN?vUKb@ILTCEf9Of^*g~QoJ~>vn|LuV=%IsL>OSKcky=rnvuAXg=K7lOr+c?!Nw+)Dq3y#JPONBpE zk*CS6w3!MVfUbO92F4k9jpHYh+g(n7&EQ@s(Z&4$AN~3__|;!?GF#&!p_BxU;NOSd z)+x`rH(S9*`N7Bb*qv;MJ;=V$M{t4;1%)XL!Fi#zPpG*7eUnh7$EHzx05SL8ofhkf z{gmKOAZGHfw%JtLn9V$rRolE@YdApIH4>;T2T+DdT3erKWi9|GtEIaWk(mO3yptxl z^9Wiaf8ep8=JlHYm*8)KC+Kar%;5Ux@_*x>KjFVan`boUcUJQb)mD_MD(edOmloSo z^^+rYr{k9+%)ENTIQK&w9fj`rF~(+BMezDd1npk0A4R7^%dWS|D&MjR}dK>3Lz(B}%v z-01X!(1B3|{aUKv0NpZzk-@wxH6|<$NZ>R9b>+Ht2t;4v4@P&Gv5D)T&vLE}1vZS3 zCA=Fc!#THRmUDM=e>rLeoCqwz!U?lBUDA0ZMIl9Vr+F5W6;F=r#g&Ls4-U!VhB@xm zie3MrXVDW!T^od&7ZTr&rYfCOIQp@xAc0hKq! zBddCOW(CP6I+7320aiOK*WkPeh6(td z^WPV+-TI7Y#s)<@Q1KOiMm)?%uB{ue_Plq2NGu%xwV3%%?$WydYOzE!>#JJ3uSe5_ zhKmQ$W6tdR+^9!d?*}t}xdtoW|GY3=qWPw)WKdvb$6woU9kO-Rh#pQBE|rmbo-n5l ztpkP%5lBU7Xkmh4Gz6BMfY_F_35_f90L^%^4EO7MoU0iUtQ4s!C2Uw*|Lc5P*k{1; z9!G4ig&ynIICZnw{j9gzIX=dUx<4V{dhW;s+*@_Nl}%pNU~+QdU-WVfo?D{2=+m`J zE=*m@5>2G3S@@vOp>x(_t(Y&!MrNT(8Nqm=j)6vwMdc#uyI=!3D!5RD*{A&IboC&$MXy&iML4ObaPJgrL z*}ld_cj{{1na=QF`U3wneWL*XM*WuZoLK81dg>E?AWrZj@eaLYkIa_9C_?T`E6Fnu zXeK!*Qer0Pjjwjl8^5Ur@32(qFP2kP4BkBM?2{+&mz-#m# z6xF#~q=!KFYve~~aJlQ4nr0|M0=^Ty#+B5Q0Riuw&ZfMQ!Jo_-@)*D@zM3QWJN-TQ z8{IAT<~K_#=~t>VKbr#li|G^o%>?Qj{I`@-P6P_@p7^8=@DsBR{RMK(p!|jlmpNCc zVo>Uo;Pz8USJx<@?kbR7^^r|YwTqbCpA+S+8_A)WA4Shv*aXl_M{Q`)c5N_D_G=ff z*veiCjK2>Y*6#Kj@b4<-0V|2pY%g2R4{QNl+XLH5HHXOs$w;hz2L7z9N&VC};P=2M z;9|#Qeg#o3j>0cvZnH09M^PzrH8r#~0uKKAH~iIK$I}1bG6a%Gu<3$$0>1&TsH5Yy zI0RhOx2tM^9SXwoytrH6?rq2dPJn?=x2XxRcSG?&rWbk*|fxF}npz-k0_KRP?1APALO_pBj=l~;Gzx8P*6ezD&$$OcMEG75+&#i0 z5CPymqd>#8;6(IWQ1m zIV~Gm*!>6cN+zfi0-2x$Mc|Sh|CK|AON_8YXLiiTST3xj2)szwVte9QdN`0BQZB7? zHb9Ml5VsQEu?xw$(exV=e zz4_H#SqBhwV?gfnGqN6ZRRWT{e1_%p)%>rk2sw(mP;L=(>Z-1?G-`N@_bD zlvoNEcHj?g;$^vCYF&>fL*&+!ne#}4O~0|ot6V}w^DLpw4b~!`dEv9c4RBD)=}0>x zS%KY~h5Iv(mMg*$b|yX8xl6Z8C~h!oRzY*xDGIg41G=q`_e2k^K2s|h2O9&WyF@3g zBn3ZT{ywC&-ja#$8NoM@+?smNO6s3jY<5GI9{_`fMmI18ZA~`)Sl-N`24hZ|p#gkb zUXqn&exYuuCEheJn7b4%Wh;{gh|62zcAnJcg`fZ*+p`?*c3F2wUib6Xc1iu5)eQGB zNKo(ZbXHc+whB5$adEozL=@H)N8 z4`_DvHkF;t&9mCd7b&%Ak+3q03RSmj&Ek^9mY52*#df~Sl9kua4%KWLDi-5)c^iYQ zG7M-2W7O7^`j)G?6bGn%7t_jH4WaY;kjBP~X^W=#OY((#7Ch&_*h4RXXcV0!7?fBOpo|2} zkuGwlb+iNgd(we^V(7`9A`OOv=k!+%hzEEk@0^Iy`2%>*swpy%Br&Fu{D|D?KVr2P#k_yr&|R322%AFDO!$`FbkxcZ(a@d(qblH-^@NRRlI z)CC1et}>D&4jCLV^}xkkL5HA@{*C?;{LC~&PnKxu6cU=nd^4A&PxD~ul@9Y4(}%g} zz3Gik_&`Ov8w4kGFol|_5Gg`N1;Qyo5wiTIDvfbr9zE0lmx@4YnLEB10Q}uzel~Bv ztA{73L{(XR9*fs$_9$*l`SW0)^#R+XE4L|?PX^|!V8!XTx}9^kt8eiBto~;eb9f?J z?KTWx?>Y~_u?}5KmET{9|3z-Az-X`{b3)kScCVX%}=rTQ*S7B`e_Ol)s}_SsZJ{c)5syb$5EeoJ6)z&nr`iEo>PvQ*0 z%3q&(iY&>UULgie(ZfVgMkI5^?m>n7U99toQ3ym(h8h9j2%V|1*pdJcO&JCqt4lb6 z18~lGJ~V$Gm0|u(AGvK~_ z&Vq2H&g3YFio}%?YH>xTV(X7F@AjlqN9jtvg4w}82M$GW07iNu0(pQ2XfPz`4E##G zQWq$YPF|=Zb)bKl-pLUz;*09(2O?z7ujxPx@GJC6zf%91_>DRhkXVChWcr=@l{!EJ zy$>!!q)2BD`?Z<}(Ef`i2yCTOK{olZe27+`conA`c@9JXUFN;)D$vzgk)OW0T=<|o z;1`Eezk^5NP3na!u>lsQHMuNB@rRSxBJ*9#nhmmF*(kr)I?2V$INWkOeI?R57* zI?zc3#*F@hLtbc!H6fs|bwmfc!f6u7-1+7li|H^mWn-(-|7If~&-xu&p4dQTKItW7 zw`>j&kI+arSd?-CaM8;YQ?e{F%7aGrf=Z4q1;1v1sAAQs+{J(rp(0qS%sS2KCUDY} z3*fr{W*w$LW0oBhTgy^Md+t-_xs!^VU=lPS=bKFP)5b?L`>076Nt@L2W#Z5PClgYY zLmtpVzZ0q~(7@@1dU#4saHZrzl zz~de$+#;Ln*~-mHxJelhH^%!9brp+)nrq_!qDJwhm5s0Yj8g!zT8?vzM{|+oJCiQC z6@R+NcUbw@aLXO?E(FOfg2Nuf|4eUiYbvr{I<3FEfbF&h5}SXK`rZh`wKagj&N}ZgbN2x2!Xe>mfH}KwEru&$26Lsxe(H!kOcrm@NiAq3rP1<= zFIYq6K2%UO0R18-LjcE`Hr6gjSZZao2z^~Vu($45(?l2G1giR6U$6N=OEnDk!S_us zAUvPGjqqnxF1J+H8p7?TjZiV_MGrN86fAK>6&a&yB(GDma=;`O!S7 zn$UJN8|f4qQ_cO+Dx$Si&|yAQ+rjXh6F9X>shM6h;n)k!0k_<`YRteQXFfJ0_oaIe zrn}45!K)v#azW zy(E7z3&IGTp#gBofIvCb8A8y}By$gbiRlvb5>kx*jcE-275oxX2;OD%zd^1CrXQvw zJ(|;U%jW~VhaXHo;KA?$eVM;egkGU9%Bx=uhzRd<+#K;jjnGN;_-I)fnR=8PbueZ+ zNVYDuoXE>WIjxu$bs*`3GA}YfDZQ| z;cE6Fy+|*~gV`vYfuXn+XX=nTDj1GIGP(IB_$8*7pcvA(=p)lt@JsLzQa6oKf+M6i z^TGTF)6o>^G(VWW=!1DrKfr&O0{q4B1-+S*dWF7FS2A<=h#nrG1icU=bt)@1QT~^_ zk;NvoM9Xgm04x9ZxDBicV%V(FS}}6#S+BpE-0=VAKfHN^{~!E^KsOuF>@4ZcAR&JQ zUHjEJ^_Qr*k&gzScW5Phb}@XqBj9s6rFh;Zv8-|j96kY1?m?HXxO8=^_(MdRySD6^dDzcb~283No!27n`U zq+Bp^RPo#wFp>cXnV1iT+1JN&ga9j-KUBvaFHE(<8V*HIP%gp?Jwsu3l@N$P_5|f! z4jm!^1j|984zmEll>jFUIR{vYjFivrMuR@`Qb$TRTs53MK`~mo#{z?CZdZE+&2h~$<{ulbM=0{VaJ2ApRr{$V6&j5gsl>xpO z1GJpdyeBDEW_z{(%D(@Ed0k^d8pz&tp$GA$;%-NS(>@`=e|1a5ck`q4MjMEW+dy^1 z!6CSl9SP&rk*IHEG7Vw?BSq5y^x(S~vV|mhaR+q*19$}^ab;;LvZ}+}kF>0UN%Ese zpf8U}v8%BP)LkKvCIwj zGJ&b!&PgH|Z04t@{9HN&nB^?(92dbrm?k`j2@3E4I80zrX^ovQiB<1-&SqkcKpBgi zG~fBDiQCNhJF0@Awxw|JP_B(5HFXwNsrO=ufzFm<*_mr{1(@I=&&h32!Tt@dY+T01 z{zsArP+a=kD-VcrG{=;WJiE@+$nh*rXsRH!jjG^;RbK;R5*-kLZc61jqxBiXzZKOh%FsvF@0%2IbZ5n z_R(+AS;Gb?t zS?|`451WvO)U7)_BQ=xs#lt)G@iv=@&*QhuZXO$0cKKJCW^gt`?aJ0wL){iq<#B5! z905zD)v9;UO6SpH$ExE5TX<)-%S0}%>N#VD^8=-wxly+<|9fblzuAxBZbJJ+6_k}V z-xJ_t>-N^x5KceIYrGW|W72|P;Yc&Z+ZK0-up^kb>44SbwM@xEv$L}npYP(9!2B~A zDBRr17Yr|LjXkFu+Z*_Mik$UjPIVi=t{JbNUWzUE%_{k#^&A+%u3@`ZmYi;qgTNc1 zz)IkfWv-gZbQ@DuE}5rVIw`e#at_!~*VS(^g*!%d{cP+L*^L zJq8ya?pQY*EH>WBI!U%M4%wWH>e2qs?YgLoT#Q;gFRzoiu04PhoCu)gF>|8@zzl?Z zBzu_Tf!2W^;0qMQff{LI?oiCZi8j=E{klrxzde1dQ-NiHKAW5T2kD@jC>>gghRYkWDX&U^0P+{1^&> z5EzwdLsl(HIm&xdupsYfAK*(qS;UbFGy*5+;Mt16EXObi0zSb57%>I~BSl=C-;I#J zr*t&)V4u>Md{CfBAp%FrAhVLTOcTt5B^k~k9fKc&NAquCyhi^B={@?vk}NSKSfc4$ z@PDR%n*Yiq(~*9ryXlMi8@QPU`jI+kUK9Nt`XCa0EP#k2(NhEx`~>~ZJhY2pjsehu zG`c`}Rwc8xBsV_=SKo$kX$GfIfvW%ipTBY%(9BL&xyra3{QIXrSM-0AKK~?a`d55# z8&O6(Vb2dua_%!8Gy<1A4J}Rkt}-N zcz0%Yhg+~kQv6qje|5tDneadTSZ>Iz9Z+Q(%w+rqpRiT6qAK3Dh6u4r7+woIJ7iN4 zsD#|KDehRB0&y;uIX8)FD(1k<}Nv4L?J_vxs)k%HvoY^e!psjgpBFKz|n93g5=pl zA9CWF!Fn=Dfe1p#5M=oMY)hmci zqKB%|SDr?)_VR34d(|GuXB58Vhx;OKR=z+dr73r=J#!n6{ArNDBB8Kp1fV%Opg4II znE`hoYc{q&@;M229;Y^WEpa!32~RK@+B#`rFRG1M{mM&ZCSU6Y2)-3IHl{sdV|G80 ze?!TO&-DLR_qT_EtwIH7Yj1DFLbuSWHvA%6*5qxGa;IM8gjTSCAlo(Cbdh5v@2v9B zY>rQyLVRWuj0sz@%D~+mjrhidqvc)hdWLYr_y|9%oYqER#C^Wc>~z@bA#cg8dzZoO znr{|H;Q=5@Y-K6m%y|}0x>%|@c3|Q?8(Z9!THlxYKGS|Y+y_>X9*xq!__dYUn}cJW zGikxQ=LBU=#=%xlTD8hzEy96weLA_E&v#>5-oVYCR}x&C&vbq^LqRQD^YK-v)`I@O z{J6`flN!2lvr07RzXXpDTCZoEe;)o!d7CVT?7XWf*8VpBFe?I&Oi{F{J8AcMYuxF) ze0Hme?>t!I%@nH6W9EJ(+xdlN2hdFVUcA|`bZX{OPjl;5wu1G&q2V`7dA12Y1JKn0 zRjTi0GIJa2?z)WsRRX&*ubPeNvEbt~G^*^?5Y?en8tF{=XM4M{fi1WwY}vZ)V|ja{ z8JHDCc72aNOGg)xm0XTJmK?KkSlha8xOD?yogMOKT&&d(YwK?{5N3I<)i^cT((A7| z&csEwES}Kc;L%o$EO>1`&k|cc3VFJ71x{6J>a^fF-pU0y(SZ_1aFEFGrZmt-;mt%? zFNreB$Rh5cke8cdNc^B3v^4*Jz_fPXPt{U|}% ztfr$9H3CO?A|hOc=p-``=rtZehirNTHTDdn(1BO*G)-rvKr;tO$sOnjfuk^hl-?Ky zrIGfgY|fKCI%U+6EGx+@A%?jwgyaYJF2rmK@IhQgMl#TjAc7CcQ}Sc9nDR9$0#Pu_ zBZ#t?X7Z>$B#V9x&X{5tJ^C>u1pg7nXpS)U<_Aj*9?jpFKB$2ynnZsw|DXWB(hr6& zcv;D6pwvN$8mS|Y;E_-vLdqZ-df=!rAEpiB-+Jb?1AtbGwfyeC```G#|F=&S87;U^ zt)c%Gu)Y-sU}Z4f0Eb#*Oe>x+4{UopuS%fKXk2;184A1LKIrt*!wK|R| z3Oc|dYl=%{;Qjjn+?A^Q^&`7S{GR;+z9rys>tb47-aUoVC|?&V*P{k!%`- z0{3UD?w2eEC4gdylbBJIjHFv(<5zpjYT8-SdTYdI@yT%(dG5IEQbs7CcSu8vqT~eNfjPQB9hFHWsXEB@!igTiD|KWJ2JiqJsIht$jo?Te2nq-2YC1v} zqK7i&zbBjmd>}5=2^tL->IHJ@75D*M;IEd$4rD+_$@EFRLBCP|H&twZOn*!Ni*%+A z^bdG%dJl>QQNa|co=VgQ^#p=8`*uRH_JKd-iFgO1 zFbEy9x|9^H46(A1NC10g%$*mxgUIHY;GsT$mmE$l9m(RLD;RRvwno@tcIubN0gB>4 zxM;$VtwCJ?#&XAcv7(g^;0ye#^rRjE%O3m1X3H-IE`_X^9YJ6{VH^jOC+*{z_W2;hWO}|(=27>A&3Q{JsaRG-@w|c+n4y@ z%CN#4#HU$5;O2FjqmtZUjLz;QTdKx;<$~RmI5&l%CcJO@jy0s()ZnvIf}7V^R5S)* zw}k~4iN1T;Qws+h-EaezzwnHC6Nt|VNV}pnmu$J!vudmz18~9jFHcRX&(6xKi?eBXD-T*(8?BPI)=P8% zPitdS?UeO*7;Sgp$lII0kkrCYaP;(?eEuoz&gz=$XlIcDFh%ATdQJslZ@jRGB@8_c zm>cR6!*U0}C;>*i5$C1Etw6$~DK?@NLezSRR*X=5X!km#xLWH;~6jghnn?RKEyr(*VsZ)gfjL+$UzC6AsK|{?^xMNX$r|s7+ zKohS-a6P~v}~=o7M*z5l(ZrII+#qx6G}@JQ=DUkL+r zghyD3Qe)`zb8IH*7-BRq(TTs182KL3V0@tka!7s*{_aweYj!FUA*m0LX$U$7@1h@r zdq^KPzQojr(PBz5r7#{s8f^Rs{s&8aNXh)w984$kFX}5yE9o7T;AiTa3Dq~rv-F=j zL0`;s6ggQ}QUC_(K+T3@iznNgO12pQXl?s5fA_!sCunQN{eS&e`1k*M7jACL>J`#` zpQyfq)Nj9a``@>Nfz@2$b}X^^i!GaeHL=)a+28)m{m}@paRIk0a|i3cGnTmhZhK*W z`Um{+A9q^6pAA9b6Lg24qRBr~#yqAe2s}fCPGFWEhV6mwJtjEkcA0l2mG>ti>)M;! zWbg;g*B;GWz!f|^#r3(x4DK{pYxdhMgWhLV`lhghw@jMpQ0^MH!@b7p*0WcOasD2$ zrltJz?m9e0?cXByJx|ioqYi7Y|J_=gzq7e))N%t+3+p$W8DPiKcoN2Y{oy9;535hF zI59`yUjRQ)VdchRd17O5qRlLFeP{Jd2MidPxn(pkWk>XEwhfAf z#Wf-$s?5+}ER3`Qh90wSKyqYA8dYUpO8P{F4Divdqz5zQ!4)}0$Aaj9UbzfIHla<> z5$J$3Nhx8jxHI%RIr3-5!w3X|&;Xo(Gw3B)SWb*80j(->B{_3LK?6n=bDoif_DU!b zUG8P5#OzmwGj!mTxa(0_E9u0R zlNG5DyLleN9uhn^N7-g;gkmumQ-k)D@n&h~tDR1Hq9wpn5f%`2pe1E_P~1%s7NvgKf-0eJLkCv~T<2TzZ#@Fac*b1Z~~4)*0Pni=I4zMQ(8U zr@_9@6O$}onmP>m0>^L5ZECA1tH62=zut~})qc%wM z*T~KqmTefI^NM?u(Zp@K!N#(4n|!fKO4xvho+#*b$JpnQ??0b-O>7l^n{RWopl?YZ z53&lh#a+?{h2%B|7OlyOlniIbj>)bYtwsg%}t$Ui^TY8lXKG{a z+vZEJGRtPeH_cMF3HL8ID%WsP8JXBDikokGF9*ToFE=XyI1iRoJE!?Xv*K|yB?>Gi z8Mb_)Ip#%cD#wa5E;HW?c$%YQ=QfXk|3M4n=@fZNW;P!Dfn6 zEsTnLk9M>Xej@~|>CLlVupUy`JF83+r%6ey?8|8|vl`(~uM=mRrV@J)n)8v1=X!Q0 z({6so9+mapKyDezq(uOLFbX6G!AfCGo0d!YqtC4O{bHV?s<_7`u?JVd#V2ZTuemV(G=wcat%l%#Hrd{3Ba~QX_SspP7ki-VqMZR`uBj zI6@;e0s}oj1JpqmLeKyls88?}Ry<8}BVZUM3Il0E0DI+rV3wmenEihoX%GW>Bn3N* zzloxH(CLIlsmlXpIuQnGK`>|MiG}ut(OxBQN_$JLJ7Tp(i5QAF~_;T%ZKJf!Pb#=1bbF ze0Kf!xzUX56-)P}w0HR9{HZGI_A4*zT-j&nN?b~O_{iL5{n7ibL~hkV-0IF{kNV>2 zyGQU0yexPdcvPuwSSH?dc6ao+n-OVG6=&u2JaEv&N(3=6`$ZOpR;I}t zG3IlYIjRRHPxX~q69pUy@Np{LsR%^iOb}8#}XYZB0B+2 zgD=(9!2!4$9Ej2ZxUgt^56~IviDMQsRE~3gS+O{hoQS_bU2SAC@|%tRLw+f;1Aagw zWdO6Pph_YjQ&B_0fKd#DsLVPV>b(D$!&E5)qd-`1I@FUO5|FOM2`UTDBGd?Ef(}w| z=nY4CXXvFPF+eBiKy*N2&R)`$eqs?PbkLRPs4I1)zJOPvH(g4wur7vg^aJq2^bLvz zL09OU1CuiQ$P`FWMqTJH^j{4h#CK{iolLK$1NA$V%n$M}s;6FvKt;-cL#8_riMSF1 zzJOTW@F_&%RIKnpR|*0&NQ8!B*dmjT&=kCv3-AEdHJ7B+{jJx39>LiuOGMV1}`ARBm;P_@*R` zsJwCs!}U37gUkdL3K*(xAb;{>X>3JipRj@?JJ{6#Em!8=RWwiV1uR-Bv!OM>nB??R zd)PXd6VmCLOq3D)wko|W1)~a-8^Tm1$#(QV*^Epep#XTF_1TO0f zJ#RFjH92~I5ta~~>xC2DqV<9c^+;y6(Hf95> ztKt52Z_|0SE0SRAShC65-ugqk`WrpFq<8AeCtHqZMBj@~q^9ytaD0IsS*jvxrhX$r z{mdJhn8=vK0TWthGZT5yhNUJowAI0&@$|a?s20h}Klv zhI_b!Kg!%c}dZD{#Y>)QY$VA6|-iYtv1uv zDXu`vAc3{7R1-KnS>+T3qGoiSoHWICNt;V;)hb*)x?atWTj!r;MUY>-l|d|Sxh8aB zO7xx2%Cz+3()xg4eJ`ygU>-9lHlM8Kc%{Wn*)@8;M$pp=cj3*%(HA3usU(=Z!Z?lh z8j@SFgx0-NU=@;a{~00v-dK_mmgH%|!6=O2A@{uEvJNQW)ffEg87!qjofRvB|+(xhmddY$gfPxRf ze*{0oA({_yv@X5H5plf4VTh><=@`;?^JwEsNLTZdrOx!pbTlWuGYPs_dVxT<91%wK zRHVM3K*b6l9c$K{69?)lKd|_-=6c--mqH6(2u?(B6b@i!bV0P~p=MFzx|qa3Cb0vO z+-Lz9U|AC$%3_j+x|pL|5B7jbhadrE zC4C<#%qIpM`=>ol20%Y`T1YA~< z3Q(*Ppd%EB1UYmduGB%<;Xn=r7Bhsf5OA&r09cO!7WQNHmVf(?=>7|sgQ^37zB~(m z`ZIv_3}A(8uej}-=>LkRe+!yF^t!nZ%C9cw_C;<9_$!M2!|dYwUOk%>{uO_Ja}?1E z4sP`mo0^8z+x*i%;E(?Y?vZ1#Q~T*r(YV*?;68_Jt2)-x6^J%j=L0b0+?3_faCdsK zXI^^WKWASGw%bSFFVFNuB=TykKGmGudPjId)v?DqzxOjX*9^Enyh&&i2U%G`*k>PZ zNR2sLMCxazL0Y!+*i2p9)KRW)$kKN{S z>QN?@yG=w^-89XOG2{xGYvc3anU@aAiU~g&hu4OexiDp{6kHaMaG+HtG%nk-(M@qG z&qUrlF-V+jHcfOxO_+sPVo@ttA%HolyWsK;X6Al`Mj?S>J`>w!q>_hnohs)XQCYHu zJzEhfM_6YJG=q!;bY$ig7Y~+^rNHi_EA6_PdQPVlqV&T z7^DLgghWKbp@BMzZ%_}oA&4+srAP!*kOF1K1SH}I{6xM{BYc3I_#_V0EAat+L9c{E z-=M!hAJiWxX0vv9$l*!UnK}miN`1h8Py>{x7t`O+&+;GegE>q;%AH*1l>h)B07*na zRGR2O4@6*zv+A<#3O!*;NXL~!F#YH`bz%HcKoJU1#m^F-W{;|{D+F4g#xdT&=rhAD)%8FU9*=aG!i3< z;098*3(K3h2_umNfq@gNmXewb?Hqw@&4$xWsH>zRHo^&%WJIcSlF8pc?^j96 zS;wjROw9O$npnHWbiOnyb?2PD2Q-KGX^GoveU6FXVa6Xdh=oEasep9a1;9PG2=KgW8(3bAdi<8PGbDG;iB-HZjdBYi~8t$eUw<8#nnoVB7}8 zuZ>jUJ*Ku=ii9ow%5Ut;Tf<^;reLr-9kn(-sG521u-dU2)!;^d@K6`hh*nliPdq1h z+^aJ6Tp_h8(H1q?jSKVf5&3qLVe?^m{WQ6&xoM57)%e@AvGbGqq}1!7aSg&`{JFGj z3RonidBw6@bx6}QadpP#dp*;A;@}DkR1dT2Q&(5u;L(sue z7yT=G-;M8aOmRRQ-{YV-dQ4+TT^LU`eh>bOC8rPOZ%kk2U*>NV=>a}k*1)=z!~$KQ z-{5D$p;WwpG6_zDp_2r;<-wJwVt1?D^OP1s0&r$_E@C1NP|6nnWe!jlGv6V7B`y)x z3175>N-nO0CL_&?{KiQ2@|-H17<%dt66w7(O5dO!btQKeQ-Vf!g+7z+O^2Y)(pU68 z`g=E~I3f=3aa0^Uj$=$+NT)D=`2c>CgD% zKkln+H^Fq>rHp95+TjzGKklONd;<61D0D~Q44i#41Q& z`b)*BZ^0~~Ca$Yjw@l|$E;^BsV1|5X6{V?@%yNM-BUjmFUofZx`@)_neLA!V^N>wr&I^^71qq9#Yibfi2{8du>%q8p;OtROYtAz zs;`6cW5xMa)Ce4ab53g#NDRbLg_Ir0hSDWt9bFVS6&*EFozz1o7B~5!$}7tNfEn5M zu|S7XHZr1n)>Y7*?7Kjzo3qC z!inFZ-=H_@lMC)TjA(cn`dr zze3S;rUN>f1D@b#%UJ>nQkSzC2rqHURWO~gY!$H|<) z;Py#CI#5SofG0-+&Vh0d#uw;7nWtVhn8|Pff^-Cv+m$#HbQhS6Kg2-mpcep%`bB7;D&Cj=ccwM%e1zyr`z34xw9E(%ErIufIJt>*q6d6f(dd8kt?bkG4~ z<-A{PG651LST^J}oO++n+PYapb24_iJ_V(>> z?H#VmDsqA_v?Kyc+YFHn9{Tdzd-h6;Ygnf5a+y!G_{oN|ybuc5>`5{?U(du+%~~Jw z5s zD|JZag3bOj^()kNdiZ<_1n^oj0NLb4b3-&CHS%`NGK-0Rz8L1E=EpckTx5{FKy8iBgl%OU)-yew>6)?kDi75 zU{HJa`Nq+pY4X8bD34_3p|IF>0?e2<2FXc-4kF+^_y$TGLD2(v^sG=f$P)O246cs; zK{FZ|AYGw1Ii=q%{!L41FoPMAX&A>YoJXf%#4FXCendY9k6j8~VmDq6qj%}oF0tzo z$JaRaHjXg`8@uR%>C;lMl<1M^)pRz!!bv~Uzo0kM0sg}>(L@(`B9HV7HI}SDWscqt z$W1PR>WPd9sHBQ9<=DSgWK`5<48SOq&@n);c`ZwhnT$L@5PSF=C~y=72Ko_1UCbo= z0S2;jeb9|Y8W^t98$|i<(%)Fb&0;FqIE?2maC8%1iJtmlI!BMeLzmd4OE>yq{IyH$ z61x61j(r?Q8$(Q;jUoCcQ?QgQMfxk#+4O26{7Cg{v^bhM9zzU0BG3!^T z_a1m%x*a`0!&g6Zi@$GT@weVYcLo@H7jS$1D`NiUU%#(K*t?9);Ns0$!t}rY_Rsj^ zKi$O{H(4Wlh_?3U0ejRI-fa!`VDx9)htS$Wo`J3e|4#Y6yjwGG);51dE&_K*{kZ9? zcsKcscSjERN#?$Gl-9Uw|I3>m9M7fTtlv~4{hzDlu_zSrNN|uVnH*~JvzAJmB(0Vl z_E3qt*)0E*QxhJ|ke(S4-Te381^nxXf1j2u*D|1RW!cLW8G|>FJ!)?7(iHCI9`-W4 z$K;FM_TrLw!+KG%t*Ersvh8IMUYQEd3TGuE=Es&uQdgDV17(#pQjWIrV&D|uS-p26 zvKv0nq-mp8kS59ia~J?71Jyo6VsG z>WH4`rJg$F++fJ53;9X?!TiN^gnNy#?U_h=QGd~aRk?57t z8x63$P1n%lg;FPXxUM{u%5ew<>{U*AD9`WY#07|<>@5nl?@K7M?2;~C?hyyfL?=wj z85&CN$OS)|lfuq+E5=p^250%iCvY~q$m zaPh|VRDD1DC$t|~o4B|&KG<|fT(684OxW47nM+D9wo?{nDaq{}yX<4QR4`!QcK=S6 z*J9lEL=qaB1cmBT)?BKd;)dM!r+%0pr6*`6*!M!+5LK{5p5kk(X0&BSXjV&2{_kv3 zqPQS^w>!Wjjwy+^m4IgFj|#vHZF~8r+ciLhfKM+!jc|tWsjW)4|&rY zXOY1a%Tv#OFo)CDS=ZWkzQXIXaomcFo3RYPNxE+T&3;q1K}Bmbu{S^x;?-$fI+KOVbz3hX==Vp22i@e6A*6lg#{=MN_rtVrrJHjSukeQTrVYMLSw zNU@mRy95WBXc8kFw6leGTA&7aCyy2`@`EW#^ZsY%!j*Q7-Y0)e{w5`91Y*>;;OCh7 z!>Ge(hf!TW9EKlV|K1Jg#$W?tVn}@$PfREC-z^=OlIh6wLVeP&^b^%Vq9@8~*smD~ zjnDzQP^sSX2_jKk5Gkvef~p`llsRirEd#v3tL&8q_Oqyqj$~O>tlZ}_=F%S+X>u4T zFp&gJta5*$XbvojfS+ma76NUcI(U>{EF9#~gk~|_>?&Moee~DlZ^@H1N)h-Lbq?Og zR95mZ4qgA_FuZp?x*>EUY+y`%NT)EKn0_}uSV~Ms(+krlv%9W$l%PbnLb8)VG?bNu zQuV}2D7{J+bQ^1KV=1Q;h@p~=ZZw}-SDjql>RKEEVSI49> z|4jt^KJ31N$gz_Lu!)uL(eUqI%%+)7`;~`b0KkSX&>iCc{jo%QCI9x%)%X8-V*cJ) zziCl|pYaU5A9{4hiC+6{SE*6Y0D)5#%-Mbt@1x4+K05!i=(g|39=vH71=zROPu?Da@E7kXFe)@vEOiEf6eto zp5h&pzkR`-VbUKX{^wut_uui4W2s_V&!mY?GYdqq)&Zy)XJj(W)aZ~?W4|PHWmX9c zw35QhWuw;mHG11~S@}~`;|Q4{3(Kc@(UBJFZ1Jumv#*M0H6TTBB<5%_BY+N`al6PW z?*j<$$rD_#9(aMW-K9jQx_TESfb>xPVTM|TW|MIzlFH=CimQG`W0AXVAVYtaN~q<#=5;8Y)Sh&D5E`per>R4#XSERO;7mLArsWNDZyW`$y_<|M87gaLU(2UpG!Y3wly_|@hBR7F6EBq0|twl{;@DwZew zZ94u~**)uHx#I4^BI<5V;mot3-74fE>sdF(1=_EX7oaT{B*$Ab88p|c<`7#|{j=0U zbv3n+tIdCOi5hGl>RhWMu#EYAk|d5Da`&zi4#A8}*-gFH+z16^v3X5o3ul!XJL7WM zH+2{{hD)ur;w|TQ@mc$ND6*V`t&5?(+H~(znCSW3g7c`gRs)S~3syo$Zr|9`dafDk z`*qpF)UVYfW9B@lLfl&4hHTgP3Z|C>fUEGzrz2++1u>OvSjCB-?t(& ztM)$U-gCRjCIuU$4bmVyAV?T6U_iEDc%Z2tKz;)0DeRHp2QUP^hNm7F9tZ{u0|px$ z$h0L(J)uNW>c01!vv*Zy#`-*15t)(olU0WtG`sKJwRdG^WW-wE`hFa!^#4{`u?kSV zd65Z5+&s2E=1UN3ZqzVn<^)TlKV4~Gu6Zn}neC;9m$E31TRW5{J)6zYLRKdP+6*k& z)l%AlA2-H3t6KR#K#7RFb3gTHma{X6y>92ItMu19@{awm4LzX?c|6(_I9L9@HNdwu zVz;jTz=CmKOw_bWmzLM0%nvTCndXXL6Y3frK$G*#Iv?Hm##~H~7Bv8xfZq#CG27_t zScM3z>seKEpaqpyGnvL3^SjyZQsckh=E-~GQPb*{)Wlr-n#8+$M7D!E-#+j8vin<< z2dyLCa%s>u*oMtaqU8{bb&z0Yoe4y(RO*t_Ik7EdvyvZAWx|MPo*N z-@7U`@G`1gjgq{%x4eNw?9cnJdv$KV&c&}%Lol%(4qy^d!X)UmJpnkgOv@-5G(|qZ zDwqf$9iRy?*hvIaqK`7VA80~`r9M05qg?V){;~uP5x=2L^W2U0L!X92k0}g?(3#F% z?uOj;IS=Exo6ye~Mhs(4bJx$=rq^!%YO|TomIw2Wer6ub&-4S;!%x(a>gb8eP>-U> zmZ6j0s85hVIfCyhY|SG7LI<6QmujUc!eRg*YY}Q!q(m6tQ-SzbC0U_&m1KqDD?1fF z7kxE?i+T#88E}F@OiUx4vV*&5K<+IuH+Ql)-XVj(AtqWk&p(Vd^a+PvlLP1sXH(bZ zZpgXM=V3&>nRytyH0OSPwdrd&o6WQNV7W6t(+B3W`GMY3C-{--s6@|H9}yAZJYaZ} zK2Zi`XeK%oTU!>LyE@rS?`B+J&F5cS0DV$`~Y|2Sa7bvzl+l#Z&=~)&jWVYFn66jeb-cKR$Y(P7Gi?~)&W02pNsxgTr1Ga zKe|F(VVGTVtK3VaM?y|!p`)sCg{qxwSlb1gxO)DF@1aV`oxv~$NreSf!1NSDqXIP+ z*ZpI`?sblzB$jHSi>O#QU>R-^97>G^6PM8dOkju5H8RNBN8nw-1kwR`1Ey*~6rsHd z>WGn&;G_YA>5DABWQ3A+P#A{})ESuIFN6Va)DOf-da0dC5@#q2Mz{D{3N}D!-@OAe zm4T7$=_jEFNCTlc=>Y?(j8TRc~?ATpJ-eKec zN|MVmiaXF59!6D1cn2mB)SKDK)q#^y;Hx|lCz{9uak6BR+$VzIAiR)ppJhK91a+d3 zG9CoLN7(>R!kKhKFT7TabA$%S;b(zTN1A+u#bP$#O<|wFUh1iLr_lz<%+6tsBpK{$ z@#Xh7U{*@f40TSJ+%Z5-m~nRRpiCypL_t}~hABh_Bqd`l(-p)N3f{}Sn%U045$=_P zC3s*cqp6D;8_?=J!=b+Zh z1CN>nn%joKCKnadCBcbVaA7b|g>}^tXDZSqJRFg#;ejd%uI7Ar#GsSa(x~(<7if^` z{Pi-m^vWrr84GKx(_K5zt-K8tJ6S_88!YC2xug3ggEz+j+Zea0oG>vW`H zD7PjR3yD$-_dng5+~^i8(ilTu+D~tx$u`vST0NjG`TgSX*CWEtZKWi))O%hj4{)X2 zY=d^S@wC7Nt$ynlaYXb+aZ148X7*x!vyrwTt`jQ;;sfnDn5d&^@=@T@e7E=!-7@ zVOsN?7o8B>Fy1rBjrgo!6_q%@*#xv6E9LcHTxD89_grIvo5{iEvJI>O)Y4{tS&Uhh znUgn5CD)E(`G(u!R>_Z@Dha47a&@SonJ+*;FDIQF(M&7h)`q!X*jd(ShFCPw>$uuW zI`L+XZe=N!p@KE5m#dY3d`|&P>rAu^Z!WBDSdIHTU;-S>D zfU2}JGxXqCmKkV*var@IT6xzQbg)P6MA4#z&F~B()C)htL<4Q2_1T5&N@peWq$J2^ z_vHR-_euPY_K}7mW6A(JVFYILmriMz=fk97I=!5~3}YJ3=*HA#q!B64X*SEoJX!9{ z6a7Tb<|pWA{*n3&7euNfW;me`bQ9_gC%7#s>JTMTq4~|kS$eHvUJx#1XdvI4d?`Q^ zOL|xo^UK~OkZBkX&5n_Q#Yc^NaLKcrP(Y`%$?1wEB`H}ufSV4;L4^_(bm468kziPvHw3P4U|VSwJ3Mx>oi@tVJ( z%Muv4oi2M@(^fzB-~6vI$DjW(#^KTe=q5>jCpGt8-0s8AUjN&h1BQz+0Cgh=_#Ui( zQ!#K;0dP}-aFf4(P5i(3$j#xw_4fhr_x~6C@t@x>Huwafxle?Dk`9kuuN&M6T7S0i z060Qt@HMc5wO{z#<=^6tA^t<=IG^KsKU2d$EWmW%5b61wk4MZ8-IS&3cKqJ$bMxXi z=9QZEjDn=Nbzf1twAt5(K&Bl=MUURPR=*Jeyjwy$%IaPyV!Z?zb!9^xPjK5+%$SfM}=sqjC- zEeC8$W)*Q^E$7M=2x{RVe zn%Y<|L8~^|y07*naRNXt$WV8H>;8X{j zGesRC3hyN819_qW-kIf+WQ&jPG;{E)d~|k1;NS^5(7p=hK7ccA1hVikzNgF$v+zp2 zM-~8hEa}%ilf8%tY6gsYr6w;kwghB(*kcZbl+G7Gj?o~vi8FD8heK)M-OESd`#NJI z{0!?LIdhfIo759w?iC+;TNUupwn?P9vY`hFWflBqmc9dLz@#3KFo8i@3cS3N42C7J zON$^FL!AOfP&c*MNCb&9`cVtqe+CepCPiQZt*ihElADJY*@|)&*|BM5aIRVOA)RzCAG2kjF1LeQc~?)WC?|U@qLoGpg9it!Cd>v9~u$ z&U=iHE9W9&6O=>k@ds}j4)R>rPzzmQJA~N+{KbT!UaYF*ZJV005^OhP7;O{}JE$VB za)LHi-EG?RbUO|gPxwV{Xa>8b7;grDZE4!~6ad#$WpFE)X@&}$$GvlxbelhNkCw6t zyVf_bOK_`pd?uh(cj`_&qVGM7AX`1qQv>-e)1ZZC(pT&+)d}$856)r|Qn1lfY|qL_ z&l;7_0&&h|RG|K9F3N3c;TDtIT!`03+3Tyc9nWkC*Vra+dwsb1MiWSbeg{16-9zpY zot~GLU%oqj>A{6NJ;OICOYn$krR!0|TyvNkY`V;TxMk>XV`EEpi&v+h>IbzvzE#qp z>OFLDtLyo85k0z4$-irzqmAGTEglhry@(F1(xiUT-f`f0&MkQ7`B3 zhUxfndQ0PLKQhfo6VrUQoS2oIbTJR~Hz?CPN|aHeMtD!}3(DgP?^+;J4mi;(jQ#}+ zhRm|!%d{X@c*048BjmcmRK@-oAUTv9S-h1N4nf?^@;Z}Y0pxL0gppwZTwZI*#mHvh zAUM+;&O)>o5H!L@8kFd1U^jWD^>3a}?mtK$QDg7VogaqxDZdN7>8)4)G93?-4&!$( z=i@NFy_{at$bLkcnWl4^lVve8x#$D)8@+VG%blcpcu%is>K<@O2Ap!BCq_lTBDauC zl)Dhqf?QW(rM0<(B+kNNQ?6c>z-@tSiw7zM0Lt1H|um2VH!nd&d31vlEVskGH?}-WVYM@4x+@@rVE7 zenI#UUf-$PAKIegX|Gi7O;z`>*YyWx-~=3iz6|vjR>YI@gNM47CoNod-iwF$yPj6z z?^8PP+(XeLKcb7N%;kiJ57ZvGl>t!p7keuCV6A8Rz3J5ch2X+~hHG14u?MU&Na5yZyE9TP!qFF8HiQ9%Jz zxpDAS&B&|+`Hixbkqz6VJ7wKWCGmW7kE=TFY+8My9USki9QZA(a666~Z#2qj)+R|d;FVwRb5X1I_ zUrU~<2nN%?hbTxO6n+5S2>}P_E8={YH*7|uCYCNEZfV@87)u<3PD+f>3wSi0 zs}^>k&d>x5fKfBmp=2I()CA4IM0P07_%i{Z2Ts5X{YafySX}SaN5o)58AyZ?Z)DFL zzU>F-9qJkBT>jZW;DBs|fH(S?{+aqY)j`1l>fwamq3?(<&~J$E3@_mtA2yQk7prQO~Hmykaai-Eb1F} z&=}zdB%x7COd+Z}N@C~_FhcH31}Thp7@FNE(P!vGKwe~$-lV$I~ z*~DB1g%o5$29D*O4n2M0@^_Atp#z;tDnFnV`7Fj_9S};{GVTBp2`Mzkecixj#*am) zcsPA3lNkVO>T)fF!)PcX#8quCyaEYiNi!}w<`VX{4JB<^I9wItY6yx1RjsS22w4dC ze{Smbn6UyyJ<-ze&@iQ&Qod{@-2=c8k8DORD-vxxZ8Ug|R*06{F~_BU^aV(9%deVt zyDE{d-(ln7z}q1HCb?HPJb!qr9N^WIf5CvnEx5ev-dO(2MW8Y77gJh2sY@P!Z~3IW zvhv_M188lIE=>P#m@;j@L!0x=>+hDf@{2p*^}Q(3eRdh2sK2j4RW*|&Uc3aj?-XHr-rHTLd*$SI;PCuiwLmUt*av{*C@)30dV(aBD)5bT)hTS zlPz!J`uL`19jY;OTHg6wZRnQ_faNEv0$_0rUljw9P~B~Mph6+9n&LvSAL>dg&hBMm zanTuHY?3kA+8CzV)|0Ao;+8b*%|IeuEtw3*B^eW0BANEsaTnV6{_dI`_^;FJaBC!+JhMw4*4S&-&*AS`lv zfv||J1PDhNg5+YHr9$yL!*hL>P4d$^h+;*`%UDsUiEzRBVirkuh2j+2WzJaU1d$48 zvq&(@I@rYIoL`y1d{TPR4DUPntLMe&Se7*Ohxs^+`IIydIUi^La2{VzdVT-?c>2)4 zr*1?yA!W0fmTB|MJkXswG8+Z>OrMFKdMOCLdT0#Z7b&<^nq;W7X&8Y6WMOEkGG!5$ z1JNVwz>Aq`qtR<+lNXej+mT*3r`Np0c&-2WcmH>M{~7=GckyR`ia-4`{Nk^x89n}1 z=O6&$Fa8Lp<870li#S{W#}oeOFZSW%$A9sce}aGYALIZ1Pc~zT_$z<-FYq7zEBxs% z@3&5P;xrfj;*W58xj(wtK9t)RwNp80mkpqA0m||06+QO7;kN{;-TlH2yaOF@sMNo7 zmxHxmnBDB!uBrWcjw^GsUeXg}JAO+w$lZm9J03^6&w1w^3jF0q_}G>7qLpT)9zNt4 z;VQ`O=Ay+dTK&V0>0T?kgW&V&$APCqBlJWh+g%05)pmX1*{f@GeoOr4hVsApYb^`K z>vr05?T`TzE0wkliQ(GjZ91?mJCzGG)N(pi0h9ppkqRQuPymE!xPZ(MchVur38cC! z8!%G`po2PT1`otr6!S%Hh`F%NOPQL1zGmd~#0U;zf)epn6jkCtSuVIDFv=`p<0FxQ zPVA|7Xa+iJAWl#MjO>UJ9?l~sy%2Ad!wq!M80z8T{2A>=B6{ha_y~n{Nh+Q;rC*M~ zgA@+OeNcv5!QjaR*t`pEnGmsc2TILX8nW75{9zDB?J7;kY)o*Ra!|Q1%(g!W6j1Ig(hj{me z5Q^rAXAnruig@h`?Nqa!x$vlp6>fqMWqg$jXQ-;c*UhoG0@iJ2rjGSwpTrnGimD?b zc(fuO%p}ebVWMK-5sCweta^UJ9h91lRSVB8c1K;{uIoIY$pzlX-OI-m%Ab!=S_4>H z)ETP_Mr$3UZFAh7$=y>Y*5i!R3*Y?a6e1gr9_}OTkE|bcW#@N^r=V(^T8dv=qo~2} zbSw6D>veE}kK^Ll#FkBYbx}L{OP4j@Pzlj&D9O5Vz{kdFfAzE8x+h(VUKb@ZH{Acr z$IZJi-{pGP&S_Shmyemkd}6?XZ}+CZSX7%y4{u8u+cXGmV}Wtq4L{v7ExXT!8x=0J zGTUj5?g&UP(Dwaebe~ML!}rnFd?=V&zGjRN>XGo)c>;bLIy`8!b~r)U zode#$5n`Ej-`qdnYzUuePI%woYq5?g=ANxaWNJ*?#%j#MOQA-AL{sIDTf^C}|Ef(7 zE^-i7-uHs+w>mJc4{H-rZH<%u5|qL^9>`_6*38Rw&tJ3BtXcr6$-7n+w-K1axe`oJ zZU$hso?M%t8egMp!`N-r2XNhK%Vyp{@M{XOF5ztX>T9%Q9WPP6dc02aSO}s(Za16Y5epVxzmto#AdsuA!moJkyw0Sl{hc*u9a#W>NNWs3&JQ}Ul zN)O*A%&TER?{NI}XpE}cIXLCxd2W^>o1BabA!A*!;lUaa7d0|k<+`HIOeKRlyrCH6 z?;;B*wl*AL2ignMJCl27oIH;|O9S&P_c`aDmM!V~*Du0L2fR*SzI*FFzE2;%=GQMi zoY0Lw?`GJHbcQ*YlldF-5l(uf(I#al!Y#Kaiu#-Ct3^N$&4n0K7=I~xFaXfZ!bF+s z(do5ASVvisjPPjcT#ZZHT;GUhZ*QL&6FAouzC>vBVqQc=3V(^_PS%?lQwY&U@c?_F zy)!wJdFPydmPe*Rd7j<-oHI?9zI^}sBA~;U*QxvNZTk40KYaDqFBncg??yB?GcmuJ zADIa^I-z86WfCLRhhV=@-byxdU-*o{`zy>lRSMM%q4eRX3L(XOV>#zMD3ZqPx;)x- z%l2opmn<^BpFgV5boq|_@t@;&|7}SIzTHqfe+~k`752SfL_Opw<34I%f5V^rve@YV zv%ib~NTN}yFX<4rTj! z!=Js!C*U1q;R!~~iCq^&?lO(=$e87sr+k&>wnzJTXf?yf((v!${(3af!fx~ec4vDJeO7norZ+j4yZp=FPaAMwZEtH^ zd!M?E+x9z?jo9_-5idNGhC|o|o1SXSa#h8#@s|QS6`|U1tKnHYqTK`36}KX$;mvbK!`FiVL7nSoB~s53ASsmKSz6^EIX@k1CGB}LG*BWowK z*oY-^A`(QxgpQiXBz4qSEeD4ZaLOb7Kv@l}CLzheo_+u(VvY=6LlR1lQwS3{5O3fS z5{oJH2WWskgP-8jro%4Lsa_vrs+tTDF7@OHx$z7gh@&t9M>>Eb`34_|gb0R}5i=#= zP+UDVGrU|h04E6aj+~)H9Emf0f)3C-@I7%LCSW9v)PXuf2dD#RW%e)w2jWan{u|TJ z=pFSl=-1GRcq2f3ihO1QrbPchy%PueApdMQ(?8N*2xG8gN+}myeuvMH7`T5J$7?pp zLRcUJj@{!WYr$z0d=h zOoCAp;IQ7|rjr05jOk`_mcA!~$2~c}5KfON5gY>}R*fCJCud-CWa7I(KO7=P;#HW4 zp#Q%BaJfnk7*ng60CfNc;RKpl570FdBpn!p3`pvM>^wuxq6`?snMiTB1s7-X1wNO6 zVw~XvFvDk&QP&Ft5rq8(&9(^9qEpPps0WimS^+l@Fe#J0Tr?Lt0>TLODoDZvSrE^=B^EsdKZ4fA9b(Hm-WbL= z;#%TH$ZYpGi;~YVh?^Nk?W^rZ$IdGW#Dk%|ZnFSZHf}%?xoPQHJ%1KE7jA7{E>yeN z!ZEth!L(%@v_coa!GDO9qqEj;}W&1Ew8gJwzfHwi~IS88hPLF zwLST9)4@i28j)x8C48dsz^+>J+K}h6e$`$neRURW@@#Dn(9|ewOMM6p4LX$YK-}=*YiCb0apmi z(c$U#VduF~} z5>n^mPkEg4l;-i1?A`hG#}CJ!zowU*e|Q@{ef{+5$K&hQe>c2&|K6q9ZM2lZ8J59p z#0XE+04H4`hh?1vQ$zVLU=Z^POGjy84iZV?`YKjKq-qdk%VQ=e7-5Vyq@;>jv#XDd z5f)eA54m}!-fToF!@~7+STccQS`dNE4nSt0)7&B2D~--~+5iJB+0Y^V}<5V7yoflm@?@dz%wu9|Kg%Kzm*!|OY8!himMehXur_sJ`Ijw7$#ni+S%?q?w2 zdr0d&V)Z^pVXsNtr4(q_&mH$DIOpn?u#^FOYB4-1(Bz}_xgVvw|9qdHdF%{n@PthN zAr*ax=W!R>=7X=g|6|-8DLwhH@Gbfw-XYWI&JMOO;=#AX1wBMmc3urW&=UQ<0srJ@ z_(#7Ex9cX{5RH3J!^uS3F)u1aYYNF`xYj1<6l-j}#e70(C$~jnD*i#6W;b!ijhV&eTkF&PXsGoqZ&>NMZAE1swyq7^AOkb%C{~q{4{Ybr2 zAE<$0ff8dSC)^nM5Spn>B~!9u6XcYjnHmilgp>=WT58Xd7AqvEqbDX8;F^e&B&n14 zvI7OVMGY$_P0}QNA!cEaj)glflbkwX-5s3;%lwp{8PGk`CJ1DIAPe6hZ z9HALBhZ8Rn=nnLi1NW8aB6*^?`*IduA_OrWnP^0>mHi6n3?#s+8O}trAj6Y=?L4FX zpXDEb3F?6)LgMCMg)&4 z?yGX~HbYVj*lG(#bR{xEG2of1(rAI8o#?Bva7`45jVmnC5ZAsM#jkni3os>_EgR{o zjxQB`0c;cT0%yzU*4Ezb(jbVd^TkEg#~aj9-Kij-v8!vp6kFK(s!Cce2{)nVEo9%q zj=UHKa1#Q&qF||lJ6kh%>6Qn}RVA(l0^Ybq-x7Xaf2$pO(d~-hTmu!WkH5I#EMqHl z*wg{O_PxLjH~ee2qKk-QZvW>d8dsN4_~u#bN;a{J-9KLd?T{{cr~W0b0swF;#;#@h z@A~^M<{=l#hMSEFuIt?`>wlkX_6>mVE`f{RVk`ONUsrwHH)`AluPmCfsbXrWaxHU{ z#ht2i2v=%zu~M-HmfgPTL1EtPCyV4MHyr=Q%mfZu%>vynO4=6ZXf5g2;FX49da+$B zQNzOxmxS_5(w?`H9&zpUO+sd0uVSYQ-6!}z*^xeD`iyPzZFvjwD&{E6eO8Kny83O4 z-@&pr)Lf%)?c)GW+sj+T#@4viW98s4v$sY0y!xT3*<)3wo@(I!#lBi~=oKLrYWVx8 z+68N_JzdhwH&)QgXxNp`ZuS|H6YFLXkgy?HKySkWV z+b7G7L?)yRYR7D;@laaO`9cZXy8T?ZH?#-wvXb*HIH9%tVDrkO3>R59qB3qwt2&_# z0V>JQx^#-bBYT8vUguJ${Off0p!W$3i^mQ!6#Gt=ejV6`GcS6kT%45F8C6%OU$L|z z@H{DQuQ@Wov($r=EQviR(P<`gKPQ;jP3-4<>gN;YsUOFW{mbx+5B>K({+*v*e)q5P z>yJ8qF^(@b9c?n3i{66{D$xN=@Q4?K)Eh==05Xv!D;fq->f_~+ycst+5zdyAVbSv% z<2@>Az)L)PTE#DAGB6bdvv;6D143)eX1NlVu3ROnqicpJ&7F)`V02&tsCbu+$Y(HG z=p^e^)D=c^S@N@B6T6vxpHG-i{XBgf$Dx1efAL}b-e3OCPx*KMO0PfK@yiRxqfKTL znwyy@&?kfs06_K9Xc(deBCM3F3_*SDO)f2EYw#A0n#wYg6}l5^Qkkqo-zj0+2-s#0 zzlZ)`a6-!X`xzS(JzeVDLtXcQ>3x#>PVu=9@I8T|{%8N!?!o=!bYFMaC%6w;K3Tu* zXjS!`o#sAA{$_cJzwOiC={NZhHy?q(v%1PBNPDa6nMecOYUu6>1@uG?@WY`Lp0<(E zqgbhZX8JP)|Gg*3`%6T-!EX;s+1u8*PiyFR%Iuxl)kE9eeeTrr)35!;_MtNs@4ODp z1^#}Ae~|F2@9>Ym+=%&O!_i;EU2HXuV4Vc0IXnw_QcboXD?71-%^r$04HCIJ1lKQV zggi$3bu1vQwB5=EBP1C#!??I1282e6>dC3vWV_ITQ*o9LgP?+t3g{s(I#y+YR0n4G znd*fM1CgjC&Ink4VG+R%22aJr+|T3?3?6E#_1*!BqRXwM#g4=aFh~P2f}=1HL*e>l z(RyK|X3~I8dWSxQ+avh`omrb8!hud0;Z}kK;KTtMfRo{S@Ejy>5|Xh>V+$1oJvhR` z${)aBdLw2abeYCt0z>FPyrZD`fs!X66Qqu{_Bca50H`Ns;!O46jGT-K_&|Imd-%I_ z03*ovL>c@5$Z)1!LfJ_U(3vozqcSxTzh(|7|2u=IH|T8o4fH+L!>y#a>J@%6yqmr^ zPPDJcv#B?{LOs>dDP!BKN1d|s?`s~zP=QxI_jUnBN!oY1g6S}n*c~g5T3+@5}F*1l}oQh2N1H7 z+{3(@1!V}5!zLnuqO!aLNsT}U%nmXnGLa-41A~wYC_@Q+1A4d#9biHw40bP;T zo^iFtos#`-3&Cbqmsa{}!2vU5joD5ttvR?Dl}v)|%ITn~e#CD*(4k(f7*zoBi`mJB7>V-rSsfVqxK% zr@YT6NnCy;-t>D_DOaV^a;+WmnvU$_5_Y{@m<)^_LV)*bKZ} z#q(Mr>6d6MGy%m}S4-=bb7@Y+hRDB2VcOwnt}czS3Ct*U6<2aSt0R^!_VzlsS{;qH zhWo6+ycpLN8*kRi0kAFCtG(H3Y`B)F0B?rDOJC?$3$)s)uWmx#Oyapo?p^bEZIiXW zOl8y#`A|k0+R6miwD3Frbh^&ziCT6^FKF|S)r_E66Qt9#blrVd-yLHC&yDFnpj<9f zRlT>7QCgiRi^(Z^XtD!{a5ESaq2jea}6x;B|KZyyb#g>5GDsPqp|LZbTt*{*2K!CU{uwm zdkHgUF1ta$SN>e?&N0lf_31xRFYv{ z#{o#-6gDG*BPDPIvN}T=asvBd`Z1q>%A%u)i90XL|JTV14-I@$CXWe&eq4WEb|#xaFD0y5Au4?##)& zfm^DMbmd8+WYD7NO0`xgA+>A1q+hY5)<0^%C*ZHp7%tSF46Mgn?o)V$y7wp~>(DC8~pdfDHJGd^Y_^ej*aw;#m+c)Byi18TE~Rdp8F>@iX)m)vri}T7rU3;!#M{ zXqLq(`zO|X3-L@Ipbenr4C5) zGjXnx+hpp%lS(2*SE^hcps%o30>GI%f@jGEGesJ}P-cG&`6^x0n;Hz`NvYc6zb!-5`LAk8}iuTiwwV zE?0FAZ;UFUGnRUU%M#ZF7ggfoYKk1agjHC%#mTnGz}@4z_Tkk1l0?)5@Gg?DOWcr` zmNkpu8}|g2yh7Zzh9PZe{f73)2IRF3m+5Aac*%z1?VrC}>*$95bPrkEf*J*6Y(CJ2 z9Lg^_{=AAhSf?qzfl3Q(kprTaj!F;8j>2Cz1J>)&EY#{&lL)^O}0(A0~IU$?JwcQ`=T;?5H==k>%NINMZYG^vGEXVr}Ensq8gbi zUPZfOt2|haIa~ip`Feem)-Z1qq@Ng=?O+hYodAIKGOf5yN$a$xJlxi%cM+C)@ixSA zEw<|UR~rs+cYp>RJ60JRy*W<}ocQ2{2e~cU6)fe{aPU2AhO591D!J&%PioukSVdixI z<(KqN2OD0x-#b_)@<;ib@ksV{Vv(T8J?`Sr?Nc$H88AGg zt8=&9+W*MSfyBdsI-fX^AKE!SV?o3F9x2c3HuQw0zMgx)&+@B)k9N+ktNk z59j^yz%vsUJ<-(Pd#rd)^^RNfo13%4TfBtd?`nnBR72R>99WCc#LQqxkFt%s>N*~1 zJtoxvB_eC$+V+RpIy)|vd}~q{pCK0xNeIBuAN`dY{Js6yK z8GG>EBg3;C_eOT`iTprOK`8cDL?$qEJ@gG8SJ+c$(E!n_D-J21p;rJF@nCXDLJytm z?dT~QCQwpObkLdnuyAe+0tSh|JMkS9w|pRHiYoQVK@xBV4~8T04rJ*Fe5SvH13c*b zg>?a+OquKfmlDtuCupGFi#`J<_ylC)069292Z+QAbcQCdiUZJ_VzzOBvM>V^kr@1L zy+9}ORmzYOO#TY}M1|}9J8^(!A`>U*mFl1~k*Llh3D!|$1PWk%rhcS8nJ4NKMc@lD zGXDntouM~6)lmeJ@e}ohny7&|5bxAzn2C3JCqE<()If+l(_s=lK^>V$ffG2%XO|mB zt_jnOAms3wRM^DBq0X6zxS#O=Gc^HcVKNzfa61CYL}C;sYJ{@T2|ZldCKiqOM{}c% z&WZk!OvVg}_$+@HjUb%{BYK$$CvqSLY8K|KOns#FmFIJ&5{%+kc_uqzfQiVik$e>Z zoWzkJ^#TmyNg~t{M!bvR>11@douQAAj9&$p5=rWVI73biDjfGW;z*8Qf+t|Ee)vWZFwY3Ug#+qk#!uM0wW~yAk2Woj>^KUd?07iBo_ywi;C6PYS~E> z4RYe8kmKnMfYI{FJgDans=$I!v0C|4@E_uFub@Y$)E&N{M)+unU~D% zQmL!jN)rN|F#)9@xieN-SPu~!x7(#2_clTlEJLS?byI*6F$kSsh`LamO@$4STYibY zEHeOARJ*%N_|+rJhzq9q#RQF@~QPy>qHoYrhriGQ+swt%uHYtRe{AefR!T@AO)P%gD>Wrm z1prr?^M(B+ygGX<_oOxXNi`tR*3{Dl-(S;8yA3&dtzNCLaX0;HD;v6~b9?Z&fxoP2 zRLj2=c!K)NEaK;(_I>*Q<;IdLocG}_GV-jHe)qrcbd1-2uWkJN>LAY|3TYEZniH?m zVp-8!6}|Chv9YSwmS*JweCIYIUf`k03}EB4zg$DbRTn4JjiFqswCh+rY!G~vq14Kz z=f;b?3=(RL@N&?!8@1XI+Jc71yeh5MIt72c7`Zic;srHc&)kc=jf&lG>~y?IKlZCx zFV=+BMOCm&GM1ahn(18zKU@#`=$B}9{5BUWuqCizbuW` z;lqd5F1>bLHZpa9W=l>a*hCK1u7`D>u8SYD3WG3%9c$RN%D{Euy=QPJYdwg1OhPV! z0aS?AE0rgxJzj(a@&3;3TVG!^sG{d+DjXFz$Y|Ox?qm@ORiS|9b)r`4D=#_r>dSB! zM|c=>i8{(>;*I{9-Z7&a&&RKapa1*c`Ncn<{$=;&hd;#c{MPG-53gOyT}LBQH$!eI z5ff}6!>(sp;i2nSq?ig~nKF`56Vj`E*z4v$tV&_hmB_3T7!a8s{puk~1hc7Tklm^{ zbOpy<#{%mSlDKn-=s5`N9t#9d7GTdIn>+l8Z(;=VIsOD5dGF{xpZduV@`sT6GjYE6 zvf1vzuMfW=o+JD3yRKhS+6BFX0A4`W+V9a{ycg1o3nkg^n$#0ojh)+dZwT~ES~c%$ zM)z}}A3k*K=B{z~(eJFQXSgOiKEv465Zu&N@VRI7e7l4vW_}MH0`x6iQ>fPeJww~|O-vk_ai#=?tGs{m^Vkb%W7K+@(q%ApWZw5!F2u@-b&b$!tSgxh|t zy(4(lxX@-}ylwRQb(P6r0DyGRplNCB7^iUI;|riWNuy?9048b@j>JJcRqcPt8-PL? z`3@BJJ$D%HlN!MffZ&68q9({0%w<0V2cQR&iZx;a6EW9e|3FM(T|y4f zD9z*mfjR=e0s0t)Kyn>W?8`fe;6xpPSKJz-Kuyd$3the!*c2I5GZq=9&+I_gLO zI8l*RaG=hVNoJt2g9Dm~qhUli?dV776Oh19<{kVeU?P8{j`SBQ!+RkPsH}W(M*gFp`|Z(=sgW2|+V7LbD3m z@Zw6w&S20aot-mnhG2exb&lD}n*RU|62!B70zZNTXE%~xsCU93BVmNIrx|o22H`+u zvlHp?UObf686zMjFvWSsaPJkaBoZ?#K>2 zOXq5@GKdK{hZhjgIWjQ;FVdNXUpT={%(VsR1&2Bn>&|XTEED?JVh91F^b#?UL8&#;!E7n23R4`YHz@CW*jkc#$SoCXS#J z2|g>@>cUwSn1r;rn1W(hZiTwYorDxI&VV{z__BD&om>#Zi-&?|Fw#T>uX*EjOC`Nz z04$MzRr9>iz#5~C7z=#QrN>zS60OtRRThA)fg86!Sse|!8;oq+ssDBkp_K-%TiX1c znwz)Vg0>%SQ~vG}F%~4nwoRa#)X)a{S;GK$CEeGmf5RPy#gh%s&C=>d?NUSSiYxk- zyxck_YetdDSmUhSGWQp#G&LiEv=znsmP>vSj(V$n*LF_BYvTpo3YEKGLq9gVc<3Jin<6eKP&^83)+?$rdiA zI9>CYH}mW=^Xjf&OW3h{x2byzq8$4C3~F1Era z$WVG_g>+S$UykK*?TIY1G9IXienu!r-pB_9b)B8*+W)O3Wt0om`W9TPC|4oVSOgH@5p;Z_aYI zcU6+oC?TLV0Qq8kTfWbd$Dl35zxb%6&FpP+3eRh@?(!n9vWYelrV_E+w0UIUuvyld zn4`uSkGgt8dBr)ncs-W=flatbJ1$xl-rSsAyu0%6c|=?+e&2`B2Kak3n#ya*)}~uA z!>w^x_ri8ZwRA56ks6e;4#v8oB}ec?CizTxSvBY>!pS_-UpRlXeD2Qg-8c{LFCTwO zzxbQ?51$Xe!St8Eviy1Y;S*k8a5x;gKBeSc|Ajo#3P5ev)j|uTV3`y&lSyy}d5TG8 z+m8mC%Mw!ghCpP3m2%9;koqQ|D-nO_1b~x=AwUkg#sIv-mm@pZ+1U1kjj@yGjYVON zBB%y&xxDhlh`8R#a@*sbnuuBMbtU!!DZ*#w7y3ueXUp&1dG5xS;XQr)>HQafbNKLi z`VH(ae>LRK_~8>?Uk-;u>UvMnJs&Q$P5!XLy2@D)td<|=^7yE%S$0d zAh1Qo7>b~frMx}fmBZR5lHgFA+h&qxY%hog;M64)~o0X(N6xQ1dMJ_ww_8G0=< z=9bd&ynY=QSUew7-|(C-KfY1Af%_goJ6!wghU{9C4F*Shv!VF zaDR%UNAASWtlMY4vmOm5_aBzN1?AV{D6ij7_y@1})r|k~^IDVeVsKmYD=$7Bx+T(r5zCd*BQU7gl}8ejeo3GQU$}T>vxDY(@eWxz z1eL=)onAaP=_XFZ0fLw*fIacG6rwtVM=}8^sPRjwPo?016IMn7oS@Ki_rzEk6-Jja zM0g$0K^d4}2jBzoBbcE+l5&BGOi)jZVipFXgWjl;U<@4K9fMkgOyz`5dM94sb2z0? zf{x&q@Z_P!>f50RI|XJ|%_7wU=P)@zXaW=g=@U6nqcjl%$*4$)iR@KoEmmR57itEx zG*T8p48%wBC#r)I6$R1@G*L6Xr@nxn!iArhppiOKJu#98IwhlG&M`tmL?00j{F?fX zI!GUgM7>e((7WK!!H|(B!$ydDojV6r5T#Z$>F9!>LWOcq5$Mqqyw0#vjEtu zAShg-Vc$^`@Gi`N z5eJdbnIO~&27Cpq3ZQ5B`2UmkHp{Xk*^-v(GXII#`(##eyBmbbWx|LVBL>Zr@C^MB zjA06o#uyPA5fI=~nR)h4guB~P2FuLdJpRw6q@?83$(^wyJp9K@m+GhByCCXIv4s@C zLwJRWu_S8r2iVs_w-K0u88{N(Dzi6}oHmA=9t7pkm)OO&l#)t@z86l^P{{ryMd2Ih zi)RQ&5x_|rU~z(FAW>cQxHtr%BPNK#0`w$=L}a^|TE~HT$9miI%e!~jdbD3zZTD5x zWVJ@%ZS_uVI?C0uZOgse)^ezpgIjOu-4oBt(+;lIlXy?TzgQM*W=S z1g*$;^Vi?pZ17j!Kbks$%Qf_Msq%F=MmzO~&vtisHe|Y2%b{n^qgM%-*Nw_+PbrF( zb-OgI!JV(FTw}54+Sbd8|Mm^6FKzwX+kIoHr*4f7a1HKwW6jncX|fI^yvY`L(|dJs zf!ihhe`89thjh<{N42`E2mT!}-d*eSmGkNa7nN2)*$RS$zqsGHR~r1Uuu|%RdxO23 z{%R+54HjdglCKk*ZMw5^_WkmDP!CScJ*w%U#YH>)&1cqH0vx38xq?C0EJD+FxjsmV zVmD^0c=5f+-u^GNW0dV+J^+?7yDEPZ*!Q#_a}uy8G_-Ls=!x~Iu20}P0e(N`#rSP`;wrw2s+GM zhhq813=BYmPGu7=G6Zf1lnj&Pkqo699n6XDDT_;&<{xQV#xESc__x38w~xMCJ{HS= z{OpfuVYd7}Ps3?EbbbG4N>l3oW}T-Lp8gIe3ra&B3gI6MnWQ;P zZe&)Rex3^Vl8Nv#(_r*H z^+@7WT}PChr8X=T-B&#=^sE_Vw=Qr+A!S_-bAlV%-PhyriK&z54iU(s}PZ zzXw;)Ym6q{L22>+*g!k!W!vmt89m9%?d(d0Tvs2Lx46~IQGP)uOqBLwR^1u1aigl3 z>Olp2rG)xK(W%;MQ?Pg`X7JTv5@AheF|4Gz(9MzgE`DTYaRAOGJXqF~J%|zu;1@iS zwFmM9%tAm#9PC&adOhVp4}8bp2iztWErHQjG^45`dT;@j>OCg|v>0Nsf073&fr#({ z{Q!M~pU}XvBVOjb% z&7w;)1V=KwAx2w@S4t(3rUf_)9WZ2HNRTt|6LP7GmSF)cImb>I}F9;aIPb z44fGny*?2@8yl)UWfI@u1WpW!vLD1BMJ*AD9?aqyIu=nLlh{KY@C}^eenE^S=b<#5w78&^igJRILi0>6>G8G3E zSuF|cUt{~OYzNr}hJ zf?jG0TK!{xXWlt%Tlu_Q=QsaKch@rWYeRBga@cnd$kvaEMt9a;8|7t(+fI_WT4E4Q zZ@sqv7ImY+-?xOH4ZPa`^l_o}uSb0kqPe+BxLniRTJhcNFKn%UcQ-> z;eX*?Shwbj!2YSOTSxVJ6?Kb-e=*~^CuiS`b3O=@zFr3h?7q;;Q<8UVHH~(RTVNgw~)NC}r>jsDg z_yYf5pab4tl^)`;fY1N{AOJ~3K~x@x$Df$Xasg%1cT%sO$tb#Ct?{pLLS3}A2MR`O zO3AiiNh$KRMwf3c7Od62wi~pxiHB_@5dSDwNjmL5$+r86-`?+Lx~oZiM?&*@K38+S ztkw=&MYp$xsP-q@o1xc%ZWYa$fkOkMt3dNGWt2BiQ9`@P<(h6$6Q*IK5%>Gs*Ojib z`=WjGN(cF;9Fx?HSW=_lHP30KvPj#S^IZ7jR((Rnck@+Q`1ySC@u?A&UU z1h-o<+TNft=Wdoy>xk~6*Ju0q>)4?C<)PQbWjo#}09b#gcksqI=k=@9vJC*%qaka^ zHV!P*ECfK4M3z`ebR$Tr$g~ooA;Sd?@X2(7{~%}?$YkzqW|}|J@*~a1@oOHZ`Tgtt z?JK=aFwC?6^);RT{OGAfo&E6ly!;%7ude^S>yXlk)~Alij@$Lan3E4_W;ZJG^# z&3^it`aeGsb*BFAho5=*8iwDy9$j}zsi!e@$7Bl)Zoz_G$dSz8$ml4mJvhz5Ov1co z-Gm7Unb03YZ20gVs9Pp<;chbcsWIiAMOqpB zF4&E-CQQGucDg(oynHi{E6VVi%Ku`o^@E0I{)$cH!8God7WOy4j#r{Kde-ED7d|rX zw;jCrbbfq+zdoVi{YfMq_MPDVr@QH9(+!3FC0-WpPC@>;+e|F0tiP)H8ym8A0$#Fm zo5OBvRNHC+Q+>veVVM0-$^Qr}D`*J&=zFp7Z%06kqWjwMD<#G{dE1e#;ZcIwU_~5M z4lMY}!H>@=C2`@(oOD3(WRKlJn25iDzY|~JEG42BNjSN{dnlu*nSxS;@Z=V}9mNBb zlVK1@4AKNHfI}nkRo3|$1%uAOJCUSBWGLjio``>C00wAcWETYB4fu!TTn)N<1HNN5 z1y4X^yN|$6(%}Pf77hgyDjHn?F%XN;QN6T)Lm0q?1N9Bf@|hX{KoijeAV&BXa59a6 zQJGtOHko&XlM?`GAPjngK8P>iJ&=OJfe`T>Rja^H==ahNff)jEfDD=q1EV)p7EC1K z08Mmf+!UO#;8=B4zrqU5I%GjqDsB=%Ye+QKQe5=~|*ck{_x-JV^&B zk$`fn=%ED6L?=n^w65L-v&1L>fYrfdx&2wpDj33o0Cs{<3{0yl&cH?9%#3ypw&F^6 zd0Cg&JF?2v5jQ+1;N`tW)Ih6vuWe7PMryN5by($Ytd(WX%{+OjY_Y+_0KnP-fLl+g zUkIRS=WE_1nCnbsv#TI>X4@N!lGez1)3U<-?^PulU&yaF5kr1gc5iypcGH3f4yhNn z1h>ITY4-rXL{#q;-<{B}9bsk_hE^3uYeJ#{9S{$-iieA>+e^$l9heVRW_oRb%lo#b z8;xGN?^WSuOSou0;H|9#UtVUL}E_yv7eaoP%m7%4!^x_-$rai62xmfYktKR}BYgfb$U*ng%?V?>)d%mJz!NC0BlTK{QmH9t$&mM>v4VKiQ8W*D_xR7n6( ziJFnK<<9cVJfv(~XiMKuOF#AF`Nw$vIGn!5>G$4YN(+9U^7(tRvHMIM<#3{A!H^u`N7#{wKi+2QE36ux0$8KMN8U@nDe5?oXy01`D* z8M(7OTOOD#Wpe3lS^BB(ryt|_V?2KyPQQ;6dQYa`7o4YT-_z&Vjfs%Y?g#l%*}apc zuIr%eo)QT&(LT(a=A^)(SjKqdx+@8yD+n&t+?dHQyY!$`9szl%5Zae+gLsue<1OE=~2ae#(co68_3W91kDRdKSOCMu_N{ z4){7#<>?dw4{iRhtj}?0*rR76=~Eo&?ROG#Oe!Hu;b3+cnFoWXxP;(z`p{D*%uqW{(B)js5mHV&$-;VSk zFt@d|s=+7HecHR)YbsY79q zTA(kF@NE`r($r&n~PR1!jq7R zQ96kykV0oj@J{%2f;dnMct%uX=?&-@M;;wu!Wo*WH<$sEzQ6$@`3-#|TEKMx4Lp}D z1QRq1XW}>d2}lB+Q~B1o0CLgF&bI>=V1NUbp-Jd~z$z`k3?wO)$g<3})C+tnIT)>G z{7E_xUKsc^7UxPKK!^w8Ord!4Agz@miY#C+WGV`QdWf(^=*#XvN%9h6sH}Jg;w~X1 z`VyWduC_BJlwC>o!u^*c8qU`8^l;4Cx>l|@;n-KF&9h%RyjHDG!d8h=Hu&DSn>Kx& zAmtrxFF#z=<2ELS&B9uDx2}y)gKYrtqKgD~m?XTfAgd+D;WBG~Eg&=2kl2kipt7J8bvF!&O*fg%Mrw?jHj>(CA0^O#HVOG*k19@rGTo^%`%p6E;X| zHX!D<>aZ=jWf6&p%P|mIcRU|aeb~6>FX1+NRl9sKMyiL@*V}7E?IHfWJ)yZCU)@R; z>@z4gUqrW;acqmX_eZH^Vc+Z5y>S5fD4hOS)_<^`elfp~dT#8(Jt3xhtrD@O-4|6h z?KbvK5m+mlpV}99ujg>re2>kUybA7Z+^5yqSH(Z{l9o)VwP0XHqtrCOdZn*gCog(a z+rUtWuvUH0+>MmBbLroLhv#ehU)|N*-UP19&J*zV>I**L3+q=rgS-|Fc$v2-1J1n7 zeo7f^x3PEH&sHEa-ToI_2|N``c;8_03kGyw8PYy<0`cMd`Se@~MKut>TguI@xOF9@ zY8$tdnUmjgaz_1tZNuhm`lZJ0o||sc(0}7^)J!j$zT6T}@G6>j&HH83Ld^Z=#UA)p zJ7c*s9h4Nsjk}`lCv&+>nv2V;8nidE5E{=ybMBUxoU3{BLUHTBQ!@)(ps`;5+=@eX z(H!kTJg9n5Y`}K^NRrjxcHzh&PQZ_Hjj8^U9TL(lqs3kDF%p;U4K+&PB2qSW(l-!>9P3jGw|3q=ah$SmeFy`y)QzimDwpKTtyJauR9mpq(#INM>) zLr(Qz4wL&Sr|)U#jK&!n^OEu~_1&@Ssf?UtW+}naH|=cfXilp~l4L3v1UkqCfQsTD zNsFW41(6&RN?6T|Clbm=NHAvtXJU!dY#WE{Tge}61j^4(>Gl%h0U%WO)wjob{nJ(A zgU-yyRkwWRVSiCHe`PrF80hiXXQLNJEP6qM{w3=)ADR_jvDn|UIswl|M-Mie^w6#Kx}N^@V7~b8>IGN()0V7z zcM`lNqdy)|JbhU{tEqVUX7oa-#`U~G532(1->(0;!++P|KW6+7f9{rD8x*-s?8oDF z?`g5NRBLZnW9`n{mhIkg1;bV0-_$HfgZ3emj@2EJ(+!f7%t8mo`lpM6-%1ftpuoii z4zl{m7#*#Jzd>c7Q*88Dx7EVU`kRC zp5#sv>;SLT~sM4hC}=+`&S#5x$9$2-e>SdrgNfEd zojj^^&0s3x=^Jzcej^N;sd2RsvD8W>%EgWvq1n(YIFlNI6LbbfqKgJpuq*ik{|Qad zn`l6$W?-NMcG3a*v_Q~kAR#y69r_}YsaK9A*+^G`3*iJ1K1S0lHB%rC5)2E`MGGon za5Ke1@r`9i;Lsn`yQv2{;dkPV`hcIMVBmD76J%5(hFaWY(198W2TsClmi9U$E&;t`OiN6sZt<>%^djsF0 z^4rDU;J_Eu2_qc91ZLnjX@S1Vbp!%$#3BU+mr^1=pb=&c5l2L$wU59F7W(|b5v{_Y z=#1u!iSFb8niMI7892I1h@s$jSYi{EsGFcsn&Xg)GmwB;>LYVsX*`NpPhiB%T|CyC z(^S0wAbgS$oL!^AwW|fa@F~?tvM)1bh9~C;ii=dwB2YM#D6{ClJH*pnH$?MH(!7FtyZ;L6`6mn zIIe-K?(S3S!KC`O&d7&xS5>!NOGn{O7~L77FTB{gVF=x8<{Q#+M>ha%B!z5a5A$6KBb-QAYF4zI*@2BoE7 zz0UMZcO4(E>_71={q7z_AE_1|M+%Pz5aIY z##iM%+YUptjq+22=C8{8B@swfg71N;b}Xyd6J8kL)5?nnv7B0+46nNKRzw)H0d^$H@+u$x$GY zNLOq>0CJWR0AZ?i*kk?KflvKpO_D}B=clBr^V8|bTj*T9;RWK)X!5t=ibfg`I=$b4|Dd@ zbT*{OBSR)P3GPTK8R1>FRF0&@k+ej9(~MapU^F^-CXd2IigZPdGP8>7e+EX9LL!_T zf(s61KIi&9bb1Ev+%6j_VHu=L3zOA=)fzJo|`K0?J>XvEWlea=dSZBK07%t7?>B& zYuuq!@xCSeMg5wuIqUHPS@AKx=D~4$@qp_EBhdp^&tqYl&zxcRzBRmT9ed@G{lE_O zln$iVP6ND9Ve()F{`jVf7Y0=AhInmB<6WB^bh#_l&ASsCU167^AD|;J7YxpRqgLn4 zyzzUv{@TLLU|4*##EPes+EaCj)=_7L*P+DwV$m6~wzQ$NWxxy#L>RPH#lDFcp)-_; z1RcR|aDkTUCN^-fQk{8*y7KzPO`m{o;&+IvqbTee(kC$kk_KQTCeo#jI*^}HX+R7p zeY^v3BtBx%P9)$>1*?*%EMI^hz(0sLgeI$*9H0aAMV!b%I0*yQfhVYsP<0doSx}WQ zOFgkvaCr}%q42zq#3%eWMyCP}#0eGe9-mj}D1^HoI+sHvQXmFsroL-7LQqGH)CriN zgXs$(G15t$;>b`(0)`prO_hP51W}qPv-l#^nLdEQkcbiLp}!L+Vxhi?3FrtAGvS6r z9Dwj}05Ivz!b8J=FG-xlL@hu^bOHpUOxBAchNzpSg5wV>XZQkSat=TX*pme4F0*y( z*Fy`ifJw@X%q|kSR4wC!njk`hD-j@PN3rQt$~D!=*P91(*YzN;w1^_yAq( zfF2rz1^fh#5S)|w3@kz~{{cn?E{bsD~MtOAQE4b$2{FMvG zsYY#7EPbUD*eO>W#0<_26|rw4w=8j0X7 zyvUvtuPOsvVr8^BX1lu&!dK+NyDI0^v$QA?ZJ%ws;m|fL#(lYV_u#b4_q68g%TMHu zezWQ0?NM(D?|L}v(3ADVrHTF*SHRmcDBu6!EYgPdvUT~wbAwdom1fGlE4C#yw>X#k zYC9k9g*I*Umc8P|dD1Tx@LsH6TDAr+ocPzE?HVq|Vk@xprub`y%it?S`{PO0k{g15; z%+3D=8h&V;R7>+Z+^!~c;JjI$;LYz!TM2DJ{;leN)!%{b&utc}{Mn$i5u(b;mNu7q zQSE)N{?~I--i&PH(V2IH+Y%bcb!^-fHoBTU+!|J3Lj>HOhQ13TT; zLx9M4;8<)ZD*3*1<>EA}FeNsH1nYNKsu8^25W2eTL({|29I6@U~~8BV2QbyBJWfEhXxq$dFI zfgS^Z19hU$%p-kfJ|>-*&$b-X+$Yazwr)B1OYXC}jD8tAKllEJsUt?A&z@%2dC9$f zPs?bQ%zi=#goi6*=#dhn+45gzN~u#?Xg&ExI&CK3X`&lU;CFH5@FWKO2aW?c#byi! zA(3=UgvcS%=R#Bs*NlId{>U>cO0)zbwnFOKDN+X>X*HGwq!e&FF%CM?(T|0wHD+;K4D0T^)TU zf#l>6F|agsL+HqQBqNa54z2eyfE_b*ev86Fko2K)_SAQCCiyi;c^*&FHa7 z|3$ps>pqEly8qMm;KzLSR}SVYOX8>7w+D?}df}iwb{M=krFi{g?ta|@oWN)@j38Hf z#3#JH`sHmP4<33Z9>4x$+RRgvkRApC{uQfzJVV&O=oz}VGSoAA&tupQUlIOth z4d8ZHmO`ulP5P)y#65IipK)J904okC-VMXEFGX^osQ&`%3OOi(@P(GC4$7f9)_)3U zfKCcsG6;SVAix4GU=IzbSa#qHy%qjA9r&XD7Bd522?H=>gnJ9iy@oMbh04M2<8ig|zUZ?}`MSKFk*VS)FEI<&_6N2!Ai5Q@cn5hLi z06p{x{U;Q_6M2Ms_!7>T5cH`9>REhIJ#hvAb;JaGhk^_Y&^PhMDE`$1oS}Cju~a36 zCQf36GBp!3oMfT^9jQ<1i}-=kw;b>vP?L5q|@|RkqA0GFUfpHT5cxutW%)qy_4$9JB!E!Ymbl zBnKEZ1A&k|5H3V;hrk(pgU(Qb7OA38#Vv4O602c?8 z6Jso+2Q0OjH||auN&*v~S~I2yD8vfH%T%%;c5)RI6}rD@L|*s1 zQYrsMw4G@`52!}4md4hYnY(L~St~KF^M#hF){u&J@q+k29e(vccWHFm+cBD-E8%)I zV0vwYxw|Xx)tKo`doXKm1&w`=muA@Yad*iUuLBoexDL_ak@oKR_%YsE;kMS`P2tt0 zYOMP@?~Szr_kPKSWU_Gs_D=s@-C}E_)^0*nNG!bL8n|dfeQizoXdZI4di(za1-iRz zCw0-n&#~}*)=Ktu0@N#wiUc*D0?!uc(8=s zPY<_0Yd`Qn<3485PfPy^cNaBRi*5${oe;lKzw-9MTXA1?5WTvpeC}<0r7G>YbuQnYQR!Fug!%Fg@M8OP<3wt4 zI(es$mibMc+=QszW^`1CmnGqQ<;o6h$R_WySb@slw^R#jGGtaL^KG7KdrK=@CSEFS zpHs~Qt3J{9Hw2Zbb6c`QZJnlNHj@zxxb5G<&aS>X^aGT{Wj7L7hh!TvD6W?{6muo= zqrm;uRuNo01iPAkV2v8E49m544EX*L5I@irZhQGQZNEE@j%8eBo470BZEpf(Bb@Jv zcCgYNQr`J;|>CIi1drNPmnf;{E4D_hc&6XCRr-{tM!T5#fs^tQVB)Iw& zm<3ZgD;5&q0L*0)pagSZsG9Id@1O~Y3bH5wu)2baz8MD`K9d6_sUuEO2Thcuk^F#< zgu{a{D@stNM*+Y){batt6Mbej^D%kmGMo2ZPBu^7f`0D%<*S>0STy9fP6zsj;R7&7 z&ho6ZcsJ#b&fMl7#jv&=%*E4RmZp^6Qj&Xb`OT7%Kg~#k8R-DCbFtI|qGj?Rd|B!J zT~NB0job6oLRN{}0y)I6Q|QP9Ic(T2C*4+Kb$#Za``hS@2e|VW%Vu?>>k4vI`{dRs zS#C|K-2I{xzQmzepEwDcOWQ#Sp&u^anbyU?e*5r>Li#{e=d;Strz857@VN`s?O&Sv zl|&5PdHu?EV|DT3GT;@%I3Jq9AIB;5%<;Wbfiv)3Dm2SlE zVKhO{*1)*0>Ei{m7GJpN9RX7;M(*OX@axG^Sa!aibj+F#l0?-3pSh=Bz7-N`COu`|i z22ni_?ZhnXc7Y+!9f5z4Ipjr9QU`U6@_@?lq*5r7Q20&~brwdJk-#ivGGdV(2x%gE z;s8XLV2Hy%3m7G46`;%vSB1YshLWUs3Y_VoQNZpOE;2+kT`=f zPk7j$qsW&!5}&{)^iCL~JQ*Fa2n+QFeFAU9NEvj37T_GNZRE+&2ib&WhBTNKghnqw z1|PsrYBo&JnG8?H2+h=N(a8i#Jwfus+Q&d8$q*?^IN+=n>{uSKoNt+%Z7B=6%zYSW zo|p=t2({>?p2*}P{9LQnz=as3PQ{+mQIl|Te4Bc3kaaB5b}0Dqvau291P3ND6!4y^ zZW%3L>=6w3i;nBZWgq7$66~h%QhB!VE0L4*}p`)VU09 zbc9Rs_86O{GcZBFf#1MDxiEtvJ-g(Plq_W_^kFfRw3Cchg z8Sok2mC2gqlW0e5}@1pc7s{Vuw4V%$fIs7p(90Dh( zV<~WUKtd*xBU=IIRNQV!{5zBhQwceB6~;@h>b*>>VGe5rU5uB?DP9+M5!5Lv*(U#+ zRuAgFxJ8jIAPxKO7IBx#y3Tb84IQYlySJf%?$u52gGX|!Q3`wT&fa5=hmY;u0;d(S z+o3bBz(Krh65csJTEadmu zcma+;zxQ8v(6rqUcAp|a)26@{8MmIgEt;RL7r0)nyW-_0g@DG{T`mMG#`)G@*b>QD zCvDf~>#n#PS2V2|{9l3pvf%jj3@Up4=j)oa=QhBV2yd@?yMC#N`+!GCwLM}|lK|Mar-b~iO5>nIeUsSOKYP|u`(~D3 zThmiD&!UtVZ>o3NJHWMX?Y7DtN_$3A(@3$#P|E!|YRA+}g3+|y#($3W%#Rv_V8^cw z*v&nsIQRQ~<#im-es9)FfbSy<`&7*iL)3mcY|Zn$W-G7Wg9|r6YFZOizf-TrB=4~! zshG>Kk7VucTI;qI&0KtedeAmYGp$J`v0>c#Zmyt*SI{*Ipug1taD6HH58@0Y#a0KM zv=p&2KBM;pq(nFYx&b3Jg{W=H(7;0fH@Q*t}%r!ME-e{?w~pF3Bl-t`&QWpPm`zmAiseBr`$hTV`1f%o`4Pt99##T zz;~dFcm!|&KcP1;L0{ku{0@!aXT23CaDqnY1oqW#nQlvs_a+?It0ulc@FSoTB9Ngo z$dWqO0sN{It~!-04}ziOCb7;hr#d@N;CGq+qN~k#x%uJ$Y@5eFF0Iuwzzd$`gYlZb z=K%}xUiB9ReFFpzTT>1mYQ&eZ20rn0Kk#MW+p0V@(>!Lizf!`ihf4S3H~By;ehlS* zz3+h!-{dbbh#r3~;mOy{XV@{^?_hWkA|R>H{XKDZr!T@~{??6YsOMem*aR3Hjh8C(P z2J#y?LnJ$B45SP()+VhH`T{4zDE06&n5iGYC-o=s@5+M!2S#y%2&J-$)&wPLWc+|W z39wY5eo`Yb00-(D`aw8EvWI4HhS1(4p^v} zdLz!1s2+MFzNm#dGf?a?)lf-f5@0yxgYwEjzCeF7orn{ViA*~oN00Fl8Ucr92ImJR z9HY&an21aSVAD)iF`BNh*T4&ao~yf7D4H}-z2smI^b&&Z#JbyBg!~sfB2Q83b zgLne|fF>~k2l;{4NwavOyVyr$O&ARc>KvIk0gyUyD6Lq85UtBSKP(3lk*bARX(a8Ew)=`~_0@5!@TsKNz6_oTRf0pb-Ob6wXlS%L$P52@b?8Iq>H8 zlK}80eZ@AJ(Jc|KO$jhUj-|SAf}%4Eixk;Yl#3T<(50>}fk>T+Hvzy&Iw(3yl|f^v zOo)5RnZ@uSAp;aLai|5llXxhhBF+&giHN^KFNL!-l?U6$rLht%mhzV%qsf_!He-sV zd)y_sn4p*v#nNj5`tb6L>+V{D%Zw0}6+On%mdF>b@zm0lOde$iXq#~(2tja{)1q$d zM_WVq8rzb#U$hBq+Wgjnx|7B6+Tb)T;ru*Kba@dB~ZLVPXZMCQ| zzBleGul3qi;2?v z=v97ex-{dLPii%V%Hkzws(a($X+(>x*XV$4ilMIVXuRp;YBR0__@6`nM$~=K?SXQ!+BqV3x@@lz2l%Iz0Ph)kr&3t{;j_u89uCUsqD0T;f202k@~8PB`N;f{@(**QhI5hZNc-&b}g?aikEUaPKs zARqI-4gBU~76KzRKiBALYF7Bz2DFGcV6FrBF#6@v1jD&b$1||h`?g9Xi*t!LZDh7* z&+FUfrx)r&w|{+x49wtEkYAzlV}iUe1|=}p**Oqhj>UFh^(GvwxidHy7&p%4xwAI9 z({GSDAIC#+f0_L>M0iuNeZ5~7Hy5G;zMJCTWlOd_m%n+Vk(GD0u`iad;=a88IE(OL zrT5^^ugm}*_v=3EjD51-zt@+mUk^__`09VP3y9Dl~1%#2LygH~9`8i{1<*!H7(ZVdMv=0FMB5kd7W6rnGZ-EP$a<77;@E z0t_mXW-I7_8Z=2q!z2vgN%%n-FcRNH2h73&>Y*7pk?+J2_y>4~AHkkT#0ebXodjTt zIRWrZeE}mSiQtj=pcHs%081LFhe7hfwS;#8sKMQrWn*jX#|`)M>xRByeIhkAJjWBl06~$ zZ0M+k0yQG|HaNiFiBn(|fea0X40iC5A~$MD4_{)UQyK#B2At><1Go=T2eN|?P?!Kb z{N^at0$pQol8^;j*|3yoN(hgHYpZZGq6-@~qoo*U;*(n73Z5m9#2y+Q7M3wN6MNVh z`bWIJI1q18CpdJHX2=XZDRBgiFnA|s;0&S`IY^*OWOOie4ibNnX9FdJ4&XcaEzIOQ z@C_}{40E9uez!o*%7LKze8Ik<-&IuX50Ky+!o*V|9NCEG$(UVI^qywFlflOGiiGWNUN;9q!;9^(Uv*^oyk`q9x1HDj5 z*F+@*bQFYHwP#yoj3TslrK=V3g8!o$V2UYA7FRF7SA~Cb=a)H@H%-A!vY<-22K|$m zaKX-RU5gdIi>7^@4YYd`-kOJD_vA75xaa4_vc46d?Z({svcR*MVqB1UuD#f7T!d(? zg|-g|@KRh*ZLeR?D7N;)s}<|z5d4L}=A~|UXEl7=FwPCxjEnL5#gXqWi*3tiNgIB8 zr=FnExmJC|uUPrm)gu*aw$J)KEpSx0p zvFx7|+R1!P0?`ZdLEBy3UYowZa8%DzjM5BbstZrGFlqq4kqycO;lB}oz>|rT;0wK{oSxww{oCB&e@pqp^q1w|Ex%d*wq@+H((>8m zsaxJVA3EL4 z`AfKTBqplDVSECP1m#8y)Hh(ru~+;J{s)oZG>KZ^J>98H@8I8bGyfa>BjvwL^+@K? z7IpbEEmN1@yJhIS?|klLU8c#>y41$va2K-rMNB$OS!S?oz=!dB#wZ=SG!QwZPU;B& zAMkAHD0UKQGXIhpZ7}}>G_xN3WLT@XP-D2D>cKqAMJ5oW!vT!SS+Tz=VB7_`^nu=d zOtcsC;lB~SUt3z>nY4%dZV&FUhtRgh;LQ+04QumG`g4u+;bP0MUxVR}-}XfU`vdaN zHX-9{)%8TVC;U72k_4q8G;l_m-wlyKo+~Ti;6|Km8z2 z|LJ47{BiO4MF`+QJ;PI?=F>0k!Cghq+Q{)R;&A`0_%Hgp_0e9TsWzLP)WMzorX@wR zzs~C5wb}h2sh_~Iv3;t_VrsmdD>K!!ZO$kQ@=aKFRt!U3T8adN89x9gVgY(;kp`B{ z+D!DoAboD&p%tsh$uP?gz`^iS>;yue&_MJ+4@}^x$l0W!aN?`?rGqA;qcoJBpamKY z2?3bLEDgkwJl7_JgVd7~a4Zo~g{32KIwv3t19YVRsNkJW>LawrfTbvUgTKHGhSKrhNfxpAEip7(;*z(-0)LasKo(tAP$a$IlvS64H$e7BuijNy3i5k znu$p?sV7WwA;ADr*w4s75t3|?%HNC|dkU+2hkF+<-v0dx3^S&`j?jj=2xqnu& ziWFeO&CrXR;YJvC3k(DHtDo#nxK9TBU_pYUOyw=kiP#m_9DZ2jCb{b?|43xUe=-X0 zMRKh<#~g)!QH3%*11&VM7BveSO)t;kxh1(4;AnfhhI^dNbsI+X4bzNyCqLy8TqFDQ zLB=w}R#$og&uE4dh`$V&zaXa%H^Vmog6re@?4Mwkk*5z4G%u$b7mV*GCEbR)huW95 z{v|$MEnk;L|JFpeTnIcohGoUnNGNAZJ!=yD5L;hlOJCn;PX-sSl!kXpPcNZ!-5@)2 zk+QIa;O9?>mTpm(HR!DAI_pkurVDUi#Bdid@)EG~l>^oF!{ghH#DYhv+wP)&D$mLf zX?=b;*}5<%nf`pad|Vfo)YggWh~G5}czq}gb8-sOSQ6OI%m9+Z<8& zfYb6d)QnU<2LW@&LG}{uz3H#j&wO~x<>ZEf{}FwM_b1gn_a(`G7I)_R^RvgIng4=T z@Wr@@`9|U9GK^s`sn>*|pS|@jN5U~qG0Wx4GSOC>ndqmCY5>iwW9Ao>3&;5>I6W2# zD_S0bn&Y_h=(JqEiS^eWu4cXS#17raWf{f;r-^U{OYBComDKY7#z=adS>8|Kz?<

=yzrZybLuy8re@v+ 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 z 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%0AMV5+=)!@ScK( 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%0D;)BFAJWL1*9$b-sEsvHu{9 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

  • 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%0Dj8N!03_h7ljUkk32&% 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

    eP*yE#f;88^YstFKP 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�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

    oqjeDnEo7p}>Z}*rE1Z zUWG37GCaL`IK49`SdVaWt#rmxb4mv~Z{0mL9lOYx&-Gb!nV0oqGVqI2gz2csBgaD- zJN+26O2ITEDPQ^!;t(o+R@*qa=Y0B_YH41dT$8GvINI0Dh2W4$@PLa7e&TuRrJa40 zYdV4S+<<1(vUP=vrK#fhPQ{ho_#&$s0C*gM()$6s>T~M_@3Z0#CT?ax8a$E}R!-bW>yiv3mN#@Kg?l!&qgyGz{|t2Fjp971!KPZc

    nb=SqI>5Am;?uwhWw7LB>~Ez{?)R1sOlvme{(5S>uJ2CccEM z#CO&NEi#5a@}*UwMl?mbJ`AYB2Cm7zySKwbT@(pENF8eP5JFS?Y?>IiU9k8n*jAU@ zYjAC6cjI6*OEEZ+PU?~gSU+w;O*-_Ns!GIUzo6OT95HjHTC|v?fYB>Mi2Gq#k|w`5 z1ZTPRk*3oEQ7KFNb8wh*)4wa}%|lV|V%7<4Y=xWHE(S%mYa;;(+$}8{FlfU{_KH$IKK`l7tsI z~;x{;mPX$R|m2~ADEbs?-cJTMTBBY=+ zQh??Rd*zh%=W-6L(K1h!M z{(|@LO+sw!3S$~6XrfEll?=iqwzLPK7re3WF=8uK(BPvHKFABORAvCWgD1O(XDNxN zG6N89@W#BvxKa7}lRfnKnfyVVLysj~*?aQhc;!_)#828c;4YdBP1YJvk(51*67n4FLkT+ar4k!JK+AE;aj}roxLIRI^+Js2;6559XM%e43O*I z6EpTSwP&ubJlVkYoTd$)Ot|c65bR{QpJqqtytU_|eHv*+x%Y3_$p>@?3wonh^a4#! zuYS?9R%-1!kz8VQ@eW?m3NNMLa4yT4N^q18R%N9=nzqrNb1$~I6>G8dh)&!WK}jlR zDWMj(QjL?@Lz~n=Zx<3;d!ev_gkVW${K1b8~$$P9ae2Og~d1WT11_RN9sd6Rm=wmyoDqh+(ZqWB!b!J_aD)Q{x_v9{%CFR0q@Zk7I*<2+KUGNmHCpz{(KZ`vA19FTCD7!q_5Ji z__6ncIEw9{L6JU+I!Dd*pW#uu&yH9g;2CY@Ufe0lX;o5-D`0Y z=Kk1M>t~wn0c$pE!g(Z~xv)pGH42n6*T(->CII}2>AgU@Ttq1U%jJ)qeXPOG5`P|07*naR7r!zC*84mLsl0X zvOXQtc#iwfG*-s*Chv*fYWRAZ9heLPo-4p+;(eWtzc0iBVI_q$fnC>4~l` zA@$z}C45)twC6?2Ngw~Blz5uaH=PC!f=A8VA-AjB%fmHJ{TVkz`hyb^j~ULILxHA8 zVRl_LGbE008i8+A>biL&-x%^SA2NdskvGR2{)LFrO`8jik zYW#}+1nt@DgurkEe+~bH+P4aBUut~&)Ch9=w2aP|X9Jse?(}X~|F=CHQLyULzQ}Ju zLf@lx;-(+mZ#DO?SxIi=)J9U)7DYMU=SNL+x7BC(kGp?f`oH;c@&7a-vWQM)HOczx z%6c(qY~`%3ZOaq*XcB61Fo>favxH2`MTfnHg?_eGWI;>)x!1p zkeUAOrTZdN=<&`OwNaHc=03~wO@Wp)0XPb5`h>1to7k%ilC@BeK9}v|vGn^|I9lPl zO{IGkO~BS3LKi|3dp{aGE;xjQTXZb=X~Ch;LX3Aq%&%$0hX9N?(!=uhr!U^&A056Lp@D;a(sB^TV^B&BlB~;;JFY@iKR2_8@m3Od1jySJ^;^}f4LH>mGyqluJ z>M6Ok`TJpX=4vXUk1*Sk3o1sA;Ys2yLbDq0^!LuR5;t_QHy^`3|M4@{-iesy^qz4KFh>{vZIupy}=eh+=#&bd?HWytIJTe{KBraHh@QmwHKBSr*J7nd9y(J|yy zD0=QOzllrkD?~4T9dvaeCb~bUQB!W`uAJN$=X^8Icq8AVWpNiBM>jw=n>TP2&tcFJ zOIVe>fdgKer3TCtkFbW9Ox&V3Tk;cZQLgq!Siy7odX>ije06pUEejlf(CoJ&nc7rh zUovJF8n3vgBLi$ryOGrC9PzS8+fp4Wk%MAcL5_Dnr575+}YQW0#M` zlAFrx^IK7y#*0Mg-$ybQAl^hHom*ZpT~z$La<#9?F%oOVoWrkZGsxyjrosVzgGOGKmx@e?l^wYnNpu+* zG}9&bhvxWipO(#Es^uZ{lCiRMvqwu5AtbadD8lOsdfsBWT+>7FZUsFzO~7yVk>A|@ z_@+zy_6+0VzQZ@#*+0TRzg;JvsK;)M3a*Orw*=-z*PX1_-o}ZaRqyjs@H-{^H^wKv zGSxUcW&g0?-~WMsT+EewC##xgqO4(!q?ju;;V)e5>*(y&T+kC)C+(Tca+nefU8*6{ zF)wcAQK5OHk0yO#k6VmBYv|6;Bc!HKa?K(o>;N^!Dd?q)h%5n1 z6#PP8#L&~sz<$iA_IQ1jUW3OmQ*N_X5uYh)^{HSUlP8kyQeIZ5ijI65i@oq)9;{>V zKP8}YzlgZCumzNOsU)XtGYHmysJ;Ry$}388Y|v6xnmgtd6$Y){FEH?%^rSphTEo4) z6Q9M`+|$dN{|D*j4eirxe zLDb4pk}f0#IAj(d@d|zwzo19_5G9;hNK5#L8~jBa(ML%1d*hH6nMYJ7zT`M-I{7hU zHXU2A9q#Ri(xtCUw(Bwry!tvYl2J~38hhK%7(SY&ny0bTb0W~4_M*m^-+oLQoe^Y; zNLwdVw2~v2=4^@SoOR0eVA5FaCyD5qZf5$kHrT}WJQdh$u9%&6Ovg7r%K*402z}Gi zh-SZMG&5*6z}4IrKlWbF;Ypqy49=Ds>2jEkBQMS~L;CcT`aD^5_-(`R#d84Bi5B|` za`B?q{9SoU$|zX(ljw>`gWhMunUVfcm%(2uU5|Mfo~ANkWpSTw6j0~yvvfm{3Rl-nnh5?`KaosQOgIy9PH zQS*_}>7}wq%d5KrT`~gS9znfX(_i-Ycr?C@2GMDv$_WQ-`kMV|^{R6K*W5`n8gBg7 z6_o;mTb!HM#ZEaK_4)>Bn&dH-!#cfdE)!P`U(k9StiIEs{2q_4n62Kj}AlTXp~2L-Y4*;iyZx9O9I-UgOU~ zsK_TPXrv`r9D_3KSjM%BkN~;IE04Or1FUg1eMZ^N=B+F$90Vg#h8|F5hQ3Br$*&#| zE(E|1kELO^^d{_J^2Rpa^VSyfD z85A#%o2;%Z?hUl)xgam@O_#UB4(icSF=%mV7CX+@U8D!+*9`8wI@4k+B*}K}>dLS% z>w=0r=J`sll=C>PxChc;YR^LE|OF1sp3#qj;Py^oJ}f5PZcah-=*n5ol_0q zY*jz&^3T4a88dPkz{NZTSkjQK%=~}HjK7HlVG;%G`92^O6G6z5T$~e;s%_j2pI;-} zR0ZqQlpwus0E=lp4Dcj=*>TI0#+<9Kk&Y_S&L(gQ5DxYGL^An zlIOZiD39~FA>Ujgv}-$QSH3*wMu#RrM5dVcad3-Mt5Qj9sXLdMfdSKLM0dB6?Qn>`b~){iAi(8Mr998Bxm%>O`OOo zsO_+JwHbLAbYND{Dzk~YY}d2Ix-4@$SmVao?$*p*@*m(A^bI~nh_N`9dC~@+Ljnnn z{QzH~8sbBsd)XYn+%JCm;?xBQsL68?)fr0>iPn6mm*UXg+3vq8 znz^aocqc)~mkPhzoo>Cm2=wml;*(3ik+)(MPG4<_e#0Mb>}espjuC{Er{`&&`Za?6bf@dB(IG0xeJ0ywjgzT%e`vMBfu^swYBC#@@zk zTT^<(C)WBY?qf`ubdR=h#CKMVFayQ5kUCh~wdndtB2}`Hdh6A0;a=2IClTPjQj2WC zrpEC|j~-;0y>`%;jmDnLp-5gLpzGdLrjw6W4Tzo9g+?AN?M;YmkntY&cxh!2kdonO zzko>hgb`CO@FM*gw=RCeQgv412m7OSFDpa*_-Z}K3+auCdB?(Y$se>O-vUwn4nJ(2A+04oW~pLO>g(mr?77ob#DaNMnct8 z(>y`}N(trpB|Jn`Xl6Sp)mk=9#@M4%-Zr{~VF%nL;aZ`Ba;S)ger2@17V-jbB-=f7 zB2t%*>LU%JR^K?tOLV2Om0ja%FhMwbvRiY+`$T0{j%8>}mkx&|@Cgf^MUU@M1yAM< z{vdsq{|$A+ogugOpT*DOZ_qtnXKNWlP#Or-b=?^o~ed|qU4k8N4$p5@Mq}< zc>{argSM0!Xl=`D^w;=T_yPy}1FQlEWLEGX)$kksS^5Dj>;n;PjqHG_e#Wiz-D>5J zxDqlOkzi|mlOGb5EvZ7S`tVHeBMK|qD5fJsWnd}*H9uu3}d1b%fUPc7dzMYLTIaBAL`n`HoSr62Sz0sHyaH8&nG zbARa!s&m>X^rbXZo%OsTGFP*4z3Cge>1jCX#RGeJ zLaKufy1gbMa%jDwK85Vyyo~Oac6C=v_ zwl86SxN?)7vU7aBO!TF`C-YA6eA;#KT*QoFya)?k-~z_Vmta2gO8hiJ;Ow$L1^w$p z5jg*_zFOvHi=*C4;kr!Ffogc!wlUV|IBkTW+@lUGl6}bemZ^4 zbQZjPvH12CyD?{mn6pD*-)eTpY4UgUQ?_$ne17`MpylEzdwU!;xY5&vXSi;G*)Fem zx;gsg9Sl~zFPQDhgJHYAJbt3@e{}wWodI;LN$*N z5mzb1@76&ya`fh^fFmonh8IQ87)tF0EXo~Up1)vS<26AUH0hJ|9@?;|8>fv`J#M3e~JLFYRR(qj|+ z9JR7D=&6EZ-X-!-I#WlpjZbY>uoSVwT-f)Sy*XVxr|U8Y`zRKq+Bq$`jzJ5NI2!FF zo^bSho57bHG$d;P{eLknEX2LCV`EV!Kmp_K^He6{rdi^R^1-3_9=eDsRZeEc&LOnY z0xb%V=K!tUOOaQWy~$D<*H^dMxS+OVe!A$VYEfH_sZ*q-dF<(X`lO%UM?<+@a69Ni z1tDGRDtJDa_ar~SgFvv1E9PP61-z9^8BPqf^hBmsVuZ^Q9Wx(K2?`>O00hUs_5&fw zPMKB0H1em*fp{L&ZGk3A%7c@Yklf+k#G&qo_iYdd`9MDG4bh|+>x+OsEflAWgE+v! z<;8Ovs&-`-LdDkFdDsvFdDB59x=j9|wRd7Cuizf7VL{|YljIzihnLyV z!!x|d4J@QZWUZ?|1R+OxaI%60+KO$FDIOHVMR#R{5CEcQvxB8v#dV9n209ED@Kt_= zg|!T7R)jaA3U>G<_u?}iCt*sG?Ths)4){0wP<;1cXIT{p&k8<>?_}c867RA^BOCzv zxYZfbrDyq2RPf8J4=AaCcxiutFGN2e6nZ)WQY<-ij??e~=!9?XSgek>Czh zSY^Y%K)}vgLM5*wwq3ON#oWQY_%21a9dy98onRw9=Yau2_YgzkFLniMIXdzyyoTOv zZ}-HT-`j&hi&R?0X&iM83|Lnf_-#7f=gr|xc7-@P8nV64fGs4O+B z3LLL0MzQ4^!u;EucfC)0=bJBkJA+qO@H;mY>$_u|U*9*qXWR9jFJ9Xk_zD^6&4~h+ryzf~;lKFf*hxRxwt8N8d)iaJ*x#T3 z9y4pVcrLw5WLC!Tt7l+cXT86ATr9HoX@cGeYfqPa!uehG)=nJ69W-{2z7su7w`QeW z#D)VR*;u`J7Do5Q`k9~(5sy+I0+Ha2WC97;J&MqpwOJ0$8MC)v3-xhhHqNq--fHC5 zD$fvP9?hbp;2jlkGd)DFFJUVTtgqHX2_)NEFZfSVJJ1QU;@v@p`AOU>B>eQ^J3N_> zrFWb${l)3hIZqxE?or>9QuYK#5J9Jr6%rq^4)wiqj*CPkRwiW*;-tvd#35fc`i_Qo zDSMoxB6Myv?W3v}z1>SkGA}N8i8g(ou}@QkwMgIr!9sO+G2iY&+rMMLgx7QnGY2W(si zS5U4|8g|C=Ojj=_Wp&P4v{xYQH9 z|3DU+iLQrVHw+bgW%-@^;ZA%2)Ag{v+Wmh|V^Q*Mx&$RcryKgd05>% zan1v5R|Mo&=RXpIgk}U^=}N2bB<%OXr_w5{V1OU8q zBygd5?OA991@a@G)ra%gkBdd?DJgAo7g+NL^FTsJy%@M@7a^+Em76wl<(lMt4Jm_ z>e;gupt9P3TJYcg(ELl&7nsiw5uA$nF=eMz2Cu6yWR7K(KNbjEs5|!}<&HTa##HW% zj06Lf5Q4&CpPI~aQtQGwzbrmdi;t)-jp??iJEw0f6`^{IlUSmvq+<5an>DO*UGAfE z$=wxNOI;c+P5H{90ABJI%4~DjDGMP7zDIn_HM2Cu&Z9K`U=Ll(W8pB|Wqo=m*@MDA zl7Djd9}HXg1|2-XV|lBs<1KjyOSmuJ8TfCNkI>KaEq4V_lgh}a84g|fz43pOb3c8U zg*Su>IOOmHjVCK)KbH1QCw8zi2T{YFNy^`I4+}0(4+|19_afu7A7f=V3$S>FedGX( zN4P7iNj2#Ux60O*K~1)SjdNC6RghNul9<|+>uq49)TQU%mw#=Qw?K7Cj&&ic35B0QQ|1Br1Ge*HQkC%ARlYnN zCIC;?r{lcPCzboLbqsX#gX@V*^{EP_C!S-G z3h)VD$_9R|F;hM8GVz0J<)q)C!_>fI!Hez74Vc+nqKX9qwk4bQ1zvC@{qD+f?n(_1 zmYs!oD4&J0WDN1|Z6SJnh@{`i3}7cd!zbm4c*>S7H2b@36yPH~3Beb9fbWwhd3oaH z$J(BL2{l?zLZn~d4j$lJa4^b0QJUzRb#Qeylc&V8T#5&Xz}|>Q za$X8?S%bO>0d%yT$-=m<}#G`v=h_M?c(lXhj!wQzCqFcZp+heV^_%1!eyEdEq?B)5_d>p>oLiF zY;4=!d#R#NsF{>{t#~yy_t6k1^Kf3_fO@P$N*Dv?iPC?1wM>#xr!u|)6cAxi@tTo~&_ZjqrjvWgqnxxb zbUYCV+Jxdla85%>gC2My_de_5ND6t%@EIfapiZuwOQuC>ytoKxLOyjYuE8cEvdV-e z4o9+*T;mmTi6z^MExh6cODT2`k&2u`y`J*H3zn?S5ndJ2u52I4pWDu5q5TOE&v1u< zN4SR%@Ne>~)fY*m<)ip#Qz!lg?#%)|COY^9{}2IAj_jYH{Ci;*NmYRIQl=3;zzROY zR{S9DVQcod6D!o%T~ZH^cq#oNe|G;MJxEr#MYTXb(0_wplODx`ePE0PsO%r`mjd_u z1wPR)Nx`HAUhwyfE41uNVL{G92SkK3A8?(SD3j;Ld4le&DL;L_^s^x)XEDFyH+Vvw z_e}cBq$N2ZX6!R?zfYUZnp$0AL^=&(8TKcAX?stShsQ|V`CGcMNy-iYU(pNreT~Iw zJKpE84v*U28R+Qbg*2B2`w|~!ZeuuoS>Upn%4&WfQaPAuw%EFxr1*NGh}Rj5=~OH?Kl>*~sk%%X z=X$^I((K^(F~p~D@q(vS7qW8)H%?v-HMiF4?2P;L32`9+%2%t>lOfrdJEOC0fG#tX zhDwUJv?qQ`Dx#ZR{`XjAHGesu$8HZgkTkP*4zQp}HE`0NJN>SC!R*+tmH9_shRul2cFn9_8W^7BL^Sg9)&UP$*LLH#@t- zD-=@w;2^JZJ}@hsP-X2!OV;xAMFb?}NGR~4gm=ZYEN3nJQp%F1(A}FYN(w}ecc#u_ zl+3OvNOTpzju&>40xS?7g;mB0mDR2T;#K$`DUGD)`zu$`v$D zz3A{O0@gh>5n2_UP`L!v?uV#Sb5w>r+(B)Q&VJ|EM7^3a^9;TCC?0Wg z)^7Cp6%Nt{?x1zBCcMO09l>W%%Dr!Ip|w^;FW+KNgJP(A6n%hna4#f7#>Id-7n)IE&7qeby2gUJ$U5qr<)>=V}I- zXHlR!@$`(qXW2D6h_6933d9HWXlat^;8nD82ZuhgOtcbr$~u~mzIW!(`>3cN71u^< zaE_BrN)|`Fw+)hN(_}M*hLLQ*H}<%l*iBLi$6i>CsN+iaL^GpF-JDLHhVzlT2Is$} z2#)LGSEt+=A2fDhL@2#@ry}9kSxxD2elT65bHrOoD$T~RoEJQN#U*w)$g?TS`2)$- zr*RHZ9=}vL4?>g=U}cAM+XK}}kb2E_qwWX2M$ufCA}yNi^kkz(oXASls1_^6=6mOo zo1Ai^JS2fJ#YrBIf%2S28))r=*vq}0LMRRQu#>hBhJdBAvTR*8!22OILXlXY+H}RB zaFjpixu7@p5?bki5;Tgp;U!+e);vouqCtz`p_!vtB`+tP?ngMlOW%jf;V5mPH?6!7 zOSFQfs5GjW!@Ew-YT}cIa!Rs`R`f6B~zRVGCvL&CYT#fglfoHUX1O63%fQ|CF zJt72lrh$8@lAdvIuftQNOpOb6P>f?2M)<`X@(mgsp={i7F{^#R-|VfZl=UkI_}u#= zEGPF-gB~nre6XQp0-N7r29Toh?b?Bg;s8szv-de>hBa&>@*(L3?(GNs9kyZv+oWR- zz4toMc?HV<2*%&xSM#G-ie2#mY{(DxL&=D)gAY)~>I>YbNMg_NQSE^K4_sKu0T*sX zV{Kq7){4e`zk<%}osIu7H`Pzd&@FD3h;#;uY@GCwzF1&sPFVM@8IsO6tYvTV8+5i9`07*naR7sS%{+u#2I3D<&`6hZ;;3M9kh-PgVkl;Q_&-MbXdrNMi z&gdEm9Tj(R9`-9^gLOc!rk3wK97i3k7y4G}r3Jc&ioPwOuPxqVle*qXx@Vl`9*RI` z-J_Ic#R18Dl>cZoaFD;6KjjehnXf*{OY5)X2b6U@<~x3pp5ps@NV4f7uo&UkI=L?$ zv}HLhG2QI)IqGXvDR-QXwxtS|5&An+PkmpaQzztUO%0McpIM}^;U2AnI5>}fJK4R) zhDcbLvtu$(SaZEsTwf_1)hcPM%w&U;J0NA3w8;Ad)1y9@b6HT;qc+jg_fx+@Fn^#H zmBRw-1{O$}eWxC`L9$f%hmt zh#znbUr;N5$S6NAi)7)WRKqv>D1NbiNL~T<5|aF4zDxJGDU9D1AIqo@TxXY_ojofa zTc^`UoaRiKS@bj`<@z)kwkM?#q16NU0wvG&ept6JPnI-Y4}ywW7K!3)&QpLi)>Vm=eI zkJH#Qa?2^ssw5Dc6h6~D~vh#IQy)6(}h6n3*7epUE)YzA0yomee22$;I@eS>gJ>*j^|!~f2O-H z4l7;3d7T{Xsj1>JUrRIR>gC!xjC*(J-@(uLwREf!UZB6lE40Pm&LXaEUZTDtM3IV| z*7M+zOt{Wb=a47IW*(ZN@uoUcL_HzwHLlTQdf~XX8i4?z=8acj!%y zh3=9-J;(pJtpAtCbkL!gRfqSqDDvqWqQo69OY-m*FdJr(q+1@L^Cce2p`LXY#x0K`>T_9USH~h~J(|7p zIAK%#BF#9kcRMCYa)4LUi_PR*G@|mT-EIrjy@q@8cMh$tWBHGq`kPN>Q}%BZ8cbhK zWfPkgjXLOKk%ULub9Ns~wOBgKoYR>lYKDOH8};HKd+&<)-Q`M7Mbn)a;hB2N#pHLi zpeD=UJS^#~^c}0N zyW*HR7HM`}&S|(tjzvMzV;RfCptPAsH)l_PXv7-Fj3*wUbxB)|$HGqhLUzDBh$Sq< z!TCAUlul@u)o>ikarhGHuVM{LWi(1vE>y!xEMZ%8@quoSq?1F*%T>V#)vz;L*SEPdF96 z1H}jM0Un`;ujHqVV@8`xAP&k1qiqgMVvS!=EORe#5BJ%Hpf!Fe*0f~_;Ehn<$MTDw z;R}3%6*n%MGQ$`gAkqO0sqnSOT2sUZ%CUqrTSCTN`))~?E9Je5>~ zRveTq0$uTEqT74cjvE>VSF>T_lB77Jvxlra(=(>$GMVlz!gI2_?7*;%2(b2 z0=gxvIYM_!Amw-L;(yo1iko==@0>SWnSA_G@efP>hY$Rx#mJyw2%$fLgL-Bjp2prx zA$QZZ&CoU|%)Cq6<@xU1XB)oQEBBLDiZwzlJlFNJMypK4%JA79RdC_X$ z7ky8NjW#$rhnekw3?|CzoED6J6(6MqviS=C3a>*Cw_pxr7Noz1d-Y4JlUnH;{*WC5 zc~p}NVC86~L9VZ2?gaOtzK;@APQ99(UFxo|_ZPW}cE&`G71UY(Y@)$0R_5#u48SHu z@{+9p&KXD{jjEt_s#AC?OJgkpfs;M@kJUS~srw1AVtCAy%z&(@2(qFg=@*hSoib&8 zmWL#-9=E0yowMAbE5MjE6kVdmm0gQFd>^@kSu3M&b}uKfuwx!j;TR#f3>DVcaLguS zCuxZnCMncZsv~$nfUC@3^$}j>xF(Yv3Ca1zBezU>4DbPx`6$O){O7PNlybL+o%E0L z9sZ+vl7yG#`jJ(uuV5{9_D-sCV^SvQQsGVn+vnG?0-$@mwYO4hHgdeZgnq&c{2OY` zleCl%qO;cG0c!g*{zdu$65hc=S_;8~NbnVR(qHf=`z}C9=w3YI7kmee2{c$N_r``5KTF}sV z?QzNjCZ@{wlzqfmoKnwD;c3L~Fm<@nnzv8qHz(JP`s*>m*FCW3$H*tWc%OFjXVbBH zM6=Ju{wIu`v&kBl5|71I$HB!x*Q`7}_voI}tET15)UcwN5MuUQ>UY(MZ;lOkcl_67 z@s3O6T{V7?aWt7GLB3}NzUQ~k$-K%F*V7xBv=>iYyuu6Gz!R*|3;q)renJl=`)-#* za^7VkZ*j#4c2>tRLB<7fxnr3$)nskye99qh^+QTV;25Z&ayLv*?$ zPAV*=nvj30j6Mu7eg3IqffvWKJ))17IiM_4DJll-KOI`3AWkepgCBZf=P2Dug9mv+ z{vqp&UC2L;eFu$l-ztJ|JM;=K_7Q4yAJJ0i#eByJeS*7i;W&TrSLoo8+zK?@<2Yzx zLk^`2RftdNh@#E9hrOwaWHp#SEiA=D*++$a!6keGsL-~cHa4&@9S-R(q7Bu5 z8305#|D!YIW2kwKc8qGm@eywB+AIRG>XPd#EGn~hhV~47|DsMRPIG&p$3*kDKIH?O zX$;-mR6CVHI7e1w$#Yk3n@UvDG7Hnjq}{ROUd)Uh+_*!8?wlulF*txJZPM0YYag`_ zCuD?p`3aK0+{Nk4t~Q}1E8ioEa?4%5&S^tspPy?v|D!1rpt1>%u-|++#cp#ruE92m zPtq3OOpgzF;ODA{`a^GiEIWTfU~Y~P6kJYawj`wNe^^LO4lVc2-UsAFeuBHe-I%ZV zJ8a+q)?!H>1H|()khon$o(#SO={NZW-v@2q9L*kTse(%G@Van*cH)?03}R%c2CwX@ zaBuHmVP54UEJcg9c7uD-N=qC!?2GeYOeH`08L!|$EZ}=s0iYIL-f*&l1A2v}S&gyG zHdG>5x6kO9``Uac&zXcbWrnfAAK@FkN&zz3+soq8Xym=LKsCN2JDK*PM{7~rb(TX? zp+fl&RDCw@Mj*kbfiIso!`v6?*A@dG@e}muyE&j|Na8NrWoY0iEz1mGWmm8fFA)k| zfIpAYH>k{7jw}RVX|2eq4A1a@9s?gFD)@loWrN+nb|fvwJjQj&^_6%=k5J(uWvwc4 z!F66@oHB!&gj&UzGlwKc+kIVvtPdH!%$+FC1Fgg>e21sv^A1eO3T@y!Ucw4B@*dWq zY>m;HW7FgZ<=#PO=eKvP^_P#SIn>Mcm_a~p!gn~yVTuh`mFNAcFWZ;(KHjF@9l~@j z3Gz+-`#byoy52W`r;vzKPQqoO;fe z&5Z!(8^I4;h^+0rWY{SaY)f)atL(5X*5+;FX_-OXhchSogkrKorQf;&UK!!)#4&jKt*~zSwLz|8=Rt;6Q zg}Q;p>g3|3i!z1|Nx25A%qL;^BA!r#f3WW4=ft0&3nZ!{$0FQ*`de`ikwVnVU+{!s0G#)_pHtq-XmcH^!)zkMaQ)rp0;VBOUCNI3Gpk zC(?8_pfk<$#5p`sJC}*j*Z@0|5NqDR9&7~isfu-~pg!;8PuDy7RC*@OTI|zLaq^dG z-md4Lx4zo4@mqZ{=J%a+U9*3_Uipmj;j2Y}PI_9Y*i5RkHsWvyH5=b>uJZOMfj`k2 zj}-Eg2!=`5%4bZNS5a&IU?MJVFRNM~+g#xshO8fJW0CPZ$ zzo?)2?#7Gg>_m>_HlMZ2r^SM1tf$G)_l?5w2DosR(R!)rXwDn}lW({@9!O(DnK3SB zc0zs0wt`N_SLgco6SS1iy=Ze`_@IclPQ!|s9n!HbLimG=Ro=5bBSOwpsxcAMh zZ-U(N+l5y-`xIjn-H!hMxL^ML#@S5T_mD_AbJC&fU=eYw@qiLFZZg+ijdj4a+@k}mlp_HaS&Qv0 z^b>4xD$mdyM`@NGQd?azel01Y4pVVkx6bdRDHx651N8PW-zq8PrncMYj-ga~d42AT zXDC7R+*1UL1uu9lpyPdywS1bYD$2{Mz0RGHr2; zhK_xQYKTzHLjK{^el1bGch1quFOE=3|Dd!ngVZh>`i3WH>}_G|3nR5sSfazixrf~l zPLOj52F<%VsV_>RRt$aEXv$V4#bKZ00dl@^2fZD0L6Q297~=y}XhSCcH~66trKX~@ zVR4Nn6k-LP{T(?cLbEqJIcy3~)@pP#hmy#XRK{@Xon$SD_Xmcv5B*`dI?R=(4O|v=S9vq zveu*npk5hJQ^2*^ShI45`Q!xF*i|y!PnO+($=d2;8yCx{1_MD>;W6P7&i6#a@XAu_2EE_W0;f#>t{B^r2SSKJo<`aVM{x_0g?pq#8Qhv4Fo--)<&t%hp&!xuIwG`q!lz` zBVJ5z??7T>-@|jDpG+{*tcdybK{^(@z?1wLzC+4$Tn>NH0UhEA4)7H> z8tDJ=JoIXkThrK&;x}lN;}?7AURLebhvko7s+5ZL^{O)R#cWC~2hmHHTjrd}7-0$IV?k=|@-Vc-1TSjVtHQHYtQM}n6(WT*pZ%XyK znb3AJc+h*#;GY`)Zq0xH$p76;k`vG6i1WzbS^V!XGMhkxM^V<0Q90cRPSjr~dtx+u z8=ACo?F+pJ=2}n}vzsS6y5TRjQ+@)htp)C+@3w=SgEn%ALh1=CV+XI+eV@6Yyg5$$0-M22-PUaEz4}5@Hcq0Kcc#*@@+a>nt&V=LqJ`OLJ#Jktbz@S zJ(0L;Qlhf!sD?BOq>E%%Wj~)GS_DIf}Zl3q*>;UCN4$ zE+@~k6Fd3UxqNEG5--Fe6bUk>llRgNwlZkpkQO=Ie!XZ#EypE#l=otbYgkz|Zp8sr z^o=4iIg;V9a#($X>O_}!uW{G`J{sij;tsFHO5E8m@MqCx$R#AT_@C^B_#69!Xy8#1 zyl3IY2-fxyc6JnI3ALGD;okZrUd6B0PJEOr@e0qdlGkBHg>~Yu#IN>O(~A2@1FM z9-{6uxomK$a<2E)I33Mx%C~?LK3gC?yESJm@@aeh;u1d1GSKzVcSAyH>>iHmM#)V$ zQPA6SQnpTQ>zV{JUl0!XbX#TrScH zCW-4|6sNI5C#Yl=AJ&xAD7(=O@|D+?b~5%t)&V(p{%+v}yh~bDG!b zO~cu79$rCb_3oL4;@kl+lUGj;`-!;m^cI*VF-+!5>TZ?nzN7=XHD!70)abgtW%T_` z0ZsA7)0p9Lp{sjF{<)CptqX#hQz?%BU((*CN0Kee&imFe^LIq#tEwP&lQTgR{YU)( z%{0>w;7EX=fhK~6f=1*-ARtf@AhOkDRd=gyJ|n_k_E;M1bIi^B6>+JHM)kd!8J_Ou zX6Nj)_gde&A+#|Z@L!NhHtDMTY$X2uIa}j>MKyE&E7$MR%be#6*2NwE54T;P`Z&wTt| zrx|1%%a5f;d??t@3eO>kE3+bI2evr|R(-U>v$)=eEFe0)@}R2j3I%2SPlNjcy%}zx zR_vXVGd*bb%g0QkIew43QNHL9{M!+%#vGZ|O~+t4o@?mimrnQ0A;CCZ&skykED2G0 z_5^GSk!GBdT}{Y84%e*;`KKN+G-Nulg>Av#Ka}j{7kDWHxpgtx_a$~R!3U_L$%WVD z@-`Xgz8^ z4yWkx>o=th1Z+$1a-NBn!7gA0YcVsaeA9i22u|n#uc#~Q)sXl~!T3a|>CqrousJ18 zXAReZ%)erkcRi3d+HwI?$v&Npe*Bn|39{e9#UfMmN+Zb6TT4;ybgQVp%h!?0I$Yh@ zpDr;C&TQ5kiqMt+9Q$P}&i^;PvnQl!X)t!1>WV({eBjT84>Tv?T>9KjrnxYW&quX+ zUj%MV3AG*)s$&>1E745@D9I&HAr)V9*qq~~n)0X~@d1)lm-%;7es_4ORvbrYpvn^^ zLR~;W$8sA7+;&;+mOcEnM0RiB0b1vbyINVo-<8*IiXq?!Z1JWa}rxLn* zfEEWdX^&c1;=#Zgxx`!1C{Jy7cv1e+1uR4jTb--`eMtpa!AE!vA54M#v}GwvLo#sY zx)gCbjtA#wVbOexSl}$r&yU+HEa3@W!_Oq~lJ9ekT<)nBr}E za&GJQ<=b!IYew#z{s~XO3jnV|<^y~Lmq_8~GF+@j@U$iD&_OJ5NG0}V%@q0^XnC2mC|>6fQo|rjW$;r3|Y_KRdvqjCpy zmw4E2h_kkr&`5`pW8A?G&&wh|9PK~CZ}5yipk-P8>hfy)vTz0U=qRP~{CB*DJkSe%#*$^nYii=l9tQ-eU-O&*b2ay2$U7(!aBJ z|IXLE^qXEOYjLRCI>rdpEKTV%S87-Q%1M$6ZuC{`34&N8fC2`<}jS2+78)K@K_dSAX&ST7}T4M zSO_`yf;&@3FmGS{dFVI%$*klA&*EFJZ_o`<%(>&q-@wB_s2DDCe{B`O+=FfhlKbT`CSgMxiAm^S{t;mRS zr8p+25qsR0b99x9L)R#UH-KqNZbV!-@i}6oq3d3IGZqu}KFJn+R^sLK-H7KY!82Cz zVaNA{IOM5wPy6}^O6ueH2MF*|3Eo5%OUf7#f!Rxu5z9|tMn*(&Ug?F}3UX(>Xg zxb(-*8osAf-Yxnd6XN`2j-&G~@Vk0jdK>65NtB)E;#fn!>C&@DnQ9ChV=CbXDU!rS z3Af`n9A}vMsG&SU?wyXSew#~v=S$DD=(mc+H>D81!6f0WT!HI{^lMDbv8Mh^elWSa zd|hjQ#oRD;?{IN%pRyAIiH4ZuO^@l>gr&jjG?dNNQDBZuF*FGbf3`~ccFmKi3 zdN%jPd!0ly>s;|Nxs%Huw%<17>InY<7Vwb_HfiBE^m5|$>&=q-J&(Zx{)qovGC6MO zfOO;3=Nn&{e~&@?v~bm>V}3X3;Z7|1n}fQ`kMo~!F7@4WP9)-Le`J~{w)yzaA_;U@Oox);AR-7c+556YBz&Z35=@H3FhR*UjfPQ(Ya%c;UP<3;6!(C3IS@8cjC$A&l_I9fbv zDcpbP#n!y$zy@hO``9 zqOh-ED>_&@m?05(n;YdWqw$Kqg9sz@DRRy=G}3GCN2`LFZQMvJX_NhZI*6@&1lb!T zbU?Gj8Y-XR_vo=5MZeo3tv$ld7MTZ?-3DTgmoX?(ocSECi};osc(yuNDTivNobjdJ z9OOgvwk*L)Jj#oapzdgP(2feDRLJQGdPR6?9-?d*>>yZb(XnS&BxZdamGg;38Sa0w zvT9P2PPe#tj@pco%`}WMfp8joCZx0Od9hHqN4*u$n79K6J8mTXMpm<&^}p%lYSq}A z(Q8U^jQ{LCnzy@H4LC`HV)}L-;$@BMC&?P;H5Zg{oDhUhXZ6viEHXuGm+;@*zzE#! zB1i%$4^A3$gjdlk03(q*M=i~O-W~KwZ5WKCoP_L18gQi2HPA&oEN*ZTwY1i$=iY<+ z%qD6?616=)g|FsM5x3JKOaldp9`9#k2Ses7{DMd6A$gNmY4)cvfJqAHd(hGw=?Bc^ z4J>*`KSJTSPimkxA3~%l?@O)#@M6YRfEquFebLHQ(y?^^cQ6-ocp%Rt0?9(jux-T} zW{Ok*ukfsp&>~K@fh}G*9ygSzP!BWw2|Z)nH{v@q_EVWI&m_fM!G3^Byo8xOM$sv2 z(wC@F9J{;%#ds225Joep6MdQVJlb-`?0pfaOHb+d~!&GVp{nt z!Wc|MAl7A&uq`lUGpI?KnFdD!tiaBf8$QHO4jo4c&*vRo59bkc5 z1@T`ggR|YkLVA#1@S+f?js;RNhbD3eP-hmxqkap&3>EBn=(`jxpBn& zMsWc#OB6vr6=fQgjQK=AXew zS)w(2JX3m*>ro0q?;@7ZLCr?$i?^~z2WZ^`3#C~JhBz}f=a!=ep0kUzLebW5r6U~7 zLGDB{Gi#N?cmO40ZEhz+A5sH#(8~(Ykl84A?G&S_a)0J_sd^(@!E4O-S+YnYHE7;B zvPAoGjnPQOF%aH$QUSa8JuP=-c2eqnhteX92r6@r&e?U*74S~>sLC~d%2071VGBp| z6aBzt65yo*VcHXe5PJ*1#9UsQ1zIF*cT$^^?cLjZ@k`Vw;)0GiU`jRMz8mPTvqz8Eg8}W~L7uga5(V5@S5AnC~i01MafznHP=aQDV5e=^7I&X8T zOphi1N&J9+a3sC;TWJTK(nic=+sXbS)#`s(Jv=BlU6Hq>&rpeP@WDKYy`nse4YdD) zzKfmw18jekWa_X#iY-D=(!Mb)l6JN9XXrJP`FIdYBD!XXI|%_)b}-E z_lVx3QMY@*vLvQ)CjDf?PrfEcDif-K`_8rY`LGyxwAl>-ou@hLG)1?*xxu`L zrMr~CoAT1jtTwTzZmp&f9>?dBEOB+)nqYIJ)0e~5!25UTYTw$nuXW1m zlHE5>)k)L-?^%TMaJ){ZS;%m^Wk+8>`tiQ3=|cl$Bo#QDs`{-Vhez{O^;cTVx+^yE znUY#pd?DwMoT~+#ChXy{Q-q7`-?wi+PL4<2o?)E5tI3r-yBS6vp;I(2*Ov`n*l6-Q ztlkiD-!tf3y`JyZ{+xGdr;p4e<#_n3tLx9pcnGiQ)nm7g>Ot;#;fuXeLD@kG@Uv5_dNc*WzOLGPBZGO^}k!Zue;JMy>G&#yCN*T zLo;=LBt81gqNYmY^c5d#aIkJ0y*D;m9u_iKBDG>#7LDhgoi~llGq>^*8fCOX_clxQzEd zX#ZR|6{FRXr1 zyYJz(%*6|<0h0~Xf)?$w0@O3KL|sk|^#V?f;=+mPHCR1zp$R+}b!t_F|8XZgl_6F= zD6dC?lArlo^J58V2+>(rUSwA^wws)#9ETyrFy`PK@=5tC=47C4tb1_{XGQiq1kZ-o z;fTAk`-g7#r1yWvw&0R<9pWR42q0ONzw3_5)Xuv8b`)$|!sJV8Zh4&3^i0>6gKd)` zs;2_aS1P)zZ^LKnjxLUkXWqa;4VNylh!@q zbElqf;<@Ca)UKtu`l`9>#|($8K^`YMX0t1Y*+l&9ygpqFGNnThzZ}K zm|co}C+qL(f*Pwz4G^PVWJ2Ic+kxvZ;^ zdHcEW^bU6H9jh{;i~mZJOJ!G3OfrBKjurl)?3Kf!^io2AAK|h5`&al=8N(c4 zS^i`v+JY>r9S8zm(L>o8Rr-GwZp$TV%H5bsyFW6|e?)s-G$p#ZM+Y2fz#H)l!K7N2 zC+KN(nCjsXj_|8IR$(KEtmyy&#VKqip5S{PgXJfpdtEip>&53^l_JXC15<9SYw5~! zy&G-oHx9_Uqpx~5fSz}R4ZH_3c`1T=mv8&s^MG4ws_Sp*e?Ra3`>mSuomb}Eg!YQk zIS=+~4gY4e@|^-$Hvj-{l*Dg%9kS}53)+LGiI?~7<0BE;xjTKz>%V@r`)QZO(;AJ7 zAD{L%hH}{BgWXl9VHUjU_D8Z$*P1DU<2^cMGDWPHk6- zS*R%cWa)r*cp+8_nNQ#M>`4dF*cKnr(y<8S<)|srqM6wgR&#G!jTZs6C9f`gpSFL( zKcF3_hHTUomHAurRD7ig8hLd>GD4!YMV~UVzARG&tiSK2gCmxJRbkB$V~BiQR%zbl z6yhPRGZl$X14nTXp_sJ~F2zI;n+=rE>K+PM<4?Oy8TUOM7V?oE;tN(FT|(2uje z*6hkvtIY?gl3Oy*XPbC2Nm{@PuV7ZTq(s!<2^=IiRpcRYisan4L^HMvYjhUf>nl--t7zky?=tO z(G22h7w@8db%y>pL+y{din_K>o+tPA({@-oudsX>jaeCK>s`%1H)`BLRJLw|U`|785 zzPE4no$s9=bT=D$*f-|z8SSTEO>DP%JAmQNulRlXAP=gToFvI$SLe2=>vtXA-tW}* zwbRjiLf$4yrH&-2cka_6k76H29V?|cp`ny)}r$m*46Bnj z{1;WZPo!4b74`8RD(e9~!hG;12OuT8KypF1lolly;gIKKROO6O<)~q`cn3$N7+=M@ z9J1d0l~cl?>$Q5wxa(gE)!>T8mi;OrD9Q+`$2D%v|hn3$3yrVryowEDuEuPhuDJ zA>2DZgR}B%&fy96_C8{V3)T3=4s^pVU=H>Y&qX7}iW7^1w8I** z#xLbB`T$Q!J-p!W_LrdZ6Eb`{@mdJQF=C8aX=`?PT_{X(j;KQ|n|Z!50&!A~Ozfbh ze<-N~5=U!ZMuP`jp_pWZ?;&oj13rjFkru_u@d5rSUf?6l@vfv0&$AK7m1q?pARX;N zMcsF)`}WwZ4zu-6C|ql0(3L?|sc_zAd77>@mjHtQWCjkmCkL0&bngNE-zq!rI}F}q zKJfd*^1gL+`Y+&ryI#BA&$aUVBrKDU@bA!ners_2F1N%jn$vyr0q@8$zPLocCH{{E zf2nz{_-{T>!N%jWnWxl)V8k$G_m6w))8^F>t~b2raR8jBd6ENWI49()s9CRu5DYJ_ zlXP(WiTg2GJ5A2`qQNg{W)`;5wm7J^W|@<9RF}_gvqcSlG?g-JKIJYqts+szHPn6f zLu9*vyfTY?h;`SqLrrp&yC2OAj&`q9;e*wdvU%-dR#P6d&-xrlX!)_S17SW$kr$t@hLF8)Zs z66IRd&P~5QQs3}F$js!GkcsHvU1CQ*qpg!xFvB0huPJu+FCn}XA-a!?)|fgGzUsZb zSC&)s(jm*+T}IB1lVF#N4fly2&1{)E`6Kl3L;fIU=nG!pze+!IWOTTDcy<4G;&0I- zUWgB1_<^5bj+H%~+S_yWRZ<+oV;^71Gx@7@u>XJ`?H72FID~*lI8|)dm{YSW$d6mgcl*bBaA+ z8fZKGOZ~Q*_`Y?KvDDgUhqH6s2UAb@Sm}Ru!LGvOCOiCPKtX?!@Rud#Tt0sq8K#oN zeb(1w5~6&TTi|z0_@y@{`B(mPl|dqxqVkD)JvNc9u>ME!zhfbJkjf@+q9k#}Jvbzn zo&`e;Nx2$J`=>I1;re(Ah0osJ+hvn)>xg}$c)AS!)!A(8>?-L($9*Q^7)2xKR#n0T z6oYSS(yt2b&-&v!b8qO1BO(7tf4Bdudlfcs6_i&IH23|j=N^cQB#~kEsS-cy!Sys% zR$j&BTUW#?*FVJw1jHpU@^@NvZ_7i^l`wC}oeub~MW{Yp&xAh*3g&mnuXJOc#5ESy z`KhCSdvd^ArX1fr;rJ~r7&ojxzwbcU7F2!8Y8NNeWI0}Tz;s_z{oj8`|JULe(U&q% znV@9W(Fk)!0S=_~+K#5ftn3S+42^pC5DW@Q(3!nLgY01^O~O3~qWK%l_c&UZtZmma zFR=Lm&t%3z!*5C`B{*8@T`5yLDgV1&5i+6}c<`8$cxmJ=h6m2f?h18M>zpInp}j>W zX5<9iU66337R}5IAIJ*a6;#$JPd-mgdS~BEkXXXbJP)xg3Qp0y6eK(J0(+~L9|@&D zzwoQHl)jjSL;H`-0d~nt@fc7DMUz^k`|n6ote`w#ei56tY)vlzW zR?>zNcvVEZNBfAo(!Q+4GQ`nlw46F)UOm!sWPO$zIGQf5@BkW8Fp;upb_i+uvGfQEEtP`G#%)3p8YiTu!dp6#WEZSqs$*DEX<-fqb);@M2OB< zh^5uzPR?1)W-EtxXW=ZIkF-52e@$7wC(U7wBX9heGl4ThHi=b4K%el>F)+{pW^$wv zj8D_4pm>g@MG{!Br8vOW{sAxIL4JUh>BK>Fp?`Gl>MTMAu9!E_D691=IO1e4U=?^G z^gzx4KW0aidg$cEu-2KCG{Y}8(jsP5@d}YrF0G^r_R3@0Aj?JI@J3nDzcp*TFb6m& z(h=Mhi@+@3A&Q~n1FGSdX&`*`pX>^CB8d&`@N7sN){=QI}To4c+ODv z@$_;}2au0L+5xu}d zUco%lgY#51JF#NO{RDqih^6vs+3gql_LSz$tnQj1n4K~VGAKNu;73=e!AG>X7b<&S z*zR`(@ZOT2|Nqo>yy3L8Q zxImg2k0M4_z#fVE#(Q>Y#OfRdVcb|Rk&=pfv6YRMcn3=y;WzbYOMb;2dPLP&B59D1 zaIj_}g(*@rCwBN~uY2a1I^))CQ7aC;=i*~hGRHm|>Flz=!=T5!F)4g_67y51P@VaS zKLqLxe!!o58f6?!ZY+yA{7oOlBnP~8CIwZQe&aTHp)q91Bpo^{Y-;YcPqb)eJp|k@ zk8iTNG^sCre6@xYTzkdHCRWZPZV+Xu1a*$B+)GqTkQ?GruFQ*uX=vVexVJ2KqIc>G zLb4LGm}HlZzs5Jv_^wZ*mPvmK2lI)nqO2#;iT*jvd6n#wad*t0Dh}VF)0f7~2o;aQ z7%rjO%&^ouPpQ=wlcME{0Oh+JNRz@5DVDY%fuWnL?@1D z2j3mu+%TZHbC@$&%ZLMhj`A;9SS3<8lAM#JD5ph@YSD-eEkX?@eJUounf)kM_*ddT z#%ZOf&Rh5oFh_qYKjB(z%rE$CDBzoCDHE!rqJNc~)j z+5cQ>ag8Hqq94p9!wFxWWL%y)sXm#gG;K#|s-vF(DSV08i3o33@v>ffg_;1;6Jqam`-b-v?>)Jq9DW7N-?%GejVub%3r z%hbkWCxItEib+FOH`<05fwv66ywMo_eE!09JkkA{iOc`&OK>r_73;+*Hw>Hd%)Ops zSjwbn0=MZ2l4%|lI@b%jBv(y^|6{GX&+@I$K91hiOyo|P=-akaU!O%?awAXd%F7QTa*!tQv4rRd=& zY+(&w$~8aQpaY6ue=LNM)u5U*gPWl$VZ5u-o{n#AHrj9pJy>_KS=V@1*c2`Sr?KTd zp#hDu&qfpGc%EM;j&0}rOJ54VXyC@Zv@NKRMTmB@=-7|29!%ebZxf^Uy?F)11{TVI z&N^ovC{RUvXQ}VQiFIzn!2#_lamQv;6wr~Sd@S1P`6(TNHmkWaSgFei0bZk-CoNrF zY>nl3lQ~g+xqsH>9(K7PK}yYnzkw%H?zAD1cvYr)DLT~77iaim=S_x*o`c?}Kh}>6 z;E_wc8WDt;;)8T;fje9A`_ZZv2PdYluQFl~N+ZPPttqt56_pdG?g&Qb@|veF#U<6e zD|jo7uH<^4`jklC_;wb~`uckGB8(_Qi*m;vM_+4S*z1dI2sr)hp~R&u%A+*?bPF-Z zO?jHCaIcpX-=FXb4|t7Mqg$dbPkK@&t~9tUSgK{=w(W{Fq{hd>APRp>1Ou$d8PRi} z$ZsFYvpLJ)8U;&gUviZrZ@ep=eG0f{B|enI@-<$<5$(%6>|m$7o}ze+&; zSNMn*1@9AawZjbH8FnSUyA7m!B=a48IrW%O zj$7vy0l%=|0X~c0;D~qS5nJZ#=3e;>IK(`x;U%XF>J>lY2lz!Cvw0b20EMyBzzcqa z575F-m??5cIA#z~fHKrLVopwMr~wt#mL;y#0GSBh#-@YAV-efLIws{}hFh59nbbpL zSFl2xvceRqj{^imVGVWg2>THTsLdcC5A2{Ykj+Za@#;h?qI+I94_keBsiYQ16nuP& zA;CVKwgBx;{JJ|DJKlmNa-%o>PM_ude*JAS%uW5reJPHwwUD{SHM;Z4db#Je=Y3F9 z-O$ra4j`|vxUP}9b=~|vG0jy3>+k(IQ$FXPYyPetdG-eM>?q-G;)nM+ipS$-{kZk- zX-n4U0=Y>)<}4_9e109j!YDRw_-OKZD@~)6U{BA}Q*^5w?}?mmnMhaa5)r@jYWGPgwj`*fI`=^I z;64BVAOJ~3K~zE9nxl|-z)vv=P``z*P$}c`masC*u4Mr-kkx6&rdO}v!%(jof*JXe-|cXl;cU{2nqQ97A@ zfr;aUl1ZA{Q+xrj8W{-A`PTjU_C2h+L%-0|z|HZbVT?R?F*FT%1DbY*&RU+QePPtP zuHQQ$=N-);T{2RA)1vtMDxQ)2{4^9E|GNuEB~9V)7iss5hvUBJw5Aiu{b~`Raiq?z zKBM0D5>Door4!_{00WI&2%#_T3b#Qc{87r^sz-AxjcK%{*Pr1DeYt%uaug#KcI zU&z4YrxsU~^6wX(OsbNRcK&4P;96epWhUw9P5DMD@2NN%sE60o@t5yaH&~Dw5fjF3 z?(@>wlbiXxTiTcV`RsQ+u@3M)Ps!D`?0wg zg>fA4pM++pvLg?+DvWsN;{mhM=nsQz>MgX-VXA&m1pm5=xZtdnDNO`rNXGrVsH})XjE-=0u4U>hNzQSFrr&uGbd$9|C@4Lh)rD%+dAjfdhfrSFbE`AI z1i@vi8{oa&e)|sx9W5dD`g;zBQ}kZMjfO$x|B1eO2gNF z&X>Z7h57(T)MjJHP~>R#=m0J(>?Th*rla?$>C2%t{v|q1zrgkbh;$G~`DkYFDQURP zjQg@p8~s2nTEe<)oKdeIp)p&u6~M+ks9&DoF`@d`-nol3hm}eX(cUX7>*uhHx*sez za6ny81D*OlF(a*=76a7flo~uPe6vu!6UV_%0CT*E?K1b*q8F*URJQR+TXRIcaK1&o zB1r-1w`VUqlxM2^cR*>t6agVX9=x1$W25m=O71Gac5>;d;o|tdN=}d zt5d9AIKef`3yTksq?K4?cq>0rM#rr4-{__^ew0oI~HvX*icGXV1h&teZN^&!ETN17sDzyU4r0xa#~ z=?1b9EiiXZkfa9yzvku9f$aZge=d7LeBo=dm#Y;&5%6Gtg0DCjK@o8sR-uL2OEc(j zBw^0X3cpH`RQZA*%!7D=jlCAHaFh{C)LBQ^$q{S(0ltavDa~TKVDHT;r3d^Acc7$M z37>Pyc{A&>hsFaCJ3?d6aU&-TdVxgF$Y-UYgR6UD;~i4x?5o;#LS-jPyp|6QFp z!`;2H!7Y6xH-JBPuJ)~&$9=2B^soM7SX8fqj?0nLofsoqW0t7MjT_Hiph_k)#TCxHWTl zQs5trZK+d0{J`#_x-+3zuWXBh*#}!vs?6HVGWy@GHCL$FXr!GTj_L(*fiSd*X!^IP z_i2Ju$+hEHQ~*drMsYdB+bN8sz1>Nj+*w^rUh*xcurAuY%sHqf}ej6Fw3 z=~2w!D>U{;Na7WK$qz7hwj=*Re1{jsB#%nonWemhFZi4Jn)F4;-i88C2tF8w836tg z+6A!*H>b45mFcB<@sG}+v1iKTf6L+y|J$RcqbG9vVPK#Os{L5zKLojY+LzIk(eLq# z>l8SAIe|F!Uo|o)j5*~aSJoALiAOk_k+-0Jmn-m1bKjtEI_HC@$yL1avzI{zoVV=H zy1iK}JpQhHN?09x4$cDNd}i>t$P=FIwZ5iGyHl)O?yPFR)=6cdb28TX#ni32 z(`2vrwUC3!eC_HB_~z|?MfT!pSn*v$==fQjcvJf6fbVQFp*O5KdLK$s*EC0d-$+2y zfyasVlSb9z*($|_OJ<}7nHZ?XfCCm|l@gs5cL=QD!>zBdb;od%S}ge9WSo zyiT?Ro|0{m;y&itQr?jx8Egm_iTh!Y5AU-O)eBfCr&_O~bH8 z_oJWfi|BhkH91w2D9bEP@5=9{a>Ea|XnghU=&}SBsVT&!}UF7f{87vNE zb(+B@`0O!1!_V+s=6s8C4KG*l88M~HFrNlj#fY%D$ky)5<2m>_#vgNDW~)PTb#?R!XeRauSe4Bp?yhCQQWf}Ki#+G55_z2(g zPM1>+B4u|`67#} zqQKIQ+xS=({AKxEaiN~zw>;F$&uOgPi{`%zcDv+^T8QKSNB5XZE|O0vhR>rxNB zL(p>{C+i#ap>7lB-&yJ14=cW9N6Gk#^p>U!&S7I&gcl$E|e4AA7CkPHs?@-+(Rkc%2cT*mQQve7`K)JDP9uCu<>& z;)nbHsML*)xsez3H}FIjnnWMx3wc(GveC01iH}23o=k-sd5dQ~kEoJ|+^AlXspW`G zjy=8Z`?-`vi(bT0IV^V`Nv)+?o{5+@hf5VRmlr9RJFzyZlX{0nLDA)};w>dAqn-io zpF^57GB}F1r%N%WKvL!0yk3O7<1~u$kpE<1r66IByCf5>bK&`D>N<(Yfx77UPa&|j zWh3`=$st3@76Lovn7xPvb=OB~a_ql@pWt*tsmx0K%GpPI#5-p;VE86$ax_|N9hK4c zAI)C8+RxI9yu=%62`jve$ZP2buFYD^6_)P4kt?*pE!sh?s8xIr$<(5kjB9Mvh|1J< zBei0VD+&BqoZP+nAg`on_%m(?GNjc=e~%4M>X+i9^&AlhAw;v1e6(w6RGC^mkBRBh zs+*hbDQUpx?cp(M1kPD-Oj8HOJ3@WM;^(`w?(6%vuIo#6@y-}~7|t@7HAx3On>+jL zAf^#JrGONCrUqja6LN9TJL%|sEtFMPCI`OZ4ZJlNxRuFy-g!I#&^Y$l*C|7{makh^?CcV#atl87uq2Bjotw+9))mQj(EsWPvCRBR zCy0#bBd*OyG#4nh&V~DEWriZ#eza%G1!T&BkkMsRkU$=A0LnwN*1|4jnX{p`A7BMi z$dL0$YypeNPXmi%c>~A7s#>8{G@(XOwK_Td^RG4HC^Zn4;W?o?k1$nP)EO}!2WUFc zxU}pQcn#GBSk#FFY6cyENw`9@oTC=KFt@_Uaa?r9vm`Oo5LPtqTAWEBPVT^7CoWJQ zd~oOgbonixqGO60XHr<4(tR0^qsI>NSUu!H5LWEuS?{mW3DX|VhG)S)4oCJ$A26wg zx%N{+$vs@+t!D&5F5GV`RQeHr7_VxiK zg~rOW6E`d(lJhGc^I%Df;qnO;Xnte%a1b@D>;>$^Uj7Mtu?jJDp&Jd{-N1Y$(Pi=s zEzXKL@fxvss53iq=*v;L>AcLdRpyF$Fg5;Qw$fI)F|>t+w15K+Fxms!L!;bUlHHmY z*hm#@#Vc&^M&82SUWiIG#%3{qr*gQlo}z0k9pR_l$&aG7kFby)#48vcVT*P-+uSk0 z*h6nG&{5REuM=C*l`nTW=>1C;@q_Jfgp@MqV7{AAicEFcIX2*#>`42L6Ff*A{DO{t z7yS!VL&A~ku*BQ^O=;Y=}LLci=LzhCqBeuc+Xh>hQ2Grc#5_%Gq#TtDLJt?mTxu%C{V zXL^M{ypbV%HUsbtsL`9_2j6xTa4|vQO3&e6FDEbCj~v%mP49ThwY?RcRyv=3C{spX z(|C`1O78M>$H+_%mx1#LlLt5)1M?es7YfMuf56*DkE5 z(n|=9KRJmY7gVMBCEdc68+-Na3YWFdMRIHQYCqsFcg{sIzAB3^ozq z1PA*kC}oAs49`t3x1uvM=?``bTYC#TF&7(HyPv_wa#DT?t7R$bI?;-RHn^eR#TFCV z4*J?kQYQ;)(Eb+5`Tnm@K5+p@C3iaPwBz^D#thQ0h0IuTeE_heUN~;_=EWhU&R-* zD$nUkAUXXz(B=ChOV+&11R?O<)kog89|Bob=yEb>rQ9KX8NTJeN9ldg6eZzS;! z7>G2rI(gdhR}uTC+ijtA)_g4kTI(b{99sm^;4Sd^xWXn)d%gAVRw7(YlAOTzZ)|c` zq_5Yw^Vi$5Ba!~;4`>u)*q^*=x>is5LYTlsUa>A}tE=Gh`@Ti#?c(6PLQ11){$=>> z*|?`GnFq1Eba;kRxrY5UuJ2j8@3r95Gknw)3jee#eZE(xyClco(^S1LdDb;W#(0D< zxj!$XYkg6ZO&yY&j`Z$8_V2fZCy$0kDs`RmD$WJb7Yh2*OLbRh{_k<}zRSDwR`>rZ zD`_f=4A)q>a-Keh7xs&Ia)$uh(}ztX9>ciNKTS#qv6wFIgR4V3-r{x3gte?M!<1z9Rhgn2Z(?dVh!dZnUc?(P1q~0u*MX!5k%@UAP z5i%>+&8D=Kho_;Ff>xo>^_RPE=R8vv>`fo^bJJ3K_o#|QR)M34cMnG?<`$2kk`@i> zpekXuNmQsceHkGHK_V7jWkss?StaBa7LHn94cOkG9_FP5+LiTg50Q%5l|J$u=GFp? z+X8S09}~Y|2eKXtuPL;5tEm!xDakM(UggmP-NZ#X&hDdu}I4RxdT8 zQ;ye`RfWgGMATR-9b6D(%93!EK0qfo`MXolW>$(WSTKABgpN)UnNdbyA7r8O?RN?S z>=3JaC6sUJrT^yC8L_+DG%7x5s0I3msI20A(QtX1aF7|j`WcY0c zq&SIQl9-uDX=_d#Gb((*VNH0*$p-@(DCc=ZmthgpO%QB~6~H)RV_URVKCy?~KFP;e z=Swa2VlClGJm*LNt;HU8Vv&Q&74v|aOg0D~!vh5Hrxnj&c!DE7LTw)51q_=6j+m1? zaGjHL|JJcp$qN)g2%WSS!gG(ImP+^$B<*lKgGt)k-{H$Z`a(5+#J@_U$9MP)PuSv@ z)!?mNi?tNf_gT&-@ZRjnZl~T30sa;xv4*X@gH6tf(GG859V;7pwm-nfL}Uop@&{O; zeK^J(@=`VB2vZmHYa^0flL^$}Z>VuwXv{ISP5I7or!XA&XZ|gUZIl$Y-9_&zc6%FFg8-{?j;%H0Ze>@U^yE%n(6JciMZ5>In8sOa4<-gtjn#ZSUX z7oboYbt7CxS{gM-TsG9vxpq)z^%qdv31rt7BFwQfz#*dDnFF5Vgo4fWU>`Yg(&{|C zPy_=s_|cqFe}g42AK-`=J+l<5ZDVz?wZpj;sIgvbV<;{RUtn$yqC=HAly;M(CsRdF z-ZA7Gg1Xq#|3sh7LNfYp{wyCo`mW6k{d4#j*ivb49?U1@qnza- zb{t`<(y^#uWmby5ymsz?$tvi-8J?GmjQR(7ROYPyKreWmSi{Ubrl=Fxik-D|B=NX~ zR*p$bBkgf5&x=VVw7+eb(dCjJ=g!`Xg|gZDi!yrD^p9u-KjF^`)sbT?_zZjV&&B7+ z7!c2BL%)C|N&%S*yw1$<|Hs;!^j4B>S$f|(W_CL^-bCUln@RyfP4pl2dojQ-Gul3(Kp4c;WbSKfWsEX>Egd3O9)<1Qvc z(U6@x3jAM>DpP2_$GgKd%+dHXL^^Ap0n7&9!0p9v2kp<~6ctRgeB5{LRK6bQ^h#~AwBRpbb@rd-1qd9Ku&`@$p%sD+l| zOS%3&pYyi9yJF*DVD8kbv2v;Ntey(zW4@0VI2(*Z{Zn5_u{T_OG~Au zsn_sS0Rkad4j01Gmm^L;7J>^PrN=+3&Ah2SjEJoKQlFOKR}6cJqY5VFbJ5#Hd8-gh zUSN+}_+;)ha#V8t+hALD=+3N7QzGVSS0<##)w&VCx;J}~?N)q3OV zF3tGfl|5}+>$y?ZJbMffF81@10Z=Ggr&>8^YR`-cP&!Rww}TrqSUS?kB{gIK03ZNK zL_t&ymsaTat5~f3ck19AD(3Cz_?#@ib*V;qz0$g>;~1d!Q^(&>i_gQquJqWN-f^zy z=t)p;n*OU=@vn=zG)mjX_gXHY+>B()k@PiP88+pUJ=F$p^023r%f5njMXc=M zdnNp=V<;GLyyZf)6q5T9wo$xB-6VJSP%FhJ6*PZSIa+Dr%PBM!u`ek9GP3Q;fM0?) z2Ch-o#FJDREV*)x8oV?;-l|CFngZo7FXkDZ;$apiw66KFA(4Bk!&=5K6{WSqi;z0n zk-t6guY%HZk9V+*Zi=+S2k3&8Z|`8G!u4u!L_P-HCEz?Skl~@eTnqewenJoT3ey#< zS}9(LgJTZzvErM6y~@3#_~qrgT8+T)h;0vIzQrDYhcD1*z@za1Kg*TjyZwdOGxHNp z_DjhPE)Pse^Ku#PI@P>o0KY&Z*06;mzK0)mfL&LP(4pi%^GW@CDwl?Y4?=1OVd(HVU zF6P!^@8cSvkHGZb{gA7x);FBow^pIF==@Q(O^Cd*kn`X32EAsBXOSWN2kSCF8_SomZeFN zYd&G4QFAfXo7LQ>j1Fk0+@gefbHtnA#i@j~EGCVI9UR3&k(gBLp9CE2qqIVuP}Q?V z#ycv(RIzy8xv&;x{~|ht8B38976tJR-8m;xy_O!Tz45!gq0d2Mx4*$ZM7(N+eJ6Y` z{k2P|z!`StF2bA)cn|K?CAT$#=xh#l5-aH-&h|=L6s>!xB}z{^@~+MaD&y2*Tcc%C z2?|Pz!Oe6y)K1$f;0Td;FC7TeXOVgY@4gX@>7Y%8`Qw_K6~+4S(WbIma9r!C$dL<>Zj^$|M9zbZ!>C%o&afn;IQ%$xY1OQW7hBRXPDh=^sn+HC~p> zs4SND+B(TE;u&7dI@;J`11qz~dwDO`t_64LEVrUFC$m#LKMrA2aBt4gAUQ{1@6w!P zi-l?BvQB`{4mb}>@hkpTjSh$t{-ZE_v07NkzrkmFC6JcrNZzAmX*M{)8t>qf^bG%G z{}nvSPtvoU;h|(Xb8kz06FX#BnuFpQ_Al^Fd`o;a8+Zocm7J|l#^^=-h9y2D!P0ig zH1bO2;;igl@&?;F%dv$&qHd}*Ek&j@)_!z>QedR;UsRr^YWAu6R~IAsRCDf`9zbI< z#aQL?XiJ%Vvo5L6Lw8~L;%c<}?D)qJ;H!?mtCojbqRtrszw$$st|X~W*&wrU)YqDH z%`0@C8MUWBR^sHUtYeA?F;{Ycr%NQgx_dKxynpAqM{i-ium5-`q57F@zt~7LSKK#q zR>=UWu1^is6%mY1X|jdZXqA{61@N`}UVT(QUhYmi`;pfrKmPw%R=#cdyj*gn`SrZ9 zu)VG;c@@~J3;W_lFUr?yub!2vnTyS*jVMhlEH~GP`W?p7TauX%GCgnI4o#b67p7Cs z8Wpcy0-BE!<1ndL7_ng;nr6hZS>tMAAeb(4uk4n5U3)bApq-7IzUF z=s?w%S1Br|wuMu8bS;_=qDspbZ=ysC|P%Uft#*vQ|;WYEgF!l>{3fFABh;9Mh0E>cVz z^AP-gz(_AGU~Lvr`XB1bQ@e`PqoX-Vu_vkBERMobOSpiYilH#} zX~jYi7@t^<_LQw)yn`Jz+b#BN3T&t(bp&s;*tInxSxaHUauz+xk(zGjVHCHLl|&~s z7xqb)TIZ12So?K_C?eMeL&bP%>h7F`3QnpNS@Lwkp0Sb`VuUrC0ZPVAiRy!>74s3VFTA*mHjSTyQcG*&$4y*SCy z%sbXscw^ncF_lihHuU?VR70l17?aRSCEG2E;1P@3!louSG@`{(oc#ff*pSwfC=}tP zO4)ZPVK1r|doPaivWPCpkaH1zyGCdf`HS3(oz=oZ-s2XQ(w&OdYypjYENxUalwEoU z3Zk0y0x!f?oL$BGM^JnR8!?o1&RDPuX?(p_;5ACpUYOkBEcRmQ(g%&)<{q!1wVvQ8 z?~*e51PLEuiNgo*ta!)0#Y>lN$`bEO8gS_xFDb!yXE;cK#MQXSC&5E;%hA-8<`yUU zQ)#6WA?o+F5Py`vqp$EuKEn$-VA+z^knFDJcz2OeDLQFmKi3Y^vx}+gx%!QMO2-=f zkl`S<(3;@${6xRif_ug#3?TUlvUSE`r0DR`ZlnWRIj7={C$y^ve1c9sqb^c{TuSN* zt>9!I%Y&po!iQ_tVgvX1gij^aoW1k{kM%=hyL=Bj_yJ$V5{HPmt2bhAdg)Y+Bd4U+ z1#Uo2{rCIx`jFQ979FeDzpXH|rUD{*943Yc0qSmQhW<0G0B<-o^#LotKh_fP$3Be@ zh>-jdQBJJ?&o}?}mXASiuAHy`vqa5U4u4npczRJIN@@k`PY?ag=bPw^Pnrb}!7PU*906;q5q zqfcRVQv7%{FAJtTaBvxxQbt?ci3dB?q@yexD`$K(CzM2IIys9Mr$bF%Y0=Up#6F>b z(H~5oSQP1ub8(2$i*PmN>c?tIK|D}GMb&hUOs~kuwHv7`0#$`3#x|lw9js6)Pl{q~ zf1qsZqI;3-PFj`h-v~P{rB){epwg7+VBl15C6kU)ltD|AAVPyvSuZVQY4#or#K`E{ zp6#<_<%~}Dz9J=)X{Cj|P{5Qta+|AFG~S-2VtdG0KG_E$(FA?oImw8GR%R(@vxi;s zR&;ocmZq)t*#T-Sb6qj^vZNM8 zBc#K9<{&!J*d6{VfuF=mk^SRG>yPrOmO#$%NBfAs7Rj2PV^JD5P?HizT>PUpcrESW z-Xx`ek$4h6SH( z!AdF12a&RuA~_>1!+$BqjwANqCwcL@g?v%^9m-v4t~D(!QYI0;^{=uo6DlH(yIoo=Nz9!n2DKXzz;7q^pM^^xsPKXaw{d9ryn0N&2OXany zA;5Wd`XeuPI-O1w+2aMzRgg08ZA|+svy++DuRTMhPxbGrveS!J${Xg>D{EF=aa!V+8+B5uX8o}nwBzu*=J*$CguiJD=8Dp3nL#%6JyHw3}38X2e49p<=)VhOLx%; zK-c>P=z8(`vK_cWe-Hm2pI=>7z12E>BN_W68#Z6PVY$X0en7K-^-X*O0mp6dl-{#@ z-+YA)N7UdJovXgJite3i&=xL|6j|#)@p~EU`_uk>cw+aE2~m#j#a@I%GsaQ z2J1=K@7}~-A~T9`H4#d$=C9tla1zGZztmEr;u(RNDn8IuO8|!=C-ezi!-p2N*cug| z$J)w0RcZflfhJ3FV%V!Xg5_C*;dB!u_j~|%4)G1 zlplGn2#beu?tVg%`uhtk#~W8te_G6PcuU!%0qKz7 zfRAVa>w0z}6W&S(!jR57;5?H9IEDPD@T|ELca<7(ssjH|Ubi*JxUY}L!Swb*dZflP zT)_^E>AvTBRa+H}Tdw`H1+-Oqe;OIUQ^Wr#$*1}ThQ4fH|D_&n!vy88S$Irr6wmcX z2KsNBGt_}-LWB}B#*&PMXx~h@9 zdAtrK+$Gm>ct|Gi;YH9TOdwO&yJ6 zwBOY+P?N0V!T<44Ee=h6_~U|nn%vN3mC47s|9~&>rCLJ<#LA{low*Lwr#hQd%^gR0 zhEFws_Z~K|tv7dFAGRlG;6a?t3;YIu1xrfS%W}eQ8s7S*PHLxm48u8w2E3_5;$TP` zxMv$Us?2MBeIsgXgcaPOpZE|Br#knoC(Egb-uYJ3su%T)Qhob|)x|yh>QYTBcmpD!a5-jPGyHf=B~A^dJelWv?T{F@d3%`dOY zCxhfub$=F9;H1{#DRciqyEC}psvdu~gBkD&x#q;1i^9ISvI22kSdGZr`L1z*U=*dc z#!y0G`-EPiaxGz>U@0|WpNd4B*h)yML)jf}UC=Kf&#`r|PWCbYm?}Yv+1^5im5K!Z zgtnp=JKUMCD48uJkpCskj5jtNF4D&ti!k_?!?auf&7XS{6}%D`t4r)8GgXu!UOJXiG$SO4zNHSJhJ&dx?;+ZiiM&=*%fjdYc%%OLkrL8n@yqi` zaUKDqJWHe3B;9xD9bf0_)C)6n6-)tjY4U9e`pLCNnk|wQ`Dein?W1ApQCJlzM z8E_FS)m&0>u9gvRL1qRpj&G}4E*5}(1?2G@(sEVpFfHE?Pv%7|H}!bLn;u=}F}63V zs~3q5vqiJtS~`0IzV}CHFu(twcT--k{6=3}2d9Z5MRPBxUtR5a+`@R*G*?~eavGo(&QP6!twb9~PVEKYSy zN+mYXDHfV$5h_%%#D`K@lhC;k-c^|I5Yl5qZ&MOb$J5RBzElL1W9jdzq=to+%pP(D z1mzO^s|-tgt`2}RLD(-vYT%P-kfP;A` z@=u@8Is%X-O5m_0GJdieSZWL=?Z$F!m5oW~I^U#Ppg-g91sKf`Q*5*;MIRkeFAnkv zmM$!yC0Y+Mpjl^V7(WR{h;9N6{yq^?*d#a zI{4~1yz#tt_ywONp|yQiZR~w@gf!9yHHFvYLY^^uxi?Gm2%T&C$GGk&yXx!!ZL64n z9jD_yv`9na#POWahp;>zdlg7MRoJCkjctnSy1-aNjND3{3u$n!1#~V2Xq{YGuA%B` zt9yWQ3}k6Q>r&FXXmNP~eYqylP!;kV1v?W)Od7%i4xoztRTnbW#J5_z71{1Ju=qN^^X3KwwtT z+AGNDfXf&KXB-(J8+ko;%iYNFyzR|iETnr_+FNlDFZKae@v%79m=o8MZdc$-&NyDE zr~xIj!4Fk+-eFmNY2f*xhQGD72>w|-MKVETe%foWw1*{L*iG5Naww_-zu*(fgG{Gv4RX_O)DPY#SWL-Z}1r3EEeJ(Kf#aiNQte=$abm-pslp7#qnh! zFF8Qi3A(xOyM+h)C!AdB)ET`9!RN_NAWHK)=FcoZvmfjiN|!QMyvM|y!CKfz~sROANp6Fw7xz%&sCV4oG;_cDyc{CJLd zaMa6^GioFE(yZYmFKhZ;f^#&grF-$S5d2D4AgV}5NLDm>b}odaowS9ZB&(9nS9pcL z!veJmC!$w&Q+sb`khC=S_H%GZYA>IsyYs_N_q#=zg>@R+S8B&uM`s8V!)Q@}x}@Ox zwjk#9iuzV?-5VmFH=MY)?i&25ofz0^ksu99X3tu5#|gbYTlY9CAX&R81Yf;?0eMB(jE;Q z!~w5dzCU({mUk$_$~6}kwm4f`w3NQe*jv%qp}(=zn|re?%tzTd0@}%C9{DD|K;vxq zCjCS3)9VITVrBg;{;aCBFrTBnfzA%$zc;~p!)K+P!TB!fEFJJNyCsE#!3AbdLT7Zu zA}Y%mUhu&*(h9e^bV{-ixiu%HEoxweTMKj)N9P{(NymvedJ&BimEKX0j#9=_N^)yA zBv+L{56BC&aR4DA_=%jWL{*N4cZom?YK;r@CMxW`QeV{orE+g2xq;4ZQowl%Vlmac zx5S(^RUWPE3Q)3g4|aqHxHmnV69ut zS+sa*uh2p?(R_=gUnGHv4Gw_q0bc5)zsznx$x^gf=boX3N>Lp!sT z4`OXLqK#Z7YcF2xR$fJtoaqHv-UT_$}7x1O(u6p}( zQUm{xy;E6xoBWda57NJiZW)}je-n@7l_YsZiXCoOJ-aK#0?ePy_e3UweA&uB;4zm@ z*c$(0|0*2>W?35#EAb2d)qIn_%6GBEL;4$&D(09)TLS~G7SH?&xIQ=l22siQ&AG^YJme5u z&`I({a{Oxe9m=bN06t!m_DXg8mN4NBO87`H@)dEk=7=NBIV#oQ^J+%CQ2WmDIE8OB zZ()x>|9(>NP4lAUq~533b9k*0$0qYuO-;80fBb>S&C8WjU*)B#+(1v#jCCO!?`H`0 z^7&~(OvKU`VJPAx3D-VOA`d#P*PugkLO;0Dk&w!Uv#MDZ*w;O)Hbx5-GivZ?iE z8G80PlRgkrS|k%o=R6eT(#JXY1@h+m#hZ~8ulJL_-IjQJBgY$wGKW%# zDdR>{m*B@reGOJ)`;V>u+t0^;?D{&M2aRMA>ze^~9|^h@{?lj_ViyyDV!!P(D0Tu! zL5G)<$9$hg7#&QOQl;y}N)|ZUl9q!)-9;-}l5*vvbtvkR5`Jbl+snzYk}Du(Uu3O% zge4|2U5id9%7_tq7I<#tLX)qsDI)psP?x{PtLn);)v98)7PUH@QB$#}r92@G%G?FC zxR0o)>e79IpZEk1W{na&!;93wXBRiXq2iT}4Ap;5jv}B>2-MZ)V6UPN?Z7T3^H$7r z5#<^q1|*fI;soDOxDz&xo`F*}gP-g5Jcu5L*Ej$~i&?Hm*<*$r2}nu}?9C2$igKP# zQfO}<#irE1R6{sP=2-HCS=JBiOfOzwD+TuC!93t@C{>FSJXa6L(z=ILDyWmVfP!_k z0_1{KYRfaa3RHvZ+3PQ8hau%#uqd;KCQ?vB@x)#O<1EH(54@_{Z_0xfp%R%+*xuOoJL+ z8Ut2qx3H2PVy){jyf?URo?vB8@>zVZ_083= zHV`eob8V`bCH_=u_d3FhI0nqBh`|+OU{rytH%qk{MpqS%ONdC`ZOLOt(h2`&-%Aob zUR0s|XLu4@vozo>tc#@79du#^2Utc&)3jl0s5qc!e24DE3+!NNr`j!8MNd&>Om6Ul z98b^zexOH@#2&33EFe9JM_I5n4j+KS9^vTD9-%W!Ar%+GuJ*I1OVa2!JVoP>0t$N$ z4gN%Sc3;crk&DoXd-#OEQ<-&A5=$&A>!0Xku_yhV2{4}4bARxs9sV=5D0tBa>e6EBmflqDz z_IO^L(&F4!Xhx5_3I%FMQCa~3o$(&6-x9*VuI&4F#-!aUyX!sV?;9XTy@w2X8yD<1 z6RIwM-H@pK0hI|K*!A4}jjNj*x2varQ`hn_X}@lpw%;{p&r@~>?aUykzcB5OyRm_g z;t|20=WGflP4BYh(zw8w3aiYk9D<80HxwZ%Mj=gdC@qP0`lr}EnRVvx2e z3}-r9PR{UPFQgcluod-Y0UYGt(4$%5BmNHmXr24KUKR4xVb>MF$;Pnx$AMcO_UN8)xgB$l_=YXqTcHpbcKd1(}9R*^RhM7@yEl{KUy# znuTa&M1$_^jeLS<>pQe5-&H9?R7UO-YrHjkmDzcnXviD0Owk6QgOzBdT=sNc;R|4=C5GSUiu5x>F#gBQ}#;Jkvb(y#J&_+lGBC4rZa zlRjaa7xB;HukCfBL2Gz{og6B$US6VbpswIl>IptiRr!@7H5czQ+WE?Kk+0Mzr?v2; z8kzpef2KSsQBQvFj9ubco^T=BOdMURmCg$={7}4{<)P^nOy{}-;B9`$>&CnNjy>>o z(dv?;qPOZt%#8xGDeGb%>{*0-fez(K{Zx|)%9p*4F>18}fqfz|lzHI5o&{U1W7FTnJF7{k!YWw#F0>O`qGzn4xQEny8uT z?(#Lc^^)EqPQKla`k={R8mH{}HP>LiNwbV|aXXc4jtH|ZY5pFXF@vRJUYaPrnQ0Qr z6cl#Rkk#BE@-bt?^=(qF&;Vv$kWuh;L;duTt-`I+xvw6^Bw+a?yTo@@W^c>5-j+}D)3QcHCRaMVkN{w=XLYxaOvux>)6~hv0+@}JX zFZ7;5ZW-Y}u~4faVD+8s=9lbPSuPj%=?HB}pyief1FZg@U3%?|HOOVjX^A zmkQlL0%63si#Ud&peV z$tVh|a!8)hWQ@tIhsjFPrgSk=a5cN+YYz7qepE*rV^JZU-FkdG0Q2-})u zyMWC_L@=D-H(0{M1WXq)x7Hq#ibLSGExEGvqN@!s*U>Le*lsG603R!=ep}gJ5Amvs z>cZh?O$CVhNL=>Ef&&Ux5<6T-M=Cs@6&w+@kCkfD$+~hv?%^K4zyU9z6-O78M5_Fp z7%m=4m53dDFM7Jd0*X9;uQIQDwqo z@8zYvE#dc#{>LpUfNsN=CZG1F=9LTmB4o{%ZgVCsch9yBlkIXU?-c`%KiAFNxO$t( zu9#~(XXuQHl5nUiVS5z!d+IHXm5AsoV*AHl5;HEjGkeGzKU$NxC@cElx=4{4gs*PF+ruUtuPyXu@~qG z{)}EkPGdu*6@P2}A{ui*Kc&ymIFtyyC|i1zQZ@yfCd2~~fv(lmh%9p4$?SvZ?T*yR zn7tI1g*7DHp{A@%k=cnO?#zRfP&PZ|6Dh+%I-8h)maua4SHjv=5JL@WGfm39($VPv zSRHJVJ9%XA*OE#soFaG16}a7-KD@}PDqgWbo!p_2fFvWb#{7v_j?U-^DeiT3a8@o* zh((-ie3`zeD#%Vw_1>h&@k%tfv(^)JU{1<7wl+unBEBPAO*Jeo6H9yPuo(JY%IM^L zf_*sB?4{TQHdE55uyr7nGMuEnyvuaaL@CJ!EaWdPn5G|*=FVF)1 zqkSqO5ufcpioN+otg-Buq!za-sM|21cA~M)a!A~c;;Zs+kfnf{J;QhWN$PCG3jPZH ziVqTaA&w?${a@{G(r@Am*gOfL&NlvB{GI$W{u>9k%4=z7@1#3u?6X+gFL0C>;w-gR zD+g&%O)A2k*gB7i<&%)BS*hK#m|uA^z72W8lNk0PG$dWL4ScC#9>(*ek+FR})AoWE zU&9HK#v*+-&4hzKY!t7RZ~Wn^D-(pvtXk*W^{0!%{jFJf$_~=3;{VocstCm@9TrXF zMkhC_+|oQzWY6#61@GQBjDBxWyl*LLuPhfr)#XX{#AIfkon|xXVZ=lb$#Ttn@2a`G zB4&|kMOCjtE^fe=d?8NvSX$Lo3D8_id;a|(8edpOuGUX)C@wCKJYSdg4`~|mmEP4w z4^EoFp!|m1!}FT*G|oXcEEgBj^;8OluS3H_w)_#z%NzYX-6s5S!~e@0n(>L7;ev4X zP71b1uN2b=ipkY*Wm^qgAm4!OU%Z*pb@RyVwoXDUtof0=Co=LhpP(rL0OKDv=x-_` z{>^RJJ7xVFdG zXeQ|b8rLqq(#f5mj|VA)M=@hzPR%^1g%0IZ*9eIkU02@Pkh3`#JA!iEYW9&(S6Lvb zSQ(rOW=g#{C!dPnsAd3ohy||gfyiqO!5u!~y$ik|^!2UPnkMDw!KBC|Nm0)&mBdc0 z#{dj=@-|{HOjmt2D_BVc$U7wAMnz=Kui-Se6Ws13y(x&_tAwFt<=}o zyI}nloe3>e8f@{T#SnUL|E%Vf6LfZlW1=1vN7&k@ng+ZJEI?i1M<-)1eTP4w&OV!C zv`#hhsiIA_fxR6egcjt)kB9SSpH`>EklYg_B{-w5Do}GwUI=_FKFGI2V&5*Qf8-B; z*K+QbQTXFh_m5ET-__15c+mOEO87!h`NpaFMqt3DoUwt&$*%uB$HN;8rMGXN-n-P? zZXN*Ue_z$&&Z{lylHPW>Vk3*vV-sFVt+y zUO+OQ@TsRPXJcDBh+QsR`#7&V`IwbRZ73RxXSXmISN2j0UAziWQb&6WYipt6M2On? zUJCC{n7|HbCmWveCX!LC9V|-qpWa|TDK|Cob08fKmmt9=E1_@lpJG!mKpgNw{#Vv# z#R2<7`eH9s*4R6-Kr0tJ!w&X%1&eSmS!-%+E($E4BHbqwl}(Y4Suc_lD_%Fy6f;E5 z(%u|#haRg5X)DfF?{r9<6rz6CVufNabGFY3l$zQ*H$I@F6?&=rNWt|`^p{Q67^0hp zK;A^};@yl5Rp`yTfR2{>s+6l^F{SCt^srPooK7B z=!Dl+qp*M%fm()MZbWiA;}jg%L|arQ?(7Eks1YmWrSt_KaF3GwMF{`V97-Yd@k#D&Y}y8Z<>^~ zavnDtBV%Vu0lL7`ysqQsNtJ5~clS8V@+w32Vm^uOh&;9sJoh_u5e7fev?t9tJHyeo zAJdtBU>3ZrDeKzYrkTBAT3mkJBbYX`oK1?XgQvDQ>M|^RZ{KSqVhNLNN*`e z{HB8A-F2Z}QD~;8X;=CN<6jOD6AP=RFiVvPwb2Xp z>Unay63%?3D|6eNG1ZLD!lEw<+_e&|1%9Y1+V_k;yqOsGp``0uTN+I=v_D{F@D07y z+mF+&KG55eG_LB-j@6Kqi^0rfU6M8{|VG z?y~BvU5$R{`r~o?c4SBmqms9+70;3}Xb=AG=Ag=fzwye0ZuMjgf}hRhK|m0ebjSb081( z7KGUR05Y4ZRISfa2>;9Ve1xS3Y7{-Z;GLAAb;EkIakWo3Kp(N zE|naG!TGT)ZJ07hMyA4XA|>tB{^~N&Z9al0|IYqbW26?>y00^m!8NJs z>wlYiNmT`rAvznv;`&!{%Bmvn!LK=__zowYs>VO53~Q^JDcx7y_pTZXnu#hozQ{!z zRerXsZ^5bBM+VURVv;RA+DpX5059~{EJFf;qW=C6Tvt5R6C=s zkywbY;-@16hFlYj;|*HYlU03aRa2K2)yfl!^7z{>(YZYN8=PtkY)m?LwSaPjAMgmR z*gHp}>6bIu_k%g=2q;dfFuOiKt_`as~cGb7^qg;mqJZ#|szLNzf z^aH-aV|9kbDI~mx6sR1J!)(F}6i$&C(jyRfg?H5-FpNK&I+i}c7r4h~*rK21N7%>E zS0}O~UQRq8#(i}&SKI>~^kQF)3vG#oFCd`C#S3z*%77pQ_UJfy=8q*Tv^-abiv(ZG6G4)5zaBu?48W&U}8Ui?TYxA;_`|M5nYFJkZB*BAMOPPn^X z5#|GR|6BW}x7`CD*ZAwUB*nMC`Ryje+ZvbIa`8WKRqc3d73$y9%$R-70{$)h*AamE zPSyU_)z&pr*}JKVR~-PiT>}4@YH`^ki+|Wx4SUx7O6XWC;1fc@l=!Pz!()uZQQdCk zdDVVO?VnT>avH(YrIeysMDVx+p7#S>QfE%^;=m7V$ISSQH%?!pIF6TaPGLe-B0q$t!F5YekN@n_3rte7 zzQG^E<5(ZqB!5DGKzDF5J$a4p)F%n27jwe*sX#c+(lZ!8Scp^hg4E1!h|HOMkdj$d z>B+Oyqcx=LmPij4&@1in-Yld?XfkK9m3lavy~28>O&%paedZu?BB4d5QFh{lo=vve zr!Xb8^`*}WCg*W z?C@olc8}*^;u_!?5edRhwKLUVIk2%2uvGlB*^U^hm(X36bOATg(vGTq3k|8oEBsj) zPG%1W=_h=PcqD5LYq_h~!oT(FQ;8#;{tv^ZUX_^Aw4m;h(sqI69=>R=fPHkk2J}Xi>Y@O5!Swf(%rlAW9Gete zBZD(be7&XDzT^VsQTQbn)x2KK-oAj7OoZ?kobtp{J^b(MBKUMgGLak%qJm*1GHn~&3S4?)5%#{8|6>f3 zi%00S1HhW8Jm3li=-ndw>&2#+t+rkxeMYR)vVxDUF2d_g%hmh%wl3_l1omG11~&vsen)fkQPGw^;uwqC zcg_9{K}xCbM3XY;K+V5f9{=Y}pJQDT)R7_>iK2g2Er=9#uLPZaD%yDqTJ&NCNBanY z4Ndr94zN_IxvLI_=ZZLAOuN3;DZ+JQiK?*}8jjiq&Wf5yp`0g`VsTY%M?qYT)WRM| zY32c~5%>&e)7BTP1KDRHsQ#M=kaQ4d`3yT3s&!=cu956OD|D!YfZ^xjavSRJ z;lG|aqq4^8f1)7Kf0`!)+{t&vT&xA^s%;`b&nMhMhpbYPmWJ40m2ORqh=^+Yi*-WF znv8muo}|uv2ALPAp}y|GW$_vf8+t31N}RXmh+6n;ZKS3S62VY9H<9WXmNla!HR3GoYYXa5u{V%wk@_4(dDB!aw3R7zHqRB%-@wx4S&Dk)PCgCYsj%pa26d)YX)~lkZgIr_ zDq;mj@k7b4E|Lz1^In!cAJ(T0{Q9C6nM5_w7Kz|&M2qdc3k{Zf>EdCt;&Kc{l=yrl zS%LT$NuludFr!C5ARg)7Izpx}%@bOnK)#mVRe?FX84-@vOkkFH1)roquJ2)AQqjgv zKxn>j>GmbLg%vDo?%V--@=K-RFKR(E;OQr^H+$URNF4}TP8M771kbR6JF|?)hnkJn ziBE9CFYrTj_zpU$i(mtnmP3uc@I7oMx3+^89bk`J*w{<)3_Aty#X((L)ZM8|e4^Uo zm9#3jtgDcmm7)r-t$Y@pb%yV-u~lqgD7l3%@Dn}5QY1ycQ!O0q)>@!=S`ymZC=wLd z;As0vx`R{(e-vkKwj$0P=XE@ca!{^vF*hmX_w7;tmhklsP@Cbb+{ztU+QV1v)5N{5=2atz8ptj&u!!ISs|54eZ#uvAP#K2QjFKk*qybuWiN&&WE9 zE>5i62!{63!p=SAucO9kjB&Z+Rn9%?TJwyq!d9OyV+p9!w zC)K^X$bZjL`#ZELuf5uD`{u7Mk7pnIU%_9l93Jn55a{=K5e)25=)v0$IUD?DI#mC?5MytRgD$I&YiR}3Ad$U>R6#goOqGNx-1*c_KTz9>85@-C8Vlk z=cx454SqIj^i@Txv7&e-duZgxV(Kctv`$>lnLgJhr4GdgAxS}C$^OJ&REES=2(p8=^AO$k?4MEm9n z9&BpOH|buoEb$Xzvp4Nb!KDT6$2LVWljR$OBj9 zVlCv5fIL_yvy*>SBruim-Z3mgETttri@o`QT4_^LYQy2NhMm|(hry>(M z2J;gdc@g{H;-4-^@C-?AkmZb%B)JFI>(hxOhlf7g3CpUeY2mxM6Zi11#Si>P`&{4n zv-C$9^4A)cwj(d=Qg$JqlbTw`Z%WRPzu3RQU&LQw&@=o7pX~)kT8Xdt*HS3Z0`GAw zlRhi|hLU-JAMiu|Oz{nWMz*)oKihvuVF7eb+S^U++@)y!zQBVNsxqm#rzUmcTFLX2 z9&$lI&l4#7h1UHdI{0-d<|2s2GZM-$cwXv|xe^{QGe%F##*8}Esnph{eaD;j!OWl6 z^Wvq}*l?lfzgCR%9H%taXI*=H^H5wf3%+@sHau-GTx2d>X^6anoLoSMxQ+4oh%V!1 zb^AQa(Y?OTa#cE~3ENNOZg+NLrwxxO6zF0(FfUv4Di}Z)TIs20Vsf1$!T2?}-?u3= zSFY5gSbTApb#-wxhY?=)kb0gKJV{5GJ}wvh^egq+i;{7kbrfDVy=H!wi^~3uOE7-J z+&WO!ed#U3@7o?>-zL$2(A;{d(4W*;rpzB-C`p(IMW%hJSI2#+Vb=t2S$~VCk9wNt zscVAm5|=sZ6P(vHy?Hu*PxD1|TT?X4s>&5|GPjsSGUU~JaZ4HW5uwl+(N1+iYT<>U`d>l?fTd|rucEU)mGMvz4GS@wNFV}IA9~WWigSY^Dj;FW2WtcO z;ts+*E~y=$6iXB3%ah_)*n!}V zf?q%DnF_95F-miYrD{;n8}wEb_XG4FO_z>9vZyyJdroOubOk9BN3!!4Ng6W+uoW=V zZ8Wzku|1+V;xM@pJ&L2z(lycmHdWc(k2L;m^rcia>}H6%)pVk9&CKwX{xc?oDClb> z9C5`IyAIbiyP(v_jq3>9~vpbmhZ$}q5XJ+SMY!rBY}%xt|B?#h@aJcvJkC(f`hau=C z2ak9@S|L^!p|}(IeY-Knyk3c*~YQ2-`7?prC>1q2(~h24oCY<+)1sAKE1DOnQc50 zen1c*_AoPRv57nYJC66F#PF^tfeH9;T zpN?(6tZU5)&CiKG)+7zM(9hDBWIFoLGyQ?|{)-iDK0H%=P)7e?2kWmH1gvkxU-w;~C}Czkh54_P1g0Hz=LFD?JFIG1=lKI2w--ca24AlC9( zwy!I>&p9L~5NlI~zQ@w3dcsRgs{iM4adGI;NRj9Xm~ZU78znPlv4x{uH8gn+Gixj6 zAY6nCaxz=6xGz^CNSWb4YKnLcfZRytS7EnJ}6VezZ~n z%@YXsc(y&fng?lSGWr|-3+m3;L1yM3&9Abg@H9Nfk|%X&Tf$}(f`*NBlq1)wLv1Nd zddwb<0&W{r&*;3$jky;IwWU5_OMA4120vM?=&fyNjHEs8phfrgoirDiljv=sS@cWf zgV~uZ&7~)3YxyKw9Xg4F>9Its(xJ(rqfhE>r3f4<>ZMeXilK_J)SE2z(3?)~MKC#| z(UIg?m8dsT01}gnlq0IpXEo|jDDp(2Jt0C2kgIgQp02)_T=Zn_?Ot@^7{@$Ws0Jz! zW|otENPep_rny*!?aa*3+f)KT| z@F1;VFTdiFmQ-)zwY@?+`3<({KJ3ma5WIyP+lhsAhg%h4P3MxzGnWUjb!b+iG}9Jt zp))$zv!VrwxV{MZp^cA;enKLLJfHBs)VZL8f0Zo#3Jtl1S6Isn(}>18hMzBSlEW;x zg=gu9_#6BQBfZwxq*;Wz$=~326)XST-n(oa4L?)_D?cDChL&ddG43z;4&P+K(qyr# z?9E)oB|EVUHlQS&HPrG)L+Z>08b({HCZ|zcutp;A8~lY4if58qo3GljBNoX;flwnA zE+baX@Dgd7*)C6tZR3_h`_&BrpG5^sil@2^h?y)qzN)`#TJxPQ=9g)`BY&EF#abC{ zD2A2|H_NiOl>3t_t=q}2`mppr?%nVOwZd7i)>fnO1$jp2!o8Yl>2tJ1pJ`Hgq+d=W zoBz-==&vGtN1YPuGV}IgRiDrZhHq;A(O&S=1W`O?H~H$-r{pMkGLX3yU~rkZJAEEc zQ#>v`B2$*Vr)`q!QQ`Ls@k1$UGDKa1mP!dm++^3ErT2$P0I5EsXMS3-y&k$ZRV_Dy zVXtBKx*V~(wT+$pohQPQar5ai_9Ios#V~=T+V9VoN0u8+tnrpW0|$DF2GR|D(BxX_ zs-ZY;t-Yhi|G2UG?sxq)S^edBzLib!Y0ldp>SBJt^7;xk3UEhhvkyJ3Tsh-|V0i}q z-xtUKxbjF0Zdlgcv9V$W>q?OtH8B+H)0vNCV|8#;Inh1X%j&0zRFYjS0xrwgs|meg z28}<^L+XV0iXMqtxD$&iQ|)UrDc7XmW-u9eRP+}zjn2%OVB8N;+w$bpHYCMOX#pB? zUtJ6CeSPrA+C@|M-i?ZOz8USt^?uRl@&}#6en)RlR(AcHMOlup&$)IDr)Fn{KCgdFS58+Yz+u)+^j z1nn9~dqf99cg74h1>#@wGuAbxyVxlzEova4b@k(KtJ41ocCabMVh(V!pDQJ-t*W{P ze&7RMppq)ANMmLZT~z>fDq~~71jTl}_5c7D<^UVGL$mspGS1S#!aBgu;>Gbn5ZSZA z0#d=_3?Z}&v4?#<1;ia4Uu#^|^;xr4_DOdosGM1li{Xe~;1>;2cioq@z>P{Q{Czz_ z*TD1A*lQ|!Xg2D$uFm<`ep8ue_7wU2D?UL&%cwoU8_dMooFLBjzrs>%>VkEwYtyoV zfI_;FN8!&+{ohcJLynY~r}oyygxHQL+zec{d*qj&w8 z{QtJ$^+OT;A8jpM2m!xp554{fi)s)3?9=Ief9)SKK!5t2H(j%Qfol8lQ+=UB^Dj&O zyKk47YlF|+SD!QwM*T4=cvO?|;34qUAzPC@8q+h=d!N-BnZQRsXbjQzxfn63Ph~4+ zxl+8!Ze!|`=0216Lan?vC;Sl7X&0v^MGT>)Xc5luyU*;TP+>~CdKcPA5?C{@Q!L67FF_R2CyF2wR6L!ZUN9SVwr6n5(e$_VOG26f67QEK-U2 z%_xa`c^!Kyhuq2wOT|FI3byvEyp`_j@Q&Eq*bV;3UME&o8_~xuhrxxFG!FGHS1ovY z(F-|>)}AGdbMOE~ms#MYl;or7h2R?k{{@bzOfQ}IGhqJ;bCmIS@vK;6^DKmbv7<0T z>!dAyHb2B~=2s$?qevxY2D5@+#P9X1pS!p)*O1MNXvCBGZeHL?^kIlZIqAFHnx}{~ za2$?whg*C^b5(<59K#*rLeC21hZ}PmK8IB>!tx9S-Sb47&$9Eg4E~yBqgz~?I%HG6 zl!8wPY`Q%gU!yDHbTqVteMXCXY-;nZW7O^SZzSWovHDJ*s32Kgh71aY}(d+<^LQF8Ye0^(&=heRy|&6e;E#Z8MKiXP(A) z`AgALZ;tySj6#6TsG~40=%kTHC!ZOBn!XBCDa9mbctoYuJdO+R@6_25)wY5zSh*D z(%t;$_VhnIVuK*$4)j9M!RMGtDY?IqtBw^0H@k9Q%_{D4HwBd6pgQ zj)BRWYDIV;g`D6d-;F3lx5NdBo~*X|2@HD_(3sw$NKk2Wss87rXIL2HlgKWK zzDaJN&zw-3NVd{A33SLH$vn+P#RJ(4`b^D+5MrUISn zLMuVCf1_BupJ4^PL7JmficrQJqtO!5^{iD5IvR#*Z%)cU>lAhB9XdGbr*7q5{6vlQ z4G^!mul2rJ^}|NJwaAgnM21ZMk zu+*8bqG!~iJFzsg8sK~wLZ@LNH8rMqQ-?&%^GVEOz+3Y{@_$|)950p&(#JN_Dg!fCMEn^tQ1_ zp&-M;)WW=K-ujUIrve+{2f#!&DjZ-I2gy zdU2GuHKcA2O%M-UijScYYr~I%j|z5HValiI5LB7@k}_R%g#xc!0)*K~JF&Iz@V&h_ zho$6%*J2Jk*jan&PBiwqkYN;w8Xek*qaqUH+-+F|fd{r|DIVpyc{4}yp|(}-V5NK< zrSGKS%q24JoEz9nT_ol~gI^-!MD+M~@mPd}r3bLY-|Qc-mm~bc@=~1eeiR9i@UB)Q zcLnv!5fKGkv4vbZDBeVVa-g?VddABt*xid4{8ZyrA`jp#1tQ8J1>;4~0dh zMXA3>FUR51VDPJ8*>|PWpgB6?XfeKuM`}tYJUV|jy~y$lWgwlTXow!{RKm;^wzDV@ zbY(GOC2bW@TVC)`zpy9L6{>5$Wc^Y}&A@PBN=L1i` zdl&x$dDc5&0DoyF?_`|xsOxVz-@aBuh;P0U%Uy)EU7tu}i=1;kdkqeQG$H{*QP2AQ z%c+ZxU~x+9oLvjSA$dMo)i0Pu>PumcJ=_=O481(;0XC3wUKI>u`O_=!Omedjt@7S% zX+++T=J2OXPEq}*N2e;pc_gR7898_i?SuFZk7xyZ_%G(WqOuh85XK&Iy)=4cAgxm6Gu2n3m41sw&rrJKxS54!ujO15hwJJ^Fndd z(uthWuIiH>;EohN=~K9lT)LiJ-Nntwk7!mGlFmNDKKW>2=Hd>wSxIDZgg)y2)zew9 zJQgC0lS{sf&qzs)c#mg6T~;)5qWZ5mNsUP-VII!)d&p_nz13l-stp`;uNp+y8WOqc zf!|ZYNiHj5v<##az#p+3X*+u8XzW}P^}Ht|;zAw8?&IHv=Nm05|M*odw3T3XbLa|bK5A^(6mdQi!JTfxkEE8gHB z?kT)YL1*nNG_qdvJXA(f-AeW4?5SC?&WB9Rd$GiGJQEq-$aB&!$u0Z^Z%flk9sV=6 z{0my3d;B~4#a_x%f!2a%_=s)R@)n-)&!pe%Uxl6DQu={^ky}@HBYdy(^}I$m#ct;Z zd=t;kzoS=ppa|DOF!VR6HFxAt3=|s<0uU9Alk$&wH0fy+BRuMwc$AB9$@5{t$+=DQ7#UhLl|`S8*!rk8t1;q9j~`Qm&MuzwVt5SQ`tf#B=K}h;DOE1oC=(c;eE`xZ%A4uW z<9mFFsThHYq#MK@kJ30U@j-)6<$(TruKvFljjJy}OFuA?@Q&P`>ppKkIm7rJsnHkd zs9)?Hd|)fNe1;C6ie9fwbOS@FYW>vO{$E$!|FN)5-N!f8U6iIluS4Ca>hGB2Ltz1x z*vW24&2=fz466SIs-ddr*4t5Ns_K)>t3_b=kjMI*8Fq!9FO9^fsT2i@afhnq3|Zp3 z?i#zQNz7H)IK_X+)2Fq7d4@FJM8;nTXqM}WsdS(3C z!%uvy;fK^y!4jUz=k)l1*Kb56@zQ4`W`3 zYmBFAsPCz49690v5v%&T(+RVb>e{+n+m-TA(WD>Yt!kN1)v2(6WM;J|G2|`B+ul%w z|A9U)!v8w`MQ@<5A+Ga!C^}Zk(;a7Mew?6=waGCbc_yf%)K%m=OeJwti$O9-eg;K+ z{L{QNW{T=+knyH>N+Qw3dW{F$OSBsK`A!7CzFg!OUHeMn9yT7Kb)8p{dpp?=oW=EH zWqq!%-jAFR@oY_HhQ{Dbx}*TPo{_szHKVV8pRZ=Iq3&_BxS=y5s0If3EcRE`Bd2Md zXs`?9Ivw>Ra?!9U8ql$-kBPGTcJz5?HT`v7ojU#Kk-1(IRo%BnE`i}cXSFntOAVb} zjSe1?foEqPT2VdsRW2Ph;)9sO%;igbs${BT9lE&$6nmG74`vMyqX8Uu+&wH{3$OJ* zXZ5B#)}I5-AH3Rm?a3saX+^0N!FfAd0UVECLL&~v@LE$t@W6;`Oa6BGnBVG?w299A zgj0a;DNuzud=o#bS?W-!UwySVjWdu>HT`=<5OU;-?b?XF%B;1C@Z_4Q5E$Zh9gUl6 zS8qc48a;semoXu)s{K2$-CQr<4ruko!!CjFo$`~xGs7|IO0{k zS(+N~5JkmYm&>-=FWU20kMOJxn^`qgG;=EhvZPkB!?a-oZb=;%S8|G2iTVHEdQ-kk&XG!1MF@Au% z;X_%EKRe*_nML@$us46G)4CZW>|2{>KYvLI_JM@|Q$El6KcCL49-oEweVTH|t*?d; zjS>1n4#Y_N@2j^uNnITAbPKZ9m%`HF|8ICmuFl6L2FF*JhKs)(wG%?Vl}wK4YnPUK z8u6IJSZUs%3)i4YVikrzGmivU9I;+KY%=QzS;bL+j%Rt3GThMB^+E$q!k zh`fc?{3=UWUS@mEi^2 zq9r0rZ}tHmq`AqaIkO5>>n+|Rk=C|E2QLWmfQ714*?ne{*xM@)Bpd03_awtC2e8zw$|Ri8&|Lr$ zxhbI<8bFHyQq9Rhy$&i)9H7ouTFQ{C6eiV5m(yh2scKg)YbI%01W*BKI$^8u|0`t4 zXIp2{-Ac$Mr9g!Rkf)+ZD2Z!#(gVgEU?)d%$=vxKuh3j9xwg3hm`hiLUjcB9R_o1snM{v9{N8BhAdCw8tCy zM-@X9n}ysJmt-VmmOOwWxKwTDpgwXYq6c6%qDeYt&yA8ASmNLDLm0&EKZ{Mhb2{;_ zVk7=5NA2Ffk-wpJpamm2K+MQTvpR*t2e4KlSpGoY z#1sC36S_m4@&oGO75`PtTn;Gecx<#Ur@ za^e|P2kom0^ucKCYGV{C=@*#38Z%fNSrM>aTCM0Va}xrqnTYu{i5o z9<3%NCOw<6iJp;ie{|ec3O~{L0rsSN`*|?0rZcQ>wLO~4V(16rl&_08KB$m>o+O+n zHQe(+;>__MmT%ouHGjlpywv+oM$`qoNFz6}dD zpi=Dd11u4+!TVZGUV!o5bg-|y#l|{TQT7RPNQdglX=7z*Rl0f+yEJN38R(S){omHP zTKIR^SuH#Tep+fu{nRJZS%{;s9kmsqxhH*JP+#&S&Txh;WV9%D5JzqF!7OX3bU}fk z7jcT1yTH~}Dn#0WU050OYA*~T{Knn`(gKz)J%()Wz=6=Qaw#mjgFUjjgLPe8Bif-6 z4UU+#USKyxp6`8V;@}Z2Y7f7Iqt3mhhhjv~3AL!O&c}Ixb@hwGFw$$J#QP z+bwiri|;UEBkf^@5AY`L#T?hNvU{foNbWX5tR*p@)0;i93_TT;*XKX%1_02S3qw^Y^ffPP15-s)`E;NabcJjqtjB zG$?CmKSYL&8r!&4Ni1(_k>U~|M^uacmTf`&*zf6iD`cUEw;6W2Qf#)eiAomLGcuBOfQxqObNlgIaqsfFp9``X_lo#rxHONVQeXr zL|eN&eHBqjv^6Ph@bAZZk%x+w%l?O2dW&%N93N{0Ymmw%I-ky^JZ^xM2;j0+Q>O*~}<2W6=LqQFf7%Nbw4i0-c`*ZVJfZ$VF%&=C!)iRi09ya#ps)QQE-|@tasg z{awu9SNjRC;f(V-TeOsC;X50os9T_gWZqanm&c@N(Xb2SFpFA#Si#h`sQq~hVs%dOKVzu*DbBDYm-1a&!}T2#W-AD^XGQD&{SVMZF5hG zmA(vm{iGiE1#jk!ANI9`ns21uiCfaS;Q*V@McA{9dR*4;>!LkY2#iJ0zFp_O+)DTz zk@6t%&+$?;CH_SJ}}Q+to2eXX13#<P>cqAxg#xM|HP@Qts927l;&`3lqOmFsR*^6)uVPV|Ih3G|D2bJ-JI+4Hu4FgL_6THvo$Zoo1za|+8v4t(MfKh zL9uJwx|kMcwPYW8xt-3{!-1q4eub5kMl-K#s9o;S1%lDxgMES( znvK-5ZCwI7{A#vUZ!5Ehy^79#X%U)G`vBl4G=~#THN7C}K|$~jDY~m#6S*}D6_9;X zn-5(rk~SkD`R}lS8GJ)C(*-q1a;ZlX&YLg<#Ognr47U>b8*PKO3d6SmEF2{m-b4q_ z(4e2SFM><)w2O9*UGu@Thj3E2=BY?xHO%jUUhS*~FRVEA@ z7XV}QiX3cKs|!4i%h@AF+DS!iT4eZ+0j8}?n13U-SEXZA(t58!g?0x!w5wUfVfct+ zThuf==^>&uO3(aNlG7sZ0wC<>m~%*6&i7p+;stPpQixa}%__Bm?gC+Nh+KH@eSGblO@ zJ9xueafcr3nIcZ_%SyS~7j1aV$v)aAN^0u?ek#I&OBFk#gqOIh29zakVN>sgH|YfT zc%?EgStX<`f?L?BFHxp48?-L?dq*v4fukI7 zz{U0?w<3BZ>xA$Ic47^C@m38G-N*&9ierTwTG0or3i^Mv4x(;9KDP#cS9d%mQ}MhUciJp#e zwH{e^W^oIM1-{2W>Qm*jgw%&(_VR+VO3sUE#)WrO`CoUigID<%)Q(oVvTR8wNYRL@ z6ZoN==;plM<@wJpxjmZzXwjjZ@;xA|hh&K5Cn0(zliTZg!JaEfFmF*o~&Dvcy_WYee^ zde#EeOSx)F_IMBXb{mJg`f3N$mw;9d@&*yY3;27S@C#ZZqnOPa^LS>z>e?lFZ)WJb z{AW0w+26U9{t8bNB~*5?gqcUho~h6EnLVm%xY%s0~;CfFXBs^1CsjM><%I3*i^TxDLc|l*?q!9|OyMMih@vHRC|o zGa6>pe`{}a#Xps--qsy>+F!U?eZ0B2>fM#wnrfnTRqefIr)Zk}o8KwA4VeLXx*q#7 z`)0hfdRh;?;b!E*HumKz-dK-(OAKC~YIg43d+PnrG+O!GCTZ%R8#<@eRdW`++K6)6X*5e)%KS{6%G-E2tq?IZ77| zhO-r8Z7OnHH8*CIjV{tH?j9snC#IPU1=M(34Lfg!s%>lhG%8eknp0U z1QX?|b=hqPs%22e2bZ&81gLP8eyC`8z>K(unWZYD%9X&dtiJ*@=2$C7#vMM6NY>3X zr?-a}c*P62M}g@GcK^K!m*Bve{y$)OTqzJ88bC=w+Q}8cp^%5$s&$<4@*Pmufou5J zny&ec5)T#CNsnkV1q?DO_gswc8dF&s1BZ&(ZcC5HFM!Lo@<)LS75=y?z(-Yn9=xMn zso51X#4r_xv0yKNSxw3f#Pg2g(rBPJM;S^4McIy5y+_4ETa^l37ihBCs0eHyMi`lh zCX4I5t{0&OYz&|Ddd({2nT<(9B(x^`jlwIE6#g8E3+b)5TQf+r~QGTp)ev54aFyROh&c zIZC&;2xbBiXkFw>uC2SSe*4|%xm%bUxd@q$uz^?H)Ii;N1qzkOhl-;Cb}9p4Spj7S zit#sENB8v!H$`{v#wCnya0bj>@MR~dlRLbzf=9m)2|wZBP#s5e-3l*=S~fd)z;`2Z z+N@Gp_V5PtTG2iywN%>G?~!LPTA5}zW~5yW^_|sMKfno{a7iru$*KaSz+dZU$Cvpqh3dIUg%xc6t3cf_B$Y-@zx59VuhPE}{cIW~0 zqyFx)axJ#-s=@*aE&pRgpu=NrJuX~w9bK7Dk>3`B;ZTul>!JHn_f^ZPl%GMai%|^S zS#|5&)tj+_4YXB^zjcfvH>1Fb=w^+20IVx)Cp-k-3X6|bF-CB#ETdqQy~1-%;{8#( z&RwPU-N9RhI2FgU>2%hI4mN(a&d>87(CVW%{Ppwf z*INQ#IirpG_kV8BTUbUxW|Mk@$GekBN5exTFXZ7glP9ob>hUz^8{EBf^-v?4T1xp*IY)5u%PaF5B#3O^0t6MjQ?Xinw!2*lBx z&|J)%kFW{Lqut@ZC$;DWFEf%4jvQA##fOhwc^WJDoX|QO^gZ!s=`_-VwfG;=pCHL6 z*o$YEE!m5GglA&9&<1VrowSCgkTGN=7!d+>TGP0cuLEVy~!Qe{yu`HCVBox5`LqM(U@GWbU z6(~*0jvCorl4F;a$13PjH7$nNBsVyP3&1)00g->(7pr$E{wFN^luDvNk`uY~0~Cm= zBG_q6V`eE%HzoL|foJhtJaB%2AF#k{yfpXlAok`3Z=_`q=P1V6XWZjA_&2jg4=|HX zVsAHijh6Nn|0pH{rKHYYRZ7(lX)RVb;U#KeV_v0W@`IT>2Z+B{-dF8Kr`V-CJIAGJ zL1e^9Hd+uiP#WBujl711{9OHoGyEqI{Hsch(PCr%ANVKygcQKl=!&__G|gb4OIqR` z{zZI8$$r9?_V5#)?IcS)K`$MA4vCCy>J$Dhz1a`hz4$5r0>Kl0vU~A{=Jq#8_zu5` zozfc5argx{Nk=oQzKTZPyJRmjKzWDk#W5ya70o^=vU4uk%9G>DxWXEx=s`i6uY7*? zWI6Ddc+IF}>&YQ|z-Wc+sZSb{dkC5xbQtW|L6?5yTMwvz@%wgH@x%l2M#>-9Z|G9_vvs2|tq(Odx(Zvq>4(*29>7I*^myar3#I%;Q1^AG>Q>N%-pBf1Uu}Ou z#_~bM|K?YD{=9+O%Qs{sn!Zb2n#S26+^h0RW}sor?5wcpH;xYxIjnH9YnW z4Cd8oTXEbu^F_OhbNlsr2AEu>2K{r9C%^_ z8-2L`O#d&%i^@6=-LaaVN&n*jWk8z0egB^pRIEpsf15fodKdM2UwgM17IIJ7Il5FO z1kB{4%M>SkDsg}6J@C*isS9Ji3mCD;heA&}s<#feXYWF6JdzJ670+_1ICOAdH19=H zbmx-(dW5-o1c}hJrb_vr;{*qLCM6Ytc0LRF6{vyg4^&fyx=}h`)Sv>pY|5j|6tQLr zj$#ipG*@H~l3{knU3m*{QX}pl)kA{d-rQlq0S+oa`A1knhclW>-4I$(?~|>{-}FYJ zk(RcgvzyU=y$eu-ZIdM7zrtQD;ajafM@p(Ie*-v(1}zE%Lk$xJP==#QnnG(E_Tpf* zK}r!uKXGdwoI}3tD?FTB)%+2;u)s zC`N+Gk?a~3E|<`YJ|tvv8%+Y2sNSd+h3x=Xy9l*hm1qaK7b~==6=c^UUE=_tO$2>G z?|Cylw9=Eblnd`w+QYtBh?q+!v^S@+*-{X$=A-O{akarX3rDDLv`nl31huZfrK-+8 z!d^O}Q-upPQapKMHzn{k1YZUFm5{8&;JFx;=%owImqxC-E120-9g)VI0=q_xUWEjl z%lN9sx}WcTt5EYTve(B&P-o;evu8pSVFI)b?XA6URQ@uDJ)&+y$m+V{{)bC610$9EAa zyIWYJsB3RkdH@drl)$c<_qJBj*KjZ1U}vx3Al~pj%xc?Pa>jSCL3cXm0rapHYj}hg zw1GRkH%BPcFDb)rP&Ar3%Hkjgk$)W%W1(pQS`&pH7ILmZ({Jzy$>m`WwFM}6MGbzi zd)P~TVdd*C;%yX8h2jF~QSiH>b#cJ2HQ3+?D;$~avHmXX1MJK7bO{3x{{Tz8F$Y*m zLFzx+3p{iX(K*<(Q!H~{gr7;IM5>#!R_@KoZlo0)>|@2~MTfE>{*@K1@mrPq9ns!7 z(gKncJIpWv{D8l&M!gd(itg39c0?8`IROhR=IwNt@$)Xvk6kmQr?@W`M(2?(IOzc5~@BZQv01Syqlc>y)PX6z;Il4T>mZn`J4lMQ)r?u$Xsq} z9Lp;{!Qa8tjh6Y%XSfo@eT4S?ivH$3eGl)TI4P_+RTi?R-f6={mh4!1ajkH3Eew_C z&ZT^RhT~pY1co;-ZvLn7@oN~`Iv=OTIBd&svNv)^3e8HZyfi&hZU4(UL4yz0K`~!p zd~%81>fu$aV3}i=P$FGBajYv^C*G`V_3{z@JMG&W-Io#lNR<; zTG+Bq=upSeOr?`5IipkP-=%Oj23|kI$?hef$+=ZpxHN(&91e0S<$_Y)tZbzuH*xGr zWEVK~^ky@Xk`#r96oI~lVlxbFGwElIdQRugmyMO<4QDxO^l=K4kev$Xza)VndY>VU zeT;f6D^+7@VC7mIrr~niSfsFE7I%9m=X30Y_hJJ-j8qbp7VvjryG;7cp2K}&A$r^9 zN$TZ|{qNEmKj3-t$!uYU?_njq!FRldmCC1k#K)R-e{W`Tn|Oq|{R+P&J=#l1$|vX& zN9UQ;esWWp>gDR%S0hn;(f}9`TQ=v3qpEZ~g+mMPJ`po|i(vV3x$UmB|N<%D-W1`HEPz6_VwsQ5l8 z_$HEdU-|%Ipih?5eD$1HE&nmMVyt31=R`Ri0DO5h{j~aX`8t{^>osZDY4}9>G6Z#^ z_Vu}cpzD6OFX0;Ja=dToDb97+QL+0hI33Ee9u>9oq!RS0yxn@YxXgP>?PEE*-fW6o zZvN6#z+M{zj9KdA2{fdIu8VdWeW+ALNn?+SCTsgS#X*xXsEch;|No^zeIcB`sZIV; z|KP%=_)ZgRBIL_A;7+~*!hGzyz3gT&iTSuJxoWEY*L3~T)z*BR7I6Apyz^;r#TOd` zm!nkEPUZMnhD_r;ZNgnyMqqMRj`f#k1A(VQaa8)hyt6dwZ{^V>JeC6Js<@xtX)cZ} zQW}x6ra2JTRJI$PQBBeUbxU}~`$5fo)+xNf6-|YN?#27QjrYIb_XS6P;MuqZm^%MC z)CR!tO`WJ2P&Eg*{lDh@|F+C|g!d^_+}x1H*}r+D)Q&2{y#9Z#LeYN21gB~MyP=dY zYC<$;$HqB@^#F_dnBgltR4MBayxG(z3{b5+KS<744*gD`ahwECkFrSzZw^OR?`|zRdgK0r{@Y_VRYU0weLQ}tIAYd zNzua|s^KFB&*P9Poas~fjt0X=TL@*ZjcHU# z{hmPl)BAQc>77~Vs?+-JY^B@$g{$rB?R`VOdd+lIs`2#kW1o5&sZ55OI*)$n>i_bH znH$4?S-+!G6>-mM!s@I9^A^(jsZMS$HP?DkXN;i}5I6X~M&s^lr0PtX+e3tP%Nf#j ztf}BD3OnejdP+|9wiP_ozx-Rx4_}Ou%u^{7Q|ldPuFJk2q^n=5@b`25-6nA`d$WM2 znr(2biM0^zQ&#Jg89W367pJ$uIfp(Yv+m;aWxIo__p=V3b$v>su{DS92*x*Q+Y72MJdzD#QaI}BM;vzDd zN2@jKP2Qn9=X)gS1ihW%4V}ya-%E=UkS64rB-7hlDZ0N8#U`bl+2Xw@8ZoaVl`;+H~DY1ys605!wd6}^d=hoi}@>l6%XuP#mgxf~HP+EJ^A$>HsBUZ8biNK# z7)aupF4u8yPeMxld9LO)&*|fI#72$6~`d?1Hb#uzkX^>`1Ao|*Ks*%hj1u1lqckR#y&vv*M|T8zWejcMWE*( zLWVFu;|@!9-v9t007*naRBSD9pb04n&v^m8QvE*UR;X|rQ3U^%UBoC&~&9(AeUB>0=Xkyh}l zOBpfpwTzFh(*D9HDc@H!U1(exQ!_y4w>^Va%wX@dE7n@Sz>yrmkHyU@0j(pMnWJ=o zgVl>Qe#Y~W-MGU$6)0*`DI7DYcjQbeDmeSvxd}SQz2kJJ`c|2lB!y&NMUSQ^wDmBz zm!b`XtJJ|hQXGnMT&FX{gT~c{T=$59Sbc>ZDVb#@1x4F?U*FzPsgHZa_3oI91!|%7 z2!j)MBFfcplk09X4vNu0im>8+98gsxCbKXxlzd}12oyM=Ff6KOyLiH78vzmXMQ8a^ zXK`}|Erkb743*^qO|&z)igJ8jn{g=gvy{OuMcX2)_V|rh5rCmHVNCI*i~x2F_|Fnf z5Nv_^=%Guh8kHOt@?Zq3On!4|4!MMc7b*8FBI#n-;1zU=%n8}-3Xv8BrimmeXnMmMRygHK$R|NM98Fnn5t`+M)@t9a4S8 z3bl|U5ICw@#Umv3_=p>H2PbpF3phxnH|*ln>0ybN`hPilb0%4mEKBb@YHsFBZ0}{( zGCfm`77$>D!@mQ52mS{r5THgtfIxFYj5GlVAOciYW2UPzU#z~G*#U7?&CPs^Xr!b_ zWxW^S;clU(ruW`+zQZdl`?vyXam1gvG(kF1qovtL)KDzx{meh^y5`W%x_K_R+@S$d zH2l-$u|c*<@QDxLMz!uQpk{8ISGkUe)YlBe7xi0Tj5Iji!T$mO@3~_Al&GoerR9b5 za03ncyR7}!AZx$!DXw+-Z*)a&RJgYt71yt`nap6a!6{9|hbIu~(sNv#UuFn(y?v=;7UYIQ=2MqdPgXN6Z%QCB)-E=j+LoHRaqg!%PZH+%Gv*D7OS^ z>F@1t@z69YQQ4plKZ^$LvC!UnLCO9}%#^F?RtU|Ud5K%7?M7g|%WLV*mXl#2%ifCD zB*9P4!vCF(v_)%C!BY;acL$v`vy*MHkv_~!euCQcI7a~q%-q4m%L>$CwlPzvxl@l0 z<-FY#`jbVQU9GAU^L+Bj`ukpkNJE1_KXQZZ(lWOq@@aUKi%5cT4;#rQ(a#bI-P;NGiG$({ zMk_0`3N2}7&m!wcPNfMIKesNY%7aPCPw)skc(>oh2X4?(EZ`1r?3WxH;6*q@#S`l6 zH~FKm77yYB&+H}qBsTDdYq*PnnOVtm`wi`S9^^*M&^PyM@ha`@rySwteOZuAj+$_t z4=4GitA*qpY|O&0<4G!JnH}U5eaL*A*Uwn+i;ozRgZQ(J_z999wH6hWZ#(aSF;X@+gSr2Q4y!nCn&O(5y{!_H1=Ir@S?gU`-|`V3Z+Q9s?WXE5=QUTo73 z(<9wl3AbRHz6yak&s~~WLoSU{G|XvyU3*xaT2QYwj&CzMKh>Ua!&oqql$@GKHNE(n zVD|@r&k@Jq>0Nx|NIlM_81DTuVb5S2(x`7Vb`g!80pmf1b$Jo`#0PU}PrGeN_Gfj` zr?F|io?|wt1}H$J>Q;GnZEVSB5paCL2XOTdqZPX-L)nDea<>j~zO(;0@BZVw?=k_S zDnfOYu4siTX%HF*!7Lq}`@vJrtl<`?qABjtCT9;YLn`RV4mwjorODVf`t_@$P&aoU z4%R$sgd#-`ICVmSIJnPPOzll)?ujCYfdAY_l9GdaLqe@Qk2bopFm{0dbm6_todrQK zPpOO)N9r)ovJ>-s7AHbSH*k>df+wK-S?a8<&={KE<_59uU?yX2izfFT*UCMt(8AB* z0n0=OO3E_HSy@3lw5N|;#K>A)#K(*d?_d^owk#AiwEqP*;!ga8WOmR<1NT4f!+j|c z$;qM`OWrzV`E3m$E!sk_AP8keYDE6ZyeJ}nBbztNqJw_Zm9*QP9eUCy^BAd9xjbYK zTZfh zSe{x`3c-YSMM&G>h*PeUR(W9~Qz@o;N@bfaJM4s8S)QnAdYINE;;AIZbwgDdGOmI{ z82>w^@c86#8MWUrS0+?!Lld7;nT%dwC=R3R7rppiG9HRq$;p~Qauh}R1q+kVmLeZ} zV1DLQl6++%fI2n=w~?44y8I4FVxEVZIkq=I?X`#)>In5kvEr*Dh4~$+Xz07M)nb z!YomOAM##QW-ET+Z=yHz=v;`O#51gm+;AZWVeBL40q8*pt;sl=MPaFd7x=#Hv`ev* z-wNdSP_p7Xu`JoPYX~U+9E&HPbXiZ|yt++BXQ=5<~?ZTXy&$xe#7zBkcQS5(}J-8g7_L0dkM z7emy%dqZI8aJXka^0~qX*rNN<3A=|!`>*gWeJexm4l4CML_aGScPsc&dqpZ3Rui5s$v&u!?}p+Fb$GBFhn|NMSfudj$L^@@AE&?71^oa+VKx z23P*h(t{{ED!G6rqvdS}krJdc2g(UoD?@$FFNssV|*QQ6SVh^=>LUoxP zXml}mVk_>9@vrzVQaAb(bNr{CCuxsA;87V>daz%l;POdq#WS9pr{Z*stgjiWVm@dN zNedhs+Oz1L9-zeyePbEDNo!d3zK0|otWGw5mkwqrM>Mfp@W?da289LLrh}<3=R83)HGZ{M2`1FG-$Bb(XR@p(+lj?v<#Jt(Y7v@DlH(b$}Ta zb89WlcYB+72`d{c%|Z0alc#rS4UhN^Hc2mdVK1ddeAv%uDKG3$dwio`ix*fGHsc-C z;st)SAJCohW4DE!-N-Z8i5gc@ZzrM1=Wr%c_R!cf(Q1^S7WbpPGZp+KB>y>6f3uwK z&o=T;%BgItESw5Ntt+_0@6rNlDd7j{SM+=Q2+!~;hci-mj=sZhxR-XYkat+-LA2rx zp5zDfW@ZYBm>$Csj(F3Sz1f0`~gRER-Gh=x%62_ z#PO8Qst_H;>Sh}5GV0X#QKER1->%aJWL5=^4PhP)7<7iKh$2>T7}A#??c7vwAFDTy zNJ!HM&V*`m=E$4qzBD0*pL}%pBcO*b_yc^x>lg+lzH%HHeVEhd`ZNQ8uPCqexz2a; z^;LErOi(bMWb}JJ}Vc7X4z5FK8}jGCS)E*2#)!uR?@zX;nojY+tUbFt5&zIB>jKZaVIu9HEXaMOZ% zLo37;YsFXk(bs;1<7+r}30R}kz;xWgCD+B|QVhu)n*4$$yr7fD_wXNSIu#f!@H!nx zoB*uOm&A?nr@qja=QE+xS4xZ9uIGkIVu^>Fj5kXI0P&xvsX>x!Wj(=9&=u zWb#RxhF1q7qba(EVc$5QQn7oDjFL0x5ZE}wWV)>2)4Y%nc5wvHlK;%I4}EC7;BH{q zJEzWexj?1D?Fe_E0{yJW*yVlciMKcg276`ngbE2{UPwEo@o}7t26$mvcr{^GsLg$O z+1=2v4q9~iZ<)P7)a9PvTf0J7j<>pmnbnb5jd5$ogeGP5JhMXnS;0@Bg4$>bpCLIT zO#*ci=HQbD>%gtf0$9AUEY+n^_+|`Gau3famFZ4Y{zLaa;(7O_9XW%a@M_pnOpCX0 zAUjYbW;l4whk}f7DJ%s$(VGWYmOCWqt8EsFdNsQKl>yJJ z>SPQn_V5aOG>fzb*(x^fLv z*@sl9FU}#`V_Al?jO*Ak*909fJ~&2FLNwWFrLLG}x)B$v=QL)AvoIK4>U)jn@xxe2 zBN}IUT6p|SNjN4z&4|Y+J(EXbt^QWelvSHLM9wB&$_ zgdK^XR23}!Xs8id5=UU+Um}06J zExZ(#OI=_@+tN$zaV1u0f!FXGtl_C(WRjUHCte&1H>N2xtxX|H^#vfaIts3-6zL|8 z9pg#72d}JX|DVcjzAL$wHOFj~AiM=Ht`~Foop^>1Wx&gC_%RPS!wB#1nHQ9wFAJz0 z$~%l3^Z+We#x2Zof&<20!aaIN8(4(~Gctjdu{q>nMrNg89U^aO^ov}Pw_hfTMRR*hdxuHs|ZjO4UWc<#` zv!KiOn)c<>javNqgwUcMwYY`5GOb?@zd;?*RYMx^yRt|yUb#RLGJ>xy-*qS#$Dp?I z%U!=XwDqAb6@P~-bQl%rDzDRyp6p*a{(bgW*R)o?4r{%3obwfh3SSWBbH$eW`GND_ z;lKPV1Z3BG^eXm8_vpVaN17hq(7(VA|GqSuZ&q{MG(B)Lv%#OnWnFd#{A0s^SC1r= z8ZisT7JW^Nm@~1~d9>Mys?E~~JdI*iCm`6;TA28*Pw2Ti>P!dmsZ-25*V5iLo>?_s zh~ClSB^m4kRPx5Oq^BUcNC#8XC$uvg{DA5tjTC4HXvN&F;9cHIRf%l*mPf+6D`&h8 zJ;}{U_YJ@scr{N*iC-Q1<)Pi;JL}(B_hRe*UFn-?3}TO;#e-N{Mjzr8R_3w%y4pk= zkyJM2c(AgRw1;QYn7Q0q3#rC?{EB+gPmG2CJ~(}djNK2JA7w9;=S~4 z?-O@KE}d7nLGQ4~4`wDc_RsJpUgQ=(NKwol#9qv@)lV}#vwIZ1=t^4P2#2#g$1~F= zNp8cDoRB>;?}>%<9f5xlhb(~UTl8lo)W;M589%{N$5wWYSLR*Z(Z@-9CI1cn2oLaP zzevf!q+%&QW=oKF^mEvemhgz5?RWWJI@r(XXWPj$>j}E#XPBEuJQEAF6$iVq=Q)pu zO?U#5BI&KO4^rcjTzoon)dk_SP6V-|XBD9FvDPxWW=RvlN_5S|*KS zT@dMCn0xucd*;()ba$ce>`O_rx_*4u*IL6|OQX`nTr}Ytor&w!pUx;wnGKrG1416I zlB7OOZyb*b#ulm5>wnVmDJd5d-@pm+Uzgmi(;>mR+kh(qD~z_VyzD0ax}g5kV(j=& zy0v(GGgbK7o_}rg_ZPsjlP}xh7A=m6BW?@yzrr2rVeyai?mx}@P;iuy=U~;}_YTQV zP&-^24dtlkzG(dpaHm2D#ql@@F-6x$w4w9IRuOH2h3t^xI^)YL zl+fCtLCETcfd7R4bZ2$&0882Vb#k9N$+hwzWS%!ux23bGqC-@MEZe3jt(+Jk95O;A z9vq(I-ugg6ZrPEcA5FO%;zTt(_|}Ee5CYiN`JLY>=T~n_5H6u_D!uOn2itgF?xq8Z z(Mz9F2iU7Zhg2>Oh6%BUasJHw1|MjFeukvn{hx#E)^XdWf@!un<@7nnb19*w2(h=a zOl{3l27C)W!XDm4LtjVd5t-DLInxerM_I>9^fOV^Wh3z(c7x_X0CQ^&o#^q*B&$W6 zq7C2UT0BX0L?HCqNi$`iO3o#Qh@t+lTQL{Q`29+~+1lGgDiO+2am_?epNeTCoItC4i`RnL;_A#X}zzWSe9eMNITo*^5x)l}H)W zCK38>W*#biynWIoj~Xk2X8ktkJjV9hlO{{B+ClUdj=EiajAGzcpoM5Y4_WN1?JU z)Z`hioy`_$$U-PJMW4-U`HoAtrgzch#aJ#!2TMuRcxJ^-*C}V7?_i@c2@o~Rouz8w z8+a+3)l%y5j{Xg1(j5OASj%s)F*~WvS>pWy7Ulk$6%6_gp5-MhOLsV;fIk9gCT8LR z7Vv@o3U~HncwB;7CeL7RAD~leAmKUg%q|Mf;QYV?u9e4!!j0+BUR3f!QICcd;5XRg zM?1K19Z0SN3lr`l(+HIB>!th?fIjjT#}DP3eTE~U`kSQa_&c+JW&-?yu^Z_g10Pl^ zD1E2{l2`)rJFKl0tnr7q*N|%C2uxgvy}ZI}RH3=OjRXkMqX^e+#KF|@oDvpmv;#$p zA;-ciAVPPdvoxqRQ8dRlIW{0`1K-i($e8scel0$^cX)z((<>Xowxn5cAmKs>32(9Z_etS=g)NHutcpTx}J zyrF?gy-|e@^cA{K{OV(V55RWbubb|vjX;`kK-NVxFe{I>fr)p>1As5`Bz?WD{}p1- zwPNiy!k#a*u(?v6+^CCB|F7V`l>b{7>fiw_iU(*=2$f8TJVa3*aUE;?pgMdrut=Eb11Vp2V)O2& zub|Oa9t$atq}P!Lz=#^8i4UMu(mmcS1YCZmRhK=-sG9AwRl9`s7>3(ni z6oPB?CVk7%YkZh@^aKmZ@Q&Zjy>(wo<304IDFDxnlpGyTuY0|TyP}O)sZZ7idXwhx z9S;a{p?9-SEUln)T3Ngw=(CN}MiE=(N;;Si$GOxqYY7WU_CfBm%vN>pCJDQ?8f7;Z)?#52_j$0DDPN|@{s*6_qLK>ZvZKMBL?vdpz%8AQ zBQi2Z+n$YR0}%zEl4jwSR=+RkydEsIvaA_y!a`Se{!a9En7l*P@gVN#x9D9FHs;1G zr8{|#U#u0(;~1mBb+Q(}1-n)3#0xCY%Knbl_*Gt*CG3-u`G!BNXK^Pla1xKAwx6ZF z_(tDAQe^+wW)25=SL&>Q^d{xd!C2T!F%zwg)GC~>3iZH?`#b47mi3Fm_pBhb{$dG# z6Zhg*_>S-L>AW{;>^pdu?g6nh9saBI2hpJq`31hA220#qt^5%ZLy_E9ODbk}>{&8TS zQPH7^ig?1o@gzzz@6rS8S*JsXqk6WV3D;AJI9qAuAK5ILf=b3Yx1J(IRC2{ngus_f1N!V33ll@e2`A^=T0ssl;Ay_|kT{_#~Ij4wqeYV5huDI9FjnGCapVJbFpa!iK=$LpU) zQ-S_8pIKwChNg~oU5ivgpryxG%EAfF0e_w`hZ+JMd7{i-)4b zjERL^nitVVcR;JNfUz%2Jub_e&wXi5{+Yn2pBJg)14z(kcQ|uDEf^LWs{crFNEBGAC*{`_aui{(ZHB9@&{Cl1eIXGH-=&y)LkhDtG^n8ce~)Y?VK<;R(KtG_x)2 zBZxRJLRV-xiej!atAt$%tZU&8Rz3>jqT?vMLPo*C3d!knf*OQRlE$kV!_IPS{c(obKfD}S}cG2bel zfUGoc%Pire1l}%(~JY{3Qtlt3fz@k-+NdPL#d-Y{Hgc@ zw(wYz+=gFhfYEo#CV*LSGDW({9zUbIX)^Gvgb!10@OAls zS-e(361y+2(1<7aQ5a1h#mUqa@$9DDeMwn*U*izf#sugs|H^oUrX(jXin>4E`~o)0 zcfpYQ`wV|5D<=y0U4~{vmoR%xT%M=n2lTucu&QDLsOaYfWY@q7UW=T+6BX`@vmw%e zw|E!XCuOOxj#1J%I{Ovwp~3Z#!H{1qhR|-{4sBqGKVpmNl3wq+<-Tp&2D(yQZ04z%O_gp3b96?CTfVH%BSDa&rF4Fkt!$$8`4L$Dt^52AASb_8n}+JN^a>3wXzGq@R-KPVRZd>%=3v%NN!A z{D44KCvTxPjWN8+d$>0T(V(T>qZhMHeuSkJ!vjd2c*hb?*;hJbRU*_%A7J}F_J8XQ ze<<}(*^8uQhTsJ_(V!V>$Z04>m0UTb7y*Y=(AAcX0HU1G!vN-SZlH&tDi%#8rLrnY zNQDl#wc6;mOCcpmS=Y#3?xHX(ow$T%Fn8cqjuF36w52gsd0(x$d!C2777ovSBh{Qw)oLJig&Y<@5P;I z;2p=ZM-D??1Ml`hzDLPXxcN8uoAeEqIDUEnX6Lv~+Tticx&oqHC=O{_ixpu_$hO@c znnYwZ{g5B*Z<6pYVpmq}0e*oBKN!PrI5LWdF3()*@f$qYE!;~l;y3(rxV_;`dWy56 z{DfPx*LVQzg}4uMCw#|$74PQW-ou?ZNYC(B_&YSCU%?yN$oF&&;FfCRT>rrIAaiNK+qW{EPM3!#zl%xZ*i+|Z zf8jmkd1L+gG5w1t@*CfKl!60U&snRyOK;r{TlO^M)AC85{5h+HpeO#Y4W{{ zQi84Nfbh(vWS!pBx0zudhd2R z+_e(u(;8-w|EtAw)EDvi&>&02AkzG=i~c{=osWk%7v){0XkV&2rX15LcZ5^^g=q!{ zK}f>_HXfw~&!BQLY~;oybdZAh zKZn}9=Oa6hfe3IkS*Wc@n@naKNRR?K3H?Z*31UQ%pi>4QRL&^Y9;brJX-j9PMjs_= zxXq0imPj7V7Fo?IIG|_P!=rO#^hWez2`gvO;tqGH6L(pg88!YG0QdH;7#E^h^8>%5mGrYLytW!Lvb{`i#uOn;)6p5M?fEhKLTv`4Ba;$U=68nKSty9uf&0vL%Q8k&&NWZ`Tukqn zR~?lWRYr}9i$%hMVOMZ+Lv0co!LaesH_Y}#o6&}=(6SXBTH^Jrca&$ zMPR1lE!Wg@7_T_aHahWRW{mCRryu7eWs&500M5Y)a$C;%36io!V2*@)Iacz)elN|$ zT5bvuU&Dc2>T~om5;JG{Sft4vOotDNy&!im13TtU?r>+;P)R$e@my-eTrPeBZ(yS| z&p6r)?vG~iA7Cq9?G4(Mf^&l+Y)xS zaP~2*rKR|WEBGz11Ac=ilnRk4W_5yBvn@xE8A7Z>2L}(b;2n1Ic9xsU=8DWuX3QY8t4?Nf{eX7*d45rHt=l!zL=a2s8I^rVp6DOy%ZbN+70X^ zLBDNSFS_R4xI(cFHrW@LL(z*^!JyrU*LSn~e^E_xO|*VPg5#Td6yI!c-!KsP%hlZF zK}Gz}zc0Y6nEl+t&xM}w-{iO$`Is~YcveJj@e2QT^vW?pSi?V;5zc@O(A7Kx&MF{Z zsb_CgWV-3+xRfaNmx_OE_#YO>oWA5E-guxzk4>vbZqKNrG-#KvssGNa^9i163SXFH zK8_;TICj!6=?2}|8`3^y!@wNoir-^?Vmorq;hj_+Z+SY$Nt?GMn|qz&eD?^LJEE@(;vjMQ4Ua1N8cKeHn8d4NDmRH z8|z<4a?b{Dq&dU}zA^7|=OnSjOKWCYxh;0gnd8BswnvGoXBaWHNr&thW^PFI(AriK z$PuY)q2Ahqq!PWZp}`T2>_awNTT;sC8^^01N(NFwwXzkm8X}`aQB04x3jL^M$e2}e zMLRn56*6ZrA_e*(7s@$Y%>iF+%Mf}HphVtMrTob{yt5h10S`{v! z6MOMu&&7kiOT56`zQ^Ci2fX10%*Bp=22b#gp2fYXp%%Y~7x-Zx#DiJjebNE%Oe0dx z1_&>5=!6{VqCI@z6*Tyu2yNCDFYI~JH+aEv|C9v$Kkg1i!?}lF;2+=)Bt0t(pc(?r z7trB1^nhFYN&10ayHD^ah4=TH{kN#NQ?3~+d1YGkWMP& zpHULaoS>$q!c6Hq`(0EiOe;>PVhD;p*$j0CAMrH%@}!I6;~e+M0UdQE$M`Cr^fjkq z`!vdinF#+q8tC??5w@CS0Pr>8_T|LR^XJ34ME8uP<8zDP_^(cy(PPHFr$jnW_kuz_ z9t79tLftTEpFnIh@?pypyTC;;?>QyoD^3WV#l~hjp>qrPqV&5c$c|c`qi-<+dirTh zf=l1c1-miD0cz^#)9B-U;yKl%de&zslCS7ft_dqny0n+IC)dUmx|~bQNk{(TC)MeF zrZ3DV%;_T6$&6$?a?muE;5?c6tZ9C`ORK9Enyd4wPX#`=Brs*qJ1$yH#3aMi9wy+) zBc=JqVmr$K_mo>T4i6t(SRRj9&ewCAm;=VYf?+Twos}PBWy^T^`MP+=x1dt`%!i>X z2XkF_N@b~d`Vx}WpQQ_YI)2cVY2f4=4-g{jHkY`$l^nB*J*5A$PXF`j@RmF}t)-&W z?urC5D3HCf^C^^o!E|nl{yHA#I*wkwflArkpLN7aj=bC=sV;k;_R!fYCY1Te`3y4V z!CCbg`CU~e{AwvjNL>iw7e%Mmp?g^1o*bMN#F%15$D$^GwyesLBx+}+YL~&I`7@@h z3e>&`9uLmq**)IEov_(ME0(Ak?mi9hA3F4EKHyGKArlghIlhw`5skvE4>fn#qKk$I z?4u`JI-a|cOuonS9QCYz)Vv7VMh{gU9`FLMVgWyuq=Z^5?fhu7y7C$4Bf9O;LFJH& zXU6yWp0pm-qAKXK2`%iWnER?!}rQuzQKL66id`e zJ`j-{J&8+UZ~;@1aKbP${pjeGxL(CF-EcZfnnrE5+q` zwJQqQIXo4Xx?ydXRs#3N z(E`@=OHULu$MmI3+n_w|fB5nlgEFPag9&G;zREBlcPfL~WfOk$S}e%Tf{y+Gd-IMh zBF8makZA}Iw)?>aU*@CpVk|h|PCCFg@^bB_%n3TtDLXCp(BLNP`)J@$;(~W#p36>l z_}y8P^#`$m7isHE5ZXtXL}VDouiiCm(F<2!;)5;mD#b;fJ3}fWzjtBZE4G)M0kFssHBy-Yd>{($e+?_C zQS>6+dA#-I#NfzB5x$34=^a1Vv6kj&u52LKmz$+>Y{j%vxVvWJKuK+}XHpRDtC%Z@ z1FY?=3AF_e%I+meYnb6xF`dK$tDp&pAFNR{1^P1A3_eu_@1ll>h`_P$;3Y*kJPZ2+ zI`l5S;icWeJC3pFL2Th(tl$IoVp#$PW)K4W-mzK5J>og~D7L4n95?4VfQJRFV2`s{ zN=Jj>UQ|{CbG#Yh_&0WfN~)BDH}2pW*3uo+j*tn@GJ?i^2`#w8Z~4d3+o=<8tA4d> zn?s!+C>|1h(&!N%e|X55sJdvK|IGD!5}mX z3NbAJ`*PSFUSSYmyPuZD!ysWq4YG2}$z#=|CqI{hj43Ub9omw+|BW34Sq$7oIsNfcF>jHaEtFqcO@e&a>yXHVhuKr?km)yH^nem zjlAe-P+zz!rms*#u-X;F$SU%i?GCkx-l6gqy*mYLjS5nqIforO^!f1C48^{Lg2Kc> zYLS(jS}`0A(i&0YzzWxSDlidEs|5X)f>1dmRYbt>(3%_U;QiE>Igz9DcsBdpe*Rcizt*5gG~kJ!y#zj;>S$M4q;8(g;X#Y;}*`z)5WDsi=4a zSh%h&y=_~&7JEDKHcZvB8d2zU)~z&CxCfJGUH-2A*ls>;W{pzX)Q#GCn$D~>0GMS`BRgGK9la=V64Y>CY`p??XyR5h1xPa8piqwwFLy!k0i`v4pBOFzn??=Pdx$G zk3J`HLgSOg#rE;1{E#t$@xn>2a1Af_@ozNoFaF9jO6T(h)y(k&>GH=p?djiEN$b)D zDIe$9QB9}!)fXY2H||q?`8>*XBK)ae!KY1g#_O#twg@foG|$7n6a#Sk&Przkq0tlF zrN!}>ud6>upH*cy z5}`j`b(agawqPG(C0Ed8l!~j|QFHUZEV_Scx_qK#<}BilAK%#(13*6GgBGS&mVd@R zzb_MoLvb4?=hkg4+S2uicECY7e{yV0=?P(MIdgE7|5qTpgY7Y!m)LA~uqs2l13sAh zJdIGarymN;VIVLZa*I6vBZpJ91q6u#wv#3Bop6xo%XGgogQ9;+hEDYGUg9^00Na2Y zxKJ{Nk@g3?1Lu&f=qG2f440#T*&pEvrQvI93uJ`Rx>oFfym{aGc4b2&~y7rPSB+Q2txfnJA3Im}S)p;XJ5 zoz9_S%Kg@1C>m|V59yFyv|5xm6HllC8`TEieDXRTZr6;w7e@+exw+~isU{+kH6(sB zJ?@k;&psn6rqaH+kPbh5uaC3nJdoDO@l<1)!m!_~Jk@pd4xBz#N~%CX;vN+uPGy86 z9m`7>gG*lma^oHDi;gJpuT257M4NR7+k8s*e1I%zI58gIVa!ezB_()>3fL9jNh-+x zUUc@x4&3=1*Eyyo8v@!wZV4d!2Hs31R^pHF5kb?UL#-knBO6(&5@{aXl^?K@Rye^* zH1IAya8GvpEZ|+dz_!rsRj^ctJm;elb%p>a>^L#5cqx>jAz!k#tqc%bWgL)W#`yyd z;t7&-&d00(jv}iWh#5fas}HzBzm^L82lO$e$mz|x7YSYpJgs&fR75855{M%AYPn{;cbE2IKO7zwW;kKM&*R8}e+Lg=<_`uD}* zr^5^nG1`MyqbjPkVrmZ<(Zx)!%K=^g8kIetQ7CVVv3xT*;G%@()AHo?RD2q*3f?4ZGG>rvdB50erNtep>* z52=)d^3e2Yr8RzlIojF(8MY%1(#-mk^yDnO_y%*^@PgL%@1PN#`)8%S{nOFR>P?Km zZCTqyZ>^$LYQ4aU$XnteGd#V9N3)cWV*Joq?;?pOSY#Q5>6K)ooxOD)*c-<<+4fAD z!@>p~Mxo4$LILWFr_FiltOG)-i-_TXqY|l1D!`vM4#OTo7V^U~qvUnmB{Cyj^afk{L!z` zL65)D|3JTkN9h^AWvXyrp@sB>pG(g6%HD~Ud5~XVD;{AB&+wCoXZItt@Had!C-4I? zy7LTLsVOq1g%kkcT9Mx~c4D18_4;Yr%1IusC)?>bPT;iPro2CkGakIptT3Za_N0&Q zk(7O$Tj1MH!!J(qPc``C*wtx)d8*ewL%5tP=yh&O8@J?6TKt2coIf!qD<6jXZbj%9#4g;k)z@yN5K=m)TH0t9~mjJX==)uoy7c} z**hkap8g6Fy}xkQ;fqP9J|*&A7`phZ;W+&Wx;cd!_xg`Bl2MfOMMsOSpjys>TPGx< za~sDodwI&`I+>zf49oRrZP^>G+b`bKUrlTt`rv0f){&ocqE{(RcIh+&`P#JU)Z{wtkaJ}zIT<=mur7aQPj}6u`gjs4;VSqu(<>nKi0WH&L9SbZZd6wK z)LEmG(BrI-n|x3xYuErA?9wAH%|?atWmf3t zEvm#!R9I%4Wy?X~*H&(zwnC^V{1BjF>rkfbZG4nP3y^gBXauNG$b9iH(V{mz=nZ<%yyOqacYX#=$!30HAg zm#vb6n?E?BvCt)MCyN-G7B!88!GW ztO+HCu7$Po?5Crz;m#>4qJ1Vosj{~jrlEvd*eGjB=BNr)l-XKs%8&R+_pP&v)^jNp zv4o}2t!(TX9${I$n-TeSDEK3AXJl%zkeX7_MJd$^%T-PZE}m^=iPjoz9TG6DkVL0! z%UBd!e_ND-Gt?wz!&Vz&J+l>iMT2-i6lToP94fh1wv9*iRXkbwe(Y?EK2y5NtT(TO zqq55o5#l*BpqK+X(Pv<9Y>1;%%~^*^!=s}7pyVhLt-*m>5ImMAhfsyeq=5c?G?euj zoazB;l*m=|(HWz7^X_}P>@jznbjbUaX7b!#LZ8Bo!3I9aax?)ErrhGbw_9H|}3?B|S(h^d`T-LE)YE9xq@e z)usy3bYdSF!f-DlOz#OT#5>-YPRzw4?9n^^8@@O9%DkOK9|rt`=|!D?U*0LXU(}R4bST-*z(F}rXb%gt z$b%dzG6k;IkOLva1OCO(W^!IypUfCAN)uPXc!WOYHH?}%og<3FG8KW>u$`15p*4p{ z)$l^jHO1kY$~WmNZlWz4k+9BfKe^%{R1#7TpsePm=v8&pgH!8QG)* ztn#yue=#p{atNND`FrWRy%+E3o4r7`UgQt>J!()Vp3NSA58-|cr2qf`AOJ~3K~$G$ zjtjq~-xxJmUlWgqqkuEJ-`O#&hdF=#CueHN9CUdi&n_O#6n~ zaM4){lpKe>fc8+MncbnioS=4IQXxR;?YUC?D)!J?LAeQyd>n&&Wq;WCoO7_Z;t<-8 zOhr-XY?6tZsKJ#|qzD9d$0?szq7@k(@D5rj82wJiRh{yYKrH4y&09kR&B4yH2WcjVn=`rE}c%&iQ=1$2(chT+Ld!kH3Y=s>!ni z!Y-*izYj4`9J=GQAGo9rb@IXNGyah}=E~A8qwQQv5!)M&)Hkt{4)$C~yxI#qmnyTD z6aFUF;srmzcl;uD_#51#z5D?)djWf?;DC68yCD9-@9}T=Z}3xAT6h@4ugn^+l?4GI z)N5p51MgymYkVjnAn(#W*$VjqmHizX{i3|L8~;@-62F6atby3(V$x?P^S7=C!ENACjgPN3Bg!{?XdvLr;V|RPIV}Nm~^CuzxCNv zAX;u3^XbbUTH^u0*E1e(L!udXInU8Cr_Yzs2i2w4+t|T(Mv6HZ3D_fxkk8x+Q=RNF zJy;hyl9OxVTWvd?n<1_P@qO*<&$aM6UbN$7OQR0EO0M&4WQjOGFBFN{5hj!JmrbsQ zPjgK#w=8}3hD*!rM1%Zw;j_*LFw&_kc?f|YpMb1MOZxO|*I!+MKFQ$l1SWIxOSu6~ zImRJPr$IiEOpK!!JW?NPk^rLfEa>S#Lf2cy|Nr8=xOCaB-uven9%E@gN95RX5H;8ynUw9kKjLr>NCiPb4;Uiq(hO#%Da4+8F#IT; zH5DQ4zFhwu`Uts=-NQHOX=D=Gm!DF_3OVaXi2i9c-)s+C}VXEDgqxlRT%$%%=j(o6f{(7mr^TjApcF>Y{8OlFl z?8Hs6Gh5|QipJ4-bRU|gvV_`W?5f5$iZ7zz}a< z6$u_0qvXLH5I?WWW*`rF%P#Q=`=TWez0&N`S-kwMyPRW@1@(vW-iG)?M@?JS%n-oa zmVZBRjRuMO4`qAM9lVqP>H(p<$fGG_M?&ldUSLtYBa3qTZ=fwcfTt4dxz9}e+>Wn? zB^nyK@&WhdGJfRT_577CYVOWINa0K8>7uy{KgNz|{(k%1j zi3kP>IDFW9t#93y6@-k}@F)6F+XGJ^_*^_#B_IKKRM8!$>NDGx&Y$m#Fu(LBSCwU? zx8}dI_bC(H6mbfE~&>j5o8ZvrUZ5e)6!-Y>_H* zc!Edt7Oyz;ybtX@9X+3EbCpHu2NV84)v>} zPC*W-nE#52VH0q<+8t@?`kqeDf_DMLQ^85G@4Q)$UBA%83(^9QD9@a%Q?gxOc0qn6 zO6`T~N$(!AUjN58_M)%tTCW!FKeBh#HT2N+(70S_Nb$`B{IO8|KJ^6Mcuw0-1V>Nl|6d|*or(k!h9a1=98;Ab0ry~w7h5a zkL>eezwbkfZgyE2C>dtPs<9@}Y;VGgi&kcwHNRXty&N_jkHw`hwb-)0L1k}kq> zp26t8Fkq7Fsr_gR7GiIna3e;`=o<|7J~(F90cZF$Jxy`?ub(&9C@+g2@K>oK325a1 zfWFv+w3R>EodG?<#{4OFX28Fkj_9k4wq}4WCE>u<4ku}yZS*AVs-HZw1%x{Nefuo$7m$jw?x0+Nirq>dIk|a=hw{Jv=haAJ_~uK z^naPKS-&lvhg42Kn>0hW@iGvlN9vwFG0ze z;teJeae8@a3MP-4id=X+um8SCI@JlFRIZq31?73a;aZXJ)ynUsFkG+VWq1#O$ay5+ zWkFxp{;oM|{sXniv)<3ueBjvw`j!~v#gF@XtSi^pHD`W~OIiJS3+iMp%I|MFFPbLr zY{cKL0$=$a&jpaP-#Qz9C(O<`dxUk-|9hkQe9pOi;ix$4n#^!OSA9jN)R5V)jr&-MP?r6y-)d(wFVM9>xAhA+M0fWC@zZ)1$UDT;R1}4&> zRvU-e>N{4}$AHp*T{Qp8>bRHd`js##sa7qgBA`unsT4HOyX3eoYXIi5)J#iSY{q-L zb3VeV3io6N3cFlLcF`T7z&I}E)*v)gl6bB(p$0EZW3sdtYjU!BYY@GBdk|Jynq*pO6mpJ0g#9dk_-Aj;}xuvS~EEBYRbZ0@RyNm8(=icqLD6$hNy$|#_*ujm>xGe z^^XU$i#w%~m+&1m@Qt(<&qDTnB_71PjJ(RF3K_F8HIY@3H!w<_gMnV&Mq4HG`&tJa zt>4g!m7EG3qm0HD_9gMM{L3HszV3uFX%9ViE$9UFW9gDD(TI$XdRqaVxBH1?2N>7gDLv^(x-+LmxdQnwc zf}5z$S4P$pYbIzaC1wJr2OoTsF|^_~1ua-ZF+pdUv68hKYXxn@&K0eFVAJWXv9d5b zxsjrqg;*fDgm4tmRw&=?kl9a_il**ZvKSS)xbbu-GSf;tX1LJ{;GU9KFcZg2iSRF? zpM*}t_;eUbJ$f z$X730-zgAy1qpTXB2WPKh_})tK-<7iSiu+jPW%*6=**5xW7c?Shd2CI>R@Mn%D3_2 z;uEaH(Ngk$eQ$TLfgc4m6S_aIpm%I140I}u{Jj}f&@MymSx$dKc{jR3t5nvb1ALdi zmXKSH#h7A=y%au)sC@^T=|=t&{z4mQ;86gdB47Zd+5>={B$c?1U;#xz|K843i7e=n za)APcHk>WoCDtm+xTv!nC!8HxNO$-d@9m}7iDZ^$6i?!_9N?Xqil^dL$_=bsF7ItW*(UVFDN@;`v(upEpdL?}|1)sMfk_ zGQL{o{-ByrZ{}M0QWnN6&2BE#xaPMmjl*kp*jGh(&6_&>S2pu+_X*xM^6J{o|GWWMtjv;Rmr8DQXMf`%vzB-0*1nMr=oenYgOGG|fjFl^*P)QiEF4a99&7U;^iFMQF`%QeucZD&G!ng zQO3R5i=Eh1#YU)q!hbNDCOf4-aXO2AVh>Hut7@i$@gFI8_e z;J*R(H<6?#xWTL0j(v$A@Gt2WZ0@puCjAtjD{C=A2ji6V+5CmeZc4&ViCg;@Y~fbk zncw6;iZfdeqQ^h%05mNVN3^x?p_LENhMQJeIcF&atx7X=z2@Yf7h-0}xoo*6DXdMZ z2<=I-Ze4iu&M`sqMLkL9Oi-VQ3KMZdlS6BQYvic`pbxM?E<68zy*zX>S*2Myn;9_a z6~Pvl$Q_+wYILsVo})tQx#!dsI6-pqS*U(|l}q&2rfmt^ zmqD^Gi?}{F0pt_jB$77gIHoy$J_=Z88K)PoKXHM49=Cga-{$i=b+y^XmP^+Z3%t2y z{7AL*jhdt1E?}Q4#7{k;tJ_b#m4ExHX8s~l`0}gM@Ha}yo3+9q9Mg3`Z&8Oco zYeVXMN|~FfxU|t+I)2iLelhRcsy%Zy@PUi`k!OV06M!$TGw%%yKHQ&p4fFcyS#hZH z`KgW{RmHeshH+5$AJ_T6EXFc;RM59YGZG}3)18iBy-+VUvEMaO3UAJ5ZOMm|r~V|i zE!n?kuJJc@N`zMdw-vEqaKYBC6DPa|zz)Tu)iS_YnbOQbk*=Th$&4WbL)dKKNb zwS5~9@L<|>wcV8~owltO2WnJ67ArUy!wOqG6QPAO^uJGHmTq>pp5d|Tg_{XXFW;cf zjIdR-D_BW4b)Vf;VP;o1En`h)9#ra>_cO0RQ*YQ{Z;NLcnL+%(LSNy=ew0S|jMD7> z9%|vtm4}dKYw-axEPZlp^or8II@pN}cX)tDYY|~qjuGf%AvLpsO+@~}Li$szD$ULXqtmegbrs}MhbwZ1) zeQ*iKt{$>dHQQG0d8E9y(FUluW?>$xrTquG#s6S$(Xa47saV>3SXqnui59REPbS85 zD6+r8)_#)4`t}yE!H;l2_jOiT)-^f8hZnU0Jk%WQ(f%dw#VTZdDb|$oXh#pAF*_`A zfba0264??Rk>I@V>KuMk`S{QH7XM)^c9P%`GX7d0sL2QL8+I-&im3-+Siu8AOg(@F zalF?WZn0sb;sbaR4=xG7eF;)x0ZWn5)^1EEb}F#}BRs;V+OzB;P#x!B7DH3V)npDR ziuH2e9W1Ya@~>yK?nwJ#>w5nkMNp9c<%Z0R)D-b_O(<|7EC2XZf_y)=D z#aikeHGM70k9doNGTh@G+L?9nk@ybQcte1ILZlgn6%|Nykqk#3yEo8FM_9{235$2t z+nrdW-of(?0APXj^-}AS)_ACE-{d@K9KAp-W`v(sbdKr+4bG-TM=@03!@+KG7(0Ae z8dzE->NEBRH-z4iKN(f_rp=ZkZSU)f;4Q4N@V>2K|BJE@J1%SXgFdU^&*K4JR5+%;=jp2E^UE`10hs~sq=11mB@D(cq<56b%7a;uev7po z*+@H5MCoMwWNy(CWh-GPM@2rMn!s-}z*20pKf_Wy+2PCFxy%4J@!6uTtH>zOp*~+0 z-{D_N$W}%)q<@BQrS0NXgzieu_LKRhFzy8Thpv5xjOB=EAyTeN`AWcVf7w9*#t z#oFx5WAYu`2Fo#9VuX#=podgtNvEQC+6kLmnas1a6^*?#3(-hp(XS}gg0gTuPNaIYFS_aM(pu0+ z9wS*TS_-+;UK0{IxP?h>?8ckqJsT1q;aDNE>r&w@Jp?HXNiSB#(&EYT&c{D1O#?WiWq}B!9tc^jp|o zrN|bu@J&(=&-fuRn$P&V*@{o_Lu~C<3VLvt_>6wygb$(-2UtsY;t3z&EB8le!#y=|DAJ#Zk!)sFRi7O^A6V1v)xMIg(9=M#F3QJf2rQ(+4=QSNI6e)(W#<5 zAuT+E3o)~KY1TP7v9!~yS6=Jfp5+No5Mfm_f#>OASC*ys2|ur|wP%{&%Mek&)Hq+a z9r#qRV|KNq6OBi6LWs|G*3^26rW4?d({iZ_nE!ab)@jhoGT&Rtocd_p?S3maizPp)X^x_)MN=s+K5y~&JdtTX>=+ufj?Mia(AG{|j`EUZ# z^(3V?_ODmy`4{hAI*U56-yz-eo=p3NwMM=u%=#>w<7^c90)jN-c+H_=MV+d5>ct;1 z^YW%4z^`rh=eZH{d}E#McF(XpSMU3^3x3+1rnA=Cb=&f6;yAMc@X}!Ps;Ol*PIO8C zpI@(h@i@=x?CIk3Ht6egF31A|D<;$NbjBi_4=vrwS~a1pA~(qw574m;Z=sL z1`kO8b;702a7>#wd(tvbHLQTWH0P6HTL~>I7(xXc;Cq)k$Wg3Nsy{fC?B987 zRuRhDo-;H!W&alR1XjS5qjY|NJC_o9P-_cYvKe5m=YzMupXIunp^yP|C_IYG&rq5u;l0R)g7>G=;M7TjJzG z@N2;KSd$)p6o?RC3QLq^w&J-G|Khi|DDGohj`=nXAy`Vg5zb!Tv zO&!%e2n7y)Dq*|iEtlW~Y8Kp-TG`Y#Lz=nahM-%h_%a)p&u&E*svxsQ6()Y<0fru{ znN*o)p;fb~XSStF)v}Xns^_%t)u}z`OMKzwLg&dI&MY$iY^j(w`<`?nwvDq&wr6k0 zQLrQdO#Oh8{NZB_N^HWhA&+pVmfT9|QCIQqL*+Q7a39A~8{%ucGGj#pZ6|u{lx%S7 zYDbOOBR-fzplMVz(Gi&t87E^v1|r{ET9z!+ViAZc`~w_BKxyvrKf%dslKJGmpa4aa#;-PHmeFMj;j8XI0t13rXbmZPn?!hH6Gfa{;}| z64uqE`VJp(i#oA1y9yO_p-?c?%f7CVq856z3lD*56doPl7VH3@>(mzt$Dy{k_?Xf~ z7wWnFccil2{|C*E$8ykVsHNE;^CR^|(2!PG6P^?l}r`?+c{vJTU% zrawtjPpj9g$1p2Gyu6C4L)+whc5?DL)vuIoQe<@P?JQ)LaC0WvQRs8qkV=>vfpo-! z^AaWNXCwwsSq3R8`0lL+H}WGoIILj4fqS%dscY?|J#;Q$w-vGM_}|@K<{!fse4kx3OfK9jSu_&eAUtIQxVA$zGBou=lfB z5e`>3Xm57VCGMr>bhI+onAnqB=%n6$7K7<>X#Zn#PC{)>4g-$KnAS=%VnoNB8!6=N z2kTIRa1_X$Ap*V3@^s?YF{M59*-nf~edwReQgm_~(h#L!>klaKK0O}ov3!jNFH?96 z$Ps(1uqkMP7 z6|e@`Vz9G3NI70nE}Kb}*tsIo&lYqk4oA-Rh!0{TMH1K&I_nepA#uceduxsTg|smLi1+rc4)_4ON%{fj##mY)kkN-bXFBRt!Z4rqmsurzDf;Rb(6{8g}u3PIa3@#y?3>04yf ziEZe#k~-YmE3t=LJIj1lRtn^q~L%AOJ~3K~%xzFA)4XGu+89p&#?g z^-DhBi{<6~ZTYqAR-I|Oc@bvoYsF5VRKUIlpSjw`f4Rp0y~RAEs!{ zr{4Ohac@q}5YJl_K3kB>Xv(KS@pAj6tN8Sb`|c|`4mY#8_myGuE^5ZFv&-M^KWR<` znqF$W7}dUl(0LIQeD=Y8c1^BcikELvuj~{r$?~3!{F*pg+Az&IY9`>z`jDJQ@9k4B zW4n0W+2aqq)ST#brM`bTENAsSokRIGPZEC7qSI^+xrWF&IbFGc6wMG!q?y@5Gd$6> zne{8t;ukygB4B?pP*<}ggKKgpf6S)+cAvoK3(MbyZhOt9b1BPu+gx%92+}ZPlo_{$ z{$E-npmFr#Kd$nBX@{x;YUGgjM(-z^HjXSRfS|Ed3e=Wp0RzWV5!q$Z7CS46UP?7T zwh4$3YELcCa$^sW&1#mO5-X=8h&7nzCdrGM(YH4Xxvk3m9bVxUJz709DxB*;g(RsV z;6I^#h~HI{=t}l)RMy;7Suv%G>bANfdekap-A5vhg^~)TVG)I0JGh^} z&;WNL*$wO>C`?*~>y1GKhGuM-@pcsMFwBJ@@_MF*{}QdFYmWeWTU_>Ow> z)qD~gI7pvG^hI11@r|nX-;>w#r2QXZDeMUW@7ASawXfCx13aQ7tfu}D9K}LP@N8|( z5eDfN|A7}a87m!1)l~_P<{&z_w_>vt$G^P_tUu)2YnA@WfDcl*)VC9{!crGQ&U*Z`A_h=a>5a`jfi7^&AuGn{IU3B!yEHs#sWZQTvVGm#?PEXJOE0}IzjSf!8BD@;68+mj0!sX9wiWlv>_E?ya=RxE5F zOFbOLA=o}HpxrPEL=&!crT-T~eT@gN6s8g+Py#=deC`;%vMQW!yJuSfPklh21yL!L zTA<5+C@`Hm!aak>sk|9aMVj(@!Dm(+su{#F4rcY&mXJN1;ZTuufeC6v!6*?kPszCM zs+H;(8MbC&T3aGXjU$dC2SavK9n)Q=;XI&6rQx)6NFW^mt48jy9FpWh-5DSUJjz+U0k7uNJNK3fG(F3@*x9}|P zq*YxJ;&j+X048i}D#?y~TL3<6;np1O!L(v2Wd-i6m_M3&5IEK_fWG#hf~35v?Tvfs zmkT;z2e-9revgkOB*4eOwbeTHv1VGdc(j);X)ZApAl7ID3p2=%L`{LArv7fE0e5yM z9bjuOVJX(~)EZftowN|Q_%RAqAgQNdmj^t8Lh_HJ*EIx_D(;0MLWUzcNNal~4tT5q zn<2wj=_`~l?L$3<^{SZ%DlxxZfhKWNV@O9iw(-$Ih=y4NIYztX5EI3r$myk` zKxa)Q|4d@FvF<|-u>NS>`8CQsZ|>@St#JP?rsi$W!5i68`uJW~uWpj{_a72pYb0pW z?&$jY=cW9K9-HN;Nl9T1zy_L`?@8!>Bv!oqb;s_)k%(tSk z4MVtudmC8bo%CGT13AHGr(W)*dpOv8Najv%(fK7R?43_yX@0}sVt-qt26{l>s##XJ zDJKqoT3<{jM*JJ?#TR>xz(=zYH<1Z!_F^fwXtaI>7!V!dlUYiS_5pp7J2T=QHE0)b zQR~ii*jG$bPda8TMWYB=RXD3!A*%=EHkdy+*#oJU8niGG&Kv#FP6~a=t`O?fh~zw= z5gO9Ur@BY16oZ|iN26)Uchz^BCI)~tI#S;>iX+Z8s3k3})+E_UBN|+)>I;RGo*j&Z z4Mih$(n?OK@d*H13I%d5Ejk-=)&%@<9gOqBq9Z;wiYao6G=azrNJTFaYnC|UUFGV_ z9B{B_O~qAOEjc!6ZP~SIA%{1*kN&!7&{AHarFoF|u(kH`q4<4S*d1s` zjq(B+WvP-py_BBu3U1&(i2qwU)avE{f3q9uUiyT8iI&_|`FE4_3I4L5uQ@GO#ZScvXbv{{4Q%L+!N=*`aDntOO85{%tR4{%KSi6h-@31RDbKphNHi+lSZ zEmg>+HIO2oQP?N3`Xs&Pyvi6=_&m1)_|(E;P8OP~k}lG(lY}*&YT4<+qxK?EcM2=c zGfYhTDh%4M11S7PBYjTcxYQ=-V*jCYqK;nH(9a5UFDmb|&h_aZ^Mpb^=e^7+@aI{} zoMS*c8r5Q}dC!5ikgJCS5Wl;+X zmm8%E@{eChojn8APyaK%r619I#u4edx$+HFi_gpYSAJK6hBN=f+zC0o^t}J%_i*i} zpUpEDa$% zK`*9@*U&m2NnC&X;G|g_Lm%*e=yl=M2NhLsL0yk!hS6BzZ$Yt8CG+V2=$iku8jj>C zy+#oZOj}b=n%R`n*TltQcW|KqO^ljJl{A!)*y7etHAZ+m?N(2JrpVd$ym#Ku5YPqMWD1*@~VJ%ubpj}Pn3gK<`jg}NAa$H zkXcr90qL|gP4O2T;S+o+1!z76@2FN*kF`2B!8+0`1tr9uOCWQsv8VwLS-8Yz-k^j1 z1Z%0A02fsvn&262>b<*%KWZ%uv%^OznorR%xG}dUV+}bN_jS6C^vGaa9nGL}JGNC1 z8%U`5zw24_bV!URb!S)M#T@}*FVF85e!~F4pp5g$bQ3ijKkJ(CIkidp*~7npw&Jkk zT=7`zT+{pa>_M0ks#o(;es!Gm_1SJ`qjX_9oqcm(>y@b{(5fP&4mBTmnB*_BaNy>o zR5|@=?50w%QuSfH3!a!)_B{hkUEMUCxdnYT(a!}So|j+FUnkH0dzt~0Pw=1kfL)D@ z&Xs1?*C6p+r8#ZAeaHH0jc8qz#qDes>cm21(VL@dbn__}s-*Z zE_*oOs0%DAOuydBP*p2ez|=}7WRq*a-9jATw^^G%VFSNlCq@^aQ#VUeUDYY^C)}va z)eo?O-!-Xq3HKCx!2q`^Xrr6TV{z>k94of#K%nFq@qOjqXzD$S(JUZ@+p38m1AMJw z|067?9)OIvg*Dnq&-N|+QHg4T-(dJ!FRW^T{;`P5rhMl7T<^=LlQ6#|hwrK_BivD& z`u4WOuPzC_K_^Rz+nS$zgU1>Oyeh#k)Vzf9jE4`YuW1B}deL^(an;Y#wiB%D+!e-x zxJQdRfLpkSA9c+=)>h3lzcnfhx~3we7Ik88O69$<@_xfNh*QtHP7Y(W7Yy(WU#bTG zseZ=jRYxsjitvrXdQAf^e~xuFUf9uKp1wJn-}`EXi7ekCniJ(Zxb8Z%uG3mG`5sc~ zn#9a@S4{w4>NM4(P96*IB5W4Af!{UvIB4G9F7sVGE{6u^;^m5FKx8%)`ctkOkJZav zmtR-?U(J}+D^Sy`)$li{^dFR}T&<7)U5@Zeb<0PD`F`^+y!H|FmL>Wl%mcrd0Q_$M z=9O2NPFIuV*t1i}te1VF0{aEOz^6WeX1C)-n3}mDAD;^1rvzZv#={8}tdj)sB%utW zoA#9Qw9w5d(R#{!Wxz}LRk~<^wh9f5=8~isj%*M!#_$RzT2h+nH!WzX-_~g8VEIm5yLp@Cb9p&e& zTU27hh8k*#yySctTmBRd@Jw50;4FU(3pJ5BmaH;viWp#XUqqKx3?k7KO8H^fUSo~>d6wLMpDCROfYMEfY*v33GGU`M^f((U6cVk*Hxk+I}fv|?SX82OmJ zmm-{Lh1X&bJJ{Msu_&$=cV&5XwtIV(lJODm;-{vAu*wSFp&fpfdvwGrd=E?fZ2yEE ze3F;qURpXoC-sn>vozvcynrNnSjmHUh8z3`{E+`0zDYN7i+8xKtIsXk!XD=cn#%ks z{(|q~t4jV^FZUvVQBR^snw*mqdaNyM3y&y=-CW_TFgN&7+`v8l5BC2h4YiV;*0$6(jH^4rDNg;{)Uclly@RoooL9P<-d@Xk4lY9b^~|lG3g*b zn4NeuUr=B2sML$U?0=G4aU(xkJGhZncq^~*Mn%xDsNPw7*2ZdVdwG(anlk=q@y@R(DPAkNmZ8zq?f6uEm~)Nh zA-zq}9S1H$z990ykQQ7VoF`rUnGM2M$Srz3#mI9zMYZAE?|V-5h7Cg3gaoh2=jT^) zUZVA@d8aQMJif^C<;v*N>$mv@jp|B6>uUQ-*D|ip>yWy%5$GLJ_PcJ}kLYEt`zq$G z%vss}Wg77O;`>@Em(Ja!GyABnz3H=@ZO*I%y4c`ffnVvud!+L|!HX);1-$5Nc>AnB zQNT6LtFwV$VG-%QgTcE`%8TP%aUuBcOK$fohctgU)9m^qJkH9LK_2K&@_&ZW?f1Vx#yr4!HUS)~ zT?Tu?+NkcOP8|prAHX0rMVzjKN-gpT&n~2qpsOFz5jv6JF?(B-*L;SrE*|fk3X(gy zpelN}$LmT~3F!Y$9_mHtq#G#-+sE4AIfwzR!{}Wl_ED}%VADrLfnuDqD0iGxP79G! zs$Tk)*g|I>a?zOz?_o!A$yiugIZFSMlwokmD~{{BAa#it(j#oqMg@v>TgVtMLH1Hf z=4@Sj?h#GVtL$Nezu)6gq==n3Wp${p&uOYqCgebu9>lStx>Sj=Ewn|y?+G@LL@I(T z6^4&}0$573<-fFDGmN!%HkMH0>I9$nilaO+Nn>0$*Ga1BaVO7-3a&>vVt|X?VUn6n zq145ARF;8wItuu6tnnD7B_1A#QWZ5dSi-_+P&7y!Qe{Q9qKX3WSU*K;S`n$dogAH^ zNX#CBno?~gODXbiqX*N8Q99trrt5HLQkh@_*NfoBUf~1Up~$;imG-Je6wR1X&d^F> zhYFZ)JXtc0SVJ#IEjYq{f5UUchKn_}y(o#qQBC&Fk?+baG`NGWl=!#+Wk8z03@f;i zI=q3$61YthVH*k*mEr)FO25jxP;80cC7$H8DmK;5(#m(RMU)il^rMuUy@x$o!hPaN zF$L)XZtzxqhCBHWz}_IlW47TBsV(3Lud$XKvtG z+QY59!CSaRH}EW)fP<;H)PLK1B11A}66X>Jt=0tuv@k0eRNB~~@n6^(9TbRvr$q4g zRg6oH>CvcU+|~6AwQWTxlN$x<(?x4;3Jm5xH%hlSA*R_tiaE~O3z z)S*MnQinEg*2D5?Sp$#;+=eT0=1k4C7IUcPwreMDy;o4yd*_9>r9yAOA>S^|zx~EO z#0Ap(Uf2)H?O!d>Psilut>5K0>-hS6cFV8*$az!eZ!Q0M@lqW1;vl7q!-Zc+s^+}g z^EAWPREyU6@!DtCDbVWk#)GfwL}j}dJChUG9juXz3u+7S-YlezkhR9(V+3*<;89*m zx6&9!-URQ>aG8VkLi@Ju$2CL zSXZ3-1B%kxcj?w%OQFBn!YAt%kbCoNZi@QHd$Yu?7@U4VTlNF~VzuHI#(YJM=vA@^ zp5zhkBS=7}OB!KLGAq=Z$GTVtDe)+0tHTQ^5cY#Oy70|nQ{7845v#Bjduu7yb^}>D z+9Hyci|PF!A5iGo_Y#R4@(pP*fkPmRQ5;RLQu;@3#F`Qt5W6zVO>B1+`y3lm)9i=LHl^%8yfxAc8`DLdXDe;-oG#j7f)5 z4sbF`v{oxO(72e+Ee555Jldne=Nd0gBSq?OOYW)zua^&E4~wYFqgyzTpJA(N6q6Td zSz>aQ%XCtQALL(1;$W{!7yxU$#jW^e{w=l~_9)%SNAnv!+Fx-9r*?8z)CSH{ zVUC$mH9;`Vdaft@imHVF1uMkYRwtbmWnbXTRV(;W?)SM;UFX`@Q`ezd#N?M$qM5Mk zjrHlWP1?ak~L0lDCJP7zWU!Z)|Gz|!VaGMGoO zzK~Aq_4ki2(rFDe6PBY{J(&- zXm-DR4Js8bjT43V;^E4#w%_z#-Tw_0j4v+ym9C!8Ayk|uwxXHJrx{CJ`5p66+%vG5 zUU{@HCq>Rn_GvZ~<=LC5_u_>WKvxrxbqc^2V9|_#%jdS3>=>CFcTL`veg>;Xg|Jt?xsT+?)!e7EjYB1&m%cg1-`FcW3VNvj+Q0`3%sxogRijlg>xJpjx|CvbNUF`G3hyZ-&@d}R(%=z3sl3CW6@@A) zPl{}TIZ_S`>pI$ZRpq^|YW*V)IMRKs3$KbfxAqKbbyZczZFmTczl$Q6(i_mO-joE- z@C3K;4aQJ-!A)t36#UVYRWKCZ zu&Y4)ui|sXf`?{*s7lqSxqPm-UbXMCDOjGu$5_Sj6%M$e!adBLNVvB)f?B4O$zqQW z(I#|}3&koK<=~-!O7sZ7abU+6aZV(T&t45L`VEg`fiRpzlu+NhN9#^prvEFMF( zZSF-oTbScw#-iU85b|!PJikt}u+KN8mWb@x_sJN=`Np9C!d67MyL$?BHZ>O5=!G! zhp8OJ9ofTP^@6MPQQF|qt0XS$t6Qa+&hr%;wXOu%UDb3)Uo9*P3l&eyv6c+lYU(=F zdmUte9-i$be1o<4rBLx}z_*nmg~)acj4hN@0MWp`X<;L8D{J@xws?aVa9ib#fsKy2 zbW!?$jy7<}(toQY4QQeWRHS}Op+d)(_V68jhPBw51McuWJXP@hy}cHD6@~tvki;Vx z9w9}rZ5<3ZihuXETCc(iwhg$J^tp;a_ju*1knYB3p0YnfeH$|t>l zaZ5bQUxL9MY0R4J^^qdrTlgv6LWI6xdAl5McX>H9W${&8Y-g@kNY?^W;Mer`&~HBO zE9JvUxq5Ri`Vk4dU#Wm!;@iYW9S?7R%vW0!7s)S|8k&!I(Deb04zB~2{R)0r{BH~X z$A@!RfnOFaPG?P>zs!v6KPlgRaT#?U>U$D*Re9Sa&GHN3)?A>fv*ok?+kkg2{`+L# z#SZ^;##3w*vpM1ik+L(|!ctBp>qrlH^pvw%;>1Go{{%aG2}fAN9eJmeDm(6gm*{3T z`A?OVfTus$M!%%Tnfaj=|2@7(dnsH>VI%u4mgd$NZxYX>dvk}wG5jR2h}qjav2>C4 z|F&CkG!|b_V}9XeeZopQ#ylW4VDkxe6B5`0vV5=>1okJEKXq~vBl)P5>=lZ28L=0m z^9nV{rdOF#8aUY7q(-_ojg8W=grd7efluw>hzIG2_XxOktY2!XKq{j?)JRn=6xl6H z6W!Cylr24z$wCAm1cQ=)PxtM*?7 zPdY2wSr?G&QrwRXTnbrJP^Bc(RzH6TwMOVsbQ&6K0j=_)h;JM*#l0BhfR}C)wv*_R zR?ym=SWt4gwm1aot4gBZ)DzhdbfBb_y*2|JR1PCM*oj*au()`ZTk#3j@LO!~QQW{S z?!+_v#9RAoVrfN~(8eXV={ad2-3Z&>z_SIfkOZ*vrLxL}0_*)zaZA<@# zm(n+r!h!>&1JAdC|+HgT2II$GjB}_z@Ng zXNDid0e*z)-(f)XHn^;?2^(Vau`s24)`@yS_b^vL7?*Nz`;3H=t}W;#O>0y zm1j)_zqHI<>7k#ifKR3Te5F=;vcPc>$MDM5;4K{C6#C@r#n3r?CN#g(yDDKR6D@Q+ z3z#j}EmuCfPToJybE9XqTItH}?~-Zray-mwMelxIu79-C{k@dN`wGA1MS0i0ZXK9w z%*DAeLf3Yg7Y~3g2F#1(fa|RI7X{)=t@>P7o?hA)-Zq@-m4GRIAb9HPkDU8PuIG1M z{dvu(2v@jFI&T!|%F$x3wfFp~*O{x&m$&tNmwHM`&(|KobY9J$Q-FMy87ZHQ98Yz2 zolkE09R&~{J3083FZoRo(^xuK*&xk3^KX#eLG z|L0;Xit>^dO0B47)Ri>gGL~{BPJ}AI(pTIuQvzVa0WBu^zulZcjtu}E=4cz)_%<2=8aXzY*I7 zWTDu=q@Hmu;A0e(RT53^aOhXJoExXE+;t~sKiSeQ8$ z-A$-P+`(Q-@)8dAGptZoRnmuA_W^$6T_xT90iR0a&b_oPhaZwS2=FJDK@!U7eNFES z+QX{U^c~gDRs>Q%G`7=`vW0b>mmZ4%03ZNKL_t)IUmK#p6pTn0AkP3vUIoeBwDw;5 zC3biXHzp|n_uf?LmMT)|lcSMShWfD{@pFO9sEq+{Z!%AbUW&d*NVmp%QW|R6YZYZ^ z6>Ifa2cb+GHg-IO`b;cUWU5Cy8bWO?Koj`{r9b4cyn@##5cbnbn+otJqJTNedN0Sq zYL2Pt2sI(VjkTi2gy>}EcahSU0Es!wV9xwHiEpZZ`~~CjrSw20k7OdTCZ9G;v9*pi zWR^#r_0@w{7H=%aB<7PvBiG`l?WU&nb}ElvhjUGEoy-%+5tBd-lZa=zt9_|9^iUOv zwyzlytMKfX6k;t^`g2EkhE`fu{t^l!g~4mQ43T&oFYQ%ieMj;~oyk+3w4-V{ln}x) zD*B40x`BU!pYQ}vQjhP;*oeo=4UPy;nZE`g5DDDao-qX>(EijDIjZpO){eW+Ht>|ERY3|{x20^YaAWM{9UvC)V1COPA7E)l*vY~CIrRXl_J3(C?L}+5Ml#%@O{7HF zyU21h&+ueEMcXL^?3E!FxznjcKu04-yBfor%EDcq_iY9KJeK-Vd8xR1pTu7<;vnNM zQ5Uqd2?SKbuG>iVhK1AgHVf*yXGm9!Q|yoYtn z_9~{LgGwWFrAXc`7O14s73f{?SxJl$jgAhug)luFQD0F)duSDPE;?ydEGcT>Xa@?Q zDfoWJ*m%Ns(3Qr2nU?$T4~gDhRyg5OY-5TzEb?YGET6hM2ac4E$V3QM>1}ujTif;B zqu$(bz7ea&2VUn5q58Y8|7udy2ZSk?CmnyFxA8WaN3WOyJc}WGjezAd1IL-Wt&aGvp_ePNlHP_mh`;y!1s>azmOS!&L#bY7O+R2u_+2`Nfx`l)Om z;8>NJYil`QiIa>E)(ZcYVk;7;kOpM+VuwG6^DNMyjtZ|`lR2V48n5^T4Y-GUbCCBY zp*!681rEl0@xy#U!rv2r!?_mATKH%4*&N|Xd<_l^d`C?*48+EY%#R0KVt}WZmu#b* z^HRmm`@5vPB*a&o>|fBLhax8`Z+!z2pB>$i$!V|A?nT(0pXEJXliJE&JE9IRi~7f- zw1b4#QZm`@h0s!r_|c58b_v89%~9@9Cr3`hhz^NtAEoWI*aaWI#*t>Zw+?b2kps9D zH;&AC<%rM4VQP#llO}6fS@|)JMnze-JZ()qS`T(F4PvxLs`IkM!j%nP@7R@9gKkL! zR+xrWC6>CN0M%My=_HKGQ>DU{|0y|HO)Vsiv8%LG6{UrF`dDX*4mGAz1lO0fb#&2w z9VmFxrMxmNVMB?q2Op({=*Uax#Rm4pRO67lt;7u;?7g%Q;EmV?U{;>C%boZ};5~VS zwR{7g%|hOg|6lYOJ%~0^f_>|3}(; zG|7@=OM0K0d(b48Rn@#VGd~kQ4I3;V5CDsr6?T9CSU>Y*^YCDK z^9^dzQeBxD#NFJ;IjW!H7x*Z8YXJ}P!F)CUs1SDOxpF3#co)e=Vupv3GE(9qE@t3q zjbzLQ7$M(ha?^=U-@aIuPYc!f6y|bD5ciZOS$QJcXOf{h>K2Dnj7*xGOLOg+`aBxBX-X~qSH+0?OJoWTU=a!StrZ?Te zI@kU)q32(j)^xqYq)XH6*}yZ};T1}6MXtR8;(t#D@AQCa!cF+=Z&xZqc5@VAa( zWrwk>MwZ~=PU-*rpR@LVS`OPZD7Jw#b)pOXNUB!fanCoaFq{l2DZ!AP@l2Gt&JJ&W zm`M>cl+4VET1lGr-6LN}1*+TlxFj0}dj^9`jSOi<$uHfP(usOuYwsdf-Qdm&o?wcT zzXCl(UznT0gc(DE0%{cHD)kXOC}prcv!X)UL&Pi11F#5dl;9^ccvb1%;ZX$!DH{2O zO#-j*T3OqT)fIY@Rs{N=jSENR9?xMPQcV}&`>eLR21uqyd(=}z=zXEhl)*6I*JD^c z9eg(pe34uDW;NoIs`elCFyN(0FsQUisyTy$=oN)^cGh5e+=#hL`f;E_4)BVWK{7=x z?BxS2O_b!eC~o3!;sa$!b+93DLlSIF!jHHK2dBws8wFOCVY!^NuR3`q4c5LE&@DD_ zAO-6)*+zS`lL%+1DO4PY`y0j6Bz{za?FUMT)=cWH*RpJQs1e5xs6pV~5f~c?j)GH< zuFqg^;2CwWaET`^mGKICiXG7!R;aBPye}ZZ62`j^(uJAhHEE78Lm^kt$a5*4*3P^J zK3?P+DcU+3tg(vw6jYeC@>&N#r|0L70%FEo*@3u1EVG$uBq&A zTxKh5)6BHfz}nv11qOIVp_ip11-g51E; zZc1k*3da%-H^2^U#WP;Oy5d%Vg<`uBbDdJ0GmpUZ0>|s*S6G<#2%HFNHHyf1^D73(PsNt?G;R$lgpR#LkV7QJ1 zcW5UGH_lt@8~!A%(5`4m2}}Dyde(>t3!V>OuoEvJ`#T_istT9}twqAm@G3o+B+sP| zwpeBXkMIKp?q(r%_7+DX!T>J;OcO8S5iKHkS;7A_(xN&`?j?y0+&hT&j;_O@)axBc zx0s^$ra|*UXJ%`+Fc+PQFDE)E3$uf@ysshcn?jlfmw1LBwLsG;Y$yy6RGbD@QTmTI zcJUmOVG*b+G>;~6mF6w*%DkXX#X}JIi+#zf=YW6OpJ5FfScrS{vowv0Suk=YqHu4y ztKOPr4SU$xca%uSc}OE&+6J9U_BHkl55iLD2^Iy?6-5(m#Vlw5E{%$n{bD_d-;@)~ ztxg536v)``(3&Jo|K2m5XjdI>vdI2qbK0>xIc~`=_)&SQlaLJ^f(h;It^qVv=Yar_&cX(-#o?Rq0eVqy@x|RUn^Aj>&pe_0hH|9yYGd*lgh6lUV)R7*hSbs+! z@B;lne<=+-VK?YMpwDu)x9C&YPvIM6{23W<(Gx7PKMIK+J;B_pu+g@1|KsB|uoK2# zkkAi%CLREJZ<9Spuh3W@L^C};CPg1~0fYQg0`5&?ve=lc&}5X^_#gs&7u=-YL^(3y zU6m?7lzSen5mr$iqaYk(@_e?l^kDAfD4<2sWH$Rm7t9|cSU7eR*v`f2NJs2f)z))I zG9S(9iji=BkJMB z>}n7GNk!aHL42MWCp|%6X6N;^pUfRB;3s}DhY;`EGw}l7#F z@lwo`I^5zU?VMLq17Bf)Pl>hJlXoT1zU0hxRdch3FXEdWf=QNpW&~t5#b3qpl{++ zwS$LTCOo4b#5Wcm{1?Z_NyLi8ab4 zwtA{DK24@L)`xW361bq5qzPaAY-T><*L103x{{oGb$UNi;1tS1-A0AHQB}O|5AeAr z`g$|`0>g3zioy-L_cZ)-%5!%`{iqywrwqI?0b!~pJ|_;HhP9sj)aNmqqa)$G@_5Yw zaBG)vq?*iOKdDEb*$$@kA)VlzMw9qaD7)ik=2k!*yJ~CSDX>toFwb>;0&*-G* zcgrAh(nm}uVE|Jr>`8<#W!Wy)7U8B&4wtq5OKRpVZ&a8FThyOC8XEAwpcSldUeb4Z z0)Ck?SgbDTc5MbuS7 z6n|y|U(f=+Lm$M9dYm1qaiOV=gmyBd4wL-GeZ^A<=5{cYOPHj2frVJqSJ+o#3GfYe zHTv?m>O6=S-_(JmIt(643Pl;Bn@W*Rrd1)OP$OH%@X2+>J#FxS*7br6u)|&5O9b{k za9GQuMTP@>Gdr<_`-wAYo9T|}7oNjo^*0RlGmMRyWnFN?ju3gvGnJr)1YI#f77SNY z2Wm4Ku_qX=z677f0QQIa1^1OrF?WH+bTyiFU!TqS2>F@JJBcICYdYHx^}Y{v!f#+% zQTwjnZjYmBF>aVgT-a1|@kTXe9G~ezzTsL zg_4ii$bG#Ou4tX-8VS3sfz03`ngJEil&hU$oIg9fuic<^y;E_od$B`LxT&nCM5bg0 zhM6gEP%;Y@q)(bWcWYSGTYAg@$v;@C>ghTvoA275e|OO6;Xl z+uc`Q&>cME7kEGeyjK6gOJRhT0TVgE5f{8Ifxup*f~RY1kFbHYib6j?aCdc)3NuPu zU|+{sJrZJiir7DH=tewL0n44(nSCAAvDQRb^uAiz=5?|iVQYsvFm@H!^HfjfF?%11 z7{5TA`dYwR)PUk>y$7Z0zBI_Sho!x*ncK^HXLB7_F`{7(= z0r9ujitPU;S^6!D=Q|bpzpQ<~hthK^jOy}@M@zacnW8=gE9izkW^xKRKdg;EjWPVb zjIJ{omanZmZ&+sEXxLmh0LEi$^w^8yF^vY~$yL|UmVEX_^R>@^mZ(@b;}eAR_4dFR z38!04qM-(F6oaWksy`l3)H@u&d5a!#LbhLv;5{T7dMJ{9>rZvJ99zDuG6xD0Igy+~M4$F5#;H-CS`-7Bl$eP{)~rBXu9^3Jg5@3^ z`k503Rq`p1cziC76Qfn@z6miH4(bwvlG!7B@*a+A#Fs zL~mZ<85U@T7tUc2??qQ#zaOD5`y4em!E-93D;#OTfX(J7tYDRLQ#*pK^cf;@DfUix z@Cjz}i~TRs=kRTZenK1)z4>W+b0^Qqkv_FFdzdHwFn_||;kU%X$ZVC9)hoAv)S&}p z=R5pa`UYRgUsM93I@2qnIPw!ouqe0NcQAw`LWNrxJAocrxy1l`#>oLMsEjEW&CY35`?N)!kKKZ?mORekQJqhdV@C3o zDpWdKPJOW|-fF~GP)>WZZ~x0^`;#`nRr(6oU^_Z*5?rmdNw+IsI;lRFt^a728_%D) zwgg7;bvosi=vs5+G;Y+sfa6cv@l4r!zFsfpJ)D-I227on_0KmExoY8cD)_yq@_N!8 z(W!Pf#z-jarloLQB6rSmP*1%GC*2V)O2F^XFYD3?!6ZcY>>Ew)+BEn0ypu7xBT;zL z#3M2_+UYdT!Dqe-y~W$PPT{;Tj$AG7Poo{CjRff}a?6!4gB$MJTP2ZqMq^#6L|^FN zr4!UosWe>!eBNsBQIk2&cIxNuJ30r; zf1B0!I`)U#2aKC%HvRg2FHa_K+sWUn)jFVz=O`C7M?jyC`y~HgZTmkghYbVH7Am(s zRbAnjA|AKnP#nHRV3H_7h*4V^#ulY?K(@0@E$cU>u&yT1&yz9JxuhYbi7(its9ms+ zbsO!#!t82wzBfHS*mo#k(-F6LH<_#3l7htob;w1S6A@AhnR7%-^-?MusZvdg>yS%E zs9M+&a-p~^s}5TyD0JFR&<0n znZ^a{Zwcf5b&_v=h83kqM5*%nTl)$t@D8hpp(s zz>(EfWpo&NfVs2-+jj-;zy^fw&8#aW;cTJV&6J2y7Aznok-8QyE1hMKF{Js{AMv zZL>-UjaFZ;C^#@j3yg{_;2?S&y6ioKKf1LSapsBi5z!Z0fMb?W(LlvS=RIsw$j7t_ zo{3z>gY=5Am-aIBQ&K8Qe;>q7BqHVPSOe`KiF;VWD|&?;zLOWCE1~P2P1w@$nVZW0 zY2}&NK`(9a!u}!_(hu>1577pY;uS)YzY?w3!a=@=nM#59r3U=Y-B)#Rk#KEo`O0D6QcIUTa?Q)~xYe^7B++ zB(34a-kX)!Du6cX;iUpJI%zK2k+FlKx4Mil0MtW7wGX(LXECPaCA=yn@rZxeA&uOj zm4pZk@!z3SSj3p2R?Ngc+EFfloqjf{Km;ao%23 zr~hwa1<%mQckmN+cqW%Ff*m0-v4|g3D(3TQPdU_#mH{mS@gzrsp~Jbp@3>h!sBnP} zmEi^)%p%-=4yOzEiYkxhF|_0Z%sN{NoU|4rPH0QtGU+a44+F=`?(QcCp!5v zB4~AHytRS%o7UL(+?1cs|sC~{!6_1Kw(?G|m}1!gV= zqYtG?ZTdO1 zP3GC8TH`W(u#E;BEabzG8eLJzKRLpd86Wj@B#iIFYFU7LF1)&+g zljgyBF6*7|tk$;al3FZj8v!b2rQ#ddOQ}YGQ4E*L=Gkn;68{cumQ-qt*`*}9$DL@< zeRbevlf{tfQn6)+GpsRI0h|^-4>Ts@4IEN2h=*n_jLs>OlIHe8T8>cv6Hk6PjEjNQ zSx(7v@pGCicX6x}fgb89FsfNKdB-wTwxczHTIATFHPB3WEVI*8&_Ny)^8Yc0s>CKE z4|0zs8j&M2S)}4uV214oK=z;#81T)siIrKS79(Xm2$@#?2nQAN;S3G^WUUB{sgVK$2+rEa3I~+U+cjt&Gk9_A^x=gCVrO| zwqQ$+i_!+#*L31J@d#hwtNA7(FE@MuUD6t7{DdFL3rQ%62lxRm;-Llz?eUV@--K5) zho$)UiT}qX9}f8izQgZA%zj(vQ_NRcp1* zHRC?Z1-*<^)k$P47u|)j@TV$)&nL8Z&S?Hz*YkQ(@;(ZXr%BAdjT7OdP4CN(ciT2` zvOj1ie$O=NI;3-3qc|^rA5$SF%%3q%fQlVBI_6Vx{f~qtzgY{OmVl>U;WDt{mVEe^ zy(OQ%pfApWxuHwxE1r=CQ9_J)L!BbkXI~ zNd~}`5t2^qL;rPgRepyF_X-HeSE|Ct@DH8#1Ey4~tDhsC&QdxzOq@No@%hn$BRagzPp z$Es@0pqHZ}yiw7y;4g;iB4xiAYOiO! zgAYV#C(jVd6f6^UUN5Y+mQ$zN|Gpp&+`twUo~D@B+KsDH<2ho-st0240)VDU!y@nT zkJ6Zt%|UFcww-e3;qFBL?oI7iB|Jw9NcNy2%WdFQ%wT0ABw#1CuriG>KA0W2!eM5R zZNpNQ>O{e0US=Lud3PEDhOeaCoqu;YIaND!gS`?n;{R-v@SszhRFk23`6{wut~cX1FO;}u*o$>$=CR)9K%K2`yEtQ0|Ddxfo- z17-&I;>7@+Xlv-jsJIWeRtd7MtNNIMyr|of1UvWvkqNwaXv88DSYsZ*3J|X@Ip+cH zxA-cO`M`1TtXvcDCPbQ@Xi68b#By{hkIAOwtSI9R-ohHySj#X66n9Rj?^lj=Xl7zt z)vqBr{4inTgn#QP3>-BcU=VgOnJtdd4w044BKj6J7dm>$GnE75LOj6FdbmhvR#9Dt zYSdf09zaUx_K02p03ZNKL_t&*MSgwDM&MpC677Gb#w;?%6S&IhLUqI)a}mr1!GPN zRM#VXM~`@Pl+bDza;_>~(qO+l5D-G|>Rj12i4(>F+M@6B?~tu;=+BViNZ=O!gMEj$upy$n>BLX;Iof;H6LivVC4|gRIM-OI z;?OltdNv7f$pd_$X{{gO=(15+ybiFnBH3PJsXz%FfSuNCq%GV<)S3KBv%_<^F9IVD z5fLw~9lEH(G|S=%dg~5{z~X>%0hX4-@(?T_@e?)pONDth6<*LO2zVS&gCFgsn^aG` zJ#>!PUe6V0J!eN=?$P?$6%;;u0;BK7T0oK;vlMI595s)%0^pd#oommi7eCClL@r4V zF~ulhE}a0MK5%8=)&SvYesypT?Z6?jMxX3dhk0x}+Zq|ylUgLW+h}Xz5MlYoe zpw>mv(Bdz!5Z~b|Ji=O<;egoe#cy~)UPdOFw3oN0mp+Qt9;5*;?Y-2>zuRA}zskSM zb1BKMXpq6Jv(X?8@Dm>4v-AyrhtH-_IT82fUXHHV$8x#Uz@z*#d;qvLS$U5Zb)H{J z-{r?@cKitYYLdciAvFnh&`JF5_UIG391V&TxWMy#eT ztJ4?psbHHM3RqpWsd2J|PW$HVyRdZA#mP5vfaTL%)3av81ps8qlkusnSW}C`aGleA zeDQqLUmq*undwwOJ9{Gfa!|8f_X~q~CK4&syrkCjA z23}889wUN1@!jkCz@2XOHU-s$EeW%|1Tm8zF=_|aQt3Jii z8F2QpH)D!*-SjHX#S+K#4bI)E(wky$p9F`WjkoiFhxhq>xrTJVrDwlo<2{ewowh8~ z71-D%$Y}h6p33kqdYzo+{le+od3EN|>GX11&_CPxGO7L-8_l&`fwQ^j*5qg%9SkRp z$>qde^Ntj?_w-}l`sv8{(tjOn^j+s1-UyBh@BE^QWK*S8L_s-&|I*C<`{nSGO3t?bp93mxhtl-BgP^t-0EsgSuIsz_lp$P14YTc?igUGprl&)&8V)WX%5+S;H zmmqA~1KN&A9MeJX;!WP!11!y|)*>zDE?H|45711~fP<2Wg7#im!!@H=RY4OR$s(ZM znHicXlsJn0(B2UT5|IOB7o1MK%T{_JqB-g*h9c^nAs1KL+*(+`Cmfds!-TL$(4Z41`|n;lwJOhkau4-PbtQU#kVY8xi> zssnlv5svB_jkPF6!y?(PVjC)>?9FOGBR@ukYKSsH8o5lvhS3UwQsD_VWrjOYY> zq!fu{D)G5(FE0xt zNQI!8N&Cl zmkv1FOYsLhOW(wEm7xXtzgJub?qFAI!Run%bli#uw1ZvEj0sI;(B3T?dseBS z8(8AbJi%iy*>pT#WbDXkFR9?{?Vn+N&}klkeSqhZ^oykzxW`|L2GAM4LId}8s6=-M zc~@ApLbR||ShDm1egxvbf~Q|mxGwB~?|UV0Ymt2gk@_2H-a#tci&g3Bd5xB6D_#o{ zm)FIc%&4SVTqMyr{HeyVA@PWBJ?uP~kkOvUg-l+!y~)vDgb{F2l8x573xd zf$}-qf)*X1k)t^sTK)h5%}`g`R6f-3&)6_*;4w)3HC}#+pG^lVd0*G=7J6wO))SYO zc3+_p+Ui&nB(Ztj_k@@_A@%1GyvYfUHeUc=PebHes*(qYiCNIxjKAeYGb4ccw$r6#ouybBREq`R+g!b?T= zuSPdrMjc+@XX{R3T+<88Yqr*aKi7iKSd_?EPT*(g#L660R0yvs^W;u+=nfW|@SA1O z7XKYWkN?g7Cp;8gKx*axXg*2@^a_u-MMmGv1D;F0{VI0o6I#l)Ud)jEh#J_rL{b@E zEWr-<<_pa5PiZdSBb$Bb!C@mU@#C>V6ov2H6>h#liToHWp3P*sIAiS7uX)^RwPC4dMbSU z!8u%IMZhGsc!TzK$l+U4*HO!q6E)ihv*P z%l65O;zITU-$_s6i=A;R9;H2em6y=swfLzBdi1jD?KUvSbAl$pq4qJEc*;OJ#~bOq#&@MWmB$1e{YxIE_r^Haq23KVR?IKXDN}TZDV5mM=&0^#oc{R<_|{5%wu= zekyjJHXm}`5B1j)hOag^Zf$ff?nu%6zKKA2TUM-#0{t7Xn)6+w-yDJ0KKZoyah?p! zIUdSfAqDBuBzbB3@Wpr0q@SeIOl~f0KhsZ<-cpzNhJ{u)_&;yxdaf{q#@O=9G4B&; z{E3$TtZ+ZYb6u07U-4mZjrBQo^5*jZlxfv|+S9t?%Tb*WbY8*NY4_qJI%4v@q$_$; z-g5PxkD_y7|{-3I}y!lTH{cmlb?V=NLZNL_F z^L!#Y8sr{5ROfSuO@diDi}IqQVkP4P%`=m~ev#f$RV-!kaq7-? zP)d!KFxW4V+A6ltmMG2x9WFJgFtip?s(Kwm5eA1E zH>x3?iw6`*#fype<+avNgBSGEEX-%H{6nnJr@C9tlM@J8M}u=57FM2U``ZN>gCa zip<`)CVPC4)-bm-Y*4N;e8Etm)zSBA3tWP^f_zn$;IHrmGy72r`pP0$nU3>-fCqC& zfevk<7fo%XEu!=~iXeevdm?io1dnbghXiT3oN@wU)F#+JY>_c`u+b za`YZ}g@Z|A4J#MMRM0s_@b|bb*vcXGa!HT_<>VgrXm52uis9)N5AizqV#nTa1A(8Env=7pu@YYMY{}o;fL6udQ zT41oK5qajAyc%?=XLy!Zu*NMclNRQH_a>6%mMZr*l~OEwu~q2`OoIWE9Y%zR8Q;N! zSgGU?G^LJQE|J6%_W?c@E7736+2TcXp3Jw1Qio1FO0C@32SCNbzb!ogFT<-Ow)jw% z0Pa)(R#Yq113cM-=%txGs}S}bEEGN=f2bUo7{IBD)92DyI6UB&DktBl_y8U!nZS>* z#xJlDclZnZiS`tu4+J2hghej}cnfl{6da9{C=EZtkGhgZGjD6(!BS!Bav+IzQO8%I zY!}B^VrJ)RbU47?uJI3%KohApBv{KG988NNJYZIL1AxGuuH-quWr7iiHEy}}AURFBb0G1Ln|>!6~kjBJc& z{93c?cjy7FV59ihbS_@%CF<(Fb6;Aa9?Sg^JUG;jT390Hb|hXLq&dvZ1_!;TtMC3= z#rOjXuSUWl!p&lhpU5S}8U^pGvAUXm*~8Kf>X;v9QuhV7!CZD$jOT~nG3h4>y9 z`{4WwSkP$pO(zzwTkh}@;5n_bq={Q}1P1s> zAuk)sbR7Y7)l_lI*X!FGY+tAVf5~O_#O^-1p1$#3K7DMH+N8c?7n?nn4fS&wzVL2qls5@YrvyHxpKQFtFarv;GWm>@%v zH{!*i!Kbkw;GiVa;w|hPJv_!SBy0vLbWsWBazpWtb}>Xui=1?Tt-XaIsj*wpnkH*5K9r4d89V_) z%a)Ti=1JaF6~F7rSKNxyXwd+iiwF-HSqhURvQTQpOs zvT|1gmX`P)EeU{3HY(^v@q#yaj@zUk(gNS(xp{S2a5qxK|F*SAGsl03pYVh``J-b* z@r3>=9q=awpU{mRP5p29qgW~0@SfXUqJuByoBUVw2Q1|~dn5G{crNd&d;2H;AbrB$ z#1H(j9uNjOqmSsj`~!aiM361-tmmW#7B1eq1KBW_7PwJq*nWVo@=KkGI{0Vj72Js# z&eJ?oSi&d#)wGEQKA}IwQrwvrX@irTOvG{TRS;6MV!!qhZ*V6b@xS5?+)FC<3;%#0 z(r*g7l(#6(WjjgLle8+D*3%qyO{~Q_*YzG}=@b4mN8eQ$y_yh7#y0RYa<>Mv<};%} zO#TTXTsr`uJ}xWmy9(L^>2Yoh1P${U%m9jHY`L7{~h6eRD5}lLk|M@@d1P4DZ)HUOm zs%sl(JEci1VXj2QeCx)^$LrA4q{R0@MXv0$eDmGSFGTv+g(Mg6ab9@6 zEb*V=jC>^w;AXk@^Z~uHeXI-B@t1XFj9pL0?r%P)xBR(pZ(+Fxjk(?`xMX4J^b(Cc z{j=5`C)_Gdv!lheyab&}hNh_x(_dEI!TZLLxXh@Unp!o<7)Vtaq-&rYPE#eOb^lxi zm}d{g9<3&&=iAuO_t)j$Q_Gis@%y(zBe>R_;GHqiU9C}u<0=)BzGJ4!kpG%y|J^b_ zr!gjXl*P3Zm-kp%KESN1-c)}&OcDh>c_Na_;jJB&EH%pS^mFHZg%3=6zzk&9l!C7Q z$3O`UF0_H#JSbrOuIAI;aqJCvf>2*2R%f_(DCd75RXcxJUcSI0`+{e)3*6 z8|-T62A)j|U!a9Q!SHdi<{luSdHvR!-=V zZ$xi{8T`8m>NKj@svVIrdvlDC+Lf%fxCNe3N~pC8#ts5S6-(Q$riPA@Yr9EqWR0*c zv7$rGf{Re%b@^Zpwfh)x+*RfBydtOeE*6>StF2wswFmfKht|h(COmpp`b-Cn_*6gM zS*826>Zw~oNTq$fIAeZqka;#W3;H80a$#KbwJbHCk)J;2u}xYtL+aX2*F0vRj! z_fRiv1OmIvV?K}@v_!GQ#K)M|H(J++BG>1xRIaO}y{WmiukcvuF>wtof_JmI$1>&w%pg1YJ|oN87d+j&L$EbE6E>KZXF zqlcOmJmMXw_`5~@%3W;;{e<7@ytk`Q4RxE5VO_t%VPXR4*N0g<1O_&GFg=Q*zw3Fh zngBezdV2e{t@D=}5#Rnz{Ynh?HcIG?-Rvz5)6@Z=eELyzG-(}c0=j^RQ_Z-VZ0%LV zL)IzgH~-?q%A4t5dLP)6H*>apMGZNXNKIo0&tavLBjd4H@8d7zd<0C7UT#i8a3=Ms z%VLa=oAjwlb5!?>eWDBCBS%)@#KP_j4QUULE<5~JJNmLA$h|jRHKj#)E3k?^JlUYR zy+glA;6s4F?44-P%5KYHu?o!10AEVyPyY&?j@0M1`G696h-_N~{Is+9M?18XAE|^j7Y%z?nx=Zj!XHqwcKBJ5 zU9USVoJl`WXWyAcvMeXJcFuaj1A3HNBYPtnX>COZWiXIC^uuKQNuD{4X;?@-;q_#& z)&&h3_#O8VrDhg#N~OBE2XboUWOap(;trA&v#z9t^wBi9>hjb{z3K2b*i_SAmTcyU zPdHi*GL32F#wmP_9q!D4dfDR;%|#p1MJQT{ts)CV$~4ka4&z|*X{)e4L!pqEl_S04 zaF=acMo;*M{fu90J)*@ACd?T#qWWKY;jw_uvvcwx^0e@P_x2W&JlKb-+X(qfE6vDD z*ozJPi5KS4d6A+VVd2(%h&F(LoqP3dvQqmViJx_;FYx&Q6-Pyjh&oCkAA{O@frRU z&+&k(^Z>9w+J83sf#b=Fc%;ERD>tH*7O*3QzrU3l=UpO-_5UdS-!2O=_6~lExjaV) zalo@^5{8aSZ1Ia}#U0$4Z}7Xc$2|@xWg{BZa?c0iL=`{n!fFbna4Fee=GE$=xOA3AIu_5O zJfn2{ku%ZaYu{Rf{pRjLZ&Zk<%UGIJ&CUX0bo>|TN-Dtl5_|eVJu>kx?E>i}VfCyr zP#eS(?mPvff7TX%dmnIBbA5?P@(mHev832k!7MdZm6QD2W92lLJvLttsfsX8zb@8a{V%^%g8Wj6tanJNx%4q`q8~rwGM!XKZ)5;m zaS!OU7v&3$dEKPkq()vKv&@lQ`)_Edya`{rmF@8cDSrCIO$8*H_)B$F33FlPxw4a< zyvOm0)-}lwr#vNJJ2v=ayU(efXnNB%H4W&Bli<8RF_}OvpBne*pYRf`-(`RCJN(hV z_$U41K;}1(aKAu%{qh4GYDs#i_0t~bs&+p>`d{Yhe{J`}a{prr0MGTP@e;bwMIqao5q#R%k4OP`U=}tT2JfY%K_M&}Cqwx#VM-NMjAlQs^IJl zA7PeD9cL`+?HwCLIth3(nfx29r0=N9{E=woktmwQ5-ZaKsQ`{*V%*uT6`#(;0GKH- zIOJ4_C@M-B>VK2juCG-pJzA`tjRK8U4QgB;LOEu~p0 zkmb&Sb`fHU)-~0t4`fG_adnKx8F__GeU=6|SbHf#CYoBwZR`eObRA4@1=|N54`!;} zuUz$9`6!nuzuOc&wG$*Mk&=soKKX>>=1Fs+pA_`tyc=o1IvyE>a?BWo*Y6@YZI8*2 zS=Cf#a3WXx^H2if>>AJ$LhuSt62h7yCx5U9rNN^_|lp_*gWq!vi@l_#s)JM3hV(p<0 zq`kBiePrLkeJ~%Yz&w(NU&BWtTJvaLHVL7%GeGQ1N&1MW?d`oadu3)o39d9F-{ zlbM^HN-J~$Tf3KIsqKZJv%8uT(AP6mE?x>|Qj2#0Jdl1uXV1wcV8#x*(QHftDB%;D zn>|jFyLsNty8EHU8D(tL;Aj9)&g-Qg&>!hQ{7S2F!~cAJhxwkIuv@f%w{=Lje!;&i zm#bC}QYk!7nf~z~HKDpmC$Vi2hF5ZfbN$h%KWJ)S!4nO{`}V!Q-Rkh|2VkaVwfm6+{zS>XAe3iDlhKTE&qIgyCQg zIhrVL0(?KRRcz3{P_tPCrXO#tl(6aKgZZr($J`WJduYsUc!mS4#R2Z|!hV$&jxM!& zbBE_g_)j@R@6o}&11Emq*OHWw5VOob;<>cL16sQ{w6@}Rmzbg#IXSc}>hLpKp(Pq% zu$O|mr5VJl_+-aahKl`bAL0qK6HEIs;5UvhrJ$O$q`^GnMtT6jMt%m&BU(p@l=K~E z`(9c^X9HU6ApMN~v1rWzyTk(Kg}kXDk;MyoGAnT}Y{|@1j;-UNEZ++Cbc2Ed+Ck2= z#thsR001BWNkl2KubJRarC~zPja>&&|Gvu8N&OdPgvsbIsYcD?K}J`bpo+KJ80z2 z{((M`zo4(UNxH`>C|#8F+59P<#D|z7#69ZG6MU3gG0*JeyISsP(Koo4AMk&a{$Ci# zp|JaBXv`Nt{t6$^N|qcm&u8?{DhP-ee_1NkwY$lMEZV2p z(YfwuI7wC*hpr}@<+I)4`NzAgaWy-A7l@WM7srW2IBAsVJ^A5ewP-s z{1S7-neS(uy7HCYz}W|yhF4z=ZoE25e8KR!oLig%h@l}Q|*Cvv&T1M5ST!>7r&8tP}R zVWd_KBN|`}cP{YsT~&71YF)rLN@|~qbg_J+t-Or3dg$3z$OdgysSjlaE(NtzNme0= z9aZNpNr{@n7IzczbzgApWt?@P9(Cb?v?#)gXI1?EI*A)yRN>*QzUgeDIBu#Gw3pVf z!aWvh>P&X1xo17t-bx*OghzOW7x)5;`kaK^ayeo6HdxhTeyBRozFyT_fh2O_><1AW zN-kUsm2C}L{Ej!KlN$IP)^)H4$6S%zX!fuUG=EJw-cJIV+fkfu4q%wMSO@N^cy=E& zPZzOg)Lxt5x6~zYUIKy3cmIx`(7dXEL+9I@Y!6j}`UvyrndumC8oZ8G9ilt@gu)T> zSeZYEdOhR1-BmgBaW-&aXK!kB_NRJfT9+(J)t7pyZjbwVvwGOpCu=#87vw6vA7_N2 zI3dCgtQOr@Rc!n;`1O4_^L--T>}oi6KJDuUCnTgg2}k|(46NqbGw5qS44qE(s>i*$ zexynC!l`4mC~!v4Wi$y~x&KVO1&I~`p14$EFf^-z;?kuE z;+EJeY&xFd1&&TYs-Ha9X)SC$p|Bo30f!QR;aR=@uI8SQ4g@-K;lk|t4zrRsTkJ|* z9Srpq3behc^WGtjmo8+Xcm!5v1{-*)ZGc66qUXm+xF{H!!U$#+{QwC3OZ2q9R`*G# z;)#hiiC`%uyeBdPv{GRc?Mz$xg51GQrHv%G$F5ViMs+#Ig8NggR!8k`m_UJA6uR>0 zO}^AeBYZ6j`(ApfFLhtDd0*iUf5u;2l;!QXPTOSnCqBq>X4Y#iuUNbTU3k53|{aWRw&+jWnNW+a~l** z?uZIl!Hc{u+JA4$Rf+)87|CVESiuX}?orHm5oJGA^+2jdlLPD`46wHFXR=UJAG$+j z1GXU!s9$hd0w;768; zQBy{B=nvkm&cEFWc*AMUjosJ}ejlk)>10ReNu}hN+^)i@IobZ@s!gf3 z`0|_Sc+kE)-@Q{=^@fUHxBU>mOl~uX|1{&jS)bMbMxT<8WQ3w~tSg@lXB7-T!;&`RcXp(ba3t+W!e9avo~3iBsr5bKNeNB)whVqNB~{^ z{*N$+x%I8*GDI_nx%6eKfC37c8H;bWtMD9t5i?bDGmpR!C4mx=;ftB6s)+E<{BeXP zb@~OQy-C&~(UWhS0$;O%nQilmVj#VRsZTO0MG)7E>13=V0{)ZihP)w#;9`Y&5eN8ewQ_HsQD@JUv(gUDDn4{) zviw|YY*r}aI{@umVvbt{KCa5uu@6f0s5N`?v(hA-{?-bf42cJ6F2FnMtDWGcR0NSw z5-a<~nkP>QXr~Wokrm?;3zHAlSJDAKq$t7C1gB(My|j{6rV*b`1zB;>jr|dL_PV#YQ@q2k~3QIUp}#4KLyq2YhvF zR`jO+n1NP;kq>P3+sX;H?%+Nt;2VqsE)YX9spp4^4OdFMnaR` z=$IbxMtp$=Gi1!3y|rgt6zN~!ew3fpyeD;+`E@^@DEO3KA8OE1d~~|d>VV-Sw=rs+ zI8I-zfh6q+&L(2`gjr(vOHG7gDIco=4Fo=FeMx(HRQKgPqhM zH#UUxc<@%p<2=WeJ+U=@`DeVKD~z3?;`x)CX5M|PxsI^BY}+~B_Gx@G>W#<$;ygy< zpPt@KeXh(@IEH>M1uQhqMCpbGJvCo8sVkN^DQojaIe46h~qu*&Sp0qMtt z{U3R$&TKsTX~!0q%GtP7S8&nvbhQ5;*B&pi}X>ePH7K#IZ8-81dZ4t?CLX)6o?fZ>+=SS-j+-fi8#+VRoo= zqMAKyR5YXE+A|rX>-O*!ug#)j$0rrnW3)GWysU@hEVgoA6|oSonmRstF)Pu*M;FWO zzJM?3@gAmVF`RYPwQ375W+&PT3))qYv^}*_^9pO+)M{d?bnALA6c19hU?iU+rh7`o zYnXX&IrUK=V1;+6%-B?(<9*fZ^U>o!6xLN8{n13K(<+!fc;xEzRZaEmp9P`L2lAJO z(jN503^7C=OnNOlMUs+imqK6{mDwkcYPpKqQVm_I^D;h&Lsg|ChqNt`k<;XZ&dg{GnksFJBz>L$|srBcJ8RM*g=n@v^E9|ZM~@C|Hen)@^gKFZ=$O-vx$m` zc^JsDO+C+ql(}{Q)@e)hJD{%Izyw~!7krE7^+_euRSp1<q85VD9h?PwU+pIG_!@;DfZl6UT~E#z?AIm3{H@b4ys;itsb3I@zvT%%19NZ*b$& zh$WX^mU7wb%rm}+skFvhGbLsKictA2EX@837u49Gw6 z&aCPvB1OIjk~BqYM~wvW)7Qr()y&{VJVIOfa$RXVECYZxP#z*x0ze$&kC>eWeiTpj zLE1+fu-S_}>dHeS5FCow$|HP^IRWhPT*W3FPpyOLV4@H*3~bR-%D5}sxiZi?jwsgk z!9JM&-=&Hpb)vn_SQ3YHcZXxd9RWw{^i>Yd{QkiWxb*Nvu3U*!IcKu@8 zlxd$E)SgBr#jzAs;rps?zd1DgFe3bp$x4^DdAi~m;@vKRpUJT5C(QN70sx&A-KH`1 zCJj)^P5r`Xqlr*OJ23M#HEfy&kjC-xL6=_0J3)3|*{gHi%5#0v@V8W#raX2<9_>lP zhBBQ}5FY$i_TVh*H*xegB-rdiMLM3D-X53F&y4xFLhs1C8kC#Z^KlEC%?_sWlQoAn z^+qpNSJJDpeW#dEroh%8t$V%nWK5otw&ahN(4IU;2c->evZi5UJ((CIRiKY%DnG+t ztwVh|$@(|=Xb$iK57`rutuHDaIZ^Sw$^L+*$wn_mVwohgwr2Hq-clm4H`0CfR@&n` z6jqX53af`Y`@VSpLCTVx`|L((56{vRFKwh(`~*TDvS-PV*5(`Tk`^#2!5|<%T3hKx z?lLK9WfEG5q=I7#s?v9BDu2ZEk`xD%Y7VET4|2j&lqA{Dkj)3tDacL+ zcH%(@{*XVz94}3fbtlqXUP~R`I6q4F;z542Vquj?IJ@-venG807m{1?AimmNfrhCU z8#GCtWY0ufijjGMXZ%eu^5J0q6Q-%4#*By4${YI?ze=5bE8U3i*`LHVsqPTmKr7wC zcbJGRT8NFbkQ>t{b#P;z$P-D0)95vPwHHYVmiD946i?;Wj=A7k0eDnOjM`c~@FERG z)5J-0wMOulBlk|@viA`>XP`@+E4atLUya!0@gt6Ue0y1A`r+>3vWj$RAbzHvd*JlC zK-NAEM09(8L+Vs%F#2+h zie7!OefMoK>39qC79e~P)_?K3lFub<4`E$DQi1)3LOlA2&!9TG@Q#h$&9d<{15NXPn-m7M8KmQj4#qZ3_F8lZWvt}w^?{M?=x&mM0YaOaju=?(mp)az& zL3yR=|2E5CQeRE(4JUGlhB$afuT=0o$P{!#AS|;zL5Dg*AVP&oeR0c%BSyxyo8fKZ zGNr&H`@hO}C}-(|ij`_wk1bn#Q-zpq(J2&=dKG7-_w~B!snNei&O0ItfUSa9}!G+W-5n;@THy+=heA6 ztyK*K4+nZu$X=UDwz;h%oTfrm4J%4^a0k73GE@7b$o5y5m=D!C7H5o3v=kC+d&0CR ziYUW7xv5sZ5QAFNi;0|IWe%{Ea-9{u$}O6>_-*68{R~Tr_3U8QfSIDO&o895`Y1!~ zijN@t$W8TC9IEj53R7tYRC8`;CN7bMEm-P=D)gl~tjqRd4PT)*w{=1@tycnQD;XZ_ z8HG6>>5#_kEyWZ^=>V^IWis4IcPhT}Y|I26H>onR-sMC@Bqo{t9PLN`~$xZpvPShtpK=p(L`KKOV`<&pj6z?Q0<5G4dsN zX6B+(Iq39qCdlTRiUsVPH+U0Gp^8gdo#|vt5gVGSU`)y*MeOl+=wK<$@D#_vuSaW@ zAz1`>W;OouszLd>O8gtV=AHd~c}(81o}wvtSaX8Z)N=0H$}ysqsUzet^mVJ)IX z3wsKCg(&ZN%pu@V;|q;gS8S9VR3G|k7F*hqpP_M_(o5=SgQ9CBxDfMtf%T}z3HPPY zm`$BVKSnD?@p*YtJ@_$hSxC3|8EsWe^pB{AXWZfsbvX-xX$~8_!Ba&atT*-odT|e5 zRovfGl}x}KX6PWE;ob!N7~5~+@M?dZYS8tt#q6L zti&WpL?~6eYA5Z{7H(A%C&C+8*2Ctly@9RN)w1`l2AFoxNK>&#v(g+HK^BJ{elI6H zhn2O0TX|Pn2ckxs7B?>KN>d6->jkfCN%aP9M28MVYAhHfNmDr3;A4G7XYb%3?Nw%$ zJ#-?9i)S!HJG3_~Zc@?crNH=j;Pi%elA^z3P?hWk0HER@#pd@ z%%td$cc1##**sV`N7ML6yGLExLSNa}|0@Q# zYx_)%BT$^0eoI;|pU6KP!zCWLQUZY(|4WrnJ?L>6rU9;m&VLwU(53UuwP}H_OaiW_ zG0dp<&_lyvuF8?$e6YIkea>8qd8k{Y^MjhtqSqcx7owck?&U4?mW<^^by^%x?R(t9 z4ufYTtdb3NKA^Soeb5)poapsDB^92Xw@PzyAkVFt*x*UP)9gJg#KfEw8!NhnxAq+z z%pdUts5^xZ_J`^l_ylb-);DFD1uDopd5M?ctd;UXx`oDU&?L}&u(ssppjNL6piX$FV`QJ(Rch*e{N^~V$I|hFU2yYCEnwm{D*iIYh-*Ye}V~~ zpro?oZEy!psfSyPh~LdU z+{r6@Cr_lko$*X=Dj?-1yT!jJ{VsokdnEHDeuo}Dphlj^_aJy7XZRSab5LjS7Vfd( zclaD`fE4yPPsG%DlQb2t&PnMG-^h>fQEtP6EL)z#9r?S|B9t3Ear7#wh0dPhbt_}?H&-{IEGRP4A(d_o&|6`g$})=96a;v2EVK z-dP3rrvuFJD*KRhBd^dp;-q4MZsbSl$$k)>G__aq1kKPhUKV44YLA+LC*>RI5pFk)YWnwyMVkzo4OxJj7<;bRIw4PNI3L3Xw;}%V%hmYwU6lk`{~w*<(KeKW$Mz7dm|b zobpyB*A;)o2=$|@+qe^9-{*tl_r>)0iUfSw#(rUt=CM$&@i*w-{e99;{XRc@Exuys z`4{x#;T?Lcp}y2}aFGIZHXFF$uYdbvbs-p`@zc(nCMY8pzXpR*jep#59;4GgXK1WZ zAmGR(ebX0R{!WYkJIpS`et&3&@|F0Duh_4y-BH(U{_k{X>)n*V^qO5aA?GPd3j1Q5!ji7OPV_mz&Ghej- zpWe2<+GCFmpOfR!+QqcEum0I(ZISJ(>vjn3>B||_>oDF9vS2$%sFus}&Mkz^b zVCUkv0kuSbCLKJRC)f+Yr=$13f}7$P6MTl7%DriF`Av=v=w?vfyRVvpa zNcOmX7Wov)DdJZUGn+B6$OG4N?L(ps*p3pH7SZ8Xxmw=xSc4gPJ;o2se6FL6mVjew zA(eswYtS)1tY%8}aw^J$%IzHSm(4({YO4#o5Vur7D~I}*_neC9+S)IAJNQ^1@gspQ zEuSfa^5L!`V)nK1J4hzmqI*WmMfsp76^WBiR1?0zq(b(m^*i@<0vexMlL~z(o(8iD z_SqKrm>blJEqt%$de`5i8+?u}+~GC6)K|1AK(PFPrtrI1L3R=P18x@AWIQ@{@F;FX z*wVN4-SB`Nw0EF&FuYLe;%BuD_y}{05$Qzb;yfJF+bR#?UFGRN1+6F*YQY2<)_4QL z^ICBnhP4dO(2GZC;NGX$N>gcXs=*G`0Lw5SP>h^j2`YZ%_eEzEoZ0o@HjKtaG0vDVzdxBAVynjDJm)j3}b#~a+hsLD7!_m4tt4Wke3Hf=4ry^IZ*3p+!Av>tQ)2pe;_7rKZ|cm+BFFUKV7!9^rH!gP z+W!Y)$X-m%i*-|_tQVN#UaWBh$hJ}^Cu5(+@gW(v&MoNxcSXuq>mXHnTG5Nc^UDE0 zS+`PxZ_@Wt-J_sx{wf;lP;A`^`&n$wufgkw7u=!;OR!O4fktd7L5GkxQnDYV1Rufn zisJb=h>h8!gK6+X1bfqn-_ZnsUGoA%wP@a*Ive^sdeex0(@QT-FFKxwEUZ|kwCgOu)mdqDe<2!2- zzA|}=I{OJf!wi=4BTVIcyi2UJCkf+~G$%K;_+t)#!M~f|@kgS~*x%4sILM!&v08jj zPU1;2{#ZJqNVd^dJlK|gmwv@FxRGA))}Bd$@S00ca-)*l{th3*xFeG4T=Fg5%FklC9`8eiVzG7t+6>|DXg<5ntd&`Up$>RQ96fvzwrgiQnwkxSi1# zX^!V+EpP24#d3U$zbN{;S&E%Kk4qP_xW|t!r>zD@2;iHv#2uc?^`@eP001BWNklsSEkc3a#tZ7hTn`hDkQ1^A${kwc2kx2HwbEZ-LsQRo|C7 zV6QNdhH!Iq0snWoKOjtzgOQDf2jh19mYx`9_5b#`f~4ia@buWOoW}2LQ+Kq-o&%4s zBVQGl%_aK(n7a0p(Fb2*&7aCIE}2p;ip%GOs4>6Ay6nOp-9uv=_~<^n0&aYJJ^12Q zZ#Zo5X)|?U8mOxoQXQ?AKe5H_vs0{i!Jnk|d1_g%bq`|c5g1P35 zZFXjIXA}fEDfPM}XJ0BXIr&772+`r(Yfu(){x4_W++%mr*{yx#$X|J=zVk8ZUHBD0 zSMvP+A?;_zUGE#a%Af429PA4A$;D$;?OF#W|NGScnR*uvW2&>1#wrPb`Yg+MUp0$^ zkD9*w=*p81wai>nR8VG@RHjf8cFyIb9sZ;8J8xxhH{iWey?Cj>#4MJSI4@6oi8R-U#D494y16l#jUyqPt=^;a#ypcvcY*Lt{-v z|EmXFphLe{3wVUJ^lKIAfL*1HhvFPumpUQVrnv9*D*8&SuU-$es5LtjzE_#vj=oA; zQ}Zf6hoEEq0(a&9ck%wi#Prfu%t~M)%2dNls-k#07xiD-)rPcpE2c?wD7OB4 zNiZ=v2=P_%2|J3#cl2Z?csfAngs*CA_OKL7EQ(<~&N_z-DT3!Zl+sQM?h6>*J1ZBb zop)9=#kHel*9W{YYt&l-jR__67CM*5@1f#Wrs9LbsN!c()FjSw7%iNKB!tHL7c| zEjc6yTffCkx&4{oiRn?VGBex5*Emu_DG4ui#}3DIBX=-yd3e6!m@rMzfxLH6ywu<= zyx^GW9$Nvr5Nnda%3hRM57E23!z(X^9hlLOT)E+8wqX^&S)SB9@9-j$7DEmXC(wNqwY;=zOC>jo+(~%GQOq z8Pf=@UdryvVj*T?Yx)}ToRq*HTNKRePTti= z#=aE4I|g8}4S0dq5)N}yT?lczwTzi}j#T?}fiatXz;4Jj6QJ&vt-m^C- zTn~W~XZA~v&LVLG&%ieh`$26g@1!N4wl_LYUI831fOs&77%6o zvq|V6R`LvH_<*pc0p$moXVc5SIGi7GE-1c-JvyjxOKN*o*$HQ89E+poq5j)1@F*Jd zF^(bT2|uBkwaA`=q?lhmnkk-2t+kQ2Wxyev)qR#F`}au(en44Zcb~Mdv;2 zIvp!;<-$t?f2QzMx+}oUBF{*n;TJMcoKvEkDivM8IpPHq$j{C6KXK$0G zK$E%@_4t@X9oT?nq?|MI7XDoVH|8(N3zYBz;S0 zm+}%`rBwjs#LUd)7K7(zD!qsoX=C4ImdU}|P12p1$j|m6v4jo$E`7we;uVtAi8Tt4 zT@a3<5+G`Uv$&I!^EdQ_GyDpz+`yeA{0Lw0r!ZzIO6k3oKFCPF;XlDN0IgEgTzB$b zX)b>=NnS!PKbiXyUx@UqKEQ9{JN_8k4{?k4@T5p2E5pW4QVXqoi@wL3Y4y@yQ;t&T zEdFlapt)$}UNk3}%D3iKdWDI&b)HM#;iIFPNE6uFjoqp2**d&+*&9rx1CF%li+F|y zusjpD<_kQ+FSwJY(bXr%_mB3hUEoZQ6|~3SO4t0IXY!Ip^c;`X>*GS;ago_E`>f++ zYxw*ZN~iGFQ6y_GXwyG$8F;I14~4eN4uS!d<-F~7$gyKId7xWJb22v;>4 zkNNzR;)~k-crtWxrXgPF%lX(|GHmGPRxqgqQO55tsy>_#|>j3)U z;mvPeod3>cRJ95R^rTUSj0$4mb zJHki2uyT1l$@~Mr;vOMSK(!(9?{2SAEBW9cCP%-5-bPf!(itzflVr z%E+Mt=(n}8c2>l36|1QWf_YPj!-|VC2e73cQ`=)f=)jR3ZNU}4J;Fk z(PFOLi!I!ldsxADxT{4;aj58P{XodvZP~RKcT$+3*8}d{q!JR61EfGGXh|F#CQuAh zdkfD}6eoU!yCd)uZ;Dc*T%EIJG;T7As#WVmHV zP=D=-XsQqI0N?Ni=2pygib@Wkb+ygT?2HbT$&>55;fnWpt<}f()waB;%X(m}=Vg8~ zx*IpJDlw6gGRft&oHh(ASSzZ4o$9rbVQOa8J#bJlJ|FG*+3ds)l9-m@i1!XWOSz*b zk=;St%3*ggjH|Oc9L31J*q7s1q5Q|uv^9-JjYA&oSV{uYr|r!U?mrML7(2-{aE}d! z`WhZP2bQwowmY2`FAwRlLoj2!kiK5h)B=Mvgj3fF@gtR@#(liO@w>NDTSWPiJBbUm zuXw0q*K||`MBDa`;sk$&iF^Zdm4?zoDIccu30JbI%$!55`ba9H)^LJP1}UhxEJIto zsUzMa#I$!QLFr&F8nJ`tprW~SrN(S5Mmt-v_o*Kuz(f;j?OwppYcKAiK8T|B;4`$+ zqj;>%ij(RVcXOC~#7PaDld(%j{ zc9Xc~-k#xJbS~4fX?@e;0*Z9b8s_2y^e%7yH@S6*=CnAM8%pb%*9nOyN*$I3Z&C!` z7^uwg6neB$d~n+0IZS;j15jOVazV^%SL=4yunDYOb=*tbnXk3`y~A^S0Ham?5D$as z#|jbZW^{1GjjC*U+L)RHRrmg2W><&_=~R-_*J91U6_UZ|dbVg}s^9-~3SO zWE@k{I}{hga}5E!pdDV|N7$H+%Lzq z^-z5eZCMLW21m~Ku@4{*5I{%judC6mg}$^h z=(vYTqu#I6>8w^#y<^*dM-O@LFni@2@}mtl{4EWba~dN`28SwNGW!n}#7n>DS(0G* zhvQ?b^8g+^VCuyoDHVmlW{VHy6s?I$9_aYPqXlPzc4cGf3@>O3y;<2aX(q4n%o$08 zwSR@zc;bXK!3)^OZb9rF14vDaBz!vkY|R(=3|TzEp}ypV|4e!?*?N`lq{cS-f^S{3 zzw#PAm$BX|FDer7DZuT$I4I?MHAb`}AL$>idy87?o2+O= zPRNN)bz+2X;WOIDr6XBBz;Cdw8@?=$JcFl*X^D{L#IC7pYcpgtOjNgvk+NAzHwg2&k?o|J3KFRJBM#z4o~7cUcV^Et-}80nb;YNX_?r$L7(9({t8)ofCOLRMeglCp-EEkMKRyS7x*N1Xm2Oei!J_u zGyD#Jf==AxCwna|adz&}41dL+6?s8Nac+5hNXhkhu)6)ea(tT1+$ zG{rOVF==Oalo*X(qqfb{3Uh?BjlIy>r>>k*CzJ}FsQoEO-!-De1+2sXfTQth<3UI0 zuoiXX5!UH6CylW-Z;2~DN%m*9-+-D8dzX*rxyz#Pcm#9m*X3V<`CPZ+zHi@-x+n7B zlWn;AX@; z(;Hrp$I+=%oOP(|59-H9*S1DEgVUFL6ehUL=jq|U3bglq`<4C`K-N3cnhPq0Tfe}dffewDgSR%1XH`_v{XqNYU<6CD+#?Tn!>0VxW&Cs zr;vUi3wGrQccjb@&vGu1qM-j5LWpY)x6BLsdCNP1OWr z?lQ-5=t`BaRM;SPs<%ogDXrPTT1D%m4ln{;8h8i8#A@-rOrbO>2VR7><{RZOma6!k zYBA}?PUtQL`kCIP+w*XeDmb7utg)m!xOX97l(|vzp`tc)0@svBO<2O)V~wZ1s1u_g z*M#^h`BpU6#_Z+BMN5sudQg4ZXts$F2->?;6W^$?r(R%N>vpFq1Jw*}T;asgt(OVm6-T2LWm6rInJZ*ds3C-Z%JmM%tU#Q@Eb{LqNRrL}z6n#H# z0n2e=$HlV7Pw=41Ukb0iy;sSjOlzCS5rchhQezQ9BSXOAsw&?7tWdIza zlK^(*<(FW=EwpG?QMS*;=U5htiP%72)Hh~$0$Z~-3!Q}QsDOUO0lm2sGgv8}ExxJP zrDNo12Cph$rB`UhmKZ)Mp6xgA2pg55dvZwdrI5TSBARPyG$Nm86JtO}+RG;@l81H<;E8i!deQ7>f6Mvld9sH-^8TUw$E*s%e zQ*}ZNhXR#7cEP>93Qj&#yUekA9M0b5(dk{m?lD$eThTC2W*t_WocE$fzbF9QYR4zP z9Xt!f)a=d2y28d>a2;!WOZZ{W6GAY0go|Ef~YpTyj>74^0bzCRp%?D9RzQXYX& zOscBrjQl6)$g+|&fzCR*h5BOX@y3!kB)*qW-AH7y#&vl@Bkf2k9bwGjGc-Oaj19DQ zSA8G1u~LZa`~qL_q0~y-swc^S9h@pBaz=j#i4Oh(b2P_un4>-Z29Nl!(4jx!1$0se ztsKqs@mLSv&$C#$m@pQKu%joWPvRAx@b7RZZsgXbp65Y+ffty{x5N&|cd&(x^E_M# zNwc~KPVfmD@eM3}kbkkipjZ44_;a;S-6eo;0{Dg8CGE1Cx)u2df8gKX&$z`m(v!TB z7WOL!xA2Gg6&|FoxD_*H%G}T${)qm7PGOhyM7k4Cri&w?v~~=4G{+OE5xw0eK3mWD z5I45;SLX@biii5Zkqg0dh9B@3^lEkTJv`xGp(F)e4n7UONq$5Pd0UD`SX6IZY$Kn^ z;l1mWZ_OX@9e$1eCyHflfxj0ZXH@$zIXy6QrSa&($UL3>K^_@gPo2FUKihR~b3I!Y zQe6TPr*Hs+24GGD0AKg}``t}|-$1?3ox&cds~S;y&R5Vevgk~|JGu48y&*bdl5pxr z(9uWcLA0DpL-4b{)8XmR7r-DMpJCBxfbn)4^giw*HhBy_XB|Z!27R-2Bs6-vT+iFX zeMcJ9nhZK-tr5f@pBuN&u!8T)g}hOy-`PCrXK+9|KdPU3_RfEV-T+?S7cncZ#>244 zrLqTkG-P@UywbaF?a@mf4|2|~Lyx8Kb5#BD8?1_^{4@J_UGl!a6Tmb8wrd?I6lYzXvjtJrTJ3>zZTu| z8oOUto~S<@23-4_WwxuUcidYG(hn=3-(w05@#U$S(W-W@9{5|E{>QXmr&`@sxny=T zICN3<=pCBsi0g8p|Hs832mCjh826?VJE?Oi8dW$5PD^5$4CX32boKRQ)8O6#_)9r@ zJYgP=YKRB{qaC!^u?IEa8OR)pG!v0whqp9( zBbO)~pjb^6k+<=KN{uZmXk50Bf7ls5h(rJ$9fX7yY=`=PwDttaVOAQ_N*uS5rxZL? zhb*n2!JWM?KU5nrvG)+KIn~E zmXK`lMhbnUmp5S21QOm^Kr2sb-LA|^vEkD)CMn`JhD?eYNp)~jjK(?|-1enJR(r8m zX)~Uf2eE)`udDTG53(1bmY(`D$YzgT#GzEP>LBJYbEPebJ$|KlQB(0sE5Xc;i#$L{ zlG@q@ZE=VeXnRr^N&(wdyq|LlN%kc&K++Lb6Bl-pvIrzm_+J_n_V8Aux9-!UAYcOJNV}Dop%{8mMvb`MU{TG*=b1Ox0Wj*yfculF+p+Cco zynzD(&BdC0fE6S$gM+<-8~gxYElV5m6+W36w52Y>bNm7uX**Ct4Y5c?oy>HrNMds zXyrNLeTM%qBK$Da{VAma!`${e$%$*k|7+Hq_c^iGx8**Q4yy2Azd_8pBnnUXUcdLw zA91Y=5JSFbdh;nsD~+ObK9M00D!b1qd3pqGy6^_VFmW(<%2+Y*p4vf{Uqb6LC`D35 zv1jyRc4%&TynqSXI@S(tZHtz&b(Bt~h~C^ut=ZszIG)UfQ2O7T=So{xksqAE!43Ph zs>!b)>mK8%X4O1eJxnJWV{=f>(v!7BxAIoDS?H9<&8T+_s$Ff7@zFV1v5B4Hg$;Va z-$3RUJVQ2*;t9{pq7K&$&-OZ?|0an?V{}u}4~l}>ugLZtNTqZ)AWJLs0ypxaZmJG; zQmTh9?cr4%vYSLBZG(#v3Qw?P`c{FMbm{gXvRIWKz}Qhx0Ji!pu`Qa4tNb;guiFz^~aW zITxa%lX8MZ6~u{Wbp%>o`^p|e4q<#d8J|qh)Ri#c*d`0uVSj0$buV~!V`KFYk0sjOroj0&?nrBTWdxB zBk7ZAU@gxTu@%h=7zs%qAlYB!3?IcOti-GR5Bo0)jw33$iSxiumzu;ftUV0QQZU;G~1-^rCc89|bwSb-c2%o}$m9&q6x|v|h z-x3dSEB?*=ha&c`gY*v~h2t&k#Pk$k;vT)it2}{Q`xQUQx1?{<1~)i-6?0e@2TVaJ z9_&sS9nd}gJucDz9K8mS_eWd1gP?y>v4|W>hKH8f%bmXm2qkE0_w%ayc4j(od0A(stD~HH)?|NC$vu|^)5*8) zaZFr{6WM8C{dNU3_m{Oxj|uEtLTc!Zb}5ZkSB)i01}p0DQ+?m?$boZC&S<(LIGjGIpD}&-$`$pFf8?rc zI)3x7{sLz^JYN7+ja>X^+{AHsWpr!2*+J`4pVi4Y?@ME+bdI$dVWZkYaQabz^u1}* z&oExDZO~6lEk;i%-rOvl-Es8_dD~rb?rqnb_vCGm=uG4pXD>!pea7w91Gtl_Z-C)1 zHZHNSM@_=^r9({q*$3v;8~>+5!S9B&E=m9IpUr;e=gq4+lK=o907*naRO;FnhPr)J z)f*JpW#hKithN8gg#XnZ2JIjW3P|ACd|0fS6p(@$*#B$oc^NGnmoElh_+w{jGbr{v znvXc*3+h$X4{q&>)(sRxQSI-m5U{Dq(^c(gouB5f<>$t4yD5O0xUg*4mK*lCFcq(8 zJLvw+wL>`2Nw-INz5d~@P9svKHc#q}u*K`zgBNeYx>|0V+Txfh(<2Tci^}jh-o<@g zB9HC9H-p7gmH)7+z=~YkVt;{op#R}>CBp#w>f(3JF4Tu$Fwj;+5zlQ*_vYb?Z&rayqrz_ zhzqbX&eDUwvxY!SG$n6QY6<4$V=ZFhq`s56;!^@?(i|=S#Mz!%F$I^ao$3qj>Kp4i z1QkSo&9Uhm*_&n_9vv7e1fwH&%46_AI5wcGg z*uLQYM_PY7tPUP+IYRohV+yC!3qMpexvKN19n|*b3L)vM!@Y&63pOfL>EG+UysUot zeZ2tM`uRrT$F_c6#~SLsy29H6%q&0Xdo_2rIz@;gJ@Z<>B#E7Pt$~AiMHqGUJ?Y`4 z(p_ft`kxNop9Qo8w}GYDS3>#{M@oHF-|gk#$?3WlYzvNzd42Y_)k8C@m-j9)&j`M% z{PcOfBuWX53XI6L?sZo`0tUB#t~YP>i5K|Kx;|AF#mrv*{W!l|)dbjZG93=GU2O*5 zM?+>M-EXR_9JRnTDOIfZlVjt04G;`7!EOD*TmuKIn!revRTz2yuVu8aXt|F(!3%t- zmq%AqQ?p8%x`FTYRqSwRUUBVxtsTY3_UuW05Vdtea|{902dq1^ha3171;2_pW$6b# zJ{zge*jcUfeTD}-sYUCvK}q#tP%^*c#Bn;7UL5Kpw6zb=sVu(pYR^B^8*NgouLWn+ z!5;7HrhQv!T9Z1ci$>^m?V>-101j2Z-os+>43FiHebcYI{cS(3LVsVP9%X5cV|8Cs z_2(r7gU6P z^xk;G?}uWq5D~7u?eBsXG!ofQf%CUW+A?2$b2@oDhVZ~Nc%Hc)uzfUy2wkG9CI@XZ zF3Ww55cFmlL>8T-nk`Jlt2M38l~rA3b^yA=ThpQ@yb<*$Zt<&>OotC*sdNZByuFvU z&{=e14og_npM3CX+3oR*nUEGTXeGWG@Gme!#*gsi0#%=yhU}yl z6a&K82Y!QuZ^X=oWCdqmEnb);%_`e7+fT3;4`}K*?>NqDsJBvvjaeb&3CiY0jx^gs zJXCtg4z0~^ij~EGMoW8^WV6Dnq<^63)*3v7M(Tm8$zv%#Lzn5qRL0uE!P@WT+1Q?ou-p*Q>Q_gOKWai+6oKD0lrDANbD)b`Fh2!V7e)M zcIm4~FpJs0bt86SOa7<56_$Lu;631J`2hcve-l&uXEehh8PDNG{AT}Ep2@$)7yvJk z?NwqgcDR#2!;7M1OFLNLSs}{mgYp!f;16*tZo>vA=5k{{Nsr=I+Tq{CCs;}=d1@NG zmS)vQoy5JI@E^$Nll&1$ei8q`e=hzlZgCc05#&#zQ}JfSE&Lh(Q~ZHGJI_yPTfmw1NOVh@r7MtXz4rc%(ofQ@`p9*4qSnwO+0 zS*A4BPfV5+J~KJ%6j>s|)#_adh1oSkt&q4CL+{I=)R zZz?Q@)>--30q_nM@Mmu+#b2IE-r>|#ZxrK{=89C-?mc@;}B(wkZWJiI9o9M z&J~L_Rsb*cyUOE%{1CV8%X+k~E2Q5mjGS zzVP-A=N$3wjsA|${|zMoIG8K`vo~*kyLsguzOn-7ikZmQev2<+rQ`h4a2L%lUX<%(@!ER!GDdK*{>Z1E-iz$Z zMOMHUnUeFD@S0)jO4g@Gzm_sUUh(+9t-rr{Vg^BHtQb9IS1S$)vr#f%>k(%I{NBlA8voGiacGn_pbb=)WO6)Sd+@H zR82lbdO7*@o&?dpEsha~n0OEqMHy@X2Q91kyRCvnu43E@x*`NKL$i7Yz=83lfo$(! zrjsNca$6wgI~0|V@j|AKTyW9d8U$?Z8MNq#59TgdqEf=bk*ILEwpEw_&vq_YYAxVs zg(@_a4I2-G7Eg-Up=m@AN+*~z#gD#ofaY}<<;IRi${?Y$uEy}*bg+XvxP`3>`hQi2 zWpVhKVMxajH9~eaI}}}u>i`>8=0?iO(H<=JIGY7@Dy7Y9N6J+XXbT-$!6&(?`<rNVJ}n0zhOnrk7h44RnDfb#{J$geK78y^)!UBzG2~iDE9toJ!C5 z8D^-FI#}9M(UJ(1 zM3@`fMI(-;;_&5ZDm9Gym$(Q|hFvQ1y~@^63Sv??u#(H1yODd_s8=db9XnOvK2{pV zFvp^Q+3SRPUZ<)0i5xdBpHTrxF;Yl$V%14FiKGF+p#-v}#ZG_&zv6K&=%>GN5NeLftq)g&1 z-_$ad07Gx(i9AfXrug1|f=6jp4(Fc3A_cgXjr{;wx)IZ%<*RhZu*cs*o0gJFK}(Nq zrXrS$K4}3T#h3U3i4{D%JXKO$@S2yB@ZwLWuJGaK$|{|}z*Iiko!v_F#10>8S?&!y zM`H@~ur^2KC(**4!pV}sUQS38YPDC(L-x3f&eaVBJvWm)qwMsb$}h7!W1uHEp^fio*i&1 z?@%5Mu|mP0NP9@NF(sJ^9OS;9`2*-QfxSEp@R}5XfRr?WqjQ2T=~()r=iNX#} zxWxxpMRox#%eLn}s$EnlnzJFnN#ED`U|@X2&u1T8{Mfi? z%z*Ym*cX;&Lm6-VSHbPfCM(YYr(W#jnK?$IsV#IwH{(;J=*=^9@{Q=M8@rKrFf$o% z9sO0z92CZ4|Blu82WagF@&76162Mc7e}vZR;0CuO>@Q*pQ_Mp2pqQ{MWD-!%B13x%_PC|Ni{uO?%U2gZ-@D&>I5l^hR$?lcs z=11`_@dZBNx!mI?k?b3>cDz_m;5KX!_PtIUZHdq5SMh}JB7QA@KwoMRRF=1P7JD(r z6MH8PVk-TD{vA5yfSUb#^__gM^T2p{gy($Cer;>{tx48cD zdO6E9m_*(cwFRG;TXqC7q{LskYKWVi zygXPfUT+E0>m?0ufSX=35ILdcmHOzHCpTUf_w_xNRC&x?Pq|cpyHQsuWI{b||Ie2H zYtrX%YgX-5xcY$V=_`)tMNr7+X@=@gFK6;F8BvcjQ!Kfu7h7|lkz-UUkWPua(w!b3 zd|#jQ^yJXjeRYiPt7NdIpoizfMI~CFZnE1NM;PAZeSiXkI8+)?9gLSrwE{)|aA;>y zL2R*s5FIv<@pRM`+>Gp^n~}f1vZOt&JkVXuE@V6OAgaGUNXMWYCCp}DP5qHA?N4Sp zsBYHqkoIN`bNB?7zrqymM_j(z?OAdaqb@if>m+7dWmZ@3dGGQc!N^`fM}Zw}s+0Q3 z>{RA4Kh^gk9J@!mrM!?v&INo__Vjt=4$jqe+fy{kJ*=#D)J~j4Kp_q_hY?Jn_@pKy zzxh)&|5D$*C^!vITw86$p}4ixFB~_=y*a47w{!SlW~Cf80yGRItK+X_Q+(g@L1{O6TRR&`H7XUhEDB$muw5bp0l+^Yv6d ztNGO#ssA{F`J{4Xx|U3yZ2pbTYzMu{2iH~B|G*P(3V`L*;0?;SS2?j(L`-ogA8;y) zWHF=<_0fH~des&$k{4nx9^nCE3~(c+uryuNlc+e{Z=n+#N9F7(4bT&8U!_X-OZbQ$ ztKd6}SEoWE+SL$JTeq^0un@D-417u$l*SYa<)Bqrf`%x-1n%Lfpj|YBHCo}R_yNAb zBRq*7?qYUWE3%D3kA5iRE7}UW2|E82c6MAd3;1Y%5tddXqkY^slGqknT{!N29IZUj z2QYZa6*_peiqGnoeP6J!Y$1uexapXqc!U;KLM{u7>kxWX8$`Mi#L-HAsLEzv?Lm<) zKf+d}{V#s|0-i^A_pZLEn3wNWu7N0WZ{eU)Ds}_=dUKD|!lB-7hDP_My7k*ivA;oI zYFO<+>B(&27It_SBU0#9LIB$u0+`gqgX?#{tI3j>9__5K5X!|MUjqJd%T|GIFKY;3 z19#At5P;{fMXi`X=aNHOlpsi{If>~`TlL?~yL6`D6Z?h&T7&nbb)8#Kvrw{kK!(oSmaX84rs2z_p1mMno6&^b320l_oV z3fL(F5NFUH^>`^CoqmN*gZVy_f{8o{mL?eOGLK?WYF8tH>J(MD*wzNEld_oESZiVD zMbfPmVLOXw_yav>EZLh_*1+Dox82~Wjm@{@Q%M|>|9ku$SDhz6eG8j!w1X^MMkA0dfo(~-WwNBjYH;@3L6 z?ZgHzjN~u)qcp35D#;(w8m;jR-%0;Md%VQ)<(-Qop2CgU%a)E}Veh0{#b7=gZtO>x z$qk;M8`zj{Vu4f5P0nEsU$N~eI;!ARkxvV&$H2LK20oWhWVRugd?rTvWTw63l#f8D z_L;MK&{sy#s`4}K<*nE6CjDKYcr;cvuNj1|-w_AYhF;vhbjBCryj7KfoWrRz_H=ho zW#s1z_0X3S3!UFoPu0OM-S_7%@0W86&c_?C-R!T#-v@@qAXj-5IX|yaFXyqL8G0~B z=aV8c6s|LDhH6o#Ye0A~1B|Car}k8zLxFU~JAX;Ac}HCIRkqLhlt^z$_i#}~;8(L3 z7l9A?3ajU}P3OqMIO<^@ZJl(%2zn*qXRW}(()0>STq*ywEHdCpNf`=rk5$8~*y8cd=m zyp_)uxA$M_Zyyr;ZX~PDV=Y$$C2tL)&fkxBQl!d*9I7_m*Hc!d|0~Y$KB)P(S^uZX z5)_4*8k}5CXI>3O(Qb?1cqZLc?Jrez_)s4?M5`?le1ZnPz|s6N>Y^{cP89EIeYOS;3iyooQJ##lnTh}? zPwY~CX%>oG7&BKHTBYPR#F5V~UCoLTOBbT_zTCvUhgMO`TF~!PsjbMS33PH?1_u|V zMm4k%BGleKLMu&6hb=Nw+_-Ecvv@*b!p#BwH=9JX#kMqrG)hk#6S$^TzYJyeMfosnHrm zwp|Mav&e?Y4tuIeaEJI3N8hp;$l<#-)HHGw zGDmJE+|7$Rc4|v!FB_E{RanKh_^41(BNpI-^R|n!EGBqakXBw$nqwQd!^x~w#!EuMmEF*{-oJMn;nq2ER$z2YnBnH`S!sLKYv1ZXHC+m+?g;Dpz3gIXMd z`vFaHuCtb*C}L}x>MoB~m>B6roor}TJD5m!VTm;d@qn8m_mt0fQipJJv8&L|xPES; z7gy!57z~;C`C}pEmUm!MwC_SbiGabRR?Y@zd0tnHyE>>?;0A8-H)!!ug(~(K_%-_; z;sT2=dmnI*Q-^Rw6Evy!ote0SM;yhxS&DgHQ}8%tB-z$ERw{3x8#o4L7j0mJ?&KJ# z%yCz8NF;<}grJ~cZOux|iyK4HS+H@^e!=^3En_0g& zPUHZ?b}+@M;D8u_v2m|I;OX~waj#j3{u4fZU-$4_{)u1T41ZVj_t>E|La_~vuS2ID zwPI>q<;7GorYe4umYaD&a9DXYNS1cFkrt3*;&#NcX3zEw6)1;cwHH1E6Lf+N?JvGM+v-k z_J=sq+IRLzlR~|C#)dhmhx@1mFcT@8t!V9}*g05r=+ogp;ggi$32!~zm6_Z32GNU; zb}Nh??E4t_W!Bc(aX2+(JT{<*qUefHL0tO zU**y|q4!Ib*I!{FPwgqnXpeT{8+>!_DQ#^NbZ_pZ6t@ONEwj!#G*2)pcO?lIly>q! z!B7PNCD~^>Y9TE;*K>aCAoEZ>(^_dzSFJX=Ex}JO#YbYuK`(zLbawtG8>Z$jAq2~- z=oZdC%4_*o(Wjx??xd4tIm6#dOR#S7tvnZ7^auKipX{HdB~0X%ZSjnEcq?Y&2mFxP zq-ZJ2b9*9$?(8Z4W`8la;#N*_f?INf9;NsYpQKK{$9uCEGdbqyN+m$H#D9U`1mXwr z85`E{Px)tQW=nj8Uj70}x{p1TnZQ+y4|*sDxOi^qOklnIct%j5>uCm+ z3B-F0=2wJKU)iDhoeq=>3I5{e$MG1AT996#YOam5&k`!qwXLvUT!dG5w>s^iF6du6 z&$V0@38*;Z#vCNSPHE@e&K+K<-qO_v)VVCh8QWbK2(NQ1y>-a~x&$)6DAawUHFp@2 zU93NsOe(Hz&voYhe3@wRD{q3h@-mg)f-mV!Uenug?6-YJ7jK~6jr!pYxc_&-P+bv6 z%G(?J#eRh9?xFpECi>r}eWzTE8pBtH22%CniBcBY!L3V-G*#hvSh{nawdMMmWqV%R zhFwQxCtWWzDT64te^*T~+^jek1FTX70f&roFFGuTHBw31K=0CG8r49yCZp-y4pbGW zaOCZZlw4kKb|gZW!o(KE_$+9pwP`3#iCZfmkI%(qs;JT}xNXHbgtgT{6yDBNvL@4N zrQEnE9Yzy$P^3O(lPl}bs>Q`o)G2Opa=;KJEBvRM;`MT_6_KCNQalG3+Jz|;S?{2f zgnz0T@`%+;dLLE9`U5_?nEh+hgC?gFg*)^Z6l^(W12?KK)5-;? zt$jJqlwpId7VXiY2)NPNrJIPfhoZJKQ~&@V07*naRAgK#ku{Y@Q)L&)SR9IKtVuz{ zx=>K9LttA#uu0m3%o5FjU=W#^Xe6J`QJO?hz+NXEKxl~?vqMj?myJ_->oirB{_72D z=0W$5=b_WaEtpXhY}BCu{T)@DODo1ahj5Td(VfuNIZ9U9(B~ot7h}7IrJ($bb2RW$ z7-55BEH1xP!{5?5%kSy}f2!Uo<--xIiN}xERfd-e($R=ntO4Keo*@6kmF{NH_v>I_ zS~q5W4c3Ige;+G`+*Ur%MCFl>1=z(*&QbUrWeg7LmnNc-X9JE&>I;X2Dg0pF;V{%c z!wuZZlYpy;U09gqNv%-ZDZJQ<4{oCJL9|kcu;J)`#Cy2G)kEzG+$y2~PNnwQeMAso zh8ugY+T9I?t;s4N{zHjCc~*LNbqf+}bHulfMsB9!9)us^S!B4yvr-q2RLJjpc$9m% zN3Dz4+T%j(sXFgc0Dl5#AunJ9z|JfIMG1i#l_<|4dsYRtb}%J~HQeJ#?XzjiJ;i~3 zokqjFn8BUMI4XP}>l)a=G{{}qu}Vx!s>3brOe^MSUq3;l#~uJt{5OD@ciEh?>=G!4hx9BV~$t#IsU%f7c4VlMWz2_Ps3Q)wwS z_5tRjNx%&DL5EWr)%RGULs8Ar;!aEy>nd}~WT>-RJV|bGc3Df~tKC#&-;}# z*BcN~y%`1Y>k-vA4r^DPG5X#K@iO?UQ-u1I@zNQlbkI~PwMhBx z9K(BF?;9AUw~qiG8Knk6MVIEWBD-n?=NUN$$HKjQu7V6_opWxebv?Q5lbO^~N8Vc@ zymt8B}j3Rx=fTg;MQ7+t(oBls~8s*3+c|9g5;^0iq38=izDu>X&E*Q z?@vHy{DU-wXY+THE9bh!zt~fBsE|y|Lt-K9vCF3<5jex=#L;9&l^l zOGlht_^t=>RG2z^sM{6WdpscppKuMGeFrV-&{wk-pX_@OtP8=P1zws)Wb}-Wa%(Nn zL438Q_%7us!gT1X*gIzAnv1ql@E+i3f6PpT;V3mYIom?oMJoWB*SZvomAOX&)9b|A z{%1-@GqL}gxJ3=xnzi_c6?ImlZqnkFO-^Bl{}EzNLaS12)NwF}-2khedFa5Q{ImV+-PkW>_m^`Za*7-Nwc1mru8a*8~ zdoJWoI>J}^2|D<@u$U5)09t&LSXnn_m-DaUkdoyRMmP;Md=P)bQ}{Whn`n`h*YGd# zcQJ#%L`{W!D`see4|0Ofcq2W=sacxiIR*XSIQq8b|E4+kX#NVnr zvy=XT7V^C66_Z$x6h$C@Dv3tjz%!+O{1Nt2fB|P{iFcBnkFYF^L^ZO-(dkC{Nt)vz zBHoA%`U*=dyh2a0XOPxrAx}|+cbggl7+;CCfM(!LjILDWGkNR^zWS>4HR2?UwRWYG zWHe3^q*Dp-dlcI@oCP)K@QTUZFTCD*u{qGWFIz7Zz-z8xjReAr&eF5O(y`({o)KP! zoLqYXS1Ez7CK+{wb)&c6-!Y#jk2o8gM;)&z(Pe)>bOQ_#zFZ~OJlYiaGN5p##g1k$ z7dwI1m^^wRA^UY7_jj97d4-35UE&U^Siz5&&ne*DvW(!Gk5c{|VR_a$5PHhYKHdlX*4b~wlBTuwD~ZG<*ZK7D;xeTe|l z88C_$86D2kt=9!^T?RXNrT0R9^%K85%m}xqi|w`K?;C!iw}&)uGz`CI8Gp(8f9-U4 z<$uA!XbbVb5DB`P$PQjv^IxX@KT;kcea0ajjsCfv8r1|$1{-eC6nYyekS0_v(12hHBE)^I0}Z0$@NV}*)v%qahc{+6$2ytVkA{|0 zl@Um=F9veRwqS@#M`c%G_X$2z+>umeEmasrJnT+19tPnK^?!gSPwI^7=wh%f&QldV zB?>CT&oUW})!R|O7j}jn5=_k=Z&ggDQP7%IM7pr&_YqQtskIWlc&=^9%i0L~bp+L! zo_G9GTQq{^l=PA~P_i{$HTe$BsEbjX_ZE`XsGv?5{dvU!c{+T-i`QO5GjOhJSmp2( ze$F^ol-}pLcv11FOZ?$Ts*ZU}#7esJ6?`!JPtU&;!7DhFan$KMJE{NoVi*wfgFWo* zFhoy_o?8GfrEE5GFm?SIwA5KyOVzjlWcEW*v-un+F?bSdm5Sg3W;NR~bSa3Z;IxD> zDsnB;QH}Pr*uBg3yu_<|vJL-K3u_mmPJ9QSD^!YVRBtL*YN)3UR9CD#(M&6G0|_4S zBfc?v0h(0n`ZrjE;dWGCp-N)e!!roqM|Gu294B68V0II%AlC}qU;(X5BumS>98D{z zDxYvGgLkTokRNM-e6C%}`xCJzD((YM&n@)PpKMxjA3=B(Ie1bl-&3ue4R6q*eyxUC z=CO+AQfZn^b=_W8^L`%n03Ry)AT0m2aM;6NP4F!mcujk}iU}(`*IQUuFZh1cc6$$B z;#XAdJ3gjp175=?+*Y{Rbo5M`3Id|u5&Fv2fneP+Ie1n~kG;xiTkp9Zq;&3)qkKyWG{)N%g;nChdK# zw%!!Cf!om+E zagqL>%jBI$kJAFHYwn_vk-wzj^&*g+E=fUWky(`>#rRa>H>sQNId)xry?#AgFxr#< z?HX>#=SQov1Eq>`U)m^HNG7WY!;Xt4s(p=Ay#pnxZGXMU8xJ8M-@ zjSn~*i5r(25c1AyRJ;+ptev=3RQu#_=uzp;d=#>G@C_yM94%2Ras*yQ19LmJWK(f3 z%_>yzOF1~?2F+1p+v@Ryu=rRg0%WTwNXao&SX+{BF{BMll$PQyJIO|C=RZhK0{9uP z(8P4f-{4ns%;e!vo6o*WZRQuekfw4}qixLI`VDr9$`~!AzgV+ivgra7VvB>-i7fY` zSMpeNi|~$$h*u0BrP55b=%IL8Pujrwu{%W$Q?9`g3FPSUb)*tHyGb<4s$`U!#HBT@ z@;tFbQT+ZD$|S%b=86_v7I-CAi32>_zoj_wc|3v3@=p5iFvCA5?%_lBOn$(B+JBRN zz;|Mfr)ZKQAIT;$SDwNHeiohRt%WR@$e$7quz@eqo%0NVmbj6=;U|29w(zI?Ssd{W z<|Rt#M%u&(O8kU>LkWFS{wyr5$^Sxsm8W)+eh~k{zbo>KCArh%ow%0|_8-z;@kHFg zSGc*INmD1C#EinN4ohm@||h|lPsc#ap)%QJjqeM|mP%uom0l5}_Dl2-gA?qbhY z6`HMhE>U&=37@5D)rlMN3H`(QIi)$iM_*t`p1{#1V%w4%Sm7r$lMkpVLBpaX#Qtz6 zmgO+0B|Mom+`t^x_D{eR`;(_V?Ez3sn#n|kq`-NE@&8&Br1YG5ZEjn0`WgYVlVE$eF_b>})g8Qu(6 z0@DlU@3_E#QDd-tu8dzB+F$OUd`abgL*^6Z_@|3a&sD*(tM5s!dQCn<9+kavs@#%% z7KV_|u9V9src2v27c%;}uB~(VReE(Oa)o$v4O_@NikM#3TEA*4(Tm=Kk$K=$8tm(l zg0a)wua#3`NTm3JSZcRUYziKYCN_D3hPY(wa z`it$xL0F-)A|DX;`E+7u`&fmZR5<=_&d}dQ19H(-Pt3Gj{CV!7m--@`Iv0|%?x8aY z?ZW;K8y7d?qBfTrTICvP&>kh2m9M3G*xE_Mgrls+9iBT>dmTfJkP><_6C5ysEn1K< zTa-|OhMZ9*&E=r|^k%J?wSbty-bh98HLOeR7BUIP9;K;4u@EpbYOE+a3zz+J0H>H_ zOEE}Lqky->$U&cw;A^(wBa%x0S`QPWD4$GeR&JJ}f~OPSpj_{vv%1brvw@vtJcUC@ z_U0K{Ig4l5A>iJ=tv(LJ(MW2bla3gBXE#l+l{Uz!%Df?ToX*-qC+~0%%d9(*&{okb zU3Sp3>d**ZfBf@o9aQZ9P3A+`aH_@r0G&M{cS;XZuaJ7(Ql9suS_5;SjeKg8+u)EI zZz|tu3x{xC7b#HFs7Kb2oQuCox=doxRhjsJk2SKnfLR^V^szXYsaT{!Iywdd*3piu zXBU~^NxduMD_S%~6ye5qL@INLvr)fJS-(t0Zl!Wvj3xD}{KFhc%Dwb8M zddJI5_E1TghkAw*b1QVRrk-Rf<5rc|SsT>nxrtYVFx zV2N8>u#_Y{!V{$-yoWhnK|)`pO${n7sw5pI6AtQIXcgwmo~+V zs(p%)r*F)oXkeF0-Y8}X&-m6HYknxz^v#T6}I-gcFfG{oVzWv z4JLLHNQItXSbu2+Tl_39VQRA#`TgtBju;=OgN*l}pKCLP_D- zcXELUb-|9qYsjb-$7pfh&hl!1Z2KXRX565z@||j1lB2qytI@;n5q;ltoPYZ#{kjzX zp5M!xF8ebxk4G_Rox9V9KfL&v5&wr5gr76VyIw^ky)#PdcZ3*Tt5Uc|1p2R&Q9UA; zCz3I2^}=s;=GhygAx4&ezX(o`XCL;ZuH*{?XL<0Pb*S8x4(=|_c=jG9($+x_$7o$5 znE6x7Z<|EN!i#O(jG!Yw^J76<C+XR(5bHBmtSPgwqgIN;7Hi(bVkpTyvsw}uAm zg1GY7#_7{e@62ZSQl`S$C--!0I|sX;QVAj?K`Pb&c|eB0tK^d6jn%#tjRZ8f!EUn_^Viv zCnok|k>H%!pWxAX(hfFEQzor!8fV-3=mGU0e(KP|<1R8m<@-2)5XzHYu9 z<^iYSvBw<%yotEcJK%Sxy5fub`UNO_Z-q2ez94I*WT76@nlq^_tK=S(hTfTF~m48 zX`QLk*8>)B;!3W}H2O=)-rtiNxj;Q~EuC=j?p?F5>*}T~Ur~pzd(U49tXw$O-}OJe z^>$rc72}bK^DEwv5vuF$z2+OAl&=|2zWch&mF@EIW#pB8?UkMJ*j4hv<8#LD_a)uN zesLk`KM=pY?)tybuy~Ol@(Y~Q)!D!~bhGS|zM_wp$*S+Z&u?V6-|6D#^>ET_!R@Q1 z+`f7~Iie2FPJ;4a|1UgWi_i{K2K`lcNpUlWOQ|N8u+`A7!0%x~Wxu zt+=psjX`HN2i#P`pldE_sGtl*q*oLhIv0bdR0-_SK-kwl)v(qM=cER@0!h~a7KMU? z2Yq<`9;7xP^fKgrz#34?g-1AK+*$3-RAWv|=clUI%dq=JEc!NW-n1Q8@JuVq)$p zp&~FHD@bAu>-rXj?%x)>cc~-lt5H`k3;~0(Klb}CMt=WJWR(zr>gzgCYP2U6CRS&G z*OvPyLC=4(I0P1P@nfeYNYHNrpH8{ggg=StZhT2uz zSCO%W3I1$u&7%rQ{~qSm=^VcPa7+geeWwxyh?3hmOi;-B0dUyVq|Pd)iDnOh7@ELy ztF)fzgxKQ~*R$+oMCB?FFB0j-DXAkUn+Mm)pb;CYaRp zTQJZ#Hr`MAwy$5GG6ESs(>Oj4KCnO+zIj~rn;iiBr!bPQrM=&CVtTEX;AMWA5f+&0 z?q?jQ))~)-i?P873N-E#82`N9vESDFj$Q9QCSGjF|CY`k=j4CMBg)aa6{_eW`9<<= zM3=tU&wCUF7~TnA)aRuu6CDYB7_5paU!^gd$OUHTJWMomDZ!4r{Kwj9bUVHqn*&-q zaD~cvF|uh^8%l1R+6sjSP|D`B9aUKWKz$XT68wT@XoolAqlMXsHW#CPE_ahW&2&kJ z@~b(ZcJx;E_JdfUrP$}3qzQo6cuksQOZrd^wjJq^SyoKtIx|gLU@~jzi?8UjPf(;qu{->yQx><%sTPkpb4dCMb8{;U2P0^rX-Dj(2RP=u zM005e9o*wPNMu`2;-8tlNcev=H=?n(@GSj9bg?}-yRLIIko`hlNecwtNjv;cM*>et ztniO$TJGRFl}y9I97L44X-myyluI%Y9*P>mBO z(IE$(r3!FL4sYO2C5qR&9O9yX4$+9lp2I@?2nYBLw)j`V7|xGoE|z$yQj_x!=Pq3u zL3{f*`HT3U;0EsHh5T&(34cd7_(ypuHE@qx^N5b}9n9=+&@1bFq~9s!*fGwZ zKojm9@rU^lKEVHA|4lL(afILTBGKR{$3eLIo5d%whG&@LJNb_QRBFg;mX@8B^OH2g zN8Cy~SlU^1@(kAYL19Mp952Nas!ae|6CnUi{NPHiyL)r4zgJq zwfnwDS571Rjk#u2)>v5dJNiPorX}fh`!l1%lwJ%C7^W-Jb#jN5wA zS6nj~*lR|4c$>k!^Z1z!HIFU%*61@2+8qqBJi=UofB*apRcsz=io z<+}NFV;{#F{I()U4HM{mRN%{(FdT;80F_*|Kb)ECM|H$kME|Stf&9u0Bb{;cb(LN7 zrnCOyUyhaESA!IO0esZ?oF=^>%urp@ucUOZY|#FLbDGzxy55MgUJ0*^hLva4%3~M* zTRE4p!}83A&qbHR*rcy37m~Qv&dnLh)30}Sajx~hOsl*R-zhHmS2`!CjEL_o?pK6+ z{YUcDZ@7@&7~g)^4)*GI;ZXC`;k&PjUhyX$aoQyP+wAz5#tDh0e7Y`Z#rm)r@6D|K zU@GET>Lchj(*0d)hxepV?VBotrZU`R5Qq;r7f#c72Jn0|pw#@2A=a&zwSzIH+s-*H4E6-Ad}26tbITfM=7p+BmS7HsXx zo9R>!`E!?G>rvX)dfre}H?@c?h)kO>A-Xg@W>`7y0=1yHf&dSA1KHffsjSY`gL1fy zieNb^TLY4C2M759Zc1Xnc5$h-#rH%2G$~sscU50IL<0eCOAT)|hD$q`+f~-_whoFm zuyvWle5}g5A^Koj+?yi;uVcF|8M31eA-rZz1-)IyJUcniC5;5?pesd@CB!f(LHaQM z`*bc9TMgcNqC#=XFBQ!J*4PV~ z4Qu6{p)w2$Ys>~xjl!gJm=dKIx-RM0sBG3n_uOg!;S=V?eW4$CIE1!!Dv*jDIkp^3 z>+P)+IG5hMa6Nk_kRo(^fIZ&gHAp25Fr{DwS{0~5lrA1nQfUDG0G*@B!>*rWfSwL` zDrRC<`oJB2 zJd_e_yzXO zENU)C8p;4HoNC}KMBxRFYMI~#?W8?C;ihu%r!G?dL3Fq&y1e6NF)XSx(<$cSWzCQA z-m>048nlF``ekXQ4kj5b4IlsjAOJ~3K~!>Ar?&f2QL8;AaIlveNpR=<1wgS7txyb! zpW#EP^(K|uL_y;8u!0RNi;5j|Z)UJmX@_3K88wHCu6qTb1JIIqXzOgCWxk7We=j2FW6v^|_P`tF5B^K|Yp2 zdsIibjSI{rUD21Bz4OU;?OojOq$%uz)C`-ruuY)$at#Yk%oaMafNyy2crvC}-pu;t zzEf^ct{m5sP$(R}Wdd1AX&-^;{zs{)Ny#Zp%%j z4Orv0fKjCWgbde`7Z$+r&Sg&wB$ zeX7h5Y#u@APQ~rCGRS-LfLdjnPgcm0+3fJVWHkK@39T&QE&c;+et;>dhi{7IMYm=u z1G}Dm0 zC+B}i+4>8}$`U*K1B04tqzwfX_K@C&SP)aPvNE&LO8QnIHheTEyDqSmLAdk%Y( zi9BKfxRt4ZhXHMz)Cvq>aHtM-)WbMn+~!gL$pzius%NmolOtxU=o5(jTd5HUDt+eE zaUe_b5%zWxtu%E(I7VSz8@pDsKnLj?`5WGge}`85jOVbdlYnpb@6ex=r!wQ{@PC7a z{0qLPZ1BE_N7y9&f^TqZ-$<=^5D(HV{*nCEY(#JMi4_j}!YBLyk0Qow2~W&N^N@JN zw+X`^_76nXwy=QW1oUWb@r|6(pK^n5q)(8=6HekMlkA1~LHrB;aCpLkUZ^#`MW68> zFo6}mHJ$VXALK_olM?z9|Agk!2H%iJ&R>6mU!@IRq7F~Rjs2~3E%;cNu?`aHPbv=b z+mHzA-7MM;?!}FG!fo6xCD5FFkG{gQ_=M)FobauIG=j zG&L%fDQ0_(!UQL$s$U8Ey+<@~~WMdcjJls?`4%A%4+ z1Csun0itV68@)R7xK3Ty6=l$`|EoF(MWbEaDIvkRj9{cv0hk ztx@)4B>j&c`9kC7g&|s_zdCyrlS?gC-!pw&*&E|VG88@jG({1;E`t!=nZk=KhJuvg!rJh~K{>n#g> z4_)<67SMZs=C!!M`)h&UK98ANT|24kL&AMM%(ulYuG#|o+|^QXqsGca_oii49;u_eDbTCZPN+D3r z?1UroKN&^oy6St~(ZOk4-i;m1rAd8@3N)s;1-%QVp|z?b z5W?_oAF5OrJ;|X%eFWpLD8VP6B8XibY#bfU5R92H6HHPx(B|5N*;O*K?Y#!3wiXr1 z-I^V2&=ICC!R`3GbM;QEJGAFLqYQZ#QT~!Gm;wH8V*8wJ+52R`fXJY%SUq zRE6*D1REh~StXzINSUk4rao-W_8#qEmsp}ZGpR}qTP?~ezK0!}ni)*WvsQL89qgSWPaH577J#)*-auYR61zSQ3f!xE^ zr8~GdbaB){ha%D-)a&zF?jLFnsTx@;Tu6PzA{1SSjtW52QsOKUZ;c}li>1>Vcdm81 zYAc17p&2a(oL1ZnX&@xj5Xs_esWu4gB&FK2ZU*08xIF?%B=@Kz?`w?t%w9w-LnWMT zho5ULILJTK>hOs5Oeb2j#}j!DxAqEe(WcO`EIH$CVgQ)TaA=$xMf5s7j$X?guf;R^ zJKTsHn22SSq7VJlDcXi%AGV^cyq(4f$DiK{zu3315*^O=Ox%l!{TA01W3MC7!cMR= zIWd9WN_A|UmiiH|xL2{iEKv9WHl;bi8kUZ2Sbi=+%A$aVq6g_#T8J%P+sS$;DZ~!Y ze8g^VVJ|PFsBXW&y(`#Sj%fF#v@=PLr)H4qr@9K6QOE*u&KumzX}JGN^;uIh$GZ}g zN00Z4J+1DGY02@$8QRqiNQ)F2I{U^vNm0vgYXd9_%JGEGM2CVeKgZj{{-X2@+S+E= zi-iby-Cb=h1ng)98$5TY`@MjTX;lJ>v&jM3Q>ljRtfkmgfKR-#s@Z5Gf-*dDv0u!J zaimNfJ6Nb}g=a+|Z;33e?69hQtiY>?CT?BqeGT+dXc58$aAVEktq!xh!IXfj3BWUz zkc)6AWiYcrTig>!9fIuU+f~iq4Hn zroyzmsaG&VotTyN59}v-H)$8`WE8nHEs+Ci4zR&+Q+ZeFs^6msIo^(3wq;*SeY+;B zx>h>(cT@~Rr_RWwE|&2Rq-hXrhCp^ag&$!ewKziHfiGfd^;NO4 zflu|qcbSA|(zf;#W8`038}Si0X6<-#>CM-=B)f%~3TbEK0!9N~O&0gb$+YG-xrHC$ z24(zQ{6o4a5J>Ow4rObFGkk^wk7glR?%+3MxFZN=OejNG=VY1JmCJbmIsOtdT$F;_g>I^ac)j8Ad1~n?-Fp z(3MQ#*ef|fvXXK^$R=kMsHWu5a(MILYPZ_>ZWH{wQKh+F&@^e4E7A7LSfp6tnfPAt(U`w6yX$?eI-wWFl=>fnmr31ug>j&jd#kSbtFyB1k2Xim7_#BZ!;v@c5JmHD>WDvKa&HfF~ z5+4ZHwK85qgd6`RW-wLx^DDlqGP1AuS=>YG(8xzwB_`Zp7O{xbG5bzzB4f!c@N3d8 zBy090`5ET+T>KaDZ?!;?<)2}WW|3K_XaJNk;!(VyHNHXj@VD@`immA|xR)kyW1i7O zk!+-$SXJrUOuWilSlUKm?tF!fquIk6ZRA^PO5VWSyecvXNrU6zP<+z2iZnihXM02+ zA6IJgg;yK591gXyRQ@pe#%%pP0s*}bVL!)^>%u(kvwp`p>iv|zF%W((RV#hb1wKrM z{n@$KDQ55RfSxJG-a(*z6C89wXWfiCm*dE1Uz+jLnQR~*7q7?Mn^ZFZ)2P;bhTkct z(IbiaxS)9!vU&lJ-WG4*KMFcODFC#fT#{WvkkI_jb`q=ZK zu_xmgCI6nvW>hObocwgubJDvG8=dr5^bHj`*F`Je>F*iytj1s^pOK4Bo)?YB8(+B7 zIB&P;$~t&3ou<=BVV|@dIBsR>^6uhv_|#QRl)l3uaad({BlFPUH=3M+hQ24a+27Z^ z`6kEzee=!9v!(ACphV^2BuEAuK|G6(>1M`!%N)2-t6H1@Cw%GP-mmJ+tvC-Lenb$pV#c)D5GRF zt(A_&WploFm1YxC#C-t-730F%BWgTk2yw>~Y|W3A^`uH*Pz^tvjfU^wNHi6#(?{@Z zJ*88y*}7<2w`hLA7tq!K(gr>qpMO_^M^_mjeT5FiTLjUf+B>3JNogF9jzIM=lHRefyBgrzb=sq%ti5Qr{pC#~yaHB`Vo!~(lK4mIgI(s8w{e5XbgM>Cqm z1}aV=YZX#_*=Uq9di@|9*c6MBr_fjOkL!T8te5F+2(NazZ+B>3pYFJkihN$0;3(?d zz)KCeZR_=&)SGi);KT^fRJ+4OYKz^?uMqv$U1>hK6D=(2XjQ&0CKYTIbI`OVuD3(T zaJ>rqdX4rK%d@M0o!5MVNlitL6Sc0W{b^-bb@jWdr#;MSUCni$j5tE;It7%TO&maN z)5hv0;sncgb7DL5qHXJ7n@bWvX#l8B3ef|oWW0CG(!S24e`k4l&8zzU%JVx@aNk>e zj-qTY{I1SkfAp3omSSCZyk1o7afPV!eyK*+9RPkm0PlD^IQlV-RM;mv{ZoP5N$+H= z$Mdo5?VNi$K69h@9TkEdO)nP>;v&jwqmvh_^u1X~q1oS7Z%ycGZ_tZ1!%aH05&Gy} z$AD%pph=3%Ozds#>n}b2%(=DxCjTfq^BS=$E>`28&>gh)7xY62)vjiG`0_|`(gKeHmQV3IXTlc%W5cilQws?o{Tm(;F#G84PACU3d z-bgYlDMtI&1uwP)*?*T}l3GfL9)GcH-+`n>y-FK+cD|Dqc2;Qr6^Tu~c!oFUDclnw zQeMG_VB44%@w45DPtvE%4DY08^XICq8O1_?l)}gndqaV5DGhzmQrnLWaWsz?$A!T!Ba6;U>-BjNDa)1G$8*CHt;7rMSl=0=|R3R zulO&?+XAgRs82fhcbJHOfqVQxp4xwtp2WudWZ#NLe6SOGhJE4@-pDTw&Z=*v8BWpz zBo(p6V=7(ehcM;HH_}9W#-D;`TUbCWamG*LQF?$L|4sZJ--;gpihqSkimsAB$SwK} zPvu)_;*8kBT6(~H@!9+n%-{~b!rp-d^u72(UcgP_1y4~^_aDOdc#Xb@Pte*k^eBF< zOVGL5gm=)$ER}x~pR5P`JN(zMZ%Zw_nji2&dV-InCiH}6hCaaG;g$ReR`85JsgS8A zb-Nvw@!o}axrJf^Nbc+v=~Z4>phmuhHG0BJNb=H!7Q2*RtW{W=M6zd8KB;}|YReU9Dn){r0BSEsc~7wf(V!>j`D+~fYuy}Q*;$q^Hpgc>jY{+9 zi<{%(sm6wh(WTPRw5Ud>u?YPfTU6dR9jOk+%ZID17++lr@-4Z{J`xc++~?|Sq!TO&J#j_n0HKH=xN!TLsHiA#CZ@2^U~sT?qGck2jNRKn9)M@ycwWNJDcH&_DPuVdHVNv_>n!97mXT7%Yq0_E8J0T~n(ka0ipmH2e^k;n`}ZdQAJe=oH+f@I zHnC-!8b-}fPzH?Rz9PJv8Zp%?Q$6^qUbd#Hgk~U8Dnd&K+omXqC0AL^qzYsrZa2*G z*#fd0Nr}m&2{9Q>t+52}VQ&XMeqQMiX?Q8SliGkygDeLHx zV~uQw@+b<{vL=9HF-l{{Zf$4Z!Hv=mp0n@q3bGQSuVhS@iqgR7R}T^D+g8(VE&<57 zv^2~fby5`5r+9+jtVVQVjkbXNShhol_I8ZDZQ#h!9;VJskqD`Qh1^LNGv}1)laknk z@ZXAH=eX!|dyg{Atcl%Wq)DpnLxYEyN?Nf+_b|a*+@Z#r0`gwWrI}6jHTRD6T6QY+ z%^S3k`MptHW3csf(oG%=H>HTgi}6=!wRb*MAh4))7VWHFIGpjjO`vzZ7>V?ab zX(@~yUBU8bUXeIkNG`4*qb$}XR86Vo5JW0k3jLKXbwhPsk}*ux*@wpCU?#_;x?+|O z6S92fXY*l&<MoC+I-#P0H!UZ4SvJGW8p&4$gKht z6AU+|@Dcu=^aP*qDu!QqFDKMU`?`*4Ln4MenMZ8wGP+a$&atB#bI!dG>5evmWbVG zE1FS4G4-^yiN30N9&yRS=&&t%0=DQ@(eiP|y-SB6E2UbC4--ZMy&X-Uxji%hT3E?n zqLXAMW+Lyylmipo$}P<8SBGMe9@LxdwC|c`(iaaR>gzerhwg8r4asUZc#`W6Ritbsh% zHfOG*RXIlI`g*3qv6k@&T*LWqrdF*D@ELoGbDq7^H$oI3IwEF(xJH!tuc zR`4;SG&J?Kv~QH<)R}!{yEX7P)WgSUpF_r9jK#gcMb;A?*=O=CX#u@x$+LP7x9BTu z$xFDETDwCx#L?!S^eTQ<&elJh2RWgy_!roc?No1vQh=Az6n?_@HKAlf{wpbB?N{cX z%tD^UP?WLqR%wsBdaHy#+fIEHWReHp$IuA~1&@uboDS8?L$~L+kXSP;!r^?W^lu$- z7(QP%1_Y>ZBSjWR;ILF*GKTuV15NBk#UdOKyqroSKLRS|Fi*vVAu)FjWyU7)7qm!G7EC^rb@LBvpTEN=A8(pR(eKdc;8$3_$?FCw( zFXDG%ZntOyDKW8T_!A}e=>vR*jtnWoU&yy&L0*|Ysqw)!a!-Cj>%|Io&{^c&C2Jw?cpcs)b@<}WwLdzohXc;X zAK$g;=Hplbk2L9r!Q_ZOAA_`ONWeiOaC|48L^12Q==pw=zC`*~R_#f{$Y+jh{nIBj=0YJY>Ebz0@ss(q~*mY_||s9eQb zTm?$5!!bkyqez@SfZ+)Q_lItovmNT%8c=z-X$F;L%i%hP>VICfin|&QkSi8Hp872g zk?Fm82!wPk;Wi_QeP8_tL-uK;O2!46yHxE3yZVbw)%>ur9@oGKh=d0 zFsOSRotqw}cvfY_^B~&S18eav7%9->dwXSX>zy!#&YBh>Te+KZl}v5%Th)g?9$O!} z`v2$Bqtc>MEG9T`|8G(A!k^&21{7CTEYI*6Z|hxs3pWwjYG%Grt7u_uZ*YsZ_|4@> z`2?R}T43!2Y9F@xiOLH zADh#@A^E@ZW4>a&{D)qx4yZ$N?^Gla%&}cLV;($fAue7N=L#+CWyBIbn%|q>nVYIi z|5{P_Zz#s1mA$MsnmwAJNBAU`1HZE1`+0&_yQ{Z-DybNy=-I#r@lP<3e-*FLxdi{- zS5{1h1>E8}PPoOdDhcF+>iI*h%YUh*-VX0@Q*y8mr>KLMD3#W6Bd9WMwSX8V<^ks7 zNm@&xi+`*^+-t~qBf^7!Q^%H9*r)__3$IE`zzw|CF)iX`QcazmacKMffQ6qR!BS<2 z*wwt57VmL%Iuq7CYk}od=P{4T+Ax-XHy(M7JiGT zBo(#$1XD>qZIA&}hLJwn=c1|F|JPAq$-JKPwhruFef($Q7rQ%hEd!?zLLgF5}kG26z`(7aTDv z)A5!FcXq;iVo_n^J#I2B?o7(MvDVS3_MrxxtvAz0o>s{JQC;D)M~%r@b4QoHXn0%m zcbx2OeuHk1|Jy%h7TI0NX*cGj+7lbxlh@`>g#;4@?iuXt+2{`6iVc2{liA})q3^6O zqCtj7GjYjnTBCW09`GwnDAV!A`B!^l{}3a9d2tc?+y$|-z<)e7v+U1yiyzDl&UQ9m zO%ECy=fnU2AOJ~3K~(o-*$YrMcoA1X^(M?zR+LhQtj9D%^$UK(l`v3=-WR0S!4tHyWyufXM!ZtIgI}sXtW6~x;vO>oDhq#tBtC=1 zgLE%|zlog%Zt#!7@EP}kT2-Es->~pU`9;O3dY72NGkGO;u#!6T)t*JDUfG}*bkkhE zCw~P{D0S=w?vy*iJuMu(vI~8W+HwicO$6w1U|@JafSL8KNnlJ zJ1oTlk5JomvQ;)LeOZ>M!z=q0hsC6Uo5-UIaD`aG8`)?9FVLvuru3?;(UYpS(g9g= z(&Ij&o{#3ElVaPDU3=t{$%l&9Sb{rf+9%&or}|x|+bI*~Y;G=*JLhHHb5fB`@hPX} zW*=$Zhlb7}=T_C;=0ll#(CX?qHTObtug`Kpb)gHQ?}bIm4);YmYJOa$m-xyF)K%e$t_UJ7S+*{uDC?TV z|4MaOTqy4Acpd7Y46O^VFP};8eX4f9{9O3-iWk>q8lj0Vt(tX(s8imzKQ#foU;ov+ zqVJ1gP}c&%#^>A|f~L7h|G%g|KQ@%UbBT4yka2X7zM@O=g<}}(!zXdUN4AD^bWJW( zl6>@Vopggv&uVuXc;I(AJiKo`x$-bx%Qx1$4M=^5h)KtNWVdKi-(bM=P^jlK^rftjoRZZ@n^#i?TU7?XyH3a z&=+aNz-!X1Zt`~}j*m`ddAD$U-9>{LDN(L2d&eS4JC|}&jH{s~pHxMB7!KN`h;vjW zr>7z$jOwQ|+Mqd1@GCMjrU{6!Sk&a+7B(nFXK3+k=;9ld5b|XAao$8Ht>DfPMy=@x7PN*=u60RGRT8us zk2D)~$F+}K*7#hd3YHddGa6tUn7DLPvNRdYi!L;(K&wy0MD7DYE>F-bg1FJfwBVYj zy1;W6x5}k<_OPhc@n7GSX&!kaec2^ASif}A=RKiw`bhYHG&lNKRpQGfH6bz8VgB0V zeI(A|A@LZMkq2x=;BeW3F0Cc*<&Aiiwy-f%F~d_klBlQB6tV+rqltJ3^0?TjNQ_#$ z#Q{r+F@y^2a$N>3#2nu6v;CX7L7}0&twq?@B)G#{l{|n=ZB5N<#O_1UTKb7YwR$7w z5N_y~+5(9Hb5xpMU19VGSjN~BNa7wz(F5}xOyNNS*7hqbVGTEUu2SUP!b`+c6E?A8 zOA40#D>U+5-Qo9@;sWf2@f`nP{su2ngahyF25S4(`=VhFK#lscjj|je3XZgu7H0N- zkgiJ6JnQ6HHPTJcP2@|%rgZg?SVTEPo-4YuLf(}Tz!_HZTdBX()-2)<8EwVHIYswW ztZGV4fPnUelBZsdz4WTgZqY>7wld{z;kO!(neh#NHilQYN4+9nC(86{U@ymg5@Oq3 zxwjRau$kBt(tRQ9FI?ivr;x4>X~<$H z&7r~55COQ9U3wwh6#AS+BnhhxOAX$tu>M+5PHboSW*6QO)kRcO3u@`Grz--(EiC^t zigjK0{rkFfUH^!>UsoXpSH(={-|(@Ce>_-Qr|37Gt?hNvVDPsi>%Pa$aPC|76@%}k zEAn&Vzc;7iMvu}OeQ7!y@_vWlKVOnDxx)AkaDN|C4}84ojD7%|)IxgPsi>!0bRWh= z9pV-DFq5|E#-&HKv8JfC_izt3ZQ^k(lasc1izH9&D*rF%qbF$WThzH^eoSjfSW`b~2QO$P<}o5kNwWQ9Ix|n6 zqh&o^Z!mQb6nVuN-Al>r;d3J6AI%)~;?-_Z!gnPHOKq%~ttI{yZQccN1XA&XdqXp3fnlB@4BTRr3yDKdi|vl{5^ zKKeKmeE*2^Q=409^jzzGhmw$dqF1y@Ws8}s0%ORO3R8%L>}UWNq6{R(J(;_*XY|CL z;7MX+h$k!HbIePp_OyEW zmHg3U4I~$X?r=aaH}(y@N;`Wlb`b@n*y?(TUQ48(r}kEg#nL{pFuz${Vu~G9G5Zxh zgv(P}XYUhp{K^45JHeC4wTs6spYc-$5WYqs_kpnS@T44XKn_6hV>{efe~XXfH9a%{ z^nD&ceN*#vsYQMfjZ!9}bhP)nm>;0yS^osqap)_g!)Z_|MJUFxqNAEVJ{-~ki8sdP z4GkJ!id48FUf?(k`F!#5-coEr@qmwX^hXW&db!jel7W5Vi=;+EjgKL2fys#cqho*x zr#I0_2Eb(s%6QqNn$YOWxcP75fT-Kg3$d;jVKTZB#^B421kOwV2mi!z^edx!182ns zoxI3dvuaF}Jc&0r>RNH=Jse(P)ahA3iSU>+W&i!`(fkYSoC#O`kKN8TJ^<- zc`0rl0(&DtF*quN0do@d+*(H{6M>2zys00dhZapkaSyS|j0*2W^pq6Y9&Tb)>R1Z9 zE2{q}vX^Q?6GdAq%UPP#WU43=6mx(=IjAj2p#~yTlC1jJewYX{H4(|nUb+#ocF^0m zqC@*CR9B%4F~f0(z2V->Agk&S(KM3BU?Yqs(3K*!=N^&?%2<)ByZKFIyn;D0^e!op zNITS(0+2gtC*Q&y+M8z_i0~|FYyh|0f{ZAauPd{d_T@O81C;|46%)V?kRmvDSyFb@ zpdD;oWRD+UCSuv{R0-O43%&Ig3qCnPwi>g2qvQaSe`}2-nnvc%4P{cxGH2 zyY+bt1<+LNNo#Y5Ca{w-o)no(YRv+s*de!cDc*I`7Ri2uByGaa?sAG2a`37GTNL;5 z&f3BTHCAluhBA0A&w}4XXUz+;BQ`HGY^6=OkIl!LHaV%;S!?vlkd3Sb8scOdPI3a3 z?N;pSthX-@I1x%2tIZURAJaw9rD#g%oO;nlq2HRwjnu=&NDlgZ?CaJPC{;3{Uz?<3 z`Nz0{?veaMX9Jo?k?rS`txo#9zS1ha?gkuc3Ob2E(m^RXmc~{2Z&#Gmx`SK1!*AkEyj6V43?_J1Rohn7*45y9xPdjS>qdGn zx0TF3tEHhxz;o#x>J~5Xvv`);s+FEYKyNn4un<#uZSN|ZE6Y;_GtD<>Dqg5KAZYMb z1+CV=b3`DhG%|a!ib94xg@El$q!b|v<_?m0kq!5FTFvZh$YueJSOghK7Hr@xS{k)^ zoTMGhop{dj;U67_W;s$n#8%BG3TR&H>+?yu2{C31h{HjvF z-q)b=3@h{mYj}i2iM3y#ExC=kTk0s2X#*2$j~hjvGgGmFoi&G@ymGN~ZR;S@Kr1yc zvs3K}MU&u0VHr`PVD4&ZrUw72xb!-g@_OrNON0TDt(;-5;FU+|P&2%Nq;m75LS6IT z*aSRnQfzkGqlI{JSw&c78cL$2i~xJ-24YT}hO`;jP4aHiE%uX|*3*}pBy0g?VCpL) zV2|d9&9%P+O#jU$fxd;oc|VCt*EQajY2QQs z`3BeM!m0c34gd49W>}_D7!o7u`EgHr{JA|+O^>yrqV2F7<* z$jM`DSxYaG44=8LTiC6!m`9quw1r!k*n$4v~+x znukiHc!5^FL%`fp<(EFAm9`uCag^LR0K@M@%bMi0HTR+KnRs%22 zf41I+Fo;r8w9v%G0bpj-jgW99+ z>)n?-!b$OOuvlH~&TbP)nwp7>oFmRk^yC({3OHf>qUZ7qmh!XtJN#ArCVmeq@d0k& zS^9-Qk`9VxclLjXjrb()VTQkoFX(6dlYJ*Q;uAFHtKy~fRo)Aev$(UBw6JB~tY_u> zYKeXX%P(*bJNX%Iop)kU$HEWrIjNEF;FJ9K%v9Wq59HQbi(lb)E{wjd{YA_b;71G_ zdm|q3PJDqM?4{Jo&v+h70m zUHEF>+Dq{V>E{wb;tt+aR3Lwc-{EPUC>rx<|5dz-72Mz#@kxPfbtCo;iZ4yDqs3I( z=78&ZidwOh-(n#exxtjY;vZn@JWpCjAcXWLKf>1ZsLM>FW*yt1gXCDJHLx*%eMo36 z_31i*A62z0$Mr;$f23zlBNB?ow7E0k_;=TdPCE0~YEH*N@WN5lCmB>o~LeL{M>b|Kw8{A;a@JIFXMv<|p|97j3h?Zqemi z0kH27X>@i=OQ&r<>j=a@ZnK>UNRGNGy3`;!KP(^f{VohI@3tUy$%t^Fxp-WB8dkwq zu{@(;Gij;mM)Ns*JkI8Dk*Z{BN`V zsnEmHA?CV>TSsbcf>=GT6PIeXZLS!fadPkARSHc(Is)2^0B3{uzZ!?T${HHg>cY$K zrjirV2<)@R)1u5ROq)66a+!-$x~WFg+357`>$g&Ui*N}{9B6g-qSZnE-&6q6rX~b# zM^3L2s9W5`><=jgL?*$`2YgD@XeNg@4W>a62~=KKfeh?%q&tQfq>bW>kxLJwBC5+l zK0<~kNan-wBr&O^QAW8nh4pWG7wdR%ijwgtBe$zXt56?rM^K>Qedlq^N9%d-!h5Qq%YQY*rlyb@$aEXvQ4AVQ_h_U zrxHq5KmdtAcE1^W_zj+`rDg?pu%t9C8lODih0L?{5F3kOS&GqN|b);_(ays>;9u2qtc4+WL zGKJ4p7MG4B^12uGv5E&Fk5(HJ6P0LFDpq9%pYTukN0^G8coA>nRXpQ2+#et+@yPfN zf5JB-vD+5D6im~FOe(`fd=Nj%o&2?Ou>^O)oR#*H&}~#baK>+9T|6`~sPaKxiVX^J zVuSZ8n4L#Ql1e~S9DL+S)IDnkKv!`>aa?vV#}UO`@)O7@Rd zM=Zay3+`ryCHHV!pR%q7FGu@)R>51yUFfmGsN@(2Vpzt^hA$Tu!`a)EvAabF{;OE0!6v|@nT)M+#(`gx`I z^n*U2p2pcB_c)G(4!zc;TZ?D43DF-!RAn!*a^Rujv$(4uvN2a>cng=g*iB&>75I2J z%&;Pfy+|c{!`TdGxTg9BqLS8#Bu7Nbwx%3SWySZ^x8_by5d9kPQ3FS!?G*t*(pNFYW^UeVd5y(W&TL)S#1*^!*p|cyl$Z4b#y& zkt*Cdg|CjV!@4q{f2;U$d7!`eMPE4lpVNRgFU#D+c4X8P_lP9yQQgIr9dw`{=|FTD z@1#BYfg{jtCI5`oqj7&_vekl|l-(1Rdex{ODA7b}&CG?8u{IOanbxd?a_NTFjh4ZC zys;D*8MCN74H-v!*vzPa>~JQc)_k-l=tcT69K7=!Zbi0Va$2AmSB<9CoAp+(jdnJ6 zmmTn*dC_KM%ud?Cz1`rzf@62)OU|+Cdqj;5?(HosaFQ~-nYo$USg+Po*2?~1L*7S+ z+gdrVWU{k!YwxXFr!{&auk1%ViQaz0dvs^8XLiCCEj+=}tem?{&w*LA#ZPv&@0}Mo zgdq3i{|P=CnWxOZnLi1{2l!X~P|g*Y z9lY7EIqxHENc5tUTGIwfG=(&z^j&s#m$RK4xsfIJrb~n+H>P-3mQi>h`b=;2R_7##!<6aYuU~j30$oM>{Q-2Pq#wW)=;1VCxxrJL4oj zqJ?;pLyNE$NITo)oZKWnz!Q2COY|Y}C9xHA>4TWV6aHET-~1`D!oNE2@k9>D;a2qW z$FQ!Z(1oxN&#=NfivHlMn2WGqkLVkDg>T>sPG~P0^Z>8%V2T;66FGsMobNaDqy zU3H}^k3x7|5X|2f3;9jm@rB9zEXLj(_W+JTJ!1*hsayM`|3C15PF&f|s9Zj>#_5o2 zUcWVB>6HR>8ewzJx^`VD}U6u$;WjTMmc>x>Vh0nYDZJ|k>6u< z(gtSbIXD0ECB7H~dvc1>k@7;$Rt6vAdUQlbySj%t*3iD6Y;o~Czaxpd zc2U0H1mJgVTl$XIDIabZbQ;`Mdv&m$RiS~x&7Yg@f1l)aS*NFB({#8&n<9iK4Ltz3 zF*-RjSs;>BBsFIYpHL6xu{VGmm@y8*0RgbU#_$fa%-XbiJoWx>*gU{iU=Hf(c* zGpk1d|M>(n@oKN(Q>0MZjosUgO8+=Zv%(||*`}Hz507e*gd!(kVPvw3z<(Dl0kNx_ z+zpN{$OGI|(NAmz;?4;{`lb{RNwMCCh2pA73J+#wCQAc9TD8Su7oq61a6&yfT6Gof z=M45}gYIxsJQge+S0Qy`Ui)Dka^;71Xj?X2?u%B}3)~B#WhCo(Jdfv{wMKiq5H|%~ z6|PW|WwDlbrm2RH(8c7+3E7H9e5}F36Nh1iC-GM2;wdc91d=@!I?Sla5(S{46mDqK z1+m%(EAFJ;B)huSO0@?17TvE@$fc1!I+q_%V_YQR0&dN8FgC<)Wsu%`WZW9occ(!) zCpJ7Emvqixn&;EtQOu!_6#8Y1%tvYvRlnsp6ZnAL9GM1=0F&ps0+-OAg--rCRJu3@losq9qTQz%8uA9=(Wl6xQvj*}+s^)<+-?W(rfZ#A}!Phsv~F z;Z-$cs2){twiftD6>k0=xR)1rK+NAF ziLD&;-oUsmRs2j1%v_||bCszgTmoOwZ}2G3&?7)z!z;SQ(G?5lL{z3;6iqDkm?GF` zAvWR(AogiWD&&d6x_d+TK?g-V`2K`2nORp%(Z%VPtTN4S%86u{5A|$uapap(~6uh92d$}O* zTM+@XkwCkscj#2?BS)PGv{b5>V2Wzhys)q?B<(o|>)LCsHw%X+oi6O<=(9M(=hl!j!g`r>Vt{ zOq#+QzJ)~E+beQtr(6rjPxfpnB{t070I z_o4(9l*MMQe$57w^Uft=vbTD&#htZIN~Jzt-n6$ixPt|z0JwA60HA$%QpK%7VM_yh zZ@)+%VQ>C21R|gWe=t*M%_Gc&@mH}hZDt{DQEUIG&|zpFVYDWpN!@&Bc+H+m3$Z6p ztVS|^su;0(>Higb?$k^z;n&C%5i(o+tJFw8l&uqMyAyM`!^&i-LorXa_OJF#dJqk{ z&1oy|tUFoOL?n^z&VCkibR&AHH}izEv$TUJIa~M9gOR4n_bAnjrN3g4|2d_5+@UY< zAJA*G;kLuP`!Dc87QBhi@Qg4^^9QklNxi9hw8eY77gj=KIh*W|pK{>kLQ4`dxjg1XuXM%6wI zqfDv->qO@u2|3}2I>wG*n-tH9Y_WHA;x&_}$vxgFg5v2S`^}z5$gp*1=6Egrg5U7Z z@CWiOx))3IB>y5h9bBgtJNP5c_9u80z%TNj#6L?9l9V4HnP0)u1AdZPz&yzh(NIsm zgI9QoSZQeNN3eK?d%PBs=dhRNa%<1wLH^A&;#ThL&*Bf_7CQJ1ea17q6cRt!|B?7i z{yk}0mw&JFgL#y`z(P#yTlga0@U65C5Rmgt3YsF**u*CZS$x31ppBT5J85Z$%yR4i z03ZNKL_t(9;7R%cFG>Qlo8*Khc#V^^lz)Oh)|zvl2ufrkf0llPX}RXPfk*Mzq&HaM z8}V%ai1!NcfcFaSUjU5(rb%miq2kf(qYnXhD(k=-^c#M|k7$Y~Vhs<88F_K&{XqVNUjC}yLHn;u8U~I2U>)Irh78Z)^N%s*=bK0!ORo=70==iL_L(->mjn*- zsE+Jox)I0fwEj@*Khi|2W?iZ#XvIx5vPKROofkIBI&6r~uhB^m--X3c+?(AuWahdq zjyNgnAJ|Qo^mD#ckUhyO_DB_S{yGO4$k}>HqgwD0d}h>L@QM6HmqAawAI4P(=_7W4 zF1RI5`WCum$hdZTeP!|L@3Xjy3j+KL?^OpdealyI(NN;!D!k9i@h2XOqru_ijE##l zta0UoCax}zpPGE#|LSRnhRMb=<;^R-?vlpnU&$Y1H|4NzVBDzGY$@rersMF)*rvA?)BCTkzpk%E{;KY0$C z+ZXV3PGo8_-sloL<5ooknyW~#86p9zpu5QbT}u4@XlLG3PW1eU{_p6{PI4*1rYJ+K-`2NC6nV?MjwF#38hY(imEBeTpLbP6*}(+2cyj1W9PaICLTpew z+PZXAY^dsKh(is2{Sxk=b!arWtslW7y=ONvJ&aFOR|8;kJ=N2Zw0Tmm;1c(CTTjcb zb}t5Ns(q-8^z|LPnsOP##T@2%2uub#7XbPcr%_aIZzeUyc5*OkjAeia2zU!`MbXTr zMxI98;$U3J6=T)be?#PZYue&AC<&#>QNQzWzqy``SBUD;4W8QaA^bep{k!T!nb&*1 zulCXi+?wQ#W-OzT-4H0e$K2y6IU z!dK~Bq`PN^co;u})^f826#U9Re@fAv`)(e>VP z8YNWkiqYioyG@nJ*H#=e@gw}fe!y0Vs$0VoJSm{|hkvGU4 zq4EJfg;p!900Qv<_jL$u;I7K#Tk%$9?D2ryhz}46X>WB<-GK28zO4%P@T0tf>)_T` z%ha}>zR*X1gudc#C-^}uR36^2?@Wv3rHI*IM&_+qt+WPj`nfuUsB!4Pjp$T*haX^x zf5W+i2}cFLMD^AT+oH#8M>j}QJC0q^=9dXB{_RDUvH}rPKJu!nb9N&Q{<5lk=h045 zaS2T8lrd4*kJO>ISa#frEcT<@Ie0#b);}=`s{} zWYwJ3TzA*x^L@3g7-KhfWMZ#j56gOI&Q-!aJQlH*oq z`&3^yoBCa${Y8nPbT)+RDDU@lH#*XIsd@rV%!NAk?BaI@@T-Hq-`CJw`Rm!~`ndvp zoDX2=vSs&Z`{hx_b3SMn4`<7#Vm7LC_SE4$sJ4bXXl!3Umq5(3zRsY!=Y(_5q zJ9G=Z{WX?${{KmPuO>;dD@pTHGjkR!Nfm%DbfM8QzkYtkitNY|k=^Irx19#6&@+un z7Q~5>tNU>7H8*n-k(f!Thpb3<4|5}zoTK`wTT`VBeX;#w-d1XI@S3nxz1+SpO zzmY0so90bMi-Q@zwgb4R+Xi}e5DM_9_gBmD^$8HJUy5~ZStzrx?; zL4Jq-C|v1p;wx#eW#5Y*<<{v*ejqL6j?|;C!tx-N;!Z|>#>SCd^d2|(S-KMkyTiTQ z;xN74!j1SOclJB6kbe`#4{$HQ{{g*Zyo4Xoi}*@HZYr%RkhYa>S6*&0aPhFcQ^6?H_|>pTo}Bu7x+mYNa4Va2jNEA z*&;P!ka|r8KpB)gFI`u8GmwY(l!Z#32-Hsq_mmen%_3Pffl9^StD+K@r!1_CyPS)4 z#?$%xBuHmo73I9R@7D@jo^w*H89aT)$(g%;Mk^mDBo@z#hCWGOJ~IiPCN%4f803p{ zFBhOA7pmu)SV4|O%v2UV)$xD}u5E5FAMrA2a;T|{948C0YM#ZKX4gQTN#;4DBF;|x z^n*3ontn&*>9rNrMQ4e>$9bxm<3%T$@u`t=qA;9B`(9YR`L#nmmb^JG!8of{k3FX; zOW3|7M`VJk*JU4xxNt@E>Uq}nPTrfr3_gQCol<>H-laK2*>jzbk2kp|36JvSD1zA{ z^yCs~#;QD50KKX1@p;&mPCJV}F?mc1IY*bkaD1h&3!VHw)P1>n@NYd_uUv7RJK)U2gQD|LhW%(Euk099Gf5fBf%HhZ(gwSBNFyS4ZB!Cu)9r6x7S zx(!xqwdTdbIkz?icN<5=e*u;0BX2p}26kfy6{m-V*_owTI@e4aT*p4b4u5y_r8@Is z?(K!Wwd1{&J;{IH(O#LxsexghG^Nc-{BnGC-1~o+KR8@Nh9Yc?D{Ol zJN(`(?SSnJ;v0OyZP`%A$r%rJ4L`yLUc^qcFo=zKCsv|2J>0;9v=EM{0O^3*h$oRh z;+1(e&zV%_9Zq4UV!9p2`OOpFrI z1MnU{;Q=qfii)#qdufvShC4YZVc-te@~zw|=K*|_Yxxtd<+Y40=Mz=gZJac`Ec7!u ztY|DI)$`cyS_~3WFIfy>yAhR~Z^6p8j7W@FNGqu;28AIw$mNXHr3cU|vIM=$m8o2aE-}L{u48pc0LL3xw5uyvPfGzh)7+f=HyN;}I=Pd;Jm&f~U0-f z=2kSKwHJ*w_)qUdTe&e64svcjy5nt4r(?gMAN+lo2*NyS7*M zCr8Y$ZsZPki5=dcg_N6!PPQM7&8?Ln>_JLIAn-Ri!M(jo*esLol4Nbgui~@3f`7K} zlb_6g#h+79e=_kXXgI%f`cL?syf^=m_$Ao!(!V(U4zDXqDH!%c`ts!pJ9Lx^1qU9Rq7H&4?I-*Rs03-E4`C`#^Arf z-%%?`zJnhs_4ZSx2fVD*D-BNHaB%9D_N^Tc2$hE_P>smx*}kp3t5WaOLMKG(hMQ#Q25$?E0#pUoFj9tHIMcx z);xKB3!^gkc2$srt<%!!7Js!78zgyKMV^P70CtI0#Xp6mBqi)YenGB~^a=IZB$iNW zD!s2X$j`XKHxD)zq~U{%pNCAl`W9Oa>Xl@~(G%D3_X?eWA<)KRbsPNZ`n%%Ri{dxN2*g4R7S-q6?E1eb9qL(;{4WL-KsyC|q`fkRm&Wfa( z7g8@z^O{ehx-<>@5_SEIgFe&fr%565WW_K^4ZV<3bW#n}q#`{3@0c^}d5WCgD0ZJN zuzVCLFwN$jq&Oc%5NZDLh0u1iFri|HZMXa0Zd;s0vf<$W&>Gbd4huS`{DDx2O}fEnkyK3)=s{(XolbJTFh zZ8Jx--7zJ*40v76#mzU>P^Qi42DB$v_J>?w$O65fd^Sb?Pmv9l88YD1S^nRdm8r_w5duAp*Q`yJ7LF?he)Q$r7(M3_)$zI#?Q9Iw_Cd0Dx;;TgmI{@YD3^t6_e!g&>$-R(FSFlZkA}lW? zTD9C`ilv}ZF*nFNT;n~CqI@{nXYKqz-@rl)Vk_?CCEnpa5|wjOYmk3zGnlHh7J9ss z7x*^vlVN4nj!053a5u>z5YgB1BL?mvO6{^zUfL;`p~)<*H8k;D$h~+rTf4Czf*W4= z6?^l^p{n-EJXklyTeE~J&&q+UjSqqFyvJUw$jO(5(B0WvduJz8TOlj{48N7dLxS3V zuzxQe#G)h{FJU!Z98Cr9r*1~i$77w&2GXqBKGS;ov=hx0a`lvQptr`x%l;_OQ3+gF zb00OBKFzHh{p8F~#VK6q(klD(1sdfvsWcM;DceMID{x*gpgZ&jc#j2pXHES#c!usc zkxH<{@9+aOfrY^b_#{0k$3%@tW+_)=AMgj-WE(yD|cdrKs!jXDrTGpwcoRV#(1;(TL3|M_X;l_8hZ5x0DR#>a>HRP% ztgX-nS=lEMI^@Wo?6K_#ymxkS?)+bG0ZeYvrow+=cqK!d{aYHM-X}V-5KHAuqh72h$qL4m>{!gpk%QV6 z>xrNX%CLA5DWWbR=+gzwryi|x=CcnOcpEQX+^jJcep#M+znu)CAPxIM$k`j1!fp($DG0Cc6 zF{%woQIxNpT6<}1C;I@ks~&f-Vpzczt?hc!XlWyBJ$Z@9rrV@kmem-~8*9S&rUN`? zqE~vxhf;$P{t@5Vz0+sAB3In%WG5EM1KQy`C#0%U!o6vrPhRGt7*1^Migc6G5QCVF zc}&p^NK4WtpQQ9cTG)~D^YeT!;-OqmG(MPTJ0;(nl_QwJ5zz8t|7y1O2lLNx3*W?FV3$f- zSBavp@t^E}Mw{d(_&59?c4Pj<{0rQxs#IYO);=;_?Kb7Rr+4a|qFA1y^lw_HfmE3~ zVY??f1Wr=a?PFV%oR6SX_MMU^S`p3HZ<^0kD{>CPthNtf86NP?bZD>Yo7j=8 zglMD(^JnvWlH^~Veib|XQ1PGe&rS^`(XKK$)*=6u^h~;kKZ&*coBZ#1kCE?{{!n52 zo4B(VS#q9%hh4=|x{*wJu?4+YiT4#lulVcLRfjxc@U!`8GEB4Xxldz?suJjR} zcq6}%OuEI3u>VvT{wBZR1$+$o#-zM{hgbH_Y~eN&1>IB< z9vp~QtMaOHxB2JJHhMSYwJ@Em&))g7~IhX2lx>9aCzIT!9_2yL#@aOT$$#1L%MzsTxR23U*+ja!SOO^$QPD|{zt6%V{!j9|4Oso z($P}t%MMeWL2q>OzkaQ*YM;qNd@0!3^F#6}hxp{lQh)lDeM!XqrUliPWGT8<&OUqR z1xdRm9S)!QLZ%nur1ioqf$`eycal_bVinTaQu=g9arQlDydNLYqSjTb@5wikE_9p5 zVMiZw;+*~wv#_pj$^4e5Sg-nQc&qVt;gyANGj1$BpuW@=`%*6N|MzD2sv%1Md2|~0 zv3Z>)B6%mPGATl)dLs88PR0dWb}FQcviTovpT|4?kgLNgwSH9@Qgp`?>(k>!e+DzGY^tWWfEhv}9IAR#`ho6OYKXw&a&S;oz=>4g98*v)l46m%Fsh zfCX=1nU{oYK;@;T7Z_d=0I)?-Eqq7n` z9K>}A(mb=z`O0)Xx0YVeMd<3dd-2osj|{Yz=SjaYNxovHdZn~=vZgrCD!5i4I$sJ+ zj;1Qvs{LfSTfs`1@wI~k+?e0n@5((qwgH|>^*KJU5^M1eZcEy84Nvg7*n>24*&2Bb zA7N!b;sfsSfbSwS+u@Yr0q%1$tzYmycES)k%6sVGNhGPt8PPQ2PC4(of`hzOWVgD5 zLzc;BUz!T#{0C8?Pk4)$;=NcD7Eljcv67bs`?H6qf+kCu{gS(qEj%KZ2$mr;*)xe{ z3oG$a+QAcSq^8^hZQ)e3g{afugFHe)5gSFmYaX>IddU&J;WG6EziU(KM{PdCBv_Zh zJ$k({^t}|UT#(B48BdgnLrpp7{bc>N%*|kTnUqbBD={dea$MqzJF&`LB@*1_K>NJR z-jqRgS32dX(CVVku@g5V?}+Sph**(;|7=52X%cSms^spvOjYrx!A;2I%M9DVHuoWD zab21^g->V|wB0I0@bYEtj%$+fDo2-{MUWgsr(@EI%bm6??4Vk-B6}r zqM8u%3{jzoOB|EP1`dIkDD2?)fK(_(K{qXQzr?vomBHXjXdwgevLhAz@YE zv<&Z%*&_3-ZELeqN-2(os}9`e&1! z!-tiqB2UPQY28D79VuLc;RvjiDyKp0l-Y5OXe;mJuHvbx9-+@6#J(Z@LHr3XE53-o zz$0E({JyGwuG9p-r8K=Pw$i^z-|!9TpWp_b#IIso5;gu%A$Sz`LFY5Q{TMcMu@X0x zlKc`Kdc48!&>^buVkdgJb+Xjq%IODqmY(oZ>A~rXJyhOQ{(u|#b08DtO8jUa;7g?3 z<7L=ArCVtseXT%V;|=VB+$$Dxt@KrCQD*AnQ0;Vs*XCQ-?sGSV z6&~!3^ixESDI|t`LxT+bU38OCuYq?JL!}p~#%uh9m-ZNL(jkW%32+)<72OfkfGR}{ zc#A6%qz$Zb*kqB`@*ob@(sVG$E0P^copG~1DbVBNMrnLzRl-JfqLG?D9n8(g9y7*H zjnrcW%ci=j3H7UN3SI1G`$|_|>PfN73dC#*Qq|OS*p0vyJ_de_Ddz8jc zhli6w-We!xwsSo*`_1BBC;bDzwP2dnaAPs5Y}J@8Ks~SQq^uK-ivJONGR!*)HLi|! zk*O76c7&7FmVDXtK3yA~?%0ECk!)~Df&N{NlZ)V{$qjj}UE#CCI`0HX zXZOD@_*%}Bhfmggqw~O?9rJ}VpwmuRNQzE^H}rkE9VhGZi*NrPkfmQ=%j*qO@Fb&W zvI+62o#~YR;3Hn_VkpMc$uUb*W)An~%t>>0%W0m-K5HE4LZ9hqotYj_f-mST|Mj_9 z*w-umx-veWKUuH5_e~G@@xrxmh*;MWLSFXd9$7#&@TB3hJJrAd03ZNKL_t))EYb_c zM~sIwD5An*&62|K+d-GH%TBlsb!qhCoofUY;p%k_$*N40$VXvD;Bl(*)DF0JFiAba zaH`T^h|4wrDdUop-NouWXa>0)?9O=}T$4(VLA5nlwHcDzl!8*NSl!0PJJj*^U^mc< zT3%o|m$?Ip5P<$D0PXP_*Ww^-YN?W{{q#jkMg%w_o z_N&rOsmx%%*p1!h?2TEN176|^?@jHp%)8thgVWl zj;%Fc;29*ZKxrj= z2t&OXlrv**q0Vgp-^jm{?}VjRI>3wl)qW9a0zRtk8~a@@zGrvQC;3qxBHuib!lfcv zRPsA~k6Za!bW#s%c!!sEYdUjh-eqK&_wt^!Bki4fd@p^FlKdDh8EG%IqLy!QI8l^+ z08!$ktvFOHb3QP}wcW!~{2*%dNxaA_@j)!2YA?6qAg%BcH}X>6iRUc(rblau;se;5 zCx;d%6pkM36)fZ(-sc{hAMrulR1We@aP}K;gs9`jZsfK)>LqIV)~>VBt%L!HAz(Ff zl3i(0sRo-3UJ6M)Ztc#rxRxXJq$!T2Mr_3aZ*T{<@4c?1N zuH{xHT11&v6omi@RybfFgEXK81kf4LV>uApEJ6(${T1Z~KqN63$KofIt!qgF$W1a8 z$koB#*h3V^?2(>S2RcJx#bBWTPt(Xv_69DTlyC?gih97~m^`jjhte-;-`G8!r|({~ z1^5i?b5V!%dJo{@_RZIg;9S{fP51u3vLC$o>&*3LWiLF|u;^fK+brcQ|1aOdRu@aPMC~Iuwnty^+OF*9aIyw= z%>JXZ2;*z!x_fIHDXUaVZDDV9B`!V|z;V-b_TC(v^-^`RQD=3Tz7w8o#ypiHW+yZK3%u%BmMAyL zk(ziyYraH2iO0IS@*wJBT&a&>^eGC&6AX6IM~^U~9MN6c14$)Av{I7#kyxu@RYPHM5_y;#fdoWA0n zxkHWg#RlJrdnw`HO7hS~>7Dq7w*m1}S}X1C9)GC3BV66Sl^4>ZxFzl7cj7tnhvY-t z9oc@0SI2F|y;h^!P0HTY*c;Gk#d?eo@TBlrG61+#oI1}D_1Qyq`kJ%S`SjSQ1-P-_ z9g2w=g|T;>r?Wjpx0UHe5(8QDdyz}#+ir(rmzuBjCR%~=Ah;;xU>Q|FJd0m z_d_YcSLGlzFU>Pq1?bGy;A5EcXbx05B4wDK?fSG6a6EHqR-ryFaWvOi%rk-QS%2k~ zva+tTO>}Yn_lo0WE)u!8UeuWmedasStFr170sbY;^+m#!eYs+;DK|+MzQ59(pEGYN zIK393>?=M1Us3n#`dPiOPncwC>3pd@U(EWNu2RRMi_Q@}CuN(n8olNWXU+wG)>Jlg7RNGmdwSPRxm%9W?;$q15nThyy+0-kBoAU?i#BlSv2Rw9b9&=n( zG8=mk3M@&?YQz8Cr2nTLKVV`)r=Gafs{)y+C!bkQwjJGB{BKiw3{&s_**SLz+{TpA zK3D&<@=gUxvz#O=){{@@@-K3WRYH21$jK=mnz z6+Wj`ay9A7#KP1E>qhuAhG0~41Z>Mp~+m-JU2-h1p;5}Ys^nZTKVsiTp<(IBUyGG1f>Z;-E#DXd@NYf(Tqq>u1>xSu3vjv=()B@BIKn9_Ij zo&U%F=pP?1|Dk{VpZ}x(*>A2gZd4N!d|PhFJ5dFJ2X5g9B9A(nyF9^H*w5=^4cxl!~7KK`Kq#O|{H zCXX2Vf}1;(bl=hg$X>Js1ajdMJi`h;=GQxZX^S`UT#H7$;4N0s&fk_O*P6UFT}*o3 zh8t+gcYFsM_za2I;~gi*W^(=)N5Xr)qRaC7p{R38fKbk%amh1}LFuNXytE}mt}C{x zAqPn28{i2jq3-KElH}Jnuqh^hVX{DsG~hHDsrF^$SryIxYGSiEOyY=B(ZVOVE6@GQ zT(Q)YTWF8#60Ph>Tzmz$VDwzl#Yc?Tm^|DS;{wG{SQpjpx`ed1#R;*j@{zZb4O&-b z4VU{QK6V_^t7F|fZumr|#^tXtl&NGWZ>Qk(>tZh$Ci&7$IeVI1lz7dd{G{eMv+T<2 zt4Ydw^a=WWLev&(h=8t6ZIe)ctm%ewB7Y-}(@NfJw^zY6uN0>BmULZj>EHcofUw`P zBb*!SFaMLy-mYVj!DkeKqetIo+Qhe1YrbC7zj$I_KV7=c{2WU>lSs9(9-79#j~k#O z^FP@Q`NUFII47PX6_RJNFl%bn4$ExFPzI|J%@OV=$|9r>z@{ySuT%r>@J)fVZ@ZjRQ3D1-PQufu3iRC6|WW|6!L`G2X1)aW)V9`wO91);gjGMaH^6rSyugdONyxqfq^S5;*2wUW7U2tNE3f{3D0Fg?J1vyxq5ozn`o<-Fa&U>1oGIVJOGH)i9^AgV~=MSiq9du?q{M87U=@U#7kG@zfX z_Zay%^9w;qq0`;Yd&ntP{b{8#%|T%kYOKbvwgX<;Y!3indXQ|_{8$h~#2!wXxP z%ChN1=ZwNH2@0ss3XbVVf#G_@&SPBTf^0f<{L^v073|PVX?TjifaObp#L3)wCiD*ts+~J=| z?{E^o%Ae(4d=USFZ)|Bo9G6@9FXD@6s^I~i?4e>^QCnN+2u!-**07kgMhe}C>;%CW9tzypyV{CgZ{Ag7avHJb}DUYkwnI zwwe@+eW8|puH)j0o>ynHyRH;orys6r{?X||bu(YUMfve?s!*0E4b90Yn3Vw4SBD}6>SbTk3?K82zHRII3PFVNZN>)BwVd?5o zo%$!Hk-uYWN~i3Di?i7&&GA)Dx87Rr`#YBDKAW5`Y!y@jFy;q;62*MH>#iqapR>ID zN}0q*6O=haL0=33zINSxK{0fKhdMuXM**r{tKIljE0w;l=;P~I8W$TvukX!#J;LGm z_EbRsWs{uC$HB?%b3(8B|FTF=ig?(VW$TiQSRMP3+4b4kYv;+l#`4h#GRd_AsKZMM z3uj?2S)rc={_#ChWVdFZIY}Bsjgu|s4sHl)S7fbwYZfLX>YXG}^L18ZEeZ@L>N`8zb{)x6;D{@<9PGs$|K%X< z6#Bohw+82uhoCjVsh_T$oq0`ub`*M4M<4+-rZUb*;{2S3B>z1aJt5ogoK3l7giLX# zWr7nXWdnzM$F@od8av^&sIcvWy|f4894r}RXLt6_#=f=JawCQNH?SEIPH;fau{cpy zIxp=_z7N${vO-d7XMt7Z61NfWYfT4+-uC2l9*y2(ilwD<{c@yfm}H-O7;j~ac4m-dab>UpqR=bhn= zb2`Eb8oRf@Nl%i^(!LMjzp29@QXcMPZP619j^Jn~yu%%8q?`Dt0;r7#R`%ZhY`+kJ z&ur}X@H??lI25I53D}o<+?R%RPxo~bKHL=2po;QM>pXJuit*TSGh33Mv=})R7rhj%0(QLw*B(E=>d3$2fMKkk-8x-6B zxRn>?2djop@>X8k@9nBI8e7qd8$7m4p8~ET>ab0SA!o+=8Sn85Bq3Vaa4V3Wh2aC# z_=~BXi_SSrUTzAlDE6y|AnF#dDUVjbfMU zm2xL9^6Qouya|E1T+2b2St~a-`m6@dx6P)M&O1WUuK^)a#iF8>8#}PY4b*6dhSExm zY?aPllu-JE+$&omkQcJ0rJ`2u6>dv%IH-~;xe_aM5PNwoNvcF#g0^IzbUKo=nt}~< z?#j56x5_xUQ~+*=!iA3-y5(A4z_zr?S|FeVg2-Xc#>I$s$b7sWHAtv0p%kG6joA4X zN0f9u#y+EXvMP}#PikFqw-3@-_YcplY&a~Omt^_u zq|($$6Cl{AsOTf}@N&6dXIpsjhLQKpAU7^;&0#rc?Ck&hFX*Uf-93;J2*0y6S-U$Y-A>>lK*KEFAKD%R8L`#~n&KmP4{LdAzzEZcCnahit*jroi>Fzm(Z6ZHhZQ)k>YHG`9L=`OfT|N8Rz)_IPKfJY=!9HQ7-1 zISIfG9v6kldWz^Hv9)t!HKi)~k8mS8_*Pc5kKv?oTA3al>{~oQV+{`VQqF11RDOFa zR%l^&rTX8)7uetdKNNp+hYpebYlm_oLTd*3lNroAdu3DpbqTk5y{yh^6Sw#Y_U0Df zqFq^M-V}pEg`*$v0@$~>H&sp>)?huG&R)VzPHFNTmiz+0+JpU5Qgr2igI}Hc5eA+d z!3IB@KSTtp`73_1m-tWc(RmU{uqSPu4#hZ|NL@)R4>R`xx*YlDa5!}?$v0ulO-DCl zEO_&tFaM;P3GJpP$m3shK}eag7e4m>E{sf`J5V!o#gI4W51Mkj+pdI(Fn# z8Yc1g3YQT3Y(rO$2#)!&60SH%U8M!8U@wM>7QTsHSu5XG{<-3x<;wn*^cVRV?%`kY zM_ies^VRf9eVR$b9Z9tO0 zmhc?adD0*bIkJep(hrdEqnt<|#G`3*0+ScwTcNgA_y;)PZ&;{Cp*h&0`wH-*AOvd8 zx{VIqqE0-^s|@s;rnvZ>-9al79*B(zPolBcqywqX?j~38Ei?-Ddc-)1uj0jC;2%QB zC`JPGy{KR-TKNuk2vR-KbjFuj;6WfQ~_nOmzL?LJ3YK%3?YNR43EdbTChoyxNKAU7qbS#tMD)cGc-kDUyA;<~!XCdV-+w zl<=cd0E?$VxSqt@o)@`1%jO+1fBEYUW#02lTx`yge$SN!dJU4IOEjB{4TEb&$Wzhr zV#f3HiDN0MY(DBw<`S~jrSR1VLK`SLs`*fXuAp8T@uT(nyQbDY!5{(GM=ogZO>6XwzGXc zkZx7ElCdORmc?E_XEOy1y(@g)sN;uXNTm=EV8qthk+3So?z}#|V3sCAkly1u1CBCn(sma)kYh7vl8r3ra2qyf zSi-Vg9cTT!))Kfa@wt2G%*JeTNU{?J{!^I#`?64vnqwXMSvxr`N@;J%y&Pg=Bhxvo zQB#PiEy7f&uknD)V4^vQj<@^j!&)q!eYM2G_!K*3Y_g7V0kWP&^ZX0IKnb z7YZU4nwmLh1LUPt+v85mr>)^@ z9=h(s-{K@5#bCdOhaA)D&VI4Kz>7)8@8|~Z#GSHcc_lrI&x*+O+#U;H zdd!7)@F04zi_t*75${BUcQA+te242Yhy_VMj0NvuQ|wBHL*ANtg>SOyhYofDj*DCq z(TD}!1wCJmD)SG}pufXjzLDRF3h(hATIj@$EqjBE9;KW~qw)lal`uRN zQZLZpkEP_aE?Rz-yrz%vrLa# zUg9p!fat}_>I1u=I-uQ~!hYTN}YKqRq33bm}%O9y$7 zZ!!iUlWlH`!+2K^BosScOoE-F0huFnhinnZ6edcXZ)7SgHE9)#eiD>d7n!{5-j0m) zE$+oa9B^YVoOjnr`2%A~x+$3%OX%?+HxWu)tb1{~mZ;7qY&xh#C5G5wDk$f4QpHI2 z^Fjn3;d5JM4EkI;+Qve`I3#@e$Bt7=beN3Oq4hy_)c~NKHbxFDKEnU zJG`6`bKOBj>QkCpVJhfJJ*-iKce#;y+*`HeK=>NhkmZbNWL-zxk(`d-H!lcb5C2Y1 zM!+=oZLV_g9yg>!>QaEVXz`=>>k|7u-(Xf0(FR+1krQWhLgL$x2vc$J=OKRaOUMt<9SP2`i|hHm9-N{V(r3X{cI8F|Hg@-!fKQS3N6-Tkr%LRjl)V76MbriP$n@u)Iec6mhZ8M` zbZX<*RF=Vv=Y5gpaQ+YX4mWs42| z5jxV&=?)+*;1Lf>Nj|^=t;MdQg1(}{?{TWwRYVJFDBGymef&^qTj^OW>{qN{j^zu<7I@24fl%1eAlBmww9 zs>MUaQ}#qgV}p_(p5Bv;7U-v}aZgwS{(GPTD!$~JK*r`Q;l83L9&^{Ql^aqGf$Qlj zfu`p8nzR>GT2*v-E$=j%t%@&SvF_*urlHgA&dKbmD;@cnuy;}>9)s$$ zJ5tB`@(Cg7{1|fIIh~^XUsqnAu4eq2QsBIVr-I9vmAS{sygHV9!vSz&dz@id(lH_6 zIF6>tCenG$bUfj{V8!qptHSxR?7Xg=-uTL|3rsvYm=mV2N>>9UPo-V5Q}QLCBmkEXei#PDi0kwsx)*!QTy)y&&I!0)AKN%yBdlHKM!1i z8mRNa(G$n|ar>=ONr{zcGx_`25S>Dx4rmnSyByds87k9Q$0=-+Md6?Hh2GGkaL|un zmQ=KODv%i!FF#o_>8g;6BZ9ApqfuTeg_b9_LpcXHT*R!VQ4tm?j~59MLGTv;2AaaZH6*=QO1H2{Ogc8_o42b1^?zt9H69i ziFyuIT0J>MB?*}w4EWw2a3CyJs6o-jZgd1m_2oBiaSf}|X^YwJsr+kwyFh-^zu!FOjX)u`8VI^UttzW{E6?#dA1C z;I7<7eR*$N=>J~|A|vu$f5e-zSLeum@|o4@yY(UG?!oJ>y|W+s`b?$oE2&?5%~?x9 zuWDfQ4`mIXuU_@Nqc~TzX|Md!GK*F@G&Sy=Tr?S!QD7~6!xg;8Hzj7gg-3GK^YpaE z$Pk0iN+kI=A~G(9P`48@C$H|UCXeqBbAAiX?A zXD*Kz?#;@+fo&Fk@zs(ua(D4vzfI4V5ul0OUsN)rl@GRjX?*@3Tf z5_@#BaA<@h`layh4$h-}4ES+Hx-tMd_iwT;Jy{>!001BWNklH^w-eA@UnY)* z-2AA^4_6a3Ts^_~jH$~}eUsNWp09}3uNAfR9TR}w+IPG{-O&|Sx2}x-qf1~G!=|~8@Jv>CYAn!Y z94Oxr!R5EWO1!4i`YZhBW@1I2mPtGVlu!4*Q;steaIfY&3r}=SKG8GzNS5$C5UnI` zwODp#4`!KbQ^(3dhZYJgh+5}xrjUCl`_}1z2e>&ZtWr1_B(VwilQgi9e*6j28Hk;1|BE^?Jxiv$sXgG;Z>Iy0&Gk=`2IV5)3vXx2?q9Djs zc%R3L&SYkqRlP4UKvhK#l4fYs1s>kY)C#WHBJSkr(sc{&dx>uBVSrd%Ivrv zhkw1d_jVX4s|b{qJG>xS4p-S$d=VYSuEay7KS>+WiC@Gw(V#zwpF^BJsZtE`ulSP; z+{2ChB>g=(s5rOqqu5s*s_2KYs`#2&Pj1BmuV5E|9lXTvVT%T_mIu3Y>SWowijBCJ zAH|Efl?VA*7ChK@3e|tkxBn>B;&YDuV=3y&J6MYqd=}yAco4dY_TG(V2=(Gq?I%%)^9!}r{onWDSHU0CTe!2vq-aaeLkA> z!8N60_*nPXyi%^I)h3M@0I##qUtb4!t|jNn#IO0r>Qrw#wLNR*yS||9^(oD6%q0(` z!;A=YsU+snZ+)@*QRn)CG-DY}5oI$GwE0IisAtQaA&-mMtv41^tFtm*Uv85LBTzab zRx);DC}$u#V&Y9;~Lnq0)GEM2E< z80kuD>|9!Y>5la|LyqrwT29u5nuTPD%PJbbYB5#)cCr4VH{}|Ap6f(QE{Weyo&ufd z8-4Y7m?-y8I)6I9g{Ez)li%wLivEjTtCN^7>$EXB#xncdtfRLZej4%U&D^Ro&)9gg zTBNrw<@c1b^y=91W-{BU{HiZ~(^SrUDhiqyF=`lkhW~XjJXJ;&$)u_X?JK(q;$hHx za#SztvdpXVDl6eMDwM)QkenK)R7U2~Lo+4Swko$t6l53CF_j0BldI$c3kiXeOZ`1B z#l`@D);Yhl3o(aTneeTSE%gfZsE1{wJq29>Y??3!*hY<`z^X<<>R`aNQ7etav)n<_|DTm$5s?{HoSy2ezsMg+ks&EV;fCCB!PRtSHK(gG z;{m{5W~PUWt7>lM4+N@PD8iJGk|+e=@Q0b|)qBtR&XGKjKjNkku8Vpo7dgM98FUKw zK%Qg>nPfT>+?XL3`Ttg>jEM-`9vcTLCqp1I_YhgWp@4`?tmHE{%SihwP16 zna%-XQe-xmEOH_XH^wgGlM`B^B~glzL@QM)srzET@LoDdPqO7bZk*TlqJ*$IRewe} zEjp{WUTvIL&T*`JfYuE5#>9YUja!NY=zyO~*rT@63Z+T*SZD9?P@&{Uiq*QWanP}V zYy+(e-|;I(Uc-~U%C5~Oi(<46d2%jE)VX!u-_de$5ej z+r?_n@kBaD1kYl!t}Ix^LObs)`RZYBerNe&KD%@^@dtR439PAdd<-DYvn_j;w>*_1 z2uSwQ-ok^Fs-Jozmf}^#bNx|T1=2LJSBaG#6tTZW$NfYQoXfcGoBhQe%qnL&AE>xD z(TWdZmDsBg|5M^q;z4vt`=mAgbcrk?55V#=d7I+6=%d(+ zAQA0hC$-W-9DziW!dUIk0_ktk5uV@!SiFb+$W#Nkfj{BrwvXnRGfH+ z6B_FE7()969LXDUPvGxZ*D-L5dwY`&9^_X!$yE&y!OJvoh$*H@x^Kp^8mUR%NEz)^ zq5=#{v8n@)m=)z{yNE_gRodT+t)0q3>elqIl$Qz*nIrNYN|0}mjxD!}*!H|4_oWhb zU#M2asviQdBY8m{oAtdT3fP09Hei4Vmkusg#;ZW#kwcc9lr6VaqSVQ~92{^;Z-oJ$ zA_cm-_mWBvG+;y(mep8md4aLB*_pN7S~f3u0V~`1i`ChWuyHJX zeuag-Ev@a`+k@HI->lAlFl+Qm$@|>~`rpd9w*{}+EnZc4S~A#s6BCFqwk`-aTRx$G z!>{-w{$Q~G?))q6r$}+snqRU%+u$$oD+vB5{uytpOZy~VDXu}PVJn*X19aBOWCsS# zo!z;x%YuNPDQ{~5h?YY}t}3~)z?&e6rlsT9_8Z;!V^uTF0oFB}*;jMWXx; z=aXv9sYzee=Lv!5&esVqyd+o1)duXG=o5o1tmKnQ(7hF-wHP)>k!Isg{tCxpcHmL| zvv`65|0=!;$)E8rxYZ;E*6#6N#BaF4|A_+Y{~8o~@hCn^J250SGO(1MQ7aD6<0U~> zB>4MV`~kj8i?Xe|1Iv900B|cm%O~+cepc?2+r%e%DSelAp=OXj$WQXKXru#9@Bu%|gQ^L@J`qU(`bjok*nbqM zI^}agEg}4y=*yLsk=J+&C;TdHuDD%9z`hCE+ljAIcFH+d6CnlmwtNSy^FTj zO`b|s?7nF@^&KM6MG3>zAKm)8JiB5p;KaVAxbS@LB;UCFrc!-P{HOL^!|HYT?XZtiD%Hh&n24Ijslcho z45#tG<#|>S{iXcBts2i52DF(W7a#p%LhNZKht9q}^HDs0DpMbuJk&>1eI~hnLn{4( zA|X6h1^uyrEY9ZAF~WBY7N$H0_qeH#ysPrSQChe@X9ms&+aa-E*B=}L1aAbrIr*G1 zbA&BCKnE{)gICUDH124C7_PE^8*nD&@*t@S8^@Un^_c{d`V^?jVr^y%>&gM;-XJ&zA`;ZbtyjN6HZw4YyWxh6sf!}McKk{s%%V|&O>xxf~L z2XaU5;ic};ab|g-L@}>xZu43DZ}#RHpU7KyP*I6OkwYDG2^3vIJ9#++D0`X1y&mz! z9N}9DPtFC5p3CfH`nq;CJ9?Bb$4{;CBOYK^J|lw<@B-hf)nkc&hCjmN#0=V8GWGvm z+IOxDgzx$Oe|P-vzvE|TC6E3=Ys0;r)9?GKd^N)U;fwJ<`r<>y{9qo6b*Av&1>fNq zjqGZ->fw96a!k(knQq`iz2qWP_V1ymc472)<=|epRgd*v4qDn1JVn^GSiq;Mn~r7q z3+zNM9?L2B41zd~@wsxu0*4PEHl{-byDw|;i)h3m(CwxBTmp4Z)ktwXe@NM|O@)RuOaf`g zVD$6OScs(<@Nt5w8>5vwEZ7tY zTzQ{|nlinwd;0iPt3{w(i;FYohaGJ3f$W$tRejY0FID!1Rb2^Jb^GqCX^hFHFz$oZ z1W=Z~PQ^76;HfAY7xjvY444CjiB};cr5Ya!u=+xSACg2y1`j}v*p;2hW}E3u zTe=%Q!4dcNDk7b%wJm$Fe>dOE*8IUF`#17mO85V~5HIkb?ax-Wzu3Rpjs4H?pI{jZ zE&G5&`#)6AYZrnnyT_d(tH78c)0v@k{xQlXm-oqz5H%O-|GD2bBluQ@vM1e4-I@XT zDv8gd^yJoj?c#P!b4}^!?VpXlR8r<t=h?PSOFYKGkq%D zxr~o;Ck9!<(kYVX)k0K{5cOu!rS^bPV{8Dj( z-vV+79|iWe7~#uX{D8mIEWO5F;sZ!L$zN-f(YkPul%z&p;ji{GTokoM7wyp}X^^As zKFC{0_!+liElv?!jDr91yWFD}vZ_N5TiyDJD5 zM;A4VrF_I07PZUYW$cIo(pt1)j|ZfZ=;ID;q+OzsTI4VR%&uqMpr2^YCLe`C_B>!r zXMOn07gt?2m(yk4%mCm{=htsq-lVw^k6W$wi>}k08{(^WFt^eLE?UT=^TE>?`zdZ{ zvQJ)QBx_Cs@dZCmm*H-_$w%`2-s?s8&C~zu>dp7<#+=jqi}|dQ_870)OiD3N%2r)< z1}`M;nq6pIk(zFO?3rZY7E z#S`%STAjcprAs;gl!Y}5>YgYheTR;$Ye(Fj!t{P(#gD}}zU9cdjP%g0`5d#coPSsX z&qErfEs&eQ&6}VercobrIgc-xfAdfC_AumXU?bht%Xvfy-0)0rc^Fk{_>^DQX6fv2=aez^Vj5wdUlLkAIDup%sX5rs$z^#VKL^+ZJ` zDVxR&(5p0q#!gCbsGHhWXlhS6Yz>`Dcwk^~Rw4IBC%h>jpmX0LPv9y&KA5%|FB<5K z9bh7zLJeg1cF>0#Sb54Y@la{hFObj*1sI`&WELe)SYzT^%p2mM@`8;&*@Fw*k~92A z3PFAC{@00%!MpN_D@j|Ss%Hrwbf8GOlAY+m?9H-*v%@bE=8q7+ceOtvv#&6REF`fe~PxAV=PV9rKS@*)_pp zFk5R`aUX-(QKFb*k$@sSBc?G&}97 zp|#IbK*4w)zuD+My9dlo$J{^G?!WmIH4}tfEY3G`fHltn)?83_p*8b`Hf@q_chgmH zZ*Z?G@}h3W7vG6tu(22RgZ-f5hzcHSCx4ZZKiEqbILY38HLs)NKuBKVN3%2;EhUNH z#WN&(9T0|U9*PV20~lV-!E}}XBk3i9{6VY>fx$=lE4)CD*Z8qEsVz=Yha$3dD;`SA z-uuFl^Bx}vy`=V#aOlmq_Rr24{|yEdyrUlW(n;*)r5ya6@Mu4yh_21@x;C|e*Kv6l zeJc0Sqd2KR!+sWn_y!wF^lPKi_ix3iG;q~~O~E9W9pq8j&Y{zcGknYdBC0pn=Jg7U zHd2FzVgiV7^I8QZw25p*VU-a}b{VDYp$(}fY)j^F>A#nIOl(xJ6`_PZ*r~LYEz!x# z5?B|TsgF3z3t4cKQeqGf^$}m^MAlejA~iSMd!cu;EIa7BYvtIs8oPV&j$I>3G zC7H&7pU;0E`3ZD4)KSOV zPHTQB&>aMj_`zG}J4gGQ(^=nfVEF1hWKfN%9e+ta%c!T3q!&=2X)E8;28J*7S7SfG zlMRa!+Ip&Lo(`{y`!;s}Y|)uU##Rn@W@%q!Da#K97w+}>dAhF@tf(iKbG!av4W^BO zR&}Wk=vr$acvfY|PF#01|-R_J~FRxu91XT8{9JySL12*KZ zc%h8*78(l^#rcN95!%5j78&>*0UzyThlb-79_$4r+w%Ymlgt;hAa5;TM^3OMCuie` zcZ#FL!Fh|bt)izP%H|jZu0$Jx5@GZW{_ecQ|CCw67x^zGX#Lz+Uzk7JKj9PpH}tFB zX8(eJa&B^tPx=UZe29L2wJZ?nzNX6zImvEK%yet2W{j3Vo8A}~aOO!g? zn#Lebt&?U_F-{es;}xE6D|LNO#gQ-B0T)E!d$>gv{7WJJ&-9{``)xWvJm+1EhpqTK zS?XaZNyhH%BkD^}A;<0?7`H(t@eQ6Uu62$7g#Umc|7w2`BtGLm<2DQ!^$GXlFZi2y z5Py=9{|et-de$G|37!?_(7aF%`*NzZ`VAgxcN_5uve@CrNV~zkKz@~0(no10zlx1C zz>W<5ARdwr@EiqX;-|!bzsbT$-U#EP^R^T%j&gK`U*vVT3eZkIid9WB9vh*J{ek>l zwCIQ%@d1T(H9)>cGbkfk@foMYO8U>^$D*(xs7d-n9+W-Nd2XZ?9LWc1ljz8uoX9~c z>s3x_3wt1oyntRsd=R71Mmni1S#7m59tF;8j5#G1iB1||VY^r`r$-E5dZ|mt%QF)B ztiA2YVMKS;R~n^gJ_xPwTH?GV8BV z&jsO~&SleBK3oW>rv!H0so*X@_X~{y=f0=zsFJVqf!~l(TnqDWdh*{;J>MnHPnLh{ zemhl{=8vf)Tvq|b*QprSI`>(Vz%%IlsO!Ahz7IIH?zXS*>QlI1(cZkTxsx#<-|@Fj z_HFqV#GlI<%p2eEc0}#<2=F?FM7QqcOBUwj=DbaR((FULnbN2`{db>kWQOx5d0#(# zy|=nocUAnijutm_%P-F!eIXjlI88j%skA9ckdF-iQ|njBo=S#Y5xrrgodS+m=YZcc ztTfjXY!k6jViD1NH5<0bq8-FZH?{COmF{^tC3IzDDE8B6Wro%-g}K$!v>Qi`))=GL zxE%5a)SP`p?t;Ku_us(Ns~k4Yt#HqNQCWBgB($LX_O^f&=%Z0<4>ptufz81M(`lDv z!XC9&biMb`nASyo83N3v1TTl!ru^O$KH{~Br`;8aR_W$<)eYU_6Fi0-N$kX9%^7az zdihYrj!6ublghB+R3Z=xVZ5m-u*L;RyD@_m*oOh{Y+xJMgsO&ZY6SGbI=I9nR?(#% ztUw7ZaDba4z+mABg;HaMsyE)22MBo42`7*Gvf>+v&+7%&u(6L0v^Ogg)P+Hn{8NTT zg!Q|(m-UJb?f+n}aYSEkBKNp-|NVjoyhR(d8rO3>AVo0&daNV=RCBOZ6CeX>Ifw)7 z6*wjy%_d@aCm}d?q?@X({f?o^y4U6bdJ2naQU2~%c!kJJUfF-Ne;Pk=`*y46+(>yJ z)$C$aito@Prb0zsZo>CELf6i*o7xQBu^rx<0?d+rHP3&UBPA|i3;6Q)-rOF~_TI^# z>+~62I})a%2wjC=GS~jhkIGlCJdP+2_(QqI%82e2UMTkG;7SeRoAgcYN2aRX!Xs=# zW-eCJcjhX7iM7&)yiS0Pe&=v4py@7w`f*(TWyhukBoQ z_b+IGH5Qyug27(lO-&YQN);H*Zsn>O zl*&@ss07Rg)q234oWx3@WcRkZo%Tg4E}@6&i%K{$ayONeHcYCt1*}DukMaUH@?MTq zl9kk}xDcq>2@&Flh=Y2P2B|^o$hU`nVq1@y!6Ie}HOqlQF?Cy=MxmTNQ9_TKV$pCf zvX~0kQysS_$WkLMA#$OY6U{ymt}CRX<+oYc)bxTu^r#KBW8M2);QNuXR)U>dkrYE0 zWy!FrnE^~p7(-G%QZ}5OwdU)kMday~NLC+gr0lCuqqX8Iv-v)e@9p8U6wC z9(rf&mDI$b0^5AY|B3|v1RMMn|4VkC>)a@3?3Vls{**adzv6#$ZsDKh4>4j1OPsxj zV+pjS&jtUOO$VJ6Va(w?8w3@09|2}|Mf+>+YrHU&jJ)mf{5L}?_(uKaX`FBU=k%sG z^5QDa7kcMW?mMS~`ATPtmpV>ATG+o=LNJ!*I(Z>Ai?;&^)yr>J%k zS)9sPnE^M+FO9z@h6IUa;y)$+Bm}?8Uqr?~<6opUX_`#X;lIE$Jc&O+7V&?boRUA` z6+9;vqA_bYCPmKevy8lUJ`(&u7Ku;NE8w7Mxf4qC;!skZq6Xv9`2}aul0QnVcuqtp z?h=1Y{w5#DtpGOiNd&y>JM_w}@=DIo*{u<55?||Ku&+(BNDP0BO*1)59c%+ z5!oZ)Io)lrzU6bi+VC#__ky&e%afe$tGH%Gz+Cb*d;EK>*9!@Mnh1L*T6MkA6x zym`L5XY{)#yS{CfR8dw&!#~&R001BWNkl|bYa1oOVQ5%wUZ$Pw?6JWZ=-LOdiO>w@2Ow?W;gj9-k{raWZiNPOwp6# zZZeg)n&yT8FQjUV2lV zdwIe1b)m?0Wf(%HT`&8D{eQLo-&=Q{yDiIho6gztA*>6Ydud*$>MC$8gQ|1uERAn! zP_WNYU84)Cpaw>(zKbrtbmUcg@jYJEw(POOPZp(>P^ijL+O8&Z;*vCgb8XGE1?O0# zm#GK_l~D^3mlO});|{l26`_y{x1p#?r}BSS?od?W!3dH=oLhpCm(bLv&$1*mmPXHV zdiHZ2%)mz2T$g#Pr2^L%9@mn&nBriT6O@C(K~x&T0IHuYB@ z?Oh#xE#Q;+qgmU!y^Z=(?|*Lzx~t#6vn~6c3yUArU+>(d-cz^U_!0ld*h3eOsVfV` zn@`vGw_M$^TwYKhE<^=y4r*i?c!Y;~8!lm}H2ep=EHY&F@FlK8m$kYPTk#ZYxLAv$ z_&XeH8+2beHoZvl2YH3}VMD>uE?-o)>l18Lx&l4^0^bV?#t*ojU>rL7$QYQ;0FLE| z%_|)70taJli7h(u2tUIS{{}7m1T8+*CwZ*zK%}F8ubv+2L!pA%iJ95DWboSfp&TqZ z)_3wdMY?`~rEEE@1AU!Utl%`k8fVyw5gD|sL*=2i$Sdu$ETl`ks6zE)X~%dKX$q9Q z_h9?H$gK*UELC<~^w2l;D;Mt0bp_F6v5}8;BCgcxoPXd|0dc+Q$@V&2>^!65X*z`^MwPZhovU zXIdj=Xsf!gogfVbJ~edBD8j85Rfsmu^r6TbNmtF_9~nmdqvTuPw;KD+41jA%mfuv2 zT||8S;P7)T4ASM&%-k`|RrJ@rY-GLZv3`&9jN9J(|B^1_WX@cGNj~Y=QT3R`lqc=c zX@tNH;?a7Q0-$6+ z2+Abv>|lm{Dd#iTuSol^P+q3qvK#Uve0Mfp$&GwK z$8%2=%WLuG0SU0YncxRXHs!4 zCj@$rz`;N0yIsDCi)wAU@GN;gC#@fNndw~U-&Dhahk81qu3MhajhMLKeZ#A9LksWA z)<08a8P(tF%eK4z!Na=w0qI^h4V7~#wdP*Y%ciO(?f5HA`uRiGZDsnUS9AWao|lr= z92q|`%81!Cd@4JgeL+VMo7$ec$o&2N}|#+PG& z`wj!HRuA1W4C@xh=|(y4^R%EWCc51A-?+6kMRn$@i^Mgi`_7r?W^4ZDwRE#3_s%m0 z_m3;Sf3=XS>WA7E&()hUl>Jxve{DHxDuiuH{pO|y*-=?NC$qL8+cW`)thS53ihW#^ z`!xlV@njHv{|d^CX1D3g(jz*?_IRKvf}^8pTx@zB&X8oujU5@VSrM^YIxL}bN|6BT zQZ!VnvP1K7G_n>M)v#8X0WZiR*VM<+ckd<6^8d%WTd?+ z*i;<~jMZ!NWR^(N*n8;UfEHC)mz}?xqrGyDS9icG=as!jQ3@Z*nb2G7kLKxISo$0! zi*AYKFXrIY6Me2KHF0pCaj>(hB&C|9GtCXYkY(N125>7wO7kRy+e>vWK~a}w!{iA} zahYS*G1ChBs$3Zj?B}f`pG(xl*{FM#?dKaBv{}uSCp%buXObsn!aT01G=TD@|6pp^ z)7;ZAc?B_T`XFs2M3Yz~_VSAy_i0l*&fhAus>i*8vc(5z;}R8?ev@9}o`sWqP?)zY z`B6N=UfzYE%>Kz%0tRc@&m)CN}54aPjgv3cCvBgJp3SFnlRnov3fetGA_nl}&SN9#1 zH}W7X*7#8O$8{Cd_aYn#xfni7uy<4j;R`fKM`?@qwxmHoPIhC(%;_M83StThaPY7D zB0ep*kFex6S#pOL@=`vc4!7hJZiA0kj_yvlArH!f*o?-$@&Og5P@@Fut3q`dM<*eb z1O-(u#ZZmTeLzvDL zocN$mDiGgR#?q;+aXzCpT-T?sG4iLoRGH|GSc?0M%IkymU6|yL+UQfw%3H!F-#B;Q z#QTieI8C3J&rsx9J7NMPxNyMfeck+f;7z^R_rK-0{%=esV&jA4y0PZD3GY5(!SkWA zuXa^U8@4{vSYs>6<2Pr+F&7VRxFpXxkvR%fw-G03A4*t-i*7u#fgQQE7tSiJTZO_y zc8gVsj%BxV8T77jCZ}qQ?=ydkshj=xQs@Gts_sAFg|dQ*naOAggLCIHDr*XCq?oRf zJOqy`=L25jWctj)!tCt>egKOgF!;Tlh2lY%=_t^LO&f{oqWI@Bc#vno6+GgWX zUX$|aT((WWcqK?q^#xoK#B(uprvN0m!c8JW&V606J8{IF$r9oSxGO6hZMJTK?H_#^ds!WON#2kok-%7y@Gv>CKCP`@8A`Ovu#6IO!y$bIQM2@ zFO>-cB>)e}-|zxEG1N;WboUQcUl@9V2gqVCFYwBo5(*NiriFf4Ia+NxD zDc|soN{c&DeN#Awa@Pwaa0_L;rFA&lpfEu!knq^hCgp!`3# z-kpu-ni$V(06>w7Pvwo13;2Ag=ZUnrt$SChi`6jkKR0IqT~VD+X}|8J{o z@K~J_qoBLW|4Z=WY9jxyVCab$y#B7&`marue72J}q=Mi|Q~L=9@(W&=jZ4PhWY$=o zLp%R1L;crNecRXd2M_hN=NjiY<`utAzO$+OZgWp%X^+~^Md;5WAL z03YhwxTu#+u4?h{rtHLX?Qh1yxDX%lwzg0g@CCkB3|Hkfms@EAk0q?4tYe>GQ^oAt zddoCr-oUpS>l$EvPgdY~&Rck@SNo~b=U(vWyBgQb4u8ZS;TwE`ZA1~kuC6>(+s#Ux z#CJgzq(4<>L#kl_t19{q@XG_7O6Cfm>fav=jDkgd72%~YxokiaF3k!yisxAtjo}MS1eClnlVKg^ebF26c5$>E_oh^@4FtV&B)N zI@Gu2G~cXM4Q;#9)6d=Hj%mxYDkigKy`{RkHH;*pp>A-Vc=8r?!|JO)uPr_OB7a`i z5;Irdz_MVb8iIQ?c17 zl(ug9DCz-Ap7r|2S2m^v6qVpbc)-~4Bvh^`aFO=fGrCJ(pWMRP*@K;JS%Wp8B{|`v z+14pqAmLAEgRB=C=QPIUxDmF|3H>62|6nieBfLyLyw9Vjwoc+->!@<+I3VPWWd%2q zY~_HPmy>E?w5}Z@YsKvCJ8X!MCo3DfvpaiJ2j5a50 zo4vD-cw?64#ReXr#l5{KmA}EyW@Uw_vqh0^dMajCmIWD?Wsc^*Lr?w_e1e|*ud$v4 zF{t{DezATA@OS&GS;8;oF-)=K6WUt`)0>FA>T`L=!|fN0xL!KJ;M(>Ng^F*f9HZjN z)s=GHS+NS%|17qcT%W2c`^(s*`At9V(fii1dv?I}jeB$)Dn!=V*tkE-eJ6vl^0M-| zaX3w0z2VvMEHH5%6<}3Fqt2kla9WgPVCfXmHG;}b6%10F)F=O@e3D5>d{C}F0DqN% z&*Wc}(|Mj@i|^u#jrd9VKa)HBcjyIpBR-dWS_i5=p`+X+KjSQxi2=9vQH}~{R}Xgz zA(VWS4&tNSz}`N>23};tQu-iE{tidkolm<=23ee&Q{9Uvu(2IUZd=EySjEe9g%HZE|pb;14bF>rxD(}lgN1j|8!cSOH zw#h5JD=lRbxNs4@Fj-1qu@J{ZPFl&m@GFo@t3Rt+uXTkGWA?Ufisj&UMnAzJYIu9^W2Ey-}oIm!}tti0><0 zbmy(t6eMO7w7*Lsob`(#J_AR1P*i)>cT0=s!8hy}YWPty48h$LbyJfRn+j za3^R=NQ2v%6z0~>n_d$f}V z5h{?C->~P5#;Mzyx`o z@v95+zGgr^>sGZkEy^a(HgOJ|(v&Xg`Sy4L<@e;wJpTAJlFqY=)$@3!OZxxC8>Lz1 zo;)XGPhdflAUlzl_LCzI+zGe%DDUKjBW2x-kmuvxCAK$W03Ji9A8EScMf@f@%KaOL zn@GLe;3wRRXXzj$e~=$kdfDqR&BzPc;wyZEJzn57&ML;J2(yjO?}PXtTJc&#(Fb^u z1HzthAmEO2mOtS~{8j#rAMpn~;7C5-g=7pTd6~3Jde!K?R%8yZu*EA3u$3&G#2~gR zP3@i7h!5}r9c;|bTA_pvg*fj+Y2`>+{zK*vy!tos`Sm{B3~-fbSwuVsce@)cWCQtZ1CO;D2~L7!oF88vfNiI zbC3|4k}B+>3~9WFPAsKPv?>t1EQT`ZRWBrO7 zDRu`nA#ALAz*SXicetq~)97Lh*FuskfsV*^93F0f6+X#B$#_w!cWFj#4X0VaNnWT} z5PVAR8c)a+Dpks8`1T0CPcYnAF8yZR_z(5L-#BjkV2$R6u<0^oezHZpVa(MVg9qQL z&!-3cRJC_+7Sei;MflAL?RAXeWbYWmcqPu!PQsJm-*c`n=kj1CqMkpEGxB!MUJpO1 zr!vcOwH{F-<~aqsvavJyBWloCKQA0f17$E7rREW0@o8LkifkRw%Eb`SVC=np zfJXqYD@$T07RpO!T;k1RMDYa=&JW~;oh-o)Z(w0!#&9TZ27h%>B1<~gCZbE-qVxD4J zXrJu8eY6LhM9v{CSGES!)mp7DJ5i4AzjGM_kZa8E`A?o)glXR7W1dUo^Hn`wljl^p zbZHB?kO!ZK3YG1XZaJFr=!QvinXBicQr}oJrsdPri;!~Z3f!#m&a&K*z7k%QiPuPW z()g#?ckBKVLtM*8`DDj=HUeW}TWN8|zllSXZSn`@f5u7tD!!(S{ImQ=Iq6(OX8W(= z?=sFG><{9*{6fLnKFCk>NpW4r~`QriSk1 zo5^Q^F=I6`Z4B2x>Brmo%@O?%@FTvZwx0CwrX#|sIbhu4bgK<%&eIK;#i)+`S$Wn% z^#mVuEz|W?i&}4n_;@;X&@8g;Tw$cQV6?aEr^TfI+e`!|zND9F3=_MaQdB#iCaEiB zdry;>Hd!+@?`}#r+?Q|3%%&~iiH7>#NX2&uC)f4my&wP4ux4JaU4^uYOF*RV7pLaZ zcz@lXAIAW1Wj=eJi8GC2zE+ptbD}mk#&UjBX@0N5_8pSdbqB=UbyUpmSA-_+QJlZVHh+(UNQA!=<9QDDeHEj2`9x+UCQUB_>Ksw?Yxm-VB9AaTVT2)YMa0 zh~UBy8ZRjz2=Ds2~8pZ9oC#~7#bVL6h=qCq^E-pDM( zqRu%Q$knDA+Un&Qhsr5{EjUa4#4FGmS=l<;$xilA8ppxz*9r;tfwBqt2eicjt>}NX zD4~dZ9ZWW>!qO=Qf*>FT?qF30C?$AnG%oBs6P5SSI+`FpT9GXrxS?eTa>Y(sNh_-S z-_dY#hX=D7Lv$(qzFs7AG7-9v&DL(pDa(Rhl32lD*`?fg6|Go98{-_5P}F~&d@S0` zfMB?bFjD(u2dsP)>NXxDA~4!Vl`U;UMPQwo|$ zdK3fh@hfG#5hJK=O%ldDn?`I@1{gc(1$w-Njn$6lSlMDH#Zho$c0SW28hfxq*BQxI zy?G5Guy|78Yfn#2**==aWvp_9FVLBl*`OHReMAYK?W2nlHW*N!@y8kkQOlOO7i)^~ zx!zpPpa9SM_`ceaec#b^y|?IAw&IWV?Q>G2Z;^|9ZPvQ##b1a22KG3KpT!1#myhCuw2g0;Gv3=9+@jFS zKZ~PSAe)WLd$hDW*sJ(>dWyp9Q6OIBll&x>_+z7(Bott zChGEK4FS%j|6)LjSON!z$n{+vD$#xwM0>HRnY}NgK}{^g9+FBD%(8q^WqqiZgje>$ z?rh&=Xl?q?4zUg1Gr3X7v;sgPa(=SCfI)#44V?Wyq^H|?2**mjwG#PmcNRccT_)l*i?bfW#A|@R6v-k}!?N3&6{$l@% z^0~wAgnxn082p9&t7z~)+fO*sy*hKSPI50Rc&aGM%b^VTm8I%3ck%~p z{0iH0_#!Fy@-u#f4L;yK-oUG3=gJ>(D_+DNJ9&e*@>kJIEpEgD^^ioX;*)NrmDsD` zWS{UsioD#@S(T{U;E%k9rqa+e{H@>?`CaNKt+&QJ zqKtP^ix+rT^?xd3exj%tm;y?@)X58o*eZ`_ z6KQr9@F<}uIn*sf`g6W-1-Ma0xR#jdmRgSL z0ASXF92IFEAwrrRdCe>s>iSSS#i#gftmA#PJ3{@efP16k={t{BJ`SB571L`;lYctT zU9Otb)63FV;tjt^7=B|oF;1@Kx3DcY37Dfuk2ykE(}1UZW0-dSLU*Hl)H}EV`bV5S zH~j>_XQG5qDps4f|S+F6$`HMe9d`!SqFq9y_m2wa-5Cd0Lm=>l7MO(|z6AL@Pf?6jlr# zDqvr$dNUkNQ18cbxT_(AxP}IszBXxBH3@vA+r{R7bZMPeu8u?gA0pFenY9pf=7=eK zMFaX+IZJK58oJt%U!KQ8WiyIbcc=oOWrY}Y69m(`L`j#YcYq$R$6U?m;H&)W4o)~1 zJ7jUZKGlr6g`FKl=^7VVbAv|+^{T#CCl_YXIgrL-H7&r0$HJ1fBStb5B`&aqR5G0D z%!>=^C*cM^7I7#oyp*rRh2cZMG$Qr4VExY@&8y0095gKhf>J{QP|qf>UdR{RGUJlBe?3!9ex z4?NWW=l@-wHhr~rUYWk$@Os^p1l%nmG#8FdfAp5$LhpZHd^Nwh+72#Kf_-DKvEU4z zO3;YIB-b>F1`gE;-iuSjT8NJ-5TQtU{Y{bN#-pOO?GuXBittuHR~GFPeyR)mx`1fB z0K~IO1o5I0ijqqB?N9^f9|P(oUcsnAN7w;`pt3CTaT^Bw>Tdviq6GFHCnTa&2dLi) z$i*2xh=T$t<2{bF;Z=pRwRMK^0>&Rj7SHg2_ccf1Sp5Y1ip?2;-wQa{YnPzfuA-3o zl73uHr_>X2cnB6XaK10Gv=Q`DHom4*QF=iQO5#Cev8zJV3|q>ibC_Q%u}~aw5=&`U zROj)W?MVpja?Tbz6=0o1%$`e9@fcKkMsg1-tLuJJIkeD3h>JMjF!M!6ZzYe&p#PV( zH*1m{yRJ3AbpRh?$jo9DC6S^AiW>U<|9{cCW^LBp)(`!9bxG+;B3YFg5k3KX^}{{~ z4)_q6lr^o4R+$yy4u=B=`|Q2ew~h@EH>qLzRt9XKz`mWXp`}uv8Wdy;|JHG{*%DXnVD{atRbi6P;%=i8CLGR4K?Ab2gz7mziS=R?= z;o>3=S+mh{@_$^%PVLT}4q&VreRUOLKE1KRTHC+@J>~?VY59{a)=QFBt#MzK{(u!u zMwX^ffT6~=bMSeY68r*hOcCEfZ#&E597weEtUl*?=72N3sdv50vTR$M&J0l(kexZ$ zPc=fkIym1l~o-twy?przgWLB;6E2@_@ntBc$i%t#r~!IJpuj^{T3DTE9+zPeV&LN z-rGae{mu}Pz>JX?h}8NIt~3(QGy<)4f354kAp6g{>I>_qX0a335RlaI&ipIOE&ImO zlnNK32G!Pdij8Ypb*>9*yn&5XoGNnl@L&%JS+GiT?b%p96GL1eiZw&2$P1n4+yS7a z`Tb&+uxy@8ciWi-RH{>Luq{iR#Ic3wSe$C0Jw3Mkd;4IJiu9fMIfV3E@sqWdeu*Cz z?HLc^xAJHC(f&(0n@D{epqRU^>x7U!5nMMDdc&S^_`c&%C8$OC3 zdiX?(>~x%N=xFVQu|bD^T-3F zc3~R!ze|XX#O1{QJf3 zX3ou-wJ^)=Au`{XcFWn5bFGA3>`|5nB`&kWJ-4fI+3Z|Azhl|C^VK7K){#`Q^1W!n z)~SGQ1%%EJN;M(is@r&TujUKq!Mi@n#YglEKuP8MFLc-Qo!rcfBo_O*bB!|2P}+0E z{Dcf@BEY$3e=gBCB^PRhZzlKFU72h5KWm{r z<=YhpW8pZnHypJaRaNIhN@-e`A?cz==tM7v8B8>CUq{6t1Ri8Wkv4`VAj6rt_(j3JJ(`2*?XGtD)jN@N?tRXcZJKU7)%qo(c#}xw z8tdx8QHVq_tUWp2s(Z9EVcuLDLj|Akss6j{aS}rU{;?A2HD7S znf&3V*kgW{#1RyXAF#wIj#9QNI(uaXNa4v~zu6mmW4H9<%;vGp&YVn&p^7PJL?0@t ziItFiv=6piJNw0S=46gd?Eg@iMI5YNb+nMvql4+t4o;2_u3=WiUS+5hKGx{zDq$P! z(S9{!6WWXHu-8EBFDBp#%eFa~m*8kNCbxfGt4#yGSZ~(aJmQ@ykYt85V7xTcTGM%&tieZ+r&L}WhN#-scRZ}1D=Q;Wy}I{SP3JJVUCaXma5iFFRN z@homhmol!4-t>Z0qc&5!^Y}U^19N5*Pkc4EzbvtMywA5!XIEjy`Ff$*m^V$nDo34a z0pD~XOu4(W;E_vB{S^pEEa(bzO6=u&8|Of|g@b`*rL!!bHQQTCw+1R+6mj#R%OW^> zt{a`=g>&mt=3lz-R{kU&q*N%6(mr{)GIB4U#|K=~UMW08Qad24pl^BQzQN&Soy17Mr z^JZ_v2UXJ71Ac88>^pf4Vef5)dwU>HCXz?ui9jC3;8@vCP_KNFMhS{kR#Nu1wm9um z$Ew^UYoP0D|=_#{aiv62sVYSK@QOPeycv{`JL z!z1itLMrN2Y}o-Dff%ay!ejE~aF5r}$**#|a}K?{N;^XB z&Y4pel>)Tj$dnoAy|mq8n`GSEg85yU$W7<5ZV~XmMZa=k%=Z1A%fvkPtZCtIP^9TX z?0>Z}@kN8gcT@eoaYn5>o{4*o?)En^WrymVBf6Lb#3EAl3^0jvbTM3B1&c?_MEqZF zyu{);XNWjefJD|HUWEy}O{S8fleo*1-QiPvf{o@84us9ad1IBMO;hC&T6@a#jSK)d z)!A5-R)-Jf4+%+&`1dx=BHTG1TESXEzA)=INt0bc(ez5lba3e z{xSSpjQ!^kA6>uX!R(?+XNomO7V7m0GJu28K1B_ru3eZ2N3@G377|L&>YDkFOq=qU zZLiH`dp%-#XLzQqn+*nn2lESfHe2%m53mtW=GW$L;b-_S@e^#s7Cwl-m;OoojrbY- zwfSK8iZ}ddHs%BIxA#`H((QMIx&5j1`=r zcWgcDvG=%P6@11bmnIcqYgf5mY^cuWMi5CFvCn5zb<-!QSp{qIw`qEU6r`` zM95B-m+(qH6%9oaD;R|A5p_fqRz|=SLCTU;Enguy zW;dp0mm)LMc4;pzpWj6>4{p6jWBqC;(f1mTGy2CplIyuO=Vj2)(yYFK)s$HTC1;y= zb9XcefENyME_&RWnG$r%JwDAXme~X77A9!Q@6`=)f$sPeCsMh~tO_xUjLnOeC{;N= zkqx~(w%S0OZzy9H19ZK=yw$|LtA?2GfM=9J)UvH^F?_zoH#!Nxbzd&6`^A?zkB)Rp zpy;a(`pxQ4x-lM@56<3is&aEWGF7hk*i$sc&^xN|?yfI~uidTRB0T5YtSY)T?%dOq zPO~K~3VO}vQugJJ;sUudznFCA4Exr#^c6po7gL9uXCU#f)zj zjc+)ALaE8p%PhK9O&_;j#{Z7(>dJfP(0(8r_uVr7cM1ut@xKPw!yC`0hju5{oxnMZ zZ-g+teZuQ@VA*gl?UVMdlE6&A9Pt590goiyzxf7YmhxJvpfXZ#yKln$v7Ne2`#7pX zp~y|g0S0;7RPAHa!jqVYNotA%K7dHUEFZEbKIIBFS$)@}{b?rX@JQ6Idi!!8nx^tN zyS%p18Y%>n6xa2fxIvQ$hG1__t`38Kio~qCS_+(+Ot?R%K6-?=_Kpv2Q`=<1XS@5M zWhd^NqIt@DT+fUSUDJ@Bf(Ul5`M~*YJ~p0X*HS}2v{bM|@Pdx8F;ARr1ZttjC)fs$ zt`>n+BR=n&V83fu<0~9Zh6JqY9{g-9I#&M*1Ac=)G^)?KO0>cD_lI(rmY(O3a`iCrs)4VJ>n`+?cN)GWAOR69)K^+v;RMP6ny&}>H4Ai zUwGv^2C$oNU07^x%Pcj!?nZcOLAz6O_~Zo2oAI?}#_U^==_h!sIyDOX5q^U7^h_D5 zFNIQgE(pHhH$Xg)2?PuzN4_pWhR@#D!-!kR+Z1Au|2u+TUxgjY|}!3Pfa|u0^vi7ADcG+OMC7-g79lw zbMlx2_F90Ai)xzs8!oVIfySrWN3PZiYS6BaEw^#q;BwD?7O^^J?!{5( zL1NYb`Ao?NN3XNTYrGW&yb_&ikq}L)ysJWlivFMQL}S`h%;1_xyl+?Xsoeo?CcrxzZJ7&+zT)H_!&x;lI zTA4Sel3wqa{B0#S??fbiC$tFF0hJfDU!L|sw_ zLqu334E7XY9(6Di_DtJ9?FBEyw`a#mEciTJ^j&8C{RraL9n)T56Fk5wD9#;$Ht?zV z@8BQtKj43m{|SC$eKa4fUzzXWH-&#P{{+7_Pq4K=!LJJ6*?(vL9{sxT5BPtRej`4i zzk|QSKiGe3p7B;L%u4@xXvl?Dvs^4!UL*`o0+)L2$GNMg*zZ*4YRvyi~G7!9#_i#TRgr+ z6s_(&W<5g;U3B4-gFh>Je5D$gB9b&qWMhWN&DYTkLdFb7bAhIr<7lM!PTF08e0N@3 zRAyi7MDLqs8^a7nwEV*6+%>sHi>L)0P5QKvo9TU?X9eG@)`u|;dlL~ z?;BHmPj7yw-#z~!U*EaQF~G&goJRp`9_W4X>AXw`_Z9l{qVKO;{C!=P($aZ{pd}RO zruP5l9U)x_j%cfVEM}R$U#8#NN4>N5{@2nqzH&20?Gn~v+Ksl{wePDtD*pE_-sGCr zRdaNw@j%xk-Zn!(coh*1dY*NVT(fRkz^`R@vV~Boq6kO0L?z~T6+5YeE!?Z>-$tZb zVPze~V4_CXy5fDEqE3!hXQgi-PyD7v2zm|vg_+Igb&#o49}m^9Spho*5`RA_ z`xH~USCuwoi)7V6HyvJMOqjjgwMnfYtW&U#T2dU)293C&!Ro^6>5}+soZHgVvdLo+|-rF0qwT`e$vP}jgwu^Xd(1{Jmskp8QpLyhaDic(}wnZ`wri4dl zP2&@`J%$fedcaSPKKZZ{@XFQBQq10b!C&MK zTAUq^(nnOWKlYFur0{p)@9j0RguGU0!He`V9Q`V;?VQr4S($k4zFW!-(1uvehJdu_{J%a1t5hYq`T)Fgi(=h6YBUAqRU0cr02;Jsh*y zCr)Bjueu7#=vpp)zy@WAMOP|&H|Yvp%QB?_mr9FZiKfJ_ara5*m&f8#7z-*|+qOdt zawkhl>d0tkp62xQH$KXURZ|r9axWi5NFmjlsve0FXuhuMK6iBy62}S!j7y)ZeWnJS z`ZDI zaa4am&8Wyx@gpt%m!!<+TrkpKr8CILV-`9==c%jU0sm)JA+w_qCqeKG#ew|^XF^pL zy=xd7gGjE`_+B31Dbj^dgW^wk12H4UesN9k-ZWLy(LUOb%?hwj5I=f@H{27CnUWPg z8thfth#e;@bI3l!#;nlE?9CHihfm>^IoQD3yqex#V~bT~C2_)s8m2;z6_M5Q4t`FJ z+xd)N>lar8c{|5n*`I$KHjKr9r;%&>&IrVhF$Q7=XX9^w1YZ}9ihovO$So z+nNn*8emHH20F1uk7#2yVk1^kk=OVM{t`YFegl7tSMs*z)A@1|P}=fScbm&L+qoXo z**zf6fqLh{&kZs+4FH^Qqv?dFA!s1dN--8r@QMam@+goWq+h}#?8Sc& z0pAn9%Ev@K07v0>h2P7Pzbka&-|>rVkn~X&KFEj-Y*iiepL0jnz>sgB;m zX#&7vlt*RBtlU?vi9OL2jd|pDB`C%kcd8g(H4{?cMggh>^^s*5*!4q4TCg)T!)Ixl z=4N>xGhg!6^LMg4l-oR(ulAmFE3@Mw=Ip}XH=nFsHxuV6vgeNclHYxKka1%gt_xU) zm${(jd{%s`Nb$UGD6`M9yzi&Y;@oS&Ehg@_XtdqU1m@!s**_&Za}Ehu%qZK2PYwM% z<^TX707*naRE^+2@$@fel(R9XuPz7q?6|ynsDA%CSlwvKf3+gK*`vJKrAd@riu-kkQUdobVGkof*Lcrya}`gV3?>ttppj%Fdxc_IIIAOB~c z#?kscNk!8+$Bwotuh>R##6N9-YU3jM&-;PJ3q&=fwZ)`Y4huD!FI7v>5oR)@Wrgmh!BI=I7bUvw>#P?Jm3Lutqw(- z*{lF`Z1#wi**OV`0Ivr7(KQsIw7YA-VfQVzA>plkni=y$wNv!i#zKb)mgfu$Jzt}* zCV9{q)tHQ?ByaAdeFI@f!dT%c;Xh`RbC(L}uUw;Im-d&oSFjeeu(HiL_?H3YXe5*9 zKFk25YgaPk0jY*7`cx++RoI&a{Mu|?;TU`KhM!ya{{%0o?`X*E;>I=$(eUw-5^Q5A; zKn2}ZqA&Mp%o5qJbJley6Y(PL4KF*_U(>%|CXwqr!#%(0EesJ$f<#3&!L+frey{!sfARjd9Y{wT((GRxpWzZ#1N(TmTi_!bZ1 z8RQCZ-`KtDR_X=+h)!tJ1|CZJdAnNI(kFPd4|vxO^$iBJMpA`Y?;*se!Uypq9MCf< z*sKd_%Fxt$ub)*Xg|a`w3vA>fzllM5P-WwubPp4Yh9mnsxd;F8T*7A^V0>bNRPQTC~AO#^BIvG`Mv1HV?#E7aijrgElE1q1s_$D zON92)poI1%8IMPit8}S*e&-M+du@oV$;A8I9#?^XeH3bx)>7XXcY%=73b1L@f>E_v zIAz@>a!is_^C36z*?GrXyvC;{P(4o9t7_muhC?_-^kNU4J(#f8R%Z^n)?om8y5+(S%8I zT{a{(l|3?ThsjfybNUbxD{+)dl^lvw?^D-AT@z`0+WprJ@1*oT-TMilN`5?xA@l_?*q7VAo3D2}U;a9%{eBs*ueb*mVefGR16={M zGlZ&_yT9|NnPGx->#aTWu`kd-Sx{lSN47_4)j;LB(4Iu++O#@?h@s(A!hW!iwqaWp zI3|aV*_1aOUa3hd+kpRMtsC=ddgA9i@(q3`8Wq$Vyb&k-V{0xSWQh^2?8HKDDn;EV zvZD4D2Gmu96vbZ219T`MW;@46d5|~tf$5#;t(7hOW`ni}`^RQ}mB<|eRY zvFz=Wy>@aVy^^0zI0xtK>}PYbcIK&?iPJ&BU?0uVUK5W_#ZSCAeg_4AfP(+i@juAj zM3oD6_FviGuQ1;`F+JbFy0}8;3q~$xZ5bbk4f+*)us4ZXjXNlJlTc&U zOGt)WPI))d6Z{qa09*S(t}%XUt$fY=RCAd{?U}_QpR}|eC|rp%W)*CiQ8=ea0DD^V zV-`6(mfY!bf{-n8g8s*5+IUj@mDq|O?H4TZz5T-(l?iyrr~tf$Ux3B$q@6%s;g8AX z6B5sL@aI8(!N@Dggyf_A3=*&60hgrr*eCoVKNDMV!h77wZ?eT!{-E?|<{+O>IEc^L zJ(nMpP(DB4S25JV0FpBzxD#vqWiin=O0;Y|iZ{_`WhFg{FM>Lfbgog7d)VQO0xqp? zxBUB-W%3_z^0~R&<41YKJ9#Bb9EvPfIoee2pw(d{OKX&oR}#H+q7IZgJUVR+8c-hm z0}eUtUV4+#L~d!&JEZe#NfyhrT;JGSovEbL<*I2c#JtD-&4ccH=|H|?Xphcm@XuxlZ@pZe~Ar@y$+;F&E*L<2^$(lWpmRD@8P2)x=;W@m+UjcXC z>+{|_KmHo2KsQgdFNX??5_$QEV`&r7@*`_rlePs!x*?CbRL5V%1#{)ndEQ`u1t~&+q$sN)8Ye-N`->4ev7I>JB$kl8{?kdSA;LWVf$|`B*6)R0zr%D+f z8=qlYHKBfnt|{WvXE8R|(bgIMHpML}P-!%tY~O4e)H|9#U}MW38n9xA26(98j#_

  • 7w;9OY4iQsZ@KTH&45^i@O8o%!FN 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 `zC7U+71P0eqGbl<75-1*mc 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

    B%FWSAh7wwMgROefZ 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 b@eMr3&$Ddorh5tW^GS-ziPQ-h1Ofd&nDq9~ literal 0 HcmV?d00001 diff --git a/examples/webgl_loader_gltf_anisotropy.html b/examples/webgl_loader_gltf_anisotropy.html new file mode 100644 index 00000000000000..696c427061267d --- /dev/null +++ b/examples/webgl_loader_gltf_anisotropy.html @@ -0,0 +1,112 @@ + + + + three.js webgl - GLTFloader + Anisotropy + + + + + + +

    + three.js - GLTFLoader + KHR_materials_anisotropy
    + Anisotropy Barn Lamp from glTF-Sample-Models
    + Venice Sunset by HDRI Haven +
    + + + + + + + + + + + From b58f39645187596904b96fdcca31cb76cbde037e Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Tue, 9 May 2023 17:11:34 -0700 Subject: [PATCH 39/40] add build files --- build/three.cjs | 137 ++++++++++++++++++++++++++++++-------- build/three.js | 137 ++++++++++++++++++++++++++++++-------- build/three.min.js | 2 +- build/three.module.js | 137 ++++++++++++++++++++++++++++++-------- build/three.module.min.js | 2 +- 5 files changed, 332 insertions(+), 83 deletions(-) diff --git a/build/three.cjs b/build/three.cjs index dcc0be7b838e3d..e0aad6424a9692 100644 --- a/build/three.cjs +++ b/build/three.cjs @@ -1104,7 +1104,7 @@ class Vector2 { class Matrix3 { - constructor() { + constructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { Matrix3.prototype.isMatrix3 = true; @@ -1116,6 +1116,12 @@ class Matrix3 { ]; + if ( n11 !== undefined ) { + + this.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ); + + } + } set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { @@ -2048,7 +2054,7 @@ class Texture extends EventDispatcher { const output = { metadata: { - version: 4.5, + version: 4.6, type: 'Texture', generator: 'Texture.toJSON' }, @@ -5789,7 +5795,7 @@ class Ray { class Matrix4 { - constructor() { + constructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { Matrix4.prototype.isMatrix4 = true; @@ -5802,6 +5808,12 @@ class Matrix4 { ]; + if ( n11 !== undefined ) { + + this.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ); + + } + } set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { @@ -7698,7 +7710,7 @@ class Object3D extends EventDispatcher { }; output.metadata = { - version: 4.5, + version: 4.6, type: 'Object', generator: 'Object3D.toJSON' }; @@ -8464,7 +8476,7 @@ class Material extends EventDispatcher { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Material', generator: 'Material.toJSON' } @@ -8529,6 +8541,15 @@ class Material extends EventDispatcher { } + if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; + if ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation; + + if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { + + data.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid; + + } + if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; @@ -11163,7 +11184,7 @@ class BufferGeometry extends EventDispatcher { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'BufferGeometry', generator: 'BufferGeometry.toJSON' } @@ -13628,7 +13649,7 @@ var lights_lambert_pars_fragment = "varying vec3 vViewPosition;\nstruct LambertM var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; -var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; +var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13638,13 +13659,13 @@ var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; -var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; +var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; -var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; +var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; -var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; +var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13676,7 +13697,7 @@ var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\tuniform float morphTar var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; -var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; +var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13686,7 +13707,7 @@ var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; -var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; +var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13740,11 +13761,11 @@ var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; -var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; +var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13798,7 +13819,7 @@ const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive; const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; -const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; +const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14517,7 +14538,9 @@ ShaderLib.physical = { specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, + anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, + anisotropyMap: { value: null }, } ] ), @@ -19363,6 +19386,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', @@ -19399,6 +19424,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', + parameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '', + parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19572,6 +19599,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropy ? '#define USE_ANISOTROPY' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -20094,11 +20124,14 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; + const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; + const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; + const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20171,6 +20204,9 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, + anisotropy: HAS_ANISOTROPY, + anisotropyMap: HAS_ANISOTROPYMAP, + clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20214,6 +20250,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), + anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ), + clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20235,7 +20273,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities // - vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, + vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUv1s: HAS_ATTRIBUTE_UV1, @@ -20367,6 +20405,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); + array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20440,6 +20479,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities _programLayers.enable( 15 ); if ( parameters.vertexTangents ) _programLayers.enable( 16 ); + if ( parameters.anisotropy ) + _programLayers.enable( 17 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27318,6 +27359,18 @@ function WebGLMaterials( renderer, properties ) { } + if ( material.anisotropy > 0 ) { + + uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); + + if ( material.anisotropyMap ) { + + uniforms.anisotropyMap.value = material.anisotropyMap; + + } + + } + uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29333,7 +29386,7 @@ class WebGLRenderer { const colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; + const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -31706,7 +31759,7 @@ class Skeleton { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Skeleton', generator: 'Skeleton.toJSON' }, @@ -33013,7 +33066,7 @@ class Curve { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Curve', generator: 'Curve.toJSON' } @@ -38802,6 +38855,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.type = 'MeshPhysicalMaterial'; + this.anisotropyRotation = 0; + this.anisotropyMap = null; + this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38845,30 +38901,31 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._sheen = 0.0; + this._anisotropy = 0; this._clearcoat = 0; this._iridescence = 0; + this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get sheen() { + get anisotropy() { - return this._sheen; + return this._anisotropy; } - set sheen( value ) { + set anisotropy( value ) { - if ( this._sheen > 0 !== value > 0 ) { + if ( this._anisotropy > 0 !== value > 0 ) { this.version ++; } - this._sheen = value; + this._anisotropy = value; } @@ -38908,6 +38965,24 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { } + get sheen() { + + return this._sheen; + + } + + set sheen( value ) { + + if ( this._sheen > 0 !== value > 0 ) { + + this.version ++; + + } + + this._sheen = value; + + } + get transmission() { return this._transmission; @@ -38937,6 +39012,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { }; + this.anisotropy = source.anisotropy; + this.anisotropyRotation = source.anisotropyRotation; + this.anisotropyMap = source.anisotropyMap; + this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -43221,6 +43300,8 @@ class MaterialLoader extends Loader { if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); + if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; + if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43424,6 +43505,8 @@ class MaterialLoader extends Loader { if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); + if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); + if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.js b/build/three.js index 13f9eb843c1e7c..32a4861d867ae4 100644 --- a/build/three.js +++ b/build/three.js @@ -1109,7 +1109,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated class Matrix3 { - constructor() { + constructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { Matrix3.prototype.isMatrix3 = true; @@ -1121,6 +1121,12 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated ]; + if ( n11 !== undefined ) { + + this.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ); + + } + } set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { @@ -2053,7 +2059,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const output = { metadata: { - version: 4.5, + version: 4.6, type: 'Texture', generator: 'Texture.toJSON' }, @@ -5794,7 +5800,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated class Matrix4 { - constructor() { + constructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { Matrix4.prototype.isMatrix4 = true; @@ -5807,6 +5813,12 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated ]; + if ( n11 !== undefined ) { + + this.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ); + + } + } set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { @@ -7703,7 +7715,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated }; output.metadata = { - version: 4.5, + version: 4.6, type: 'Object', generator: 'Object3D.toJSON' }; @@ -8469,7 +8481,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Material', generator: 'Material.toJSON' } @@ -8534,6 +8546,15 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } + if ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy; + if ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation; + + if ( this.anisotropyMap && this.anisotropyMap.isTexture ) { + + data.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid; + + } + if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; @@ -11168,7 +11189,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const data = { metadata: { - version: 4.5, + version: 4.6, type: 'BufferGeometry', generator: 'BufferGeometry.toJSON' } @@ -13633,7 +13654,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; - var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; + var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13643,13 +13664,13 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; - var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; + var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; - var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; + var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; - var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; + var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13681,7 +13702,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; - var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; + var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13691,7 +13712,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; - var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; + var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13745,11 +13766,11 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; - var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; + var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; - var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; + var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; - var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; + var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13803,7 +13824,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; - const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; + const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14522,7 +14543,9 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, + anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, + anisotropyMap: { value: null }, } ] ), @@ -19368,6 +19391,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', @@ -19404,6 +19429,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', + parameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '', + parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19577,6 +19604,9 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropy ? '#define USE_ANISOTROPY' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -20099,11 +20129,14 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; + const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; + const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; + const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20176,6 +20209,9 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, + anisotropy: HAS_ANISOTROPY, + anisotropyMap: HAS_ANISOTROPYMAP, + clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20219,6 +20255,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), + anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ), + clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20240,7 +20278,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated // - vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, + vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUv1s: HAS_ATTRIBUTE_UV1, @@ -20372,6 +20410,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); + array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20445,6 +20484,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated _programLayers.enable( 15 ); if ( parameters.vertexTangents ) _programLayers.enable( 16 ); + if ( parameters.anisotropy ) + _programLayers.enable( 17 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27323,6 +27364,18 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } + if ( material.anisotropy > 0 ) { + + uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); + + if ( material.anisotropyMap ) { + + uniforms.anisotropyMap.value = material.anisotropyMap; + + } + + } + uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29338,7 +29391,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; + const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -31711,7 +31764,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Skeleton', generator: 'Skeleton.toJSON' }, @@ -33018,7 +33071,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Curve', generator: 'Curve.toJSON' } @@ -38807,6 +38860,9 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated this.type = 'MeshPhysicalMaterial'; + this.anisotropyRotation = 0; + this.anisotropyMap = null; + this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38850,30 +38906,31 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._sheen = 0.0; + this._anisotropy = 0; this._clearcoat = 0; this._iridescence = 0; + this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get sheen() { + get anisotropy() { - return this._sheen; + return this._anisotropy; } - set sheen( value ) { + set anisotropy( value ) { - if ( this._sheen > 0 !== value > 0 ) { + if ( this._anisotropy > 0 !== value > 0 ) { this.version ++; } - this._sheen = value; + this._anisotropy = value; } @@ -38913,6 +38970,24 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated } + get sheen() { + + return this._sheen; + + } + + set sheen( value ) { + + if ( this._sheen > 0 !== value > 0 ) { + + this.version ++; + + } + + this._sheen = value; + + } + get transmission() { return this._transmission; @@ -38942,6 +39017,10 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated }; + this.anisotropy = source.anisotropy; + this.anisotropyRotation = source.anisotropyRotation; + this.anisotropyMap = source.anisotropyMap; + this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -43226,6 +43305,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); + if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; + if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43429,6 +43510,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); + if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); + if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.min.js b/build/three.min.js index cf886bbbf1b51c..1fcdd28fa35456 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -4,4 +4,4 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="153dev",n=0,i=1,r=2,s=1,a=2,o=3,l=0,c=1,h=2,u=0,d=1,p=2,m=3,f=4,g=5,v=100,_=101,y=102,x=103,M=104,S=200,b=201,E=202,T=203,w=204,A=205,R=206,C=207,L=208,P=209,I=210,U=0,D=1,N=2,O=3,F=4,B=5,z=6,G=7,H=0,k=1,V=2,W=0,X=1,j=2,q=3,Y=4,Z=5,J=300,K=301,$=302,Q=303,tt=304,et=306,nt=1e3,it=1001,rt=1002,st=1003,at=1004,ot=1005,lt=1006,ct=1007,ht=1008,ut=1009,dt=1010,pt=1011,mt=1012,ft=1013,gt=1014,vt=1015,_t=1016,yt=1017,xt=1018,Mt=1020,St=1021,bt=1023,Et=1024,Tt=1025,wt=1026,At=1027,Rt=1028,Ct=1029,Lt=1030,Pt=1031,It=1033,Ut=33776,Dt=33777,Nt=33778,Ot=33779,Ft=35840,Bt=35841,zt=35842,Gt=35843,Ht=36196,kt=37492,Vt=37496,Wt=37808,Xt=37809,jt=37810,qt=37811,Yt=37812,Zt=37813,Jt=37814,Kt=37815,$t=37816,Qt=37817,te=37818,ee=37819,ne=37820,ie=37821,re=36492,se=36283,ae=36284,oe=36285,le=36286,ce=2300,he=2301,ue=2302,de=2400,pe=2401,me=2402,fe=2500,ge=2501,ve=3e3,_e=3001,ye=3201,xe=0,Me=1,Se="",be="srgb",Ee="srgb-linear",Te="display-p3",we=7680,Ae=512,Re=513,Ce=514,Le=515,Pe=516,Ie=517,Ue=518,De=519,Ne=35044,Oe="300 es",Fe=1035;class Be{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+ze[t>>16&255]+ze[t>>24&255]+"-"+ze[255&e]+ze[e>>8&255]+"-"+ze[e>>16&15|64]+ze[e>>24&255]+"-"+ze[63&n|128]+ze[n>>8&255]+"-"+ze[n>>16&255]+ze[n>>24&255]+ze[255&i]+ze[i>>8&255]+ze[i>>16&255]+ze[i>>24&255]).toLowerCase()}function We(t,e,n){return Math.max(e,Math.min(n,t))}function Xe(t,e){return(t%e+e)%e}function je(t,e,n){return(1-n)*t+n*e}function qe(t){return 0==(t&t-1)&&0!==t}function Ye(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Ze(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Je(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ke(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const $e={DEG2RAD:He,RAD2DEG:ke,generateUUID:Ve,clamp:We,euclideanModulo:Xe,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:je,damp:function(t,e,n,i){return je(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Xe(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(Ge=t);let e=Ge+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*He},radToDeg:function(t){return t*ke},isPowerOfTwo:qe,ceilPowerOfTwo:Ye,floorPowerOfTwo:Ze,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ke,denormalize:Je};class Qe{constructor(t=0,e=0){Qe.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(We(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class tn{constructor(){tn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*x,r[3]=s*f+a*_+o*M,r[6]=s*g+a*y+o*S,r[1]=l*m+c*v+h*x,r[4]=l*f+c*_+h*M,r[7]=l*g+c*y+h*S,r[2]=u*m+d*v+p*x,r[5]=u*f+d*_+p*M,r[8]=u*g+d*y+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(en.makeScale(t,e)),this}rotate(t){return this.premultiply(en.makeRotation(-t)),this}translate(t,e){return this.premultiply(en.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const en=new tn;function nn(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const rn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function sn(t,e){return new rn[t](e)}function an(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const on={};function ln(t){t in on||(on[t]=!0,console.warn(t))}function cn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function hn(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const un=(new tn).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),dn=(new tn).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const pn={[Ee]:t=>t,[be]:t=>t.convertSRGBToLinear(),[Te]:function(t){return t.convertSRGBToLinear().applyMatrix3(dn)}},mn={[Ee]:t=>t,[be]:t=>t.convertLinearToSRGB(),[Te]:function(t){return t.applyMatrix3(un).convertLinearToSRGB()}},fn={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return Ee},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=pn[e],r=mn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let gn;class vn{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===gn&&(gn=an("canvas")),gn.width=t.width,gn.height=t.height;const n=gn.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=gn}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=an("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==J)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case nt:t.x=t.x-Math.floor(t.x);break;case it:t.x=t.x<0?0:1;break;case rt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case nt:t.y=t.y-Math.floor(t.y);break;case it:t.y=t.y<0?0:1;break;case rt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return ln("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===be?_e:ve}set encoding(t){ln("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===_e?be:Se}}Sn.DEFAULT_IMAGE=null,Sn.DEFAULT_MAPPING=J,Sn.DEFAULT_ANISOTROPY=1;class bn{constructor(t=0,e=0,n=0,i=1){bn.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(We(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Rn{constructor(t=0,e=0,n=0){Rn.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Ln.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ln.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Cn.copy(this).projectOnVector(t),this.sub(Cn)}reflect(t){return this.sub(Cn.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(We(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Cn=new Rn,Ln=new An;class Pn{constructor(t=new Rn(1/0,1/0,1/0),e=new Rn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Un),Un.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Hn),kn.subVectors(this.max,Hn),Nn.subVectors(t.a,Hn),On.subVectors(t.b,Hn),Fn.subVectors(t.c,Hn),Bn.subVectors(On,Nn),zn.subVectors(Fn,On),Gn.subVectors(Nn,Fn);let e=[0,-Bn.z,Bn.y,0,-zn.z,zn.y,0,-Gn.z,Gn.y,Bn.z,0,-Bn.x,zn.z,0,-zn.x,Gn.z,0,-Gn.x,-Bn.y,Bn.x,0,-zn.y,zn.x,0,-Gn.y,Gn.x,0];return!!Xn(e,Nn,On,Fn,kn)&&(e=[1,0,0,0,1,0,0,0,1],!!Xn(e,Nn,On,Fn,kn)&&(Vn.crossVectors(Bn,zn),e=[Vn.x,Vn.y,Vn.z],Xn(e,Nn,On,Fn,kn)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Un).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Un).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(In[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),In[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),In[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),In[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),In[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),In[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),In[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),In[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(In)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const In=[new Rn,new Rn,new Rn,new Rn,new Rn,new Rn,new Rn,new Rn],Un=new Rn,Dn=new Pn,Nn=new Rn,On=new Rn,Fn=new Rn,Bn=new Rn,zn=new Rn,Gn=new Rn,Hn=new Rn,kn=new Rn,Vn=new Rn,Wn=new Rn;function Xn(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Wn.fromArray(t,s);const a=r.x*Math.abs(Wn.x)+r.y*Math.abs(Wn.y)+r.z*Math.abs(Wn.z),o=e.dot(Wn),l=n.dot(Wn),c=i.dot(Wn);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const jn=new Pn,qn=new Rn,Yn=new Rn;class Zn{constructor(t=new Rn,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):jn.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;qn.subVectors(t,this.center);const e=qn.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(qn,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Yn.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(qn.copy(t.center).add(Yn)),this.expandByPoint(qn.copy(t.center).sub(Yn))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Jn=new Rn,Kn=new Rn,$n=new Rn,Qn=new Rn,ti=new Rn,ei=new Rn,ni=new Rn;class ii{constructor(t=new Rn,e=new Rn(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Jn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Jn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Jn.copy(this.origin).addScaledVector(this.direction,e),Jn.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Kn.copy(t).add(e).multiplyScalar(.5),$n.copy(e).sub(t).normalize(),Qn.copy(this.origin).sub(Kn);const r=.5*t.distanceTo(e),s=-this.direction.dot($n),a=Qn.dot(this.direction),o=-Qn.dot($n),l=Qn.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Kn).addScaledVector($n,u),d}intersectSphere(t,e){Jn.subVectors(t.center,this.origin);const n=Jn.dot(this.direction),i=Jn.dot(Jn)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Jn)}intersectTriangle(t,e,n,i,r){ti.subVectors(e,t),ei.subVectors(n,t),ni.crossVectors(ti,ei);let s,a=this.direction.dot(ni);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Qn.subVectors(this.origin,t);const o=s*this.direction.dot(ei.crossVectors(Qn,ei));if(o<0)return null;const l=s*this.direction.dot(ti.cross(Qn));if(l<0)return null;if(o+l>a)return null;const c=-s*Qn.dot(ni);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ri{constructor(){ri.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ri).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/si.setFromMatrixColumn(t,0).length(),r=1/si.setFromMatrixColumn(t,1).length(),s=1/si.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(oi,t,li)}lookAt(t,e,n){const i=this.elements;return ui.subVectors(t,e),0===ui.lengthSq()&&(ui.z=1),ui.normalize(),ci.crossVectors(n,ui),0===ci.lengthSq()&&(1===Math.abs(n.z)?ui.x+=1e-4:ui.z+=1e-4,ui.normalize(),ci.crossVectors(n,ui)),ci.normalize(),hi.crossVectors(ui,ci),i[0]=ci.x,i[4]=hi.x,i[8]=ui.x,i[1]=ci.y,i[5]=hi.y,i[9]=ui.y,i[2]=ci.z,i[6]=hi.z,i[10]=ui.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],M=i[0],S=i[4],b=i[8],E=i[12],T=i[1],w=i[5],A=i[9],R=i[13],C=i[2],L=i[6],P=i[10],I=i[14],U=i[3],D=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*C+l*U,r[4]=s*S+a*w+o*L+l*D,r[8]=s*b+a*A+o*P+l*N,r[12]=s*E+a*R+o*I+l*O,r[1]=c*M+h*T+u*C+d*U,r[5]=c*S+h*w+u*L+d*D,r[9]=c*b+h*A+u*P+d*N,r[13]=c*E+h*R+u*I+d*O,r[2]=p*M+m*T+f*C+g*U,r[6]=p*S+m*w+f*L+g*D,r[10]=p*b+m*A+f*P+g*N,r[14]=p*E+m*R+f*I+g*O,r[3]=v*M+_*T+y*C+x*U,r[7]=v*S+_*w+y*L+x*D,r[11]=v*b+_*A+y*P+x*N,r[15]=v*E+_*R+y*I+x*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,_=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,y=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,x=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*_+i*y+r*x;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=_*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=y*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=x*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,_=o*c,y=o*h,x=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+_)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=si.set(i[0],i[1],i[2]).length();const s=si.set(i[4],i[5],i[6]).length(),a=si.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],ai.copy(this);const o=1/r,l=1/s,c=1/a;return ai.elements[0]*=o,ai.elements[1]*=o,ai.elements[2]*=o,ai.elements[4]*=l,ai.elements[5]*=l,ai.elements[6]*=l,ai.elements[8]*=c,ai.elements[9]*=c,ai.elements[10]*=c,e.setFromRotationMatrix(ai),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const si=new Rn,ai=new ri,oi=new Rn(0,0,0),li=new Rn(1,1,1),ci=new Rn,hi=new Rn,ui=new Rn,di=new ri,pi=new An;class mi{constructor(t=0,e=0,n=0,i=mi.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(We(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-We(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(We(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-We(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(We(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-We(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return di.makeRotationFromQuaternion(t),this.setFromRotationMatrix(di,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return pi.setFromEuler(this),this.setFromQuaternion(pi,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}mi.DEFAULT_ORDER="XYZ";class fi{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Mi,t,Si),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Mi,bi,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Li.subVectors(i,e),Pi.subVectors(n,e),Ii.subVectors(t,e);const s=Li.dot(Li),a=Li.dot(Pi),o=Li.dot(Ii),l=Pi.dot(Pi),c=Pi.dot(Ii),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Ui),Ui.x>=0&&Ui.y>=0&&Ui.x+Ui.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===Gi&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Gi=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Ui),o.setScalar(0),o.addScaledVector(r,Ui.x),o.addScaledVector(s,Ui.y),o.addScaledVector(a,Ui.z),o}static isFrontFacing(t,e,n,i){return Li.subVectors(n,e),Pi.subVectors(t,e),Li.cross(Pi).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Li.subVectors(this.c,this.b),Pi.subVectors(this.a,this.b),.5*Li.cross(Pi).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Hi.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Hi.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Gi&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Gi=!0),Hi.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Hi.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Hi.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Hi.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Di.subVectors(i,n),Ni.subVectors(r,n),Fi.subVectors(t,n);const o=Di.dot(Fi),l=Ni.dot(Fi);if(o<=0&&l<=0)return e.copy(n);Bi.subVectors(t,i);const c=Di.dot(Bi),h=Ni.dot(Bi);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Di,s);zi.subVectors(t,r);const d=Di.dot(zi),p=Ni.dot(zi);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Ni,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Oi.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Oi,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Di,s).addScaledVector(Ni,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let ki=0;class Vi extends Be{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:ki++}),this.uuid=Ve(),this.name="",this.type="Material",this.blending=d,this.side=l,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=w,this.blendDst=A,this.blendEquation=v,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=O,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=we,this.stencilZFail=we,this.stencilZPass=we,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==d&&(n.blending=this.blending),this.side!==l&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Wi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Xi={h:0,s:0,l:0},ji={h:0,s:0,l:0};function qi(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Yi{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=be){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,fn.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=fn.workingColorSpace){return this.r=t,this.g=e,this.b=n,fn.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=fn.workingColorSpace){if(t=Xe(t,1),e=We(e,0,1),n=We(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=qi(r,i,t+1/3),this.g=qi(r,i,t),this.b=qi(r,i,t-1/3)}return fn.toWorkingColorSpace(this,i),this}setStyle(t,e=be){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=be){const n=Wi[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=cn(t.r),this.g=cn(t.g),this.b=cn(t.b),this}copyLinearToSRGB(t){return this.r=hn(t.r),this.g=hn(t.g),this.b=hn(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=be){return fn.fromWorkingColorSpace(Zi.copy(this),t),65536*Math.round(We(255*Zi.r,0,255))+256*Math.round(We(255*Zi.g,0,255))+Math.round(We(255*Zi.b,0,255))}getHexString(t=be){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=fn.workingColorSpace){fn.fromWorkingColorSpace(Zi.copy(this),e);const n=Zi.r,i=Zi.g,r=Zi.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Qi(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=We(t,-65504,65504),Ki.floatView[0]=t;const e=Ki.uint32View[0],n=e>>23&511;return Ki.baseTable[n]+((8388607&e)>>Ki.shiftTable[n])}function tr(t){const e=t>>10;return Ki.uint32View[0]=Ki.mantissaTable[Ki.offsetTable[e]+(1023&t)]+Ki.exponentTable[e],Ki.floatView[0]}const er={toHalfFloat:Qi,fromHalfFloat:tr},nr=new Rn,ir=new Qe;class rr{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=Ne,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}gr.copy(r).invert(),vr.copy(t.ray).applyMatrix4(gr),null!==n.boundingBox&&!1===vr.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,vr)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,c=r.attributes.uv1,h=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let r=0,o=u.length;rn.far?null:{distance:u,point:Ir.clone(),object:t}}(t,e,n,i,xr,Mr,Sr,Pr);if(d){r&&(Tr.fromBufferAttribute(r,o),wr.fromBufferAttribute(r,h),Ar.fromBufferAttribute(r,u),d.uv=Hi.getInterpolation(Pr,xr,Mr,Sr,Tr,wr,Ar,new Qe)),s&&(Tr.fromBufferAttribute(s,o),wr.fromBufferAttribute(s,h),Ar.fromBufferAttribute(s,u),d.uv1=Hi.getInterpolation(Pr,xr,Mr,Sr,Tr,wr,Ar,new Qe),d.uv2=d.uv1),a&&(Rr.fromBufferAttribute(a,o),Cr.fromBufferAttribute(a,h),Lr.fromBufferAttribute(a,u),d.normal=Hi.getInterpolation(Pr,xr,Mr,Sr,Rr,Cr,Lr,new Rn),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const t={a:o,b:h,c:u,normal:new Rn,materialIndex:0};Hi.getNormal(xr,Mr,Sr,t.normal),d.face=t}return d}class Nr extends fr{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const _=s/f,y=p/g,x=s/2,M=p/2,S=m/2,b=f+1,E=g+1;let T=0,w=0;const A=new Rn;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Hr extends Ci{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ri,this.projectionMatrix=new ri,this.projectionMatrixInverse=new ri}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class kr extends Hr{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*ke*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*He*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*ke*Math.atan(Math.tan(.5*He*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*He*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Vr=-90;class Wr extends Ci{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new kr(Vr,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new kr(Vr,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new kr(Vr,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new kr(Vr,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new kr(Vr,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new kr(Vr,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=W,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Xr extends Sn{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:K,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class jr extends En{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];void 0!==e.encoding&&(ln("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===_e?be:Se),this.texture=new Xr(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:lt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new Nr(5,5,5),r=new Gr({name:"CubemapFromEquirect",uniforms:Or(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:c,blending:u});r.uniforms.tEquirect.value=e;const s=new Ur(i,r),a=e.minFilter;e.minFilter===ht&&(e.minFilter=lt);return new Wr(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const qr=new Rn,Yr=new Rn,Zr=new tn;class Jr{constructor(t=new Rn(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=qr.subVectors(n,e).cross(Yr.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(qr),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Zr.getNormalMatrix(t),i=this.coplanarPoint(qr).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Kr=new Zn,$r=new Rn;class Qr{constructor(t=new Jr,e=new Jr,n=new Jr,i=new Jr,r=new Jr,s=new Jr){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],_=n[15];return e[0].setComponents(a-i,h-o,m-u,_-f).normalize(),e[1].setComponents(a+i,h+o,m+u,_+f).normalize(),e[2].setComponents(a+r,h+l,m+d,_+g).normalize(),e[3].setComponents(a-r,h-l,m-d,_-g).normalize(),e[4].setComponents(a-s,h-c,m-p,_-v).normalize(),e[5].setComponents(a+s,h+c,m+p,_+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Kr.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Kr.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Kr)}intersectsSprite(t){return Kr.center.set(0,0,0),Kr.radius=.7071067811865476,Kr.applyMatrix4(t.matrixWorld),this.intersectsSphere(Kr)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,$r.y=i.normal.y>0?t.max.y:t.min.y,$r.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint($r)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function ts(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function es(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},rs={common:{diffuse:{value:new Yi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new tn},alphaMap:{value:null},alphaMapTransform:{value:new tn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new tn}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new tn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new tn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new tn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new tn},normalScale:{value:new Qe(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new tn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new tn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new tn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new tn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Yi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Yi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new tn}},sprite:{diffuse:{value:new Yi(16777215)},opacity:{value:1},center:{value:new Qe(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new tn},alphaMap:{value:null},alphaTest:{value:0}}},ss={basic:{uniforms:Fr([rs.common,rs.specularmap,rs.envmap,rs.aomap,rs.lightmap,rs.fog]),vertexShader:is.meshbasic_vert,fragmentShader:is.meshbasic_frag},lambert:{uniforms:Fr([rs.common,rs.specularmap,rs.envmap,rs.aomap,rs.lightmap,rs.emissivemap,rs.bumpmap,rs.normalmap,rs.displacementmap,rs.fog,rs.lights,{emissive:{value:new Yi(0)}}]),vertexShader:is.meshlambert_vert,fragmentShader:is.meshlambert_frag},phong:{uniforms:Fr([rs.common,rs.specularmap,rs.envmap,rs.aomap,rs.lightmap,rs.emissivemap,rs.bumpmap,rs.normalmap,rs.displacementmap,rs.fog,rs.lights,{emissive:{value:new Yi(0)},specular:{value:new Yi(1118481)},shininess:{value:30}}]),vertexShader:is.meshphong_vert,fragmentShader:is.meshphong_frag},standard:{uniforms:Fr([rs.common,rs.envmap,rs.aomap,rs.lightmap,rs.emissivemap,rs.bumpmap,rs.normalmap,rs.displacementmap,rs.roughnessmap,rs.metalnessmap,rs.fog,rs.lights,{emissive:{value:new Yi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:is.meshphysical_vert,fragmentShader:is.meshphysical_frag},toon:{uniforms:Fr([rs.common,rs.aomap,rs.lightmap,rs.emissivemap,rs.bumpmap,rs.normalmap,rs.displacementmap,rs.gradientmap,rs.fog,rs.lights,{emissive:{value:new Yi(0)}}]),vertexShader:is.meshtoon_vert,fragmentShader:is.meshtoon_frag},matcap:{uniforms:Fr([rs.common,rs.bumpmap,rs.normalmap,rs.displacementmap,rs.fog,{matcap:{value:null}}]),vertexShader:is.meshmatcap_vert,fragmentShader:is.meshmatcap_frag},points:{uniforms:Fr([rs.points,rs.fog]),vertexShader:is.points_vert,fragmentShader:is.points_frag},dashed:{uniforms:Fr([rs.common,rs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:is.linedashed_vert,fragmentShader:is.linedashed_frag},depth:{uniforms:Fr([rs.common,rs.displacementmap]),vertexShader:is.depth_vert,fragmentShader:is.depth_frag},normal:{uniforms:Fr([rs.common,rs.bumpmap,rs.normalmap,rs.displacementmap,{opacity:{value:1}}]),vertexShader:is.meshnormal_vert,fragmentShader:is.meshnormal_frag},sprite:{uniforms:Fr([rs.sprite,rs.fog]),vertexShader:is.sprite_vert,fragmentShader:is.sprite_frag},background:{uniforms:{uvTransform:{value:new tn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:is.background_vert,fragmentShader:is.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:is.backgroundCube_vert,fragmentShader:is.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:is.cube_vert,fragmentShader:is.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:is.equirect_vert,fragmentShader:is.equirect_frag},distanceRGBA:{uniforms:Fr([rs.common,rs.displacementmap,{referencePosition:{value:new Rn},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:is.distanceRGBA_vert,fragmentShader:is.distanceRGBA_frag},shadow:{uniforms:Fr([rs.lights,rs.fog,{color:{value:new Yi(0)},opacity:{value:1}}]),vertexShader:is.shadow_vert,fragmentShader:is.shadow_frag}};ss.physical={uniforms:Fr([ss.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new tn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new tn},clearcoatNormalScale:{value:new Qe(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new tn},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new tn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new tn},sheen:{value:0},sheenColor:{value:new Yi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new tn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new tn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new tn},transmissionSamplerSize:{value:new Qe},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new tn},attenuationDistance:{value:0},attenuationColor:{value:new Yi(0)},specularColor:{value:new Yi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new tn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new tn}}]),vertexShader:is.meshphysical_vert,fragmentShader:is.meshphysical_frag};const as={r:0,b:0,g:0};function os(t,e,n,i,r,s,a){const o=new Yi(0);let h,u,d=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(as,Br(t)),i.buffers.color.setClear(as.r,as.g,as.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),d=e,g(o,d)},getClearAlpha:function(){return d},setClearAlpha:function(t){d=t,g(o,d)},render:function(s,v){let _=!1,y=!0===v.isScene?v.background:null;if(y&&y.isTexture){y=(v.backgroundBlurriness>0?n:e).get(y)}switch(null===y?g(o,d):y&&y.isColor&&(g(y,1),_=!0),t.xr.getEnvironmentBlendMode()){case"opaque":_=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,a),_=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,a),_=!0}(t.autoClear||_)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),y&&(y.isCubeTexture||y.mapping===et)?(void 0===u&&(u=new Ur(new Nr(1,1,1),new Gr({name:"BackgroundCubeMaterial",uniforms:Or(ss.backgroundCube.uniforms),vertexShader:ss.backgroundCube.vertexShader,fragmentShader:ss.backgroundCube.fragmentShader,side:c,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(u)),u.material.uniforms.envMap.value=y,u.material.uniforms.flipEnvMap.value=y.isCubeTexture&&!1===y.isRenderTargetTexture?-1:1,u.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,u.material.toneMapped=y.colorSpace!==be,p===y&&m===y.version&&f===t.toneMapping||(u.material.needsUpdate=!0,p=y,m=y.version,f=t.toneMapping),u.layers.enableAll(),s.unshift(u,u.geometry,u.material,0,0,null)):y&&y.isTexture&&(void 0===h&&(h=new Ur(new ns(2,2),new Gr({name:"BackgroundMaterial",uniforms:Or(ss.background.uniforms),vertexShader:ss.background.vertexShader,fragmentShader:ss.background.fragmentShader,side:l,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(h)),h.material.uniforms.t2D.value=y,h.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,h.material.toneMapped=y.colorSpace!==be,!0===y.matrixAutoUpdate&&y.updateMatrix(),h.material.uniforms.uvTransform.value.copy(y.matrix),p===y&&m===y.version&&f===t.toneMapping||(h.material.needsUpdate=!0,p=y,m=y.version,f=t.toneMapping),h.layers.enableAll(),s.unshift(h,h.geometry,h.material,0,0,null))}}}function ls(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,y,d,x),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,y,d,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===t||(c.geometry=y.id,c.program=d.id,c.wireframe=t,M=!0)}null!==x&&n.update(x,t.ELEMENT_ARRAY_BUFFER),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const s=c[e];if(s.location>=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,l=a.itemSize,c=n.get(a);if(void 0===c)continue;const h=c.buffer,u=c.type,d=c.bytesPerElement,p=!0===i.isWebGL2&&(u===t.INT||u===t.UNSIGNED_INT||a.gpuType===ft);if(a.isInterleavedBufferAttribute){const n=a.data,i=n.stride,c=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),g=t.getParameter(t.MAX_VARYING_VECTORS),v=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,y=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:y,floatVertexTextures:_&&y,maxSamples:s?t.getParameter(t.MAX_SAMPLES):0}}function us(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Jr,o=new tn,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function ds(t){let e=new WeakMap;function n(t,e){return e===Q?t.mapping=K:e===tt&&(t.mapping=$),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===Q||s===tt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new jr(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class ps extends Hr{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const ms=4,fs=[.125,.215,.35,.446,.526,.582],gs=20,vs=new ps,_s=new Yi;let ys=null;const xs=(1+Math.sqrt(5))/2,Ms=1/xs,Ss=[new Rn(1,1,1),new Rn(-1,1,1),new Rn(1,1,-1),new Rn(-1,1,-1),new Rn(0,xs,Ms),new Rn(0,xs,-Ms),new Rn(Ms,0,xs),new Rn(-Ms,0,xs),new Rn(xs,Ms,0),new Rn(-xs,Ms,0)];class bs{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ys=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=As(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ws(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-ms?o=fs[a-t+ms-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),_=new Float32Array(f*p*d),y=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),_.set(u,f*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const x=new fr;x.setAttribute("position",new rr(v,m)),x.setAttribute("uv",new rr(_,f)),x.setAttribute("faceIndex",new rr(y,g)),e.push(x),r>ms&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(gs),r=new Rn(0,1,0),s=new Gr({name:"SphericalGaussianBlur",defines:{n:gs,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Rs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Ur(this._lodPlanes[0],t);this._renderer.compile(e,vs)}_sceneToCubeUV(t,e,n,i){const r=new kr(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,h=o.toneMapping;o.getClearColor(_s),o.toneMapping=W,o.autoClear=!1;const u=new Ji({name:"PMREM.Background",side:c,depthWrite:!1,depthTest:!1}),d=new Ur(new Nr,u);let p=!1;const m=t.background;m?m.isColor&&(u.color.copy(m),t.background=null,p=!0):(u.color.copy(_s),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;Ts(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(d,r),o.render(t,r)}d.geometry.dispose(),d.material.dispose(),o.toneMapping=h,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===K||t.mapping===$;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=As()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ws());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Ur(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;Ts(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,vs)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;egs&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${gs}`);const f=[];let g=0;for(let t=0;tv-ms?i-v+ms:0),4*(this._cubeSize-_),3*_,2*_),o.setRenderTarget(e),o.render(c,vs)}}function Es(t,e,n){const i=new En(t,e,n);return i.texture.mapping=et,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Ts(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ws(){return new Gr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Rs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function As(){return new Gr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Rs(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:u,depthTest:!1,depthWrite:!1})}function Rs(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Cs(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===Q||s===tt,o=s===K||s===$;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new bs(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(T=Math.ceil(E/e.maxTextureSize),E=e.maxTextureSize);const w=new Float32Array(E*T*4*p),A=new Tn(w,E,T,p);A.type=vt,A.needsUpdate=!0;const R=4*b;for(let L=0;L0)return t;const r=e*n;let s=ks[r];if(void 0===s&&(s=new Float32Array(r),ks[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Ys(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Xa(t,e){const n=function(t){switch(t){case Ee:return["Linear","( value )"];case be:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function ja(t,e){let n;switch(e){case X:n="Linear";break;case j:n="Reinhard";break;case q:n="OptimizedCineon";break;case Y:n="ACESFilmic";break;case Z:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function qa(t){return""!==t}function Ya(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Za(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Ja=/^[ \t]*#include +<([\w\d./]+)>/gm;function Ka(t){return t.replace(Ja,$a)}function $a(t,e){const n=is[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Ka(n)}const Qa=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function to(t){return t.replace(Qa,eo)}function eo(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(y+="\n"),x=[g,v].filter(qa).join("\n"),x.length>0&&(x+="\n")):(y=[no(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(qa).join("\n"),x=[g,no(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==W?"#define TONE_MAPPING":"",n.toneMapping!==W?is.tonemapping_pars_fragment:"",n.toneMapping!==W?ja("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",is.encodings_pars_fragment,Xa("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(qa).join("\n")),c=Ka(c),c=Ya(c,n),c=Za(c,n),h=Ka(h),h=Ya(h,n),h=Za(h,n),c=to(c),h=to(h),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",y=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,x=["#define varying in",n.glslVersion===Oe?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Oe?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const S=M+y+c,b=M+x+h,E=ka(r,r.VERTEX_SHADER,S),T=ka(r,r.FRAGMENT_SHADER,b);if(r.attachShader(_,E),r.attachShader(_,T),void 0!==n.index0AttributeName?r.bindAttribLocation(_,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(_,0,"position"),r.linkProgram(_),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(_).trim(),n=r.getShaderInfoLog(E).trim(),i=r.getShaderInfoLog(T).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(_,r.LINK_STATUS))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,_,E,T);else{const t=Wa(r,E,"vertex"),n=Wa(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(_,r.VALIDATE_STATUS)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:y},fragmentShader:{log:i,prefix:x}})}let w,A;return r.deleteShader(E),r.deleteShader(T),this.getUniforms=function(){return void 0===w&&(w=new Ha(r,_)),w},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r0,Z=s.iridescence>0,J=s.sheen>0,K=s.transmission>0,$=Y&&!!s.clearcoatMap,Q=Y&&!!s.clearcoatNormalMap,tt=Y&&!!s.clearcoatRoughnessMap,nt=Z&&!!s.iridescenceMap,it=Z&&!!s.iridescenceThicknessMap,rt=J&&!!s.sheenColorMap,st=J&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ct=K&&!!s.transmissionMap,ht=K&&!!s.thicknessMap,ut=!!s.gradientMap,dt=!!s.alphaMap,pt=s.alphaTest>0,mt=!!s.extensions,ft=!!S.attributes.uv1,gt=!!S.attributes.uv2,vt=!!S.attributes.uv3;return{isWebGL2:p,shaderID:w,shaderName:s.type,vertexShader:C,fragmentShader:L,defines:s.defines,customVertexShaderID:P,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:g,instancing:N,instancingColor:N&&null!==x.instanceColor,supportsVertexTextures:f,outputColorSpace:null===D?t.outputColorSpace:!0===D.isXRRenderTarget?D.texture.colorSpace:Ee,map:O,matcap:F,envMap:B,envMapMode:B&&E.mapping,envMapCubeUVHeight:T,aoMap:z,lightMap:G,bumpMap:H,normalMap:k,displacementMap:f&&V,emissiveMap:X,normalMapObjectSpace:k&&s.normalMapType===Me,normalMapTangentSpace:k&&s.normalMapType===xe,metalnessMap:j,roughnessMap:q,clearcoat:Y,clearcoatMap:$,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:Z,iridescenceMap:nt,iridescenceThicknessMap:it,sheen:J,sheenColorMap:rt,sheenRoughnessMap:st,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:K,transmissionMap:ct,thicknessMap:ht,gradientMap:ut,opaque:!1===s.transparent&&s.blending===d,alphaMap:dt,alphaTest:pt,combine:s.combine,mapUv:O&&_(s.map.channel),aoMapUv:z&&_(s.aoMap.channel),lightMapUv:G&&_(s.lightMap.channel),bumpMapUv:H&&_(s.bumpMap.channel),normalMapUv:k&&_(s.normalMap.channel),displacementMapUv:V&&_(s.displacementMap.channel),emissiveMapUv:X&&_(s.emissiveMap.channel),metalnessMapUv:j&&_(s.metalnessMap.channel),roughnessMapUv:q&&_(s.roughnessMap.channel),clearcoatMapUv:$&&_(s.clearcoatMap.channel),clearcoatNormalMapUv:Q&&_(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&_(s.clearcoatRoughnessMap.channel),iridescenceMapUv:nt&&_(s.iridescenceMap.channel),iridescenceThicknessMapUv:it&&_(s.iridescenceThicknessMap.channel),sheenColorMapUv:rt&&_(s.sheenColorMap.channel),sheenRoughnessMapUv:st&&_(s.sheenRoughnessMap.channel),specularMapUv:at&&_(s.specularMap.channel),specularColorMapUv:ot&&_(s.specularColorMap.channel),specularIntensityMapUv:lt&&_(s.specularIntensityMap.channel),transmissionMapUv:ct&&_(s.transmissionMap.channel),thicknessMapUv:ht&&_(s.thicknessMap.channel),alphaMapUv:dt&&_(s.alphaMap.channel),vertexTangents:k&&!!S.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!S.attributes.color&&4===S.attributes.color.itemSize,vertexUv1s:ft,vertexUv2s:gt,vertexUv3s:vt,pointsUvs:!0===x.isPoints&&!!S.attributes.uv&&(O||dt),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:m,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==S.morphAttributes.position,morphNormals:void 0!==S.morphAttributes.normal,morphColors:void 0!==S.morphAttributes.color,morphTargetsCount:R,morphTextureStride:U,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:W,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===h,flipSided:s.side===c,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:mt&&!0===s.extensions.derivatives,extensionFragDepth:mt&&!0===s.extensions.fragDepth,extensionDrawBuffers:mt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:mt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:p||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:p||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:p||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.opaque&&o.enable(17);e.pointsUvs&&o.enable(18);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=ss[e];n=zr.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=u.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||co),i.length>1&&i.sort(e||ho),r.length>1&&r.sort(e||ho)}}}function po(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new uo,t.set(e,[r])):n>=i.length?(r=new uo,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function mo(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Rn,color:new Yi};break;case"SpotLight":n={position:new Rn,direction:new Rn,color:new Yi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Rn,color:new Yi,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Rn,skyColor:new Yi,groundColor:new Yi};break;case"RectAreaLight":n={color:new Yi,position:new Rn,halfWidth:new Rn,halfHeight:new Rn}}return t[e.id]=n,n}}}let fo=0;function go(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function vo(t,e){const n=new mo,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qe};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qe,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new Rn);const s=new Rn,a=new ri,o=new ri;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,_=0,y=0;s.sort(go);const x=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=rs.LTC_FLOAT_1,r.rectAreaLTC2=rs.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=rs.LTC_HALF_1,r.rectAreaLTC2=rs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===_||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+_-y,r.spotLightMap.length=_,r.numSpotLightShadowsWithMaps=y,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=_,r.version=fo++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new _o(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class xo extends Vi{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class Mo extends Vi{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function So(t,e,n){let i=new Qr;const r=new Qe,a=new Qe,d=new bn,p=new xo({depthPacking:ye}),m=new Mo,f={},g=n.maxTextureSize,v={[l]:c,[c]:l,[h]:h},_=new Gr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Qe},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),y=_.clone();y.defines.HORIZONTAL_PASS=1;const x=new fr;x.setAttribute("position",new rr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Ur(x,_),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=s;let b=this.type;function E(n,i){const s=e.update(M);_.defines.VSM_SAMPLES!==n.blurSamples&&(_.defines.VSM_SAMPLES=n.blurSamples,y.defines.VSM_SAMPLES=n.blurSamples,_.needsUpdate=!0,y.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new En(r.x,r.y)),_.uniforms.shadow_pass.value=n.map.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,_,M,null),y.uniforms.shadow_pass.value=n.mapPass.texture,y.uniforms.resolution.value=n.mapSize,y.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,y,M,null)}function T(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?m:p,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=f[t];void 0===i&&(i={},f[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===o?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function w(n,r,s,a,l){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&l===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let o=0,c=e.length;og||r.y>g)&&(r.x>g&&(a.x=Math.floor(g/u.x),r.x=a.x*u.x,h.mapSize.x=a.x),r.y>g&&(a.y=Math.floor(g/u.y),r.y=a.y*u.y,h.mapSize.y=a.y)),null===h.map||!0===m||!0===f){const t=this.type!==o?{minFilter:st,magFilter:st}:{};null!==h.map&&h.map.dispose(),h.map=new En(r.x,r.y,t),h.map.texture.name=c.name+".shadowMap",h.camera.updateProjectionMatrix()}t.setRenderTarget(h.map),t.clear();const v=h.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,mt={};const ft=t.getParameter(t.SCISSOR_BOX),gt=t.getParameter(t.VIEWPORT),vt=(new bn).fromArray(ft),_t=(new bn).fromArray(gt);function yt(e,n,i,r){const s=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;oi||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Ze:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=_(s,a));const o=n?_(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function x(t){return qe(t.width)&&qe(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==st&&t.minFilter!==lt}function S(e){t.generateMipmap(e)}function b(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return i===t.RED&&(r===t.FLOAT&&(l=t.R32F),r===t.HALF_FLOAT&&(l=t.R16F),r===t.UNSIGNED_BYTE&&(l=t.R8)),i===t.RG&&(r===t.FLOAT&&(l=t.RG32F),r===t.HALF_FLOAT&&(l=t.RG16F),r===t.UNSIGNED_BYTE&&(l=t.RG8)),i===t.RGBA&&(r===t.FLOAT&&(l=t.RGBA32F),r===t.HALF_FLOAT&&(l=t.RGBA16F),r===t.UNSIGNED_BYTE&&(l=s===be&&!1===a?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(l=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(l=t.RGB5_A1)),l!==t.R16F&&l!==t.R32F&&l!==t.RG16F&&l!==t.RG32F&&l!==t.RGBA16F&&l!==t.RGBA32F||e.get("EXT_color_buffer_float"),l}function E(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==st&&t.minFilter!==lt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(e){return e===st||e===at||e===ot?t.NEAREST:t.LINEAR}function w(t){const e=t.target;e.removeEventListener("dispose",w),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&R(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void O(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const P={[nt]:t.REPEAT,[it]:t.CLAMP_TO_EDGE,[rt]:t.MIRRORED_REPEAT},I={[st]:t.NEAREST,[at]:t.NEAREST_MIPMAP_NEAREST,[ot]:t.NEAREST_MIPMAP_LINEAR,[lt]:t.LINEAR,[ct]:t.LINEAR_MIPMAP_NEAREST,[ht]:t.LINEAR_MIPMAP_LINEAR},U={[Ae]:t.NEVER,[De]:t.ALWAYS,[Re]:t.LESS,[Le]:t.LEQUAL,[Ce]:t.EQUAL,[Ue]:t.GEQUAL,[Pe]:t.GREATER,[Ie]:t.NOTEQUAL};function D(n,s,a){if(a?(t.texParameteri(n,t.TEXTURE_WRAP_S,P[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,P[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,P[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,I[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,I[s.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),s.wrapS===it&&s.wrapT===it||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,t.TEXTURE_MAG_FILTER,T(s.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,T(s.minFilter)),s.minFilter!==st&&s.minFilter!==lt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,U[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===st)return;if(s.minFilter!==ot&&s.minFilter!==ht)return;if(s.type===vt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===_t&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function N(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",w));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&R(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function O(e,r,a){let l=t.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY),r.isData3DTexture&&(l=t.TEXTURE_3D);const c=N(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=function(t){return!o&&(t.wrapS!==it||t.wrapT!==it||t.minFilter!==st&&t.minFilter!==lt)}(r)&&!1===x(r.image);let i=y(r.image,e,!1,h);i=k(r,i);const p=x(i)||o,m=s.convert(r.format,r.colorSpace);let f,g=s.convert(r.type),v=b(r.internalFormat,m,g,r.colorSpace);D(l,r,p);const _=r.mipmaps,T=o&&!0!==r.isVideoTexture,w=void 0===d.__version||!0===c,A=E(r,i,p);if(r.isDepthTexture)v=t.DEPTH_COMPONENT,o?v=r.type===vt?t.DEPTH_COMPONENT32F:r.type===gt?t.DEPTH_COMPONENT24:r.type===Mt?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:r.type===vt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===wt&&v===t.DEPTH_COMPONENT&&r.type!==mt&&r.type!==gt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=gt,g=s.convert(r.type)),r.format===At&&v===t.DEPTH_COMPONENT&&(v=t.DEPTH_STENCIL,r.type!==Mt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Mt,g=s.convert(r.type))),w&&(T?n.texStorage2D(t.TEXTURE_2D,1,v,i.width,i.height):n.texImage2D(t.TEXTURE_2D,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e>=1,r>>=1}}else if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(t.FRAMEBUFFER,null)}function B(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let r=t.DEPTH_COMPONENT16;if(i||H(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===vt?r=t.DEPTH_COMPONENT32F:e.type===gt&&(r=t.DEPTH_COMPONENT24));const i=G(n);H(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,i,r,n.width,n.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,i,r,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,r,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=G(n);i&&!1===H(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):H(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function k(t,n){const i=t.colorSpace,r=t.format,s=t.type;return!0===t.isCompressedTexture||t.format===Fe||i!==Ee&&i!==Se&&(i===be?!1===o?!0===e.has("EXT_sRGB")&&r===bt?(t.format=Fe,t.minFilter=lt,t.generateMipmaps=!1):n=vn.sRGBToLinear(n):r===bt&&s===ut||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){const t=C;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),C+=1,t},this.resetTextureUnits=function(){C=0},this.setTexture2D=L,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=N(e,r),h=r.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:y(r.image[t],!1,!0,c),d[t]=k(r,d[t]);const p=d[0],m=x(p)||o,f=s.convert(r.format,r.colorSpace),g=s.convert(r.type),v=b(r.internalFormat,f,g,r.colorSpace),_=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let w,A=E(r,p,m);if(D(t.TEXTURE_CUBE_MAP,r,m),e){_&&T&&n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,p.width,p.height);for(let e=0;e<6;e++){w=d[e].mipmaps;for(let i=0;i0&&A++,n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,d[0].width,d[0].height));for(let e=0;e<6;e++)if(i){_?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,d[e].width,d[e].height,f,g,d[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,v,d[e].width,d[e].height,0,f,g,d[e].data);for(let i=0;i0&&!1===H(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===H(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=[],c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Ro)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Ao;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class Lo extends Sn{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:wt)!==wt&&c!==At)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===wt&&(n=gt),void 0===n&&c===At&&(n=Mt),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:st,this.minFilter=void 0!==o?o:st,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class Po extends Be{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],_=[],y=new Set,x=new Map,M=new kr;M.layers.enable(1),M.viewport=new bn;const S=new kr;S.layers.enable(2),S.viewport=new bn;const b=[M,S],E=new wo;E.layers.enable(1),E.layers.enable(2);let T=null,w=null;function A(t){const e=_.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function R(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",C);for(let t=0;t=0&&(_[i]=null,v[i].disconnect(n))}for(let e=0;e=_.length){_.push(n),i=t;break}if(null===_[t]){_[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new Co,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new Co,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new Co,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",R),i.addEventListener("inputsourceschange",C),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new En(d.framebufferWidth,d.framebufferHeight,{format:bt,type:ut,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?At:wt,s=m.stencil?Mt:gt);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new En(u.textureWidth,u.textureHeight,{format:bt,type:ut,depthTexture:new Lo(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),D.setContext(i),D.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};const L=new Rn,P=new Rn;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;E.near=S.near=M.near=t.near,E.far=S.far=M.far=t.far,T===E.near&&w===E.far||(i.updateRenderState({depthNear:E.near,depthFar:E.far}),T=E.near,w=E.far);const e=t.parent,n=E.cameras;I(E,e);for(let t=0;te&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){U=t},this.dispose=function(){}}}function Io(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===c&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===c&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Br(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===c&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Uo(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0&&function(t,e,n,i){if(null===V){const t=J.isWebGL2;V=new En(1024,1024,{generateMipmaps:!0,type:Z.has("EXT_color_buffer_half_float")?_t:ut,minFilter:ht,samples:t&&!0===o?4:0})}const r=S.getRenderTarget();S.setRenderTarget(V),S.clear();const s=S.toneMapping;S.toneMapping=W,jt(t,n,i),tt.updateMultisampleRenderTarget(V),tt.updateRenderTargetMipmap(V);let a=!1;for(let t=0,r=e.length;t0&&jt(r,e,n),s.length>0&&jt(s,e,n),a.length>0&&jt(a,e,n),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1)}function jt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?M[M.length-1]:null,x.pop(),_=x.length>0?x[x.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return T},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){Q.get(t.texture).__webglTexture=e,Q.get(t.depthTexture).__webglTexture=n;const i=Q.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===Z.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=Q.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,E=e,T=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=Q.get(t);void 0!==n.__useDefaultFramebuffer?(K.bindFramebuffer(Lt.FRAMEBUFFER,null),i=!1):void 0===n.__webglFramebuffer?tt.setupRenderTarget(t):n.__hasExternalTextures&&tt.rebindTextures(t,Q.get(t.texture).__webglTexture,Q.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=Q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=J.isWebGL2&&t.samples>0&&!1===tt.useMultisampledRTT(t)?Q.get(t).__webglMultisampledFramebuffer:l,C.copy(t.viewport),L.copy(t.scissor),P=t.scissorTest}else C.copy(F).multiplyScalar(D).floor(),L.copy(B).multiplyScalar(D).floor(),P=z;if(K.bindFramebuffer(Lt.FRAMEBUFFER,r)&&J.drawBuffers&&i&&K.drawBuffers(t,r),K.viewport(C),K.scissor(L),K.setScissorTest(P),s){const i=Q.get(t.texture);Lt.framebufferTexture2D(Lt.FRAMEBUFFER,Lt.COLOR_ATTACHMENT0,Lt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Q.get(t.texture),r=e||0;Lt.framebufferTextureLayer(Lt.FRAMEBUFFER,Lt.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}A=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){K.bindFramebuffer(Lt.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==bt&&wt.convert(o)!==Lt.getParameter(Lt.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===_t&&(Z.has("EXT_color_buffer_half_float")||J.isWebGL2&&Z.has("EXT_color_buffer_float"));if(!(l===ut||wt.convert(l)===Lt.getParameter(Lt.IMPLEMENTATION_COLOR_READ_TYPE)||l===vt&&(J.isWebGL2||Z.has("OES_texture_float")||Z.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Lt.readPixels(e,n,i,r,wt.convert(o),wt.convert(l),s)}finally{const t=null!==w?Q.get(w).__webglFramebuffer:null;K.bindFramebuffer(Lt.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);tt.setTexture2D(e,0),Lt.copyTexSubImage2D(Lt.TEXTURE_2D,n,0,0,t.x,t.y,r,s),K.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=wt.convert(n.format),o=wt.convert(n.type);tt.setTexture2D(n,0),Lt.pixelStorei(Lt.UNPACK_FLIP_Y_WEBGL,n.flipY),Lt.pixelStorei(Lt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Lt.pixelStorei(Lt.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?Lt.texSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Lt.compressedTexSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Lt.texSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Lt.generateMipmap(Lt.TEXTURE_2D),K.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(S.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=wt.convert(i.format),c=wt.convert(i.type);let h;if(i.isData3DTexture)tt.setTexture3D(i,0),h=Lt.TEXTURE_3D;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");tt.setTexture2DArray(i,0),h=Lt.TEXTURE_2D_ARRAY}Lt.pixelStorei(Lt.UNPACK_FLIP_Y_WEBGL,i.flipY),Lt.pixelStorei(Lt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),Lt.pixelStorei(Lt.UNPACK_ALIGNMENT,i.unpackAlignment);const u=Lt.getParameter(Lt.UNPACK_ROW_LENGTH),d=Lt.getParameter(Lt.UNPACK_IMAGE_HEIGHT),p=Lt.getParameter(Lt.UNPACK_SKIP_PIXELS),m=Lt.getParameter(Lt.UNPACK_SKIP_ROWS),f=Lt.getParameter(Lt.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Lt.pixelStorei(Lt.UNPACK_ROW_LENGTH,g.width),Lt.pixelStorei(Lt.UNPACK_IMAGE_HEIGHT,g.height),Lt.pixelStorei(Lt.UNPACK_SKIP_PIXELS,t.min.x),Lt.pixelStorei(Lt.UNPACK_SKIP_ROWS,t.min.y),Lt.pixelStorei(Lt.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isData3DTexture?Lt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Lt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Lt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Lt.pixelStorei(Lt.UNPACK_ROW_LENGTH,u),Lt.pixelStorei(Lt.UNPACK_IMAGE_HEIGHT,d),Lt.pixelStorei(Lt.UNPACK_SKIP_PIXELS,p),Lt.pixelStorei(Lt.UNPACK_SKIP_ROWS,m),Lt.pixelStorei(Lt.UNPACK_SKIP_IMAGES,f),0===r&&i.generateMipmaps&&Lt.generateMipmap(h),K.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?tt.setTextureCube(t,0):t.isData3DTexture?tt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?tt.setTexture2DArray(t,0):tt.setTexture2D(t,0),K.unbindTexture()},this.resetState=function(){E=0,T=0,w=null,K.reset(),At.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===be?_e:ve}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===_e?be:Ee}}class Oo extends No{}Oo.prototype.isWebGL1Renderer=!0;class Fo{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Yi(t),this.density=e}clone(){return new Fo(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Bo{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Yi(t),this.near=e,this.far=n}clone(){return new Bo(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class zo extends Ci{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Go{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=Ne,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ve()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Xo.clone(),uv:Hi.getInterpolation(Xo,Ko,$o,Qo,tl,el,nl,new Qe),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function rl(t,e,n,i,r,s){Yo.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Zo.x=s*Yo.x-r*Yo.y,Zo.y=r*Yo.x+s*Yo.y):Zo.copy(Yo),t.copy(e),t.x+=Zo.x,t.y+=Zo.y,t.applyMatrix4(Jo)}const sl=new Rn,al=new Rn;class ol extends Ci{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){sl.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(sl);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){sl.setFromMatrixPosition(t.matrixWorld),al.setFromMatrixPosition(this.matrixWorld);const n=sl.distanceTo(al)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Jl extends Sn{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Kl{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Qe:new Rn);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Rn,i=[],r=[],s=[],a=new Rn,o=new ri;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Rn)}r[0]=new Rn,s[0]=new Rn;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(We(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(We(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class $l extends Kl{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new Qe,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(ec.subVectors(i[0],i[1]).add(i[0]),a=ec);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(ac(a,o.x,l.x,c.x,h.x),ac(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class yc extends fr{constructor(t=[new Qe(0,-.5),new Qe(.5,0),new Qe(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=We(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new Rn,u=new Qe,d=new Rn,p=new Rn,m=new Rn;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new or(h,3)),this.setAttribute("normal",new or(u,3)),this.setAttribute("uv",new or(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Sc(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class bc extends Sc{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new bc(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Ec extends fr{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new or(r,3)),this.setAttribute("normal",new or(r.slice(),3)),this.setAttribute("uv",new or(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Ec(t.vertices,t.indices,t.radius,t.details)}}class Tc extends Ec{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Tc(t.radius,t.detail)}}const wc=new Rn,Ac=new Rn,Rc=new Rn,Cc=new Hi;class Lc extends fr{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(He*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Nc(s,a,n,o,l,p,0),a};function Uc(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=th(s,t[s],t[s+1],a);return a&&Yc(a,a.next)&&(eh(a),a=a.next),a}function Dc(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Yc(i,i.next)&&0!==qc(i.prev,i,i.next))i=i.next;else{if(eh(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Nc(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Vc(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Fc(t,i,r,s):Oc(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),eh(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Nc(t=Bc(Dc(t),e,n),e,n,i,r,s,2):2===a&&zc(t,e,n,i,r,s):Nc(Dc(t),e,n,i,r,s,1);break}}function Oc(t){const e=t.prev,n=t,i=t.next;if(qc(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Xc(r,o,s,l,a,c,m.x,m.y)&&qc(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Fc(t,e,n,i){const r=t.prev,s=t,a=t.next;if(qc(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Vc(p,m,e,n,i),_=Vc(f,g,e,n,i);let y=t.prevZ,x=t.nextZ;for(;y&&y.z>=v&&x&&x.z<=_;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Xc(o,h,l,u,c,d,y.x,y.y)&&qc(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Xc(o,h,l,u,c,d,x.x,x.y)&&qc(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=v;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Xc(o,h,l,u,c,d,y.x,y.y)&&qc(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Xc(o,h,l,u,c,d,x.x,x.y)&&qc(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Bc(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Yc(r,s)&&Zc(r,i,i.next,s)&&$c(r,s)&&$c(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),eh(i),eh(i.next),i=t=s),i=i.next}while(i!==t);return Dc(i)}function zc(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&jc(a,t)){let o=Qc(a,t);return a=Dc(a,a.next),o=Dc(o,o.next),Nc(a,e,n,i,r,s,0),void Nc(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Gc(t,e){return t.x-e.x}function Hc(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Xc(an.x||i.x===n.x&&kc(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=Qc(n,t);return Dc(i,i.next),Dc(n,n.next)}function kc(t,e){return qc(t.prev,t,e.prev)<0&&qc(e.next,t,t.next)<0}function Vc(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Wc(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function jc(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Zc(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&($c(t,e)&&$c(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(qc(t.prev,t,e.prev)||qc(t,e.prev,e))||Yc(t,e)&&qc(t.prev,t,t.next)>0&&qc(e.prev,e,e.next)>0)}function qc(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Yc(t,e){return t.x===e.x&&t.y===e.y}function Zc(t,e,n,i){const r=Kc(qc(t,e,n)),s=Kc(qc(t,e,i)),a=Kc(qc(n,i,t)),o=Kc(qc(n,i,e));return r!==s&&a!==o||(!(0!==r||!Jc(t,n,e))||(!(0!==s||!Jc(t,i,e))||(!(0!==a||!Jc(n,t,i))||!(0!==o||!Jc(n,e,i)))))}function Jc(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Kc(t){return t>0?1:t<0?-1:0}function $c(t,e){return qc(t.prev,t,t.next)<0?qc(t,e,t.next)>=0&&qc(t,t.prev,e)>=0:qc(t,e,t.prev)<0||qc(t,t.next,e)<0}function Qc(t,e){const n=new nh(t.i,t.x,t.y),i=new nh(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function th(t,e,n,i){const r=new nh(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function eh(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function nh(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class ih{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function sh(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new Qe(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new Qe(i/s,r/s)}const P=[];for(let t=0,e=w.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=w.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class Eh extends Vi{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Yi(16777215),this.specular=new Yi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Yi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new Qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=H,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Th extends Vi{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Yi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Yi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new Qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class wh extends Vi{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new Qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class Ah extends Vi{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Yi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Yi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new Qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=H,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Rh extends Vi{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Yi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=xe,this.normalScale=new Qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Ch extends Il{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function Lh(t,e,n){return Ih(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function Ph(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function Ih(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Uh(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Dh(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Nh(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Oh={arraySlice:Lh,convertArray:Ph,isTypedArray:Ih,getKeyframeOrder:Uh,sortedArray:Dh,flattenJSON:Nh,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Lh(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Lh(t.resultBuffer,e,n)}if("quaternion"===r){(new An).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Lh(n,r,s),this.values=Lh(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Ih(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Lh(this.times),e=Lh(this.values),n=this.getValueSize(),i=this.getInterpolation()===ue,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Lh(t,0,s),this.values=Lh(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Lh(this.times,0),e=Lh(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Hh.prototype.TimeBufferType=Float32Array,Hh.prototype.ValueBufferType=Float32Array,Hh.prototype.DefaultInterpolation=he;class kh extends Hh{}kh.prototype.ValueTypeName="bool",kh.prototype.ValueBufferType=Array,kh.prototype.DefaultInterpolation=ce,kh.prototype.InterpolantFactoryMethodLinear=void 0,kh.prototype.InterpolantFactoryMethodSmooth=void 0;class Vh extends Hh{}Vh.prototype.ValueTypeName="color";class Wh extends Hh{}Wh.prototype.ValueTypeName="number";class Xh extends Fh{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)An.slerpFlat(r,0,s,l-a,s,l,o);return r}}class jh extends Hh{InterpolantFactoryMethodLinear(t){return new Xh(this.times,this.values,this.getValueSize(),t)}}jh.prototype.ValueTypeName="quaternion",jh.prototype.DefaultInterpolation=he,jh.prototype.InterpolantFactoryMethodSmooth=void 0;class qh extends Hh{}qh.prototype.ValueTypeName="string",qh.prototype.ValueBufferType=Array,qh.prototype.DefaultInterpolation=ce,qh.prototype.InterpolantFactoryMethodLinear=void 0,qh.prototype.InterpolantFactoryMethodSmooth=void 0;class Yh extends Hh{}Yh.prototype.ValueTypeName="vector";class Zh{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Ve(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Jh(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Hh.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Nh(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==eu[t])return void eu[t].push({onLoad:e,onProgress:n,onError:i});eu[t]=[],eu[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=eu[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Kh.add(t,e);const n=eu[t];delete eu[t];for(let t=0,i=n.length;t{const n=eu[t];if(void 0===n)throw this.manager.itemError(t),e;delete eu[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class ru extends tu{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Kh.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=an("img");function o(){c(),Kh.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class su extends Ci{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Yi(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}class au extends su{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Ci.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Yi(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const ou=new ri,lu=new Rn,cu=new Rn;class hu{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Qe(512,512),this.map=null,this.mapPass=null,this.matrix=new ri,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Qr,this._frameExtents=new Qe(1,1),this._viewportCount=1,this._viewports=[new bn(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;lu.setFromMatrixPosition(t.matrixWorld),e.position.copy(lu),cu.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(cu),e.updateMatrixWorld(),ou.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ou),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(ou)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class uu extends hu{constructor(){super(new kr(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*ke*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class du extends su{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Ci.DEFAULT_UP),this.updateMatrix(),this.target=new Ci,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new uu}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const pu=new ri,mu=new Rn,fu=new Rn;class gu extends hu{constructor(){super(new kr(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Qe(4,2),this._viewportCount=6,this._viewports=[new bn(2,1,1,1),new bn(0,1,1,1),new bn(3,1,1,1),new bn(1,1,1,1),new bn(3,0,1,1),new bn(1,0,1,1)],this._cubeDirections=[new Rn(1,0,0),new Rn(-1,0,0),new Rn(0,0,1),new Rn(0,0,-1),new Rn(0,1,0),new Rn(0,-1,0)],this._cubeUps=[new Rn(0,1,0),new Rn(0,1,0),new Rn(0,1,0),new Rn(0,1,0),new Rn(0,0,1),new Rn(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),mu.setFromMatrixPosition(t.matrixWorld),n.position.copy(mu),fu.copy(n.position),fu.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(fu),n.updateMatrixWorld(),i.makeTranslation(-mu.x,-mu.y,-mu.z),pu.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(pu)}}class vu extends su{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new gu}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class _u extends hu{constructor(){super(new ps(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class yu extends su{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Ci.DEFAULT_UP),this.updateMatrix(),this.target=new Ci,this.shadow=new _u}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class xu extends su{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class Mu extends su{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class Su{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Rn)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class bu extends su{constructor(t=new Su,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class Eu extends tu{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new iu(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=Eu.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Yi).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Yi).setHex(r.value);break;case"v2":i.uniforms[e].value=(new Qe).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new Rn).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new bn).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new tn).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new ri).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Qe).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Qe).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:xh,SpriteMaterial:Vo,RawShaderMaterial:Mh,ShaderMaterial:Gr,PointsMaterial:Vl,MeshPhysicalMaterial:bh,MeshStandardMaterial:Sh,MeshPhongMaterial:Eh,MeshToonMaterial:Th,MeshNormalMaterial:wh,MeshLambertMaterial:Ah,MeshDepthMaterial:xo,MeshDistanceMaterial:Mo,MeshBasicMaterial:Ji,MeshMatcapMaterial:Rh,LineDashedMaterial:Ch,LineBasicMaterial:Il,Material:Vi}[t]}}class Tu{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){An.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;An.multiplyQuaternionsFlat(t,s,t,e,t,n),An.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Yu="\\[\\]\\.:\\/",Zu=new RegExp("["+Yu+"]","g"),Ju="[^"+Yu+"]",Ku="[^"+Yu.replace("\\.","")+"]",$u=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",Ju)+/(WCOD+)?/.source.replace("WCOD",Ku)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Ju)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Ju)+"$"),Qu=["material","materials","bones","map"];class td{constructor(t,e,n){this.path=e,this.parsedPath=n||td.parseTrackName(e),this.node=td.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new td.Composite(t,e,n):new td(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Zu,"")}static parseTrackName(t){const e=$u.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==Qu.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===ge)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=pe,i.endingEnd=pe):(i.endingStart=t?this.zeroSlopeAtStart?pe:de:me,i.endingEnd=e?this.zeroSlopeAtEnd?pe:de:me)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const nd=new Float32Array(1);class id{constructor(t){this.value=t}clone(){return new id(void 0===this.value.clone?this.value:this.value.clone())}}let rd=0;function sd(t,e){return t.distance-e.distance}function ad(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new td(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}},t.AnimationUtils=Oh,t.ArcCurve=Ql,t.ArrayCamera=wo,t.ArrowHelper=class extends Ci{constructor(t=new Rn(0,0,1),e=new Rn(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===wd&&(wd=new fr,wd.setAttribute("position",new or([0,0,0,0,1,0],3)),Ad=new Sc(0,.5,1,5,1),Ad.translate(0,-.5,0)),this.position.copy(e),this.line=new Bl(wd,new Il({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Ur(Ad,new Ji({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Td.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Td,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=ku,t.AudioAnalyser=class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;nthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,od).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},t.Box3=Pn,t.Box3Helper=class extends Hl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new fr;i.setIndex(new rr(n,1)),i.setAttribute("position",new or([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new Il({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends Nr{constructor(t,e,n,i,r,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(t,e,n,i,r,s)}},t.BoxGeometry=Nr,t.BoxHelper=class extends Hl{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new fr;r.setIndex(new rr(n,1)),r.setAttribute("position",new rr(i,3)),super(r,new Il({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&Ed.setFromObject(this.object),Ed.isEmpty())return;const e=Ed.min,n=Ed.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=rr,t.BufferGeometry=fr,t.BufferGeometryLoader=Au,t.ByteType=dt,t.Cache=Kh,t.Camera=Hr,t.CameraHelper=class extends Hl{constructor(t){const e=new fr,n=new Il({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new or(i,3)),e.setAttribute("color",new or(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Yi(16755200),c=new Yi(16711680),h=new Yi(43775),u=new Yi(16777215),d=new Yi(3355443);this.setColors(l,c,h,u,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;Sd.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),bd("c",e,t,Sd,0,0,-1),bd("t",e,t,Sd,0,0,1),bd("n1",e,t,Sd,-1,-1,-1),bd("n2",e,t,Sd,1,-1,-1),bd("n3",e,t,Sd,-1,1,-1),bd("n4",e,t,Sd,1,1,-1),bd("f1",e,t,Sd,-1,-1,1),bd("f2",e,t,Sd,1,-1,1),bd("f3",e,t,Sd,-1,1,1),bd("f4",e,t,Sd,1,1,1),bd("u1",e,t,Sd,.7,1.1,-1),bd("u2",e,t,Sd,-.7,1.1,-1),bd("u3",e,t,Sd,0,2,-1),bd("cf1",e,t,Sd,-1,0,1),bd("cf2",e,t,Sd,1,0,1),bd("cf3",e,t,Sd,0,-1,1),bd("cf4",e,t,Sd,0,1,1),bd("cn1",e,t,Sd,-1,0,-1),bd("cn2",e,t,Sd,1,0,-1),bd("cn3",e,t,Sd,0,-1,-1),bd("cn4",e,t,Sd,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends Sn{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends xc{constructor(t,e,n,i){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(t,e,n,i)}},t.CapsuleGeometry=xc,t.CatmullRomCurve3=sc,t.CineonToneMapping=q,t.CircleBufferGeometry=class extends Mc{constructor(t,e,n,i){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(t,e,n,i)}},t.CircleGeometry=Mc,t.ClampToEdgeWrapping=it,t.Clock=Ou,t.Color=Yi,t.ColorKeyframeTrack=Vh,t.ColorManagement=fn,t.CompressedArrayTexture=class extends Jl{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=it}},t.CompressedTexture=Jl,t.CompressedTextureLoader=class extends tu{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new Jl,o=new iu(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=lt),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e0){const n=new $h(e);r=new ru(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new ru(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e1)for(let n=0;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=ih.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new Pc,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Oo,t.WebGL3DRenderTarget=class extends En{constructor(t=1,e=1,n=1){super(t,e),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new wn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends En{constructor(t=1,e=1,n=1){super(t,e),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new Tn(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=jr,t.WebGLMultipleRenderTargets=class extends En{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLMultipleRenderTargets=!0;const r=this.texture;this.texture=[];for(let t=0;t>8&255]+wt[t>>16&255]+wt[t>>24&255]+"-"+wt[255&e]+wt[e>>8&255]+"-"+wt[e>>16&15|64]+wt[e>>24&255]+"-"+wt[63&n|128]+wt[n>>8&255]+"-"+wt[n>>16&255]+wt[n>>24&255]+wt[255&i]+wt[i>>8&255]+wt[i>>16&255]+wt[i>>24&255]).toLowerCase()}function Pt(t,e,n){return Math.max(e,Math.min(n,t))}function It(t,e){return(t%e+e)%e}function Ut(t,e,n){return(1-n)*t+n*e}function Dt(t){return 0==(t&t-1)&&0!==t}function Nt(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Ot(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Ft(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Bt(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const zt={DEG2RAD:Rt,RAD2DEG:Ct,generateUUID:Lt,clamp:Pt,euclideanModulo:It,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:Ut,damp:function(t,e,n,i){return Ut(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(It(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(At=t);let e=At+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*Rt},radToDeg:function(t){return t*Ct},isPowerOfTwo:Dt,ceilPowerOfTwo:Nt,floorPowerOfTwo:Ot,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Bt,denormalize:Ft};class Gt{constructor(t=0,e=0){Gt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Pt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ht{constructor(t,e,n,i,r,s,a,o,l){Ht.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*x,r[3]=s*f+a*_+o*M,r[6]=s*g+a*y+o*S,r[1]=l*m+c*v+h*x,r[4]=l*f+c*_+h*M,r[7]=l*g+c*y+h*S,r[2]=u*m+d*v+p*x,r[5]=u*f+d*_+p*M,r[8]=u*g+d*y+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(kt.makeScale(t,e)),this}rotate(t){return this.premultiply(kt.makeRotation(-t)),this}translate(t,e){return this.premultiply(kt.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const kt=new Ht;function Vt(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Wt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Xt(t,e){return new Wt[t](e)}function jt(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const qt={};function Yt(t){t in qt||(qt[t]=!0,console.warn(t))}function Zt(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Jt(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Kt=(new Ht).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),$t=(new Ht).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const Qt={[yt]:t=>t,[_t]:t=>t.convertSRGBToLinear(),[xt]:function(t){return t.convertSRGBToLinear().applyMatrix3($t)}},te={[yt]:t=>t,[_t]:t=>t.convertLinearToSRGB(),[xt]:function(t){return t.applyMatrix3(Kt).convertLinearToSRGB()}},ee={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return yt},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=Qt[e],r=te[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let ne;class ie{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===ne&&(ne=jt("canvas")),ne.width=t.width,ne.height=t.height;const n=ne.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=ne}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=jt("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==i)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case c:t.x=t.x-Math.floor(t.x);break;case h:t.x=t.x<0?0:1;break;case u:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case c:t.y=t.y-Math.floor(t.y);break;case h:t.y=t.y<0?0:1;break;case u:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Yt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===_t?gt:ft}set encoding(t){Yt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===gt?_t:vt}}le.DEFAULT_IMAGE=null,le.DEFAULT_MAPPING=i,le.DEFAULT_ANISOTROPY=1;class ce{constructor(t=0,e=0,n=0,i=1){ce.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Pt(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class me{constructor(t=0,e=0,n=0){me.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(ge.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ge.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return fe.copy(this).projectOnVector(t),this.sub(fe)}reflect(t){return this.sub(fe.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Pt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const fe=new me,ge=new pe;class ve{constructor(t=new me(1/0,1/0,1/0),e=new me(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,ye),ye.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ae),Re.subVectors(this.max,Ae),Me.subVectors(t.a,Ae),Se.subVectors(t.b,Ae),be.subVectors(t.c,Ae),Te.subVectors(Se,Me),Ee.subVectors(be,Se),we.subVectors(Me,be);let e=[0,-Te.z,Te.y,0,-Ee.z,Ee.y,0,-we.z,we.y,Te.z,0,-Te.x,Ee.z,0,-Ee.x,we.z,0,-we.x,-Te.y,Te.x,0,-Ee.y,Ee.x,0,-we.y,we.x,0];return!!Pe(e,Me,Se,be,Re)&&(e=[1,0,0,0,1,0,0,0,1],!!Pe(e,Me,Se,be,Re)&&(Ce.crossVectors(Te,Ee),e=[Ce.x,Ce.y,Ce.z],Pe(e,Me,Se,be,Re)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,ye).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(ye).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(_e[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_e[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_e[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_e[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_e[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_e[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_e[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_e[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_e)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _e=[new me,new me,new me,new me,new me,new me,new me,new me],ye=new me,xe=new ve,Me=new me,Se=new me,be=new me,Te=new me,Ee=new me,we=new me,Ae=new me,Re=new me,Ce=new me,Le=new me;function Pe(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Le.fromArray(t,s);const a=r.x*Math.abs(Le.x)+r.y*Math.abs(Le.y)+r.z*Math.abs(Le.z),o=e.dot(Le),l=n.dot(Le),c=i.dot(Le);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Ie=new ve,Ue=new me,De=new me;class Ne{constructor(t=new me,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Ie.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Ue.subVectors(t,this.center);const e=Ue.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(Ue,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(De.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Ue.copy(t.center).add(De)),this.expandByPoint(Ue.copy(t.center).sub(De))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Oe=new me,Fe=new me,Be=new me,ze=new me,Ge=new me,He=new me,ke=new me;class Ve{constructor(t=new me,e=new me(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Oe)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Oe.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Oe.copy(this.origin).addScaledVector(this.direction,e),Oe.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Fe.copy(t).add(e).multiplyScalar(.5),Be.copy(e).sub(t).normalize(),ze.copy(this.origin).sub(Fe);const r=.5*t.distanceTo(e),s=-this.direction.dot(Be),a=ze.dot(this.direction),o=-ze.dot(Be),l=ze.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Fe).addScaledVector(Be,u),d}intersectSphere(t,e){Oe.subVectors(t.center,this.origin);const n=Oe.dot(this.direction),i=Oe.dot(Oe)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Oe)}intersectTriangle(t,e,n,i,r){Ge.subVectors(e,t),He.subVectors(n,t),ke.crossVectors(Ge,He);let s,a=this.direction.dot(ke);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ze.subVectors(this.origin,t);const o=s*this.direction.dot(He.crossVectors(ze,He));if(o<0)return null;const l=s*this.direction.dot(Ge.cross(ze));if(l<0)return null;if(o+l>a)return null;const c=-s*ze.dot(ke);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class We{constructor(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){We.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f)}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new We).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Xe.setFromMatrixColumn(t,0).length(),r=1/Xe.setFromMatrixColumn(t,1).length(),s=1/Xe.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(qe,t,Ye)}lookAt(t,e,n){const i=this.elements;return Ke.subVectors(t,e),0===Ke.lengthSq()&&(Ke.z=1),Ke.normalize(),Ze.crossVectors(n,Ke),0===Ze.lengthSq()&&(1===Math.abs(n.z)?Ke.x+=1e-4:Ke.z+=1e-4,Ke.normalize(),Ze.crossVectors(n,Ke)),Ze.normalize(),Je.crossVectors(Ke,Ze),i[0]=Ze.x,i[4]=Je.x,i[8]=Ke.x,i[1]=Ze.y,i[5]=Je.y,i[9]=Ke.y,i[2]=Ze.z,i[6]=Je.z,i[10]=Ke.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],M=i[0],S=i[4],b=i[8],T=i[12],E=i[1],w=i[5],A=i[9],R=i[13],C=i[2],L=i[6],P=i[10],I=i[14],U=i[3],D=i[7],N=i[11],O=i[15];return r[0]=s*M+a*E+o*C+l*U,r[4]=s*S+a*w+o*L+l*D,r[8]=s*b+a*A+o*P+l*N,r[12]=s*T+a*R+o*I+l*O,r[1]=c*M+h*E+u*C+d*U,r[5]=c*S+h*w+u*L+d*D,r[9]=c*b+h*A+u*P+d*N,r[13]=c*T+h*R+u*I+d*O,r[2]=p*M+m*E+f*C+g*U,r[6]=p*S+m*w+f*L+g*D,r[10]=p*b+m*A+f*P+g*N,r[14]=p*T+m*R+f*I+g*O,r[3]=v*M+_*E+y*C+x*U,r[7]=v*S+_*w+y*L+x*D,r[11]=v*b+_*A+y*P+x*N,r[15]=v*T+_*R+y*I+x*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,_=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,y=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,x=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*_+i*y+r*x;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=_*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=y*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=x*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,_=o*c,y=o*h,x=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+_)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Xe.set(i[0],i[1],i[2]).length();const s=Xe.set(i[4],i[5],i[6]).length(),a=Xe.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],je.copy(this);const o=1/r,l=1/s,c=1/a;return je.elements[0]*=o,je.elements[1]*=o,je.elements[2]*=o,je.elements[4]*=l,je.elements[5]*=l,je.elements[6]*=l,je.elements[8]*=c,je.elements[9]*=c,je.elements[10]*=c,e.setFromRotationMatrix(je),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Xe=new me,je=new We,qe=new me(0,0,0),Ye=new me(1,1,1),Ze=new me,Je=new me,Ke=new me,$e=new We,Qe=new pe;class tn{constructor(t=0,e=0,n=0,i=tn.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(Pt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Pt(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(Pt(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-Pt(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Pt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Pt(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return $e.makeRotationFromQuaternion(t),this.setFromRotationMatrix($e,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Qe.setFromEuler(this),this.setFromQuaternion(Qe,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}tn.DEFAULT_ORDER="XYZ";class en{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ln,t,cn),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ln,hn,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){vn.subVectors(i,e),_n.subVectors(n,e),yn.subVectors(t,e);const s=vn.dot(vn),a=vn.dot(_n),o=vn.dot(yn),l=_n.dot(_n),c=_n.dot(yn),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,xn),xn.x>=0&&xn.y>=0&&xn.x+xn.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===An&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),An=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,xn),o.setScalar(0),o.addScaledVector(r,xn.x),o.addScaledVector(s,xn.y),o.addScaledVector(a,xn.z),o}static isFrontFacing(t,e,n,i){return vn.subVectors(n,e),_n.subVectors(t,e),vn.cross(_n).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return vn.subVectors(this.c,this.b),_n.subVectors(this.a,this.b),.5*vn.cross(_n).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Rn.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Rn.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===An&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),An=!0),Rn.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Rn.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Rn.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Rn.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Mn.subVectors(i,n),Sn.subVectors(r,n),Tn.subVectors(t,n);const o=Mn.dot(Tn),l=Sn.dot(Tn);if(o<=0&&l<=0)return e.copy(n);En.subVectors(t,i);const c=Mn.dot(En),h=Sn.dot(En);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Mn,s);wn.subVectors(t,r);const d=Mn.dot(wn),p=Sn.dot(wn);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Sn,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return bn.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(bn,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Mn,s).addScaledVector(Sn,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Cn=0;class Ln extends Et{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Cn++}),this.uuid=Lt(),this.name="",this.type="Material",this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Mt,this.stencilZFail=Mt,this.stencilZPass=Mt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Pn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},In={h:0,s:0,l:0},Un={h:0,s:0,l:0};function Dn(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Nn{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=_t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ee.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ee.workingColorSpace){return this.r=t,this.g=e,this.b=n,ee.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ee.workingColorSpace){if(t=It(t,1),e=Pt(e,0,1),n=Pt(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Dn(r,i,t+1/3),this.g=Dn(r,i,t),this.b=Dn(r,i,t-1/3)}return ee.toWorkingColorSpace(this,i),this}setStyle(t,e=_t){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=_t){const n=Pn[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Zt(t.r),this.g=Zt(t.g),this.b=Zt(t.b),this}copyLinearToSRGB(t){return this.r=Jt(t.r),this.g=Jt(t.g),this.b=Jt(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=_t){return ee.fromWorkingColorSpace(On.copy(this),t),65536*Math.round(Pt(255*On.r,0,255))+256*Math.round(Pt(255*On.g,0,255))+Math.round(Pt(255*On.b,0,255))}getHexString(t=_t){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ee.workingColorSpace){ee.fromWorkingColorSpace(On.copy(this),e);const n=On.r,i=On.g,r=On.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function Gn(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Pt(t,-65504,65504),Bn.floatView[0]=t;const e=Bn.uint32View[0],n=e>>23&511;return Bn.baseTable[n]+((8388607&e)>>Bn.shiftTable[n])}function Hn(t){const e=t>>10;return Bn.uint32View[0]=Bn.mantissaTable[Bn.offsetTable[e]+(1023&t)]+Bn.exponentTable[e],Bn.floatView[0]}const kn={toHalfFloat:Gn,fromHalfFloat:Hn},Vn=new me,Wn=new Gt;class Xn{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=St,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}ii.copy(r).invert(),ri.copy(t.ray).applyMatrix4(ii),null!==n.boundingBox&&!1===ri.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,ri)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,c=r.attributes.uv1,h=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let r=0,o=u.length;rn.far?null:{distance:c,point:yi.clone(),object:t}}(t,e,n,i,oi,li,ci,_i);if(h){r&&(di.fromBufferAttribute(r,o),pi.fromBufferAttribute(r,l),mi.fromBufferAttribute(r,c),h.uv=Rn.getInterpolation(_i,oi,li,ci,di,pi,mi,new Gt)),s&&(di.fromBufferAttribute(s,o),pi.fromBufferAttribute(s,l),mi.fromBufferAttribute(s,c),h.uv1=Rn.getInterpolation(_i,oi,li,ci,di,pi,mi,new Gt),h.uv2=h.uv1),a&&(fi.fromBufferAttribute(a,o),gi.fromBufferAttribute(a,l),vi.fromBufferAttribute(a,c),h.normal=Rn.getInterpolation(_i,oi,li,ci,fi,gi,vi,new me),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new me,materialIndex:0};Rn.getNormal(oi,li,ci,t.normal),h.face=t}return h}class Si extends ni{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const _=s/f,y=p/g,x=s/2,M=p/2,S=m/2,b=f+1,T=g+1;let E=0,w=0;const A=new me;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),E+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Ri extends gn{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new We,this.projectionMatrix=new We,this.projectionMatrixInverse=new We}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Ci extends Ri{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*Ct*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Rt*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*Ct*Math.atan(Math.tan(.5*Rt*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Rt*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Li=-90;class Pi extends gn{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Ci(Li,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Ci(Li,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Ci(Li,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Ci(Li,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Ci(Li,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Ci(Li,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=0,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Ii extends le{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ui extends he{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];void 0!==e.encoding&&(Yt("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===gt?_t:vt),this.texture=new Ii(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:f}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new Si(5,5,5),r=new Ai({name:"CubemapFromEquirect",uniforms:bi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new xi(i,r),a=e.minFilter;e.minFilter===v&&(e.minFilter=f);return new Pi(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Di=new me,Ni=new me,Oi=new Ht;class Fi{constructor(t=new me(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Di.subVectors(n,e).cross(Ni.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Di),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Oi.getNormalMatrix(t),i=this.coplanarPoint(Di).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Bi=new Ne,zi=new me;class Gi{constructor(t=new Fi,e=new Fi,n=new Fi,i=new Fi,r=new Fi,s=new Fi){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],_=n[15];return e[0].setComponents(a-i,h-o,m-u,_-f).normalize(),e[1].setComponents(a+i,h+o,m+u,_+f).normalize(),e[2].setComponents(a+r,h+l,m+d,_+g).normalize(),e[3].setComponents(a-r,h-l,m-d,_-g).normalize(),e[4].setComponents(a-s,h-c,m-p,_-v).normalize(),e[5].setComponents(a+s,h+c,m+p,_+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Bi.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Bi.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Bi)}intersectsSprite(t){return Bi.center.set(0,0,0),Bi.radius=.7071067811865476,Bi.applyMatrix4(t.matrixWorld),this.intersectsSphere(Bi)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,zi.y=i.normal.y>0?t.max.y:t.min.y,zi.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(zi)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Hi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function ki(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Xi={common:{diffuse:{value:new Nn(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ht}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ht}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ht}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ht},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ht},normalScale:{value:new Gt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ht},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ht}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ht}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ht}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Nn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Nn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Ht}},sprite:{diffuse:{value:new Nn(16777215)},opacity:{value:1},center:{value:new Gt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaTest:{value:0}}},ji={basic:{uniforms:Ti([Xi.common,Xi.specularmap,Xi.envmap,Xi.aomap,Xi.lightmap,Xi.fog]),vertexShader:Wi.meshbasic_vert,fragmentShader:Wi.meshbasic_frag},lambert:{uniforms:Ti([Xi.common,Xi.specularmap,Xi.envmap,Xi.aomap,Xi.lightmap,Xi.emissivemap,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,Xi.fog,Xi.lights,{emissive:{value:new Nn(0)}}]),vertexShader:Wi.meshlambert_vert,fragmentShader:Wi.meshlambert_frag},phong:{uniforms:Ti([Xi.common,Xi.specularmap,Xi.envmap,Xi.aomap,Xi.lightmap,Xi.emissivemap,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,Xi.fog,Xi.lights,{emissive:{value:new Nn(0)},specular:{value:new Nn(1118481)},shininess:{value:30}}]),vertexShader:Wi.meshphong_vert,fragmentShader:Wi.meshphong_frag},standard:{uniforms:Ti([Xi.common,Xi.envmap,Xi.aomap,Xi.lightmap,Xi.emissivemap,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,Xi.roughnessmap,Xi.metalnessmap,Xi.fog,Xi.lights,{emissive:{value:new Nn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Wi.meshphysical_vert,fragmentShader:Wi.meshphysical_frag},toon:{uniforms:Ti([Xi.common,Xi.aomap,Xi.lightmap,Xi.emissivemap,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,Xi.gradientmap,Xi.fog,Xi.lights,{emissive:{value:new Nn(0)}}]),vertexShader:Wi.meshtoon_vert,fragmentShader:Wi.meshtoon_frag},matcap:{uniforms:Ti([Xi.common,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,Xi.fog,{matcap:{value:null}}]),vertexShader:Wi.meshmatcap_vert,fragmentShader:Wi.meshmatcap_frag},points:{uniforms:Ti([Xi.points,Xi.fog]),vertexShader:Wi.points_vert,fragmentShader:Wi.points_frag},dashed:{uniforms:Ti([Xi.common,Xi.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Wi.linedashed_vert,fragmentShader:Wi.linedashed_frag},depth:{uniforms:Ti([Xi.common,Xi.displacementmap]),vertexShader:Wi.depth_vert,fragmentShader:Wi.depth_frag},normal:{uniforms:Ti([Xi.common,Xi.bumpmap,Xi.normalmap,Xi.displacementmap,{opacity:{value:1}}]),vertexShader:Wi.meshnormal_vert,fragmentShader:Wi.meshnormal_frag},sprite:{uniforms:Ti([Xi.sprite,Xi.fog]),vertexShader:Wi.sprite_vert,fragmentShader:Wi.sprite_frag},background:{uniforms:{uvTransform:{value:new Ht},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Wi.background_vert,fragmentShader:Wi.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Wi.backgroundCube_vert,fragmentShader:Wi.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Wi.cube_vert,fragmentShader:Wi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Wi.equirect_vert,fragmentShader:Wi.equirect_frag},distanceRGBA:{uniforms:Ti([Xi.common,Xi.displacementmap,{referencePosition:{value:new me},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Wi.distanceRGBA_vert,fragmentShader:Wi.distanceRGBA_frag},shadow:{uniforms:Ti([Xi.lights,Xi.fog,{color:{value:new Nn(0)},opacity:{value:1}}]),vertexShader:Wi.shadow_vert,fragmentShader:Wi.shadow_frag}};ji.physical={uniforms:Ti([ji.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ht},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ht},clearcoatNormalScale:{value:new Gt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ht},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ht},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ht},sheen:{value:0},sheenColor:{value:new Nn(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ht},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ht},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ht},transmissionSamplerSize:{value:new Gt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ht},attenuationDistance:{value:0},attenuationColor:{value:new Nn(0)},specularColor:{value:new Nn(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ht},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ht},anisotropyVector:{value:new Gt},anisotropyMap:{value:null}}]),vertexShader:Wi.meshphysical_vert,fragmentShader:Wi.meshphysical_frag};const qi={r:0,b:0,g:0};function Yi(t,e,n,i,r,s,a){const o=new Nn(0);let c,h,u=!0===s?0:1,d=null,p=0,m=null;function f(e,n){e.getRGB(qi,Ei(t)),i.buffers.color.setClear(qi.r,qi.g,qi.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),u=e,f(o,u)},getClearAlpha:function(){return u},setClearAlpha:function(t){u=t,f(o,u)},render:function(s,g){let v=!1,_=!0===g.isScene?g.background:null;if(_&&_.isTexture){_=(g.backgroundBlurriness>0?n:e).get(_)}switch(null===_?f(o,u):_&&_.isColor&&(f(_,1),v=!0),t.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,a),v=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,a),v=!0}(t.autoClear||v)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),_&&(_.isCubeTexture||_.mapping===l)?(void 0===h&&(h=new xi(new Si(1,1,1),new Ai({name:"BackgroundCubeMaterial",uniforms:bi(ji.backgroundCube.uniforms),vertexShader:ji.backgroundCube.vertexShader,fragmentShader:ji.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,h.material.toneMapped=_.colorSpace!==_t,d===_&&p===_.version&&m===t.toneMapping||(h.material.needsUpdate=!0,d=_,p=_.version,m=t.toneMapping),h.layers.enableAll(),s.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(void 0===c&&(c=new xi(new Vi(2,2),new Ai({name:"BackgroundMaterial",uniforms:bi(ji.background.uniforms),vertexShader:ji.background.vertexShader,fragmentShader:ji.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=_,c.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,c.material.toneMapped=_.colorSpace!==_t,!0===_.matrixAutoUpdate&&_.updateMatrix(),c.material.uniforms.uvTransform.value.copy(_.matrix),d===_&&p===_.version&&m===t.toneMapping||(c.material.needsUpdate=!0,d=_,p=_.version,m=t.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null))}}}function Zi(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,y,d,M),S&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,y,d,M)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===t||(c.geometry=y.id,c.program=d.id,c.wireframe=t,S=!0)}null!==M&&n.update(M,t.ELEMENT_ARRAY_BUFFER),(S||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const s=c[e];if(s.location>=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,l=a.itemSize,c=n.get(a);if(void 0===c)continue;const h=c.buffer,u=c.type,d=c.bytesPerElement,p=!0===i.isWebGL2&&(u===t.INT||u===t.UNSIGNED_INT||a.gpuType===x);if(a.isInterleavedBufferAttribute){const n=a.data,i=n.stride,c=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),g=t.getParameter(t.MAX_VARYING_VECTORS),v=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,y=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:y,floatVertexTextures:_&&y,maxSamples:s?t.getParameter(t.MAX_SAMPLES):0}}function $i(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Fi,o=new Ht,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Qi(t){let e=new WeakMap;function n(t,e){return e===a?t.mapping=r:e===o&&(t.mapping=s),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===a||s===o){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new Ui(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class tr extends Ri{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const er=[.125,.215,.35,.446,.526,.582],nr=20,ir=new tr,rr=new Nn;let sr=null;const ar=(1+Math.sqrt(5))/2,or=1/ar,lr=[new me(1,1,1),new me(-1,1,1),new me(1,1,-1),new me(-1,1,-1),new me(0,ar,or),new me(0,ar,-or),new me(or,0,ar),new me(-or,0,ar),new me(ar,or,0),new me(-ar,or,0)];class cr{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){sr=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=pr(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=dr(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-4?o=er[a-t+4-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),_=new Float32Array(f*p*d),y=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),_.set(u,f*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const x=new ni;x.setAttribute("position",new Xn(v,m)),x.setAttribute("uv",new Xn(_,f)),x.setAttribute("faceIndex",new Xn(y,g)),e.push(x),r>4&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(nr),r=new me(0,1,0),s=new Ai({name:"SphericalGaussianBlur",defines:{n:nr,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:mr(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new xi(this._lodPlanes[0],t);this._renderer.compile(e,ir)}_sceneToCubeUV(t,e,n,i){const r=new Ci(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(rr),o.toneMapping=0,o.autoClear=!1;const h=new Fn({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),u=new xi(new Si,h);let d=!1;const p=t.background;p?p.isColor&&(h.color.copy(p),t.background=null,d=!0):(h.color.copy(rr),d=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ur(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===r||t.mapping===s;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=pr()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=dr());const a=i?this._cubemapMaterial:this._equirectMaterial,o=new xi(this._lodPlanes[0],a);a.uniforms.envMap.value=t;const l=this._cubeSize;ur(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(o,ir)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;enr&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;tv-4?i-v+4:0),4*(this._cubeSize-_),3*_,2*_),o.setRenderTarget(e),o.render(c,ir)}}function hr(t,e,n){const i=new he(t,e,n);return i.texture.mapping=l,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ur(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function dr(){return new Ai({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:mr(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function pr(){return new Ai({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:mr(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function mr(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function fr(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(l){if(l&&l.isTexture){const c=l.mapping,h=c===a||c===o,u=c===r||c===s;if(h||u){if(l.isRenderTargetTexture&&!0===l.needsPMREMUpdate){l.needsPMREMUpdate=!1;let i=e.get(l);return null===n&&(n=new cr(t)),i=h?n.fromEquirectangular(l,i):n.fromCubemap(l,i),e.set(l,i),i.texture}if(e.has(l))return e.get(l).texture;{const r=l.image;if(h&&r&&r.height>0||u&&r&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(w=Math.ceil(E/e.maxTextureSize),E=e.maxTextureSize);const A=new Float32Array(E*w*4*p),R=new ue(A,E,w,p);R.type=S,R.needsUpdate=!0;const C=4*T;for(let P=0;P0)return t;const r=e*n;let s=Rr[r];if(void 0===s&&(s=new Float32Array(r),Rr[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Dr(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Ps(t,e){const n=function(t){switch(t){case yt:return["Linear","( value )"];case _t:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Is(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Us(t){return""!==t}function Ds(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Ns(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Os=/^[ \t]*#include +<([\w\d./]+)>/gm;function Fs(t){return t.replace(Os,Bs)}function Bs(t,e){const n=Wi[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return Fs(n)}const zs=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Gs(t){return t.replace(zs,Hs)}function Hs(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(y+="\n"),x=[g,v].filter(Us).join("\n"),x.length>0&&(x+="\n")):(y=[ks(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Us).join("\n"),x=[g,ks(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?Wi.tonemapping_pars_fragment:"",0!==n.toneMapping?Is("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Wi.encodings_pars_fragment,Ps("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Us).join("\n")),c=Fs(c),c=Ds(c,n),c=Ns(c,n),h=Fs(h),h=Ds(h,n),h=Ns(h,n),c=Gs(c),h=Gs(h),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",y=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,x=["#define varying in",n.glslVersion===bt?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===bt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const S=M+y+c,b=M+x+h,T=Rs(a,a.VERTEX_SHADER,S),E=Rs(a,a.FRAGMENT_SHADER,b);if(a.attachShader(_,T),a.attachShader(_,E),void 0!==n.index0AttributeName?a.bindAttribLocation(_,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(_,0,"position"),a.linkProgram(_),t.debug.checkShaderErrors){const e=a.getProgramInfoLog(_).trim(),n=a.getShaderInfoLog(T).trim(),i=a.getShaderInfoLog(E).trim();let r=!0,s=!0;if(!1===a.getProgramParameter(_,a.LINK_STATUS))if(r=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(a,_,T,E);else{const t=Ls(a,T,"vertex"),n=Ls(a,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(_,a.VALIDATE_STATUS)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(s=!1);s&&(this.diagnostics={runnable:r,programLog:e,vertexShader:{log:n,prefix:y},fragmentShader:{log:i,prefix:x}})}let w,A;return a.deleteShader(T),a.deleteShader(E),this.getUniforms=function(){return void 0===w&&(w=new As(a,_)),w},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r0,j=s.clearcoat>0,q=s.iridescence>0,Y=s.sheen>0,Z=s.transmission>0,J=X&&!!s.anisotropyMap,K=j&&!!s.clearcoatMap,$=j&&!!s.clearcoatNormalMap,Q=j&&!!s.clearcoatRoughnessMap,tt=q&&!!s.iridescenceMap,et=q&&!!s.iridescenceThicknessMap,nt=Y&&!!s.sheenColorMap,it=Y&&!!s.sheenRoughnessMap,rt=!!s.specularMap,st=!!s.specularColorMap,at=!!s.specularIntensityMap,ot=Z&&!!s.transmissionMap,lt=Z&&!!s.thicknessMap,ct=!!s.gradientMap,ht=!!s.alphaMap,ut=s.alphaTest>0,dt=!!s.extensions,pt=!!x.attributes.uv1,mt=!!x.attributes.uv2,ft=!!x.attributes.uv3;return{isWebGL2:u,shaderID:T,shaderName:s.type,vertexShader:A,fragmentShader:R,defines:s.defines,customVertexShaderID:C,customFragmentShaderID:L,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:m,instancing:U,instancingColor:U&&null!==_.instanceColor,supportsVertexTextures:p,outputColorSpace:null===I?t.outputColorSpace:!0===I.isXRRenderTarget?I.texture.colorSpace:yt,map:D,matcap:N,envMap:O,envMapMode:O&&S.mapping,envMapCubeUVHeight:b,aoMap:F,lightMap:B,bumpMap:z,normalMap:G,displacementMap:p&&H,emissiveMap:k,normalMapObjectSpace:G&&1===s.normalMapType,normalMapTangentSpace:G&&0===s.normalMapType,metalnessMap:V,roughnessMap:W,anisotropy:X,anisotropyMap:J,clearcoat:j,clearcoatMap:K,clearcoatNormalMap:$,clearcoatRoughnessMap:Q,iridescence:q,iridescenceMap:tt,iridescenceThicknessMap:et,sheen:Y,sheenColorMap:nt,sheenRoughnessMap:it,specularMap:rt,specularColorMap:st,specularIntensityMap:at,transmission:Z,transmissionMap:ot,thicknessMap:lt,gradientMap:ct,opaque:!1===s.transparent&&1===s.blending,alphaMap:ht,alphaTest:ut,combine:s.combine,mapUv:D&&g(s.map.channel),aoMapUv:F&&g(s.aoMap.channel),lightMapUv:B&&g(s.lightMap.channel),bumpMapUv:z&&g(s.bumpMap.channel),normalMapUv:G&&g(s.normalMap.channel),displacementMapUv:H&&g(s.displacementMap.channel),emissiveMapUv:k&&g(s.emissiveMap.channel),metalnessMapUv:V&&g(s.metalnessMap.channel),roughnessMapUv:W&&g(s.roughnessMap.channel),anisotropyMapUv:J&&g(s.anisotropyMap.channel),clearcoatMapUv:K&&g(s.clearcoatMap.channel),clearcoatNormalMapUv:$&&g(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Q&&g(s.clearcoatRoughnessMap.channel),iridescenceMapUv:tt&&g(s.iridescenceMap.channel),iridescenceThicknessMapUv:et&&g(s.iridescenceThicknessMap.channel),sheenColorMapUv:nt&&g(s.sheenColorMap.channel),sheenRoughnessMapUv:it&&g(s.sheenRoughnessMap.channel),specularMapUv:rt&&g(s.specularMap.channel),specularColorMapUv:st&&g(s.specularColorMap.channel),specularIntensityMapUv:at&&g(s.specularIntensityMap.channel),transmissionMapUv:ot&&g(s.transmissionMap.channel),thicknessMapUv:lt&&g(s.thicknessMap.channel),alphaMapUv:ht&&g(s.alphaMap.channel),vertexTangents:!!x.attributes.tangent&&(G||X),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!x.attributes.color&&4===x.attributes.color.itemSize,vertexUv1s:pt,vertexUv2s:mt,vertexUv3s:ft,pointsUvs:!0===_.isPoints&&!!x.attributes.uv&&(D||ht),fog:!!y,useFog:!0===s.fog,fogExp2:y&&y.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:d,skinning:!0===_.isSkinnedMesh,morphTargets:void 0!==x.morphAttributes.position,morphNormals:void 0!==x.morphAttributes.normal,morphColors:void 0!==x.morphAttributes.color,morphTargetsCount:w,morphTextureStride:P,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&h.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:0,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:1===s.side,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:dt&&!0===s.extensions.derivatives,extensionFragDepth:dt&&!0===s.extensions.fragDepth,extensionDrawBuffers:dt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:dt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.opaque&&o.enable(17);e.pointsUvs&&o.enable(18);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=ji[e];n=wi.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=h.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Zs),i.length>1&&i.sort(e||Js),r.length>1&&r.sort(e||Js)}}}function $s(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Ks,t.set(e,[r])):n>=i.length?(r=new Ks,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function Qs(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new me,color:new Nn};break;case"SpotLight":n={position:new me,direction:new me,color:new Nn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new me,color:new Nn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new me,skyColor:new Nn,groundColor:new Nn};break;case"RectAreaLight":n={color:new Nn,position:new me,halfWidth:new me,halfHeight:new me}}return t[e.id]=n,n}}}let ta=0;function ea(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function na(t,e){const n=new Qs,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Gt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Gt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new me);const s=new me,a=new We,o=new We;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,_=0,y=0;s.sort(ea);const x=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Xi.LTC_FLOAT_1,r.rectAreaLTC2=Xi.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Xi.LTC_HALF_1,r.rectAreaLTC2=Xi.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===_||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+_-y,r.spotLightMap.length=_,r.numSpotLightShadowsWithMaps=y,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=_,r.version=ta++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new ia(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class sa extends Ln{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class aa extends Ln{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function oa(t,e,n){let i=new Gi;const r=new Gt,s=new Gt,a=new ce,o=new sa({depthPacking:3201}),l=new aa,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},p=new Ai({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Gt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=p.clone();m.defines.HORIZONTAL_PASS=1;const f=new ni;f.setAttribute("position",new Xn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const g=new xi(f,p),v=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let _=this.type;function y(n,i){const s=e.update(g);p.defines.VSM_SAMPLES!==n.blurSamples&&(p.defines.VSM_SAMPLES=n.blurSamples,m.defines.VSM_SAMPLES=n.blurSamples,p.needsUpdate=!0,m.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new he(r.x,r.y)),p.uniforms.shadow_pass.value=n.map.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,p,g,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,m,g,null)}function x(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=c[t];void 0===i&&(i={},c[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=3===r?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function M(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/g.x),r.x=s.x*g.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/g.y),r.y=s.y*g.y,u.mapSize.y=s.y)),null===u.map||!0===m||!0===f){const t=3!==this.type?{minFilter:d,magFilter:d}:{};null!==u.map&&u.map.dispose(),u.map=new he(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const v=u.getViewportCount();for(let t=0;t=1):-1!==I.indexOf("OpenGL ES")&&(P=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),L=P>=2);let U=null,D={};const N=t.getParameter(t.SCISSOR_BOX),O=t.getParameter(t.VIEWPORT),F=(new ce).fromArray(N),B=(new ce).fromArray(O);function z(e,n,i,s){const a=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;oi||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Ot:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===U&&(U=O(s,a));const o=n?O(s,a):U;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function B(t){return Dt(t.width)&&Dt(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==d&&t.minFilter!==f}function G(e){t.generateMipmap(e)}function H(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return i===t.RED&&(r===t.FLOAT&&(l=t.R32F),r===t.HALF_FLOAT&&(l=t.R16F),r===t.UNSIGNED_BYTE&&(l=t.R8)),i===t.RG&&(r===t.FLOAT&&(l=t.RG32F),r===t.HALF_FLOAT&&(l=t.RG16F),r===t.UNSIGNED_BYTE&&(l=t.RG8)),i===t.RGBA&&(r===t.FLOAT&&(l=t.RGBA32F),r===t.HALF_FLOAT&&(l=t.RGBA16F),r===t.UNSIGNED_BYTE&&(l=s===_t&&!1===a?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(l=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(l=t.RGB5_A1)),l!==t.R16F&&l!==t.R32F&&l!==t.RG16F&&l!==t.RG32F&&l!==t.RGBA16F&&l!==t.RGBA32F||e.get("EXT_color_buffer_float"),l}function k(t,e,n){return!0===z(t,n)||t.isFramebufferTexture&&t.minFilter!==d&&t.minFilter!==f?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function V(e){return e===d||e===p||e===m?t.NEAREST:t.LINEAR}function W(t){const e=t.target;e.removeEventListener("dispose",W),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=D.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&j(t),0===Object.keys(r).length&&D.delete(n)}i.remove(t)}(e),e.isVideoTexture&&I.delete(e)}function X(e){const n=e.target;n.removeEventListener("dispose",X),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void tt(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const Z={[c]:t.REPEAT,[h]:t.CLAMP_TO_EDGE,[u]:t.MIRRORED_REPEAT},J={[d]:t.NEAREST,[p]:t.NEAREST_MIPMAP_NEAREST,[m]:t.NEAREST_MIPMAP_LINEAR,[f]:t.LINEAR,[g]:t.LINEAR_MIPMAP_NEAREST,[v]:t.LINEAR_MIPMAP_LINEAR},K={512:t.NEVER,519:t.ALWAYS,513:t.LESS,515:t.LEQUAL,514:t.EQUAL,518:t.GEQUAL,516:t.GREATER,517:t.NOTEQUAL};function $(n,s,a){if(a?(t.texParameteri(n,t.TEXTURE_WRAP_S,Z[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,Z[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,Z[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,J[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,J[s.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),s.wrapS===h&&s.wrapT===h||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,t.TEXTURE_MAG_FILTER,V(s.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,V(s.minFilter)),s.minFilter!==d&&s.minFilter!==f&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,K[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===d)return;if(s.minFilter!==m&&s.minFilter!==v)return;if(s.type===S&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===b&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function Q(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",W));const r=n.source;let s=D.get(r);void 0===s&&(s={},D.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&j(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function tt(e,r,a){let l=t.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY),r.isData3DTexture&&(l=t.TEXTURE_3D);const c=Q(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+a);const p=i.get(u);if(u.version!==p.__version||!0===c){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=function(t){return!o&&(t.wrapS!==h||t.wrapT!==h||t.minFilter!==d&&t.minFilter!==f)}(r)&&!1===B(r.image);let i=F(r.image,e,!1,T);i=at(r,i);const m=B(i)||o,g=s.convert(r.format,r.colorSpace);let v,_=s.convert(r.type),x=H(r.internalFormat,g,_,r.colorSpace);$(l,r,m);const b=r.mipmaps,E=o&&!0!==r.isVideoTexture,L=void 0===p.__version||!0===c,P=k(r,i,m);if(r.isDepthTexture)x=t.DEPTH_COMPONENT,o?x=r.type===S?t.DEPTH_COMPONENT32F:r.type===M?t.DEPTH_COMPONENT24:r.type===w?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:r.type===S&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===R&&x===t.DEPTH_COMPONENT&&r.type!==y&&r.type!==M&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=M,_=s.convert(r.type)),r.format===C&&x===t.DEPTH_COMPONENT&&(x=t.DEPTH_STENCIL,r.type!==w&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=w,_=s.convert(r.type))),L&&(E?n.texStorage2D(t.TEXTURE_2D,1,x,i.width,i.height):n.texImage2D(t.TEXTURE_2D,0,x,i.width,i.height,0,g,_,null));else if(r.isDataTexture)if(b.length>0&&m){E&&L&&n.texStorage2D(t.TEXTURE_2D,P,x,b[0].width,b[0].height);for(let e=0,i=b.length;e>=1,r>>=1}}else if(b.length>0&&m){E&&L&&n.texStorage2D(t.TEXTURE_2D,P,x,b[0].width,b[0].height);for(let e=0,i=b.length;e=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(t.FRAMEBUFFER,null)}function nt(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let r=t.DEPTH_COMPONENT16;if(i||st(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===S?r=t.DEPTH_COMPONENT32F:e.type===M&&(r=t.DEPTH_COMPONENT24));const i=rt(n);st(n)?L.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,i,r,n.width,n.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,i,r,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,r,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=rt(n);i&&!1===st(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):st(n)?L.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function at(t,n){const i=t.colorSpace,r=t.format,s=t.type;return!0===t.isCompressedTexture||t.format===Tt||i!==yt&&i!==vt&&(i===_t?!1===o?!0===e.has("EXT_sRGB")&&r===A?(t.format=Tt,t.minFilter=f,t.generateMipmaps=!1):n=ie.sRGBToLinear(n):r===A&&s===_||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){const t=q;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),q+=1,t},this.resetTextureUnits=function(){q=0},this.setTexture2D=Y,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?tt(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?tt(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=Q(e,r),c=r.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+a);const h=i.get(c);if(c.version!==h.__version||!0===l){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,u=[];for(let t=0;t<6;t++)u[t]=e||i?i?r.image[t].image:r.image[t]:F(r.image[t],!1,!0,x),u[t]=at(r,u[t]);const d=u[0],p=B(d)||o,m=s.convert(r.format,r.colorSpace),f=s.convert(r.type),g=H(r.internalFormat,m,f,r.colorSpace),v=o&&!0!==r.isVideoTexture,_=void 0===h.__version||!0===l;let y,M=k(r,d,p);if($(t.TEXTURE_CUBE_MAP,r,p),e){v&&_&&n.texStorage2D(t.TEXTURE_CUBE_MAP,M,g,d.width,d.height);for(let e=0;e<6;e++){y=u[e].mipmaps;for(let i=0;i0&&M++,n.texStorage2D(t.TEXTURE_CUBE_MAP,M,g,u[0].width,u[0].height));for(let e=0;e<6;e++)if(i){v?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,u[e].width,u[e].height,m,f,u[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,g,u[e].width,u[e].height,0,m,f,u[e].data);for(let i=0;i0&&!1===st(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===st(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=[],c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(pa)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new da;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class fa extends le{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:R)!==R&&c!==C)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===R&&(n=M),void 0===n&&c===C&&(n=w),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:d,this.minFilter=void 0!==o?o:d,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class ga extends Et{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],y=[],x=new Set,S=new Map,b=new Ci;b.layers.enable(1),b.viewport=new ce;const T=new Ci;T.layers.enable(2),T.viewport=new ce;const E=[b,T],L=new ua;L.layers.enable(1),L.layers.enable(2);let P=null,I=null;function U(t){const e=y.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function D(){i.removeEventListener("select",U),i.removeEventListener("selectstart",U),i.removeEventListener("selectend",U),i.removeEventListener("squeeze",U),i.removeEventListener("squeezestart",U),i.removeEventListener("squeezeend",U),i.removeEventListener("end",D),i.removeEventListener("inputsourceschange",N);for(let t=0;t=0&&(y[i]=null,v[i].disconnect(n))}for(let e=0;e=y.length){y.push(n),i=t;break}if(null===y[t]){y[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new ma,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new ma,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new ma,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",U),i.addEventListener("selectstart",U),i.addEventListener("selectend",U),i.addEventListener("squeeze",U),i.addEventListener("squeezestart",U),i.addEventListener("squeezeend",U),i.addEventListener("end",D),i.addEventListener("inputsourceschange",N),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new he(d.framebufferWidth,d.framebufferHeight,{format:A,type:_,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?C:R,s=m.stencil?w:M);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new he(u.textureWidth,u.textureHeight,{format:A,type:_,depthTexture:new fa(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),G.setContext(i),G.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};const O=new me,F=new me;function B(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;L.near=T.near=b.near=t.near,L.far=T.far=b.far=t.far,P===L.near&&I===L.far||(i.updateRenderState({depthNear:L.near,depthFar:L.far}),P=L.near,I=L.far);const e=t.parent,n=L.cameras;B(L,e);for(let t=0;te&&(S.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else x.add(t),S.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){z=t},this.dispose=function(){}}}function va(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,1===r.side&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),1===r.side&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Ei(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),1===e.side&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function _a(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color,m=i.toneMapped?C.toneMapping:0,f=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,v=void 0!==f?f.length:0,_=lt.get(i),y=g.state.lights;if(!0===K&&(!0===$||t!==B)){const e=t===B&&i.id===F;Mt.setState(i,t,e)}let x=!1;i.version===_.__version?_.needsLights&&_.lightsStateVersion!==y.state.version||_.outputColorSpace!==o||r.isInstancedMesh&&!1===_.instancing?x=!0:r.isInstancedMesh||!0!==_.instancing?r.isSkinnedMesh&&!1===_.skinning?x=!0:r.isSkinnedMesh||!0!==_.skinning?_.envMap!==l||!0===i.fog&&_.fog!==s?x=!0:void 0===_.numClippingPlanes||_.numClippingPlanes===Mt.numPlanes&&_.numIntersection===Mt.numIntersection?(_.vertexAlphas!==c||_.vertexTangents!==h||_.morphTargets!==u||_.morphNormals!==d||_.morphColors!==p||_.toneMapping!==m||!0===st.isWebGL2&&_.morphTargetsCount!==v)&&(x=!0):x=!0:x=!0:x=!0:(x=!0,_.__version=i.version);let M=_.currentProgram;!0===x&&(M=jt(i,e,r));let S=!1,b=!1,T=!1;const E=M.getUniforms(),w=_.uniforms;at.useProgram(M.program)&&(S=!0,b=!0,T=!0);i.id!==F&&(F=i.id,b=!0);if(S||B!==t){if(E.setValue(Lt,"projectionMatrix",t.projectionMatrix),st.logarithmicDepthBuffer&&E.setValue(Lt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),B!==t&&(B=t,b=!0,T=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=E.map.cameraPosition;void 0!==e&&e.setValue(Lt,et.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&E.setValue(Lt,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&E.setValue(Lt,"viewMatrix",t.matrixWorldInverse)}if(r.isSkinnedMesh){E.setOptional(Lt,r,"bindMatrix"),E.setOptional(Lt,r,"bindMatrixInverse");const t=r.skeleton;t&&(st.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),E.setValue(Lt,"boneTexture",t.boneTexture,ct),E.setValue(Lt,"boneTextureSize",t.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const A=n.morphAttributes;(void 0!==A.position||void 0!==A.normal||void 0!==A.color&&!0===st.isWebGL2)&&Tt.update(r,n,M);(b||_.receiveShadow!==r.receiveShadow)&&(_.receiveShadow=r.receiveShadow,E.setValue(Lt,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(w.envMap.value=l,w.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1);b&&(E.setValue(Lt,"toneMappingExposure",C.toneMappingExposure),_.needsLights&&(L=T,(R=w).ambientLightColor.needsUpdate=L,R.lightProbe.needsUpdate=L,R.directionalLights.needsUpdate=L,R.directionalLightShadows.needsUpdate=L,R.pointLights.needsUpdate=L,R.pointLightShadows.needsUpdate=L,R.spotLights.needsUpdate=L,R.spotLightShadows.needsUpdate=L,R.rectAreaLights.needsUpdate=L,R.hemisphereLights.needsUpdate=L),s&&!0===i.fog&>.refreshFogUniforms(w,s),gt.refreshMaterialUniforms(w,i,W,V,Q),As.upload(Lt,_.uniformsList,w,ct));var R,L;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(As.upload(Lt,_.uniformsList,w,ct),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&E.setValue(Lt,"center",r.center);if(E.setValue(Lt,"modelViewMatrix",r.modelViewMatrix),E.setValue(Lt,"normalMatrix",r.normalMatrix),E.setValue(Lt,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e0&&function(t,e,n,i){if(null===Q){const t=st.isWebGL2;Q=new he(1024,1024,{generateMipmaps:!0,type:rt.has("EXT_color_buffer_half_float")?b:_,minFilter:v,samples:t&&!0===o?4:0})}const r=C.getRenderTarget();C.setRenderTarget(Q),C.clear();const s=C.toneMapping;C.toneMapping=0,Wt(t,n,i),ct.updateMultisampleRenderTarget(Q),ct.updateRenderTargetMipmap(Q);let a=!1;for(let t=0,r=e.length;t0&&Wt(r,e,n),s.length>0&&Wt(s,e,n),a.length>0&&Wt(a,e,n),at.buffers.depth.setTest(!0),at.buffers.depth.setMask(!0),at.buffers.color.setMask(!0),at.setPolygonOffset(!1)}function Wt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?R[R.length-1]:null,x.pop(),f=x.length>0?x[x.length-1]:null},this.getActiveCubeFace=function(){return D},this.getActiveMipmapLevel=function(){return N},this.getRenderTarget=function(){return O},this.setRenderTargetTextures=function(t,e,n){lt.get(t.texture).__webglTexture=e,lt.get(t.depthTexture).__webglTexture=n;const i=lt.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===rt.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=lt.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){O=t,D=e,N=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=lt.get(t);void 0!==n.__useDefaultFramebuffer?(at.bindFramebuffer(Lt.FRAMEBUFFER,null),i=!1):void 0===n.__webglFramebuffer?ct.setupRenderTarget(t):n.__hasExternalTextures&&ct.rebindTextures(t,lt.get(t.texture).__webglTexture,lt.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=lt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=st.isWebGL2&&t.samples>0&&!1===ct.useMultisampledRTT(t)?lt.get(t).__webglMultisampledFramebuffer:l,z.copy(t.viewport),G.copy(t.scissor),H=t.scissorTest}else z.copy(q).multiplyScalar(W).floor(),G.copy(Y).multiplyScalar(W).floor(),H=Z;if(at.bindFramebuffer(Lt.FRAMEBUFFER,r)&&st.drawBuffers&&i&&at.drawBuffers(t,r),at.viewport(z),at.scissor(G),at.setScissorTest(H),s){const i=lt.get(t.texture);Lt.framebufferTexture2D(Lt.FRAMEBUFFER,Lt.COLOR_ATTACHMENT0,Lt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=lt.get(t.texture),r=e||0;Lt.framebufferTextureLayer(Lt.FRAMEBUFFER,Lt.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}F=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=lt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){at.bindFramebuffer(Lt.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==A&&At.convert(o)!==Lt.getParameter(Lt.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===b&&(rt.has("EXT_color_buffer_half_float")||st.isWebGL2&&rt.has("EXT_color_buffer_float"));if(!(l===_||At.convert(l)===Lt.getParameter(Lt.IMPLEMENTATION_COLOR_READ_TYPE)||l===S&&(st.isWebGL2||rt.has("OES_texture_float")||rt.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Lt.readPixels(e,n,i,r,At.convert(o),At.convert(l),s)}finally{const t=null!==O?lt.get(O).__webglFramebuffer:null;at.bindFramebuffer(Lt.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);ct.setTexture2D(e,0),Lt.copyTexSubImage2D(Lt.TEXTURE_2D,n,0,0,t.x,t.y,r,s),at.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=At.convert(n.format),o=At.convert(n.type);ct.setTexture2D(n,0),Lt.pixelStorei(Lt.UNPACK_FLIP_Y_WEBGL,n.flipY),Lt.pixelStorei(Lt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Lt.pixelStorei(Lt.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?Lt.texSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Lt.compressedTexSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Lt.texSubImage2D(Lt.TEXTURE_2D,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Lt.generateMipmap(Lt.TEXTURE_2D),at.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(C.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=At.convert(i.format),c=At.convert(i.type);let h;if(i.isData3DTexture)ct.setTexture3D(i,0),h=Lt.TEXTURE_3D;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");ct.setTexture2DArray(i,0),h=Lt.TEXTURE_2D_ARRAY}Lt.pixelStorei(Lt.UNPACK_FLIP_Y_WEBGL,i.flipY),Lt.pixelStorei(Lt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),Lt.pixelStorei(Lt.UNPACK_ALIGNMENT,i.unpackAlignment);const u=Lt.getParameter(Lt.UNPACK_ROW_LENGTH),d=Lt.getParameter(Lt.UNPACK_IMAGE_HEIGHT),p=Lt.getParameter(Lt.UNPACK_SKIP_PIXELS),m=Lt.getParameter(Lt.UNPACK_SKIP_ROWS),f=Lt.getParameter(Lt.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Lt.pixelStorei(Lt.UNPACK_ROW_LENGTH,g.width),Lt.pixelStorei(Lt.UNPACK_IMAGE_HEIGHT,g.height),Lt.pixelStorei(Lt.UNPACK_SKIP_PIXELS,t.min.x),Lt.pixelStorei(Lt.UNPACK_SKIP_ROWS,t.min.y),Lt.pixelStorei(Lt.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isData3DTexture?Lt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Lt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Lt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Lt.pixelStorei(Lt.UNPACK_ROW_LENGTH,u),Lt.pixelStorei(Lt.UNPACK_IMAGE_HEIGHT,d),Lt.pixelStorei(Lt.UNPACK_SKIP_PIXELS,p),Lt.pixelStorei(Lt.UNPACK_SKIP_ROWS,m),Lt.pixelStorei(Lt.UNPACK_SKIP_IMAGES,f),0===r&&i.generateMipmaps&&Lt.generateMipmap(h),at.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?ct.setTextureCube(t,0):t.isData3DTexture?ct.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?ct.setTexture2DArray(t,0):ct.setTexture2D(t,0),at.unbindTexture()},this.resetState=function(){D=0,N=0,O=null,at.reset(),Rt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===_t?gt:ft}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===gt?_t:yt}}class Ma extends xa{}Ma.prototype.isWebGL1Renderer=!0;class Sa{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Nn(t),this.density=e}clone(){return new Sa(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class ba{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Nn(t),this.near=e,this.far=n}clone(){return new ba(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Ta extends gn{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Ea{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=St,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Lt()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:La.clone(),uv:Rn.getInterpolation(La,Oa,Fa,Ba,za,Ga,Ha,new Gt),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Va(t,e,n,i,r,s){Ua.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Da.x=s*Ua.x-r*Ua.y,Da.y=r*Ua.x+s*Ua.y):Da.copy(Ua),t.copy(e),t.x+=Da.x,t.y+=Da.y,t.applyMatrix4(Na)}const Wa=new me,Xa=new me;class ja extends gn{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Wa.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Wa);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Wa.setFromMatrixPosition(t.matrixWorld),Xa.setFromMatrixPosition(this.matrixWorld);const n=Wa.distanceTo(Xa)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Oo extends le{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Fo{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Gt:new me);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new me,i=[],r=[],s=[],a=new me,o=new We;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new me)}r[0]=new me,s[0]=new me;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(Pt(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(Pt(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Bo extends Fo{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new Gt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Ho.subVectors(i[0],i[1]).add(i[0]),a=Ho);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(jo(a,o.x,l.x,c.x,h.x),jo(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class sl extends ni{constructor(t=[new Gt(0,-.5),new Gt(.5,0),new Gt(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=Pt(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new me,u=new Gt,d=new me,p=new me,m=new me;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new Yn(h,3)),this.setAttribute("normal",new Yn(u,3)),this.setAttribute("uv",new Yn(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new ll(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class cl extends ll{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new cl(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class hl extends ni{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Yn(r,3)),this.setAttribute("normal",new Yn(r.slice(),3)),this.setAttribute("uv",new Yn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new hl(t.vertices,t.indices,t.radius,t.details)}}class ul extends hl{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new ul(t.radius,t.detail)}}const dl=new me,pl=new me,ml=new me,fl=new Rn;class gl extends ni{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(Rt*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Ml(s,a,n,o,l,p,0),a};function yl(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Gl(s,t[s],t[s+1],a);return a&&Dl(a,a.next)&&(Hl(a),a=a.next),a}function xl(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Dl(i,i.next)&&0!==Ul(i.prev,i,i.next))i=i.next;else{if(Hl(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Ml(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Cl(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?bl(t,i,r,s):Sl(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Hl(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Ml(t=Tl(xl(t),e,n),e,n,i,r,s,2):2===a&&El(t,e,n,i,r,s):Ml(xl(t),e,n,i,r,s,1);break}}function Sl(t){const e=t.prev,n=t,i=t.next;if(Ul(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Pl(r,o,s,l,a,c,m.x,m.y)&&Ul(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function bl(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Ul(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Cl(p,m,e,n,i),_=Cl(f,g,e,n,i);let y=t.prevZ,x=t.nextZ;for(;y&&y.z>=v&&x&&x.z<=_;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Pl(o,h,l,u,c,d,y.x,y.y)&&Ul(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Pl(o,h,l,u,c,d,x.x,x.y)&&Ul(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=v;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Pl(o,h,l,u,c,d,y.x,y.y)&&Ul(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Pl(o,h,l,u,c,d,x.x,x.y)&&Ul(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Tl(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Dl(r,s)&&Nl(r,i,i.next,s)&&Bl(r,s)&&Bl(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Hl(i),Hl(i.next),i=t=s),i=i.next}while(i!==t);return xl(i)}function El(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Il(a,t)){let o=zl(a,t);return a=xl(a,a.next),o=xl(o,o.next),Ml(a,e,n,i,r,s,0),void Ml(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function wl(t,e){return t.x-e.x}function Al(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Pl(an.x||i.x===n.x&&Rl(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=zl(n,t);return xl(i,i.next),xl(n,n.next)}function Rl(t,e){return Ul(t.prev,t,e.prev)<0&&Ul(e.next,t,t.next)<0}function Cl(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Ll(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Il(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Nl(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Bl(t,e)&&Bl(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Ul(t.prev,t,e.prev)||Ul(t,e.prev,e))||Dl(t,e)&&Ul(t.prev,t,t.next)>0&&Ul(e.prev,e,e.next)>0)}function Ul(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Dl(t,e){return t.x===e.x&&t.y===e.y}function Nl(t,e,n,i){const r=Fl(Ul(t,e,n)),s=Fl(Ul(t,e,i)),a=Fl(Ul(n,i,t)),o=Fl(Ul(n,i,e));return r!==s&&a!==o||(!(0!==r||!Ol(t,n,e))||(!(0!==s||!Ol(t,i,e))||(!(0!==a||!Ol(n,t,i))||!(0!==o||!Ol(n,e,i)))))}function Ol(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Fl(t){return t>0?1:t<0?-1:0}function Bl(t,e){return Ul(t.prev,t,t.next)<0?Ul(t,e,t.next)>=0&&Ul(t,t.prev,e)>=0:Ul(t,e,t.prev)<0||Ul(t,t.next,e)<0}function zl(t,e){const n=new kl(t.i,t.x,t.y),i=new kl(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Gl(t,e,n,i){const r=new kl(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Hl(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function kl(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Vl{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function Xl(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new Gt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new Gt(i/s,r/s)}const P=[];for(let t=0,e=w.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=w.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class hc extends Ln{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Nn(16777215),this.specular=new Nn(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Gt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class uc extends Ln{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Nn(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Gt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class dc extends Ln{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Gt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class pc extends Ln{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Nn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Gt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class mc extends Ln{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Nn(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Gt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class fc extends _o{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function gc(t,e,n){return _c(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function vc(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function _c(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function yc(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function xc(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Mc(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Sc={arraySlice:gc,convertArray:vc,isTypedArray:_c,getKeyframeOrder:yc,sortedArray:xc,flattenJSON:Mc,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=gc(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=gc(t.resultBuffer,e,n)}if("quaternion"===r){(new pe).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=gc(n,r,s),this.values=gc(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&_c(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=gc(this.times),e=gc(this.values),n=this.getValueSize(),i=this.getInterpolation()===ct,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=gc(t,0,s),this.values=gc(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=gc(this.times,0),e=gc(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Ac.prototype.TimeBufferType=Float32Array,Ac.prototype.ValueBufferType=Float32Array,Ac.prototype.DefaultInterpolation=lt;class Rc extends Ac{}Rc.prototype.ValueTypeName="bool",Rc.prototype.ValueBufferType=Array,Rc.prototype.DefaultInterpolation=ot,Rc.prototype.InterpolantFactoryMethodLinear=void 0,Rc.prototype.InterpolantFactoryMethodSmooth=void 0;class Cc extends Ac{}Cc.prototype.ValueTypeName="color";class Lc extends Ac{}Lc.prototype.ValueTypeName="number";class Pc extends bc{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)pe.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Ic extends Ac{InterpolantFactoryMethodLinear(t){return new Pc(this.times,this.values,this.getValueSize(),t)}}Ic.prototype.ValueTypeName="quaternion",Ic.prototype.DefaultInterpolation=lt,Ic.prototype.InterpolantFactoryMethodSmooth=void 0;class Uc extends Ac{}Uc.prototype.ValueTypeName="string",Uc.prototype.ValueBufferType=Array,Uc.prototype.DefaultInterpolation=ot,Uc.prototype.InterpolantFactoryMethodLinear=void 0,Uc.prototype.InterpolantFactoryMethodSmooth=void 0;class Dc extends Ac{}Dc.prototype.ValueTypeName="vector";class Nc{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Lt(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Oc(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Ac.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Mc(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Hc[t])return void Hc[t].push({onLoad:e,onProgress:n,onError:i});Hc[t]=[],Hc[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Hc[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Fc.add(t,e);const n=Hc[t];delete Hc[t];for(let t=0,i=n.length;t{const n=Hc[t];if(void 0===n)throw this.manager.itemError(t),e;delete Hc[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Wc extends Gc{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Fc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=jt("img");function o(){c(),Fc.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){c(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class Xc extends gn{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Nn(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}class jc extends Xc{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(gn.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Nn(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const qc=new We,Yc=new me,Zc=new me;class Jc{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Gt(512,512),this.map=null,this.mapPass=null,this.matrix=new We,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Gi,this._frameExtents=new Gt(1,1),this._viewportCount=1,this._viewports=[new ce(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Yc.setFromMatrixPosition(t.matrixWorld),e.position.copy(Yc),Zc.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Zc),e.updateMatrixWorld(),qc.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(qc),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(qc)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class Kc extends Jc{constructor(){super(new Ci(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*Ct*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class $c extends Xc{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(gn.DEFAULT_UP),this.updateMatrix(),this.target=new gn,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new Kc}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const Qc=new We,th=new me,eh=new me;class nh extends Jc{constructor(){super(new Ci(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Gt(4,2),this._viewportCount=6,this._viewports=[new ce(2,1,1,1),new ce(0,1,1,1),new ce(3,1,1,1),new ce(1,1,1,1),new ce(3,0,1,1),new ce(1,0,1,1)],this._cubeDirections=[new me(1,0,0),new me(-1,0,0),new me(0,0,1),new me(0,0,-1),new me(0,1,0),new me(0,-1,0)],this._cubeUps=[new me(0,1,0),new me(0,1,0),new me(0,1,0),new me(0,1,0),new me(0,0,1),new me(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),th.setFromMatrixPosition(t.matrixWorld),n.position.copy(th),eh.copy(n.position),eh.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(eh),n.updateMatrixWorld(),i.makeTranslation(-th.x,-th.y,-th.z),Qc.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Qc)}}class ih extends Xc{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new nh}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class rh extends Jc{constructor(){super(new tr(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class sh extends Xc{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(gn.DEFAULT_UP),this.updateMatrix(),this.target=new gn,this.shadow=new rh}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class ah extends Xc{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class oh extends Xc{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class lh{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new me)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class ch extends Xc{constructor(t=new lh,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class hh extends Gc{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new Vc(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=hh.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Nn).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.anisotropy&&(i.anisotropy=t.anisotropy),void 0!==t.anisotropyRotation&&(i.anisotropyRotation=t.anisotropyRotation),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Nn).setHex(r.value);break;case"v2":i.uniforms[e].value=(new Gt).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new me).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new ce).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new Ht).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new We).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Gt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Gt).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:ac,SpriteMaterial:Ra,RawShaderMaterial:oc,ShaderMaterial:Ai,PointsMaterial:Co,MeshPhysicalMaterial:cc,MeshStandardMaterial:lc,MeshPhongMaterial:hc,MeshToonMaterial:uc,MeshNormalMaterial:dc,MeshLambertMaterial:pc,MeshDepthMaterial:sa,MeshDistanceMaterial:aa,MeshBasicMaterial:Fn,MeshMatcapMaterial:mc,LineDashedMaterial:fc,LineBasicMaterial:_o,Material:Ln}[t]}}class uh{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){pe.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;pe.multiplyQuaternionsFlat(t,s,t,e,t,n),pe.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Dh="\\[\\]\\.:\\/",Nh=new RegExp("["+Dh+"]","g"),Oh="[^"+Dh+"]",Fh="[^"+Dh.replace("\\.","")+"]",Bh=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",Oh)+/(WCOD+)?/.source.replace("WCOD",Fh)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Oh)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Oh)+"$"),zh=["material","materials","bones","map"];class Gh{constructor(t,e,n){this.path=e,this.parsedPath=n||Gh.parseTrackName(e),this.node=Gh.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Gh.Composite(t,e,n):new Gh(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Nh,"")}static parseTrackName(t){const e=Bh.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==zh.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===mt)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=ut,i.endingEnd=ut):(i.endingStart=t?this.zeroSlopeAtStart?ut:ht:dt,i.endingEnd=e?this.zeroSlopeAtEnd?ut:ht:dt)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const kh=new Float32Array(1);class Vh{constructor(t){this.value=t}clone(){return new Vh(void 0===this.value.clone?this.value:this.value.clone())}}let Wh=0;function Xh(t,e){return t.distance-e.distance}function jh(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new Gh(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}},t.AnimationUtils=Sc,t.ArcCurve=zo,t.ArrayCamera=ua,t.ArrowHelper=class extends gn{constructor(t=new me(0,0,1),e=new me(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===du&&(du=new ni,du.setAttribute("position",new Yn([0,0,0,0,1,0],3)),pu=new ll(0,.5,1,5,1),pu.translate(0,-.5,0)),this.position.copy(e),this.line=new To(du,new _o({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new xi(pu,new Fn({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{uu.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(uu,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=Rh,t.AudioAnalyser=class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;nthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,qh).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},t.Box3=ve,t.Box3Helper=class extends Ao{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new ni;i.setIndex(new Xn(n,1)),i.setAttribute("position",new Yn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new _o({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends Si{constructor(t,e,n,i,r,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(t,e,n,i,r,s)}},t.BoxGeometry=Si,t.BoxHelper=class extends Ao{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new ni;r.setIndex(new Xn(n,1)),r.setAttribute("position",new Xn(i,3)),super(r,new _o({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&hu.setFromObject(this.object),hu.isEmpty())return;const e=hu.min,n=hu.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=Xn,t.BufferGeometry=ni,t.BufferGeometryLoader=ph,t.ByteType=1010,t.Cache=Fc,t.Camera=Ri,t.CameraHelper=class extends Ao{constructor(t){const e=new ni,n=new _o({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new Yn(i,3)),e.setAttribute("color",new Yn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Nn(16755200),c=new Nn(16711680),h=new Nn(43775),u=new Nn(16777215),d=new Nn(3355443);this.setColors(l,c,h,u,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;lu.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),cu("c",e,t,lu,0,0,-1),cu("t",e,t,lu,0,0,1),cu("n1",e,t,lu,-1,-1,-1),cu("n2",e,t,lu,1,-1,-1),cu("n3",e,t,lu,-1,1,-1),cu("n4",e,t,lu,1,1,-1),cu("f1",e,t,lu,-1,-1,1),cu("f2",e,t,lu,1,-1,1),cu("f3",e,t,lu,-1,1,1),cu("f4",e,t,lu,1,1,1),cu("u1",e,t,lu,.7,1.1,-1),cu("u2",e,t,lu,-.7,1.1,-1),cu("u3",e,t,lu,0,2,-1),cu("cf1",e,t,lu,-1,0,1),cu("cf2",e,t,lu,1,0,1),cu("cf3",e,t,lu,0,-1,1),cu("cf4",e,t,lu,0,1,1),cu("cn1",e,t,lu,-1,0,-1),cu("cn2",e,t,lu,1,0,-1),cu("cn3",e,t,lu,0,-1,-1),cu("cn4",e,t,lu,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends le{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends al{constructor(t,e,n,i){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(t,e,n,i)}},t.CapsuleGeometry=al,t.CatmullRomCurve3=Xo,t.CineonToneMapping=3,t.CircleBufferGeometry=class extends ol{constructor(t,e,n,i){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(t,e,n,i)}},t.CircleGeometry=ol,t.ClampToEdgeWrapping=h,t.Clock=Sh,t.Color=Nn,t.ColorKeyframeTrack=Cc,t.ColorManagement=ee,t.CompressedArrayTexture=class extends Oo{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=h}},t.CompressedTexture=Oo,t.CompressedTextureLoader=class extends Gc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new Oo,o=new Vc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=f),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e0){const n=new Bc(e);r=new Wc(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new Wc(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e1)for(let n=0;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Vl.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new vl,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Ma,t.WebGL3DRenderTarget=class extends he{constructor(t=1,e=1,n=1){super(t,e),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new de(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends he{constructor(t=1,e=1,n=1){super(t,e),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new ue(null,t,e,n),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=Ui,t.WebGLMultipleRenderTargets=class extends he{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLMultipleRenderTargets=!0;const r=this.texture;this.texture=[];for(let t=0;t 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif"; -var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif"; +var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif"; var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; @@ -13636,13 +13657,13 @@ var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong"; -var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif"; +var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif"; -var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; +var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; -var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; +var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif"; var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; @@ -13674,7 +13695,7 @@ var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\tuniform float morphTar var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif"; -var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; +var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; @@ -13684,7 +13705,7 @@ var normal_pars_vertex = "#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef var normal_vertex = "#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif"; -var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; +var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif"; var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; @@ -13738,11 +13759,11 @@ var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif"; -var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_fragment = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_vertex = "#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif"; -var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; +var uv_vertex = "#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; @@ -13796,7 +13817,7 @@ const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive; const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}"; -const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; +const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; @@ -14515,7 +14536,9 @@ ShaderLib.physical = { specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() }, specularIntensity: { value: 1 }, specularIntensityMap: { value: null }, - specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() } + specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }, + anisotropyVector: { value: /*@__PURE__*/ new Vector2() }, + anisotropyMap: { value: null }, } ] ), @@ -19361,6 +19384,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', @@ -19397,6 +19422,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '', parameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '', + parameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '', + parameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '', parameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '', parameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '', @@ -19570,6 +19597,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) { parameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.anisotropy ? '#define USE_ANISOTROPY' : '', + parameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '', + parameters.clearcoat ? '#define USE_CLEARCOAT' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', @@ -20092,11 +20122,14 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities const HAS_METALNESSMAP = !! material.metalnessMap; const HAS_ROUGHNESSMAP = !! material.roughnessMap; + const HAS_ANISOTROPY = material.anisotropy > 0; const HAS_CLEARCOAT = material.clearcoat > 0; const HAS_IRIDESCENCE = material.iridescence > 0; const HAS_SHEEN = material.sheen > 0; const HAS_TRANSMISSION = material.transmission > 0; + const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap; + const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap; const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap; const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap; @@ -20169,6 +20202,9 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMap: HAS_METALNESSMAP, roughnessMap: HAS_ROUGHNESSMAP, + anisotropy: HAS_ANISOTROPY, + anisotropyMap: HAS_ANISOTROPYMAP, + clearcoat: HAS_CLEARCOAT, clearcoatMap: HAS_CLEARCOATMAP, clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, @@ -20212,6 +20248,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ), roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ), + anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ), + clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ), clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ), clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ), @@ -20233,7 +20271,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities // - vertexTangents: HAS_NORMALMAP && !! geometry.attributes.tangent, + vertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ), vertexColors: material.vertexColors, vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4, vertexUv1s: HAS_ATTRIBUTE_UV1, @@ -20365,6 +20403,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities array.push( parameters.emissiveMapUv ); array.push( parameters.metalnessMapUv ); array.push( parameters.roughnessMapUv ); + array.push( parameters.anisotropyMapUv ); array.push( parameters.clearcoatMapUv ); array.push( parameters.clearcoatNormalMapUv ); array.push( parameters.clearcoatRoughnessMapUv ); @@ -20438,6 +20477,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities _programLayers.enable( 15 ); if ( parameters.vertexTangents ) _programLayers.enable( 16 ); + if ( parameters.anisotropy ) + _programLayers.enable( 17 ); array.push( _programLayers.mask ); _programLayers.disableAll(); @@ -27316,6 +27357,18 @@ function WebGLMaterials( renderer, properties ) { } + if ( material.anisotropy > 0 ) { + + uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) ); + + if ( material.anisotropyMap ) { + + uniforms.anisotropyMap.value = material.anisotropyMap; + + } + + } + uniforms.specularIntensity.value = material.specularIntensity; uniforms.specularColor.value.copy( material.specularColor ); @@ -29331,7 +29384,7 @@ class WebGLRenderer { const colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ); const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment ); const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4; - const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent; + const vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 ); const morphTargets = !! geometry.morphAttributes.position; const morphNormals = !! geometry.morphAttributes.normal; const morphColors = !! geometry.morphAttributes.color; @@ -31704,7 +31757,7 @@ class Skeleton { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Skeleton', generator: 'Skeleton.toJSON' }, @@ -33011,7 +33064,7 @@ class Curve { const data = { metadata: { - version: 4.5, + version: 4.6, type: 'Curve', generator: 'Curve.toJSON' } @@ -38800,6 +38853,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.type = 'MeshPhysicalMaterial'; + this.anisotropyRotation = 0; + this.anisotropyMap = null; + this.clearcoatMap = null; this.clearcoatRoughness = 0.0; this.clearcoatRoughnessMap = null; @@ -38843,30 +38899,31 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { this.specularColor = new Color( 1, 1, 1 ); this.specularColorMap = null; - this._sheen = 0.0; + this._anisotropy = 0; this._clearcoat = 0; this._iridescence = 0; + this._sheen = 0.0; this._transmission = 0; this.setValues( parameters ); } - get sheen() { + get anisotropy() { - return this._sheen; + return this._anisotropy; } - set sheen( value ) { + set anisotropy( value ) { - if ( this._sheen > 0 !== value > 0 ) { + if ( this._anisotropy > 0 !== value > 0 ) { this.version ++; } - this._sheen = value; + this._anisotropy = value; } @@ -38906,6 +38963,24 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { } + get sheen() { + + return this._sheen; + + } + + set sheen( value ) { + + if ( this._sheen > 0 !== value > 0 ) { + + this.version ++; + + } + + this._sheen = value; + + } + get transmission() { return this._transmission; @@ -38935,6 +39010,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { }; + this.anisotropy = source.anisotropy; + this.anisotropyRotation = source.anisotropyRotation; + this.anisotropyMap = source.anisotropyMap; + this.clearcoat = source.clearcoat; this.clearcoatMap = source.clearcoatMap; this.clearcoatRoughness = source.clearcoatRoughness; @@ -43219,6 +43298,8 @@ class MaterialLoader extends Loader { if ( json.thickness !== undefined ) material.thickness = json.thickness; if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance; if ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor ); + if ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy; + if ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation; if ( json.fog !== undefined ) material.fog = json.fog; if ( json.flatShading !== undefined ) material.flatShading = json.flatShading; if ( json.blending !== undefined ) material.blending = json.blending; @@ -43422,6 +43503,8 @@ class MaterialLoader extends Loader { if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap ); if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap ); + if ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap ); + if ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap ); if ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap ); diff --git a/build/three.module.min.js b/build/three.module.min.js index 17f77c6263f055..8dc9ea0c79c346 100644 --- a/build/three.module.min.js +++ b/build/three.module.min.js @@ -3,4 +3,4 @@ * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT */ -const t="153dev",e={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},i=0,r=1,s=2,a=3,o=0,l=1,c=2,h=3,u=0,d=1,p=2,m=2,f=0,g=1,v=2,_=3,x=4,y=5,M=100,S=101,b=102,E=103,T=104,w=200,A=201,R=202,C=203,L=204,P=205,I=206,U=207,D=208,N=209,O=210,F=0,z=1,B=2,H=3,k=4,G=5,V=6,W=7,X=0,j=1,q=2,Y=0,Z=1,J=2,K=3,$=4,Q=5,tt=300,et=301,nt=302,it=303,rt=304,st=306,at=1e3,ot=1001,lt=1002,ct=1003,ht=1004,ut=1004,dt=1005,pt=1005,mt=1006,ft=1007,gt=1007,vt=1008,_t=1008,xt=1009,yt=1010,Mt=1011,St=1012,bt=1013,Et=1014,Tt=1015,wt=1016,At=1017,Rt=1018,Ct=1020,Lt=1021,Pt=1023,It=1024,Ut=1025,Dt=1026,Nt=1027,Ot=1028,Ft=1029,zt=1030,Bt=1031,Ht=1033,kt=33776,Gt=33777,Vt=33778,Wt=33779,Xt=35840,jt=35841,qt=35842,Yt=35843,Zt=36196,Jt=37492,Kt=37496,$t=37808,Qt=37809,te=37810,ee=37811,ne=37812,ie=37813,re=37814,se=37815,ae=37816,oe=37817,le=37818,ce=37819,he=37820,ue=37821,de=36492,pe=36283,me=36284,fe=36285,ge=36286,ve=2200,_e=2201,xe=2202,ye=2300,Me=2301,Se=2302,be=2400,Ee=2401,Te=2402,we=2500,Ae=2501,Re=0,Ce=1,Le=2,Pe=3e3,Ie=3001,Ue=3200,De=3201,Ne=0,Oe=1,Fe="",ze="srgb",Be="srgb-linear",He="display-p3",ke=0,Ge=7680,Ve=7681,We=7682,Xe=7683,je=34055,qe=34056,Ye=5386,Ze=512,Je=513,Ke=514,$e=515,Qe=516,tn=517,en=518,nn=519,rn=512,sn=513,an=514,on=515,ln=516,cn=517,hn=518,un=519,dn=35044,pn=35048,mn=35040,fn=35045,gn=35049,vn=35041,_n=35046,xn=35050,yn=35042,Mn="100",Sn="300 es",bn=1035;class En{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+Tn[t>>16&255]+Tn[t>>24&255]+"-"+Tn[255&e]+Tn[e>>8&255]+"-"+Tn[e>>16&15|64]+Tn[e>>24&255]+"-"+Tn[63&n|128]+Tn[n>>8&255]+"-"+Tn[n>>16&255]+Tn[n>>24&255]+Tn[255&i]+Tn[i>>8&255]+Tn[i>>16&255]+Tn[i>>24&255]).toLowerCase()}function Ln(t,e,n){return Math.max(e,Math.min(n,t))}function Pn(t,e){return(t%e+e)%e}function In(t,e,n){return(1-n)*t+n*e}function Un(t){return 0==(t&t-1)&&0!==t}function Dn(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Nn(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function On(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Fn(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const zn={DEG2RAD:An,RAD2DEG:Rn,generateUUID:Cn,clamp:Ln,euclideanModulo:Pn,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:In,damp:function(t,e,n,i){return In(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Pn(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(wn=t);let e=wn+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*An},radToDeg:function(t){return t*Rn},isPowerOfTwo:Un,ceilPowerOfTwo:Dn,floorPowerOfTwo:Nn,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Fn,denormalize:On};class Bn{constructor(t=0,e=0){Bn.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ln(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Hn{constructor(){Hn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],_=i[4],x=i[7],y=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*y,r[3]=s*f+a*_+o*M,r[6]=s*g+a*x+o*S,r[1]=l*m+c*v+h*y,r[4]=l*f+c*_+h*M,r[7]=l*g+c*x+h*S,r[2]=u*m+d*v+p*y,r[5]=u*f+d*_+p*M,r[8]=u*g+d*x+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(kn.makeScale(t,e)),this}rotate(t){return this.premultiply(kn.makeRotation(-t)),this}translate(t,e){return this.premultiply(kn.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const kn=new Hn;function Gn(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Vn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Wn(t,e){return new Vn[t](e)}function Xn(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const jn={};function qn(t){t in jn||(jn[t]=!0,console.warn(t))}function Yn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Zn(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Jn=(new Hn).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Kn=(new Hn).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const $n={[Be]:t=>t,[ze]:t=>t.convertSRGBToLinear(),[He]:function(t){return t.convertSRGBToLinear().applyMatrix3(Kn)}},Qn={[Be]:t=>t,[ze]:t=>t.convertLinearToSRGB(),[He]:function(t){return t.applyMatrix3(Jn).convertLinearToSRGB()}},ti={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return Be},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=$n[e],r=Qn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let ei;class ni{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===ei&&(ei=Xn("canvas")),ei.width=t.width,ei.height=t.height;const n=ei.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=ei}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Xn("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==tt)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case at:t.x=t.x-Math.floor(t.x);break;case ot:t.x=t.x<0?0:1;break;case lt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case at:t.y=t.y-Math.floor(t.y);break;case ot:t.y=t.y<0?0:1;break;case lt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===ze?Ie:Pe}set encoding(t){qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Ie?ze:Fe}}oi.DEFAULT_IMAGE=null,oi.DEFAULT_MAPPING=tt,oi.DEFAULT_ANISOTROPY=1;class li{constructor(t=0,e=0,n=0,i=1){li.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Ln(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class gi{constructor(t=0,e=0,n=0){gi.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_i.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_i.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return vi.copy(this).projectOnVector(t),this.sub(vi)}reflect(t){return this.sub(vi.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Ln(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const vi=new gi,_i=new fi;class xi{constructor(t=new gi(1/0,1/0,1/0),e=new gi(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Mi),Mi.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ci),Li.subVectors(this.max,Ci),bi.subVectors(t.a,Ci),Ei.subVectors(t.b,Ci),Ti.subVectors(t.c,Ci),wi.subVectors(Ei,bi),Ai.subVectors(Ti,Ei),Ri.subVectors(bi,Ti);let e=[0,-wi.z,wi.y,0,-Ai.z,Ai.y,0,-Ri.z,Ri.y,wi.z,0,-wi.x,Ai.z,0,-Ai.x,Ri.z,0,-Ri.x,-wi.y,wi.x,0,-Ai.y,Ai.x,0,-Ri.y,Ri.x,0];return!!Ui(e,bi,Ei,Ti,Li)&&(e=[1,0,0,0,1,0,0,0,1],!!Ui(e,bi,Ei,Ti,Li)&&(Pi.crossVectors(wi,Ai),e=[Pi.x,Pi.y,Pi.z],Ui(e,bi,Ei,Ti,Li)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Mi).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Mi).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(yi[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),yi[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),yi[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),yi[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),yi[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),yi[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),yi[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),yi[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(yi)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const yi=[new gi,new gi,new gi,new gi,new gi,new gi,new gi,new gi],Mi=new gi,Si=new xi,bi=new gi,Ei=new gi,Ti=new gi,wi=new gi,Ai=new gi,Ri=new gi,Ci=new gi,Li=new gi,Pi=new gi,Ii=new gi;function Ui(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Ii.fromArray(t,s);const a=r.x*Math.abs(Ii.x)+r.y*Math.abs(Ii.y)+r.z*Math.abs(Ii.z),o=e.dot(Ii),l=n.dot(Ii),c=i.dot(Ii);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Di=new xi,Ni=new gi,Oi=new gi;class Fi{constructor(t=new gi,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Di.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Ni.subVectors(t,this.center);const e=Ni.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(Ni,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Oi.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Ni.copy(t.center).add(Oi)),this.expandByPoint(Ni.copy(t.center).sub(Oi))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const zi=new gi,Bi=new gi,Hi=new gi,ki=new gi,Gi=new gi,Vi=new gi,Wi=new gi;class Xi{constructor(t=new gi,e=new gi(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,zi)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=zi.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(zi.copy(this.origin).addScaledVector(this.direction,e),zi.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Bi.copy(t).add(e).multiplyScalar(.5),Hi.copy(e).sub(t).normalize(),ki.copy(this.origin).sub(Bi);const r=.5*t.distanceTo(e),s=-this.direction.dot(Hi),a=ki.dot(this.direction),o=-ki.dot(Hi),l=ki.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(Bi).addScaledVector(Hi,u),d}intersectSphere(t,e){zi.subVectors(t.center,this.origin);const n=zi.dot(this.direction),i=zi.dot(zi)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,zi)}intersectTriangle(t,e,n,i,r){Gi.subVectors(e,t),Vi.subVectors(n,t),Wi.crossVectors(Gi,Vi);let s,a=this.direction.dot(Wi);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ki.subVectors(this.origin,t);const o=s*this.direction.dot(Vi.crossVectors(ki,Vi));if(o<0)return null;const l=s*this.direction.dot(Gi.cross(ki));if(l<0)return null;if(o+l>a)return null;const c=-s*ki.dot(Wi);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ji{constructor(){ji.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ji).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/qi.setFromMatrixColumn(t,0).length(),r=1/qi.setFromMatrixColumn(t,1).length(),s=1/qi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Zi,t,Ji)}lookAt(t,e,n){const i=this.elements;return Qi.subVectors(t,e),0===Qi.lengthSq()&&(Qi.z=1),Qi.normalize(),Ki.crossVectors(n,Qi),0===Ki.lengthSq()&&(1===Math.abs(n.z)?Qi.x+=1e-4:Qi.z+=1e-4,Qi.normalize(),Ki.crossVectors(n,Qi)),Ki.normalize(),$i.crossVectors(Qi,Ki),i[0]=Ki.x,i[4]=$i.x,i[8]=Qi.x,i[1]=Ki.y,i[5]=$i.y,i[9]=Qi.y,i[2]=Ki.z,i[6]=$i.z,i[10]=Qi.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],_=n[7],x=n[11],y=n[15],M=i[0],S=i[4],b=i[8],E=i[12],T=i[1],w=i[5],A=i[9],R=i[13],C=i[2],L=i[6],P=i[10],I=i[14],U=i[3],D=i[7],N=i[11],O=i[15];return r[0]=s*M+a*T+o*C+l*U,r[4]=s*S+a*w+o*L+l*D,r[8]=s*b+a*A+o*P+l*N,r[12]=s*E+a*R+o*I+l*O,r[1]=c*M+h*T+u*C+d*U,r[5]=c*S+h*w+u*L+d*D,r[9]=c*b+h*A+u*P+d*N,r[13]=c*E+h*R+u*I+d*O,r[2]=p*M+m*T+f*C+g*U,r[6]=p*S+m*w+f*L+g*D,r[10]=p*b+m*A+f*P+g*N,r[14]=p*E+m*R+f*I+g*O,r[3]=v*M+_*T+x*C+y*U,r[7]=v*S+_*w+x*L+y*D,r[11]=v*b+_*A+x*P+y*N,r[15]=v*E+_*R+x*I+y*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,_=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,y=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*_+i*x+r*y;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=_*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=x*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=y*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,_=o*c,x=o*h,y=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*y,i[1]=(d+x)*y,i[2]=(p-_)*y,i[3]=0,i[4]=(d-x)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+_)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=qi.set(i[0],i[1],i[2]).length();const s=qi.set(i[4],i[5],i[6]).length(),a=qi.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Yi.copy(this);const o=1/r,l=1/s,c=1/a;return Yi.elements[0]*=o,Yi.elements[1]*=o,Yi.elements[2]*=o,Yi.elements[4]*=l,Yi.elements[5]*=l,Yi.elements[6]*=l,Yi.elements[8]*=c,Yi.elements[9]*=c,Yi.elements[10]*=c,e.setFromRotationMatrix(Yi),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const qi=new gi,Yi=new ji,Zi=new gi(0,0,0),Ji=new gi(1,1,1),Ki=new gi,$i=new gi,Qi=new gi,tr=new ji,er=new fi;class nr{constructor(t=0,e=0,n=0,i=nr.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(Ln(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Ln(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(Ln(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-Ln(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Ln(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Ln(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return tr.makeRotationFromQuaternion(t),this.setFromRotationMatrix(tr,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return er.setFromEuler(this),this.setFromQuaternion(er,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}nr.DEFAULT_ORDER="XYZ";class ir{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(cr,t,hr),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(cr,ur,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){_r.subVectors(i,e),xr.subVectors(n,e),yr.subVectors(t,e);const s=_r.dot(_r),a=_r.dot(xr),o=_r.dot(yr),l=xr.dot(xr),c=xr.dot(yr),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Mr),Mr.x>=0&&Mr.y>=0&&Mr.x+Mr.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===Rr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Rr=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Mr),o.setScalar(0),o.addScaledVector(r,Mr.x),o.addScaledVector(s,Mr.y),o.addScaledVector(a,Mr.z),o}static isFrontFacing(t,e,n,i){return _r.subVectors(n,e),xr.subVectors(t,e),_r.cross(xr).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return _r.subVectors(this.c,this.b),xr.subVectors(this.a,this.b),.5*_r.cross(xr).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Cr.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Cr.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Rr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Rr=!0),Cr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Cr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Cr.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Cr.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Sr.subVectors(i,n),br.subVectors(r,n),Tr.subVectors(t,n);const o=Sr.dot(Tr),l=br.dot(Tr);if(o<=0&&l<=0)return e.copy(n);wr.subVectors(t,i);const c=Sr.dot(wr),h=br.dot(wr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Sr,s);Ar.subVectors(t,r);const d=Sr.dot(Ar),p=br.dot(Ar);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(br,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Er.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Er,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Sr,s).addScaledVector(br,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Lr=0;class Pr extends En{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Lr++}),this.uuid=Cn(),this.name="",this.type="Material",this.blending=g,this.side=u,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=L,this.blendDst=P,this.blendEquation=M,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=H,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ge,this.stencilZFail=Ge,this.stencilZPass=Ge,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==g&&(n.blending=this.blending),this.side!==u&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Ir={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ur={h:0,s:0,l:0},Dr={h:0,s:0,l:0};function Nr(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Or{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=ze){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ti.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ti.workingColorSpace){return this.r=t,this.g=e,this.b=n,ti.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ti.workingColorSpace){if(t=Pn(t,1),e=Ln(e,0,1),n=Ln(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Nr(r,i,t+1/3),this.g=Nr(r,i,t),this.b=Nr(r,i,t-1/3)}return ti.toWorkingColorSpace(this,i),this}setStyle(t,e=ze){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=ze){const n=Ir[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Yn(t.r),this.g=Yn(t.g),this.b=Yn(t.b),this}copyLinearToSRGB(t){return this.r=Zn(t.r),this.g=Zn(t.g),this.b=Zn(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=ze){return ti.fromWorkingColorSpace(Fr.copy(this),t),65536*Math.round(Ln(255*Fr.r,0,255))+256*Math.round(Ln(255*Fr.g,0,255))+Math.round(Ln(255*Fr.b,0,255))}getHexString(t=ze){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ti.workingColorSpace){ti.fromWorkingColorSpace(Fr.copy(this),e);const n=Fr.r,i=Fr.g,r=Fr.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function kr(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Ln(t,-65504,65504),Br.floatView[0]=t;const e=Br.uint32View[0],n=e>>23&511;return Br.baseTable[n]+((8388607&e)>>Br.shiftTable[n])}function Gr(t){const e=t>>10;return Br.uint32View[0]=Br.mantissaTable[Br.offsetTable[e]+(1023&t)]+Br.exponentTable[e],Br.floatView[0]}const Vr={toHalfFloat:kr,fromHalfFloat:Gr},Wr=new gi,Xr=new Bn;class jr{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=dn,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}us.copy(r).invert(),ds.copy(t.ray).applyMatrix4(us),null!==n.boundingBox&&!1===ds.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,ds)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,c=r.attributes.uv1,h=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let r=0,o=u.length;rn.far?null:{distance:c,point:As.clone(),object:t}}(t,e,n,i,fs,gs,vs,ws);if(h){r&&(ys.fromBufferAttribute(r,o),Ms.fromBufferAttribute(r,l),Ss.fromBufferAttribute(r,c),h.uv=Cr.getInterpolation(ws,fs,gs,vs,ys,Ms,Ss,new Bn)),s&&(ys.fromBufferAttribute(s,o),Ms.fromBufferAttribute(s,l),Ss.fromBufferAttribute(s,c),h.uv1=Cr.getInterpolation(ws,fs,gs,vs,ys,Ms,Ss,new Bn),h.uv2=h.uv1),a&&(bs.fromBufferAttribute(a,o),Es.fromBufferAttribute(a,l),Ts.fromBufferAttribute(a,c),h.normal=Cr.getInterpolation(ws,fs,gs,vs,bs,Es,Ts,new gi),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new gi,materialIndex:0};Cr.getNormal(fs,gs,vs,t.normal),h.face=t}return h}class Ls extends hs{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const _=s/f,x=p/g,y=s/2,M=p/2,S=m/2,b=f+1,E=g+1;let T=0,w=0;const A=new gi;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Os extends vr{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ji,this.projectionMatrix=new ji,this.projectionMatrixInverse=new ji}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Fs extends Os{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*Rn*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*An*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*Rn*Math.atan(Math.tan(.5*An*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*An*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const zs=-90;class Bs extends vr{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Fs(zs,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Fs(zs,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Fs(zs,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Fs(zs,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Fs(zs,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Fs(zs,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=Y,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Hs extends oi{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:et,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ks extends ci{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];void 0!==e.encoding&&(qn("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Ie?ze:Fe),this.texture=new Hs(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:mt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new Ls(5,5,5),r=new Ns({name:"CubemapFromEquirect",uniforms:Ps(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:f});r.uniforms.tEquirect.value=e;const s=new Rs(i,r),a=e.minFilter;e.minFilter===vt&&(e.minFilter=mt);return new Bs(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Gs=new gi,Vs=new gi,Ws=new Hn;class Xs{constructor(t=new gi(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Gs.subVectors(n,e).cross(Vs.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Gs),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ws.getNormalMatrix(t),i=this.coplanarPoint(Gs).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const js=new Fi,qs=new gi;class Ys{constructor(t=new Xs,e=new Xs,n=new Xs,i=new Xs,r=new Xs,s=new Xs){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],_=n[15];return e[0].setComponents(a-i,h-o,m-u,_-f).normalize(),e[1].setComponents(a+i,h+o,m+u,_+f).normalize(),e[2].setComponents(a+r,h+l,m+d,_+g).normalize(),e[3].setComponents(a-r,h-l,m-d,_-g).normalize(),e[4].setComponents(a-s,h-c,m-p,_-v).normalize(),e[5].setComponents(a+s,h+c,m+p,_+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),js.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),js.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(js)}intersectsSprite(t){return js.center.set(0,0,0),js.radius=.7071067811865476,js.applyMatrix4(t.matrixWorld),this.intersectsSphere(js)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,qs.y=i.normal.y>0?t.max.y:t.min.y,qs.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(qs)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Zs(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Js(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Qs={common:{diffuse:{value:new Or(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Hn},alphaMap:{value:null},alphaMapTransform:{value:new Hn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Hn}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Hn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Hn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Hn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Hn},normalScale:{value:new Bn(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Hn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Hn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Hn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Hn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Or(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Or(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Hn}},sprite:{diffuse:{value:new Or(16777215)},opacity:{value:1},center:{value:new Bn(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Hn},alphaMap:{value:null},alphaTest:{value:0}}},ta={basic:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.fog]),vertexShader:$s.meshbasic_vert,fragmentShader:$s.meshbasic_frag},lambert:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)}}]),vertexShader:$s.meshlambert_vert,fragmentShader:$s.meshlambert_frag},phong:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)},specular:{value:new Or(1118481)},shininess:{value:30}}]),vertexShader:$s.meshphong_vert,fragmentShader:$s.meshphong_frag},standard:{uniforms:Is([Qs.common,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.roughnessmap,Qs.metalnessmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:$s.meshphysical_vert,fragmentShader:$s.meshphysical_frag},toon:{uniforms:Is([Qs.common,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.gradientmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)}}]),vertexShader:$s.meshtoon_vert,fragmentShader:$s.meshtoon_frag},matcap:{uniforms:Is([Qs.common,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,{matcap:{value:null}}]),vertexShader:$s.meshmatcap_vert,fragmentShader:$s.meshmatcap_frag},points:{uniforms:Is([Qs.points,Qs.fog]),vertexShader:$s.points_vert,fragmentShader:$s.points_frag},dashed:{uniforms:Is([Qs.common,Qs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:$s.linedashed_vert,fragmentShader:$s.linedashed_frag},depth:{uniforms:Is([Qs.common,Qs.displacementmap]),vertexShader:$s.depth_vert,fragmentShader:$s.depth_frag},normal:{uniforms:Is([Qs.common,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,{opacity:{value:1}}]),vertexShader:$s.meshnormal_vert,fragmentShader:$s.meshnormal_frag},sprite:{uniforms:Is([Qs.sprite,Qs.fog]),vertexShader:$s.sprite_vert,fragmentShader:$s.sprite_frag},background:{uniforms:{uvTransform:{value:new Hn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:$s.background_vert,fragmentShader:$s.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:$s.backgroundCube_vert,fragmentShader:$s.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:$s.cube_vert,fragmentShader:$s.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:$s.equirect_vert,fragmentShader:$s.equirect_frag},distanceRGBA:{uniforms:Is([Qs.common,Qs.displacementmap,{referencePosition:{value:new gi},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:$s.distanceRGBA_vert,fragmentShader:$s.distanceRGBA_frag},shadow:{uniforms:Is([Qs.lights,Qs.fog,{color:{value:new Or(0)},opacity:{value:1}}]),vertexShader:$s.shadow_vert,fragmentShader:$s.shadow_frag}};ta.physical={uniforms:Is([ta.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Hn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Hn},clearcoatNormalScale:{value:new Bn(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Hn},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Hn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Hn},sheen:{value:0},sheenColor:{value:new Or(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Hn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Hn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Hn},transmissionSamplerSize:{value:new Bn},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Hn},attenuationDistance:{value:0},attenuationColor:{value:new Or(0)},specularColor:{value:new Or(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Hn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Hn}}]),vertexShader:$s.meshphysical_vert,fragmentShader:$s.meshphysical_frag};const ea={r:0,b:0,g:0};function na(t,e,n,i,r,s,a){const o=new Or(0);let l,c,h=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(ea,Us(t)),i.buffers.color.setClear(ea.r,ea.g,ea.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,g(o,h)},render:function(s,v){let _=!1,x=!0===v.isScene?v.background:null;if(x&&x.isTexture){x=(v.backgroundBlurriness>0?n:e).get(x)}switch(null===x?g(o,h):x&&x.isColor&&(g(x,1),_=!0),t.xr.getEnvironmentBlendMode()){case"opaque":_=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,a),_=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,a),_=!0}(t.autoClear||_)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),x&&(x.isCubeTexture||x.mapping===st)?(void 0===c&&(c=new Rs(new Ls(1,1,1),new Ns({name:"BackgroundCubeMaterial",uniforms:Ps(ta.backgroundCube.uniforms),vertexShader:ta.backgroundCube.vertexShader,fragmentShader:ta.backgroundCube.fragmentShader,side:d,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(c)),c.material.uniforms.envMap.value=x,c.material.uniforms.flipEnvMap.value=x.isCubeTexture&&!1===x.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,c.material.toneMapped=x.colorSpace!==ze,p===x&&m===x.version&&f===t.toneMapping||(c.material.needsUpdate=!0,p=x,m=x.version,f=t.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null)):x&&x.isTexture&&(void 0===l&&(l=new Rs(new Ks(2,2),new Ns({name:"BackgroundMaterial",uniforms:Ps(ta.background.uniforms),vertexShader:ta.background.vertexShader,fragmentShader:ta.background.fragmentShader,side:u,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=x,l.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,l.material.toneMapped=x.colorSpace!==ze,!0===x.matrixAutoUpdate&&x.updateMatrix(),l.material.uniforms.uvTransform.value.copy(x.matrix),p===x&&m===x.version&&f===t.toneMapping||(l.material.needsUpdate=!0,p=x,m=x.version,f=t.toneMapping),l.layers.enableAll(),s.unshift(l,l.geometry,l.material,0,0,null))}}}function ia(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,x,d,y),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,x,d,y)}else{const t=!0===l.wireframe;c.geometry===x.id&&c.program===d.id&&c.wireframe===t||(c.geometry=x.id,c.program=d.id,c.wireframe=t,M=!0)}null!==y&&n.update(y,t.ELEMENT_ARRAY_BUFFER),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const s=c[e];if(s.location>=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,l=a.itemSize,c=n.get(a);if(void 0===c)continue;const h=c.buffer,u=c.type,d=c.bytesPerElement,p=!0===i.isWebGL2&&(u===t.INT||u===t.UNSIGNED_INT||a.gpuType===bt);if(a.isInterleavedBufferAttribute){const n=a.data,i=n.stride,c=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),g=t.getParameter(t.MAX_VARYING_VECTORS),v=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:x,floatVertexTextures:_&&x,maxSamples:s?t.getParameter(t.MAX_SAMPLES):0}}function aa(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Xs,o=new Hn,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function oa(t){let e=new WeakMap;function n(t,e){return e===it?t.mapping=et:e===rt&&(t.mapping=nt),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===it||s===rt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new ks(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class la extends Os{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const ca=4,ha=[.125,.215,.35,.446,.526,.582],ua=20,da=new la,pa=new Or;let ma=null;const fa=(1+Math.sqrt(5))/2,ga=1/fa,va=[new gi(1,1,1),new gi(-1,1,1),new gi(1,1,-1),new gi(-1,1,-1),new gi(0,fa,ga),new gi(0,fa,-ga),new gi(ga,0,fa),new gi(-ga,0,fa),new gi(fa,ga,0),new gi(-fa,ga,0)];class _a{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ma=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Sa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Ma(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-ca?o=ha[a-t+ca-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),_=new Float32Array(f*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),_.set(u,f*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const y=new hs;y.setAttribute("position",new jr(v,m)),y.setAttribute("uv",new jr(_,f)),y.setAttribute("faceIndex",new jr(x,g)),e.push(y),r>ca&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(ua),r=new gi(0,1,0),s=new Ns({name:"SphericalGaussianBlur",defines:{n:ua,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:ba(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Rs(this._lodPlanes[0],t);this._renderer.compile(e,da)}_sceneToCubeUV(t,e,n,i){const r=new Fs(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(pa),o.toneMapping=Y,o.autoClear=!1;const h=new zr({name:"PMREM.Background",side:d,depthWrite:!1,depthTest:!1}),u=new Rs(new Ls,h);let p=!1;const m=t.background;m?m.isColor&&(h.color.copy(m),t.background=null,p=!0):(h.color.copy(pa),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ya(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===et||t.mapping===nt;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Sa()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Ma());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Rs(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ya(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,da)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eua&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${ua}`);const f=[];let g=0;for(let t=0;tv-ca?i-v+ca:0),4*(this._cubeSize-_),3*_,2*_),o.setRenderTarget(e),o.render(c,da)}}function xa(t,e,n){const i=new ci(t,e,n);return i.texture.mapping=st,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ya(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Ma(){return new Ns({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ba(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1})}function Sa(){return new Ns({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ba(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:f,depthTest:!1,depthWrite:!1})}function ba(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Ea(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===it||s===rt,o=s===et||s===nt;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new _a(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const f=new Float32Array(p*m*4*r),g=new hi(f,p,m,r);g.type=Tt,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=Fa[r];if(void 0===s&&(s=new Float32Array(r),Fa[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Va(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function ko(t,e){const n=function(t){switch(t){case Be:return["Linear","( value )"];case ze:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Go(t,e){let n;switch(e){case Z:n="Linear";break;case J:n="Reinhard";break;case K:n="OptimizedCineon";break;case $:n="ACESFilmic";break;case Q:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Vo(t){return""!==t}function Wo(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Xo(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const jo=/^[ \t]*#include +<([\w\d./]+)>/gm;function qo(t){return t.replace(jo,Yo)}function Yo(t,e){const n=$s[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return qo(n)}const Zo=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Jo(t){return t.replace(Zo,Ko)}function Ko(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(x+="\n"),y=[g,v].filter(Vo).join("\n"),y.length>0&&(y+="\n")):(x=[$o(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Vo).join("\n"),y=[g,$o(n),"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Y?"#define TONE_MAPPING":"",n.toneMapping!==Y?$s.tonemapping_pars_fragment:"",n.toneMapping!==Y?Go("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",$s.encodings_pars_fragment,ko("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Vo).join("\n")),a=qo(a),a=Wo(a,n),a=Xo(a,n),o=qo(o),o=Wo(o,n),o=Xo(o,n),a=Jo(a),o=Jo(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",x=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+x,y=["#define varying in",n.glslVersion===Sn?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Sn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+y);const S=M+x+a,b=M+y+o,E=zo(r,r.VERTEX_SHADER,S),T=zo(r,r.FRAGMENT_SHADER,b);if(r.attachShader(_,E),r.attachShader(_,T),void 0!==n.index0AttributeName?r.bindAttribLocation(_,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(_,0,"position"),r.linkProgram(_),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(_).trim(),n=r.getShaderInfoLog(E).trim(),i=r.getShaderInfoLog(T).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(_,r.LINK_STATUS))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,_,E,T);else{const t=Ho(r,E,"vertex"),n=Ho(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(_,r.VALIDATE_STATUS)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:x},fragmentShader:{log:i,prefix:y}})}let w,A;return r.deleteShader(E),r.deleteShader(T),this.getUniforms=function(){return void 0===w&&(w=new Fo(r,_)),w},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r0,Z=s.iridescence>0,J=s.sheen>0,K=s.transmission>0,$=q&&!!s.clearcoatMap,Q=q&&!!s.clearcoatNormalMap,tt=q&&!!s.clearcoatRoughnessMap,et=Z&&!!s.iridescenceMap,nt=Z&&!!s.iridescenceThicknessMap,it=J&&!!s.sheenColorMap,rt=J&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ct=K&&!!s.transmissionMap,ht=K&&!!s.thicknessMap,ut=!!s.gradientMap,dt=!!s.alphaMap,pt=s.alphaTest>0,mt=!!s.extensions,ft=!!S.attributes.uv1,gt=!!S.attributes.uv2,vt=!!S.attributes.uv3;return{isWebGL2:h,shaderID:w,shaderName:s.type,vertexShader:C,fragmentShader:L,defines:s.defines,customVertexShaderID:P,customFragmentShaderID:I,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:f,instancing:N,instancingColor:N&&null!==y.instanceColor,supportsVertexTextures:m,outputColorSpace:null===D?t.outputColorSpace:!0===D.isXRRenderTarget?D.texture.colorSpace:Be,map:O,matcap:F,envMap:z,envMapMode:z&&E.mapping,envMapCubeUVHeight:T,aoMap:B,lightMap:H,bumpMap:k,normalMap:G,displacementMap:m&&V,emissiveMap:W,normalMapObjectSpace:G&&s.normalMapType===Oe,normalMapTangentSpace:G&&s.normalMapType===Ne,metalnessMap:X,roughnessMap:j,clearcoat:q,clearcoatMap:$,clearcoatNormalMap:Q,clearcoatRoughnessMap:tt,iridescence:Z,iridescenceMap:et,iridescenceThicknessMap:nt,sheen:J,sheenColorMap:it,sheenRoughnessMap:rt,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:K,transmissionMap:ct,thicknessMap:ht,gradientMap:ut,opaque:!1===s.transparent&&s.blending===g,alphaMap:dt,alphaTest:pt,combine:s.combine,mapUv:O&&_(s.map.channel),aoMapUv:B&&_(s.aoMap.channel),lightMapUv:H&&_(s.lightMap.channel),bumpMapUv:k&&_(s.bumpMap.channel),normalMapUv:G&&_(s.normalMap.channel),displacementMapUv:V&&_(s.displacementMap.channel),emissiveMapUv:W&&_(s.emissiveMap.channel),metalnessMapUv:X&&_(s.metalnessMap.channel),roughnessMapUv:j&&_(s.roughnessMap.channel),clearcoatMapUv:$&&_(s.clearcoatMap.channel),clearcoatNormalMapUv:Q&&_(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&_(s.clearcoatRoughnessMap.channel),iridescenceMapUv:et&&_(s.iridescenceMap.channel),iridescenceThicknessMapUv:nt&&_(s.iridescenceThicknessMap.channel),sheenColorMapUv:it&&_(s.sheenColorMap.channel),sheenRoughnessMapUv:rt&&_(s.sheenRoughnessMap.channel),specularMapUv:at&&_(s.specularMap.channel),specularColorMapUv:ot&&_(s.specularColorMap.channel),specularIntensityMapUv:lt&&_(s.specularIntensityMap.channel),transmissionMapUv:ct&&_(s.transmissionMap.channel),thicknessMapUv:ht&&_(s.thicknessMap.channel),alphaMapUv:dt&&_(s.alphaMap.channel),vertexTangents:G&&!!S.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!S.attributes.color&&4===S.attributes.color.itemSize,vertexUv1s:ft,vertexUv2s:gt,vertexUv3s:vt,pointsUvs:!0===y.isPoints&&!!S.attributes.uv&&(O||dt),fog:!!M,useFog:!0===s.fog,fogExp2:M&&M.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==S.morphAttributes.position,morphNormals:void 0!==S.morphAttributes.normal,morphColors:void 0!==S.morphAttributes.color,morphTargetsCount:R,morphTextureStride:U,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:Y,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:mt&&!0===s.extensions.derivatives,extensionFragDepth:mt&&!0===s.extensions.fragDepth,extensionDrawBuffers:mt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:mt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.opaque&&o.enable(17);e.pointsUvs&&o.enable(18);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=v[t.type];let n;if(e){const t=ta[e];n=Ds.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||sl),i.length>1&&i.sort(e||al),r.length>1&&r.sort(e||al)}}}function ll(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new ol,t.set(e,[r])):n>=i.length?(r=new ol,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function cl(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new gi,color:new Or};break;case"SpotLight":n={position:new gi,direction:new gi,color:new Or,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new gi,color:new Or,distance:0,decay:0};break;case"HemisphereLight":n={direction:new gi,skyColor:new Or,groundColor:new Or};break;case"RectAreaLight":n={color:new Or,position:new gi,halfWidth:new gi,halfHeight:new gi}}return t[e.id]=n,n}}}let hl=0;function ul(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function dl(t,e){const n=new cl,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Bn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Bn,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new gi);const s=new gi,a=new ji,o=new ji;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,_=0,x=0;s.sort(ul);const y=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Qs.LTC_FLOAT_1,r.rectAreaLTC2=Qs.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Qs.LTC_HALF_1,r.rectAreaLTC2=Qs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===_||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+_-x,r.spotLightMap.length=_,r.numSpotLightShadowsWithMaps=x,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=_,r.version=hl++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new pl(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class fl extends Pr{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class gl extends Pr{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function vl(t,e,n){let i=new Ys;const r=new Bn,s=new Bn,a=new li,o=new fl({depthPacking:De}),c=new gl,m={},g=n.maxTextureSize,v={[u]:d,[d]:u,[p]:p},_=new Ns({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Bn},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),x=_.clone();x.defines.HORIZONTAL_PASS=1;const y=new hs;y.setAttribute("position",new jr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Rs(y,_),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=l;let b=this.type;function E(n,i){const s=e.update(M);_.defines.VSM_SAMPLES!==n.blurSamples&&(_.defines.VSM_SAMPLES=n.blurSamples,x.defines.VSM_SAMPLES=n.blurSamples,_.needsUpdate=!0,x.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new ci(r.x,r.y)),_.uniforms.shadow_pass.value=n.map.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,_,M,null),x.uniforms.shadow_pass.value=n.mapPass.texture,x.uniforms.resolution.value=n.mapSize,x.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,x,M,null)}function T(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=m[t];void 0===i&&(i={},m[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===h?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:v[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function w(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lg||r.y>g)&&(r.x>g&&(s.x=Math.floor(g/f.x),r.x=s.x*f.x,u.mapSize.x=s.x),r.y>g&&(s.y=Math.floor(g/f.y),r.y=s.y*f.y,u.mapSize.y=s.y)),null===u.map||!0===p||!0===m){const t=this.type!==h?{minFilter:ct,magFilter:ct}:{};null!==u.map&&u.map.dispose(),u.map=new ci(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const v=u.getViewportCount();for(let t=0;t=1):-1!==dt.indexOf("OpenGL ES")&&(ut=parseFloat(/^OpenGL ES (\d)/.exec(dt)[1]),ht=ut>=2);let pt=null,mt={};const ft=t.getParameter(t.SCISSOR_BOX),gt=t.getParameter(t.VIEWPORT),vt=(new li).fromArray(ft),_t=(new li).fromArray(gt);function xt(e,n,i,r){const s=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;oi||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Nn:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=_(s,a));const o=n?_(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function y(t){return Un(t.width)&&Un(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==ct&&t.minFilter!==mt}function S(e){t.generateMipmap(e)}function b(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return i===t.RED&&(r===t.FLOAT&&(l=t.R32F),r===t.HALF_FLOAT&&(l=t.R16F),r===t.UNSIGNED_BYTE&&(l=t.R8)),i===t.RG&&(r===t.FLOAT&&(l=t.RG32F),r===t.HALF_FLOAT&&(l=t.RG16F),r===t.UNSIGNED_BYTE&&(l=t.RG8)),i===t.RGBA&&(r===t.FLOAT&&(l=t.RGBA32F),r===t.HALF_FLOAT&&(l=t.RGBA16F),r===t.UNSIGNED_BYTE&&(l=s===ze&&!1===a?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(l=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(l=t.RGB5_A1)),l!==t.R16F&&l!==t.R32F&&l!==t.RG16F&&l!==t.RG32F&&l!==t.RGBA16F&&l!==t.RGBA32F||e.get("EXT_color_buffer_float"),l}function E(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==ct&&t.minFilter!==mt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(e){return e===ct||e===ht||e===dt?t.NEAREST:t.LINEAR}function w(t){const e=t.target;e.removeEventListener("dispose",w),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&R(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void O(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const P={[at]:t.REPEAT,[ot]:t.CLAMP_TO_EDGE,[lt]:t.MIRRORED_REPEAT},I={[ct]:t.NEAREST,[ht]:t.NEAREST_MIPMAP_NEAREST,[dt]:t.NEAREST_MIPMAP_LINEAR,[mt]:t.LINEAR,[ft]:t.LINEAR_MIPMAP_NEAREST,[vt]:t.LINEAR_MIPMAP_LINEAR},U={[rn]:t.NEVER,[un]:t.ALWAYS,[sn]:t.LESS,[on]:t.LEQUAL,[an]:t.EQUAL,[hn]:t.GEQUAL,[ln]:t.GREATER,[cn]:t.NOTEQUAL};function D(n,s,a){if(a?(t.texParameteri(n,t.TEXTURE_WRAP_S,P[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,P[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,P[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,I[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,I[s.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),s.wrapS===ot&&s.wrapT===ot||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,t.TEXTURE_MAG_FILTER,T(s.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,T(s.minFilter)),s.minFilter!==ct&&s.minFilter!==mt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,U[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===ct)return;if(s.minFilter!==dt&&s.minFilter!==vt)return;if(s.type===Tt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===wt&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function N(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",w));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&R(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function O(e,r,a){let l=t.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY),r.isData3DTexture&&(l=t.TEXTURE_3D);const c=N(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=function(t){return!o&&(t.wrapS!==ot||t.wrapT!==ot||t.minFilter!==ct&&t.minFilter!==mt)}(r)&&!1===y(r.image);let i=x(r.image,e,!1,h);i=G(r,i);const p=y(i)||o,m=s.convert(r.format,r.colorSpace);let f,g=s.convert(r.type),v=b(r.internalFormat,m,g,r.colorSpace);D(l,r,p);const _=r.mipmaps,T=o&&!0!==r.isVideoTexture,w=void 0===d.__version||!0===c,A=E(r,i,p);if(r.isDepthTexture)v=t.DEPTH_COMPONENT,o?v=r.type===Tt?t.DEPTH_COMPONENT32F:r.type===Et?t.DEPTH_COMPONENT24:r.type===Ct?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:r.type===Tt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Dt&&v===t.DEPTH_COMPONENT&&r.type!==St&&r.type!==Et&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Et,g=s.convert(r.type)),r.format===Nt&&v===t.DEPTH_COMPONENT&&(v=t.DEPTH_STENCIL,r.type!==Ct&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Ct,g=s.convert(r.type))),w&&(T?n.texStorage2D(t.TEXTURE_2D,1,v,i.width,i.height):n.texImage2D(t.TEXTURE_2D,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e>=1,r>>=1}}else if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(t.FRAMEBUFFER,null)}function z(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let r=t.DEPTH_COMPONENT16;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Tt?r=t.DEPTH_COMPONENT32F:e.type===Et&&(r=t.DEPTH_COMPONENT24));const i=H(n);k(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,i,r,n.width,n.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,i,r,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,r,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=H(n);i&&!1===k(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function G(t,n){const i=t.colorSpace,r=t.format,s=t.type;return!0===t.isCompressedTexture||t.format===bn||i!==Be&&i!==Fe&&(i===ze?!1===o?!0===e.has("EXT_sRGB")&&r===Pt?(t.format=bn,t.minFilter=mt,t.generateMipmaps=!1):n=ni.sRGBToLinear(n):r===Pt&&s===xt||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){const t=C;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),C+=1,t},this.resetTextureUnits=function(){C=0},this.setTexture2D=L,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=N(e,r),h=r.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:x(r.image[t],!1,!0,c),d[t]=G(r,d[t]);const p=d[0],m=y(p)||o,f=s.convert(r.format,r.colorSpace),g=s.convert(r.type),v=b(r.internalFormat,f,g,r.colorSpace),_=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let w,A=E(r,p,m);if(D(t.TEXTURE_CUBE_MAP,r,m),e){_&&T&&n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,p.width,p.height);for(let e=0;e<6;e++){w=d[e].mipmaps;for(let i=0;i0&&A++,n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,d[0].width,d[0].height));for(let e=0;e<6;e++)if(i){_?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,d[e].width,d[e].height,f,g,d[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,v,d[e].width,d[e].height,0,f,g,d[e].data);for(let i=0;i0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=[],c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(bl)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Sl;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class Tl extends oi{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:Dt)!==Dt&&c!==Nt)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Dt&&(n=Et),void 0===n&&c===Nt&&(n=Ct),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:ct,this.minFilter=void 0!==o?o:ct,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class wl extends En{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],_=[],x=new Set,y=new Map,M=new Fs;M.layers.enable(1),M.viewport=new li;const S=new Fs;S.layers.enable(2),S.viewport=new li;const b=[M,S],E=new Ml;E.layers.enable(1),E.layers.enable(2);let T=null,w=null;function A(t){const e=_.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function R(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",C);for(let t=0;t=0&&(_[i]=null,v[i].disconnect(n))}for(let e=0;e=_.length){_.push(n),i=t;break}if(null===_[t]){_[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new El,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new El,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new El,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",R),i.addEventListener("inputsourceschange",C),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new ci(d.framebufferWidth,d.framebufferHeight,{format:Pt,type:xt,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?Nt:Dt,s=m.stencil?Ct:Et);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new ci(u.textureWidth,u.textureHeight,{format:Pt,type:xt,depthTexture:new Tl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),D.setContext(i),D.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};const L=new gi,P=new gi;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;E.near=S.near=M.near=t.near,E.far=S.far=M.far=t.far,T===E.near&&w===E.far||(i.updateRenderState({depthNear:E.near,depthFar:E.far}),T=E.near,w=E.far);const e=t.parent,n=E.cameras;I(E,e);for(let t=0;te&&(y.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else x.add(t),y.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){U=t},this.dispose=function(){}}}function Al(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,r.side===d&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),r.side===d&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Us(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===d&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Rl(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0&&function(t,e,n,i){if(null===V){const t=J.isWebGL2;V=new ci(1024,1024,{generateMipmaps:!0,type:Z.has("EXT_color_buffer_half_float")?wt:xt,minFilter:vt,samples:t&&!0===o?4:0})}const r=S.getRenderTarget();S.setRenderTarget(V),S.clear();const s=S.toneMapping;S.toneMapping=Y,jt(t,n,i),tt.updateMultisampleRenderTarget(V),tt.updateRenderTargetMipmap(V);let a=!1;for(let t=0,r=e.length;t0&&jt(r,e,n),s.length>0&&jt(s,e,n),a.length>0&&jt(a,e,n),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1)}function jt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?M[M.length-1]:null,y.pop(),_=y.length>0?y[y.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return T},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(t,e,n){Q.get(t.texture).__webglTexture=e,Q.get(t.depthTexture).__webglTexture=n;const i=Q.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===Z.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=Q.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){w=t,E=e,T=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=Q.get(t);void 0!==n.__useDefaultFramebuffer?(K.bindFramebuffer(Mt.FRAMEBUFFER,null),i=!1):void 0===n.__webglFramebuffer?tt.setupRenderTarget(t):n.__hasExternalTextures&&tt.rebindTextures(t,Q.get(t.texture).__webglTexture,Q.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=Q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=J.isWebGL2&&t.samples>0&&!1===tt.useMultisampledRTT(t)?Q.get(t).__webglMultisampledFramebuffer:l,C.copy(t.viewport),L.copy(t.scissor),P=t.scissorTest}else C.copy(F).multiplyScalar(D).floor(),L.copy(z).multiplyScalar(D).floor(),P=B;if(K.bindFramebuffer(Mt.FRAMEBUFFER,r)&&J.drawBuffers&&i&&K.drawBuffers(t,r),K.viewport(C),K.scissor(L),K.setScissorTest(P),s){const i=Q.get(t.texture);Mt.framebufferTexture2D(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,Mt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Q.get(t.texture),r=e||0;Mt.framebufferTextureLayer(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}A=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){K.bindFramebuffer(Mt.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==Pt&>.convert(o)!==Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===wt&&(Z.has("EXT_color_buffer_half_float")||J.isWebGL2&&Z.has("EXT_color_buffer_float"));if(!(l===xt||gt.convert(l)===Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_TYPE)||l===Tt&&(J.isWebGL2||Z.has("OES_texture_float")||Z.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Mt.readPixels(e,n,i,r,gt.convert(o),gt.convert(l),s)}finally{const t=null!==w?Q.get(w).__webglFramebuffer:null;K.bindFramebuffer(Mt.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);tt.setTexture2D(e,0),Mt.copyTexSubImage2D(Mt.TEXTURE_2D,n,0,0,t.x,t.y,r,s),K.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=gt.convert(n.format),o=gt.convert(n.type);tt.setTexture2D(n,0),Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,n.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Mt.compressedTexSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Mt.generateMipmap(Mt.TEXTURE_2D),K.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(S.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=gt.convert(i.format),c=gt.convert(i.type);let h;if(i.isData3DTexture)tt.setTexture3D(i,0),h=Mt.TEXTURE_3D;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");tt.setTexture2DArray(i,0),h=Mt.TEXTURE_2D_ARRAY}Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,i.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,i.unpackAlignment);const u=Mt.getParameter(Mt.UNPACK_ROW_LENGTH),d=Mt.getParameter(Mt.UNPACK_IMAGE_HEIGHT),p=Mt.getParameter(Mt.UNPACK_SKIP_PIXELS),m=Mt.getParameter(Mt.UNPACK_SKIP_ROWS),f=Mt.getParameter(Mt.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,g.width),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,g.height),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,t.min.x),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,t.min.y),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isData3DTexture?Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Mt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,u),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,d),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,p),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,m),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,f),0===r&&i.generateMipmaps&&Mt.generateMipmap(h),K.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?tt.setTextureCube(t,0):t.isData3DTexture?tt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?tt.setTexture2DArray(t,0):tt.setTexture2D(t,0),K.unbindTexture()},this.resetState=function(){E=0,T=0,w=null,K.reset(),_t.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ze?Ie:Pe}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Ie?ze:Be}}class Pl extends Ll{}Pl.prototype.isWebGL1Renderer=!0;class Il{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Or(t),this.density=e}clone(){return new Il(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Ul{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Or(t),this.near=e,this.far=n}clone(){return new Ul(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Dl extends vr{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Nl{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=dn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Cn()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Hl.clone(),uv:Cr.getInterpolation(Hl,jl,ql,Yl,Zl,Jl,Kl,new Bn),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Ql(t,e,n,i,r,s){Vl.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Wl.x=s*Vl.x-r*Vl.y,Wl.y=r*Vl.x+s*Vl.y):Wl.copy(Vl),t.copy(e),t.x+=Wl.x,t.y+=Wl.y,t.applyMatrix4(Xl)}const tc=new gi,ec=new gi;class nc extends vr{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){tc.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(tc);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){tc.setFromMatrixPosition(t.matrixWorld),ec.setFromMatrixPosition(this.matrixWorld);const n=tc.distanceTo(ec)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Xc extends oi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:mt,this.magFilter=void 0!==r?r:mt,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class jc extends oi{constructor(t,e,n){super({width:t,height:e}),this.isFramebufferTexture=!0,this.format=n,this.magFilter=ct,this.minFilter=ct,this.generateMipmaps=!1,this.needsUpdate=!0}}class qc extends oi{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Yc extends qc{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ot}}class Zc extends oi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Jc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Bn:new gi);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new gi,i=[],r=[],s=[],a=new gi,o=new ji;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new gi)}r[0]=new gi,s[0]=new gi;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(Ln(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(Ln(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Kc extends Jc{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new Bn,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(th.subVectors(i[0],i[1]).add(i[0]),a=th);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(sh(a,o.x,l.x,c.x,h.x),sh(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class _h extends hs{constructor(t=[new Bn(0,-.5),new Bn(.5,0),new Bn(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=Ln(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new gi,u=new Bn,d=new gi,p=new gi,m=new gi;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new es(h,3)),this.setAttribute("normal",new es(u,3)),this.setAttribute("uv",new es(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Mh(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Sh extends Mh{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new Sh(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class bh extends hs{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new es(r,3)),this.setAttribute("normal",new es(r.slice(),3)),this.setAttribute("uv",new es(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new bh(t.vertices,t.indices,t.radius,t.details)}}class Eh extends bh{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Eh(t.radius,t.detail)}}const Th=new gi,wh=new gi,Ah=new gi,Rh=new Cr;class Ch extends hs{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(An*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Dh(s,a,n,o,l,p,0),a};function Ih(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Qh(s,t[s],t[s+1],a);return a&&qh(a,a.next)&&(tu(a),a=a.next),a}function Uh(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!qh(i,i.next)&&0!==jh(i.prev,i,i.next))i=i.next;else{if(tu(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Dh(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=Gh(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Oh(t,i,r,s):Nh(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),tu(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Dh(t=Fh(Uh(t),e,n),e,n,i,r,s,2):2===a&&zh(t,e,n,i,r,s):Dh(Uh(t),e,n,i,r,s,1);break}}function Nh(t){const e=t.prev,n=t,i=t.next;if(jh(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Wh(r,o,s,l,a,c,m.x,m.y)&&jh(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Oh(t,e,n,i){const r=t.prev,s=t,a=t.next;if(jh(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=Gh(p,m,e,n,i),_=Gh(f,g,e,n,i);let x=t.prevZ,y=t.nextZ;for(;x&&x.z>=v&&y&&y.z<=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Wh(o,h,l,u,c,d,x.x,x.y)&&jh(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Wh(o,h,l,u,c,d,y.x,y.y)&&jh(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;x&&x.z>=v;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Wh(o,h,l,u,c,d,x.x,x.y)&&jh(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;y&&y.z<=_;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Wh(o,h,l,u,c,d,y.x,y.y)&&jh(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function Fh(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!qh(r,s)&&Yh(r,i,i.next,s)&&Kh(r,s)&&Kh(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),tu(i),tu(i.next),i=t=s),i=i.next}while(i!==t);return Uh(i)}function zh(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Xh(a,t)){let o=$h(a,t);return a=Uh(a,a.next),o=Uh(o,o.next),Dh(a,e,n,i,r,s,0),void Dh(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Bh(t,e){return t.x-e.x}function Hh(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Wh(an.x||i.x===n.x&&kh(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=$h(n,t);return Uh(i,i.next),Uh(n,n.next)}function kh(t,e){return jh(t.prev,t,e.prev)<0&&jh(e.next,t,t.next)<0}function Gh(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Vh(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Xh(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Yh(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Kh(t,e)&&Kh(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(jh(t.prev,t,e.prev)||jh(t,e.prev,e))||qh(t,e)&&jh(t.prev,t,t.next)>0&&jh(e.prev,e,e.next)>0)}function jh(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function qh(t,e){return t.x===e.x&&t.y===e.y}function Yh(t,e,n,i){const r=Jh(jh(t,e,n)),s=Jh(jh(t,e,i)),a=Jh(jh(n,i,t)),o=Jh(jh(n,i,e));return r!==s&&a!==o||(!(0!==r||!Zh(t,n,e))||(!(0!==s||!Zh(t,i,e))||(!(0!==a||!Zh(n,t,i))||!(0!==o||!Zh(n,e,i)))))}function Zh(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Jh(t){return t>0?1:t<0?-1:0}function Kh(t,e){return jh(t.prev,t,t.next)<0?jh(t,e,t.next)>=0&&jh(t,t.prev,e)>=0:jh(t,e,t.prev)<0||jh(t,t.next,e)<0}function $h(t,e){const n=new eu(t.i,t.x,t.y),i=new eu(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Qh(t,e,n,i){const r=new eu(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function tu(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function eu(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class nu{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function ru(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new Bn(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new Bn(i/s,r/s)}const P=[];for(let t=0,e=w.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=w.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class bu extends Pr{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Or(16777215),this.specular=new Or(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Bn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=X,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Eu extends Pr{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Or(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Bn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class Tu extends Pr{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Bn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class wu extends Pr{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Or(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Bn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=X,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Au extends Pr{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Or(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Ne,this.normalScale=new Bn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Ru extends Ac{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function Cu(t,e,n){return Pu(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function Lu(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function Pu(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Iu(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Uu(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Du(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Nu={arraySlice:Cu,convertArray:Lu,isTypedArray:Pu,getKeyframeOrder:Iu,sortedArray:Uu,flattenJSON:Du,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Cu(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Cu(t.resultBuffer,e,n)}if("quaternion"===r){(new fi).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Cu(n,r,s),this.values=Cu(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Pu(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Cu(this.times),e=Cu(this.values),n=this.getValueSize(),i=this.getInterpolation()===Se,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Cu(t,0,s),this.values=Cu(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Cu(this.times,0),e=Cu(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Hu.prototype.TimeBufferType=Float32Array,Hu.prototype.ValueBufferType=Float32Array,Hu.prototype.DefaultInterpolation=Me;class ku extends Hu{}ku.prototype.ValueTypeName="bool",ku.prototype.ValueBufferType=Array,ku.prototype.DefaultInterpolation=ye,ku.prototype.InterpolantFactoryMethodLinear=void 0,ku.prototype.InterpolantFactoryMethodSmooth=void 0;class Gu extends Hu{}Gu.prototype.ValueTypeName="color";class Vu extends Hu{}Vu.prototype.ValueTypeName="number";class Wu extends Ou{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)fi.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Xu extends Hu{InterpolantFactoryMethodLinear(t){return new Wu(this.times,this.values,this.getValueSize(),t)}}Xu.prototype.ValueTypeName="quaternion",Xu.prototype.DefaultInterpolation=Me,Xu.prototype.InterpolantFactoryMethodSmooth=void 0;class ju extends Hu{}ju.prototype.ValueTypeName="string",ju.prototype.ValueBufferType=Array,ju.prototype.DefaultInterpolation=ye,ju.prototype.InterpolantFactoryMethodLinear=void 0,ju.prototype.InterpolantFactoryMethodSmooth=void 0;class qu extends Hu{}qu.prototype.ValueTypeName="vector";class Yu{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Cn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Zu(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Hu.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Du(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==td[t])return void td[t].push({onLoad:e,onProgress:n,onError:i});td[t]=[],td[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=td[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Ju.add(t,e);const n=td[t];delete td[t];for(let t=0,i=n.length;t{const n=td[t];if(void 0===n)throw this.manager.itemError(t),e;delete td[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class id extends Qu{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new nd(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Or).setHex(r.value);break;case"v2":i.uniforms[e].value=(new Bn).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new gi).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new li).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new Hn).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new ji).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Bn).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Bn).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:xu,SpriteMaterial:zl,RawShaderMaterial:yu,ShaderMaterial:Ns,PointsMaterial:zc,MeshPhysicalMaterial:Su,MeshStandardMaterial:Mu,MeshPhongMaterial:bu,MeshToonMaterial:Eu,MeshNormalMaterial:Tu,MeshLambertMaterial:wu,MeshDepthMaterial:fl,MeshDistanceMaterial:gl,MeshBasicMaterial:zr,MeshMatcapMaterial:Au,LineDashedMaterial:Ru,LineBasicMaterial:Ac,Material:Pr}[t]}}class Cd{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){const n=new Ku(e);r=new sd(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new sd(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){fi.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;fi.multiplyQuaternionsFlat(t,s,t,e,t,n),fi.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const op="\\[\\]\\.:\\/",lp=new RegExp("["+op+"]","g"),cp="[^"+op+"]",hp="[^"+op.replace("\\.","")+"]",up=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",cp)+/(WCOD+)?/.source.replace("WCOD",hp)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",cp)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",cp)+"$"),dp=["material","materials","bones","map"];class pp{constructor(t,e,n){this.path=e,this.parsedPath=n||pp.parseTrackName(e),this.node=pp.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new pp.Composite(t,e,n):new pp(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(lp,"")}static parseTrackName(t){const e=up.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==dp.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new pp(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class fp{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:be,endingEnd:be};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===Ae)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=Ee,i.endingEnd=Ee):(i.endingStart=t?this.zeroSlopeAtStart?Ee:be:Te,i.endingEnd=e?this.zeroSlopeAtEnd?Ee:be:Te)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const gp=new Float32Array(1);class vp extends En{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new ap(pp.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Rp).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Lp=new gi,Pp=new gi;class Ip{constructor(t=new gi,e=new gi){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Lp.subVectors(t,this.start),Pp.subVectors(this.end,this.start);const n=Pp.dot(Pp);let i=Pp.dot(Lp)/n;return e&&(i=Ln(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Up=new gi;class Dp extends vr{constructor(t,e){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new hs,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{sm.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(sm,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class cm extends Oc{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new hs;n.setAttribute("position",new es(e,3)),n.setAttribute("color",new es([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new Ac({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Or,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class hm{constructor(){this.type="ShapePath",this.color=new Or,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new vh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=nu.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new Lh,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t>8&255]+Tn[t>>16&255]+Tn[t>>24&255]+"-"+Tn[255&e]+Tn[e>>8&255]+"-"+Tn[e>>16&15|64]+Tn[e>>24&255]+"-"+Tn[63&n|128]+Tn[n>>8&255]+"-"+Tn[n>>16&255]+Tn[n>>24&255]+Tn[255&i]+Tn[i>>8&255]+Tn[i>>16&255]+Tn[i>>24&255]).toLowerCase()}function Pn(t,e,n){return Math.max(e,Math.min(n,t))}function Ln(t,e){return(t%e+e)%e}function In(t,e,n){return(1-n)*t+n*e}function Un(t){return 0==(t&t-1)&&0!==t}function Nn(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function Dn(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function On(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Fn(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const Bn={DEG2RAD:An,RAD2DEG:Rn,generateUUID:Cn,clamp:Pn,euclideanModulo:Ln,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:In,damp:function(t,e,n,i){return In(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(Ln(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(wn=t);let e=wn+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*An},radToDeg:function(t){return t*Rn},isPowerOfTwo:Un,ceilPowerOfTwo:Nn,floorPowerOfTwo:Dn,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Fn,denormalize:On};class zn{constructor(t=0,e=0){zn.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Pn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Hn{constructor(t,e,n,i,r,s,a,o,l){Hn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],M=i[5],S=i[8];return r[0]=s*m+a*v+o*x,r[3]=s*f+a*_+o*M,r[6]=s*g+a*y+o*S,r[1]=l*m+c*v+h*x,r[4]=l*f+c*_+h*M,r[7]=l*g+c*y+h*S,r[2]=u*m+d*v+p*x,r[5]=u*f+d*_+p*M,r[8]=u*g+d*y+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(kn.makeScale(t,e)),this}rotate(t){return this.premultiply(kn.makeRotation(-t)),this}translate(t,e){return this.premultiply(kn.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const kn=new Hn;function Vn(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Gn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Wn(t,e){return new Gn[t](e)}function Xn(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}const jn={};function qn(t){t in jn||(jn[t]=!0,console.warn(t))}function Yn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Zn(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Jn=(new Hn).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Kn=(new Hn).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const $n={[ze]:t=>t,[Be]:t=>t.convertSRGBToLinear(),[He]:function(t){return t.convertSRGBToLinear().applyMatrix3(Kn)}},Qn={[ze]:t=>t,[Be]:t=>t.convertLinearToSRGB(),[He]:function(t){return t.applyMatrix3(Jn).convertLinearToSRGB()}},ti={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return ze},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=$n[e],r=Qn[n];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${e}" to "${n}".`);return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}};let ei;class ni{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===ei&&(ei=Xn("canvas")),ei.width=t.width,ei.height=t.height;const n=ei.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=ei}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=Xn("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==tt)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case at:t.x=t.x-Math.floor(t.x);break;case ot:t.x=t.x<0?0:1;break;case lt:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case at:t.y=t.y-Math.floor(t.y);break;case ot:t.y=t.y<0?0:1;break;case lt:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Be?Ie:Le}set encoding(t){qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Ie?Be:Fe}}oi.DEFAULT_IMAGE=null,oi.DEFAULT_MAPPING=tt,oi.DEFAULT_ANISOTROPY=1;class li{constructor(t=0,e=0,n=0,i=1){li.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Pn(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class gi{constructor(t=0,e=0,n=0){gi.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_i.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_i.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return vi.copy(this).projectOnVector(t),this.sub(vi)}reflect(t){return this.sub(vi.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Pn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const vi=new gi,_i=new fi;class yi{constructor(t=new gi(1/0,1/0,1/0),e=new gi(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Mi),Mi.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ci),Pi.subVectors(this.max,Ci),bi.subVectors(t.a,Ci),Ei.subVectors(t.b,Ci),Ti.subVectors(t.c,Ci),wi.subVectors(Ei,bi),Ai.subVectors(Ti,Ei),Ri.subVectors(bi,Ti);let e=[0,-wi.z,wi.y,0,-Ai.z,Ai.y,0,-Ri.z,Ri.y,wi.z,0,-wi.x,Ai.z,0,-Ai.x,Ri.z,0,-Ri.x,-wi.y,wi.x,0,-Ai.y,Ai.x,0,-Ri.y,Ri.x,0];return!!Ui(e,bi,Ei,Ti,Pi)&&(e=[1,0,0,0,1,0,0,0,1],!!Ui(e,bi,Ei,Ti,Pi)&&(Li.crossVectors(wi,Ai),e=[Li.x,Li.y,Li.z],Ui(e,bi,Ei,Ti,Pi)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Mi).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Mi).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(xi[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),xi[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),xi[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),xi[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),xi[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),xi[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),xi[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),xi[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(xi)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const xi=[new gi,new gi,new gi,new gi,new gi,new gi,new gi,new gi],Mi=new gi,Si=new yi,bi=new gi,Ei=new gi,Ti=new gi,wi=new gi,Ai=new gi,Ri=new gi,Ci=new gi,Pi=new gi,Li=new gi,Ii=new gi;function Ui(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Ii.fromArray(t,s);const a=r.x*Math.abs(Ii.x)+r.y*Math.abs(Ii.y)+r.z*Math.abs(Ii.z),o=e.dot(Ii),l=n.dot(Ii),c=i.dot(Ii);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Ni=new yi,Di=new gi,Oi=new gi;class Fi{constructor(t=new gi,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Ni.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Di.subVectors(t,this.center);const e=Di.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(Di,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Oi.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Di.copy(t.center).add(Oi)),this.expandByPoint(Di.copy(t.center).sub(Oi))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Bi=new gi,zi=new gi,Hi=new gi,ki=new gi,Vi=new gi,Gi=new gi,Wi=new gi;class Xi{constructor(t=new gi,e=new gi(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Bi)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Bi.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bi.copy(this.origin).addScaledVector(this.direction,e),Bi.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){zi.copy(t).add(e).multiplyScalar(.5),Hi.copy(e).sub(t).normalize(),ki.copy(this.origin).sub(zi);const r=.5*t.distanceTo(e),s=-this.direction.dot(Hi),a=ki.dot(this.direction),o=-ki.dot(Hi),l=ki.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(zi).addScaledVector(Hi,u),d}intersectSphere(t,e){Bi.subVectors(t.center,this.origin);const n=Bi.dot(this.direction),i=Bi.dot(Bi)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Bi)}intersectTriangle(t,e,n,i,r){Vi.subVectors(e,t),Gi.subVectors(n,t),Wi.crossVectors(Vi,Gi);let s,a=this.direction.dot(Wi);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ki.subVectors(this.origin,t);const o=s*this.direction.dot(Gi.crossVectors(ki,Gi));if(o<0)return null;const l=s*this.direction.dot(Vi.cross(ki));if(l<0)return null;if(o+l>a)return null;const c=-s*ki.dot(Wi);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ji{constructor(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){ji.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f)}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ji).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/qi.setFromMatrixColumn(t,0).length(),r=1/qi.setFromMatrixColumn(t,1).length(),s=1/qi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Zi,t,Ji)}lookAt(t,e,n){const i=this.elements;return Qi.subVectors(t,e),0===Qi.lengthSq()&&(Qi.z=1),Qi.normalize(),Ki.crossVectors(n,Qi),0===Ki.lengthSq()&&(1===Math.abs(n.z)?Qi.x+=1e-4:Qi.z+=1e-4,Qi.normalize(),Ki.crossVectors(n,Qi)),Ki.normalize(),$i.crossVectors(Qi,Ki),i[0]=Ki.x,i[4]=$i.x,i[8]=Qi.x,i[1]=Ki.y,i[5]=$i.y,i[9]=Qi.y,i[2]=Ki.z,i[6]=$i.z,i[10]=Qi.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],M=i[0],S=i[4],b=i[8],E=i[12],T=i[1],w=i[5],A=i[9],R=i[13],C=i[2],P=i[6],L=i[10],I=i[14],U=i[3],N=i[7],D=i[11],O=i[15];return r[0]=s*M+a*T+o*C+l*U,r[4]=s*S+a*w+o*P+l*N,r[8]=s*b+a*A+o*L+l*D,r[12]=s*E+a*R+o*I+l*O,r[1]=c*M+h*T+u*C+d*U,r[5]=c*S+h*w+u*P+d*N,r[9]=c*b+h*A+u*L+d*D,r[13]=c*E+h*R+u*I+d*O,r[2]=p*M+m*T+f*C+g*U,r[6]=p*S+m*w+f*P+g*N,r[10]=p*b+m*A+f*L+g*D,r[14]=p*E+m*R+f*I+g*O,r[3]=v*M+_*T+y*C+x*U,r[7]=v*S+_*w+y*P+x*N,r[11]=v*b+_*A+y*L+x*D,r[15]=v*E+_*R+y*I+x*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,_=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,y=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,x=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*v+n*_+i*y+r*x;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=v*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=_*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=y*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=x*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,_=o*c,y=o*h,x=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*M,i[5]=(1-(u+g))*M,i[6]=(f+v)*M,i[7]=0,i[8]=(p+_)*S,i[9]=(f-v)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=qi.set(i[0],i[1],i[2]).length();const s=qi.set(i[4],i[5],i[6]).length(),a=qi.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Yi.copy(this);const o=1/r,l=1/s,c=1/a;return Yi.elements[0]*=o,Yi.elements[1]*=o,Yi.elements[2]*=o,Yi.elements[4]*=l,Yi.elements[5]*=l,Yi.elements[6]*=l,Yi.elements[8]*=c,Yi.elements[9]*=c,Yi.elements[10]*=c,e.setFromRotationMatrix(Yi),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const qi=new gi,Yi=new ji,Zi=new gi(0,0,0),Ji=new gi(1,1,1),Ki=new gi,$i=new gi,Qi=new gi,tr=new ji,er=new fi;class nr{constructor(t=0,e=0,n=0,i=nr.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(Pn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Pn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(Pn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-Pn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Pn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Pn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return tr.makeRotationFromQuaternion(t),this.setFromRotationMatrix(tr,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return er.setFromEuler(this),this.setFromQuaternion(er,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}nr.DEFAULT_ORDER="XYZ";class ir{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(n=n.concat(r))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(cr,t,hr),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(cr,ur,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){_r.subVectors(i,e),yr.subVectors(n,e),xr.subVectors(t,e);const s=_r.dot(_r),a=_r.dot(yr),o=_r.dot(xr),l=yr.dot(yr),c=yr.dot(xr),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Mr),Mr.x>=0&&Mr.y>=0&&Mr.x+Mr.y<=1}static getUV(t,e,n,i,r,s,a,o){return!1===Rr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Rr=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Mr),o.setScalar(0),o.addScaledVector(r,Mr.x),o.addScaledVector(s,Mr.y),o.addScaledVector(a,Mr.z),o}static isFrontFacing(t,e,n,i){return _r.subVectors(n,e),yr.subVectors(t,e),_r.cross(yr).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return _r.subVectors(this.c,this.b),yr.subVectors(this.a,this.b),.5*_r.cross(yr).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Cr.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Cr.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Rr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Rr=!0),Cr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return Cr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Cr.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Cr.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Sr.subVectors(i,n),br.subVectors(r,n),Tr.subVectors(t,n);const o=Sr.dot(Tr),l=br.dot(Tr);if(o<=0&&l<=0)return e.copy(n);wr.subVectors(t,i);const c=Sr.dot(wr),h=br.dot(wr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Sr,s);Ar.subVectors(t,r);const d=Sr.dot(Ar),p=br.dot(Ar);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(br,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Er.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Er,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Sr,s).addScaledVector(br,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Pr=0;class Lr extends En{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Pr++}),this.uuid=Cn(),this.name="",this.type="Material",this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=M,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ve,this.stencilZFail=Ve,this.stencilZPass=Ve,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const Ir={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ur={h:0,s:0,l:0},Nr={h:0,s:0,l:0};function Dr(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Or{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Be){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ti.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ti.workingColorSpace){return this.r=t,this.g=e,this.b=n,ti.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ti.workingColorSpace){if(t=Ln(t,1),e=Pn(e,0,1),n=Pn(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Dr(r,i,t+1/3),this.g=Dr(r,i,t),this.b=Dr(r,i,t-1/3)}return ti.toWorkingColorSpace(this,i),this}setStyle(t,e=Be){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Be){const n=Ir[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Yn(t.r),this.g=Yn(t.g),this.b=Yn(t.b),this}copyLinearToSRGB(t){return this.r=Zn(t.r),this.g=Zn(t.g),this.b=Zn(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Be){return ti.fromWorkingColorSpace(Fr.copy(this),t),65536*Math.round(Pn(255*Fr.r,0,255))+256*Math.round(Pn(255*Fr.g,0,255))+Math.round(Pn(255*Fr.b,0,255))}getHexString(t=Be){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ti.workingColorSpace){ti.fromWorkingColorSpace(Fr.copy(this),e);const n=Fr.r,i=Fr.g,r=Fr.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function kr(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Pn(t,-65504,65504),zr.floatView[0]=t;const e=zr.uint32View[0],n=e>>23&511;return zr.baseTable[n]+((8388607&e)>>zr.shiftTable[n])}function Vr(t){const e=t>>10;return zr.uint32View[0]=zr.mantissaTable[zr.offsetTable[e]+(1023&t)]+zr.exponentTable[e],zr.floatView[0]}const Gr={toHalfFloat:kr,fromHalfFloat:Vr},Wr=new gi,Xr=new zn;class jr{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=dn,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}us.copy(r).invert(),ds.copy(t.ray).applyMatrix4(us),null!==n.boundingBox&&!1===ds.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,ds)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,c=r.attributes.uv1,h=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let r=0,o=u.length;rn.far?null:{distance:c,point:As.clone(),object:t}}(t,e,n,i,fs,gs,vs,ws);if(h){r&&(xs.fromBufferAttribute(r,o),Ms.fromBufferAttribute(r,l),Ss.fromBufferAttribute(r,c),h.uv=Cr.getInterpolation(ws,fs,gs,vs,xs,Ms,Ss,new zn)),s&&(xs.fromBufferAttribute(s,o),Ms.fromBufferAttribute(s,l),Ss.fromBufferAttribute(s,c),h.uv1=Cr.getInterpolation(ws,fs,gs,vs,xs,Ms,Ss,new zn),h.uv2=h.uv1),a&&(bs.fromBufferAttribute(a,o),Es.fromBufferAttribute(a,l),Ts.fromBufferAttribute(a,c),h.normal=Cr.getInterpolation(ws,fs,gs,vs,bs,Es,Ts,new gi),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new gi,materialIndex:0};Cr.getNormal(fs,gs,vs,t.normal),h.face=t}return h}class Ps extends hs{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const _=s/f,y=p/g,x=s/2,M=p/2,S=m/2,b=f+1,E=g+1;let T=0,w=0;const A=new gi;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Os extends vr{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ji,this.projectionMatrix=new ji,this.projectionMatrixInverse=new ji}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Fs extends Os{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*Rn*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*An*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*Rn*Math.atan(Math.tan(.5*An*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*An*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Bs=-90;class zs extends vr{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Fs(Bs,1,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);const r=new Fs(Bs,1,t,e);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(-1,0,0),this.add(r);const s=new Fs(Bs,1,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Fs(Bs,1,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Fs(Bs,1,t,e);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Fs(Bs,1,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=0,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Hs extends oi{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:et,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ks extends ci{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];void 0!==e.encoding&&(qn("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Ie?Be:Fe),this.texture=new Hs(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:mt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new Ps(5,5,5),r=new Ds({name:"CubemapFromEquirect",uniforms:Ls(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Rs(i,r),a=e.minFilter;e.minFilter===vt&&(e.minFilter=mt);return new zs(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const Vs=new gi,Gs=new gi,Ws=new Hn;class Xs{constructor(t=new gi(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Vs.subVectors(n,e).cross(Gs.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Vs),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ws.getNormalMatrix(t),i=this.coplanarPoint(Vs).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const js=new Fi,qs=new gi;class Ys{constructor(t=new Xs,e=new Xs,n=new Xs,i=new Xs,r=new Xs,s=new Xs){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],_=n[15];return e[0].setComponents(a-i,h-o,m-u,_-f).normalize(),e[1].setComponents(a+i,h+o,m+u,_+f).normalize(),e[2].setComponents(a+r,h+l,m+d,_+g).normalize(),e[3].setComponents(a-r,h-l,m-d,_-g).normalize(),e[4].setComponents(a-s,h-c,m-p,_-v).normalize(),e[5].setComponents(a+s,h+c,m+p,_+v).normalize(),this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),js.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),js.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(js)}intersectsSprite(t){return js.center.set(0,0,0),js.radius=.7071067811865476,js.applyMatrix4(t.matrixWorld),this.intersectsSphere(js)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,qs.y=i.normal.y>0?t.max.y:t.min.y,qs.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(qs)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Zs(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Js(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Qs={common:{diffuse:{value:new Or(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Hn},alphaMap:{value:null},alphaMapTransform:{value:new Hn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Hn}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Hn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Hn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Hn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Hn},normalScale:{value:new zn(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Hn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Hn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Hn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Hn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Or(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Or(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Hn}},sprite:{diffuse:{value:new Or(16777215)},opacity:{value:1},center:{value:new zn(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Hn},alphaMap:{value:null},alphaTest:{value:0}}},ta={basic:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.fog]),vertexShader:$s.meshbasic_vert,fragmentShader:$s.meshbasic_frag},lambert:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)}}]),vertexShader:$s.meshlambert_vert,fragmentShader:$s.meshlambert_frag},phong:{uniforms:Is([Qs.common,Qs.specularmap,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)},specular:{value:new Or(1118481)},shininess:{value:30}}]),vertexShader:$s.meshphong_vert,fragmentShader:$s.meshphong_frag},standard:{uniforms:Is([Qs.common,Qs.envmap,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.roughnessmap,Qs.metalnessmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:$s.meshphysical_vert,fragmentShader:$s.meshphysical_frag},toon:{uniforms:Is([Qs.common,Qs.aomap,Qs.lightmap,Qs.emissivemap,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.gradientmap,Qs.fog,Qs.lights,{emissive:{value:new Or(0)}}]),vertexShader:$s.meshtoon_vert,fragmentShader:$s.meshtoon_frag},matcap:{uniforms:Is([Qs.common,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,Qs.fog,{matcap:{value:null}}]),vertexShader:$s.meshmatcap_vert,fragmentShader:$s.meshmatcap_frag},points:{uniforms:Is([Qs.points,Qs.fog]),vertexShader:$s.points_vert,fragmentShader:$s.points_frag},dashed:{uniforms:Is([Qs.common,Qs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:$s.linedashed_vert,fragmentShader:$s.linedashed_frag},depth:{uniforms:Is([Qs.common,Qs.displacementmap]),vertexShader:$s.depth_vert,fragmentShader:$s.depth_frag},normal:{uniforms:Is([Qs.common,Qs.bumpmap,Qs.normalmap,Qs.displacementmap,{opacity:{value:1}}]),vertexShader:$s.meshnormal_vert,fragmentShader:$s.meshnormal_frag},sprite:{uniforms:Is([Qs.sprite,Qs.fog]),vertexShader:$s.sprite_vert,fragmentShader:$s.sprite_frag},background:{uniforms:{uvTransform:{value:new Hn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:$s.background_vert,fragmentShader:$s.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:$s.backgroundCube_vert,fragmentShader:$s.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:$s.cube_vert,fragmentShader:$s.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:$s.equirect_vert,fragmentShader:$s.equirect_frag},distanceRGBA:{uniforms:Is([Qs.common,Qs.displacementmap,{referencePosition:{value:new gi},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:$s.distanceRGBA_vert,fragmentShader:$s.distanceRGBA_frag},shadow:{uniforms:Is([Qs.lights,Qs.fog,{color:{value:new Or(0)},opacity:{value:1}}]),vertexShader:$s.shadow_vert,fragmentShader:$s.shadow_frag}};ta.physical={uniforms:Is([ta.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Hn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Hn},clearcoatNormalScale:{value:new zn(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Hn},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Hn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Hn},sheen:{value:0},sheenColor:{value:new Or(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Hn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Hn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Hn},transmissionSamplerSize:{value:new zn},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Hn},attenuationDistance:{value:0},attenuationColor:{value:new Or(0)},specularColor:{value:new Or(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Hn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Hn},anisotropyVector:{value:new zn},anisotropyMap:{value:null}}]),vertexShader:$s.meshphysical_vert,fragmentShader:$s.meshphysical_frag};const ea={r:0,b:0,g:0};function na(t,e,n,i,r,s,a){const o=new Or(0);let l,c,h=!0===s?0:1,u=null,d=0,p=null;function m(e,n){e.getRGB(ea,Us(t)),i.buffers.color.setClear(ea.r,ea.g,ea.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,m(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,m(o,h)},render:function(s,f){let g=!1,v=!0===f.isScene?f.background:null;if(v&&v.isTexture){v=(f.backgroundBlurriness>0?n:e).get(v)}switch(null===v?m(o,h):v&&v.isColor&&(m(v,1),g=!0),t.xr.getEnvironmentBlendMode()){case"opaque":g=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,a),g=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,a),g=!0}(t.autoClear||g)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),v&&(v.isCubeTexture||v.mapping===st)?(void 0===c&&(c=new Rs(new Ps(1,1,1),new Ds({name:"BackgroundCubeMaterial",uniforms:Ls(ta.backgroundCube.uniforms),vertexShader:ta.backgroundCube.vertexShader,fragmentShader:ta.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(c)),c.material.uniforms.envMap.value=v,c.material.uniforms.flipEnvMap.value=v.isCubeTexture&&!1===v.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=f.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,c.material.toneMapped=v.colorSpace!==Be,u===v&&d===v.version&&p===t.toneMapping||(c.material.needsUpdate=!0,u=v,d=v.version,p=t.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null)):v&&v.isTexture&&(void 0===l&&(l=new Rs(new Ks(2,2),new Ds({name:"BackgroundMaterial",uniforms:Ls(ta.background.uniforms),vertexShader:ta.background.vertexShader,fragmentShader:ta.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=v,l.material.uniforms.backgroundIntensity.value=f.backgroundIntensity,l.material.toneMapped=v.colorSpace!==Be,!0===v.matrixAutoUpdate&&v.updateMatrix(),l.material.uniforms.uvTransform.value.copy(v.matrix),u===v&&d===v.version&&p===t.toneMapping||(l.material.needsUpdate=!0,u=v,d=v.version,p=t.toneMapping),l.layers.enableAll(),s.unshift(l,l.geometry,l.material,0,0,null))}}}function ia(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,y,d,x),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,y,d,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===t||(c.geometry=y.id,c.program=d.id,c.wireframe=t,M=!0)}null!==x&&n.update(x,t.ELEMENT_ARRAY_BUFFER),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const s=c[e];if(s.location>=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,l=a.itemSize,c=n.get(a);if(void 0===c)continue;const h=c.buffer,u=c.type,d=c.bytesPerElement,p=!0===i.isWebGL2&&(u===t.INT||u===t.UNSIGNED_INT||a.gpuType===bt);if(a.isInterleavedBufferAttribute){const n=a.data,i=n.stride,c=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),g=t.getParameter(t.MAX_VARYING_VECTORS),v=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,y=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:_,floatFragmentTextures:y,floatVertexTextures:_&&y,maxSamples:s?t.getParameter(t.MAX_SAMPLES):0}}function aa(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Xs,o=new Hn,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function oa(t){let e=new WeakMap;function n(t,e){return e===it?t.mapping=et:e===rt&&(t.mapping=nt),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===it||s===rt){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new ks(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class la extends Os{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const ca=[.125,.215,.35,.446,.526,.582],ha=20,ua=new la,da=new Or;let pa=null;const ma=(1+Math.sqrt(5))/2,fa=1/ma,ga=[new gi(1,1,1),new gi(-1,1,1),new gi(1,1,-1),new gi(-1,1,-1),new gi(0,ma,fa),new gi(0,ma,-fa),new gi(fa,0,ma),new gi(-fa,0,ma),new gi(ma,fa,0),new gi(-ma,fa,0)];class va{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){pa=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Ma(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-4?o=ca[a-t+4-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,v=new Float32Array(m*p*d),_=new Float32Array(f*p*d),y=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];v.set(i,m*p*t),_.set(u,f*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const x=new hs;x.setAttribute("position",new jr(v,m)),x.setAttribute("uv",new jr(_,f)),x.setAttribute("faceIndex",new jr(y,g)),e.push(x),r>4&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(ha),r=new gi(0,1,0),s=new Ds({name:"SphericalGaussianBlur",defines:{n:ha,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Sa(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Rs(this._lodPlanes[0],t);this._renderer.compile(e,ua)}_sceneToCubeUV(t,e,n,i){const r=new Fs(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(da),o.toneMapping=0,o.autoClear=!1;const h=new Br({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),u=new Rs(new Ps,h);let d=!1;const p=t.background;p?p.isColor&&(h.color.copy(p),t.background=null,d=!0):(h.color.copy(da),d=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;ya(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===et||t.mapping===nt;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Ma()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xa());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Rs(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;ya(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,ua)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eha&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;tv-4?i-v+4:0),4*(this._cubeSize-_),3*_,2*_),o.setRenderTarget(e),o.render(c,ua)}}function _a(t,e,n){const i=new ci(t,e,n);return i.texture.mapping=st,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function ya(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function xa(){return new Ds({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Sa(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ma(){return new Ds({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Sa(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Sa(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function ba(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===it||s===rt,o=s===et||s===nt;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new va(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(p/e.maxTextureSize),p=e.maxTextureSize);const f=new Float32Array(p*m*4*r),g=new hi(f,p,m,r);g.type=Tt,g.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let s=Oa[r];if(void 0===s&&(s=new Float32Array(r),Oa[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Va(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function Ho(t,e){const n=function(t){switch(t){case ze:return["Linear","( value )"];case Be:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),["Linear","( value )"]}}(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function ko(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Vo(t){return""!==t}function Go(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Wo(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Xo=/^[ \t]*#include +<([\w\d./]+)>/gm;function jo(t){return t.replace(Xo,qo)}function qo(t,e){const n=$s[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return jo(n)}const Yo=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Zo(t){return t.replace(Yo,Jo)}function Jo(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(g+="\n"),v=[p,m].filter(Vo).join("\n"),v.length>0&&(v+="\n")):(g=[Ko(n),"#define SHADER_NAME "+n.shaderName,m,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Vo).join("\n"),v=[p,Ko(n),"#define SHADER_NAME "+n.shaderName,m,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+h:"",n.envMap?"#define "+u:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?$s.tonemapping_pars_fragment:"",0!==n.toneMapping?ko("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",$s.encodings_pars_fragment,Ho("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Vo).join("\n")),a=jo(a),a=Go(a,n),a=Wo(a,n),o=jo(o),o=Go(o,n),o=Wo(o,n),a=Zo(a),o=Zo(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(_="#version 300 es\n",g=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+g,v=["#define varying in",n.glslVersion===Sn?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Sn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+v);const y=_+g+a,x=_+v+o,M=Fo(r,r.VERTEX_SHADER,y),S=Fo(r,r.FRAGMENT_SHADER,x);if(r.attachShader(f,M),r.attachShader(f,S),void 0!==n.index0AttributeName?r.bindAttribLocation(f,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(f,0,"position"),r.linkProgram(f),t.debug.checkShaderErrors){const e=r.getProgramInfoLog(f).trim(),n=r.getShaderInfoLog(M).trim(),i=r.getShaderInfoLog(S).trim();let s=!0,a=!0;if(!1===r.getProgramParameter(f,r.LINK_STATUS))if(s=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,f,M,S);else{const t=zo(r,M,"vertex"),n=zo(r,S,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(f,r.VALIDATE_STATUS)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==n&&""!==i||(a=!1);a&&(this.diagnostics={runnable:s,programLog:e,vertexShader:{log:n,prefix:g},fragmentShader:{log:i,prefix:v}})}let b,E;return r.deleteShader(M),r.deleteShader(S),this.getUniforms=function(){return void 0===b&&(b=new Oo(r,f)),b},this.getAttributes=function(){return void 0===E&&(E=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r0,X=s.clearcoat>0,j=s.iridescence>0,q=s.sheen>0,Y=s.transmission>0,Z=W&&!!s.anisotropyMap,J=X&&!!s.clearcoatMap,K=X&&!!s.clearcoatNormalMap,$=X&&!!s.clearcoatRoughnessMap,Q=j&&!!s.iridescenceMap,tt=j&&!!s.iridescenceThicknessMap,et=q&&!!s.sheenColorMap,nt=q&&!!s.sheenRoughnessMap,it=!!s.specularMap,rt=!!s.specularColorMap,at=!!s.specularIntensityMap,ot=Y&&!!s.transmissionMap,lt=Y&&!!s.thicknessMap,ct=!!s.gradientMap,ht=!!s.alphaMap,ut=s.alphaTest>0,dt=!!s.extensions,pt=!!y.attributes.uv1,mt=!!y.attributes.uv2,ft=!!y.attributes.uv3;return{isWebGL2:h,shaderID:b,shaderName:s.type,vertexShader:w,fragmentShader:A,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:C,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,instancing:I,instancingColor:I&&null!==v.instanceColor,supportsVertexTextures:d,outputColorSpace:null===L?t.outputColorSpace:!0===L.isXRRenderTarget?L.texture.colorSpace:ze,map:U,matcap:N,envMap:D,envMapMode:D&&M.mapping,envMapCubeUVHeight:S,aoMap:O,lightMap:F,bumpMap:B,normalMap:z,displacementMap:d&&H,emissiveMap:k,normalMapObjectSpace:z&&1===s.normalMapType,normalMapTangentSpace:z&&0===s.normalMapType,metalnessMap:V,roughnessMap:G,anisotropy:W,anisotropyMap:Z,clearcoat:X,clearcoatMap:J,clearcoatNormalMap:K,clearcoatRoughnessMap:$,iridescence:j,iridescenceMap:Q,iridescenceThicknessMap:tt,sheen:q,sheenColorMap:et,sheenRoughnessMap:nt,specularMap:it,specularColorMap:rt,specularIntensityMap:at,transmission:Y,transmissionMap:ot,thicknessMap:lt,gradientMap:ct,opaque:!1===s.transparent&&1===s.blending,alphaMap:ht,alphaTest:ut,combine:s.combine,mapUv:U&&f(s.map.channel),aoMapUv:O&&f(s.aoMap.channel),lightMapUv:F&&f(s.lightMap.channel),bumpMapUv:B&&f(s.bumpMap.channel),normalMapUv:z&&f(s.normalMap.channel),displacementMapUv:H&&f(s.displacementMap.channel),emissiveMapUv:k&&f(s.emissiveMap.channel),metalnessMapUv:V&&f(s.metalnessMap.channel),roughnessMapUv:G&&f(s.roughnessMap.channel),anisotropyMapUv:Z&&f(s.anisotropyMap.channel),clearcoatMapUv:J&&f(s.clearcoatMap.channel),clearcoatNormalMapUv:K&&f(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$&&f(s.clearcoatRoughnessMap.channel),iridescenceMapUv:Q&&f(s.iridescenceMap.channel),iridescenceThicknessMapUv:tt&&f(s.iridescenceThicknessMap.channel),sheenColorMapUv:et&&f(s.sheenColorMap.channel),sheenRoughnessMapUv:nt&&f(s.sheenRoughnessMap.channel),specularMapUv:it&&f(s.specularMap.channel),specularColorMapUv:rt&&f(s.specularColorMap.channel),specularIntensityMapUv:at&&f(s.specularIntensityMap.channel),transmissionMapUv:ot&&f(s.transmissionMap.channel),thicknessMapUv:lt&&f(s.thicknessMap.channel),alphaMapUv:ht&&f(s.alphaMap.channel),vertexTangents:!!y.attributes.tangent&&(z||W),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!y.attributes.color&&4===y.attributes.color.itemSize,vertexUv1s:pt,vertexUv2s:mt,vertexUv3s:ft,pointsUvs:!0===v.isPoints&&!!y.attributes.uv&&(U||ht),fog:!!_,useFog:!0===s.fog,fogExp2:_&&_.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==y.morphAttributes.position,morphNormals:void 0!==y.morphAttributes.normal,morphColors:void 0!==y.morphAttributes.color,morphTargetsCount:T,morphTextureStride:P,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:0,useLegacyLights:t.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:1===s.side,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:dt&&!0===s.extensions.derivatives,extensionFragDepth:dt&&!0===s.extensions.fragDepth,extensionDrawBuffers:dt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:dt&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.opaque&&o.enable(17);e.pointsUvs&&o.enable(18);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=m[t.type];let n;if(e){const t=ta[e];n=Ns.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||rl),i.length>1&&i.sort(e||sl),r.length>1&&r.sort(e||sl)}}}function ol(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new al,t.set(e,[r])):n>=i.length?(r=new al,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function ll(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new gi,color:new Or};break;case"SpotLight":n={position:new gi,direction:new gi,color:new Or,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new gi,color:new Or,distance:0,decay:0};break;case"HemisphereLight":n={direction:new gi,skyColor:new Or,groundColor:new Or};break;case"RectAreaLight":n={color:new Or,position:new gi,halfWidth:new gi,halfHeight:new gi}}return t[e.id]=n,n}}}let cl=0;function hl(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function ul(t,e){const n=new ll,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new zn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new zn,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)r.probe.push(new gi);const s=new gi,a=new ji,o=new ji;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0,_=0,y=0;s.sort(hl);const x=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Qs.LTC_FLOAT_1,r.rectAreaLTC2=Qs.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Qs.LTC_HALF_1,r.rectAreaLTC2=Qs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const M=r.hash;M.directionalLength===h&&M.pointLength===u&&M.spotLength===d&&M.rectAreaLength===p&&M.hemiLength===m&&M.numDirectionalShadows===f&&M.numPointShadows===g&&M.numSpotShadows===v&&M.numSpotMaps===_||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=v+_-y,r.spotLightMap.length=_,r.numSpotLightShadowsWithMaps=y,M.directionalLength=h,M.pointLength=u,M.spotLength=d,M.rectAreaLength=p,M.hemiLength=m,M.numDirectionalShadows=f,M.numPointShadows=g,M.numSpotShadows=v,M.numSpotMaps=_,r.version=cl++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new dl(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class ml extends Lr{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class fl extends Lr{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function gl(t,e,n){let i=new Ys;const r=new zn,s=new zn,a=new li,o=new ml({depthPacking:3201}),l=new fl,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Ds({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new zn},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const m=new hs;m.setAttribute("position",new jr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const f=new Rs(m,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let v=this.type;function _(n,i){const s=e.update(f);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,p.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new ci(r.x,r.y)),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,d,f,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,p,f,null)}function y(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=c[t];void 0===i&&(i={},c[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=3===r?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:u[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function x(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/f.x),r.x=s.x*f.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/f.y),r.y=s.y*f.y,u.mapSize.y=s.y)),null===u.map||!0===p||!0===m){const t=3!==this.type?{minFilter:ct,magFilter:ct}:{};null!==u.map&&u.map.dispose(),u.map=new ci(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const g=u.getViewportCount();for(let t=0;t=1):-1!==I.indexOf("OpenGL ES")&&(L=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),P=L>=2);let U=null,N={};const D=t.getParameter(t.SCISSOR_BOX),O=t.getParameter(t.VIEWPORT),F=(new li).fromArray(D),B=(new li).fromArray(O);function z(e,n,r,s){const a=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;oi||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Dn:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===f&&(f=_(s,a));const o=n?_(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function x(t){return Un(t.width)&&Un(t.height)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==ct&&t.minFilter!==mt}function S(e){t.generateMipmap(e)}function b(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return i===t.RED&&(r===t.FLOAT&&(l=t.R32F),r===t.HALF_FLOAT&&(l=t.R16F),r===t.UNSIGNED_BYTE&&(l=t.R8)),i===t.RG&&(r===t.FLOAT&&(l=t.RG32F),r===t.HALF_FLOAT&&(l=t.RG16F),r===t.UNSIGNED_BYTE&&(l=t.RG8)),i===t.RGBA&&(r===t.FLOAT&&(l=t.RGBA32F),r===t.HALF_FLOAT&&(l=t.RGBA16F),r===t.UNSIGNED_BYTE&&(l=s===Be&&!1===a?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(l=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(l=t.RGB5_A1)),l!==t.R16F&&l!==t.R32F&&l!==t.RG16F&&l!==t.RG32F&&l!==t.RGBA16F&&l!==t.RGBA32F||e.get("EXT_color_buffer_float"),l}function E(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==ct&&t.minFilter!==mt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function T(e){return e===ct||e===ht||e===dt?t.NEAREST:t.LINEAR}function w(t){const e=t.target;e.removeEventListener("dispose",w),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&R(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}(e),e.isVideoTexture&&m.delete(e)}function A(e){const n=e.target;n.removeEventListener("dispose",A),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void O(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const L={[at]:t.REPEAT,[ot]:t.CLAMP_TO_EDGE,[lt]:t.MIRRORED_REPEAT},I={[ct]:t.NEAREST,[ht]:t.NEAREST_MIPMAP_NEAREST,[dt]:t.NEAREST_MIPMAP_LINEAR,[mt]:t.LINEAR,[ft]:t.LINEAR_MIPMAP_NEAREST,[vt]:t.LINEAR_MIPMAP_LINEAR},U={512:t.NEVER,519:t.ALWAYS,513:t.LESS,515:t.LEQUAL,514:t.EQUAL,518:t.GEQUAL,516:t.GREATER,517:t.NOTEQUAL};function N(n,s,a){if(a?(t.texParameteri(n,t.TEXTURE_WRAP_S,L[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,L[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,L[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,I[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,I[s.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),s.wrapS===ot&&s.wrapT===ot||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,t.TEXTURE_MAG_FILTER,T(s.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,T(s.minFilter)),s.minFilter!==ct&&s.minFilter!==mt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,U[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===ct)return;if(s.minFilter!==dt&&s.minFilter!==vt)return;if(s.type===Tt&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===wt&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function D(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",w));const r=n.source;let s=g.get(r);void 0===s&&(s={},g.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&R(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function O(e,r,a){let l=t.TEXTURE_2D;(r.isDataArrayTexture||r.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY),r.isData3DTexture&&(l=t.TEXTURE_3D);const c=D(e,r),u=r.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+a);const d=i.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=function(t){return!o&&(t.wrapS!==ot||t.wrapT!==ot||t.minFilter!==ct&&t.minFilter!==mt)}(r)&&!1===x(r.image);let i=y(r.image,e,!1,h);i=V(r,i);const p=x(i)||o,m=s.convert(r.format,r.colorSpace);let f,g=s.convert(r.type),v=b(r.internalFormat,m,g,r.colorSpace);N(l,r,p);const _=r.mipmaps,T=o&&!0!==r.isVideoTexture,w=void 0===d.__version||!0===c,A=E(r,i,p);if(r.isDepthTexture)v=t.DEPTH_COMPONENT,o?v=r.type===Tt?t.DEPTH_COMPONENT32F:r.type===Et?t.DEPTH_COMPONENT24:r.type===Ct?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:r.type===Tt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Nt&&v===t.DEPTH_COMPONENT&&r.type!==St&&r.type!==Et&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Et,g=s.convert(r.type)),r.format===Dt&&v===t.DEPTH_COMPONENT&&(v=t.DEPTH_STENCIL,r.type!==Ct&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Ct,g=s.convert(r.type))),w&&(T?n.texStorage2D(t.TEXTURE_2D,1,v,i.width,i.height):n.texImage2D(t.TEXTURE_2D,0,v,i.width,i.height,0,m,g,null));else if(r.isDataTexture)if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e>=1,r>>=1}}else if(_.length>0&&p){T&&w&&n.texStorage2D(t.TEXTURE_2D,A,v,_[0].width,_[0].height);for(let e=0,i=_.length;e=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(t.FRAMEBUFFER,null)}function B(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let r=t.DEPTH_COMPONENT16;if(i||k(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Tt?r=t.DEPTH_COMPONENT32F:e.type===Et&&(r=t.DEPTH_COMPONENT24));const i=H(n);k(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,i,r,n.width,n.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,i,r,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,r,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=H(n);i&&!1===k(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):k(n)?d.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(t,n){const i=t.colorSpace,r=t.format,s=t.type;return!0===t.isCompressedTexture||t.format===bn||i!==ze&&i!==Fe&&(i===Be?!1===o?!0===e.has("EXT_sRGB")&&r===Lt?(t.format=bn,t.minFilter=mt,t.generateMipmaps=!1):n=ni.sRGBToLinear(n):r===Lt&&s===yt||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){const t=C;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),C+=1,t},this.resetTextureUnits=function(){C=0},this.setTexture2D=P,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?O(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,r,a){if(6!==r.image.length)return;const l=D(e,r),h=r.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+a);const u=i.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(t.TEXTURE0+a),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,r.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,r.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const e=r.isCompressedTexture||r.image[0].isCompressedTexture,i=r.image[0]&&r.image[0].isDataTexture,d=[];for(let t=0;t<6;t++)d[t]=e||i?i?r.image[t].image:r.image[t]:y(r.image[t],!1,!0,c),d[t]=V(r,d[t]);const p=d[0],m=x(p)||o,f=s.convert(r.format,r.colorSpace),g=s.convert(r.type),v=b(r.internalFormat,f,g,r.colorSpace),_=o&&!0!==r.isVideoTexture,T=void 0===u.__version||!0===l;let w,A=E(r,p,m);if(N(t.TEXTURE_CUBE_MAP,r,m),e){_&&T&&n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,p.width,p.height);for(let e=0;e<6;e++){w=d[e].mipmaps;for(let i=0;i0&&A++,n.texStorage2D(t.TEXTURE_CUBE_MAP,A,v,d[0].width,d[0].height));for(let e=0;e<6;e++)if(i){_?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,d[e].width,d[e].height,f,g,d[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,v,d[e].width,d[e].height,0,f,g,d[e].data);for(let i=0;i0&&!1===k(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===k(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=[],c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Sl)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Ml;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class El extends oi{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:Nt)!==Nt&&c!==Dt)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Nt&&(n=Et),void 0===n&&c===Dt&&(n=Ct),super(null,i,r,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:ct,this.minFilter=void 0!==o?o:ct,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class Tl extends En{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const v=[],_=[],y=new Set,x=new Map,M=new Fs;M.layers.enable(1),M.viewport=new li;const S=new Fs;S.layers.enable(2),S.viewport=new li;const b=[M,S],E=new xl;E.layers.enable(1),E.layers.enable(2);let T=null,w=null;function A(t){const e=_.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function R(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",C);for(let t=0;t=0&&(_[i]=null,v[i].disconnect(n))}for(let e=0;e=_.length){_.push(n),i=t;break}if(null===_[t]){_[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new bl,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",R),i.addEventListener("inputsourceschange",C),!0!==m.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),g=new ci(d.framebufferWidth,d.framebufferHeight,{format:Lt,type:yt,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?Dt:Nt,s=m.stencil?Ct:Et);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),g=new ci(u.textureWidth,u.textureHeight,{format:Lt,type:yt,depthTexture:new El(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),N.setContext(i),N.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};const P=new gi,L=new gi;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;E.near=S.near=M.near=t.near,E.far=S.far=M.far=t.far,T===E.near&&w===E.far||(i.updateRenderState({depthNear:E.near,depthFar:E.far}),T=E.near,w=E.far);const e=t.parent,n=E.cameras;I(E,e);for(let t=0;te&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,i.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(t){U=t},this.dispose=function(){}}}function wl(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map,n(r.map,i.mapTransform)),r.alphaMap&&(i.alphaMap.value=r.alphaMap,n(r.alphaMap,i.alphaMapTransform)),r.bumpMap&&(i.bumpMap.value=r.bumpMap,n(r.bumpMap,i.bumpMapTransform),i.bumpScale.value=r.bumpScale,1===r.side&&(i.bumpScale.value*=-1)),r.normalMap&&(i.normalMap.value=r.normalMap,n(r.normalMap,i.normalMapTransform),i.normalScale.value.copy(r.normalScale),1===r.side&&i.normalScale.value.negate()),r.displacementMap&&(i.displacementMap.value=r.displacementMap,n(r.displacementMap,i.displacementMapTransform),i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap,n(r.emissiveMap,i.emissiveMapTransform)),r.specularMap&&(i.specularMap.value=r.specularMap,n(r.specularMap,i.specularMapTransform)),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t.useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Us(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),1===e.side&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Al(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(t,e,n){const i=t.value;if(void 0===n[e]){if("number"==typeof i)n[e]=i;else{const t=Array.isArray(i)?i:[i],r=[];for(let e=0;e0){r=n%i;0!==r&&i-r-a.boundary<0&&(n+=i-r,s.__offset=n)}n+=a.storage}r=n%i,r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color,m=i.toneMapped?y.toneMapping:0,f=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,v=void 0!==f?f.length:0,_=Z.get(i),x=g.state.lights;if(!0===B&&(!0===z||t!==T)){const e=t===T&&i.id===E;at.setState(i,t,e)}let M=!1;i.version===_.__version?_.needsLights&&_.lightsStateVersion!==x.state.version||_.outputColorSpace!==o||r.isInstancedMesh&&!1===_.instancing?M=!0:r.isInstancedMesh||!0!==_.instancing?r.isSkinnedMesh&&!1===_.skinning?M=!0:r.isSkinnedMesh||!0!==_.skinning?_.envMap!==l||!0===i.fog&&_.fog!==s?M=!0:void 0===_.numClippingPlanes||_.numClippingPlanes===at.numPlanes&&_.numIntersection===at.numIntersection?(_.vertexAlphas!==c||_.vertexTangents!==h||_.morphTargets!==u||_.morphNormals!==d||_.morphColors!==p||_.toneMapping!==m||!0===j.isWebGL2&&_.morphTargetsCount!==v)&&(M=!0):M=!0:M=!0:M=!0:(M=!0,_.__version=i.version);let S=_.currentProgram;!0===M&&(S=Wt(i,e,r));let w=!1,A=!1,R=!1;const C=S.getUniforms(),I=_.uniforms;q.useProgram(S.program)&&(w=!0,A=!0,R=!0);i.id!==E&&(E=i.id,A=!0);if(w||T!==t){if(C.setValue(ft,"projectionMatrix",t.projectionMatrix),j.logarithmicDepthBuffer&&C.setValue(ft,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),T!==t&&(T=t,A=!0,R=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=C.map.cameraPosition;void 0!==e&&e.setValue(ft,V.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&C.setValue(ft,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&C.setValue(ft,"viewMatrix",t.matrixWorldInverse)}if(r.isSkinnedMesh){C.setOptional(ft,r,"bindMatrix"),C.setOptional(ft,r,"bindMatrixInverse");const t=r.skeleton;t&&(j.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),C.setValue(ft,"boneTexture",t.boneTexture,J),C.setValue(ft,"boneTextureSize",t.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const U=n.morphAttributes;(void 0!==U.position||void 0!==U.normal||void 0!==U.color&&!0===j.isWebGL2)&&ct.update(r,n,S);(A||_.receiveShadow!==r.receiveShadow)&&(_.receiveShadow=r.receiveShadow,C.setValue(ft,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(I.envMap.value=l,I.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1);A&&(C.setValue(ft,"toneMappingExposure",y.toneMappingExposure),_.needsLights&&(D=R,(N=I).ambientLightColor.needsUpdate=D,N.lightProbe.needsUpdate=D,N.directionalLights.needsUpdate=D,N.directionalLightShadows.needsUpdate=D,N.pointLights.needsUpdate=D,N.pointLightShadows.needsUpdate=D,N.spotLights.needsUpdate=D,N.spotLightShadows.needsUpdate=D,N.rectAreaLights.needsUpdate=D,N.hemisphereLights.needsUpdate=D),s&&!0===i.fog&&it.refreshFogUniforms(I,s),it.refreshMaterialUniforms(I,i,L,P,H),Oo.upload(ft,_.uniformsList,I,J));var N,D;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(Oo.upload(ft,_.uniformsList,I,J),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&C.setValue(ft,"center",r.center);if(C.setValue(ft,"modelViewMatrix",r.modelViewMatrix),C.setValue(ft,"normalMatrix",r.normalMatrix),C.setValue(ft,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e0&&function(t,e,n,i){if(null===H){const t=j.isWebGL2;H=new ci(1024,1024,{generateMipmaps:!0,type:X.has("EXT_color_buffer_half_float")?wt:yt,minFilter:vt,samples:t&&!0===o?4:0})}const r=y.getRenderTarget();y.setRenderTarget(H),y.clear();const s=y.toneMapping;y.toneMapping=0,Vt(t,n,i),J.updateMultisampleRenderTarget(H),J.updateRenderTargetMipmap(H);let a=!1;for(let t=0,r=e.length;t0&&Vt(r,e,n),s.length>0&&Vt(s,e,n),a.length>0&&Vt(a,e,n),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function Vt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?_[_.length-1]:null,v.pop(),f=v.length>0?v[v.length-1]:null},this.getActiveCubeFace=function(){return M},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return b},this.setRenderTargetTextures=function(t,e,n){Z.get(t.texture).__webglTexture=e,Z.get(t.depthTexture).__webglTexture=n;const i=Z.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=Z.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){b=t,M=e,S=n;let i=!0,r=null,s=!1,a=!1;if(t){const n=Z.get(t);void 0!==n.__useDefaultFramebuffer?(q.bindFramebuffer(ft.FRAMEBUFFER,null),i=!1):void 0===n.__webglFramebuffer?J.setupRenderTarget(t):n.__hasExternalTextures&&J.rebindTextures(t,Z.get(t.texture).__webglTexture,Z.get(t.depthTexture).__webglTexture);const o=t.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=Z.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=l[e],s=!0):r=j.isWebGL2&&t.samples>0&&!1===J.useMultisampledRTT(t)?Z.get(t).__webglMultisampledFramebuffer:l,w.copy(t.viewport),A.copy(t.scissor),R=t.scissorTest}else w.copy(N).multiplyScalar(L).floor(),A.copy(D).multiplyScalar(L).floor(),R=O;if(q.bindFramebuffer(ft.FRAMEBUFFER,r)&&j.drawBuffers&&i&&q.drawBuffers(t,r),q.viewport(w),q.scissor(A),q.setScissorTest(R),s){const i=Z.get(t.texture);ft.framebufferTexture2D(ft.FRAMEBUFFER,ft.COLOR_ATTACHMENT0,ft.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Z.get(t.texture),r=e||0;ft.framebufferTextureLayer(ft.FRAMEBUFFER,ft.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}E=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Z.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){q.bindFramebuffer(ft.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==Lt&&dt.convert(o)!==ft.getParameter(ft.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===wt&&(X.has("EXT_color_buffer_half_float")||j.isWebGL2&&X.has("EXT_color_buffer_float"));if(!(l===yt||dt.convert(l)===ft.getParameter(ft.IMPLEMENTATION_COLOR_READ_TYPE)||l===Tt&&(j.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&ft.readPixels(e,n,i,r,dt.convert(o),dt.convert(l),s)}finally{const t=null!==b?Z.get(b).__webglFramebuffer:null;q.bindFramebuffer(ft.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);J.setTexture2D(e,0),ft.copyTexSubImage2D(ft.TEXTURE_2D,n,0,0,t.x,t.y,r,s),q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=dt.convert(n.format),o=dt.convert(n.type);J.setTexture2D(n,0),ft.pixelStorei(ft.UNPACK_FLIP_Y_WEBGL,n.flipY),ft.pixelStorei(ft.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),ft.pixelStorei(ft.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?ft.texSubImage2D(ft.TEXTURE_2D,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?ft.compressedTexSubImage2D(ft.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):ft.texSubImage2D(ft.TEXTURE_2D,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&ft.generateMipmap(ft.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=dt.convert(i.format),c=dt.convert(i.type);let h;if(i.isData3DTexture)J.setTexture3D(i,0),h=ft.TEXTURE_3D;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");J.setTexture2DArray(i,0),h=ft.TEXTURE_2D_ARRAY}ft.pixelStorei(ft.UNPACK_FLIP_Y_WEBGL,i.flipY),ft.pixelStorei(ft.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),ft.pixelStorei(ft.UNPACK_ALIGNMENT,i.unpackAlignment);const u=ft.getParameter(ft.UNPACK_ROW_LENGTH),d=ft.getParameter(ft.UNPACK_IMAGE_HEIGHT),p=ft.getParameter(ft.UNPACK_SKIP_PIXELS),m=ft.getParameter(ft.UNPACK_SKIP_ROWS),f=ft.getParameter(ft.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;ft.pixelStorei(ft.UNPACK_ROW_LENGTH,g.width),ft.pixelStorei(ft.UNPACK_IMAGE_HEIGHT,g.height),ft.pixelStorei(ft.UNPACK_SKIP_PIXELS,t.min.x),ft.pixelStorei(ft.UNPACK_SKIP_ROWS,t.min.y),ft.pixelStorei(ft.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isData3DTexture?ft.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),ft.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):ft.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),ft.pixelStorei(ft.UNPACK_ROW_LENGTH,u),ft.pixelStorei(ft.UNPACK_IMAGE_HEIGHT,d),ft.pixelStorei(ft.UNPACK_SKIP_PIXELS,p),ft.pixelStorei(ft.UNPACK_SKIP_ROWS,m),ft.pixelStorei(ft.UNPACK_SKIP_IMAGES,f),0===r&&i.generateMipmaps&&ft.generateMipmap(h),q.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?J.setTextureCube(t,0):t.isData3DTexture?J.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?J.setTexture2DArray(t,0):J.setTexture2D(t,0),q.unbindTexture()},this.resetState=function(){M=0,S=0,b=null,q.reset(),pt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Be?Ie:Le}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Ie?Be:ze}}class Pl extends Cl{}Pl.prototype.isWebGL1Renderer=!0;class Ll{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Or(t),this.density=e}clone(){return new Ll(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Il{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Or(t),this.near=e,this.far=n}clone(){return new Il(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Ul extends vr{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class Nl{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=dn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Cn()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:zl.clone(),uv:Cr.getInterpolation(zl,Xl,jl,ql,Yl,Zl,Jl,new zn),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function $l(t,e,n,i,r,s){Vl.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Gl.x=s*Vl.x-r*Vl.y,Gl.y=r*Vl.x+s*Vl.y):Gl.copy(Vl),t.copy(e),t.x+=Gl.x,t.y+=Gl.y,t.applyMatrix4(Wl)}const Ql=new gi,tc=new gi;class ec extends vr{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){Ql.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Ql);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Ql.setFromMatrixPosition(t.matrixWorld),tc.setFromMatrixPosition(this.matrixWorld);const n=Ql.distanceTo(tc)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Wc extends oi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:mt,this.magFilter=void 0!==r?r:mt,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Xc extends oi{constructor(t,e,n){super({width:t,height:e}),this.isFramebufferTexture=!0,this.format=n,this.magFilter=ct,this.minFilter=ct,this.generateMipmaps=!1,this.needsUpdate=!0}}class jc extends oi{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class qc extends jc{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ot}}class Yc extends oi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Zc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new zn:new gi);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new gi,i=[],r=[],s=[],a=new gi,o=new ji;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new gi)}r[0]=new gi,s[0]=new gi;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(Pn(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(Pn(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Jc extends Zc{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new zn,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Qc.subVectors(i[0],i[1]).add(i[0]),a=Qc);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(rh(a,o.x,l.x,c.x,h.x),rh(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class vh extends hs{constructor(t=[new zn(0,-.5),new zn(.5,0),new zn(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=Pn(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new gi,u=new zn,d=new gi,p=new gi,m=new gi;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new es(h,3)),this.setAttribute("normal",new es(u,3)),this.setAttribute("uv",new es(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new xh(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Mh extends xh{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new Mh(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Sh extends hs{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new es(r,3)),this.setAttribute("normal",new es(r.slice(),3)),this.setAttribute("uv",new es(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Sh(t.vertices,t.indices,t.radius,t.details)}}class bh extends Sh{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new bh(t.radius,t.detail)}}const Eh=new gi,Th=new gi,wh=new gi,Ah=new Cr;class Rh extends hs{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(An*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Uh(s,a,n,o,l,p,0),a};function Lh(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=$h(s,t[s],t[s+1],a);return a&&jh(a,a.next)&&(Qh(a),a=a.next),a}function Ih(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!jh(i,i.next)&&0!==Xh(i.prev,i,i.next))i=i.next;else{if(Qh(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Uh(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=kh(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Dh(t,i,r,s):Nh(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Qh(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Uh(t=Oh(Ih(t),e,n),e,n,i,r,s,2):2===a&&Fh(t,e,n,i,r,s):Uh(Ih(t),e,n,i,r,s,1);break}}function Nh(t){const e=t.prev,n=t,i=t.next;if(Xh(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Gh(r,o,s,l,a,c,m.x,m.y)&&Xh(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Dh(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Xh(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,v=kh(p,m,e,n,i),_=kh(f,g,e,n,i);let y=t.prevZ,x=t.nextZ;for(;y&&y.z>=v&&x&&x.z<=_;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Gh(o,h,l,u,c,d,y.x,y.y)&&Xh(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Gh(o,h,l,u,c,d,x.x,x.y)&&Xh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=v;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Gh(o,h,l,u,c,d,y.x,y.y)&&Xh(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Gh(o,h,l,u,c,d,x.x,x.y)&&Xh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Oh(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!jh(r,s)&&qh(r,i,i.next,s)&&Jh(r,s)&&Jh(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Qh(i),Qh(i.next),i=t=s),i=i.next}while(i!==t);return Ih(i)}function Fh(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Wh(a,t)){let o=Kh(a,t);return a=Ih(a,a.next),o=Ih(o,o.next),Uh(a,e,n,i,r,s,0),void Uh(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function Bh(t,e){return t.x-e.x}function zh(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Gh(an.x||i.x===n.x&&Hh(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=Kh(n,t);return Ih(i,i.next),Ih(n,n.next)}function Hh(t,e){return Xh(t.prev,t,e.prev)<0&&Xh(e.next,t,t.next)<0}function kh(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Vh(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Wh(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&qh(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Jh(t,e)&&Jh(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Xh(t.prev,t,e.prev)||Xh(t,e.prev,e))||jh(t,e)&&Xh(t.prev,t,t.next)>0&&Xh(e.prev,e,e.next)>0)}function Xh(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function jh(t,e){return t.x===e.x&&t.y===e.y}function qh(t,e,n,i){const r=Zh(Xh(t,e,n)),s=Zh(Xh(t,e,i)),a=Zh(Xh(n,i,t)),o=Zh(Xh(n,i,e));return r!==s&&a!==o||(!(0!==r||!Yh(t,n,e))||(!(0!==s||!Yh(t,i,e))||(!(0!==a||!Yh(n,t,i))||!(0!==o||!Yh(n,e,i)))))}function Yh(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Zh(t){return t>0?1:t<0?-1:0}function Jh(t,e){return Xh(t.prev,t,t.next)<0?Xh(t,e,t.next)>=0&&Xh(t,t.prev,e)>=0:Xh(t,e,t.prev)<0||Xh(t,t.next,e)<0}function Kh(t,e){const n=new tu(t.i,t.x,t.y),i=new tu(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function $h(t,e,n,i){const r=new tu(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Qh(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function tu(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class eu{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function iu(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new zn(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new zn(i/s,r/s)}const L=[];for(let t=0,e=w.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=w.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class Su extends Lr{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Or(16777215),this.specular=new Or(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class bu extends Lr{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Or(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class Eu extends Lr{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class Tu extends Lr{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Or(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Or(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class wu extends Lr{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Or(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new zn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class Au extends wc{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function Ru(t,e,n){return Pu(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)}function Cu(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function Pu(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Lu(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function Iu(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function Uu(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const Nu={arraySlice:Ru,convertArray:Cu,isTypedArray:Pu,getKeyframeOrder:Lu,sortedArray:Iu,flattenJSON:Uu,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Ru(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Ru(t.resultBuffer,e,n)}if("quaternion"===r){(new fi).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Ru(n,r,s),this.values=Ru(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Pu(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Ru(this.times),e=Ru(this.values),n=this.getValueSize(),i=this.getInterpolation()===Se,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Ru(t,0,s),this.values=Ru(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Ru(this.times,0),e=Ru(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}zu.prototype.TimeBufferType=Float32Array,zu.prototype.ValueBufferType=Float32Array,zu.prototype.DefaultInterpolation=Me;class Hu extends zu{}Hu.prototype.ValueTypeName="bool",Hu.prototype.ValueBufferType=Array,Hu.prototype.DefaultInterpolation=xe,Hu.prototype.InterpolantFactoryMethodLinear=void 0,Hu.prototype.InterpolantFactoryMethodSmooth=void 0;class ku extends zu{}ku.prototype.ValueTypeName="color";class Vu extends zu{}Vu.prototype.ValueTypeName="number";class Gu extends Du{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)fi.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Wu extends zu{InterpolantFactoryMethodLinear(t){return new Gu(this.times,this.values,this.getValueSize(),t)}}Wu.prototype.ValueTypeName="quaternion",Wu.prototype.DefaultInterpolation=Me,Wu.prototype.InterpolantFactoryMethodSmooth=void 0;class Xu extends zu{}Xu.prototype.ValueTypeName="string",Xu.prototype.ValueBufferType=Array,Xu.prototype.DefaultInterpolation=xe,Xu.prototype.InterpolantFactoryMethodLinear=void 0,Xu.prototype.InterpolantFactoryMethodSmooth=void 0;class ju extends zu{}ju.prototype.ValueTypeName="vector";class qu{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Cn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Yu(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(zu.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Uu(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Qu[t])return void Qu[t].push({onLoad:e,onProgress:n,onError:i});Qu[t]=[],Qu[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Qu[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Zu.add(t,e);const n=Qu[t];delete Qu[t];for(let t=0,i=n.length;t{const n=Qu[t];if(void 0===n)throw this.manager.itemError(t),e;delete Qu[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class nd extends $u{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new ed(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Or).setHex(r.value);break;case"v2":i.uniforms[e].value=(new zn).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new gi).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new li).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new Hn).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new ji).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new zn).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new zn).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:_u,SpriteMaterial:Fl,RawShaderMaterial:yu,ShaderMaterial:Ds,PointsMaterial:Fc,MeshPhysicalMaterial:Mu,MeshStandardMaterial:xu,MeshPhongMaterial:Su,MeshToonMaterial:bu,MeshNormalMaterial:Eu,MeshLambertMaterial:Tu,MeshDepthMaterial:ml,MeshDistanceMaterial:fl,MeshBasicMaterial:Br,MeshMatcapMaterial:wu,LineDashedMaterial:Au,LineBasicMaterial:wc,Material:Lr}[t]}}class Rd{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){const n=new Ju(e);r=new rd(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new rd(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){fi.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;fi.multiplyQuaternionsFlat(t,s,t,e,t,n),fi.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const ap="\\[\\]\\.:\\/",op=new RegExp("["+ap+"]","g"),lp="[^"+ap+"]",cp="[^"+ap.replace("\\.","")+"]",hp=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",lp)+/(WCOD+)?/.source.replace("WCOD",cp)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",lp)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",lp)+"$"),up=["material","materials","bones","map"];class dp{constructor(t,e,n){this.path=e,this.parsedPath=n||dp.parseTrackName(e),this.node=dp.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new dp.Composite(t,e,n):new dp(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(op,"")}static parseTrackName(t){const e=hp.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==up.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new dp(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class mp{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:be,endingEnd:be};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===Ae)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=Ee,i.endingEnd=Ee):(i.endingStart=t?this.zeroSlopeAtStart?Ee:be:Te,i.endingEnd=e?this.zeroSlopeAtEnd?Ee:be:Te)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const fp=new Float32Array(1);class gp extends En{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new sp(dp.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Ap).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Cp=new gi,Pp=new gi;class Lp{constructor(t=new gi,e=new gi){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Cp.subVectors(t,this.start),Pp.subVectors(this.end,this.start);const n=Pp.dot(Pp);let i=Pp.dot(Cp)/n;return e&&(i=Pn(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Ip=new gi;class Up extends vr{constructor(t,e){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new hs,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{rm.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(rm,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class lm extends Dc{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new hs;n.setAttribute("position",new es(e,3)),n.setAttribute("color",new es([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new wc({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Or,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class cm{constructor(){this.type="ShapePath",this.color=new Or,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new gh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=eu.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new Ch,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t Date: Tue, 9 May 2023 17:25:40 -0700 Subject: [PATCH 40/40] added screenshot --- .../webgl_loader_gltf_anisotropy.jpg | Bin 0 -> 12381 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/screenshots/webgl_loader_gltf_anisotropy.jpg diff --git a/examples/screenshots/webgl_loader_gltf_anisotropy.jpg b/examples/screenshots/webgl_loader_gltf_anisotropy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c01f70f8f5df60da067df5c06bc2f4a989e192e GIT binary patch literal 12381 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

    bXD2@R;{lT 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

  • 4Mbz2 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�_M%rffxexpOlQHQS!aIOeAhJ!%64S_kkxrz9F{ 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 z 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