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.
- package/build/three.cjs +407 -1014
- package/build/three.module.js +406 -1013
- package/build/three.module.min.js +1 -1
- package/examples/jsm/controls/TransformControls.js +3 -3
- package/examples/jsm/exporters/GLTFExporter.js +21 -4
- package/examples/jsm/exporters/USDZExporter.js +15 -0
- package/examples/jsm/geometries/TextGeometry.js +10 -2
- package/examples/jsm/interactive/HTMLMesh.js +7 -9
- package/examples/jsm/libs/fflate.module.js +694 -496
- package/examples/jsm/lines/LineMaterial.js +0 -2
- package/examples/jsm/loaders/3MFLoader.js +2 -0
- package/examples/jsm/loaders/EXRLoader.js +89 -19
- package/examples/jsm/loaders/FBXLoader.js +1 -1
- package/examples/jsm/loaders/GLTFLoader.js +6 -0
- package/examples/jsm/loaders/KTX2Loader.js +2 -6
- package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
- package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
- package/examples/jsm/loaders/LUTImageLoader.js +0 -14
- package/examples/jsm/loaders/RGBMLoader.js +16 -0
- package/examples/jsm/misc/GPUComputationRenderer.js +0 -6
- package/examples/jsm/nodes/Nodes.js +6 -1
- package/examples/jsm/nodes/accessors/BatchNode.js +78 -0
- package/examples/jsm/nodes/accessors/InstanceNode.js +25 -2
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/MorphNode.js +13 -3
- package/examples/jsm/nodes/accessors/NormalNode.js +12 -2
- package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/RendererReferenceNode.js +29 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +30 -7
- package/examples/jsm/nodes/core/Node.js +55 -4
- package/examples/jsm/nodes/core/NodeBuilder.js +21 -16
- package/examples/jsm/nodes/core/NodeFrame.js +10 -10
- package/examples/jsm/nodes/core/NodeUtils.js +2 -2
- package/examples/jsm/nodes/core/UniformNode.js +20 -0
- package/examples/jsm/nodes/display/PassNode.js +17 -1
- package/examples/jsm/nodes/display/ToneMappingNode.js +8 -4
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -0
- package/examples/jsm/nodes/fog/FogExp2Node.js +4 -5
- package/examples/jsm/nodes/fog/FogNode.js +13 -3
- package/examples/jsm/nodes/fog/FogRangeNode.js +4 -3
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +12 -69
- package/examples/jsm/nodes/materials/NodeMaterial.js +33 -11
- package/examples/jsm/nodes/pmrem/PMREMNode.js +193 -0
- package/examples/jsm/nodes/pmrem/PMREMUtils.js +288 -0
- package/examples/jsm/nodes/shadernode/ShaderNode.js +1 -1
- package/examples/jsm/nodes/utils/EquirectUVNode.js +1 -1
- package/examples/jsm/objects/QuadMesh.js +7 -23
- package/examples/jsm/physics/RapierPhysics.js +4 -4
- package/examples/jsm/postprocessing/GlitchPass.js +0 -3
- package/examples/jsm/postprocessing/LUTPass.js +5 -71
- package/examples/jsm/postprocessing/SAOPass.js +0 -1
- package/examples/jsm/postprocessing/SSAOPass.js +0 -3
- package/examples/jsm/renderers/common/Animation.js +3 -0
- package/examples/jsm/renderers/common/Background.js +5 -5
- package/examples/jsm/renderers/common/Info.js +11 -19
- package/examples/jsm/renderers/common/PostProcessing.js +12 -4
- package/examples/jsm/renderers/common/RenderContext.js +1 -1
- package/examples/jsm/renderers/common/RenderObject.js +4 -4
- package/examples/jsm/renderers/common/RenderObjects.js +1 -1
- package/examples/jsm/renderers/common/Renderer.js +25 -8
- package/examples/jsm/renderers/common/extras/PMREMGenerator.js +777 -0
- package/examples/jsm/renderers/common/nodes/Nodes.js +5 -18
- package/examples/jsm/renderers/webgl/WebGLBackend.js +148 -24
- package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +141 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +3 -3
- package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +1 -1
- package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +1 -0
- package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +43 -0
- package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +3 -2
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -2
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +54 -25
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +5 -3
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +25 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -4
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +92 -18
- package/examples/jsm/utils/GPUStatsPanel.js +10 -45
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/package.json +1 -1
- package/src/Three.js +0 -1
- package/src/animation/AnimationClip.js +1 -1
- package/src/constants.js +3 -3
- package/src/core/Object3D.js +10 -7
- package/src/extras/PMREMGenerator.js +9 -0
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/ShaderMaterial.js +0 -4
- package/src/math/Spherical.js +4 -5
- package/src/objects/BatchedMesh.js +4 -3
- package/src/objects/InstancedMesh.js +10 -0
- package/src/renderers/WebGLRenderer.js +55 -114
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +32 -22
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib.js +1 -1
- package/src/renderers/shaders/UniformsUtils.js +10 -1
- package/src/renderers/webgl/WebGLAttributes.js +6 -33
- package/src/renderers/webgl/WebGLBindingStates.js +14 -51
- package/src/renderers/webgl/WebGLBufferRenderer.js +3 -25
- package/src/renderers/webgl/WebGLCapabilities.js +2 -12
- package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
- package/src/renderers/webgl/WebGLExtensions.js +4 -19
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +3 -25
- package/src/renderers/webgl/WebGLLights.js +6 -32
- package/src/renderers/webgl/WebGLMaterials.js +2 -3
- package/src/renderers/webgl/WebGLMorphtargets.js +79 -217
- package/src/renderers/webgl/WebGLProgram.js +18 -47
- package/src/renderers/webgl/WebGLPrograms.js +20 -32
- package/src/renderers/webgl/WebGLRenderStates.js +8 -6
- package/src/renderers/webgl/WebGLState.js +15 -59
- package/src/renderers/webgl/WebGLTextures.js +75 -237
- package/src/renderers/webgl/WebGLUniformsGroups.js +1 -1
- package/src/renderers/webgl/WebGLUtils.js +6 -57
- package/src/renderers/webxr/WebXRDepthSensing.js +2 -3
- package/src/renderers/webxr/WebXRManager.js +2 -2
- package/src/scenes/Scene.js +7 -1
- package/src/textures/Texture.js +11 -1
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
- package/src/renderers/WebGL1Renderer.js +0 -7
|
@@ -178,8 +178,8 @@ class TransformControls extends Object3D {
|
|
|
178
178
|
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
// updateMatrixWorld
|
|
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(
|
|
218
|
+
super.updateMatrixWorld( force );
|
|
219
219
|
|
|
220
220
|
}
|
|
221
221
|
|
|
@@ -982,7 +982,17 @@ class GLTFWriter {
|
|
|
982
982
|
|
|
983
983
|
}
|
|
984
984
|
|
|
985
|
-
|
|
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 =
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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;
|