super-three 0.167.0 → 0.168.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 +165 -44
- package/build/three.module.js +165 -45
- package/build/three.module.min.js +1 -1
- package/build/three.webgpu.js +23600 -21931
- package/build/three.webgpu.min.js +1 -1
- package/examples/jsm/Addons.js +3 -1
- package/examples/jsm/animation/AnimationClipCreator.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +27 -21
- package/examples/jsm/controls/ArcballControls.js +174 -158
- package/examples/jsm/controls/DragControls.js +260 -132
- package/examples/jsm/controls/FirstPersonControls.js +175 -163
- package/examples/jsm/controls/FlyControls.js +194 -188
- package/examples/jsm/controls/OrbitControls.js +777 -786
- package/examples/jsm/controls/PointerLockControls.js +24 -15
- package/examples/jsm/controls/TrackballControls.js +453 -452
- package/examples/jsm/effects/AnaglyphEffect.js +6 -13
- package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
- package/examples/jsm/effects/StereoEffect.js +6 -1
- package/examples/jsm/environments/RoomEnvironment.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +6 -1
- package/examples/jsm/exporters/USDZExporter.js +29 -8
- package/examples/jsm/helpers/LightProbeHelper.js +42 -43
- package/examples/jsm/loaders/KTX2Loader.js +19 -7
- package/examples/jsm/loaders/MaterialXLoader.js +11 -4
- package/examples/jsm/loaders/PCDLoader.js +9 -9
- package/examples/jsm/objects/SkyMesh.js +188 -0
- package/examples/jsm/objects/Water2Mesh.js +159 -0
- package/examples/jsm/objects/WaterMesh.js +102 -0
- package/examples/jsm/physics/RapierPhysics.js +20 -0
- package/examples/jsm/postprocessing/OutlinePass.js +31 -46
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -2
- package/examples/jsm/shaders/OutputShader.js +1 -1
- package/examples/jsm/transpiler/TSLEncoder.js +8 -8
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/package.json +2 -1
- package/src/Three.WebGPU.js +6 -0
- package/src/Three.js +1 -0
- package/src/constants.js +1 -1
- package/src/extras/Controls.js +32 -0
- package/src/loaders/ObjectLoader.js +3 -3
- package/src/{nodes/loaders → loaders/nodes}/NodeLoader.js +4 -4
- package/src/{nodes/loaders → loaders/nodes}/NodeMaterialLoader.js +1 -2
- package/src/materials/Material.js +4 -7
- package/src/{nodes/materials → materials/nodes}/InstancedPointsNodeMaterial.js +33 -24
- package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +34 -37
- package/src/{nodes/materials → materials/nodes}/LineBasicNodeMaterial.js +3 -4
- package/src/{nodes/materials → materials/nodes}/LineDashedNodeMaterial.js +7 -9
- package/src/{nodes/materials → materials/nodes}/MeshBasicNodeMaterial.js +11 -11
- package/src/{nodes/materials → materials/nodes}/MeshLambertNodeMaterial.js +5 -5
- package/src/{nodes/materials → materials/nodes}/MeshMatcapNodeMaterial.js +8 -8
- package/src/materials/nodes/MeshNormalNodeMaterial.js +40 -0
- package/src/{nodes/materials → materials/nodes}/MeshPhongNodeMaterial.js +9 -8
- package/src/{nodes/materials → materials/nodes}/MeshPhysicalNodeMaterial.js +18 -17
- package/src/{nodes/materials → materials/nodes}/MeshSSSNodeMaterial.js +6 -6
- package/src/{nodes/materials → materials/nodes}/MeshStandardNodeMaterial.js +17 -11
- package/src/{nodes/materials → materials/nodes}/MeshToonNodeMaterial.js +4 -4
- package/src/{nodes/materials → materials/nodes}/NodeMaterial.js +67 -86
- package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +1 -1
- package/src/{nodes/materials → materials/nodes}/PointsNodeMaterial.js +3 -4
- package/src/{nodes/materials → materials/nodes}/ShadowNodeMaterial.js +4 -4
- package/src/{nodes/materials → materials/nodes}/SpriteNodeMaterial.js +11 -11
- package/src/{nodes/materials → materials/nodes}/VolumeNodeMaterial.js +14 -16
- package/src/nodes/Nodes.js +103 -159
- package/src/nodes/TSL.js +176 -0
- package/src/nodes/accessors/AccessorsUtils.js +8 -8
- package/src/nodes/accessors/BatchNode.js +48 -20
- package/src/nodes/accessors/{BitangentNode.js → Bitangent.js} +9 -9
- package/src/nodes/accessors/BufferAttributeNode.js +5 -5
- package/src/nodes/accessors/BufferNode.js +4 -4
- package/src/nodes/accessors/{CameraNode.js → Camera.js} +10 -10
- package/src/nodes/accessors/ClippingNode.js +16 -14
- package/src/nodes/accessors/CubeTextureNode.js +5 -7
- package/src/nodes/accessors/InstanceNode.js +17 -13
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +4 -4
- package/src/nodes/accessors/MaterialNode.js +52 -55
- package/src/nodes/accessors/MaterialProperties.js +3 -0
- package/src/nodes/accessors/MaterialReferenceNode.js +6 -4
- package/src/nodes/accessors/ModelNode.js +11 -11
- package/src/nodes/accessors/ModelViewProjectionNode.js +6 -7
- package/src/nodes/accessors/MorphNode.js +12 -12
- package/src/nodes/accessors/Normal.js +62 -0
- package/src/nodes/accessors/Object3DNode.js +10 -10
- package/src/nodes/accessors/PointUVNode.js +4 -4
- package/src/nodes/accessors/Position.js +10 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +143 -0
- package/src/nodes/accessors/ReferenceNode.js +13 -7
- package/src/nodes/accessors/ReflectVector.js +10 -0
- package/src/nodes/accessors/RendererReferenceNode.js +6 -6
- package/src/nodes/accessors/SceneNode.js +5 -6
- package/src/nodes/accessors/SkinningNode.js +84 -21
- package/src/nodes/accessors/StorageBufferNode.js +4 -5
- package/src/nodes/accessors/StorageTextureNode.js +5 -5
- package/src/nodes/accessors/Tangent.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +11 -11
- package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +3 -32
- package/src/nodes/accessors/TextureNode.js +16 -21
- package/src/nodes/accessors/TextureSizeNode.js +4 -6
- package/src/nodes/accessors/{UniformsNode.js → UniformArrayNode.js} +17 -8
- package/src/nodes/accessors/UserDataNode.js +4 -4
- package/src/nodes/accessors/VelocityNode.js +83 -0
- package/src/nodes/accessors/VertexColorNode.js +4 -4
- package/src/nodes/code/CodeNode.js +5 -5
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +5 -5
- package/src/nodes/code/FunctionNode.js +5 -23
- package/src/nodes/code/ScriptableNode.js +4 -6
- package/src/nodes/code/ScriptableValueNode.js +4 -6
- package/src/nodes/core/AssignNode.js +5 -5
- package/src/nodes/core/AttributeNode.js +7 -20
- package/src/nodes/core/BypassNode.js +5 -5
- package/src/nodes/core/CacheNode.js +5 -5
- package/src/nodes/core/ConstNode.js +2 -2
- package/src/nodes/core/ContextNode.js +17 -11
- package/src/nodes/core/IndexNode.js +12 -7
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/MRTNode.js +12 -6
- package/src/nodes/core/Node.js +39 -19
- package/src/nodes/core/NodeBuilder.js +46 -33
- package/src/nodes/core/NodeUtils.js +1 -0
- package/src/nodes/core/OutputStructNode.js +4 -4
- package/src/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +32 -32
- package/src/nodes/core/StackNode.js +26 -10
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/TempNode.js +2 -2
- package/src/nodes/core/UniformGroupNode.js +8 -9
- package/src/nodes/core/UniformNode.js +4 -4
- package/src/nodes/core/VarNode.js +6 -6
- package/src/nodes/core/VaryingNode.js +5 -5
- package/src/nodes/display/AfterImageNode.js +9 -9
- package/src/nodes/display/AnaglyphPassNode.js +61 -0
- package/src/nodes/display/AnamorphicNode.js +11 -11
- package/src/nodes/display/BleachBypass.js +26 -0
- package/src/nodes/display/BlendMode.js +54 -0
- package/src/nodes/display/BloomNode.js +21 -19
- package/src/nodes/display/BumpMapNode.js +7 -12
- package/src/nodes/display/ColorAdjustment.js +46 -0
- package/src/nodes/display/ColorSpaceFunctions.js +38 -0
- package/src/nodes/display/ColorSpaceNode.js +40 -63
- package/src/nodes/display/DenoiseNode.js +20 -17
- package/src/nodes/display/DepthOfFieldNode.js +8 -6
- package/src/nodes/display/DotScreenNode.js +10 -22
- package/src/nodes/display/FXAANode.js +17 -15
- package/src/nodes/display/FilmNode.js +7 -6
- package/src/nodes/display/FrontFacingNode.js +5 -5
- package/src/nodes/display/GTAONode.js +19 -15
- package/src/nodes/display/GaussianBlurNode.js +11 -8
- package/src/nodes/display/Lut3DNode.js +6 -5
- package/src/nodes/display/MotionBlur.js +25 -0
- package/src/nodes/display/NormalMapNode.js +8 -10
- package/src/nodes/display/ParallaxBarrierPassNode.js +55 -0
- package/src/nodes/display/PassNode.js +84 -8
- package/src/nodes/display/PixelationPassNode.js +12 -7
- package/src/nodes/display/PosterizeNode.js +4 -6
- package/src/nodes/display/RGBShiftNode.js +8 -7
- package/src/nodes/display/RenderOutputNode.js +9 -9
- package/src/nodes/display/SSAAPassNode.js +284 -0
- package/src/nodes/display/Sepia.js +17 -0
- package/src/nodes/display/SobelOperatorNode.js +9 -7
- package/src/nodes/display/StereoCompositePassNode.js +107 -0
- package/src/nodes/display/StereoPassNode.js +80 -0
- package/src/nodes/display/ToneMappingFunctions.js +190 -0
- package/src/nodes/display/ToneMappingNode.js +12 -173
- package/src/nodes/display/TransitionNode.js +9 -8
- package/src/nodes/display/ViewportDepthNode.js +30 -29
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -8
- package/src/nodes/display/ViewportNode.js +26 -25
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -8
- package/src/nodes/display/ViewportTextureNode.js +7 -10
- package/src/nodes/fog/FogExp2Node.js +4 -6
- package/src/nodes/fog/FogNode.js +5 -7
- package/src/nodes/fog/FogRangeNode.js +4 -6
- package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
- package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +6 -6
- package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +1 -1
- package/src/nodes/functions/PhongLightingModel.js +5 -5
- package/src/nodes/functions/PhysicalLightingModel.js +32 -31
- package/src/nodes/functions/ShadowMaskModel.js +1 -1
- package/src/nodes/functions/ToonLightingModel.js +3 -3
- package/src/nodes/functions/material/getGeometryRoughness.js +4 -4
- package/src/nodes/functions/material/getRoughness.js +2 -2
- package/src/nodes/geometry/RangeNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +5 -5
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +2 -7
- package/src/nodes/lighting/AnalyticLightNode.js +34 -13
- package/src/nodes/lighting/BasicEnvironmentNode.js +4 -3
- package/src/nodes/lighting/BasicLightMapNode.js +3 -3
- package/src/nodes/lighting/DirectionalLightNode.js +2 -7
- package/src/nodes/lighting/EnvironmentNode.js +20 -19
- package/src/nodes/lighting/HemisphereLightNode.js +3 -7
- package/src/nodes/lighting/IESSpotLightNode.js +3 -8
- package/src/nodes/lighting/IrradianceNode.js +2 -2
- package/src/nodes/lighting/LightNode.js +5 -5
- package/src/nodes/lighting/LightProbeNode.js +76 -0
- package/src/nodes/lighting/LightUtils.js +3 -3
- package/src/nodes/lighting/LightingContextNode.js +15 -17
- package/src/nodes/lighting/LightingNode.js +2 -2
- package/src/nodes/lighting/LightsNode.js +94 -76
- package/src/nodes/lighting/PointLightNode.js +3 -8
- package/src/nodes/lighting/RectAreaLightNode.js +2 -6
- package/src/nodes/lighting/SpotLightNode.js +3 -8
- package/src/nodes/materialx/MaterialXNodes.js +2 -2
- package/src/nodes/materialx/lib/mx_hsv.js +36 -31
- package/src/nodes/materialx/lib/mx_noise.js +96 -96
- package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
- package/src/nodes/math/{CondNode.js → ConditionalNode.js} +18 -7
- package/src/nodes/math/Hash.js +13 -0
- package/src/nodes/math/MathNode.js +124 -124
- package/src/nodes/math/MathUtils.js +0 -7
- package/src/nodes/math/OperatorNode.js +94 -52
- package/src/nodes/math/TriNoise3D.js +19 -29
- package/src/nodes/pmrem/PMREMNode.js +58 -15
- package/src/nodes/pmrem/PMREMUtils.js +46 -46
- package/src/nodes/procedural/Checker.js +14 -0
- package/src/nodes/tsl/TSLBase.js +30 -0
- package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +105 -97
- package/src/nodes/utils/ArrayElementNode.js +2 -2
- package/src/nodes/utils/ConvertNode.js +2 -2
- package/src/nodes/utils/CubeMapNode.js +157 -0
- package/src/nodes/utils/Discard.js +8 -0
- package/src/nodes/utils/EquirectUVNode.js +5 -5
- package/src/nodes/utils/FlipNode.js +65 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +5 -5
- package/src/nodes/utils/JoinNode.js +2 -2
- package/src/nodes/utils/LoopNode.js +12 -6
- package/src/nodes/utils/MatcapUVNode.js +6 -6
- package/src/nodes/utils/MaxMipLevelNode.js +4 -4
- package/src/nodes/utils/OscNode.js +7 -7
- package/src/nodes/utils/Packing.js +4 -0
- package/src/nodes/utils/RTTNode.js +8 -8
- package/src/nodes/utils/ReflectorNode.js +8 -3
- package/src/nodes/utils/RemapNode.js +7 -7
- package/src/nodes/utils/RotateNode.js +4 -12
- package/src/nodes/utils/SetNode.js +2 -2
- package/src/nodes/utils/SplitNode.js +2 -2
- package/src/nodes/utils/SpriteSheetUVNode.js +5 -5
- package/src/nodes/utils/SpriteUtils.js +47 -0
- package/src/nodes/utils/StorageArrayElementNode.js +4 -6
- package/src/nodes/utils/TimerNode.js +5 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +7 -9
- package/src/nodes/utils/UVUtils.js +19 -0
- package/src/nodes/utils/ViewportUtils.js +14 -0
- package/src/objects/BatchedMesh.js +2 -3
- package/src/renderers/WebGLRenderer.js +24 -0
- package/src/renderers/common/Backend.js +2 -2
- package/src/renderers/common/Background.js +3 -1
- package/src/renderers/common/BindGroup.js +3 -1
- package/src/renderers/common/Bindings.js +13 -15
- package/src/renderers/common/ClippingContext.js +14 -5
- package/src/renderers/common/CubeRenderTarget.js +9 -3
- package/src/renderers/common/PostProcessing.js +4 -1
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderContext.js +24 -0
- package/src/renderers/common/RenderList.js +1 -1
- package/src/renderers/common/RenderObject.js +2 -2
- package/src/renderers/common/Renderer.js +75 -49
- package/src/renderers/common/SampledTexture.js +12 -3
- package/src/renderers/common/StandardRenderer.js +18 -0
- package/src/renderers/common/Textures.js +8 -12
- package/src/renderers/common/extras/PMREMGenerator.js +12 -13
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +118 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +2 -2
- package/src/renderers/common/nodes/Nodes.js +36 -9
- package/src/renderers/common/nodes/StandardNodeLibrary.js +105 -0
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
- package/src/renderers/webgl/WebGLProgram.js +1 -1
- package/src/renderers/webgl/WebGLProperties.js +7 -0
- package/src/renderers/webgl/WebGLTextures.js +61 -4
- package/src/renderers/webgl-fallback/WebGLBackend.js +88 -68
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +57 -9
- package/src/renderers/webgl-fallback/utils/WebGLState.js +21 -0
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +28 -21
- package/src/renderers/webgpu/WebGPUBackend.js +86 -68
- package/src/renderers/webgpu/WebGPURenderer.js +8 -8
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +99 -63
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +45 -21
- package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +6 -15
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +36 -21
- package/src/renderers/webgpu/utils/WebGPUUtils.js +18 -1
- package/src/renderers/webxr/WebXRManager.js +32 -25
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/src/nodes/accessors/NormalNode.js +0 -14
- package/src/nodes/accessors/PositionNode.js +0 -10
- package/src/nodes/accessors/ReflectVectorNode.js +0 -10
- package/src/nodes/accessors/TangentNode.js +0 -23
- package/src/nodes/core/NodeKeywords.js +0 -80
- package/src/nodes/display/BlendModeNode.js +0 -128
- package/src/nodes/display/ColorAdjustmentNode.js +0 -104
- package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
- package/src/nodes/math/HashNode.js +0 -34
- package/src/nodes/procedural/CheckerNode.js +0 -42
- package/src/nodes/utils/DiscardNode.js +0 -28
- package/src/nodes/utils/PackingNode.js +0 -55
- package/src/nodes/utils/RotateUVNode.js +0 -35
- /package/src/{nodes/loaders → loaders/nodes}/NodeObjectLoader.js +0 -0
- /package/src/nodes/accessors/{UVNode.js → UV.js} +0 -0
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import { varying } from '
|
|
3
|
-
import { nodeObject } from '../shadernode/ShaderNode.js';
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { nodeObject, varying } from '../tsl/TSLBase.js';
|
|
4
3
|
|
|
5
4
|
class AttributeNode extends Node {
|
|
6
5
|
|
|
7
|
-
constructor( attributeName, nodeType = null
|
|
6
|
+
constructor( attributeName, nodeType = null ) {
|
|
8
7
|
|
|
9
8
|
super( nodeType );
|
|
10
9
|
|
|
11
|
-
this.defaultNode = defaultNode;
|
|
12
|
-
|
|
13
10
|
this.global = true;
|
|
14
11
|
|
|
15
12
|
this._attributeName = attributeName;
|
|
@@ -24,7 +21,7 @@ class AttributeNode extends Node {
|
|
|
24
21
|
|
|
25
22
|
getNodeType( builder ) {
|
|
26
23
|
|
|
27
|
-
let nodeType =
|
|
24
|
+
let nodeType = this.nodeType;
|
|
28
25
|
|
|
29
26
|
if ( nodeType === null ) {
|
|
30
27
|
|
|
@@ -91,17 +88,7 @@ class AttributeNode extends Node {
|
|
|
91
88
|
|
|
92
89
|
console.warn( `AttributeNode: Vertex attribute "${ attributeName }" not found on geometry.` );
|
|
93
90
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if ( defaultNode !== null ) {
|
|
97
|
-
|
|
98
|
-
return defaultNode.build( builder, nodeType );
|
|
99
|
-
|
|
100
|
-
} else {
|
|
101
|
-
|
|
102
|
-
return builder.generateConst( nodeType );
|
|
103
|
-
|
|
104
|
-
}
|
|
91
|
+
return builder.generateConst( nodeType );
|
|
105
92
|
|
|
106
93
|
}
|
|
107
94
|
|
|
@@ -129,6 +116,6 @@ class AttributeNode extends Node {
|
|
|
129
116
|
|
|
130
117
|
export default AttributeNode;
|
|
131
118
|
|
|
132
|
-
|
|
119
|
+
AttributeNode.type = /*@__PURE__*/ registerNode( 'Attribute', AttributeNode );
|
|
133
120
|
|
|
134
|
-
|
|
121
|
+
export const attribute = ( name, nodeType ) => nodeObject( new AttributeNode( name, nodeType ) );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import {
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { addMethodChaining, nodeProxy } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
4
|
class BypassNode extends Node {
|
|
5
5
|
|
|
@@ -38,8 +38,8 @@ class BypassNode extends Node {
|
|
|
38
38
|
|
|
39
39
|
export default BypassNode;
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
BypassNode.type = /*@__PURE__*/ registerNode( 'Bypass', BypassNode );
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
export const bypass = /*@__PURE__*/ nodeProxy( BypassNode );
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
addMethodChaining( 'bypass', bypass );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import {
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { addMethodChaining, nodeObject } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
4
|
class CacheNode extends Node {
|
|
5
5
|
|
|
@@ -39,8 +39,8 @@ class CacheNode extends Node {
|
|
|
39
39
|
|
|
40
40
|
export default CacheNode;
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
CacheNode.type = /*@__PURE__*/ registerNode( 'Cache', CacheNode );
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
export const cache = ( node, ...params ) => nodeObject( new CacheNode( nodeObject( node ), ...params ) );
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
addMethodChaining( 'cache', cache );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { registerNode } from './Node.js';
|
|
1
2
|
import InputNode from './InputNode.js';
|
|
2
|
-
import { addNodeClass } from './Node.js';
|
|
3
3
|
|
|
4
4
|
class ConstNode extends InputNode {
|
|
5
5
|
|
|
@@ -29,4 +29,4 @@ class ConstNode extends InputNode {
|
|
|
29
29
|
|
|
30
30
|
export default ConstNode;
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
ConstNode.type = /*@__PURE__*/ registerNode( 'Const', ConstNode );
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import {
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { addMethodChaining, nodeProxy } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
4
|
class ContextNode extends Node {
|
|
5
5
|
|
|
6
|
-
constructor( node,
|
|
6
|
+
constructor( node, value = {} ) {
|
|
7
7
|
|
|
8
8
|
super();
|
|
9
9
|
|
|
10
10
|
this.isContextNode = true;
|
|
11
11
|
|
|
12
12
|
this.node = node;
|
|
13
|
-
this.
|
|
13
|
+
this.value = value;
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
getScope() {
|
|
18
|
+
|
|
19
|
+
return this.node.getScope();
|
|
14
20
|
|
|
15
21
|
}
|
|
16
22
|
|
|
@@ -30,7 +36,7 @@ class ContextNode extends Node {
|
|
|
30
36
|
|
|
31
37
|
const previousContext = builder.getContext();
|
|
32
38
|
|
|
33
|
-
builder.setContext( { ...builder.context, ...this.
|
|
39
|
+
builder.setContext( { ...builder.context, ...this.value } );
|
|
34
40
|
|
|
35
41
|
const node = this.node.build( builder );
|
|
36
42
|
|
|
@@ -44,7 +50,7 @@ class ContextNode extends Node {
|
|
|
44
50
|
|
|
45
51
|
const previousContext = builder.getContext();
|
|
46
52
|
|
|
47
|
-
builder.setContext( { ...builder.context, ...this.
|
|
53
|
+
builder.setContext( { ...builder.context, ...this.value } );
|
|
48
54
|
|
|
49
55
|
const snippet = this.node.build( builder, output );
|
|
50
56
|
|
|
@@ -58,10 +64,10 @@ class ContextNode extends Node {
|
|
|
58
64
|
|
|
59
65
|
export default ContextNode;
|
|
60
66
|
|
|
61
|
-
|
|
62
|
-
export const label = ( node, name ) => context( node, { label: name } );
|
|
67
|
+
ContextNode.type = /*@__PURE__*/ registerNode( 'Context', ContextNode );
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
export const context = /*@__PURE__*/ nodeProxy( ContextNode );
|
|
70
|
+
export const label = ( node, name ) => context( node, { label: name } );
|
|
66
71
|
|
|
67
|
-
|
|
72
|
+
addMethodChaining( 'context', context );
|
|
73
|
+
addMethodChaining( 'label', label );
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import { varying } from '
|
|
3
|
-
import { nodeImmutable } from '../shadernode/ShaderNode.js';
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { nodeImmutable, varying } from '../tsl/TSLBase.js';
|
|
4
3
|
|
|
5
4
|
class IndexNode extends Node {
|
|
6
5
|
|
|
@@ -33,6 +32,10 @@ class IndexNode extends Node {
|
|
|
33
32
|
|
|
34
33
|
propertyName = builder.getDrawIndex();
|
|
35
34
|
|
|
35
|
+
} else if ( scope === IndexNode.INVOCATION_LOCAL ) {
|
|
36
|
+
|
|
37
|
+
propertyName = builder.getInvocationLocalIndex();
|
|
38
|
+
|
|
36
39
|
} else {
|
|
37
40
|
|
|
38
41
|
throw new Error( 'THREE.IndexNode: Unknown scope: ' + scope );
|
|
@@ -61,12 +64,14 @@ class IndexNode extends Node {
|
|
|
61
64
|
|
|
62
65
|
IndexNode.VERTEX = 'vertex';
|
|
63
66
|
IndexNode.INSTANCE = 'instance';
|
|
67
|
+
IndexNode.INVOCATION_LOCAL = 'invocationLocal';
|
|
64
68
|
IndexNode.DRAW = 'draw';
|
|
65
69
|
|
|
66
70
|
export default IndexNode;
|
|
67
71
|
|
|
68
|
-
|
|
69
|
-
export const instanceIndex = nodeImmutable( IndexNode, IndexNode.INSTANCE );
|
|
70
|
-
export const drawIndex = nodeImmutable( IndexNode, IndexNode.DRAW );
|
|
72
|
+
IndexNode.type = /*@__PURE__*/ registerNode( 'Index', IndexNode );
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
export const vertexIndex = /*@__PURE__*/ nodeImmutable( IndexNode, IndexNode.VERTEX );
|
|
75
|
+
export const instanceIndex = /*@__PURE__*/ nodeImmutable( IndexNode, IndexNode.INSTANCE );
|
|
76
|
+
export const invocationLocalIndex = /*@__PURE__*/ nodeImmutable( IndexNode, IndexNode.INVOCATION_LOCAL );
|
|
77
|
+
export const drawIndex = /*@__PURE__*/ nodeImmutable( IndexNode, IndexNode.DRAW );
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Node, {
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
2
|
import { getValueType, getValueFromType, arrayBufferToBase64 } from './NodeUtils.js';
|
|
3
3
|
|
|
4
4
|
class InputNode extends Node {
|
|
@@ -80,4 +80,4 @@ class InputNode extends Node {
|
|
|
80
80
|
|
|
81
81
|
export default InputNode;
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
InputNode.type = /*@__PURE__*/ registerNode( 'Input', InputNode );
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { registerNode } from './Node.js';
|
|
2
2
|
import OutputStructNode from './OutputStructNode.js';
|
|
3
|
-
import { nodeProxy, vec4 } from '../
|
|
3
|
+
import { nodeProxy, vec4 } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
|
-
function getTextureIndex( textures, name ) {
|
|
5
|
+
export function getTextureIndex( textures, name ) {
|
|
6
6
|
|
|
7
7
|
for ( let i = 0; i < textures.length; i ++ ) {
|
|
8
8
|
|
|
@@ -30,7 +30,13 @@ class MRTNode extends OutputStructNode {
|
|
|
30
30
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
has( name ) {
|
|
34
|
+
|
|
35
|
+
return this.outputNodes[ name ] !== undefined;
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get( name ) {
|
|
34
40
|
|
|
35
41
|
return this.outputNodes[ name ];
|
|
36
42
|
|
|
@@ -71,6 +77,6 @@ class MRTNode extends OutputStructNode {
|
|
|
71
77
|
|
|
72
78
|
export default MRTNode;
|
|
73
79
|
|
|
74
|
-
|
|
80
|
+
MRTNode.type = /*@__PURE__*/ registerNode( 'MRT', MRTNode );
|
|
75
81
|
|
|
76
|
-
|
|
82
|
+
export const mrt = /*@__PURE__*/ nodeProxy( MRTNode );
|
package/src/nodes/core/Node.js
CHANGED
|
@@ -4,7 +4,7 @@ import { getNodeChildren, getCacheKey } from './NodeUtils.js';
|
|
|
4
4
|
import { EventDispatcher } from '../../core/EventDispatcher.js';
|
|
5
5
|
import { MathUtils } from '../../math/MathUtils.js';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const Nodes = new Map();
|
|
8
8
|
|
|
9
9
|
let _nodeId = 0;
|
|
10
10
|
|
|
@@ -149,6 +149,12 @@ class Node extends EventDispatcher {
|
|
|
149
149
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
getScope() {
|
|
153
|
+
|
|
154
|
+
return this;
|
|
155
|
+
|
|
156
|
+
}
|
|
157
|
+
|
|
152
158
|
getHash( /*builder*/ ) {
|
|
153
159
|
|
|
154
160
|
return this.uuid;
|
|
@@ -222,18 +228,9 @@ class Node extends EventDispatcher {
|
|
|
222
228
|
|
|
223
229
|
}
|
|
224
230
|
|
|
225
|
-
increaseUsage( builder ) {
|
|
226
|
-
|
|
227
|
-
const nodeData = builder.getDataFromNode( this );
|
|
228
|
-
nodeData.usageCount = nodeData.usageCount === undefined ? 1 : nodeData.usageCount + 1;
|
|
229
|
-
|
|
230
|
-
return nodeData.usageCount;
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
234
231
|
analyze( builder ) {
|
|
235
232
|
|
|
236
|
-
const usageCount =
|
|
233
|
+
const usageCount = builder.increaseUsage( this );
|
|
237
234
|
|
|
238
235
|
if ( usageCount === 1 ) {
|
|
239
236
|
|
|
@@ -322,7 +319,8 @@ class Node extends EventDispatcher {
|
|
|
322
319
|
|
|
323
320
|
if ( properties.outputNode !== null && builder.stack.nodes.length !== stackNodesBeforeSetup ) {
|
|
324
321
|
|
|
325
|
-
|
|
322
|
+
// !! no outputNode !!
|
|
323
|
+
//properties.outputNode = builder.stack;
|
|
326
324
|
|
|
327
325
|
}
|
|
328
326
|
|
|
@@ -543,24 +541,39 @@ class Node extends EventDispatcher {
|
|
|
543
541
|
|
|
544
542
|
export default Node;
|
|
545
543
|
|
|
546
|
-
|
|
544
|
+
Node.type = /*@__PURE__*/ registerNode( '', Node );
|
|
545
|
+
|
|
546
|
+
export function registerNode( type, nodeClass ) {
|
|
547
|
+
|
|
548
|
+
const suffix = 'Node';
|
|
549
|
+
const nodeType = type + suffix;
|
|
547
550
|
|
|
548
|
-
if ( typeof nodeClass !== 'function'
|
|
549
|
-
if ( NodeClasses.has( type ) ) {
|
|
551
|
+
if ( typeof nodeClass !== 'function' ) throw new Error( `TSL.Node: Node class ${ type } is not a class` );
|
|
550
552
|
|
|
551
|
-
|
|
553
|
+
if ( Nodes.has( nodeType ) ) {
|
|
554
|
+
|
|
555
|
+
console.warn( `TSL.Node: Redefinition of node class ${ nodeType }` );
|
|
556
|
+
return;
|
|
557
|
+
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
if ( type.slice( - suffix.length ) === suffix ) {
|
|
561
|
+
|
|
562
|
+
console.warn( `TSL.Node: Node class ${ nodeType } should not have '${ suffix }' suffix.` );
|
|
552
563
|
return;
|
|
553
564
|
|
|
554
565
|
}
|
|
555
566
|
|
|
556
|
-
|
|
557
|
-
nodeClass.type =
|
|
567
|
+
Nodes.set( nodeType, nodeClass );
|
|
568
|
+
nodeClass.type = nodeType;
|
|
569
|
+
|
|
570
|
+
return nodeType;
|
|
558
571
|
|
|
559
572
|
}
|
|
560
573
|
|
|
561
574
|
export function createNodeFromType( type ) {
|
|
562
575
|
|
|
563
|
-
const Class =
|
|
576
|
+
const Class = Nodes.get( type );
|
|
564
577
|
|
|
565
578
|
if ( Class !== undefined ) {
|
|
566
579
|
|
|
@@ -569,3 +582,10 @@ export function createNodeFromType( type ) {
|
|
|
569
582
|
}
|
|
570
583
|
|
|
571
584
|
}
|
|
585
|
+
|
|
586
|
+
export function addNodeClass( type, nodeClass ) {
|
|
587
|
+
|
|
588
|
+
console.warn( 'TSL.Node: Function addNodeClass() is deprecated. Use /*@__PURE__*/ registerNode() instead.' );
|
|
589
|
+
/*@__PURE__*/ registerNode( type.slice( 0, - 4 ), nodeClass );
|
|
590
|
+
|
|
591
|
+
}
|
|
@@ -3,11 +3,10 @@ import NodeAttribute from './NodeAttribute.js';
|
|
|
3
3
|
import NodeVarying from './NodeVarying.js';
|
|
4
4
|
import NodeVar from './NodeVar.js';
|
|
5
5
|
import NodeCode from './NodeCode.js';
|
|
6
|
-
import NodeKeywords from './NodeKeywords.js';
|
|
7
6
|
import NodeCache from './NodeCache.js';
|
|
8
7
|
import ParameterNode from './ParameterNode.js';
|
|
9
8
|
import FunctionNode from '../code/FunctionNode.js';
|
|
10
|
-
import
|
|
9
|
+
import NodeMaterial from '../../materials/nodes/NodeMaterial.js';
|
|
11
10
|
import { NodeUpdateType, defaultBuildStages, shaderStages } from './constants.js';
|
|
12
11
|
|
|
13
12
|
import {
|
|
@@ -16,7 +15,7 @@ import {
|
|
|
16
15
|
} from '../../renderers/common/nodes/NodeUniform.js';
|
|
17
16
|
|
|
18
17
|
import { stack } from './StackNode.js';
|
|
19
|
-
import { getCurrentStack, setCurrentStack } from '../
|
|
18
|
+
import { getCurrentStack, setCurrentStack } from '../tsl/TSLBase.js';
|
|
20
19
|
|
|
21
20
|
import CubeRenderTarget from '../../renderers/common/CubeRenderTarget.js';
|
|
22
21
|
import ChainMap from '../../renderers/common/ChainMap.js';
|
|
@@ -113,7 +112,6 @@ class NodeBuilder {
|
|
|
113
112
|
this.currentFunctionNode = null;
|
|
114
113
|
|
|
115
114
|
this.context = {
|
|
116
|
-
keywords: new NodeKeywords(),
|
|
117
115
|
material: this.material
|
|
118
116
|
};
|
|
119
117
|
|
|
@@ -125,9 +123,11 @@ class NodeBuilder {
|
|
|
125
123
|
this.shaderStage = null;
|
|
126
124
|
this.buildStage = null;
|
|
127
125
|
|
|
126
|
+
this.useComparisonMethod = false;
|
|
127
|
+
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
getBindGroupsCache() {
|
|
131
131
|
|
|
132
132
|
let bindGroupsCache = rendererCache.get( this.renderer );
|
|
133
133
|
|
|
@@ -171,7 +171,7 @@ class NodeBuilder {
|
|
|
171
171
|
|
|
172
172
|
_getBindGroup( groupName, bindings ) {
|
|
173
173
|
|
|
174
|
-
const bindGroupsCache = this.
|
|
174
|
+
const bindGroupsCache = this.getBindGroupsCache();
|
|
175
175
|
|
|
176
176
|
//
|
|
177
177
|
|
|
@@ -197,14 +197,15 @@ class NodeBuilder {
|
|
|
197
197
|
|
|
198
198
|
if ( bindGroup === undefined ) {
|
|
199
199
|
|
|
200
|
-
bindGroup = new BindGroup( groupName, bindingsArray );
|
|
200
|
+
bindGroup = new BindGroup( groupName, bindingsArray, this.bindingsIndexes[ groupName ].group, bindingsArray );
|
|
201
|
+
|
|
201
202
|
bindGroupsCache.set( bindingsArray, bindGroup );
|
|
202
203
|
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
} else {
|
|
206
207
|
|
|
207
|
-
bindGroup = new BindGroup( groupName, bindingsArray );
|
|
208
|
+
bindGroup = new BindGroup( groupName, bindingsArray, this.bindingsIndexes[ groupName ].group, bindingsArray );
|
|
208
209
|
|
|
209
210
|
}
|
|
210
211
|
|
|
@@ -399,7 +400,6 @@ class NodeBuilder {
|
|
|
399
400
|
|
|
400
401
|
const context = { ...this.context };
|
|
401
402
|
|
|
402
|
-
delete context.keywords;
|
|
403
403
|
delete context.material;
|
|
404
404
|
|
|
405
405
|
return this.context;
|
|
@@ -469,6 +469,15 @@ class NodeBuilder {
|
|
|
469
469
|
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
+
increaseUsage( node ) {
|
|
473
|
+
|
|
474
|
+
const nodeData = this.getDataFromNode( node );
|
|
475
|
+
nodeData.usageCount = nodeData.usageCount === undefined ? 1 : nodeData.usageCount + 1;
|
|
476
|
+
|
|
477
|
+
return nodeData.usageCount;
|
|
478
|
+
|
|
479
|
+
}
|
|
480
|
+
|
|
472
481
|
generateTexture( /* texture, textureProperty, uvSnippet */ ) {
|
|
473
482
|
|
|
474
483
|
console.warn( 'Abstract function.' );
|
|
@@ -596,7 +605,7 @@ class NodeBuilder {
|
|
|
596
605
|
|
|
597
606
|
}
|
|
598
607
|
|
|
599
|
-
|
|
608
|
+
needsToWorkingColorSpace( /*texture*/ ) {
|
|
600
609
|
|
|
601
610
|
return false;
|
|
602
611
|
|
|
@@ -995,27 +1004,24 @@ class NodeBuilder {
|
|
|
995
1004
|
|
|
996
1005
|
const layout = shaderNode.layout;
|
|
997
1006
|
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
if ( shaderNode.isArrayInput ) {
|
|
1001
|
-
|
|
1002
|
-
inputs = [];
|
|
1007
|
+
const inputs = {
|
|
1008
|
+
[ Symbol.iterator ]() {
|
|
1003
1009
|
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1010
|
+
let index = 0;
|
|
1011
|
+
const values = Object.values( this );
|
|
1012
|
+
return {
|
|
1013
|
+
next: () => ( {
|
|
1014
|
+
value: values[ index ],
|
|
1015
|
+
done: index ++ >= values.length
|
|
1016
|
+
} )
|
|
1017
|
+
};
|
|
1007
1018
|
|
|
1008
1019
|
}
|
|
1020
|
+
};
|
|
1009
1021
|
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
inputs = {};
|
|
1013
|
-
|
|
1014
|
-
for ( const input of layout.inputs ) {
|
|
1015
|
-
|
|
1016
|
-
inputs[ input.name ] = new ParameterNode( input.type, input.name );
|
|
1022
|
+
for ( const input of layout.inputs ) {
|
|
1017
1023
|
|
|
1018
|
-
|
|
1024
|
+
inputs[ input.name ] = new ParameterNode( input.type, input.name );
|
|
1019
1025
|
|
|
1020
1026
|
}
|
|
1021
1027
|
|
|
@@ -1224,12 +1230,21 @@ class NodeBuilder {
|
|
|
1224
1230
|
|
|
1225
1231
|
build() {
|
|
1226
1232
|
|
|
1227
|
-
const { object, material } = this;
|
|
1228
|
-
|
|
1233
|
+
const { object, material, renderer } = this;
|
|
1229
1234
|
|
|
1230
1235
|
if ( material !== null ) {
|
|
1231
1236
|
|
|
1232
|
-
|
|
1237
|
+
let nodeMaterial = renderer.nodes.library.fromMaterial( material );
|
|
1238
|
+
|
|
1239
|
+
if ( nodeMaterial === null ) {
|
|
1240
|
+
|
|
1241
|
+
console.error( `NodeMaterial: Material "${ material.type }" is not compatible.` );
|
|
1242
|
+
|
|
1243
|
+
nodeMaterial = new NodeMaterial();
|
|
1244
|
+
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
nodeMaterial.build( this );
|
|
1233
1248
|
|
|
1234
1249
|
} else {
|
|
1235
1250
|
|
|
@@ -1301,11 +1316,9 @@ class NodeBuilder {
|
|
|
1301
1316
|
|
|
1302
1317
|
}
|
|
1303
1318
|
|
|
1304
|
-
createNodeMaterial( type = 'NodeMaterial' ) {
|
|
1305
|
-
|
|
1306
|
-
// TODO: Move Materials.js to outside of the Nodes.js in order to remove this function and improve tree-shaking support
|
|
1319
|
+
createNodeMaterial( type = 'NodeMaterial' ) { // @deprecated, r168
|
|
1307
1320
|
|
|
1308
|
-
|
|
1321
|
+
throw new Error( `THREE.NodeBuilder: createNodeMaterial() was deprecated. Use new ${ type }() instead.` );
|
|
1309
1322
|
|
|
1310
1323
|
}
|
|
1311
1324
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Node, {
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
2
|
import StructTypeNode from './StructTypeNode.js';
|
|
3
|
-
import { nodeProxy } from '../
|
|
3
|
+
import { nodeProxy } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
5
|
class OutputStructNode extends Node {
|
|
6
6
|
|
|
@@ -54,6 +54,6 @@ class OutputStructNode extends Node {
|
|
|
54
54
|
|
|
55
55
|
export default OutputStructNode;
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
OutputStructNode.type = /*@__PURE__*/ registerNode( 'OutputStruct', OutputStructNode );
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
export const outputStruct = /*@__PURE__*/ nodeProxy( OutputStructNode );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { nodeObject } from '../
|
|
1
|
+
import { registerNode } from './Node.js';
|
|
2
|
+
import { nodeObject } from '../tsl/TSLBase.js';
|
|
3
3
|
import PropertyNode from './PropertyNode.js';
|
|
4
4
|
|
|
5
5
|
class ParameterNode extends PropertyNode {
|
|
@@ -28,6 +28,6 @@ class ParameterNode extends PropertyNode {
|
|
|
28
28
|
|
|
29
29
|
export default ParameterNode;
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
ParameterNode.type = /*@__PURE__*/ registerNode( 'Parameter', ParameterNode );
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
export const parameter = ( type, name ) => nodeObject( new ParameterNode( type, name ) );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import { nodeImmutable, nodeObject } from '../
|
|
1
|
+
import Node, { registerNode } from './Node.js';
|
|
2
|
+
import { nodeImmutable, nodeObject } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
4
|
class PropertyNode extends Node {
|
|
5
5
|
|
|
@@ -49,36 +49,36 @@ class PropertyNode extends Node {
|
|
|
49
49
|
|
|
50
50
|
export default PropertyNode;
|
|
51
51
|
|
|
52
|
+
PropertyNode.type = /*@__PURE__*/ registerNode( 'Property', PropertyNode );
|
|
53
|
+
|
|
52
54
|
export const property = ( type, name ) => nodeObject( new PropertyNode( type, name ) );
|
|
53
55
|
export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( type, name, true ) );
|
|
54
56
|
|
|
55
|
-
export const diffuseColor = nodeImmutable( PropertyNode, 'vec4', 'DiffuseColor' );
|
|
56
|
-
export const emissive = nodeImmutable( PropertyNode, 'vec3', 'EmissiveColor' );
|
|
57
|
-
export const roughness = nodeImmutable( PropertyNode, 'float', 'Roughness' );
|
|
58
|
-
export const metalness = nodeImmutable( PropertyNode, 'float', 'Metalness' );
|
|
59
|
-
export const clearcoat = nodeImmutable( PropertyNode, 'float', 'Clearcoat' );
|
|
60
|
-
export const clearcoatRoughness = nodeImmutable( PropertyNode, 'float', 'ClearcoatRoughness' );
|
|
61
|
-
export const sheen = nodeImmutable( PropertyNode, 'vec3', 'Sheen' );
|
|
62
|
-
export const sheenRoughness = nodeImmutable( PropertyNode, 'float', 'SheenRoughness' );
|
|
63
|
-
export const iridescence = nodeImmutable( PropertyNode, 'float', 'Iridescence' );
|
|
64
|
-
export const iridescenceIOR = nodeImmutable( PropertyNode, 'float', 'IridescenceIOR' );
|
|
65
|
-
export const iridescenceThickness = nodeImmutable( PropertyNode, 'float', 'IridescenceThickness' );
|
|
66
|
-
export const alphaT = nodeImmutable( PropertyNode, 'float', 'AlphaT' );
|
|
67
|
-
export const anisotropy = nodeImmutable( PropertyNode, 'float', 'Anisotropy' );
|
|
68
|
-
export const anisotropyT = nodeImmutable( PropertyNode, 'vec3', 'AnisotropyT' );
|
|
69
|
-
export const anisotropyB = nodeImmutable( PropertyNode, 'vec3', 'AnisotropyB' );
|
|
70
|
-
export const specularColor = nodeImmutable( PropertyNode, 'color', 'SpecularColor' );
|
|
71
|
-
export const specularF90 = nodeImmutable( PropertyNode, 'float', 'SpecularF90' );
|
|
72
|
-
export const shininess = nodeImmutable( PropertyNode, 'float', 'Shininess' );
|
|
73
|
-
export const output = nodeImmutable( PropertyNode, 'vec4', 'Output' );
|
|
74
|
-
export const dashSize = nodeImmutable( PropertyNode, 'float', 'dashSize' );
|
|
75
|
-
export const gapSize = nodeImmutable( PropertyNode, 'float', 'gapSize' );
|
|
76
|
-
export const pointWidth = nodeImmutable( PropertyNode, 'float', 'pointWidth' );
|
|
77
|
-
export const ior = nodeImmutable( PropertyNode, 'float', 'IOR' );
|
|
78
|
-
export const transmission = nodeImmutable( PropertyNode, 'float', 'Transmission' );
|
|
79
|
-
export const thickness = nodeImmutable( PropertyNode, 'float', 'Thickness' );
|
|
80
|
-
export const attenuationDistance = nodeImmutable( PropertyNode, 'float', 'AttenuationDistance' );
|
|
81
|
-
export const attenuationColor = nodeImmutable( PropertyNode, 'color', 'AttenuationColor' );
|
|
82
|
-
export const dispersion = nodeImmutable( PropertyNode, 'float', 'Dispersion' );
|
|
83
|
-
|
|
84
|
-
addNodeClass( 'PropertyNode', PropertyNode );
|
|
57
|
+
export const diffuseColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'DiffuseColor' );
|
|
58
|
+
export const emissive = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'EmissiveColor' );
|
|
59
|
+
export const roughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Roughness' );
|
|
60
|
+
export const metalness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Metalness' );
|
|
61
|
+
export const clearcoat = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Clearcoat' );
|
|
62
|
+
export const clearcoatRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'ClearcoatRoughness' );
|
|
63
|
+
export const sheen = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'Sheen' );
|
|
64
|
+
export const sheenRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'SheenRoughness' );
|
|
65
|
+
export const iridescence = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Iridescence' );
|
|
66
|
+
export const iridescenceIOR = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IridescenceIOR' );
|
|
67
|
+
export const iridescenceThickness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IridescenceThickness' );
|
|
68
|
+
export const alphaT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'AlphaT' );
|
|
69
|
+
export const anisotropy = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Anisotropy' );
|
|
70
|
+
export const anisotropyT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'AnisotropyT' );
|
|
71
|
+
export const anisotropyB = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'AnisotropyB' );
|
|
72
|
+
export const specularColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColor' );
|
|
73
|
+
export const specularF90 = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'SpecularF90' );
|
|
74
|
+
export const shininess = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Shininess' );
|
|
75
|
+
export const output = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'Output' );
|
|
76
|
+
export const dashSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'dashSize' );
|
|
77
|
+
export const gapSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'gapSize' );
|
|
78
|
+
export const pointWidth = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'pointWidth' );
|
|
79
|
+
export const ior = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IOR' );
|
|
80
|
+
export const transmission = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Transmission' );
|
|
81
|
+
export const thickness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Thickness' );
|
|
82
|
+
export const attenuationDistance = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'AttenuationDistance' );
|
|
83
|
+
export const attenuationColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'AttenuationColor' );
|
|
84
|
+
export const dispersion = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Dispersion' );
|