super-three 0.162.0 → 0.163.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 (122) hide show
  1. package/build/three.cjs +407 -1014
  2. package/build/three.module.js +406 -1013
  3. package/build/three.module.min.js +1 -1
  4. package/examples/jsm/controls/TransformControls.js +3 -3
  5. package/examples/jsm/exporters/GLTFExporter.js +21 -4
  6. package/examples/jsm/exporters/USDZExporter.js +15 -0
  7. package/examples/jsm/geometries/TextGeometry.js +10 -2
  8. package/examples/jsm/interactive/HTMLMesh.js +7 -9
  9. package/examples/jsm/libs/fflate.module.js +694 -496
  10. package/examples/jsm/lines/LineMaterial.js +0 -2
  11. package/examples/jsm/loaders/3MFLoader.js +2 -0
  12. package/examples/jsm/loaders/EXRLoader.js +89 -19
  13. package/examples/jsm/loaders/FBXLoader.js +1 -1
  14. package/examples/jsm/loaders/GLTFLoader.js +6 -0
  15. package/examples/jsm/loaders/KTX2Loader.js +2 -6
  16. package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
  17. package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
  18. package/examples/jsm/loaders/LUTImageLoader.js +0 -14
  19. package/examples/jsm/loaders/RGBMLoader.js +16 -0
  20. package/examples/jsm/misc/GPUComputationRenderer.js +0 -6
  21. package/examples/jsm/nodes/Nodes.js +6 -1
  22. package/examples/jsm/nodes/accessors/BatchNode.js +78 -0
  23. package/examples/jsm/nodes/accessors/InstanceNode.js +25 -2
  24. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +1 -1
  25. package/examples/jsm/nodes/accessors/MorphNode.js +13 -3
  26. package/examples/jsm/nodes/accessors/NormalNode.js +12 -2
  27. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  28. package/examples/jsm/nodes/accessors/RendererReferenceNode.js +29 -0
  29. package/examples/jsm/nodes/accessors/TextureNode.js +30 -7
  30. package/examples/jsm/nodes/core/Node.js +55 -4
  31. package/examples/jsm/nodes/core/NodeBuilder.js +21 -16
  32. package/examples/jsm/nodes/core/NodeFrame.js +10 -10
  33. package/examples/jsm/nodes/core/NodeUtils.js +2 -2
  34. package/examples/jsm/nodes/core/UniformNode.js +20 -0
  35. package/examples/jsm/nodes/display/PassNode.js +17 -1
  36. package/examples/jsm/nodes/display/ToneMappingNode.js +8 -4
  37. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -0
  38. package/examples/jsm/nodes/fog/FogExp2Node.js +4 -5
  39. package/examples/jsm/nodes/fog/FogNode.js +13 -3
  40. package/examples/jsm/nodes/fog/FogRangeNode.js +4 -3
  41. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  42. package/examples/jsm/nodes/lighting/EnvironmentNode.js +12 -69
  43. package/examples/jsm/nodes/materials/NodeMaterial.js +33 -11
  44. package/examples/jsm/nodes/pmrem/PMREMNode.js +193 -0
  45. package/examples/jsm/nodes/pmrem/PMREMUtils.js +288 -0
  46. package/examples/jsm/nodes/shadernode/ShaderNode.js +1 -1
  47. package/examples/jsm/nodes/utils/EquirectUVNode.js +1 -1
  48. package/examples/jsm/objects/QuadMesh.js +7 -23
  49. package/examples/jsm/physics/RapierPhysics.js +4 -4
  50. package/examples/jsm/postprocessing/GlitchPass.js +0 -3
  51. package/examples/jsm/postprocessing/LUTPass.js +5 -71
  52. package/examples/jsm/postprocessing/SAOPass.js +0 -1
  53. package/examples/jsm/postprocessing/SSAOPass.js +0 -3
  54. package/examples/jsm/renderers/common/Animation.js +3 -0
  55. package/examples/jsm/renderers/common/Background.js +5 -5
  56. package/examples/jsm/renderers/common/Info.js +11 -19
  57. package/examples/jsm/renderers/common/PostProcessing.js +12 -4
  58. package/examples/jsm/renderers/common/RenderContext.js +1 -1
  59. package/examples/jsm/renderers/common/RenderObject.js +4 -4
  60. package/examples/jsm/renderers/common/RenderObjects.js +1 -1
  61. package/examples/jsm/renderers/common/Renderer.js +25 -8
  62. package/examples/jsm/renderers/common/extras/PMREMGenerator.js +777 -0
  63. package/examples/jsm/renderers/common/nodes/Nodes.js +5 -18
  64. package/examples/jsm/renderers/webgl/WebGLBackend.js +148 -24
  65. package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +141 -0
  66. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +3 -3
  67. package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +1 -1
  68. package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +1 -0
  69. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +43 -0
  70. package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +3 -2
  71. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -2
  72. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -2
  73. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +54 -25
  74. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +5 -3
  75. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +25 -0
  76. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -4
  77. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +92 -18
  78. package/examples/jsm/utils/GPUStatsPanel.js +10 -45
  79. package/examples/jsm/utils/TextureUtils.js +1 -1
  80. package/package.json +1 -1
  81. package/src/Three.js +0 -1
  82. package/src/animation/AnimationClip.js +1 -1
  83. package/src/constants.js +3 -3
  84. package/src/core/Object3D.js +10 -7
  85. package/src/extras/PMREMGenerator.js +9 -0
  86. package/src/loaders/ObjectLoader.js +2 -0
  87. package/src/materials/ShaderMaterial.js +0 -4
  88. package/src/math/Spherical.js +4 -5
  89. package/src/objects/BatchedMesh.js +4 -3
  90. package/src/objects/InstancedMesh.js +10 -0
  91. package/src/renderers/WebGLRenderer.js +55 -114
  92. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
  93. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  94. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
  95. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
  96. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +32 -22
  97. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  98. package/src/renderers/shaders/ShaderLib.js +1 -1
  99. package/src/renderers/shaders/UniformsUtils.js +10 -1
  100. package/src/renderers/webgl/WebGLAttributes.js +6 -33
  101. package/src/renderers/webgl/WebGLBindingStates.js +14 -51
  102. package/src/renderers/webgl/WebGLBufferRenderer.js +3 -25
  103. package/src/renderers/webgl/WebGLCapabilities.js +2 -12
  104. package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
  105. package/src/renderers/webgl/WebGLExtensions.js +4 -19
  106. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +3 -25
  107. package/src/renderers/webgl/WebGLLights.js +6 -32
  108. package/src/renderers/webgl/WebGLMaterials.js +2 -3
  109. package/src/renderers/webgl/WebGLMorphtargets.js +79 -217
  110. package/src/renderers/webgl/WebGLProgram.js +18 -47
  111. package/src/renderers/webgl/WebGLPrograms.js +20 -32
  112. package/src/renderers/webgl/WebGLRenderStates.js +8 -6
  113. package/src/renderers/webgl/WebGLState.js +15 -59
  114. package/src/renderers/webgl/WebGLTextures.js +75 -237
  115. package/src/renderers/webgl/WebGLUniformsGroups.js +1 -1
  116. package/src/renderers/webgl/WebGLUtils.js +6 -57
  117. package/src/renderers/webxr/WebXRDepthSensing.js +2 -3
  118. package/src/renderers/webxr/WebXRManager.js +2 -2
  119. package/src/scenes/Scene.js +7 -1
  120. package/src/textures/Texture.js +11 -1
  121. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
  122. package/src/renderers/WebGL1Renderer.js +0 -7
