super-three 0.154.1 → 0.155.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 (106) hide show
  1. package/build/three.cjs +256 -38
  2. package/build/three.js +256 -38
  3. package/build/three.min.js +1 -1
  4. package/build/three.module.js +255 -39
  5. package/build/three.module.min.js +1 -1
  6. package/examples/jsm/controls/OrbitControls.js +143 -21
  7. package/examples/jsm/environments/RoomEnvironment.js +1 -1
  8. package/examples/jsm/exporters/USDZExporter.js +1 -0
  9. package/examples/jsm/interactive/SelectionHelper.js +7 -0
  10. package/examples/jsm/loaders/FBXLoader.js +1 -1
  11. package/examples/jsm/loaders/GLTFLoader.js +8 -3
  12. package/examples/jsm/loaders/KTX2Loader.js +4 -4
  13. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  14. package/examples/jsm/loaders/NRRDLoader.js +3 -3
  15. package/examples/jsm/loaders/PLYLoader.js +1 -1
  16. package/examples/jsm/loaders/TGALoader.js +10 -10
  17. package/examples/jsm/loaders/VRMLLoader.js +1 -1
  18. package/examples/jsm/misc/GPUComputationRenderer.js +0 -9
  19. package/examples/jsm/misc/Volume.js +4 -6
  20. package/examples/jsm/nodes/Nodes.js +5 -6
  21. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +1 -1
  22. package/examples/jsm/nodes/accessors/CubeTextureNode.js +2 -0
  23. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +14 -1
  24. package/examples/jsm/nodes/accessors/InstanceNode.js +8 -8
  25. package/examples/jsm/nodes/accessors/MaterialNode.js +34 -44
  26. package/examples/jsm/nodes/accessors/SceneNode.js +6 -0
  27. package/examples/jsm/nodes/accessors/TextureNode.js +48 -7
  28. package/examples/jsm/nodes/core/LightingModel.js +7 -9
  29. package/examples/jsm/nodes/core/Node.js +11 -2
  30. package/examples/jsm/nodes/core/PropertyNode.js +4 -0
  31. package/examples/jsm/nodes/display/BumpMapNode.js +77 -0
  32. package/examples/jsm/nodes/display/NormalMapNode.js +2 -2
  33. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -2
  34. package/examples/jsm/nodes/functions/BSDF/Schlick_to_F0.js +13 -0
  35. package/examples/jsm/nodes/functions/PhongLightingModel.js +53 -14
  36. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +236 -97
  37. package/examples/jsm/nodes/geometry/RangeNode.js +2 -2
  38. package/examples/jsm/nodes/gpgpu/ComputeNode.js +13 -0
  39. package/examples/jsm/nodes/lighting/AONode.js +1 -1
  40. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +58 -20
  41. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +7 -10
  42. package/examples/jsm/nodes/lighting/EnvironmentNode.js +22 -12
  43. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +1 -1
  44. package/examples/jsm/nodes/lighting/LightingContextNode.js +12 -9
  45. package/examples/jsm/nodes/lighting/PointLightNode.js +7 -10
  46. package/examples/jsm/nodes/lighting/SpotLightNode.js +7 -10
  47. package/examples/jsm/nodes/materials/Materials.js +1 -0
  48. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +34 -0
  49. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +2 -0
  50. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +2 -2
  51. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +19 -2
  52. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +2 -2
  53. package/examples/jsm/nodes/materials/NodeMaterial.js +50 -24
  54. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +2 -2
  55. package/examples/jsm/nodes/shadernode/ShaderNode.js +2 -2
  56. package/examples/jsm/objects/Reflector.js +1 -9
  57. package/examples/jsm/objects/Refractor.js +0 -8
  58. package/examples/jsm/offscreen/scene.js +0 -1
  59. package/examples/jsm/postprocessing/MaskPass.js +4 -1
  60. package/examples/jsm/postprocessing/OutputPass.js +33 -14
  61. package/examples/jsm/postprocessing/UnrealBloomPass.js +21 -17
  62. package/examples/jsm/renderers/common/Background.js +22 -20
  63. package/examples/jsm/renderers/common/Binding.js +8 -0
  64. package/examples/jsm/renderers/common/Bindings.js +2 -6
  65. package/examples/jsm/renderers/common/Geometries.js +1 -1
  66. package/examples/jsm/renderers/common/Pipelines.js +94 -45
  67. package/examples/jsm/renderers/common/RenderContext.js +1 -0
  68. package/examples/jsm/renderers/common/RenderContexts.js +16 -5
  69. package/examples/jsm/renderers/common/RenderObject.js +20 -4
  70. package/examples/jsm/renderers/common/RenderObjects.js +10 -7
  71. package/examples/jsm/renderers/common/Renderer.js +70 -39
  72. package/examples/jsm/renderers/common/Textures.js +20 -8
  73. package/examples/jsm/renderers/common/nodes/Nodes.js +15 -4
  74. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +51 -54
  75. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +33 -9
  76. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +55 -36
  77. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +83 -5
  78. package/examples/jsm/renderers/webgpu/utils/WebGPUConstants.js +24 -22
  79. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +83 -130
  80. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +35 -8
  81. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +1 -1
  82. package/examples/jsm/shaders/OutputShader.js +19 -2
  83. package/examples/jsm/utils/BufferGeometryUtils.js +13 -4
  84. package/examples/jsm/webxr/OculusHandPointerModel.js +2 -2
  85. package/package.json +2 -2
  86. package/src/Three.js +2 -0
  87. package/src/animation/PropertyBinding.js +1 -1
  88. package/src/cameras/CubeCamera.js +1 -4
  89. package/src/constants.js +1 -1
  90. package/src/core/BufferAttribute.js +20 -0
  91. package/src/core/Object3D.js +1 -1
  92. package/src/core/RenderTarget.js +122 -0
  93. package/src/geometries/CapsuleGeometry.js +1 -1
  94. package/src/loaders/DataTextureLoader.js +21 -2
  95. package/src/renderers/WebGLMultipleRenderTargets.js +0 -2
  96. package/src/renderers/WebGLRenderTarget.js +3 -110
  97. package/src/renderers/WebGLRenderer.js +62 -8
  98. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +1 -2
  99. package/src/renderers/webgl/WebGLGeometries.js +5 -1
  100. package/src/renderers/webgl/WebGLMaterials.js +1 -1
  101. package/src/renderers/webgl/WebGLPrograms.js +14 -2
  102. package/src/renderers/webgl/WebGLTextures.js +97 -12
  103. package/src/textures/CompressedCubeTexture.js +19 -0
  104. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +0 -30
  105. package/examples/jsm/renderers/common/RenderTarget.js +0 -15
  106. package/examples/jsm/renderers/common/nodes/NodeRender.js +0 -302
