super-three 0.165.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 +854 -410
- package/build/three.module.js +849 -411
- package/build/three.module.min.js +1 -1
- package/build/three.webgpu.js +77755 -0
- package/build/three.webgpu.min.js +6 -0
- package/examples/jsm/Addons.js +5 -2
- 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/csm/CSMShader.js +4 -4
- 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 +13 -4
- package/examples/jsm/exporters/USDZExporter.js +29 -8
- package/examples/jsm/geometries/TeapotGeometry.js +1 -1
- package/examples/jsm/helpers/LightProbeHelper.js +42 -43
- package/examples/jsm/helpers/ViewHelper.js +51 -2
- package/examples/jsm/libs/tween.module.js +64 -75
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +91 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +8 -63
- package/examples/jsm/lines/webgpu/Line2.js +20 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +376 -0
- package/examples/jsm/loaders/FBXLoader.js +23 -45
- package/examples/jsm/loaders/GLTFLoader.js +10 -4
- package/examples/jsm/loaders/KTX2Loader.js +19 -7
- package/examples/jsm/loaders/MaterialXLoader.js +10 -10
- package/examples/jsm/loaders/PCDLoader.js +9 -9
- package/examples/jsm/loaders/USDZLoader.js +124 -76
- package/examples/jsm/loaders/UltraHDRLoader.js +583 -0
- package/examples/jsm/loaders/VTKLoader.js +76 -3
- package/examples/jsm/misc/GPUComputationRenderer.js +9 -19
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -1
- package/examples/jsm/objects/InstancedPoints.js +2 -2
- 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/RenderTransitionPass.js +13 -38
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/postprocessing/SSAOPass.js +6 -9
- package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -4
- package/examples/jsm/shaders/BleachBypassShader.js +1 -2
- package/examples/jsm/shaders/ColorifyShader.js +1 -2
- package/examples/jsm/shaders/FXAAShader.js +0 -2
- package/examples/jsm/shaders/GTAOShader.js +1 -1
- package/examples/jsm/shaders/LuminosityHighPassShader.js +1 -3
- package/examples/jsm/shaders/OutputShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +46 -4
- package/examples/jsm/transpiler/TSLEncoder.js +24 -22
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/package.json +8 -6
- package/src/Three.WebGPU.js +200 -0
- package/src/Three.js +3 -0
- package/src/constants.js +4 -1
- package/src/core/Object3D.js +22 -22
- package/src/extras/Controls.js +32 -0
- package/src/extras/TextureUtils.js +210 -0
- package/src/lights/Light.js +1 -0
- package/src/lights/LightShadow.js +5 -0
- package/{examples/jsm/lights → src/lights/webgpu}/IESSpotLight.js +1 -1
- package/src/loaders/ObjectLoader.js +33 -2
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeLoader.js +6 -4
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeMaterialLoader.js +2 -2
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeObjectLoader.js +2 -1
- package/src/materials/Material.js +7 -1
- package/{examples/jsm/nodes/materials → src/materials/nodes}/InstancedPointsNodeMaterial.js +36 -27
- package/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +37 -40
- package/src/materials/nodes/LineBasicNodeMaterial.js +27 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/LineDashedNodeMaterial.js +10 -11
- package/src/materials/nodes/MeshBasicNodeMaterial.js +73 -0
- package/src/materials/nodes/MeshLambertNodeMaterial.js +43 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +53 -0
- package/src/materials/nodes/MeshNormalNodeMaterial.js +40 -0
- package/src/materials/nodes/MeshPhongNodeMaterial.js +74 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshPhysicalNodeMaterial.js +22 -20
- package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshSSSNodeMaterial.js +6 -6
- package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshStandardNodeMaterial.js +28 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +34 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/NodeMaterial.js +142 -96
- package/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +1 -1
- package/{examples/jsm/nodes/materials → src/materials/nodes}/PointsNodeMaterial.js +5 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +34 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/SpriteNodeMaterial.js +13 -13
- package/{examples/jsm/nodes/materials → src/materials/nodes}/VolumeNodeMaterial.js +14 -16
- package/src/math/Box2.js +4 -4
- package/src/math/Box3.js +6 -6
- package/src/math/ColorManagement.js +10 -0
- package/src/math/Matrix2.js +54 -0
- package/src/math/Vector4.js +13 -0
- package/src/nodes/Nodes.js +164 -0
- package/src/nodes/TSL.js +176 -0
- package/{examples/jsm → src}/nodes/accessors/AccessorsUtils.js +8 -8
- package/src/nodes/accessors/BatchNode.js +124 -0
- package/{examples/jsm/nodes/accessors/BitangentNode.js → src/nodes/accessors/Bitangent.js} +9 -9
- package/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.js +41 -6
- package/{examples/jsm → src}/nodes/accessors/BufferNode.js +4 -4
- package/src/nodes/accessors/Camera.js +19 -0
- package/{examples/jsm → src}/nodes/accessors/ClippingNode.js +16 -14
- package/src/nodes/accessors/CubeTextureNode.js +76 -0
- package/src/nodes/accessors/InstanceNode.js +144 -0
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +21 -0
- package/{examples/jsm → src}/nodes/accessors/MaterialNode.js +66 -49
- package/src/nodes/accessors/MaterialProperties.js +3 -0
- package/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.js +6 -4
- package/src/nodes/accessors/ModelNode.js +37 -0
- package/{examples/jsm → src}/nodes/accessors/ModelViewProjectionNode.js +6 -7
- package/{examples/jsm → src}/nodes/accessors/MorphNode.js +35 -31
- package/src/nodes/accessors/Normal.js +62 -0
- package/{examples/jsm → src}/nodes/accessors/Object3DNode.js +11 -11
- package/src/nodes/accessors/PointUVNode.js +26 -0
- package/src/nodes/accessors/Position.js +10 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +143 -0
- package/{examples/jsm → src}/nodes/accessors/ReferenceNode.js +14 -8
- package/src/nodes/accessors/ReflectVector.js +10 -0
- package/{examples/jsm → src}/nodes/accessors/RendererReferenceNode.js +6 -6
- package/{examples/jsm → src}/nodes/accessors/SceneNode.js +5 -6
- package/src/nodes/accessors/SkinningNode.js +187 -0
- package/{examples/jsm → src}/nodes/accessors/StorageBufferNode.js +54 -6
- package/{examples/jsm → src}/nodes/accessors/StorageTextureNode.js +16 -7
- package/src/nodes/accessors/Tangent.js +22 -0
- package/{examples/jsm → src}/nodes/accessors/Texture3DNode.js +11 -11
- package/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +3 -32
- package/{examples/jsm → src}/nodes/accessors/TextureNode.js +69 -37
- package/{examples/jsm → src}/nodes/accessors/TextureSizeNode.js +4 -6
- package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js} +24 -9
- package/{examples/jsm → src}/nodes/accessors/UserDataNode.js +4 -4
- package/src/nodes/accessors/VelocityNode.js +83 -0
- package/{examples/jsm → src}/nodes/accessors/VertexColorNode.js +6 -5
- package/{examples/jsm → src}/nodes/code/CodeNode.js +5 -5
- package/{examples/jsm → src}/nodes/code/ExpressionNode.js +4 -4
- package/{examples/jsm → src}/nodes/code/FunctionCallNode.js +5 -5
- package/{examples/jsm → src}/nodes/code/FunctionNode.js +5 -23
- package/{examples/jsm → src}/nodes/code/ScriptableNode.js +18 -6
- package/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +6 -7
- package/{examples/jsm → src}/nodes/core/AssignNode.js +5 -5
- package/{examples/jsm → src}/nodes/core/AttributeNode.js +22 -21
- package/{examples/jsm → src}/nodes/core/BypassNode.js +5 -5
- package/src/nodes/core/CacheNode.js +46 -0
- package/{examples/jsm → src}/nodes/core/ConstNode.js +2 -2
- package/{examples/jsm → src}/nodes/core/ContextNode.js +17 -11
- package/{examples/jsm → src}/nodes/core/IndexNode.js +17 -6
- package/{examples/jsm → src}/nodes/core/InputNode.js +2 -2
- package/{examples/jsm → src}/nodes/core/LightingModel.js +2 -2
- package/src/nodes/core/MRTNode.js +82 -0
- package/{examples/jsm → src}/nodes/core/Node.js +57 -31
- package/{examples/jsm → src}/nodes/core/NodeBuilder.js +216 -65
- package/src/nodes/core/NodeCache.js +36 -0
- package/{examples/jsm → src}/nodes/core/NodeFrame.js +42 -0
- package/{examples/jsm → src}/nodes/core/NodeFunction.js +2 -2
- package/{examples/jsm → src}/nodes/core/NodeUniform.js +1 -2
- package/{examples/jsm → src}/nodes/core/NodeUtils.js +7 -1
- package/{examples/jsm → src}/nodes/core/OutputStructNode.js +4 -4
- package/{examples/jsm → src}/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +84 -0
- package/{examples/jsm → src}/nodes/core/StackNode.js +26 -10
- package/{examples/jsm → src}/nodes/core/StructTypeNode.js +2 -2
- package/{examples/jsm → src}/nodes/core/TempNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +55 -0
- package/{examples/jsm → src}/nodes/core/UniformNode.js +14 -5
- package/{examples/jsm → src}/nodes/core/VarNode.js +8 -12
- package/{examples/jsm → src}/nodes/core/VaryingNode.js +13 -5
- package/{examples/jsm → src}/nodes/display/AfterImageNode.js +27 -35
- package/src/nodes/display/AnaglyphPassNode.js +61 -0
- package/{examples/jsm → src}/nodes/display/AnamorphicNode.js +27 -30
- package/src/nodes/display/BleachBypass.js +26 -0
- package/src/nodes/display/BlendMode.js +54 -0
- package/src/nodes/display/BloomNode.js +335 -0
- package/{examples/jsm → 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 +85 -0
- package/src/nodes/display/DenoiseNode.js +201 -0
- package/src/nodes/display/DepthOfFieldNode.js +121 -0
- package/src/nodes/display/DotScreenNode.js +63 -0
- package/src/nodes/display/FXAANode.js +329 -0
- package/src/nodes/display/FilmNode.js +53 -0
- package/src/nodes/display/FrontFacingNode.js +41 -0
- package/src/nodes/display/GTAONode.js +328 -0
- package/{examples/jsm → src}/nodes/display/GaussianBlurNode.js +44 -24
- package/src/nodes/display/Lut3DNode.js +54 -0
- package/src/nodes/display/MotionBlur.js +25 -0
- package/{examples/jsm → src}/nodes/display/NormalMapNode.js +9 -11
- package/src/nodes/display/ParallaxBarrierPassNode.js +55 -0
- package/src/nodes/display/PassNode.js +367 -0
- package/src/nodes/display/PixelationPassNode.js +206 -0
- package/{examples/jsm → src}/nodes/display/PosterizeNode.js +4 -6
- package/src/nodes/display/RGBShiftNode.js +50 -0
- package/src/nodes/display/RenderOutputNode.js +56 -0
- package/src/nodes/display/SSAAPassNode.js +284 -0
- package/src/nodes/display/Sepia.js +17 -0
- package/src/nodes/display/SobelOperatorNode.js +123 -0
- 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 +66 -0
- package/src/nodes/display/TransitionNode.js +77 -0
- package/src/nodes/display/ViewportDepthNode.js +121 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +30 -0
- package/{examples/jsm → src}/nodes/display/ViewportNode.js +28 -26
- package/src/nodes/display/ViewportSharedTextureNode.js +36 -0
- package/{examples/jsm → src}/nodes/display/ViewportTextureNode.js +12 -12
- package/{examples/jsm → src}/nodes/fog/FogExp2Node.js +4 -6
- package/{examples/jsm → src}/nodes/fog/FogNode.js +5 -7
- package/{examples/jsm → src}/nodes/fog/FogRangeNode.js +4 -6
- package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_GGX.js +4 -4
- package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
- package/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +131 -0
- package/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +78 -0
- package/{examples/jsm → src}/nodes/functions/PhongLightingModel.js +10 -8
- package/{examples/jsm → src}/nodes/functions/PhysicalLightingModel.js +73 -31
- package/{examples/jsm → src}/nodes/functions/ShadowMaskModel.js +1 -1
- package/{examples/jsm → src}/nodes/functions/ToonLightingModel.js +6 -4
- package/src/nodes/functions/material/getGeometryRoughness.js +13 -0
- package/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
- package/{examples/jsm → src}/nodes/geometry/RangeNode.js +23 -10
- package/{examples/jsm → src}/nodes/gpgpu/ComputeNode.js +5 -5
- package/src/nodes/lighting/AONode.js +24 -0
- package/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +2 -7
- package/src/nodes/lighting/AnalyticLightNode.js +354 -0
- package/src/nodes/lighting/BasicEnvironmentNode.js +27 -0
- package/src/nodes/lighting/BasicLightMapNode.js +29 -0
- package/{examples/jsm → src}/nodes/lighting/DirectionalLightNode.js +3 -9
- package/{examples/jsm → src}/nodes/lighting/EnvironmentNode.js +23 -21
- package/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.js +4 -7
- package/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +3 -8
- package/{examples/jsm → src}/nodes/lighting/IrradianceNode.js +2 -2
- package/{examples/jsm → src}/nodes/lighting/LightNode.js +5 -5
- package/src/nodes/lighting/LightProbeNode.js +76 -0
- package/{examples/jsm → src}/nodes/lighting/LightUtils.js +3 -3
- package/src/nodes/lighting/LightingContextNode.js +64 -0
- package/{examples/jsm → src}/nodes/lighting/LightingNode.js +4 -2
- package/src/nodes/lighting/LightsNode.js +231 -0
- package/{examples/jsm → src}/nodes/lighting/PointLightNode.js +4 -10
- package/src/nodes/lighting/RectAreaLightNode.js +93 -0
- package/{examples/jsm → src}/nodes/lighting/SpotLightNode.js +4 -10
- package/{examples/jsm → src}/nodes/materialx/MaterialXNodes.js +2 -2
- package/{examples/jsm → src}/nodes/materialx/lib/mx_hsv.js +43 -46
- package/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +500 -603
- package/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
- package/{examples/jsm/nodes/math/CondNode.js → src/nodes/math/ConditionalNode.js} +31 -13
- package/src/nodes/math/Hash.js +13 -0
- package/src/nodes/math/MathNode.js +404 -0
- package/{examples/jsm → src}/nodes/math/MathUtils.js +0 -7
- package/{examples/jsm → src}/nodes/math/OperatorNode.js +100 -58
- package/{examples/jsm → src}/nodes/math/TriNoise3D.js +19 -29
- package/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +7 -7
- package/{examples/jsm → src}/nodes/pmrem/PMREMNode.js +60 -16
- package/{examples/jsm → src}/nodes/pmrem/PMREMUtils.js +46 -46
- package/src/nodes/procedural/Checker.js +14 -0
- package/src/nodes/tsl/TSLBase.js +30 -0
- package/{examples/jsm/nodes/shadernode/ShaderNode.js → src/nodes/tsl/TSLCore.js} +106 -96
- package/{examples/jsm → src}/nodes/utils/ArrayElementNode.js +2 -2
- package/{examples/jsm → src}/nodes/utils/ConvertNode.js +2 -2
- package/src/nodes/utils/CubeMapNode.js +157 -0
- package/src/nodes/utils/Discard.js +8 -0
- package/{examples/jsm → src}/nodes/utils/EquirectUVNode.js +5 -5
- package/src/nodes/utils/FlipNode.js +65 -0
- package/{examples/jsm → src}/nodes/utils/FunctionOverloadingNode.js +7 -5
- package/{examples/jsm → src}/nodes/utils/JoinNode.js +2 -2
- package/{examples/jsm → src}/nodes/utils/LoopNode.js +19 -12
- package/{examples/jsm → src}/nodes/utils/MatcapUVNode.js +6 -6
- package/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.js +12 -6
- package/{examples/jsm → src}/nodes/utils/OscNode.js +7 -7
- package/src/nodes/utils/Packing.js +4 -0
- package/src/nodes/utils/RTTNode.js +130 -0
- package/{examples/jsm → src}/nodes/utils/ReflectorNode.js +17 -4
- package/{examples/jsm → src}/nodes/utils/RemapNode.js +7 -7
- package/{examples/jsm → src}/nodes/utils/RotateNode.js +4 -12
- package/{examples/jsm → src}/nodes/utils/SetNode.js +2 -2
- package/{examples/jsm → src}/nodes/utils/SplitNode.js +2 -2
- package/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.js +5 -5
- package/src/nodes/utils/SpriteUtils.js +47 -0
- package/{examples/jsm → src}/nodes/utils/StorageArrayElementNode.js +4 -6
- package/{examples/jsm → src}/nodes/utils/TimerNode.js +5 -5
- package/{examples/jsm → 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 +169 -190
- package/src/objects/InstancedMesh.js +1 -1
- package/src/renderers/WebGLRenderer.js +60 -23
- package/{examples/jsm → src}/renderers/common/Attributes.js +2 -1
- package/{examples/jsm → src}/renderers/common/Backend.js +30 -27
- package/{examples/jsm → src}/renderers/common/Background.js +12 -4
- package/src/renderers/common/BindGroup.js +18 -0
- package/{examples/jsm → src}/renderers/common/Bindings.js +45 -32
- package/{examples/jsm → src}/renderers/common/ClippingContext.js +18 -7
- package/{examples/jsm → src}/renderers/common/Color4.js +1 -1
- package/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +16 -4
- package/{examples/jsm → src}/renderers/common/Geometries.js +37 -5
- package/{examples/jsm → src}/renderers/common/Info.js +34 -6
- package/src/renderers/common/PostProcessing.js +90 -0
- package/{examples/jsm/objects → src/renderers/common}/QuadMesh.js +8 -3
- package/{examples/jsm → src}/renderers/common/RenderContext.js +25 -1
- package/{examples/jsm → src}/renderers/common/RenderContexts.js +1 -1
- package/{examples/jsm → src}/renderers/common/RenderList.js +1 -1
- package/{examples/jsm → src}/renderers/common/RenderObject.js +45 -12
- package/{examples/jsm → src}/renderers/common/Renderer.js +151 -73
- package/{examples/jsm → src}/renderers/common/SampledTexture.js +14 -5
- package/src/renderers/common/StandardRenderer.js +18 -0
- package/{examples/jsm → src}/renderers/common/StorageBufferAttribute.js +1 -1
- package/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.js +1 -1
- package/{examples/jsm → src}/renderers/common/StorageTexture.js +2 -1
- package/{examples/jsm → src}/renderers/common/Textures.js +14 -14
- package/{examples/jsm → src}/renderers/common/Uniform.js +9 -4
- package/{examples/jsm → src}/renderers/common/UniformsGroup.js +69 -31
- package/{examples/jsm → src}/renderers/common/extras/PMREMGenerator.js +25 -25
- package/src/renderers/common/nodes/NodeBuilderState.js +58 -0
- package/src/renderers/common/nodes/NodeLibrary.js +118 -0
- package/{examples/jsm → src}/renderers/common/nodes/NodeSampledTexture.js +8 -7
- package/{examples/jsm → src}/renderers/common/nodes/NodeSampler.js +2 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeStorageBuffer.js +5 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniform.js +3 -3
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniformBuffer.js +2 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.js +2 -8
- package/{examples/jsm → src}/renderers/common/nodes/Nodes.js +69 -21
- package/src/renderers/common/nodes/StandardNodeLibrary.js +105 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +16 -1
- package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +0 -9
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -10
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -4
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +8 -0
- package/src/renderers/shaders/UniformsLib.js +3 -0
- package/src/renderers/webgl/WebGLAttributes.js +2 -2
- package/src/renderers/webgl/WebGLBufferRenderer.js +6 -19
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +6 -18
- package/src/renderers/webgl/WebGLLights.js +6 -0
- package/src/renderers/webgl/WebGLProgram.js +27 -1
- package/src/renderers/webgl/WebGLPrograms.js +1 -1
- package/src/renderers/webgl/WebGLProperties.js +7 -0
- package/src/renderers/webgl/WebGLTextures.js +75 -57
- package/src/renderers/webgl/WebGLUniforms.js +12 -2
- package/src/renderers/webgl/WebGLUniformsGroups.js +7 -7
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.js +242 -120
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/nodes/GLSLNodeBuilder.js +227 -44
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +2 -2
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +1 -0
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLExtensions.js +2 -0
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +22 -1
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLTextureUtils.js +62 -23
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +1 -1
- package/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.js +242 -136
- package/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.js +9 -9
- package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeBuilder.js +281 -107
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +159 -0
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUBindingUtils.js +64 -33
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +4 -1
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +34 -36
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTextureUtils.js +76 -44
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUUtils.js +42 -4
- package/src/renderers/webxr/WebXRDepthSensing.js +6 -0
- package/src/renderers/webxr/WebXRManager.js +37 -24
- package/src/textures/CompressedArrayTexture.js +1 -1
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/examples/jsm/nodes/Nodes.js +0 -202
- package/examples/jsm/nodes/accessors/BatchNode.js +0 -78
- package/examples/jsm/nodes/accessors/CameraNode.js +0 -12
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
- package/examples/jsm/nodes/accessors/InstanceNode.js +0 -94
- package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
- package/examples/jsm/nodes/accessors/ModelNode.js +0 -36
- package/examples/jsm/nodes/accessors/NormalNode.js +0 -14
- package/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
- package/examples/jsm/nodes/accessors/PositionNode.js +0 -10
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -6
- package/examples/jsm/nodes/accessors/SkinningNode.js +0 -124
- package/examples/jsm/nodes/accessors/TangentNode.js +0 -23
- package/examples/jsm/nodes/core/CacheNode.js +0 -49
- package/examples/jsm/nodes/core/NodeCache.js +0 -26
- package/examples/jsm/nodes/core/NodeKeywords.js +0 -80
- package/examples/jsm/nodes/core/PropertyNode.js +0 -83
- package/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
- package/examples/jsm/nodes/display/BlendModeNode.js +0 -128
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
- package/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
- package/examples/jsm/nodes/display/FrontFacingNode.js +0 -40
- package/examples/jsm/nodes/display/PassNode.js +0 -201
- package/examples/jsm/nodes/display/ToneMappingNode.js +0 -188
- package/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -37
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
- package/examples/jsm/nodes/lighting/AONode.js +0 -27
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -256
- package/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
- package/examples/jsm/nodes/lighting/LightsNode.js +0 -215
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
- package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
- package/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.js +0 -52
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -38
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
- package/examples/jsm/nodes/materials/MeshToonNodeMaterial.js +0 -34
- package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +0 -34
- package/examples/jsm/nodes/math/HashNode.js +0 -34
- package/examples/jsm/nodes/math/MathNode.js +0 -391
- package/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
- package/examples/jsm/nodes/utils/DiscardNode.js +0 -27
- package/examples/jsm/nodes/utils/PackingNode.js +0 -55
- package/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
- package/examples/jsm/renderers/common/PostProcessing.js +0 -33
- package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
- /package/{examples/jsm/nodes/accessors/UVNode.js → src/nodes/accessors/UV.js} +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeAttribute.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeCode.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeFunctionInput.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeParser.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeVar.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeVarying.js +0 -0
- /package/{examples/jsm → src}/nodes/core/UniformGroup.js +0 -0
- /package/{examples/jsm → src}/nodes/core/constants.js +0 -0
- /package/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
- /package/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Animation.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Binding.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Buffer.js +0 -0
- /package/{examples/jsm → src}/renderers/common/BufferUtils.js +0 -0
- /package/{examples/jsm → src}/renderers/common/ChainMap.js +0 -0
- /package/{examples/jsm → src}/renderers/common/ComputePipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Constants.js +0 -0
- /package/{examples/jsm → src}/renderers/common/DataMap.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Pipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Pipelines.js +0 -0
- /package/{examples/jsm → src}/renderers/common/ProgrammableStage.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderBundle.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderBundles.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderLists.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderObjects.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderPipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Sampler.js +0 -0
- /package/{examples/jsm → src}/renderers/common/StorageBuffer.js +0 -0
- /package/{examples/jsm → src}/renderers/common/UniformBuffer.js +0 -0
- /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBufferRenderer.js +0 -0
- /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLCapabilities.js +0 -0
- /package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +0 -0
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
1
2
|
import UniformNode, { uniform } from '../core/UniformNode.js';
|
|
2
|
-
import { uv } from './
|
|
3
|
+
import { uv } from './UV.js';
|
|
3
4
|
import { textureSize } from './TextureSizeNode.js';
|
|
4
|
-
import {
|
|
5
|
+
import { toWorkingColorSpace } from '../display/ColorSpaceNode.js';
|
|
5
6
|
import { expression } from '../code/ExpressionNode.js';
|
|
6
|
-
import { addNodeClass } from '../core/Node.js';
|
|
7
7
|
import { maxMipLevel } from '../utils/MaxMipLevelNode.js';
|
|
8
|
-
import {
|
|
8
|
+
import { nodeProxy, vec3, nodeObject } from '../tsl/TSLBase.js';
|
|
9
9
|
import { NodeUpdateType } from '../core/constants.js';
|
|
10
10
|
|
|
11
|
+
import { IntType, UnsignedIntType } from '../../constants.js';
|
|
12
|
+
|
|
11
13
|
class TextureNode extends UniformNode {
|
|
12
14
|
|
|
13
|
-
constructor( value, uvNode = null, levelNode = null ) {
|
|
15
|
+
constructor( value, uvNode = null, levelNode = null, biasNode = null ) {
|
|
14
16
|
|
|
15
17
|
super( value );
|
|
16
18
|
|
|
@@ -18,6 +20,7 @@ class TextureNode extends UniformNode {
|
|
|
18
20
|
|
|
19
21
|
this.uvNode = uvNode;
|
|
20
22
|
this.levelNode = levelNode;
|
|
23
|
+
this.biasNode = biasNode;
|
|
21
24
|
this.compareNode = null;
|
|
22
25
|
this.depthNode = null;
|
|
23
26
|
this.gradNode = null;
|
|
@@ -29,6 +32,7 @@ class TextureNode extends UniformNode {
|
|
|
29
32
|
this.referenceNode = null;
|
|
30
33
|
|
|
31
34
|
this._value = value;
|
|
35
|
+
this._matrixUniform = null;
|
|
32
36
|
|
|
33
37
|
this.setUpdateMatrix( uvNode === null );
|
|
34
38
|
|
|
@@ -64,6 +68,16 @@ class TextureNode extends UniformNode {
|
|
|
64
68
|
|
|
65
69
|
if ( this.value.isDepthTexture === true ) return 'float';
|
|
66
70
|
|
|
71
|
+
if ( this.value.type === UnsignedIntType ) {
|
|
72
|
+
|
|
73
|
+
return 'uvec4';
|
|
74
|
+
|
|
75
|
+
} else if ( this.value.type === IntType ) {
|
|
76
|
+
|
|
77
|
+
return 'ivec4';
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
|
|
67
81
|
return 'vec4';
|
|
68
82
|
|
|
69
83
|
}
|
|
@@ -88,9 +102,9 @@ class TextureNode extends UniformNode {
|
|
|
88
102
|
|
|
89
103
|
getTransformedUV( uvNode ) {
|
|
90
104
|
|
|
91
|
-
|
|
105
|
+
if ( this._matrixUniform === null ) this._matrixUniform = uniform( this.value.matrix );
|
|
92
106
|
|
|
93
|
-
return
|
|
107
|
+
return this._matrixUniform.mul( vec3( uvNode, 1 ) ).xy;
|
|
94
108
|
|
|
95
109
|
}
|
|
96
110
|
|
|
@@ -120,6 +134,7 @@ class TextureNode extends UniformNode {
|
|
|
120
134
|
setup( builder ) {
|
|
121
135
|
|
|
122
136
|
const properties = builder.getNodeProperties( this );
|
|
137
|
+
properties.referenceNode = this.referenceNode;
|
|
123
138
|
|
|
124
139
|
//
|
|
125
140
|
|
|
@@ -155,6 +170,7 @@ class TextureNode extends UniformNode {
|
|
|
155
170
|
|
|
156
171
|
properties.uvNode = uvNode;
|
|
157
172
|
properties.levelNode = levelNode;
|
|
173
|
+
properties.biasNode = this.biasNode;
|
|
158
174
|
properties.compareNode = this.compareNode;
|
|
159
175
|
properties.gradNode = this.gradNode;
|
|
160
176
|
properties.depthNode = this.depthNode;
|
|
@@ -167,7 +183,7 @@ class TextureNode extends UniformNode {
|
|
|
167
183
|
|
|
168
184
|
}
|
|
169
185
|
|
|
170
|
-
generateSnippet( builder, textureProperty, uvSnippet, levelSnippet, depthSnippet, compareSnippet, gradSnippet ) {
|
|
186
|
+
generateSnippet( builder, textureProperty, uvSnippet, levelSnippet, biasSnippet, depthSnippet, compareSnippet, gradSnippet ) {
|
|
171
187
|
|
|
172
188
|
const texture = this.value;
|
|
173
189
|
|
|
@@ -177,6 +193,10 @@ class TextureNode extends UniformNode {
|
|
|
177
193
|
|
|
178
194
|
snippet = builder.generateTextureLevel( texture, textureProperty, uvSnippet, levelSnippet, depthSnippet );
|
|
179
195
|
|
|
196
|
+
} else if ( biasSnippet ) {
|
|
197
|
+
|
|
198
|
+
snippet = builder.generateTextureBias( texture, textureProperty, uvSnippet, biasSnippet, depthSnippet );
|
|
199
|
+
|
|
180
200
|
} else if ( gradSnippet ) {
|
|
181
201
|
|
|
182
202
|
snippet = builder.generateTextureGrad( texture, textureProperty, uvSnippet, gradSnippet, depthSnippet );
|
|
@@ -229,10 +249,11 @@ class TextureNode extends UniformNode {
|
|
|
229
249
|
|
|
230
250
|
if ( propertyName === undefined ) {
|
|
231
251
|
|
|
232
|
-
const { uvNode, levelNode, compareNode, depthNode, gradNode } = properties;
|
|
252
|
+
const { uvNode, levelNode, biasNode, compareNode, depthNode, gradNode } = properties;
|
|
233
253
|
|
|
234
254
|
const uvSnippet = this.generateUV( builder, uvNode );
|
|
235
255
|
const levelSnippet = levelNode ? levelNode.build( builder, 'float' ) : null;
|
|
256
|
+
const biasSnippet = biasNode ? biasNode.build( builder, 'float' ) : null;
|
|
236
257
|
const depthSnippet = depthNode ? depthNode.build( builder, 'int' ) : null;
|
|
237
258
|
const compareSnippet = compareNode ? compareNode.build( builder, 'float' ) : null;
|
|
238
259
|
const gradSnippet = gradNode ? [ gradNode[ 0 ].build( builder, 'vec2' ), gradNode[ 1 ].build( builder, 'vec2' ) ] : null;
|
|
@@ -241,25 +262,21 @@ class TextureNode extends UniformNode {
|
|
|
241
262
|
|
|
242
263
|
propertyName = builder.getPropertyName( nodeVar );
|
|
243
264
|
|
|
244
|
-
const snippet = this.generateSnippet( builder, textureProperty, uvSnippet, levelSnippet, depthSnippet, compareSnippet, gradSnippet );
|
|
265
|
+
const snippet = this.generateSnippet( builder, textureProperty, uvSnippet, levelSnippet, biasSnippet, depthSnippet, compareSnippet, gradSnippet );
|
|
245
266
|
|
|
246
267
|
builder.addLineFlowCode( `${propertyName} = ${snippet}` );
|
|
247
268
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
nodeData.snippet = snippet;
|
|
251
|
-
nodeData.propertyName = propertyName;
|
|
252
|
-
|
|
253
|
-
}
|
|
269
|
+
nodeData.snippet = snippet;
|
|
270
|
+
nodeData.propertyName = propertyName;
|
|
254
271
|
|
|
255
272
|
}
|
|
256
273
|
|
|
257
274
|
let snippet = propertyName;
|
|
258
275
|
const nodeType = this.getNodeType( builder );
|
|
259
276
|
|
|
260
|
-
if ( builder.
|
|
277
|
+
if ( builder.needsToWorkingColorSpace( texture ) ) {
|
|
261
278
|
|
|
262
|
-
snippet =
|
|
279
|
+
snippet = toWorkingColorSpace( expression( snippet, nodeType ), texture.colorSpace ).setup( builder ).build( builder, nodeType );
|
|
263
280
|
|
|
264
281
|
}
|
|
265
282
|
|
|
@@ -288,18 +305,18 @@ class TextureNode extends UniformNode {
|
|
|
288
305
|
uv( uvNode ) {
|
|
289
306
|
|
|
290
307
|
const textureNode = this.clone();
|
|
291
|
-
textureNode.uvNode = uvNode;
|
|
292
|
-
textureNode.referenceNode = this;
|
|
308
|
+
textureNode.uvNode = nodeObject( uvNode );
|
|
309
|
+
textureNode.referenceNode = this.getSelf();
|
|
293
310
|
|
|
294
311
|
return nodeObject( textureNode );
|
|
295
312
|
|
|
296
313
|
}
|
|
297
314
|
|
|
298
|
-
blur(
|
|
315
|
+
blur( amountNode ) {
|
|
299
316
|
|
|
300
317
|
const textureNode = this.clone();
|
|
301
|
-
textureNode.
|
|
302
|
-
textureNode.referenceNode = this;
|
|
318
|
+
textureNode.biasNode = nodeObject( amountNode ).mul( maxMipLevel( textureNode ) );
|
|
319
|
+
textureNode.referenceNode = this.getSelf();
|
|
303
320
|
|
|
304
321
|
return nodeObject( textureNode );
|
|
305
322
|
|
|
@@ -308,10 +325,10 @@ class TextureNode extends UniformNode {
|
|
|
308
325
|
level( levelNode ) {
|
|
309
326
|
|
|
310
327
|
const textureNode = this.clone();
|
|
311
|
-
textureNode.levelNode = levelNode;
|
|
312
|
-
textureNode.referenceNode = this;
|
|
328
|
+
textureNode.levelNode = nodeObject( levelNode );
|
|
329
|
+
textureNode.referenceNode = this.getSelf();
|
|
313
330
|
|
|
314
|
-
return textureNode;
|
|
331
|
+
return nodeObject( textureNode );
|
|
315
332
|
|
|
316
333
|
}
|
|
317
334
|
|
|
@@ -321,11 +338,21 @@ class TextureNode extends UniformNode {
|
|
|
321
338
|
|
|
322
339
|
}
|
|
323
340
|
|
|
341
|
+
bias( biasNode ) {
|
|
342
|
+
|
|
343
|
+
const textureNode = this.clone();
|
|
344
|
+
textureNode.biasNode = nodeObject( biasNode );
|
|
345
|
+
textureNode.referenceNode = this.getSelf();
|
|
346
|
+
|
|
347
|
+
return nodeObject( textureNode );
|
|
348
|
+
|
|
349
|
+
}
|
|
350
|
+
|
|
324
351
|
compare( compareNode ) {
|
|
325
352
|
|
|
326
353
|
const textureNode = this.clone();
|
|
327
354
|
textureNode.compareNode = nodeObject( compareNode );
|
|
328
|
-
textureNode.referenceNode = this;
|
|
355
|
+
textureNode.referenceNode = this.getSelf();
|
|
329
356
|
|
|
330
357
|
return nodeObject( textureNode );
|
|
331
358
|
|
|
@@ -335,8 +362,7 @@ class TextureNode extends UniformNode {
|
|
|
335
362
|
|
|
336
363
|
const textureNode = this.clone();
|
|
337
364
|
textureNode.gradNode = [ nodeObject( gradNodeX ), nodeObject( gradNodeY ) ];
|
|
338
|
-
|
|
339
|
-
textureNode.referenceNode = this;
|
|
365
|
+
textureNode.referenceNode = this.getSelf();
|
|
340
366
|
|
|
341
367
|
return nodeObject( textureNode );
|
|
342
368
|
|
|
@@ -346,7 +372,7 @@ class TextureNode extends UniformNode {
|
|
|
346
372
|
|
|
347
373
|
const textureNode = this.clone();
|
|
348
374
|
textureNode.depthNode = nodeObject( depthNode );
|
|
349
|
-
textureNode.referenceNode = this;
|
|
375
|
+
textureNode.referenceNode = this.getSelf();
|
|
350
376
|
|
|
351
377
|
return nodeObject( textureNode );
|
|
352
378
|
|
|
@@ -359,6 +385,9 @@ class TextureNode extends UniformNode {
|
|
|
359
385
|
super.serialize( data );
|
|
360
386
|
|
|
361
387
|
data.value = this.value.toJSON( data.meta ).uuid;
|
|
388
|
+
data.sampler = this.sampler;
|
|
389
|
+
data.updateMatrix = this.updateMatrix;
|
|
390
|
+
data.updateType = this.updateType;
|
|
362
391
|
|
|
363
392
|
}
|
|
364
393
|
|
|
@@ -367,12 +396,18 @@ class TextureNode extends UniformNode {
|
|
|
367
396
|
super.deserialize( data );
|
|
368
397
|
|
|
369
398
|
this.value = data.meta.textures[ data.value ];
|
|
399
|
+
this.sampler = data.sampler;
|
|
400
|
+
this.updateMatrix = data.updateMatrix;
|
|
401
|
+
this.updateType = data.updateType;
|
|
370
402
|
|
|
371
403
|
}
|
|
372
404
|
|
|
373
405
|
update() {
|
|
374
406
|
|
|
375
407
|
const texture = this.value;
|
|
408
|
+
const matrixUniform = this._matrixUniform;
|
|
409
|
+
|
|
410
|
+
if ( matrixUniform !== null ) matrixUniform.value = texture.matrix;
|
|
376
411
|
|
|
377
412
|
if ( texture.matrixAutoUpdate === true ) {
|
|
378
413
|
|
|
@@ -384,7 +419,7 @@ class TextureNode extends UniformNode {
|
|
|
384
419
|
|
|
385
420
|
clone() {
|
|
386
421
|
|
|
387
|
-
const newNode = new this.constructor( this.value, this.uvNode, this.levelNode );
|
|
422
|
+
const newNode = new this.constructor( this.value, this.uvNode, this.levelNode, this.biasNode );
|
|
388
423
|
newNode.sampler = this.sampler;
|
|
389
424
|
|
|
390
425
|
return newNode;
|
|
@@ -395,14 +430,11 @@ class TextureNode extends UniformNode {
|
|
|
395
430
|
|
|
396
431
|
export default TextureNode;
|
|
397
432
|
|
|
398
|
-
|
|
433
|
+
TextureNode.type = /*@__PURE__*/ registerNode( 'Texture', TextureNode );
|
|
434
|
+
|
|
435
|
+
export const texture = /*@__PURE__*/ nodeProxy( TextureNode );
|
|
399
436
|
export const textureLoad = ( ...params ) => texture( ...params ).setSampler( false );
|
|
400
437
|
|
|
401
438
|
//export const textureLevel = ( value, uv, level ) => texture( value, uv ).level( level );
|
|
402
439
|
|
|
403
440
|
export const sampler = ( aTexture ) => ( aTexture.isNode === true ? aTexture : texture( aTexture ) ).convert( 'sampler' );
|
|
404
|
-
|
|
405
|
-
addNodeElement( 'texture', texture );
|
|
406
|
-
//addNodeElement( 'textureLevel', textureLevel );
|
|
407
|
-
|
|
408
|
-
addNodeClass( 'TextureNode', TextureNode );
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
1
2
|
import Node from '../core/Node.js';
|
|
2
|
-
import {
|
|
3
|
-
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
|
|
3
|
+
import { nodeProxy } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
5
|
class TextureSizeNode extends Node {
|
|
6
6
|
|
|
@@ -28,8 +28,6 @@ class TextureSizeNode extends Node {
|
|
|
28
28
|
|
|
29
29
|
export default TextureSizeNode;
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
TextureSizeNode.type = /*@__PURE__*/ registerNode( 'TextureSize', TextureSizeNode );
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
addNodeClass( 'TextureSizeNode', TextureSizeNode );
|
|
33
|
+
export const textureSize = /*@__PURE__*/ nodeProxy( TextureSizeNode );
|
package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { nodeObject } from '../
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
2
|
+
import { nodeObject } from '../tsl/TSLBase.js';
|
|
3
3
|
import { NodeUpdateType } from '../core/constants.js';
|
|
4
4
|
import { getValueType } from '../core/NodeUtils.js';
|
|
5
5
|
import ArrayElementNode from '../utils/ArrayElementNode.js';
|
|
6
6
|
import BufferNode from './BufferNode.js';
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class UniformArrayElementNode extends ArrayElementNode {
|
|
9
9
|
|
|
10
10
|
constructor( arrayBuffer, indexNode ) {
|
|
11
11
|
|
|
@@ -32,7 +32,7 @@ class UniformsElementNode extends ArrayElementNode {
|
|
|
32
32
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
class
|
|
35
|
+
class UniformArrayNode extends BufferNode {
|
|
36
36
|
|
|
37
37
|
constructor( value, elementType = null ) {
|
|
38
38
|
|
|
@@ -118,8 +118,14 @@ class UniformsNode extends BufferNode {
|
|
|
118
118
|
this._elementType = this.elementType === null ? getValueType( this.array[ 0 ] ) : this.elementType;
|
|
119
119
|
this._elementLength = builder.getTypeLength( this._elementType );
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
let arrayType = Float32Array;
|
|
122
|
+
|
|
123
|
+
if ( this._elementType.charAt( 0 ) === 'i' ) arrayType = Int32Array;
|
|
124
|
+
else if ( this._elementType.charAt( 0 ) === 'u' ) arrayType = Uint32Array;
|
|
125
|
+
|
|
126
|
+
this.value = new arrayType( length * 4 );
|
|
122
127
|
this.bufferCount = length;
|
|
128
|
+
this.bufferType = builder.changeComponentType( 'vec4', builder.getComponentType( this._elementType ) );
|
|
123
129
|
|
|
124
130
|
return super.setup( builder );
|
|
125
131
|
|
|
@@ -127,14 +133,23 @@ class UniformsNode extends BufferNode {
|
|
|
127
133
|
|
|
128
134
|
element( indexNode ) {
|
|
129
135
|
|
|
130
|
-
return nodeObject( new
|
|
136
|
+
return nodeObject( new UniformArrayElementNode( this, nodeObject( indexNode ) ) );
|
|
131
137
|
|
|
132
138
|
}
|
|
133
139
|
|
|
134
140
|
}
|
|
135
141
|
|
|
136
|
-
export default
|
|
142
|
+
export default UniformArrayNode;
|
|
143
|
+
|
|
144
|
+
UniformArrayNode.type = /*@__PURE__*/ registerNode( 'UniformArray', UniformArrayNode );
|
|
145
|
+
|
|
146
|
+
export const uniformArray = ( values, nodeType ) => nodeObject( new UniformArrayNode( values, nodeType ) );
|
|
147
|
+
|
|
148
|
+
//
|
|
149
|
+
|
|
150
|
+
export const uniforms = ( values, nodeType ) => { // @deprecated, r168
|
|
137
151
|
|
|
138
|
-
|
|
152
|
+
console.warn( 'TSL.UniformArrayNode: uniforms() has been renamed to uniformArray().' );
|
|
153
|
+
return nodeObject( new UniformArrayNode( values, nodeType ) );
|
|
139
154
|
|
|
140
|
-
|
|
155
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
1
2
|
import ReferenceNode from './ReferenceNode.js';
|
|
2
|
-
import {
|
|
3
|
-
import { nodeObject } from '../shadernode/ShaderNode.js';
|
|
3
|
+
import { nodeObject } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
5
|
class UserDataNode extends ReferenceNode {
|
|
6
6
|
|
|
@@ -24,6 +24,6 @@ class UserDataNode extends ReferenceNode {
|
|
|
24
24
|
|
|
25
25
|
export default UserDataNode;
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
UserDataNode.type = /*@__PURE__*/ registerNode( 'UserData', UserDataNode );
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
export const userData = ( name, inputType, userData ) => nodeObject( new UserDataNode( name, inputType, userData ) );
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
2
|
+
import TempNode from '../core/TempNode.js';
|
|
3
|
+
import { modelViewMatrix } from './ModelNode.js';
|
|
4
|
+
import { positionLocal, positionPrevious } from './Position.js';
|
|
5
|
+
import { nodeImmutable } from '../tsl/TSLBase.js';
|
|
6
|
+
import { NodeUpdateType } from '../core/constants.js';
|
|
7
|
+
import { Matrix4 } from '../../math/Matrix4.js';
|
|
8
|
+
import { uniform } from '../core/UniformNode.js';
|
|
9
|
+
import { sub } from '../math/OperatorNode.js';
|
|
10
|
+
import { cameraProjectionMatrix } from './Camera.js';
|
|
11
|
+
|
|
12
|
+
const _matrixCache = new WeakMap();
|
|
13
|
+
|
|
14
|
+
class VelocityNode extends TempNode {
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
|
|
18
|
+
super( 'vec2' );
|
|
19
|
+
|
|
20
|
+
this.updateType = NodeUpdateType.OBJECT;
|
|
21
|
+
this.updateAfterType = NodeUpdateType.OBJECT;
|
|
22
|
+
|
|
23
|
+
this.previousProjectionMatrix = uniform( new Matrix4() );
|
|
24
|
+
this.previousModelViewMatrix = uniform( new Matrix4() );
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
update( { camera, object } ) {
|
|
29
|
+
|
|
30
|
+
const previousModelMatrix = getPreviousMatrix( object );
|
|
31
|
+
const previousCameraMatrix = getPreviousMatrix( camera );
|
|
32
|
+
|
|
33
|
+
this.previousModelViewMatrix.value.copy( previousModelMatrix );
|
|
34
|
+
this.previousProjectionMatrix.value.copy( previousCameraMatrix );
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
updateAfter( { camera, object } ) {
|
|
39
|
+
|
|
40
|
+
const previousModelMatrix = getPreviousMatrix( object );
|
|
41
|
+
const previousCameraMatrix = getPreviousMatrix( camera );
|
|
42
|
+
|
|
43
|
+
previousModelMatrix.copy( object.modelViewMatrix );
|
|
44
|
+
previousCameraMatrix.copy( camera.projectionMatrix );
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
setup( /*builder*/ ) {
|
|
49
|
+
|
|
50
|
+
const clipPositionCurrent = cameraProjectionMatrix.mul( modelViewMatrix ).mul( positionLocal );
|
|
51
|
+
const clipPositionPrevious = this.previousProjectionMatrix.mul( this.previousModelViewMatrix ).mul( positionPrevious );
|
|
52
|
+
|
|
53
|
+
const ndcPositionCurrent = clipPositionCurrent.xy.div( clipPositionCurrent.w );
|
|
54
|
+
const ndcPositionPrevious = clipPositionPrevious.xy.div( clipPositionPrevious.w );
|
|
55
|
+
|
|
56
|
+
const velocity = sub( ndcPositionCurrent, ndcPositionPrevious );
|
|
57
|
+
|
|
58
|
+
return velocity;
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function getPreviousMatrix( object ) {
|
|
65
|
+
|
|
66
|
+
let previousMatrix = _matrixCache.get( object );
|
|
67
|
+
|
|
68
|
+
if ( previousMatrix === undefined ) {
|
|
69
|
+
|
|
70
|
+
previousMatrix = new Matrix4();
|
|
71
|
+
_matrixCache.set( object, previousMatrix );
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return previousMatrix;
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export default VelocityNode;
|
|
80
|
+
|
|
81
|
+
VelocityNode.type = /*@__PURE__*/ registerNode( 'Velocity', VelocityNode );
|
|
82
|
+
|
|
83
|
+
export const velocity = /*@__PURE__*/ nodeImmutable( VelocityNode );
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
2
2
|
import AttributeNode from '../core/AttributeNode.js';
|
|
3
|
-
import { nodeObject } from '../
|
|
4
|
-
|
|
3
|
+
import { nodeObject } from '../tsl/TSLBase.js';
|
|
4
|
+
|
|
5
|
+
import { Vector4 } from '../../math/Vector4.js';
|
|
5
6
|
|
|
6
7
|
class VertexColorNode extends AttributeNode {
|
|
7
8
|
|
|
@@ -65,6 +66,6 @@ class VertexColorNode extends AttributeNode {
|
|
|
65
66
|
|
|
66
67
|
export default VertexColorNode;
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
VertexColorNode.type = /*@__PURE__*/ registerNode( 'VertexColor', VertexColorNode );
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
export const vertexColor = ( ...params ) => nodeObject( new VertexColorNode( ...params ) );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import { nodeProxy } from '../
|
|
1
|
+
import Node, { registerNode } from '../core/Node.js';
|
|
2
|
+
import { nodeProxy } from '../tsl/TSLBase.js';
|
|
3
3
|
|
|
4
4
|
class CodeNode extends Node {
|
|
5
5
|
|
|
@@ -75,10 +75,10 @@ class CodeNode extends Node {
|
|
|
75
75
|
|
|
76
76
|
export default CodeNode;
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
CodeNode.type = /*@__PURE__*/ registerNode( 'Code', CodeNode );
|
|
79
|
+
|
|
80
|
+
export const code = /*@__PURE__*/ nodeProxy( CodeNode );
|
|
79
81
|
|
|
80
82
|
export const js = ( src, includes ) => code( src, includes, 'js' );
|
|
81
83
|
export const wgsl = ( src, includes ) => code( src, includes, 'wgsl' );
|
|
82
84
|
export const glsl = ( src, includes ) => code( src, includes, 'glsl' );
|
|
83
|
-
|
|
84
|
-
addNodeClass( 'CodeNode', CodeNode );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Node, {
|
|
2
|
-
import { nodeProxy } from '../
|
|
1
|
+
import Node, { registerNode } from '../core/Node.js';
|
|
2
|
+
import { nodeProxy } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
4
|
class ExpressionNode extends Node {
|
|
5
5
|
|
|
@@ -32,6 +32,6 @@ class ExpressionNode extends Node {
|
|
|
32
32
|
|
|
33
33
|
export default ExpressionNode;
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
ExpressionNode.type = /*@__PURE__*/ registerNode( 'Expression', ExpressionNode );
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
export const expression = /*@__PURE__*/ nodeProxy( ExpressionNode );
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
1
2
|
import TempNode from '../core/TempNode.js';
|
|
2
|
-
import {
|
|
3
|
-
import { addNodeElement, nodeArray, nodeObject, nodeObjects } from '../shadernode/ShaderNode.js';
|
|
3
|
+
import { addMethodChaining, nodeArray, nodeObject, nodeObjects } from '../tsl/TSLCore.js';
|
|
4
4
|
|
|
5
5
|
class FunctionCallNode extends TempNode {
|
|
6
6
|
|
|
@@ -83,6 +83,8 @@ class FunctionCallNode extends TempNode {
|
|
|
83
83
|
|
|
84
84
|
export default FunctionCallNode;
|
|
85
85
|
|
|
86
|
+
FunctionCallNode.type = /*@__PURE__*/ registerNode( 'FunctionCall', FunctionCallNode );
|
|
87
|
+
|
|
86
88
|
export const call = ( func, ...params ) => {
|
|
87
89
|
|
|
88
90
|
params = params.length > 1 || ( params[ 0 ] && params[ 0 ].isNode === true ) ? nodeArray( params ) : nodeObjects( params[ 0 ] );
|
|
@@ -91,6 +93,4 @@ export const call = ( func, ...params ) => {
|
|
|
91
93
|
|
|
92
94
|
};
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
addNodeClass( 'FunctionCallNode', FunctionCallNode );
|
|
96
|
+
addMethodChaining( 'call', call );
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { registerNode } from '../core/Node.js';
|
|
1
2
|
import CodeNode from './CodeNode.js';
|
|
2
|
-
import {
|
|
3
|
-
import { nodeObject } from '../shadernode/ShaderNode.js';
|
|
3
|
+
import { nodeObject } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
5
|
class FunctionNode extends CodeNode {
|
|
6
6
|
|
|
@@ -8,8 +8,6 @@ class FunctionNode extends CodeNode {
|
|
|
8
8
|
|
|
9
9
|
super( code, includes, language );
|
|
10
10
|
|
|
11
|
-
this.keywords = {};
|
|
12
|
-
|
|
13
11
|
}
|
|
14
12
|
|
|
15
13
|
getNodeType( builder ) {
|
|
@@ -63,23 +61,7 @@ class FunctionNode extends CodeNode {
|
|
|
63
61
|
|
|
64
62
|
const propertyName = builder.getPropertyName( nodeCode );
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const keywords = this.keywords;
|
|
69
|
-
const keywordsProperties = Object.keys( keywords );
|
|
70
|
-
|
|
71
|
-
if ( keywordsProperties.length > 0 ) {
|
|
72
|
-
|
|
73
|
-
for ( const property of keywordsProperties ) {
|
|
74
|
-
|
|
75
|
-
const propertyRegExp = new RegExp( `\\b${property}\\b`, 'g' );
|
|
76
|
-
const nodeProperty = keywords[ property ].build( builder, 'property' );
|
|
77
|
-
|
|
78
|
-
code = code.replace( propertyRegExp, nodeProperty );
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}
|
|
64
|
+
const code = this.getNodeFunction( builder ).getCode( propertyName );
|
|
83
65
|
|
|
84
66
|
nodeCode.code = code + '\n';
|
|
85
67
|
|
|
@@ -99,6 +81,8 @@ class FunctionNode extends CodeNode {
|
|
|
99
81
|
|
|
100
82
|
export default FunctionNode;
|
|
101
83
|
|
|
84
|
+
FunctionNode.type = /*@__PURE__*/ registerNode( 'Function', FunctionNode );
|
|
85
|
+
|
|
102
86
|
const nativeFn = ( code, includes = [], language = '' ) => {
|
|
103
87
|
|
|
104
88
|
for ( let i = 0; i < includes.length; i ++ ) {
|
|
@@ -126,5 +110,3 @@ const nativeFn = ( code, includes = [], language = '' ) => {
|
|
|
126
110
|
|
|
127
111
|
export const glslFn = ( code, includes ) => nativeFn( code, includes, 'glsl' );
|
|
128
112
|
export const wgslFn = ( code, includes ) => nativeFn( code, includes, 'wgsl' );
|
|
129
|
-
|
|
130
|
-
addNodeClass( 'FunctionNode', FunctionNode );
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Node, {
|
|
1
|
+
import Node, { registerNode } from '../core/Node.js';
|
|
2
2
|
import { scriptableValue } from './ScriptableValueNode.js';
|
|
3
|
-
import {
|
|
3
|
+
import { nodeProxy, float } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
5
|
class Resources extends Map {
|
|
6
6
|
|
|
@@ -437,6 +437,20 @@ class ScriptableNode extends Node {
|
|
|
437
437
|
|
|
438
438
|
}
|
|
439
439
|
|
|
440
|
+
getCacheKey( force ) {
|
|
441
|
+
|
|
442
|
+
const cacheKey = [ this.source, this.getDefaultOutputNode().getCacheKey( force ) ];
|
|
443
|
+
|
|
444
|
+
for ( const param in this.parameters ) {
|
|
445
|
+
|
|
446
|
+
cacheKey.push( this.parameters[ param ].getCacheKey( force ) );
|
|
447
|
+
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
return cacheKey.join( ',' );
|
|
451
|
+
|
|
452
|
+
}
|
|
453
|
+
|
|
440
454
|
set needsUpdate( value ) {
|
|
441
455
|
|
|
442
456
|
if ( value === true ) this.dispose();
|
|
@@ -481,8 +495,6 @@ class ScriptableNode extends Node {
|
|
|
481
495
|
|
|
482
496
|
export default ScriptableNode;
|
|
483
497
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
addNodeElement( 'scriptable', scriptable );
|
|
498
|
+
ScriptableNode.type = /*@__PURE__*/ registerNode( 'Scriptable', ScriptableNode );
|
|
487
499
|
|
|
488
|
-
|
|
500
|
+
export const scriptable = /*@__PURE__*/ nodeProxy( ScriptableNode );
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import Node, {
|
|
1
|
+
import Node, { registerNode } from '../core/Node.js';
|
|
2
2
|
import { arrayBufferToBase64, base64ToArrayBuffer } from '../core/NodeUtils.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { nodeProxy, float } from '../tsl/TSLBase.js';
|
|
4
|
+
|
|
5
|
+
import { EventDispatcher } from '../../core/EventDispatcher.js';
|
|
5
6
|
|
|
6
7
|
class ScriptableValueNode extends Node {
|
|
7
8
|
|
|
@@ -160,8 +161,6 @@ class ScriptableValueNode extends Node {
|
|
|
160
161
|
|
|
161
162
|
export default ScriptableValueNode;
|
|
162
163
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
addNodeElement( 'scriptableValue', scriptableValue );
|
|
164
|
+
ScriptableValueNode.type = /*@__PURE__*/ registerNode( 'ScriptableValue', ScriptableValueNode );
|
|
166
165
|
|
|
167
|
-
|
|
166
|
+
export const scriptableValue = /*@__PURE__*/ nodeProxy( ScriptableValueNode );
|