@@ -178,8 +178,8 @@ class TransformControls extends Object3D {
178
178
 
179
179
  }
180
180
 
181
- // updateMatrixWorld updates key transformation variables
182
- updateMatrixWorld() {
181
+ // updateMatrixWorld updates key transformation variables
182
+ updateMatrixWorld( force ) {
183
183
 
184
184
  if ( this.object !== undefined ) {
185
185
 
@@ -215,7 +215,7 @@ class TransformControls extends Object3D {
215
215
 
216
216
  }
217
217
 
218
- super.updateMatrixWorld( this );
218
+ super.updateMatrixWorld( force );
219
219
 
220
220
  }
221
221
 
@@ -982,7 +982,17 @@ class GLTFWriter {
982
982
 
983
983
  }
984
984
 
985
- const byteLength = getPaddedBufferSize( count * attribute.itemSize * componentSize );
985
+ let byteStride = attribute.itemSize * componentSize;
986
+
987
+ if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
988
+
989
+ // Each element of a vertex attribute MUST be aligned to 4-byte boundaries
990
+ // inside a bufferView
991
+ byteStride = Math.ceil( byteStride / 4 ) * 4;
992
+
993
+ }
994
+
995
+ const byteLength = getPaddedBufferSize( count * byteStride );
986
996
  const dataView = new DataView( new ArrayBuffer( byteLength ) );
987
997
  let offset = 0;
988
998
 
@@ -1047,6 +1057,12 @@ class GLTFWriter {
1047
1057
 
1048
1058
  }
1049
1059
 
1060
+ if ( ( offset % byteStride ) !== 0 ) {
1061
+
1062
+ offset += byteStride - ( offset % byteStride );
1063
+
1064
+ }
1065
+
1050
1066
  }