package/build/three.js CHANGED
@@ -10,7 +10,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
10
10
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.THREE = {}));
11
11
  })(this, (function (exports) { 'use strict';
12
12
 
13
- const REVISION = '154';
13
+ const REVISION = '155';
14
14
 
15
15
  const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
16
16
  const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -2890,13 +2890,13 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
2890
2890
  * Texture parameters for an auto-generated target texture
2891
2891
  * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers
2892
2892
  */
2893
- class WebGLRenderTarget extends EventDispatcher {
2893
+ class RenderTarget extends EventDispatcher {
2894
2894
 
2895
2895
  constructor( width = 1, height = 1, options = {} ) {
2896
2896
 
2897
2897
  super();
2898
2898
 
2899
- this.isWebGLRenderTarget = true;
2899
+ this.isRenderTarget = true;
2900
2900
 
2901
2901
  this.width = width;
2902
2902
  this.height = height;
@@ -2999,6 +2999,18 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
2999
2999
 
3000
3000
  }
3001
3001
 
3002
+ class WebGLRenderTarget extends RenderTarget {
3003
+
3004
+ constructor( width = 1, height = 1, options = {} ) {
3005
+
3006
+ super( width, height, options );
3007
+
3008
+ this.isWebGLRenderTarget = true;
3009
+
3010
+ }
3011
+
3012
+ }
3013
+
3002
3014
  class DataArrayTexture extends Texture {
3003
3015
 
3004
3016
  constructor( data = null, width = 1, height = 1, depth = 1 ) {
@@ -3133,8 +3145,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
3133
3145
  this.viewport.set( 0, 0, width, height );
3134
3146
  this.scissor.set( 0, 0, width, height );
3135
3147
 
3136
- return this;
3137
-
3138
3148
  }
3139
3149
 
3140
3150
  copy( source ) {
@@ -8032,7 +8042,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
8032
8042
  this.frustumCulled = source.frustumCulled;
8033
8043
  this.renderOrder = source.renderOrder;
8034
8044
 
8035
- this.animations = source.animations;
8045
+ this.animations = source.animations.slice();
8036
8046
 
8037
8047
  this.userData = JSON.parse( JSON.stringify( source.userData ) );
8038
8048
 
@@ -9924,6 +9934,26 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
9924
9934
 
9925
9935
  }
9926
9936
 
9937
+ getComponent( index, component ) {
9938
+
9939
+ let value = this.array[ index * this.itemSize + component ];
9940
+
9941
+ if ( this.normalized ) value = denormalize( value, this.array );
9942
+
9943
+ return value;
9944
+
9945
+ }
9946
+
9947
+ setComponent( index, component, value ) {
9948
+
9949
+ if ( this.normalized ) value = normalize( value, this.array );
9950
+
9951
+ this.array[ index * this.itemSize + component ] = value;
9952
+
9953
+ return this;
9954
+
9955
+ }
9956
+
9927
9957
  getX( index ) {
9928
9958
 
9929
9959
  let x = this.array[ index * this.itemSize ];
@@ -12706,10 +12736,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
12706
12736
 
12707
12737
  const currentRenderTarget = renderer.getRenderTarget();
12708
12738
 
12709
- const currentToneMapping = renderer.toneMapping;
12710
12739
  const currentXrEnabled = renderer.xr.enabled;
12711
12740
 
12712
- renderer.toneMapping = NoToneMapping;
12713
12741
  renderer.xr.enabled = false;
12714
12742
 
12715
12743
  const generateMipmaps = renderTarget.texture.generateMipmaps;
@@ -12738,7 +12766,6 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
12738
12766
 
12739
12767
  renderer.setRenderTarget( currentRenderTarget );
12740
12768
 
12741
- renderer.toneMapping = currentToneMapping;
12742
12769
  renderer.xr.enabled = currentXrEnabled;
12743
12770
 
12744
12771
  renderTarget.texture.needsPMREMUpdate = true;
@@ -13661,7 +13688,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
13661
13688
 
13662
13689
  var bsdfs = "float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated";
13663
13690
 
13664
- var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\t return vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";
13691
+ var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";
13665
13692
 
13666
13693
  var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif";
13667
13694
 
@@ -17289,7 +17316,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
17289
17316
 
17290
17317
  }
17291
17318
 
17292
- } else {
17319
+ } else if ( geometryPosition !== undefined ) {
17293
17320
 
17294
17321
  const array = geometryPosition.array;
17295
17322
  version = geometryPosition.version;
@@ -17304,6 +17331,10 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
17304
17331
 
17305
17332
  }
17306
17333
 
17334
+ } else {
17335
+
17336
+ return;
17337
+
17307
17338
  }
17308
17339
 
17309
17340
  const attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );
@@ -20311,6 +20342,18 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
20311
20342
  const HAS_ATTRIBUTE_UV2 = !! geometry.attributes.uv2;
20312
20343
  const HAS_ATTRIBUTE_UV3 = !! geometry.attributes.uv3;
20313
20344
 
20345
+ let toneMapping = NoToneMapping;
20346
+
20347
+ if ( material.toneMapped ) {
20348
+
20349
+ if ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {
20350
+
20351
+ toneMapping = renderer.toneMapping;
20352
+
20353
+ }
20354
+
20355
+ }
20356
+
20314
20357
  const parameters = {
20315
20358
 
20316
20359
  isWebGL2: IS_WEBGL2,
@@ -20471,8 +20514,8 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
20471
20514
  shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,
20472
20515
  shadowMapType: renderer.shadowMap.type,
20473
20516
 
20474
- toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,
20475
- useLegacyLights: renderer.useLegacyLights,
20517
+ toneMapping: toneMapping,
20518
+ useLegacyLights: renderer._useLegacyLights,
20476
20519
 
20477
20520
  premultipliedAlpha: material.premultipliedAlpha,
20478
20521
 
@@ -23644,6 +23687,17 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
23644
23687
 
23645
23688
  }
23646
23689
 
23690
+ if ( glFormat === _gl.RED_INTEGER ) {
23691
+
23692
+ if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;
23693
+ if ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;
23694
+ if ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;
23695
+ if ( glType === _gl.BYTE ) internalFormat = _gl.R8I;
23696
+ if ( glType === _gl.SHORT ) internalFormat = _gl.R16I;
23697
+ if ( glType === _gl.INT ) internalFormat = _gl.R32I;
23698
+
23699
+ }
23700
+
23647
23701
  if ( glFormat === _gl.RG ) {
23648
23702
 
23649
23703
  if ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;
@@ -23820,14 +23874,32 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
23820
23874
 
23821
23875
  for ( let i = 0; i < 6; i ++ ) {
23822
23876
 
23823
- _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );
23877
+ if ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {
23878
+
23879
+ for ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );
23880
+
23881
+ } else {
23882
+
23883
+ _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );
23884
+
23885
+ }
23886
+
23824
23887
  if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );
23825
23888
 
23826
23889
  }
