@plastic-software/three 0.179.0 → 0.180.1
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 +167 -107
- package/build/three.core.js +112 -20
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +56 -90
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +30 -5
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +2896 -1048
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +2896 -1048
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +7 -7
- package/examples/jsm/controls/DragControls.js +6 -56
- package/examples/jsm/controls/FirstPersonControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +0 -8
- package/examples/jsm/exporters/GLTFExporter.js +30 -22
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +1 -1
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/GLTFLoader.js +9 -5
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +112 -32
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -1
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +2 -2
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
- package/examples/jsm/misc/Volume.js +1 -1
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
- package/examples/jsm/transpiler/TSLEncoder.js +2 -10
- package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +27 -4
- package/examples/jsm/tsl/display/BloomNode.js +3 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +439 -90
- package/examples/jsm/tsl/display/GTAONode.js +8 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +47 -35
- package/examples/jsm/tsl/display/OutlineNode.js +2 -2
- package/examples/jsm/tsl/display/SSRNode.js +180 -65
- package/examples/jsm/tsl/display/TRAANode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +64 -0
- package/examples/jsm/tsl/display/hashBlur.js +15 -18
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/package.json +1 -1
- package/src/Three.Core.js +1 -0
- package/src/Three.TSL.js +29 -4
- package/src/animation/AnimationClip.js +17 -2
- package/src/constants.js +11 -3
- package/src/core/BufferGeometry.js +2 -2
- package/src/extras/TextureUtils.js +2 -1
- package/src/extras/lib/earcut.js +1 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/materials/Material.js +12 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +1 -1
- package/src/math/ColorManagement.js +7 -1
- package/src/nodes/Nodes.js +3 -0
- package/src/nodes/TSL.js +3 -0
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +133 -7
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +2 -2
- package/src/nodes/accessors/InstanceNode.js +3 -1
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/Texture3DNode.js +13 -0
- package/src/nodes/accessors/TextureNode.js +71 -19
- package/src/nodes/code/FunctionCallNode.js +19 -0
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/AssignNode.js +4 -3
- package/src/nodes/core/ContextNode.js +24 -0
- package/src/nodes/core/Node.js +16 -20
- package/src/nodes/core/NodeBuilder.js +48 -14
- package/src/nodes/core/NodeFrame.js +1 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +1 -2
- package/src/nodes/core/StackNode.js +29 -4
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformNode.js +16 -9
- package/src/nodes/core/VarNode.js +0 -21
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/PassNode.js +1 -1
- package/src/nodes/display/ScreenNode.js +42 -13
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +42 -12
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +430 -0
- package/src/nodes/lighting/LightsNode.js +1 -1
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +18 -2
- package/src/nodes/math/MathNode.js +3 -15
- package/src/nodes/math/OperatorNode.js +4 -3
- package/src/nodes/tsl/TSLCore.js +432 -152
- package/src/nodes/utils/JoinNode.js +3 -1
- package/src/nodes/utils/MemberNode.js +58 -7
- package/src/nodes/utils/RTTNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +51 -7
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/objects/BatchedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Sprite.js +2 -2
- package/src/renderers/WebGLRenderer.js +1 -10
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +19 -1
- package/src/renderers/common/Bindings.js +2 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Pipelines.js +1 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderObject.js +14 -2
- package/src/renderers/common/Renderer.js +39 -19
- package/src/renderers/common/SampledTexture.js +1 -1
- package/src/renderers/common/Sampler.js +25 -13
- package/src/renderers/common/Textures.js +34 -12
- package/src/renderers/common/TimestampQueryPool.js +3 -3
- package/src/renderers/common/XRManager.js +35 -19
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +5 -5
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
- package/src/renderers/webgl/WebGLProgram.js +4 -4
- package/src/renderers/webgl/WebGLShadowMap.js +1 -1
- package/src/renderers/webgl/WebGLTextures.js +1 -0
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +186 -135
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +110 -17
- package/src/renderers/webgl-fallback/utils/WebGLState.js +1 -1
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +52 -3
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +9 -10
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +35 -31
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +124 -34
- package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +9 -18
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +114 -25
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +3 -3
- package/src/renderers/webxr/WebXRManager.js +39 -24
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/Source.js +1 -1
- package/src/textures/VideoTexture.js +0 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
|
@@ -137,6 +137,8 @@ class SSRPass extends Pass {
|
|
|
137
137
|
|
|
138
138
|
this._selects = selects;
|
|
139
139
|
|
|
140
|
+
this._resolutionScale = 1;
|
|
141
|
+
|
|
140
142
|
/**
|
|
141
143
|
* Whether the pass is selective or not.
|
|
142
144
|
*
|
|
@@ -457,6 +459,29 @@ class SSRPass extends Pass {
|
|
|
457
459
|
|
|
458
460
|
}
|
|
459
461
|
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* The resolution scale. Valid values are in the range
|
|
465
|
+
* `[0,1]`. `1` means best quality but also results in
|
|
466
|
+
* more computational overhead. Setting to `0.5` means
|
|
467
|
+
* the effect is computed in half-resolution.
|
|
468
|
+
*
|
|
469
|
+
* @type {number}
|
|
470
|
+
* @default 1
|
|
471
|
+
*/
|
|
472
|
+
get resolutionScale() {
|
|
473
|
+
|
|
474
|
+
return this._resolutionScale;
|
|
475
|
+
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
set resolutionScale( value ) {
|
|
479
|
+
|
|
480
|
+
this._resolutionScale = value;
|
|
481
|
+
this.setSize( this.width, this.height ); // force a resize when resolution scaling changes
|
|
482
|
+
|
|
483
|
+
}
|
|
484
|
+
|
|
460
485
|
/**
|
|
461
486
|
* Frees the GPU-related resources allocated by this instance. Call this
|
|
462
487
|
* method whenever the pass is no longer used in your app.
|
|
@@ -661,23 +686,27 @@ class SSRPass extends Pass {
|
|
|
661
686
|
this.width = width;
|
|
662
687
|
this.height = height;
|
|
663
688
|
|
|
664
|
-
|
|
689
|
+
const effectiveWidth = Math.round( this.resolutionScale * width );
|
|
690
|
+
const effectiveHeight = Math.round( this.resolutionScale * height );
|
|
691
|
+
|
|
692
|
+
this.ssrMaterial.defines.MAX_STEP = Math.sqrt( effectiveWidth * effectiveWidth + effectiveHeight * effectiveHeight );
|
|
665
693
|
this.ssrMaterial.needsUpdate = true;
|
|
694
|
+
|
|
666
695
|
this.beautyRenderTarget.setSize( width, height );
|
|
667
|
-
this.prevRenderTarget.setSize( width, height );
|
|
668
|
-
this.ssrRenderTarget.setSize( width, height );
|
|
669
696
|
this.normalRenderTarget.setSize( width, height );
|
|
670
697
|
this.metalnessRenderTarget.setSize( width, height );
|
|
671
|
-
this.
|
|
672
|
-
this.
|
|
698
|
+
this.ssrRenderTarget.setSize( effectiveWidth, effectiveHeight );
|
|
699
|
+
this.prevRenderTarget.setSize( effectiveWidth, effectiveHeight );
|
|
700
|
+
this.blurRenderTarget.setSize( effectiveWidth, effectiveHeight );
|
|
701
|
+
this.blurRenderTarget2.setSize( effectiveWidth, effectiveHeight );
|
|
673
702
|
// this.blurRenderTarget3.setSize(width, height);
|
|
674
703
|
|
|
675
|
-
this.ssrMaterial.uniforms[ 'resolution' ].value.set(
|
|
704
|
+
this.ssrMaterial.uniforms[ 'resolution' ].value.set( effectiveWidth, effectiveHeight );
|
|
676
705
|
this.ssrMaterial.uniforms[ 'cameraProjectionMatrix' ].value.copy( this.camera.projectionMatrix );
|
|
677
706
|
this.ssrMaterial.uniforms[ 'cameraInverseProjectionMatrix' ].value.copy( this.camera.projectionMatrixInverse );
|
|
678
707
|
|
|
679
|
-
this.blurMaterial.uniforms[ 'resolution' ].value.set(
|
|
680
|
-
this.blurMaterial2.uniforms[ 'resolution' ].value.set(
|
|
708
|
+
this.blurMaterial.uniforms[ 'resolution' ].value.set( effectiveWidth, effectiveHeight );
|
|
709
|
+
this.blurMaterial2.uniforms[ 'resolution' ].value.set( effectiveWidth, effectiveHeight );
|
|
681
710
|
|
|
682
711
|
}
|
|
683
712
|
|
|
@@ -11,22 +11,21 @@ const arithmeticOperators = [
|
|
|
11
11
|
];
|
|
12
12
|
|
|
13
13
|
const precedenceOperators = [
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
|
|
18
|
-
'
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
].reverse();
|
|
14
|
+
[ ',' ],
|
|
15
|
+
[ '=', '+=', '-=', '*=', '/=', '%=', '^=', '&=', '|=', '<<=', '>>=' ],
|
|
16
|
+
[ '?' ],
|
|
17
|
+
[ '||' ],
|
|
18
|
+
[ '^^' ],
|
|
19
|
+
[ '&&' ],
|
|
20
|
+
[ '|' ],
|
|
21
|
+
[ '^' ],
|
|
22
|
+
[ '&' ],
|
|
23
|
+
[ '==', '!=' ],
|
|
24
|
+
[ '<', '>', '<=', '>=' ],
|
|
25
|
+
[ '<<', '>>' ],
|
|
26
|
+
[ '+', '-' ],
|
|
27
|
+
[ '*', '/', '%' ]
|
|
28
|
+
];
|
|
30
29
|
|
|
31
30
|
const associativityRightToLeft = [
|
|
32
31
|
'=',
|
|
@@ -334,7 +333,7 @@ class GLSLDecoder {
|
|
|
334
333
|
|
|
335
334
|
let groupIndex = 0;
|
|
336
335
|
|
|
337
|
-
for ( const
|
|
336
|
+
for ( const operators of precedenceOperators ) {
|
|
338
337
|
|
|
339
338
|
const parseToken = ( i, inverse = false ) => {
|
|
340
339
|
|
|
@@ -351,7 +350,9 @@ class GLSLDecoder {
|
|
|
351
350
|
|
|
352
351
|
}
|
|
353
352
|
|
|
354
|
-
if ( groupIndex === 0 && token.str
|
|
353
|
+
if ( groupIndex === 0 && operators.includes( token.str ) ) {
|
|
354
|
+
|
|
355
|
+
const operator = token.str;
|
|
355
356
|
|
|
356
357
|
if ( operator === '?' ) {
|
|
357
358
|
|
|
@@ -396,7 +397,9 @@ class GLSLDecoder {
|
|
|
396
397
|
|
|
397
398
|
};
|
|
398
399
|
|
|
399
|
-
|
|
400
|
+
const isRightAssociative = operators.some( op => associativityRightToLeft.includes( op ) );
|
|
401
|
+
|
|
402
|
+
if ( isRightAssociative ) {
|
|
400
403
|
|
|
401
404
|
for ( let i = 0; i < tokens.length; i ++ ) {
|
|
402
405
|
|
|
@@ -340,7 +340,7 @@ class TSLEncoder {
|
|
|
340
340
|
|
|
341
341
|
if ( node.hasAssignment ) {
|
|
342
342
|
|
|
343
|
-
if ( node.after === false ) {
|
|
343
|
+
if ( node.after === false && ( node.type === '++' || node.type === '--' ) ) {
|
|
344
344
|
|
|
345
345
|
type += 'Before';
|
|
346
346
|
|
|
@@ -665,15 +665,7 @@ ${ this.tab }} )`;
|
|
|
665
665
|
|
|
666
666
|
}
|
|
667
667
|
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
varStr += ' = ' + valueStr + '.toVar()';
|
|
671
|
-
|
|
672
|
-
} else {
|
|
673
|
-
|
|
674
|
-
varStr += ' = ' + valueStr;
|
|
675
|
-
|
|
676
|
-
}
|
|
668
|
+
varStr += ' = ' + valueStr;
|
|
677
669
|
|
|
678
670
|
} else {
|
|
679
671
|
|
|
@@ -80,6 +80,10 @@ const wgslLib = {
|
|
|
80
80
|
'textureLod': 'textureSampleLevel',
|
|
81
81
|
'texelFetch': 'textureLoad',
|
|
82
82
|
'textureGrad': 'textureSampleGrad',
|
|
83
|
+
'floatBitsToInt': 'bitcast<i32>',
|
|
84
|
+
'floatBitsToUint': 'bitcast<u32>',
|
|
85
|
+
'intBitsToFloat': 'bitcast<f32>',
|
|
86
|
+
'uintBitsToFloat': 'bitcast<f32>',
|
|
83
87
|
};
|
|
84
88
|
|
|
85
89
|
class WGSLEncoder {
|
|
@@ -170,6 +174,26 @@ class WGSLEncoder {
|
|
|
170
174
|
|
|
171
175
|
code = `${ modFnName }( ${ snippets.join( ', ' ) } )`;
|
|
172
176
|
|
|
177
|
+
} else if ( fnName.startsWith( 'bitcast' ) ) {
|
|
178
|
+
|
|
179
|
+
const params = node.params.map( p => this.emitExpression( p ) ).join( ',' );
|
|
180
|
+
const types = node.params.map( p => p.getType() );
|
|
181
|
+
|
|
182
|
+
if ( /.*vec[234]/.test( types[ 0 ] ) ) {
|
|
183
|
+
|
|
184
|
+
const conversionType = fnName.substring( 8, fnName.length - 1 );
|
|
185
|
+
const vectorType = types[ 0 ].substring( - 1 );
|
|
186
|
+
|
|
187
|
+
code = `bitcast<${ vectorType }<${ conversionType }>>`;
|
|
188
|
+
|
|
189
|
+
} else {
|
|
190
|
+
|
|
191
|
+
code = fnName;
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
code += `( ${ params } )`;
|
|
196
|
+
|
|
173
197
|
} else if ( fnName.startsWith( 'texture' ) ) {
|
|
174
198
|
|
|
175
199
|
// Handle texture functions separately due to sampler handling
|
|
@@ -69,9 +69,9 @@ class AnamorphicNode extends TempNode {
|
|
|
69
69
|
/**
|
|
70
70
|
* The resolution scale.
|
|
71
71
|
*
|
|
72
|
-
* @type {
|
|
72
|
+
* @type {float}
|
|
73
73
|
*/
|
|
74
|
-
this.
|
|
74
|
+
this.resolutionScale = 1;
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* The internal render target of the effect.
|
|
@@ -130,8 +130,8 @@ class AnamorphicNode extends TempNode {
|
|
|
130
130
|
|
|
131
131
|
this._invSize.value.set( 1 / width, 1 / height );
|
|
132
132
|
|
|
133
|
-
width = Math.max( Math.round( width * this.
|
|
134
|
-
height = Math.max( Math.round( height * this.
|
|
133
|
+
width = Math.max( Math.round( width * this.resolutionScale ), 1 );
|
|
134
|
+
height = Math.max( Math.round( height * this.resolutionScale ), 1 );
|
|
135
135
|
|
|
136
136
|
this._renderTarget.setSize( width, height );
|
|
137
137
|
|
|
@@ -240,6 +240,29 @@ class AnamorphicNode extends TempNode {
|
|
|
240
240
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
+
/**
|
|
244
|
+
* The resolution scale.
|
|
245
|
+
*
|
|
246
|
+
* @deprecated
|
|
247
|
+
* @type {Vector2}
|
|
248
|
+
* @default {(1,1)}
|
|
249
|
+
*/
|
|
250
|
+
get resolution() {
|
|
251
|
+
|
|
252
|
+
console.warn( 'THREE.AnamorphicNode: The "resolution" property has been renamed to "resolutionScale" and is now of type `number`.' ); // @deprecated r180
|
|
253
|
+
|
|
254
|
+
return new Vector2( this.resolutionScale, this.resolutionScale );
|
|
255
|
+
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
set resolution( value ) {
|
|
259
|
+
|
|
260
|
+
console.warn( 'THREE.AnamorphicNode: The "resolution" property has been renamed to "resolutionScale" and is now of type `number`.' ); // @deprecated r180
|
|
261
|
+
|
|
262
|
+
this.resolutionScale = value.x;
|
|
263
|
+
|
|
264
|
+
}
|
|
265
|
+
|
|
243
266
|
}
|
|
244
267
|
|
|
245
268
|
/**
|
|
@@ -364,9 +364,9 @@ class BloomNode extends TempNode {
|
|
|
364
364
|
|
|
365
365
|
// gaussian blur materials
|
|
366
366
|
|
|
367
|
-
// These sizes have been changed to account for the altered
|
|
367
|
+
// These sizes have been changed to account for the altered coefficients-calculation to avoid blockiness,
|
|
368
368
|
// while retaining the same blur-strength. For details see https://github.com/mrdoob/three.js/pull/31528
|
|
369
|
-
const kernelSizeArray = [ 6, 10, 14, 18, 22 ];
|
|
369
|
+
const kernelSizeArray = [ 6, 10, 14, 18, 22 ];
|
|
370
370
|
|
|
371
371
|
for ( let i = 0; i < this._nMips; i ++ ) {
|
|
372
372
|
|
|
@@ -480,7 +480,7 @@ class BloomNode extends TempNode {
|
|
|
480
480
|
const uvOffset = direction.mul( invSize ).mul( x );
|
|
481
481
|
const sample1 = sampleTexel( uvNode.add( uvOffset ) ).rgb;
|
|
482
482
|
const sample2 = sampleTexel( uvNode.sub( uvOffset ) ).rgb;
|
|
483
|
-
diffuseSum.addAssign( add( sample1, sample2 ).mul( w ) );
|
|
483
|
+
diffuseSum.addAssign( add( sample1, sample2 ).mul( w ) );
|
|
484
484
|
|
|
485
485
|
} );
|
|
486
486
|
|
|
@@ -189,7 +189,7 @@ export default ChromaticAberrationNode;
|
|
|
189
189
|
* @function
|
|
190
190
|
* @param {Node<vec4>} node - The node that represents the input of the effect.
|
|
191
191
|
* @param {Node|number} [strength=1.0] - The strength of the chromatic aberration effect as a node or value.
|
|
192
|
-
* @param {Node|Vector2} [center=null] - The center point of the effect as a node or value. If null, uses screen center (0.5, 0.5).
|
|
192
|
+
* @param {?(Node|Vector2)} [center=null] - The center point of the effect as a node or value. If null, uses screen center (0.5, 0.5).
|
|
193
193
|
* @param {Node|number} [scale=1.1] - The scale factor for stepped scaling from center as a node or value.
|
|
194
194
|
* @returns {ChromaticAberrationNode}
|
|
195
195
|
*/
|
|
@@ -203,4 +203,5 @@ export const chromaticAberration = ( node, strength = 1.0, center = null, scale
|
|
|
203
203
|
nodeObject( scale )
|
|
204
204
|
)
|
|
205
205
|
);
|
|
206
|
+
|
|
206
207
|
};
|