super-three 0.163.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 +473 -245
- package/build/three.module.js +473 -245
- package/build/three.module.min.js +2 -2
- package/examples/jsm/animation/CCDIKSolver.js +4 -2
- package/examples/jsm/exporters/GLTFExporter.js +45 -1
- package/examples/jsm/exporters/USDZExporter.js +7 -1
- package/examples/jsm/libs/draco/README.md +2 -2
- package/examples/jsm/loaders/EXRLoader.js +283 -99
- package/examples/jsm/loaders/GLTFLoader.js +53 -0
- package/examples/jsm/loaders/KTX2Loader.js +3 -6
- 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/nodes/Nodes.js +4 -3
- package/examples/jsm/nodes/accessors/AccessorsUtils.js +16 -1
- package/examples/jsm/nodes/accessors/ClippingNode.js +3 -2
- package/examples/jsm/nodes/accessors/MaterialNode.js +107 -3
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +9 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +21 -3
- 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 +8 -0
- package/examples/jsm/nodes/core/NodeBuilder.js +5 -9
- package/examples/jsm/nodes/core/OutputStructNode.js +2 -1
- package/examples/jsm/nodes/core/PropertyNode.js +10 -0
- package/examples/jsm/nodes/display/BumpMapNode.js +7 -26
- package/examples/jsm/nodes/display/FrontFacingNode.js +13 -0
- package/examples/jsm/nodes/display/ViewportDepthNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportNode.js +4 -2
- package/examples/jsm/nodes/display/ViewportTextureNode.js +4 -1
- 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 +18 -4
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +11 -2
- 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 +31 -41
- package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +34 -0
- package/examples/jsm/nodes/pmrem/PMREMUtils.js +1 -1
- package/examples/jsm/nodes/shadernode/ShaderNode.js +2 -8
- package/examples/jsm/physics/JoltPhysics.js +281 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +193 -0
- package/examples/jsm/renderers/common/Background.js +3 -3
- package/examples/jsm/renderers/common/ClippingContext.js +1 -1
- package/examples/jsm/renderers/common/RenderList.js +1 -1
- package/examples/jsm/renderers/common/RenderObject.js +43 -1
- package/examples/jsm/renderers/common/Renderer.js +129 -14
- package/examples/jsm/renderers/common/Textures.js +1 -1
- package/examples/jsm/renderers/common/extras/PMREMGenerator.js +13 -17
- package/examples/jsm/renderers/common/nodes/Nodes.js +31 -47
- package/examples/jsm/renderers/webgl/WebGLBackend.js +7 -21
- package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +5 -1
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +6 -0
- package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +21 -7
- package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +3 -21
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +33 -45
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +16 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +4 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +1 -1
- package/examples/jsm/transpiler/ShaderToyDecoder.js +1 -1
- package/examples/jsm/utils/SceneUtils.js +60 -1
- package/examples/jsm/webxr/OculusHandModel.js +3 -2
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
- package/package.json +1 -1
- package/src/constants.js +1 -1
- package/src/core/RenderTarget.js +8 -0
- package/src/extras/PMREMGenerator.js +12 -11
- package/src/loaders/FileLoader.js +1 -1
- package/src/loaders/MaterialLoader.js +1 -0
- package/src/materials/Material.js +2 -0
- package/src/materials/MeshPhysicalMaterial.js +20 -0
- package/src/objects/BatchedMesh.js +23 -0
- package/src/objects/Line.js +66 -43
- package/src/renderers/WebGLRenderer.js +92 -61
- 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/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 +1 -0
- package/src/renderers/webgl/WebGLBackground.js +18 -3
- package/src/renderers/webgl/WebGLBufferRenderer.js +36 -0
- package/src/renderers/webgl/WebGLCapabilities.js +33 -1
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +36 -0
- package/src/renderers/webgl/WebGLMaterials.js +6 -0
- package/src/renderers/webgl/WebGLProgram.js +3 -5
- package/src/renderers/webgl/WebGLPrograms.js +5 -0
- package/src/renderers/webgl/WebGLRenderStates.js +6 -2
- package/src/renderers/webgl/WebGLShadowMap.js +25 -25
- package/src/renderers/webgl/WebGLTextures.js +68 -60
- package/src/renderers/webgl/WebGLUtils.js +3 -21
- package/src/renderers/webxr/WebXRManager.js +2 -4
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -318
- package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +0 -26
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -792
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +0 -51
- 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
|
|
|
@@ -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
|
|
|
@@ -2633,6 +2640,9 @@ class GLTFMaterialsClearcoatExtension {
|
|
|
2633
2640
|
index: writer.processTexture( material.clearcoatNormalMap ),
|
|
2634
2641
|
texCoord: material.clearcoatNormalMap.channel
|
|
2635
2642
|
};
|
|
2643
|
+
|
|
2644
|
+
if ( material.clearcoatNormalScale.x !== 1 ) clearcoatNormalMapDef.scale = material.clearcoatNormalScale.x;
|
|
2645
|
+
|
|
2636
2646
|
writer.applyTextureTransform( clearcoatNormalMapDef, material.clearcoatNormalMap );
|
|
2637
2647
|
extensionDef.clearcoatNormalTexture = clearcoatNormalMapDef;
|
|
2638
2648
|
|
|
@@ -2648,6 +2658,40 @@ class GLTFMaterialsClearcoatExtension {
|
|
|
2648
2658
|
|
|
2649
2659
|
}
|
|
2650
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
|
+
|
|
2651
2695
|
/**
|
|
2652
2696
|
* Iridescence Materials Extension
|
|
2653
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: {
|
|
@@ -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
|
```
|