23827
23890
 
23828
23891
  } else {
23829
23892
 
23830
- _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );
23893
+ if ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {
23894
+
23895
+ for ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );
23896
+
23897
+ } else {
23898
+
23899
+ _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );
23900
+
23901
+ }
23902
+
23831
23903
  if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );
23832
23904
  if ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );
23833
23905
 
@@ -24802,7 +24874,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
24802
24874
  // Render targets
24803
24875
 
24804
24876
  // Setup storage for target texture and bind it to correct framebuffer
24805
- function setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget ) {
24877
+ function setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {
24806
24878
 
24807
24879
  const glFormat = utils.convert( texture.format, texture.colorSpace );
24808
24880
  const glType = utils.convert( texture.type );
@@ -24811,13 +24883,16 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
24811
24883
 
24812
24884
  if ( ! renderTargetProperties.__hasExternalTextures ) {
24813
24885
 
24886
+ const width = Math.max( 1, renderTarget.width >> level );
24887
+ const height = Math.max( 1, renderTarget.height >> level );
24888
+
24814
24889
  if ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {
24815
24890
 
24816
- state.texImage3D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null );
24891
+ state.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );
24817
24892
 
24818
24893
  } else {
24819
24894
 
24820
- state.texImage2D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
24895
+ state.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );
24821
24896
 
24822
24897
  }
