super-three 0.155.0 → 0.156.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/build/three.cjs +107 -125
  2. package/build/three.js +107 -125
  3. package/build/three.min.js +1 -1
  4. package/build/three.module.js +104 -126
  5. package/build/three.module.min.js +1 -1
  6. package/examples/jsm/controls/OrbitControls.js +13 -5
  7. package/examples/jsm/csm/CSMShader.js +35 -1
  8. package/examples/jsm/libs/tween.module.js +790 -735
  9. package/examples/jsm/libs/utif.module.js +1644 -1558
  10. package/examples/jsm/loaders/DDSLoader.js +46 -3
  11. package/examples/jsm/loaders/EXRLoader.js +4 -4
  12. package/examples/jsm/loaders/FBXLoader.js +2 -0
  13. package/examples/jsm/loaders/GLTFLoader.js +17 -7
  14. package/examples/jsm/loaders/KTX2Loader.js +126 -77
  15. package/examples/jsm/loaders/LogLuvLoader.js +2 -2
  16. package/examples/jsm/loaders/MMDLoader.js +10 -7
  17. package/examples/jsm/loaders/RGBELoader.js +48 -66
  18. package/examples/jsm/loaders/STLLoader.js +7 -0
  19. package/examples/jsm/nodes/Nodes.js +3 -0
  20. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +28 -2
  21. package/examples/jsm/nodes/accessors/CubeTextureNode.js +18 -3
  22. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +2 -4
  23. package/examples/jsm/nodes/accessors/LineMaterialNode.js +31 -0
  24. package/examples/jsm/nodes/accessors/MaterialNode.js +55 -33
  25. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +3 -0
  26. package/examples/jsm/nodes/accessors/Object3DNode.js +2 -2
  27. package/examples/jsm/nodes/accessors/TextureNode.js +6 -2
  28. package/examples/jsm/nodes/accessors/TextureStoreNode.js +29 -0
  29. package/examples/jsm/nodes/core/AttributeNode.js +2 -2
  30. package/examples/jsm/nodes/core/Node.js +17 -1
  31. package/examples/jsm/nodes/core/NodeBuilder.js +94 -12
  32. package/examples/jsm/nodes/core/NodeUniform.js +1 -1
  33. package/examples/jsm/nodes/core/OutputStructNode.js +58 -0
  34. package/examples/jsm/nodes/core/PropertyNode.js +2 -0
  35. package/examples/jsm/nodes/core/StackNode.js +4 -4
  36. package/examples/jsm/nodes/core/StructTypeNode.js +24 -0
  37. package/examples/jsm/nodes/display/ViewportNode.js +19 -5
  38. package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +54 -0
  39. package/examples/jsm/nodes/materials/Materials.js +1 -0
  40. package/examples/jsm/nodes/materials/NodeMaterial.js +12 -3
  41. package/examples/jsm/nodes/math/HashNode.js +35 -0
  42. package/examples/jsm/nodes/shadernode/ShaderNode.js +4 -0
  43. package/examples/jsm/nodes/utils/SplitNode.js +1 -1
  44. package/examples/jsm/postprocessing/FilmPass.js +3 -5
  45. package/examples/jsm/postprocessing/RenderPass.js +30 -12
  46. package/examples/jsm/postprocessing/SAOPass.js +23 -98
  47. package/examples/jsm/postprocessing/SSAOPass.js +10 -30
  48. package/examples/jsm/renderers/common/Backend.js +11 -8
  49. package/examples/jsm/renderers/common/Binding.js +6 -0
  50. package/examples/jsm/renderers/common/Bindings.js +5 -4
  51. package/examples/jsm/renderers/common/Pipelines.js +2 -2
  52. package/examples/jsm/renderers/common/RenderContexts.js +26 -1
  53. package/examples/jsm/renderers/common/RenderList.js +12 -4
  54. package/examples/jsm/renderers/common/RenderObject.js +6 -2
  55. package/examples/jsm/renderers/common/Renderer.js +12 -3
  56. package/examples/jsm/renderers/common/SampledTexture.js +2 -1
  57. package/examples/jsm/renderers/common/Sampler.js +1 -1
  58. package/examples/jsm/renderers/common/StorageBuffer.js +1 -1
  59. package/examples/jsm/renderers/common/Textures.js +155 -15
  60. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +2 -2
  61. package/examples/jsm/renderers/common/nodes/NodeSampler.js +1 -1
  62. package/examples/jsm/renderers/common/nodes/Nodes.js +43 -9
  63. package/examples/jsm/renderers/webgl/WebGLBackend.js +607 -0
  64. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +118 -17
  65. package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +84 -0
  66. package/examples/jsm/renderers/webgl/utils/WebGLExtensions.js +26 -0
  67. package/examples/jsm/renderers/webgl/utils/WebGLState.js +529 -0
  68. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +199 -0
  69. package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +242 -0
  70. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +340 -0
  71. package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/WebGLNodeBuilder.js +1 -1
  72. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +279 -40
  73. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +18 -2
  74. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +89 -59
  75. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +2 -2
  76. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +15 -2
  77. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +34 -9
  78. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +26 -135
  79. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +6 -5
  80. package/examples/jsm/shaders/FilmShader.js +11 -54
  81. package/examples/jsm/shaders/SAOShader.js +0 -13
  82. package/examples/jsm/shaders/SSAOShader.js +33 -26
  83. package/package.json +1 -1
  84. package/src/Three.js +1 -0
  85. package/src/audio/Audio.js +6 -0
  86. package/src/constants.js +4 -1
  87. package/src/core/Object3D.js +1 -14
  88. package/src/core/UniformsGroup.js +2 -2
  89. package/src/loaders/DataTextureLoader.js +0 -2
  90. package/src/materials/Material.js +2 -2
  91. package/src/math/Vector2.js +2 -2
  92. package/src/math/Vector3.js +3 -3
  93. package/src/math/Vector4.js +4 -4
  94. package/src/objects/Line.js +1 -1
  95. package/src/objects/Mesh.js +1 -1
  96. package/src/objects/Points.js +1 -1
  97. package/src/renderers/WebGLRenderer.js +21 -49
  98. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +11 -1
  99. package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -0
  100. package/src/renderers/webgl/WebGLBackground.js +5 -14
  101. package/src/renderers/webgl/WebGLProgram.js +2 -0
  102. package/src/renderers/webgl/WebGLPrograms.js +5 -1
  103. package/src/renderers/webgl/WebGLTextures.js +4 -4
  104. package/src/renderers/webgl/WebGLUtils.js +27 -20
  105. package/src/textures/Texture.js +2 -2
  106. package/src/utils.js +9 -1
  107. /package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/SlotNode.js +0 -0
  108. /package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/WebGLNodes.js +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2010-2023 Three.js Authors
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- const REVISION = '155';
6
+ const REVISION = '156';
7
7
 
