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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { vec4,
|
|
1
|
+
import { vec4, NodeMaterial } from '../../nodes/Nodes.js';
|
|
2
2
|
import QuadMesh from '../../objects/QuadMesh.js';
|
|
3
3
|
|
|
4
|
-
const quadMesh = new QuadMesh( new
|
|
4
|
+
const quadMesh = new QuadMesh( new NodeMaterial() );
|
|
5
5
|
|
|
6
6
|
class PostProcessing {
|
|
7
7
|
|
|
@@ -12,11 +12,19 @@ class PostProcessing {
|
|
|
12
12
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
render() {
|
|
16
16
|
|
|
17
17
|
quadMesh.material.fragmentNode = this.outputNode;
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
quadMesh.render( this.renderer );
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
renderAsync() {
|
|
24
|
+
|
|
25
|
+
quadMesh.material.fragmentNode = this.outputNode;
|
|
26
|
+
|
|
27
|
+
return quadMesh.renderAsync( this.renderer );
|
|
20
28
|
|
|
21
29
|
}
|
|
22
30
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ClippingContext from
|
|
1
|
+
import ClippingContext from './ClippingContext.js';
|
|
2
2
|
|
|
3
3
|
let id = 0;
|
|
4
4
|
|
|
@@ -75,7 +75,7 @@ export default class RenderObject {
|
|
|
75
75
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
clippingNeedsUpdate
|
|
78
|
+
get clippingNeedsUpdate() {
|
|
79
79
|
|
|
80
80
|
if ( this.clippingContext.version === this.clippingContextVersion ) return false;
|
|
81
81
|
|
|
@@ -155,7 +155,7 @@ export default class RenderObject {
|
|
|
155
155
|
|
|
156
156
|
for ( const property in material ) {
|
|
157
157
|
|
|
158
|
-
if ( /^(is[A-Z])|^(visible|version|uuid|name|opacity|userData)$/.test( property ) ) continue;
|
|
158
|
+
if ( /^(is[A-Z]|_)|^(visible|version|uuid|name|opacity|userData)$/.test( property ) ) continue;
|
|
159
159
|
|
|
160
160
|
let value = material[ property ];
|
|
161
161
|
|
|
@@ -192,7 +192,7 @@ export default class RenderObject {
|
|
|
192
192
|
|
|
193
193
|
get needsUpdate() {
|
|
194
194
|
|
|
195
|
-
return this.initialNodesCacheKey !== this.getNodesCacheKey();
|
|
195
|
+
return this.initialNodesCacheKey !== this.getNodesCacheKey() || this.clippingNeedsUpdate;
|
|
196
196
|
|
|
197
197
|
}
|
|
198
198
|
|
|
@@ -33,7 +33,7 @@ class RenderObjects {
|
|
|
33
33
|
|
|
34
34
|
renderObject.updateClipping( renderContext.clippingContext );
|
|
35
35
|
|
|
36
|
-
if ( renderObject.version !== material.version || renderObject.needsUpdate
|
|
36
|
+
if ( renderObject.version !== material.version || renderObject.needsUpdate ) {
|
|
37
37
|
|
|
38
38
|
if ( renderObject.initialCacheKey !== renderObject.getCacheKey() ) {
|
|
39
39
|
|
|
@@ -57,7 +57,7 @@ class Renderer {
|
|
|
57
57
|
this.sortObjects = true;
|
|
58
58
|
|
|
59
59
|
this.depth = true;
|
|
60
|
-
this.stencil =
|
|
60
|
+
this.stencil = false;
|
|
61
61
|
|
|
62
62
|
this.clippingPlanes = [];
|
|
63
63
|
|
|
@@ -312,7 +312,7 @@ class Renderer {
|
|
|
312
312
|
|
|
313
313
|
if ( this._initialized === false ) await this.init();
|
|
314
314
|
|
|
315
|
-
const renderContext = this.
|
|
315
|
+
const renderContext = this._renderScene( scene, camera );
|
|
316
316
|
|
|
317
317
|
await this.backend.resolveTimestampAsync( renderContext, 'render' );
|
|
318
318
|
|
|
@@ -322,16 +322,17 @@ class Renderer {
|
|
|
322
322
|
|
|
323
323
|
if ( this._initialized === false ) {
|
|
324
324
|
|
|
325
|
-
console.
|
|
326
|
-
|
|
325
|
+
console.warn( 'THREE.Renderer: .render() called before the backend is initialized. Try using .renderAsync() instead.' );
|
|
326
|
+
|
|
327
|
+
return this.renderAsync( scene, camera );
|
|
327
328
|
|
|
328
329
|
}
|
|
329
330
|
|
|
330
|
-
this.
|
|
331
|
+
this._renderScene( scene, camera );
|
|
331
332
|
|
|
332
333
|
}
|
|
333
334
|
|
|
334
|
-
|
|
335
|
+
_renderScene( scene, camera ) {
|
|
335
336
|
|
|
336
337
|
// preserve render tree
|
|
337
338
|
|
|
@@ -378,7 +379,6 @@ class Renderer {
|
|
|
378
379
|
|
|
379
380
|
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
|
|
380
381
|
|
|
381
|
-
if ( this.info.autoReset === true ) this.info.reset();
|
|
382
382
|
|
|
383
383
|
//
|
|
384
384
|
|
|
@@ -761,6 +761,14 @@ class Renderer {
|
|
|
761
761
|
|
|
762
762
|
clear( color = true, depth = true, stencil = true ) {
|
|
763
763
|
|
|
764
|
+
if ( this._initialized === false ) {
|
|
765
|
+
|
|
766
|
+
console.warn( 'THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead.' );
|
|
767
|
+
|
|
768
|
+
return this.clearAsync( color, depth, stencil );
|
|
769
|
+
|
|
770
|
+
}
|
|
771
|
+
|
|
764
772
|
let renderTargetData = null;
|
|
765
773
|
const renderTarget = this._renderTarget;
|
|
766
774
|
|
|
@@ -897,7 +905,6 @@ class Renderer {
|
|
|
897
905
|
nodeFrame.renderId = this.info.calls;
|
|
898
906
|
|
|
899
907
|
//
|
|
900
|
-
if ( this.info.autoReset === true ) this.info.resetCompute();
|
|
901
908
|
|
|
902
909
|
const backend = this.backend;
|
|
903
910
|
const pipelines = this._pipelines;
|
|
@@ -979,6 +986,16 @@ class Renderer {
|
|
|
979
986
|
|
|
980
987
|
}
|
|
981
988
|
|
|
989
|
+
copyTextureToTexture( position, srcTexture, dstTexture, level = 0 ) {
|
|
990
|
+
|
|
991
|
+
this._textures.updateTexture( srcTexture );
|
|
992
|
+
this._textures.updateTexture( dstTexture );
|
|
993
|
+
|
|
994
|
+
this.backend.copyTextureToTexture( position, srcTexture, dstTexture, level );
|
|
995
|
+
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
|
|
982
999
|
readRenderTargetPixelsAsync( renderTarget, x, y, width, height ) {
|
|
983
1000
|
|
|
984
1001
|
return this.backend.copyTextureToBuffer( renderTarget.texture, x, y, width, height );
|