24823
24898
 
@@ -24831,7 +24906,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
24831
24906
 
24832
24907
  } else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753
24833
24908
 
24834
- _gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, 0 );
24909
+ _gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, level );
24835
24910
 
24836
24911
  }
24837
24912
 
@@ -25052,7 +25127,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
25052
25127
 
25053
25128
  if ( colorTexture !== undefined ) {
25054
25129
 
25055
- setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D );
25130
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );
25056
25131
 
25057
25132
  }
25058
25133
 
@@ -25099,13 +25174,41 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
25099
25174
 
25100
25175
  for ( let i = 0; i < 6; i ++ ) {
25101
25176
 
25102
- renderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();
25177
+ if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
25178
+
25179
+ renderTargetProperties.__webglFramebuffer[ i ] = [];
25180
+
25181
+ for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
25182
+
25183
+ renderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();
25184
+
25185
+ }
25186
+
25187
+ } else {
25188
+
25189
+ renderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();
25190
+
25191
+ }
25103
25192
 
25104
25193
  }
25105
25194
 
25106
25195
  } else {
25107
25196
 
25108
- renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();
25197
+ if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
25198
+
25199
+ renderTargetProperties.__webglFramebuffer = [];
25200
+
25201
+ for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
25202
+
25203
+ renderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();
25204
+
25205
+ }
25206
+
25207
+ } else {
25208
+
25209
+ renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();
25210
+
25211
+ }
25109
25212
 