1051
1067
 
1052
1068
  const bufferViewDef = {
@@ -1062,7 +1078,7 @@ class GLTFWriter {
1062
1078
  if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
1063
1079
 
1064
1080
  // Only define byteStride for vertex attributes.
1065
- bufferViewDef.byteStride = attribute.itemSize * componentSize;
1081
+ bufferViewDef.byteStride = byteStride;
1066
1082
 
1067
1083
  }
1068
1084
 
@@ -1290,13 +1306,14 @@ class GLTFWriter {
1290
1306
 
1291
1307
  if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
1292
1308
  ( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
1293
- ( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {
1309
+ ( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||
1310
+ ( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ) {
1294
1311
 
1295
1312
  ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
1296
1313
 
1297
1314
  } else {
1298
1315
 
1299
- throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement or ImageBitmap.' );
1316
+ throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.' );
1300
1317
 
1301
1318
  }
1302
1319
 
@@ -409,6 +409,21 @@ function buildPrimvars( attributes ) {
409
409
 
410
410
  }
411
411
 
412
+ // vertex colors
413
+
414
+ const colorAttribute = attributes.color;
415
+
416
+ if ( colorAttribute !== undefined ) {
417
+
418
+ const count = colorAttribute.count;
419
+
420
+ string += `
421
+ color3f[] primvars:displayColor = [${buildVector3Array( colorAttribute, count )}] (
422
+ interpolation = "vertex"
423
+ )`;
424
+
425
+ }
426
+
412
427
  return string;
413
428
 
414
429
  }
@@ -5,7 +5,7 @@
5
5
  * font: <THREE.Font>, // font
6
6
  *
7
7
  * size: <float>, // size of the text
8
- * height: <float>, // thickness to extrude text
8
+ * depth: <float>, // thickness to extrude text
9
9
  * curveSegments: <int>, // number of points on the curves
10
10
  *
11
11
  * bevelEnabled: <bool>, // turn on bevel
@@ -35,7 +35,15 @@ class TextGeometry extends ExtrudeGeometry {
35
35
 
36
36
  // translate parameters to ExtrudeGeometry API
37
37
 
38
- parameters.depth = parameters.height !== undefined ? parameters.height : 50;
38
+ if ( parameters.depth === undefined && parameters.height !== undefined ) {
39
+
40
+ console.warn( 'THREE.TextGeometry: .height is now depreciated. Please use .depth instead' ); // @deprecated, r163
41
+
42
+ }
43
+
44
+ parameters.depth = parameters.depth !== undefined ?
45
+ parameters.depth : parameters.height !== undefined ?
46
+ parameters.height : 50;
39
47
 
40
48
  // defaults
41
49
 
@@ -241,6 +241,13 @@ function html2canvas( element ) {
241
241
 
242
242
  function drawElement( element, style ) {
243
243
 
244
+ // Do not render invisible elements, comments and scripts.
245
+ if ( element.nodeType === Node.COMMENT_NODE || element.nodeName === 'SCRIPT' || ( element.style && element.style.display === 'none' ) ) {
246
+
247
+ return;
248
+
249
+ }
250
+
244
251
  let x = 0, y = 0, width = 0, height = 0;
245
252
 
246
253
  if ( element.nodeType === Node.TEXT_NODE ) {
@@ -258,14 +265,9 @@ function html2canvas( element ) {
258
265
 
259
266
  drawText( style, x, y, element.nodeValue.trim() );
260
267
 
261
- } else if ( element.nodeType === Node.COMMENT_NODE ) {
262
-
263
- return;
264
-
265
268
  } else if ( element instanceof HTMLCanvasElement ) {
266
269
 
267
270
  // Canvas element
268
- if ( element.style.display === 'none' ) return;
269
271
 
270
272
  const rect = element.getBoundingClientRect();
271
273
 
@@ -280,8 +282,6 @@ function html2canvas( element ) {
280
282
 
281
283
  } else if ( element instanceof HTMLImageElement ) {
282
284
 
283
- if ( element.style.display === 'none' ) return;
284
-
285
285
  const rect = element.getBoundingClientRect();
286
286
 
287
287
  x = rect.left - offset.left - 0.5;
@@ -293,8 +293,6 @@ function html2canvas( element ) {
293
293
 
294
294
  } else {
295
295
 
296
- if ( element.style.display === 'none' ) return;
297
-
298
296
  const rect = element.getBoundingClientRect();
299
297
 
300
298
  x = rect.left - offset.left - 0.5;