super-three 0.162.0 → 0.164.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 +847 -1226
- package/build/three.module.js +846 -1225
- package/build/three.module.min.js +2 -2
- package/examples/jsm/animation/CCDIKSolver.js +4 -2
- package/examples/jsm/controls/TransformControls.js +3 -3
- package/examples/jsm/exporters/GLTFExporter.js +66 -5
- package/examples/jsm/exporters/USDZExporter.js +22 -1
- package/examples/jsm/geometries/TextGeometry.js +10 -2
- package/examples/jsm/interactive/HTMLMesh.js +7 -9
- package/examples/jsm/libs/draco/README.md +2 -2
- 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 +351 -97
- package/examples/jsm/loaders/FBXLoader.js +1 -1
- package/examples/jsm/loaders/GLTFLoader.js +59 -0
- package/examples/jsm/loaders/KTX2Loader.js +3 -10
- 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/loaders/VRMLLoader.js +1 -1
- package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
- package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
- package/examples/jsm/math/Octree.js +26 -20
- package/examples/jsm/misc/GPUComputationRenderer.js +0 -6
- package/examples/jsm/nodes/Nodes.js +10 -4
- package/examples/jsm/nodes/accessors/AccessorsUtils.js +16 -1
- package/examples/jsm/nodes/accessors/BatchNode.js +78 -0
- package/examples/jsm/nodes/accessors/ClippingNode.js +3 -2
- package/examples/jsm/nodes/accessors/InstanceNode.js +25 -2
- package/examples/jsm/nodes/accessors/MaterialNode.js +107 -3
- 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/StorageBufferNode.js +9 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +51 -10
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionNode.js +0 -8
- package/examples/jsm/nodes/core/Node.js +63 -4
- package/examples/jsm/nodes/core/NodeBuilder.js +26 -25
- package/examples/jsm/nodes/core/NodeFrame.js +10 -10
- package/examples/jsm/nodes/core/NodeUtils.js +2 -2
- package/examples/jsm/nodes/core/OutputStructNode.js +2 -1
- package/examples/jsm/nodes/core/PropertyNode.js +10 -0
- package/examples/jsm/nodes/core/UniformNode.js +20 -0
- package/examples/jsm/nodes/display/BumpMapNode.js +7 -26
- package/examples/jsm/nodes/display/FrontFacingNode.js +13 -0
- package/examples/jsm/nodes/display/PassNode.js +17 -1
- package/examples/jsm/nodes/display/ToneMappingNode.js +8 -4
- package/examples/jsm/nodes/display/ViewportDepthNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportNode.js +4 -2
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -0
- package/examples/jsm/nodes/display/ViewportTextureNode.js +4 -1
- 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/functions/BSDF/BRDF_GGX.js +26 -7
- package/examples/jsm/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +1 -3
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
- package/examples/jsm/nodes/functions/PhongLightingModel.js +1 -1
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +164 -10
- package/examples/jsm/nodes/functions/ShadowMaskModel.js +31 -0
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +19 -5
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +22 -70
- package/examples/jsm/nodes/lighting/IrradianceNode.js +24 -0
- package/examples/jsm/nodes/lighting/LightsNode.js +11 -1
- package/examples/jsm/nodes/lighting/PointLightNode.js +2 -1
- package/examples/jsm/nodes/lighting/SpotLightNode.js +2 -1
- package/examples/jsm/nodes/materials/Line2NodeMaterial.js +10 -6
- package/examples/jsm/nodes/materials/Materials.js +1 -0
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -2
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +76 -5
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +11 -4
- package/examples/jsm/nodes/materials/NodeMaterial.js +55 -43
- package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +34 -0
- 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 +3 -9
- package/examples/jsm/nodes/utils/EquirectUVNode.js +1 -1
- package/examples/jsm/objects/QuadMesh.js +7 -23
- package/examples/jsm/physics/JoltPhysics.js +281 -0
- 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/RenderTransitionPass.js +193 -0
- 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 +8 -8
- package/examples/jsm/renderers/common/ClippingContext.js +1 -1
- 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/RenderList.js +1 -1
- package/examples/jsm/renderers/common/RenderObject.js +47 -5
- package/examples/jsm/renderers/common/RenderObjects.js +1 -1
- package/examples/jsm/renderers/common/Renderer.js +153 -21
- package/examples/jsm/renderers/common/Textures.js +1 -1
- package/examples/jsm/renderers/common/extras/PMREMGenerator.js +773 -0
- package/examples/jsm/renderers/common/nodes/Nodes.js +34 -63
- package/examples/jsm/renderers/webgl/WebGLBackend.js +146 -36
- package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +145 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +9 -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 +64 -7
- package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +6 -23
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +77 -60
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -4
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +29 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -4
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +92 -18
- package/examples/jsm/transpiler/GLSLDecoder.js +1 -1
- package/examples/jsm/transpiler/ShaderToyDecoder.js +1 -1
- package/examples/jsm/utils/GPUStatsPanel.js +10 -45
- package/examples/jsm/utils/SceneUtils.js +60 -1
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +3 -2
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
- 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/core/RenderTarget.js +8 -0
- package/src/extras/PMREMGenerator.js +21 -11
- package/src/loaders/FileLoader.js +1 -1
- package/src/loaders/MaterialLoader.js +1 -0
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/Material.js +2 -0
- package/src/materials/MeshPhysicalMaterial.js +20 -0
- package/src/materials/ShaderMaterial.js +0 -4
- package/src/math/Spherical.js +4 -5
- package/src/objects/BatchedMesh.js +27 -3
- package/src/objects/InstancedMesh.js +10 -0
- package/src/objects/Line.js +66 -43
- package/src/renderers/WebGLRenderer.js +130 -158
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
- 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 +17 -9
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
- package/src/renderers/shaders/ShaderChunk.js +0 -2
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
- package/src/renderers/shaders/ShaderLib.js +2 -1
- package/src/renderers/shaders/UniformsUtils.js +10 -1
- package/src/renderers/webgl/WebGLAttributes.js +6 -33
- package/src/renderers/webgl/WebGLBackground.js +18 -3
- package/src/renderers/webgl/WebGLBindingStates.js +14 -51
- package/src/renderers/webgl/WebGLBufferRenderer.js +35 -21
- package/src/renderers/webgl/WebGLCapabilities.js +35 -13
- package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
- package/src/renderers/webgl/WebGLExtensions.js +4 -19
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +35 -21
- package/src/renderers/webgl/WebGLLights.js +6 -32
- package/src/renderers/webgl/WebGLMaterials.js +8 -3
- package/src/renderers/webgl/WebGLMorphtargets.js +79 -217
- package/src/renderers/webgl/WebGLProgram.js +21 -52
- package/src/renderers/webgl/WebGLPrograms.js +24 -31
- package/src/renderers/webgl/WebGLRenderStates.js +13 -7
- package/src/renderers/webgl/WebGLShadowMap.js +25 -25
- package/src/renderers/webgl/WebGLState.js +15 -59
- package/src/renderers/webgl/WebGLTextures.js +138 -292
- package/src/renderers/webgl/WebGLUniformsGroups.js +1 -1
- package/src/renderers/webgl/WebGLUtils.js +9 -78
- package/src/renderers/webxr/WebXRDepthSensing.js +2 -3
- package/src/renderers/webxr/WebXRManager.js +4 -6
- package/src/scenes/Scene.js +7 -1
- package/src/textures/Texture.js +11 -1
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -320
- package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +0 -26
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -794
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +0 -51
- package/src/renderers/WebGL1Renderer.js +0 -7
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
|
@@ -213,11 +213,12 @@ class CCDIKSolver {
|
|
|
213
213
|
/**
|
|
214
214
|
* Creates Helper
|
|
215
215
|
*
|
|
216
|
+
* @param {number} sphereSize
|
|
216
217
|
* @return {CCDIKHelper}
|
|
217
218
|
*/
|
|
218
|
-
createHelper() {
|
|
219
|
+
createHelper( sphereSize ) {
|
|
219
220
|
|
|
220
|
-
return new CCDIKHelper( this.mesh, this.iks );
|
|
221
|
+
return new CCDIKHelper( this.mesh, this.iks, sphereSize );
|
|
221
222
|
|
|
222
223
|
}
|
|
223
224
|
|
|
@@ -280,6 +281,7 @@ function setPositionOfBoneToAttributeArray( array, index, bone, matrixWorldInv )
|
|
|
280
281
|
*
|
|
281
282
|
* @param {SkinnedMesh} mesh
|
|
282
283
|
* @param {Array<Object>} iks
|
|
284
|
+
* @param {number} sphereSize
|
|
283
285
|
*/
|
|
284
286
|
class CCDIKHelper extends Object3D {
|
|
285
287
|
|
|
@@ -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
|
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
Quaternion,
|
|
27
27
|
} from 'three';
|
|
28
28
|
import { decompress } from './../utils/TextureUtils.js';
|
|
29
|
+
import { REVISION } from '../../../src/constants.js';
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
/**
|
|
@@ -111,6 +112,12 @@ class GLTFExporter {
|
|
|
111
112
|
|
|
112
113
|
} );
|
|
113
114
|
|
|
115
|
+
this.register( function ( writer ) {
|
|
116
|
+
|
|
117
|
+
return new GLTFMaterialsDispersionExtension( writer );
|
|
118
|
+
|
|
119
|
+
} );
|
|
120
|
+
|
|
114
121
|
this.register( function ( writer ) {
|
|
115
122
|
|
|
116
123
|
return new GLTFMaterialsIridescenceExtension( writer );
|
|
@@ -496,7 +503,7 @@ class GLTFWriter {
|
|
|
496
503
|
this.json = {
|
|
497
504
|
asset: {
|
|
498
505
|
version: '2.0',
|
|
499
|
-
generator: 'THREE.GLTFExporter'
|
|
506
|
+
generator: 'THREE.GLTFExporter r' + REVISION
|
|
500
507
|
}
|
|
501
508
|
};
|
|
502
509
|
|
|
@@ -982,7 +989,17 @@ class GLTFWriter {
|
|
|
982
989
|
|
|
983
990
|
}
|
|
984
991
|
|
|
985
|
-
|
|
992
|
+
let byteStride = attribute.itemSize * componentSize;
|
|
993
|
+
|
|
994
|
+
if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
|
|
995
|
+
|
|
996
|
+
// Each element of a vertex attribute MUST be aligned to 4-byte boundaries
|
|
997
|
+
// inside a bufferView
|
|
998
|
+
byteStride = Math.ceil( byteStride / 4 ) * 4;
|
|
999
|
+
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
const byteLength = getPaddedBufferSize( count * byteStride );
|
|
986
1003
|
const dataView = new DataView( new ArrayBuffer( byteLength ) );
|
|
987
1004
|
let offset = 0;
|
|
988
1005
|
|
|
@@ -1047,6 +1064,12 @@ class GLTFWriter {
|
|
|
1047
1064
|
|
|
1048
1065
|
}
|
|
1049
1066
|
|
|
1067
|
+
if ( ( offset % byteStride ) !== 0 ) {
|
|
1068
|
+
|
|
1069
|
+
offset += byteStride - ( offset % byteStride );
|
|
1070
|
+
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1050
1073
|
}
|
|
1051
1074
|
|
|
1052
1075
|
const bufferViewDef = {
|
|
@@ -1062,7 +1085,7 @@ class GLTFWriter {
|
|
|
1062
1085
|
if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
|
|
1063
1086
|
|
|
1064
1087
|
// Only define byteStride for vertex attributes.
|
|
1065
|
-
bufferViewDef.byteStride =
|
|
1088
|
+
bufferViewDef.byteStride = byteStride;
|
|
1066
1089
|
|
|
1067
1090
|
}
|
|
1068
1091
|
|
|
@@ -1290,13 +1313,14 @@ class GLTFWriter {
|
|
|
1290
1313
|
|
|
1291
1314
|
if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
|
|
1292
1315
|
( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
|
|
1293
|
-
( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap )
|
|
1316
|
+
( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||
|
|
1317
|
+
( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ) {
|
|
1294
1318
|
|
|
1295
1319
|
ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
|
|
1296
1320
|
|
|
1297
1321
|
} else {
|
|
1298
1322
|
|
|
1299
|
-
throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement or
|
|
1323
|
+
throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.' );
|
|
1300
1324
|
|
|
1301
1325
|
}
|
|
1302
1326
|
|
|
@@ -2616,6 +2640,9 @@ class GLTFMaterialsClearcoatExtension {
|
|
|
2616
2640
|
index: writer.processTexture( material.clearcoatNormalMap ),
|
|
2617
2641
|
texCoord: material.clearcoatNormalMap.channel
|
|
2618
2642
|
};
|
|
2643
|
+
|
|
2644
|
+
if ( material.clearcoatNormalScale.x !== 1 ) clearcoatNormalMapDef.scale = material.clearcoatNormalScale.x;
|
|
2645
|
+
|
|
2619
2646
|
writer.applyTextureTransform( clearcoatNormalMapDef, material.clearcoatNormalMap );
|
|
2620
2647
|
extensionDef.clearcoatNormalTexture = clearcoatNormalMapDef;
|
|
2621
2648
|
|
|
@@ -2631,6 +2658,40 @@ class GLTFMaterialsClearcoatExtension {
|
|
|
2631
2658
|
|
|
2632
2659
|
}
|
|
2633
2660
|
|
|
2661
|
+
/**
|
|
2662
|
+
* Materials dispersion Extension
|
|
2663
|
+
*
|
|
2664
|
+
* Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_dispersion
|
|
2665
|
+
*/
|
|
2666
|
+
class GLTFMaterialsDispersionExtension {
|
|
2667
|
+
|
|
2668
|
+
constructor( writer ) {
|
|
2669
|
+
|
|
2670
|
+
this.writer = writer;
|
|
2671
|
+
this.name = 'KHR_materials_dispersion';
|
|
2672
|
+
|
|
2673
|
+
}
|
|
2674
|
+
|
|
2675
|
+
writeMaterial( material, materialDef ) {
|
|
2676
|
+
|
|
2677
|
+
if ( ! material.isMeshPhysicalMaterial || material.dispersion === 0 ) return;
|
|
2678
|
+
|
|
2679
|
+
const writer = this.writer;
|
|
2680
|
+
const extensionsUsed = writer.extensionsUsed;
|
|
2681
|
+
|
|
2682
|
+
const extensionDef = {};
|
|
2683
|
+
|
|
2684
|
+
extensionDef.dispersion = material.dispersion;
|
|
2685
|
+
|
|
2686
|
+
materialDef.extensions = materialDef.extensions || {};
|
|
2687
|
+
materialDef.extensions[ this.name ] = extensionDef;
|
|
2688
|
+
|
|
2689
|
+
extensionsUsed[ this.name ] = true;
|
|
2690
|
+
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2634
2695
|
/**
|
|
2635
2696
|
* Iridescence Materials Extension
|
|
2636
2697
|
*
|
|
@@ -12,7 +12,13 @@ import { decompress } from './../utils/TextureUtils.js';
|
|
|
12
12
|
|
|
13
13
|
class USDZExporter {
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
parse( scene, onDone, onError, options ) {
|
|
16
|
+
|
|
17
|
+
this.parseAsync( scene, options ).then( onDone ).catch( onError );
|
|
18
|
+
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async parseAsync( scene, options = {} ) {
|
|
16
22
|
|
|
17
23
|
options = Object.assign( {
|
|
18
24
|
ar: {
|
|
@@ -409,6 +415,21 @@ function buildPrimvars( attributes ) {
|
|
|
409
415
|
|
|
410
416
|
}
|
|
411
417
|
|
|
418
|
+
// vertex colors
|
|
419
|
+
|
|
420
|
+
const colorAttribute = attributes.color;
|
|
421
|
+
|
|
422
|
+
if ( colorAttribute !== undefined ) {
|
|
423
|
+
|
|
424
|
+
const count = colorAttribute.count;
|
|
425
|
+
|
|
426
|
+
string += `
|
|
427
|
+
color3f[] primvars:displayColor = [${buildVector3Array( colorAttribute, count )}] (
|
|
428
|
+
interpolation = "vertex"
|
|
429
|
+
)`;
|
|
430
|
+
|
|
431
|
+
}
|
|
432
|
+
|
|
412
433
|
return string;
|
|
413
434
|
|
|
414
435
|
}
|
|
@@ -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;
|
|
@@ -17,10 +17,10 @@ Each file is provided in two variations:
|
|
|
17
17
|
* **Default:** Latest stable builds, tracking the project's [master branch](https://github.com/google/draco).
|
|
18
18
|
* **glTF:** Builds targeted by the [glTF mesh compression extension](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression), tracking the [corresponding Draco branch](https://github.com/google/draco/tree/gltf_2.0_draco_extension).
|
|
19
19
|
|
|
20
|
-
Either variation may be used with `
|
|
20
|
+
Either variation may be used with `DRACOLoader`:
|
|
21
21
|
|
|
22
22
|
```js
|
|
23
|
-
var dracoLoader = new
|
|
23
|
+
var dracoLoader = new DRACOLoader();
|
|
24
24
|
dracoLoader.setDecoderPath('path/to/decoders/');
|
|
25
25
|
dracoLoader.setDecoderConfig({type: 'js'}); // (Optional) Override detection of WASM support.
|
|
26
26
|
```
|