25110
25213
  if ( isMultipleRenderTargets ) {
25111
25214
 
@@ -25185,7 +25288,19 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
25185
25288
 
25186
25289
  for ( let i = 0; i < 6; i ++ ) {
25187
25290
 
25188
- setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i );
25291
+ if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
25292
+
25293
+ for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
25294
+
25295
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );
25296
+
25297
+ }
25298
+
25299
+ } else {
25300
+
25301
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );
25302
+
25303
+ }
25189
25304
 
25190
25305
  }
25191
25306
 
@@ -25208,7 +25323,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
25208
25323
 
25209
25324
  state.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );
25210
25325
  setTextureParameters( _gl.TEXTURE_2D, attachment, supportsMips );
25211
- setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D );
25326
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );
25212
25327
 
25213
25328
  if ( textureNeedsGenerateMipmaps( attachment, supportsMips ) ) {
25214
25329
 
@@ -25240,7 +25355,20 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
25240
25355
 
25241
25356
  state.bindTexture( glTextureType, textureProperties.__webglTexture );
25242
25357
  setTextureParameters( glTextureType, texture, supportsMips );
25243
- setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType );
25358
+
25359
+ if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
25360
+
25361
+ for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
25362
+
25363
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );
25364
+
25365
+ }
25366
+
25367
+ } else {
25368
+
25369
+ setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );
25370
+
25371
+ }
25244
25372
 
25245
25373
  if ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {
25246
25374
 
@@ -27755,7 +27883,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
27755
27883
  uniforms.lightMap.value = material.lightMap;
27756
27884
 
27757
27885
  // artist-friendly light intensity scaling factor
27758
- const scaleFactor = ( renderer.useLegacyLights === true ) ? Math.PI : 1;
27886
+ const scaleFactor = ( renderer._useLegacyLights === true ) ? Math.PI : 1;
27759
27887
 
27760
27888
  uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;
27761
27889
 
@@ -28594,7 +28722,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
28594
28722
 
28595
28723
  // physical lights
28596
28724
 
28597
- this.useLegacyLights = true;
28725
+ this._useLegacyLights = false;
28598
28726
 
28599
28727
  // tone mapping
28600
28728
 
@@ -29237,6 +29365,9 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
29237
29365
  if ( material.wireframe === true ) {
29238
29366
 
29239
29367
  index = geometries.getWireframeAttribute( geometry );
29368
+
29369
+ if ( index === undefined ) return;
29370
+
29240
29371
  rangeFactor = 2;
29241
29372
 
29242
29373
  }
@@ -29401,7 +29532,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
29401
29532
 
29402
29533
  } );
29403
29534
 
29404
- currentRenderState.setupLights( _this.useLegacyLights );
29535
+ currentRenderState.setupLights( _this._useLegacyLights );
29405
29536
 