8
8
  const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
9
9
  const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -127,6 +127,8 @@ const RGBA_ASTC_10x10_Format = 37819;
127
127
  const RGBA_ASTC_12x10_Format = 37820;
128
128
  const RGBA_ASTC_12x12_Format = 37821;
129
129
  const RGBA_BPTC_Format = 36492;
130
+ const RGB_BPTC_SIGNED_Format = 36494;
131
+ const RGB_BPTC_UNSIGNED_Format = 36495;
130
132
  const RED_RGTC1_Format = 36283;
131
133
  const SIGNED_RED_RGTC1_Format = 36284;
132
134
  const RED_GREEN_RGTC2_Format = 36285;
@@ -159,6 +161,7 @@ const NoColorSpace = '';
159
161
  const SRGBColorSpace = 'srgb';
160
162
  const LinearSRGBColorSpace = 'srgb-linear';
161
163
  const DisplayP3ColorSpace = 'display-p3';
164
+ const LinearDisplayP3ColorSpace = 'display-p3-linear';
162
165
 
163
166
  const ZeroStencilOp = 0;
164
167
  const KeepStencilOp = 7680;
@@ -919,8 +922,8 @@ class Vector2 {
919
922
 
920
923
  roundToZero() {
921
924
 
922
- this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
923
- this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
925
+ this.x = Math.trunc( this.x );
926
+ this.y = Math.trunc( this.y );
924
927
 
925
928
  return this;
926
929
 
@@ -1528,6 +1531,14 @@ function createElementNS( name ) {
1528
1531
 
1529
1532
  }
1530
1533
 
1534
+ function createCanvasElement() {
1535
+
1536
+ const canvas = createElementNS( 'canvas' );
1537
+ canvas.style.display = 'block';
1538
+ return canvas;
1539
+
1540
+ }
1541
+
1531
1542
  const _cache = {};
1532
1543
 
1533
1544
  function warnOnce( message ) {
@@ -1919,7 +1930,7 @@ function serializeImage( image ) {
1919
1930
 
1920
1931
  }
1921
1932
 
1922
- let textureId = 0;
1933
+ let _textureId = 0;
1923
1934
 
1924
1935
  class Texture extends EventDispatcher {
1925
1936
 
@@ -1929,7 +1940,7 @@ class Texture extends EventDispatcher {
1929
1940
 
1930
1941
  this.isTexture = true;
1931
1942
 
1932
- Object.defineProperty( this, 'id', { value: textureId ++ } );
1943
+ Object.defineProperty( this, 'id', { value: _textureId ++ } );
1933
1944
 
1934
1945
  this.uuid = generateUUID();
1935
1946
 
@@ -2739,10 +2750,10 @@ class Vector4 {
2739
2750
 
2740
2751
  roundToZero() {
2741
2752
 
2742
- this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
2743
- this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
2744
- this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );
2745
- this.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w );
2753
+ this.x = Math.trunc( this.x );
2754
+ this.y = Math.trunc( this.y );
2755
+ this.z = Math.trunc( this.z );
2756
+ this.w = Math.trunc( this.w );
2746
2757
 
2747
2758
  return this;
2748
2759
 
@@ -4250,9 +4261,9 @@ class Vector3 {
4250
4261
 
4251
4262
  roundToZero() {
4252
4263
 
4253
- this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
4254
- this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
4255
- this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );
4264
+ this.x = Math.trunc( this.x );
4265
+ this.y = Math.trunc( this.y );
4266
+ this.z = Math.trunc( this.z );
4256
4267
 
4257
4268
  return this;
4258
4269
 
@@ -7482,20 +7493,7 @@ class Object3D extends EventDispatcher {
7482
7493
 
7483
7494
  clear() {
7484
7495
 
7485
- for ( let i = 0; i < this.children.length; i ++ ) {
7486
-
7487
- const object = this.children[ i ];
7488
-
7489
- object.parent = null;
7490
-
7491
- object.dispatchEvent( _removedEvent );
7492
-
7493
- }
7494
-
7495
- this.children.length = 0;
7496
-
7497
- return this;
7498
-
7496
+ return this.remove( ... this.children );
7499
7497
 
7500
7498
  }
7501
7499
 
@@ -8386,7 +8384,7 @@ class Triangle {
8386
8384
 
8387
8385
  }
8388
8386
 
8389
- let materialId = 0;
8387
+ let _materialId = 0;
8390
8388
 
8391
8389
  class Material extends EventDispatcher {
8392
8390
 
@@ -8396,7 +8394,7 @@ class Material extends EventDispatcher {
8396
8394
 
8397
8395
  this.isMaterial = true;
8398
8396
 
8399
- Object.defineProperty( this, 'id', { value: materialId ++ } );
8397
+ Object.defineProperty( this, 'id', { value: _materialId ++ } );
8400
8398
 
8401
8399
  this.uuid = generateUUID();
8402
8400
 
@@ -10365,7 +10363,7 @@ class Float64BufferAttribute extends BufferAttribute {
10365
10363
 
10366
10364
  }
10367
10365
 
10368
- let _id$1 = 0;
10366
+ let _id$2 = 0;
10369
10367
 
10370
10368
  const _m1 = /*@__PURE__*/ new Matrix4();
10371
10369
  const _obj = /*@__PURE__*/ new Object3D();
@@ -10382,7 +10380,7 @@ class BufferGeometry extends EventDispatcher {
10382
10380
 
10383
10381
  this.isBufferGeometry = true;
10384
10382
 
10385
- Object.defineProperty( this, 'id', { value: _id$1 ++ } );
10383
+ Object.defineProperty( this, 'id', { value: _id$2 ++ } );
10386
10384
 
10387
10385
  this.uuid = generateUUID();
10388
10386
 
@@ -11487,7 +11485,7 @@ class Mesh extends Object3D {
11487
11485
 
11488
11486
  }
11489
11487
 
11490
- this.material = source.material;
11488
+ this.material = Array.isArray( source.material ) ? source.material.slice() : source.material;
11491
11489
  this.geometry = source.geometry;
11492
11490
 
11493
11491
  return this;
@@ -13777,7 +13775,7 @@ var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_
13777
13775
 
13778
13776
  var 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";
13779
13777
 
13780
- var map_fragment = "#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif";
13778
+ var 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\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif";
13781
13779
 
13782
13780
  var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif";
13783
13781
 
@@ -13871,7 +13869,7 @@ var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defin
13871
13869
 
13872
13870
  const vertex$h = "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}";
13873
13871
 
13874
- const fragment$h = "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 <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
13872
+ const fragment$h = "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 <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}";
13875
13873
 
13876
13874
  const vertex$g = "varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}";
13877
13875
 
@@ -14691,24 +14689,15 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha,
14691
14689
 
14692
14690
  }
14693
14691
 
14694
- const xr = renderer.xr;
14695
- const environmentBlendMode = xr.getEnvironmentBlendMode();
14692
+ const environmentBlendMode = renderer.xr.getEnvironmentBlendMode();
14696
14693
 
14697
- switch ( environmentBlendMode ) {
14694
+ if ( environmentBlendMode === 'additive' ) {
14698
14695
 
14699
- case 'opaque':
14700
- forceClear = true;
14701
- break;
14696
+ state.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );
14702
14697
 
14703
- case 'additive':
14704
- state.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );
14705
- forceClear = true;
14706
- break;
14698
+ } else if ( environmentBlendMode === 'alpha-blend' ) {
14707
14699
 
14708
- case 'alpha-blend':
14709
- state.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );
14710
- forceClear = true;
14711
- break;
14700
+ state.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );
14712
14701
 
14713
14702
  }
14714
14703
 
@@ -19823,6 +19812,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
19823
19812
 
19824
19813
  parameters.useLegacyLights ? '#define LEGACY_LIGHTS' : '',
19825
19814
 
19815
+ parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',
19816
+
19826
19817
  parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
19827
19818
  ( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
19828
19819
 
@@ -20057,7 +20048,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
20057
20048
 
20058
20049
  }
20059
20050
 
20060
- let _id = 0;
20051
+ let _id$1 = 0;
20061
20052
 
20062
20053
  class WebGLShaderCache {
20063
20054
 
@@ -20171,7 +20162,7 @@ class WebGLShaderStage {
20171
20162
 
20172
20163
  constructor( code ) {
20173
20164
 
20174
- this.id = _id ++;
20165
+ this.id = _id$1 ++;
20175
20166
 
20176
20167
  this.code = code;
20177
20168
  this.usedTimes = 0;
@@ -20510,6 +20501,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
20510
20501
  toneMapping: toneMapping,
20511
20502
  useLegacyLights: renderer._useLegacyLights,
20512
20503
 
20504
+ decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( material.map.colorSpace === SRGBColorSpace ),
20505
+
20513
20506
  premultipliedAlpha: material.premultipliedAlpha,
20514
20507
 
20515
20508
  doubleSided: material.side === DoubleSide,
@@ -20711,6 +20704,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
20711
20704
  _programLayers.enable( 17 );
20712
20705
  if ( parameters.pointsUvs )
20713
20706
  _programLayers.enable( 18 );
20707
+ if ( parameters.decodeVideoTexture )
20708
+ _programLayers.enable( 19 );
20714
20709
 
20715
20710
  array.push( _programLayers.mask );
20716
20711
 
@@ -24271,7 +24266,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
24271
24266
  glFormat = utils.convert( texture.format, texture.colorSpace );
24272
24267
 
24273
24268
  let glType = utils.convert( texture.type ),
24274
- glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );
24269
+ glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture );
24275
24270
 
24276
24271
  setTextureParameters( textureType, texture, supportsMips );
24277
24272
 
@@ -25550,13 +25545,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
25550
25545
  const format = texture.format;
25551
25546
  const type = texture.type;
25552
25547
 
25553
- if ( texture.isCompressedTexture === true || texture.format === _SRGBAFormat ) return image;
25548
+ if ( texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _SRGBAFormat ) return image;
25554
25549
 
25555
25550
  if ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) {
25556
25551
 
25557
25552
  // sRGB
25558
25553
 
25559
- if ( colorSpace === SRGBColorSpace ) {
25554
+ if ( colorSpace === SRGBColorSpace || colorSpace === DisplayP3ColorSpace ) {
25560
25555
 
25561
25556
  if ( isWebGL2 === false ) {
25562
25557
 
@@ -25622,6 +25617,9 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
25622
25617
 
25623
25618
  }
25624
25619
 
25620
+ const LinearTransferFunction = 0;
25621
+ const SRGBTransferFunction = 1;
25622
+
25625
25623
  function WebGLUtils( gl, extensions, capabilities ) {
25626
25624
 
25627
25625
  const isWebGL2 = capabilities.isWebGL2;
@@ -25630,6 +25628,8 @@ function WebGLUtils( gl, extensions, capabilities ) {
25630
25628
 
25631
25629
  let extension;
25632
25630
 
25631
+ const transferFunction = ( colorSpace === SRGBColorSpace || colorSpace === DisplayP3ColorSpace ) ? SRGBTransferFunction : LinearTransferFunction;
25632
+
25633
25633
  if ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE;
25634
25634
  if ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;
25635
25635
  if ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;
@@ -25696,7 +25696,7 @@ function WebGLUtils( gl, extensions, capabilities ) {
25696
25696
 
25697
25697
  if ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {
25698
25698
 
25699
- if ( colorSpace === SRGBColorSpace ) {
25699
+ if ( transferFunction === SRGBTransferFunction ) {
25700
25700
 
25701
25701
  extension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );
25702
25702
 
@@ -25781,8 +25781,8 @@ function WebGLUtils( gl, extensions, capabilities ) {
25781
25781
 
25782
25782
  if ( extension !== null ) {
25783
25783
 
25784
- if ( p === RGB_ETC2_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;
25785
- if ( p === RGBA_ETC2_EAC_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;
25784
+ if ( p === RGB_ETC2_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;
25785
+ if ( p === RGBA_ETC2_EAC_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;
25786
25786
 
25787
25787
  } else {
25788
25788
 
@@ -25804,20 +25804,20 @@ function WebGLUtils( gl, extensions, capabilities ) {
25804
25804
 
25805
25805
  if ( extension !== null ) {
25806
25806
 
25807
- if ( p === RGBA_ASTC_4x4_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;
25808
- if ( p === RGBA_ASTC_5x4_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;
25809
- if ( p === RGBA_ASTC_5x5_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;
25810
- if ( p === RGBA_ASTC_6x5_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;
25811
- if ( p === RGBA_ASTC_6x6_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;
25812
- if ( p === RGBA_ASTC_8x5_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;
25813
- if ( p === RGBA_ASTC_8x6_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;
25814
- if ( p === RGBA_ASTC_8x8_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;
25815
- if ( p === RGBA_ASTC_10x5_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;
25816
- if ( p === RGBA_ASTC_10x6_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;
25817
- if ( p === RGBA_ASTC_10x8_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;
25818
- if ( p === RGBA_ASTC_10x10_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;
25819
- if ( p === RGBA_ASTC_12x10_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;
25820
- if ( p === RGBA_ASTC_12x12_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;
25807
+ if ( p === RGBA_ASTC_4x4_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;
25808
+ if ( p === RGBA_ASTC_5x4_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;
25809
+ if ( p === RGBA_ASTC_5x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;
25810
+ if ( p === RGBA_ASTC_6x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;
25811
+ if ( p === RGBA_ASTC_6x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;
25812
+ if ( p === RGBA_ASTC_8x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;
25813
+ if ( p === RGBA_ASTC_8x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;
25814
+ if ( p === RGBA_ASTC_8x8_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;
25815
+ if ( p === RGBA_ASTC_10x5_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;
25816
+ if ( p === RGBA_ASTC_10x6_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;
25817
+ if ( p === RGBA_ASTC_10x8_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;
25818
+ if ( p === RGBA_ASTC_10x10_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;
25819
+ if ( p === RGBA_ASTC_12x10_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;
25820
+ if ( p === RGBA_ASTC_12x12_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;
25821
25821
 
25822
25822
  } else {
25823
25823
 
@@ -25829,13 +25829,15 @@ function WebGLUtils( gl, extensions, capabilities ) {
25829
25829
 
25830
25830
  // BPTC
25831
25831
 
25832
- if ( p === RGBA_BPTC_Format ) {
25832
+ if ( p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format ) {
25833
25833
 
25834
25834
  extension = extensions.get( 'EXT_texture_compression_bptc' );
25835
25835
 
25836
25836
  if ( extension !== null ) {
25837
25837
 
25838
- if ( p === RGBA_BPTC_Format ) return ( colorSpace === SRGBColorSpace ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;
25838
+ if ( p === RGBA_BPTC_Format ) return ( transferFunction === SRGBTransferFunction ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;
25839
+ if ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;
25840
+ if ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;
25839
25841
 
25840
25842
  } else {
25841
25843
 
@@ -28623,14 +28625,6 @@ function WebGLUniformsGroups( gl, info, capabilities, state ) {
28623
28625
 
28624
28626
  }
28625
28627
 
28626
- function createCanvasElement() {
28627
-
28628
- const canvas = createElementNS( 'canvas' );
28629
- canvas.style.display = 'block';
28630
- return canvas;
28631
-
28632
- }
28633
-
28634
28628
  class WebGLRenderer {
28635
28629
 
28636
28630
  constructor( parameters = {} ) {
@@ -30361,48 +30355,28 @@ class WebGLRenderer {
30361
30355
 
30362
30356
  if ( refreshProgram || _currentCamera !== camera ) {
30363
30357
 
30364
- p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
30365
-
30366
- if ( capabilities.logarithmicDepthBuffer ) {
30367
-
30368
- p_uniforms.setValue( _gl, 'logDepthBufFC',
30369
- 2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );
30358
+ // common camera uniforms
30370
30359
 
30371
- }
30360
+ p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
30361
+ p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
30372
30362
 
30373
- if ( _currentCamera !== camera ) {
30363
+ const uCamPos = p_uniforms.map.cameraPosition;
30374
30364
 
30375
- _currentCamera = camera;
30365
+ if ( uCamPos !== undefined ) {
30376
30366
 
30377
- // lighting uniforms depend on the camera so enforce an update
30378
- // now, in case this material supports lights - or later, when
30379
- // the next material that does gets activated:
30380
-
30381
- refreshMaterial = true; // set to true on material change
30382
- refreshLights = true; // remains set until update done
30367
+ uCamPos.setValue( _gl, _vector3.setFromMatrixPosition( camera.matrixWorld ) );
30383
30368
 
30384
30369
  }
30385
30370
 
30386
- // load material specific uniforms
30387
- // (shader material also gets them for the sake of genericity)
30388
-
30389
- if ( material.isShaderMaterial ||
30390
- material.isMeshPhongMaterial ||
30391
- material.isMeshToonMaterial ||
30392
- material.isMeshStandardMaterial ||
30393
- material.envMap ) {
30394
-
30395
- const uCamPos = p_uniforms.map.cameraPosition;
30396
-
30397
- if ( uCamPos !== undefined ) {
30398
-
30399
- uCamPos.setValue( _gl,
30400
- _vector3.setFromMatrixPosition( camera.matrixWorld ) );
30371
+ if ( capabilities.logarithmicDepthBuffer ) {
30401
30372
 
30402
- }
30373
+ p_uniforms.setValue( _gl, 'logDepthBufFC',
30374
+ 2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );
30403
30375
 
30404
30376
  }
30405
30377
 
30378
+ // consider moving isOrthographic to UniformLib and WebGLMaterials, see https://github.com/mrdoob/three.js/pull/26467#issuecomment-1645185067
30379
+
30406
30380
  if ( material.isMeshPhongMaterial ||
30407
30381
  material.isMeshToonMaterial ||
30408
30382
  material.isMeshLambertMaterial ||
@@ -30414,16 +30388,16 @@ class WebGLRenderer {
30414
30388
 
30415
30389
  }
30416
30390
 
30417
- if ( material.isMeshPhongMaterial ||
30418
- material.isMeshToonMaterial ||
30419
- material.isMeshLambertMaterial ||
30420
- material.isMeshBasicMaterial ||
30421
- material.isMeshStandardMaterial ||
30422
- material.isShaderMaterial ||
30423
- material.isShadowMaterial ||
30424
- object.isSkinnedMesh ) {
30391
+ if ( _currentCamera !== camera ) {
30392
+
30393
+ _currentCamera = camera;
30394
+
30395
+ // lighting uniforms depend on the camera so enforce an update
30396
+ // now, in case this material supports lights - or later, when
30397
+ // the next material that does gets activated:
30425
30398
 
30426
- p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
30399
+ refreshMaterial = true; // set to true on material change
30400
+ refreshLights = true; // remains set until update done
30427
30401
 
30428
30402
  }
30429
30403
 
@@ -32980,7 +32954,7 @@ class Line extends Object3D {
32980
32954
 
32981
32955
  super.copy( source, recursive );
32982
32956
 
32983
- this.material = source.material;
32957
+ this.material = Array.isArray( source.material ) ? source.material.slice() : source.material;
32984
32958
  this.geometry = source.geometry;
32985
32959
 
32986
32960
  return this;
@@ -33301,7 +33275,7 @@ class Points extends Object3D {
33301
33275
 
33302
33276
  super.copy( source, recursive );
33303
33277
 
33304
- this.material = source.material;
33278
+ this.material = Array.isArray( source.material ) ? source.material.slice() : source.material;
33305
33279
  this.geometry = source.geometry;
33306
33280
 
33307
33281
  return this;
@@ -43137,8 +43111,6 @@ class DataTextureLoader extends Loader {
43137
43111
 
43138
43112
  }
43139
43113
 
43140
- if ( ! texData ) return onError(); // TODO: Remove this when all loaders properly throw errors
43141
-
43142
43114
  if ( texData.image !== undefined ) {
43143
43115
 
43144
43116
  texture.image = texData.image;
@@ -46559,6 +46531,12 @@ class Audio extends Object3D {
46559
46531
 
46560
46532
  disconnect() {
46561
46533
 
46534
+ if ( this._connected === false ) {
46535
+
46536
+ return;
46537
+
46538
+ }
46539
+
46562
46540
  if ( this.filters.length > 0 ) {
46563
46541
 
46564
46542
  this.source.disconnect( this.filters[ 0 ] );
@@ -49807,7 +49785,7 @@ class Uniform {
49807
49785
 
49808
49786
  }
49809
49787
 
49810
- let id = 0;
49788
+ let _id = 0;
49811
49789
 
49812
49790
  class UniformsGroup extends EventDispatcher {
49813
49791
 
@@ -49817,7 +49795,7 @@ class UniformsGroup extends EventDispatcher {
49817
49795
 
49818
49796
  this.isUniformsGroup = true;
49819
49797
 
49820
- Object.defineProperty( this, 'id', { value: id ++ } );
49798
+ Object.defineProperty( this, 'id', { value: _id ++ } );
49821
49799
 
49822
49800
  this.name = '';
49823
49801
 
@@ -52085,4 +52063,4 @@ if ( typeof window !== 'undefined' ) {
52085
52063
 
52086
52064
  }
52087
52065
 
52088
- export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightProbe, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DisplayP3ColorSpace, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, Float64BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearEncoding, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, TwoPassDoubleSide, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL1Renderer, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, _SRGBAFormat, sRGBEncoding };
52066
+ export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightProbe, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DisplayP3ColorSpace, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, Float64BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, HemisphereLightProbe, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearDisplayP3ColorSpace, LinearEncoding, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, TwoPassDoubleSide, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL1Renderer, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, _SRGBAFormat, createCanvasElement, sRGBEncoding };