29406
29537
  scene.traverse( function ( object ) {
29407
29538
 
@@ -29554,7 +29685,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
29554
29685
 
29555
29686
  // render scene
29556
29687
 
29557
- currentRenderState.setupLights( _this.useLegacyLights );
29688
+ currentRenderState.setupLights( _this._useLegacyLights );
29558
29689
 
29559
29690
  if ( camera.isArrayCamera ) {
29560
29691
 
@@ -30048,6 +30179,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30048
30179
 
30049
30180
  materialProperties.outputColorSpace = parameters.outputColorSpace;
30050
30181
  materialProperties.instancing = parameters.instancing;
30182
+ materialProperties.instancingColor = parameters.instancingColor;
30051
30183
  materialProperties.skinning = parameters.skinning;
30052
30184
  materialProperties.morphTargets = parameters.morphTargets;
30053
30185
  materialProperties.morphNormals = parameters.morphNormals;
@@ -30076,7 +30208,18 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30076
30208
  const morphTargets = !! geometry.morphAttributes.position;
30077
30209
  const morphNormals = !! geometry.morphAttributes.normal;
30078
30210
  const morphColors = !! geometry.morphAttributes.color;
30079
- const toneMapping = material.toneMapped ? _this.toneMapping : NoToneMapping;
30211
+
30212
+ let toneMapping = NoToneMapping;
30213
+
30214
+ if ( material.toneMapped ) {
30215
+
30216
+ if ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {
30217
+
30218
+ toneMapping = _this.toneMapping;
30219
+
30220
+ }
30221
+
30222
+ }
30080
30223
 
30081
30224
  const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;
30082
30225
  const morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;
@@ -30131,6 +30274,14 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30131
30274
 
30132
30275
  needsProgramChange = true;
30133
30276
 
30277
+ } else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {
30278
+
30279
+ needsProgramChange = true;
30280
+
30281
+ } else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {
30282
+
30283
+ needsProgramChange = true;
30284
+
30134
30285
  } else if ( materialProperties.envMap !== envMap ) {
30135
30286
 
30136
30287
  needsProgramChange = true;
@@ -30572,7 +30723,16 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30572
30723
 
30573
30724
  if ( renderTarget.isWebGLCubeRenderTarget ) {
30574
30725
 
30575
- framebuffer = __webglFramebuffer[ activeCubeFace ];
30726
+ if ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {
30727
+
30728
+ framebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];
30729
+
30730
+ } else {
30731
+
30732
+ framebuffer = __webglFramebuffer[ activeCubeFace ];
30733
+
30734
+ }
30735
+
30576
30736
  isCube = true;
30577
30737
 
30578
30738
  } else if ( ( capabilities.isWebGL2 && renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {
@@ -30581,7 +30741,15 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30581
30741
 
30582
30742
  } else {
30583
30743
 
30584
- framebuffer = __webglFramebuffer;
30744
+ if ( Array.isArray( __webglFramebuffer ) ) {
30745
+
30746
+ framebuffer = __webglFramebuffer[ activeMipmapLevel ];
30747
+
30748
+ } else {
30749
+
30750
+ framebuffer = __webglFramebuffer;
30751
+
30752
+ }
30585
30753
 
30586
30754
  }
30587
30755
 
@@ -30880,14 +31048,14 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30880
31048
 
30881
31049
  get physicallyCorrectLights() { // @deprecated, r150
30882
31050
 
30883
- console.warn( 'THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
31051
+ console.warn( 'THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
30884
31052
  return ! this.useLegacyLights;
30885
31053
 
30886
31054
  }
30887
31055
 
30888
31056
  set physicallyCorrectLights( value ) { // @deprecated, r150
30889
31057
 
30890
- console.warn( 'THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
31058
+ console.warn( 'THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
30891
31059
  this.useLegacyLights = ! value;
30892
31060
 
30893
31061
  }
@@ -30906,6 +31074,20 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
30906
31074
 
30907
31075
  }
30908
31076
 
31077
+ get useLegacyLights() { // @deprecated, r155
31078
+
31079
+ console.warn( 'THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.' );
31080
+ return this._useLegacyLights;
31081
+
31082
+ }
31083
+
31084
+ set useLegacyLights( value ) { // @deprecated, r155
31085
+
31086
+ console.warn( 'THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.' );
31087
+ this._useLegacyLights = value;
31088
+
31089
+ }
31090
+
30909
31091
  }
30910
31092
 
30911
31093
  class WebGL1Renderer extends WebGLRenderer {}
@@ -33366,6 +33548,21 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
33366
33548
 
33367
33549
  }
33368
33550
 
33551
+ class CompressedCubeTexture extends CompressedTexture {
33552
+
33553
+ constructor( images, format, type ) {
33554
+
33555
+ super( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );
33556
+
33557
+ this.isCompressedCubeTexture = true;
33558
+ this.isCubeTexture = true;
33559
+
33560
+ this.image = images;
33561
+
33562
+ }
33563
+
33564
+ }
33565
+
33369
33566
  class CanvasTexture extends Texture {
33370
33567
 
33371
33568
  constructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
@@ -35476,7 +35673,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
35476
35673
 
35477
35674
  this.parameters = {
35478
35675
  radius: radius,
35479
- height: length,
35676
+ length: length,
35480
35677
  capSegments: capSegments,
35481
35678
  radialSegments: radialSegments,
35482
35679
  };
@@ -42926,9 +43123,28 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
42926
43123
  loader.setWithCredentials( scope.withCredentials );
42927
43124
  loader.load( url, function ( buffer ) {
42928
43125
 
42929
- const texData = scope.parse( buffer );
43126
+ let texData;
43127
+
43128
+ try {
43129
+
43130
+ texData = scope.parse( buffer );
43131
+
43132
+ } catch ( error ) {
43133
+
43134
+ if ( onError !== undefined ) {
43135
+
43136
+ onError( error );
43137
+
43138
+ } else {
43139
+
43140
+ console.error( error );
43141
+ return;
43142
+
43143
+ }
43144
+
43145
+ }
42930
43146
 
42931
- if ( ! texData ) return;
43147
+ if ( ! texData ) return onError(); // TODO: Remove this when all loaders properly throw errors
42932
43148
 
42933
43149
  if ( texData.image !== undefined ) {
42934
43150
 
@@ -47465,7 +47681,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
47465
47681
  // ensure there is a value node
47466
47682
  if ( ! targetObject ) {
47467
47683
 
47468
- console.error( 'THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\'t found.' );
47684
+ console.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );
47469
47685
  return;
47470
47686
 
47471
47687
  }
@@ -51930,6 +52146,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
51930
52146
  exports.ColorKeyframeTrack = ColorKeyframeTrack;
51931
52147
  exports.ColorManagement = ColorManagement;
51932
52148
  exports.CompressedArrayTexture = CompressedArrayTexture;
52149
+ exports.CompressedCubeTexture = CompressedCubeTexture;
51933
52150
  exports.CompressedTexture = CompressedTexture;
51934
52151
  exports.CompressedTextureLoader = CompressedTextureLoader;
51935
52152
  exports.ConeGeometry = ConeGeometry;
@@ -52181,6 +52398,7 @@ console.warn( 'Scripts "build/three.js" and "build/three.min.js" are deprecated
52181
52398
  exports.RedFormat = RedFormat;
52182
52399
  exports.RedIntegerFormat = RedIntegerFormat;
52183
52400
  exports.ReinhardToneMapping = ReinhardToneMapping;
52401
+ exports.RenderTarget = RenderTarget;
52184
52402
  exports.RepeatWrapping = RepeatWrapping;
52185
52403
  exports.ReplaceStencilOp = ReplaceStencilOp;
52186
52404
  exports.ReverseSubtractEquation = ReverseSubtractEquation;