super-three 0.177.0 → 0.181.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/README.md +1 -1
- package/build/three.cjs +1994 -749
- package/build/three.core.js +1358 -506
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +631 -247
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +113 -33
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +9571 -3424
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +9397 -3426
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +2 -3
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +0 -27
- package/examples/jsm/capabilities/WebGPU.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +9 -9
- package/examples/jsm/controls/DragControls.js +7 -57
- package/examples/jsm/controls/FirstPersonControls.js +3 -3
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +62 -15
- package/examples/jsm/csm/CSMShadowNode.js +4 -4
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/RoomEnvironment.js +8 -3
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +33 -25
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +683 -299
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/RoundedBoxGeometry.js +47 -8
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +11 -13
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +75 -58
- package/examples/jsm/lights/LightProbeGenerator.js +14 -3
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +4 -4
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +210 -22
- package/examples/jsm/loaders/FBXLoader.js +4 -4
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +14 -8
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +136 -49
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +233 -34
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TTFLoader.js +13 -1
- package/examples/jsm/loaders/USDLoader.js +219 -0
- package/examples/jsm/loaders/USDZLoader.js +4 -892
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +741 -0
- package/examples/jsm/loaders/usd/USDCParser.js +17 -0
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +3 -3
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +3 -3
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/physics/RapierPhysics.js +95 -16
- package/examples/jsm/postprocessing/GTAOPass.js +10 -9
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +17 -17
- package/examples/jsm/postprocessing/SSAOPass.js +10 -9
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +11 -2
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +381 -30
- package/examples/jsm/transpiler/GLSLDecoder.js +247 -104
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/TSLEncoder.js +196 -92
- package/examples/jsm/transpiler/Transpiler.js +17 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +812 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
- package/examples/jsm/tsl/display/BloomNode.js +11 -6
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +207 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/GTAONode.js +53 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +55 -43
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +182 -65
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +578 -0
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +18 -20
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +22 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +5 -2
- package/src/Three.TSL.js +112 -32
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +4 -0
- package/src/animation/AnimationClip.js +20 -4
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +8 -7
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +14 -0
- package/src/cameras/OrthographicCamera.js +2 -2
- package/src/cameras/PerspectiveCamera.js +2 -2
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +13 -5
- package/src/core/BufferAttribute.js +3 -3
- package/src/core/BufferGeometry.js +10 -10
- package/src/core/Clock.js +2 -8
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/GLBufferAttribute.js +13 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +4 -3
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/{examples/jsm/misc → src/core}/Timer.js +4 -42
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +279 -55
- package/src/extras/TextureUtils.js +2 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/Path.js +22 -22
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +42 -12
- package/src/helpers/SkeletonHelper.js +35 -6
- package/src/lights/LightShadow.js +21 -8
- package/src/lights/PointLightShadow.js +1 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +29 -5
- package/src/loaders/ImageBitmapLoader.js +32 -8
- package/src/loaders/ImageLoader.js +56 -9
- package/src/loaders/Loader.js +17 -3
- package/src/loaders/LoadingManager.js +45 -0
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +16 -3
- package/src/materials/MeshBasicMaterial.js +2 -1
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -10
- package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
- package/src/materials/nodes/MeshSSSNodeMaterial.js +3 -3
- package/src/materials/nodes/NodeMaterial.js +90 -27
- package/src/materials/nodes/PointsNodeMaterial.js +86 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +89 -3
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/Frustum.js +25 -9
- package/src/math/FrustumArray.js +10 -5
- package/src/math/Line3.js +129 -2
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +55 -34
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +69 -67
- package/src/math/Spherical.js +3 -3
- package/src/nodes/Nodes.js +6 -4
- package/src/nodes/TSL.js +9 -4
- package/src/nodes/accessors/AccessorsUtils.js +7 -8
- package/src/nodes/accessors/Bitangent.js +31 -25
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +142 -16
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +5 -4
- package/src/nodes/accessors/InstanceNode.js +25 -5
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +97 -30
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +25 -9
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +20 -4
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SceneNode.js +3 -2
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +23 -1
- package/src/nodes/accessors/Tangent.js +25 -17
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/Texture3DNode.js +14 -1
- package/src/nodes/accessors/TextureBicubic.js +21 -3
- package/src/nodes/accessors/TextureNode.js +142 -44
- package/src/nodes/accessors/UniformArrayNode.js +0 -16
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +13 -0
- package/src/nodes/core/AssignNode.js +6 -2
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +48 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +36 -17
- package/src/nodes/core/Node.js +167 -34
- package/src/nodes/core/NodeBuilder.js +404 -120
- package/src/nodes/core/NodeFrame.js +21 -21
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +17 -88
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +77 -30
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/UniformNode.js +80 -14
- package/src/nodes/core/VarNode.js +142 -16
- package/src/nodes/core/VaryingNode.js +9 -6
- package/src/nodes/display/BlendModes.js +7 -6
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/FrontFacingNode.js +35 -7
- package/src/nodes/display/NormalMapNode.js +20 -50
- package/src/nodes/display/PassNode.js +206 -17
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -40
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +94 -4
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhongLightingModel.js +3 -3
- package/src/nodes/functions/PhysicalLightingModel.js +19 -18
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +81 -25
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +29 -3
- package/src/nodes/lighting/EnvironmentNode.js +11 -11
- package/src/nodes/lighting/LightsNode.js +7 -8
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ProjectorLightNode.js +19 -6
- package/src/nodes/lighting/ShadowFilterNode.js +3 -1
- package/src/nodes/lighting/ShadowNode.js +77 -10
- package/src/nodes/materialx/MaterialXNodes.js +131 -2
- package/src/nodes/materialx/lib/mx_noise.js +165 -1
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +25 -27
- package/src/nodes/math/MathNode.js +106 -65
- package/src/nodes/math/OperatorNode.js +28 -43
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -2
- package/src/nodes/tsl/TSLCore.js +546 -186
- package/src/nodes/utils/DebugNode.js +3 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/EventNode.js +119 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +6 -3
- package/src/nodes/utils/LoopNode.js +20 -41
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +33 -6
- package/src/nodes/utils/ReflectorNode.js +68 -10
- package/src/nodes/utils/SampleNode.js +91 -0
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/objects/BatchedMesh.js +6 -4
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +77 -66
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +108 -27
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/Bindings.js +76 -19
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/Color4.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/Pipelines.js +1 -1
- package/src/renderers/common/PostProcessing.js +61 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +84 -5
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +486 -255
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +8 -68
- package/src/renderers/common/Sampler.js +117 -0
- package/src/renderers/common/Storage3DTexture.js +100 -0
- package/src/renderers/common/StorageArrayTexture.js +84 -0
- package/src/renderers/common/StorageTexture.js +27 -0
- package/src/renderers/common/Textures.js +138 -46
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +63 -24
- package/src/renderers/common/XRRenderTarget.js +21 -4
- package/src/renderers/common/extras/PMREMGenerator.js +161 -66
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/NodeSampledTexture.js +0 -12
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +21 -11
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +11 -2
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLCapabilities.js +4 -3
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +25 -18
- package/src/renderers/webgl/WebGLPrograms.js +9 -6
- package/src/renderers/webgl/WebGLShadowMap.js +13 -2
- package/src/renderers/webgl/WebGLState.js +17 -16
- package/src/renderers/webgl/WebGLTextures.js +38 -21
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +245 -182
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +184 -30
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +9 -8
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +171 -19
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +205 -128
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +198 -121
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +8 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +49 -33
- package/src/renderers/webgpu/utils/WebGPUConstants.js +14 -3
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +56 -37
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +266 -158
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +24 -19
- package/src/renderers/webxr/WebXRDepthSensing.js +6 -10
- package/src/renderers/webxr/WebXRManager.js +89 -13
- package/src/textures/ExternalTexture.js +56 -0
- package/src/textures/FramebufferTexture.js +2 -2
- package/src/textures/Source.js +14 -3
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +29 -2
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/tsl/display/TRAAPassNode.js +0 -452
- package/src/nodes/utils/EquirectUVNode.js +0 -65
- package/src/nodes/utils/MatcapUVNode.js +0 -49
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Node from '../core/Node.js';
|
|
2
2
|
import { property } from '../core/PropertyNode.js';
|
|
3
3
|
import { addMethodChaining, nodeProxy } from '../tsl/TSLCore.js';
|
|
4
|
+
import { warn } from '../../utils.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Represents a logical `if/else` statement. Can be used as an alternative
|
|
@@ -73,7 +74,7 @@ class ConditionalNode extends Node {
|
|
|
73
74
|
|
|
74
75
|
// fallback setup
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
builder.flowBuildStage( this, 'setup' );
|
|
77
78
|
|
|
78
79
|
return this.getNodeType( builder );
|
|
79
80
|
|
|
@@ -99,9 +100,9 @@ class ConditionalNode extends Node {
|
|
|
99
100
|
|
|
100
101
|
setup( builder ) {
|
|
101
102
|
|
|
102
|
-
const condNode = this.condNode
|
|
103
|
-
const ifNode = this.ifNode.
|
|
104
|
-
const elseNode = this.elseNode ? this.elseNode.
|
|
103
|
+
const condNode = this.condNode;
|
|
104
|
+
const ifNode = this.ifNode.isolate();
|
|
105
|
+
const elseNode = this.elseNode ? this.elseNode.isolate() : null;
|
|
105
106
|
|
|
106
107
|
//
|
|
107
108
|
|
|
@@ -112,10 +113,12 @@ class ConditionalNode extends Node {
|
|
|
112
113
|
|
|
113
114
|
//
|
|
114
115
|
|
|
116
|
+
const isUniformFlow = builder.context.uniformFlow;
|
|
117
|
+
|
|
115
118
|
const properties = builder.getNodeProperties( this );
|
|
116
119
|
properties.condNode = condNode;
|
|
117
|
-
properties.ifNode = ifNode.context( { nodeBlock: ifNode } );
|
|
118
|
-
properties.elseNode = elseNode ? elseNode.context( { nodeBlock: elseNode } ) : null;
|
|
120
|
+
properties.ifNode = isUniformFlow ? ifNode : ifNode.context( { nodeBlock: ifNode } );
|
|
121
|
+
properties.elseNode = elseNode ? ( isUniformFlow ? elseNode : elseNode.context( { nodeBlock: elseNode } ) ) : null;
|
|
119
122
|
|
|
120
123
|
}
|
|
121
124
|
|
|
@@ -140,6 +143,20 @@ class ConditionalNode extends Node {
|
|
|
140
143
|
nodeData.nodeProperty = nodeProperty;
|
|
141
144
|
|
|
142
145
|
const nodeSnippet = condNode.build( builder, 'bool' );
|
|
146
|
+
const isUniformFlow = builder.context.uniformFlow;
|
|
147
|
+
|
|
148
|
+
if ( isUniformFlow && elseNode !== null ) {
|
|
149
|
+
|
|
150
|
+
const ifSnippet = ifNode.build( builder, type );
|
|
151
|
+
const elseSnippet = elseNode.build( builder, type );
|
|
152
|
+
|
|
153
|
+
const mathSnippet = builder.getTernary( nodeSnippet, ifSnippet, elseSnippet );
|
|
154
|
+
|
|
155
|
+
// TODO: If node property already exists return something else
|
|
156
|
+
|
|
157
|
+
return builder.format( mathSnippet, type, output );
|
|
158
|
+
|
|
159
|
+
}
|
|
143
160
|
|
|
144
161
|
builder.addFlowCode( `\n${ builder.tab }if ( ${ nodeSnippet } ) {\n\n` ).addFlowTab();
|
|
145
162
|
|
|
@@ -157,7 +174,7 @@ class ConditionalNode extends Node {
|
|
|
157
174
|
|
|
158
175
|
if ( functionNode === null ) {
|
|
159
176
|
|
|
160
|
-
|
|
177
|
+
warn( 'TSL: Return statement used in an inline \'Fn()\'. Define a layout struct to allow return values.' );
|
|
161
178
|
|
|
162
179
|
ifSnippet = '// ' + ifSnippet;
|
|
163
180
|
|
|
@@ -187,7 +204,7 @@ class ConditionalNode extends Node {
|
|
|
187
204
|
|
|
188
205
|
if ( functionNode === null ) {
|
|
189
206
|
|
|
190
|
-
|
|
207
|
+
warn( 'TSL: Return statement used in an inline \'Fn()\'. Define a layout struct to allow return values.' );
|
|
191
208
|
|
|
192
209
|
elseSnippet = '// ' + elseSnippet;
|
|
193
210
|
|
|
@@ -226,22 +243,3 @@ export default ConditionalNode;
|
|
|
226
243
|
export const select = /*@__PURE__*/ nodeProxy( ConditionalNode ).setParameterLength( 2, 3 );
|
|
227
244
|
|
|
228
245
|
addMethodChaining( 'select', select );
|
|
229
|
-
|
|
230
|
-
// Deprecated
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* @tsl
|
|
234
|
-
* @function
|
|
235
|
-
* @deprecated since r168. Use {@link select} instead.
|
|
236
|
-
*
|
|
237
|
-
* @param {...any} params
|
|
238
|
-
* @returns {ConditionalNode}
|
|
239
|
-
*/
|
|
240
|
-
export const cond = ( ...params ) => { // @deprecated, r168
|
|
241
|
-
|
|
242
|
-
console.warn( 'THREE.TSL: cond() has been renamed to select().' );
|
|
243
|
-
return select( ...params );
|
|
244
|
-
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
addMethodChaining( 'cond', cond );
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import TempNode from '../core/TempNode.js';
|
|
2
2
|
import { sub, mul, div, mod, equal } from './OperatorNode.js';
|
|
3
|
-
import { addMethodChaining, nodeObject,
|
|
3
|
+
import { addMethodChaining, nodeObject, nodeProxyIntent, float, vec2, vec3, vec4, Fn } from '../tsl/TSLCore.js';
|
|
4
4
|
import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../../constants.js';
|
|
5
|
+
import { warn } from '../../utils.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* This node represents a variety of mathematical methods available in shaders.
|
|
@@ -290,7 +291,7 @@ class MathNode extends TempNode {
|
|
|
290
291
|
|
|
291
292
|
if ( builder.shaderStage !== 'fragment' && ( method === MathNode.DFDX || method === MathNode.DFDY ) ) {
|
|
292
293
|
|
|
293
|
-
|
|
294
|
+
warn( `TSL: '${ method }' is not supported in the ${ builder.shaderStage } stage.` );
|
|
294
295
|
|
|
295
296
|
method = '/*' + method + '*/';
|
|
296
297
|
|
|
@@ -361,10 +362,11 @@ MathNode.RECIPROCAL = 'reciprocal';
|
|
|
361
362
|
MathNode.TRUNC = 'trunc';
|
|
362
363
|
MathNode.FWIDTH = 'fwidth';
|
|
363
364
|
MathNode.TRANSPOSE = 'transpose';
|
|
365
|
+
MathNode.DETERMINANT = 'determinant';
|
|
366
|
+
MathNode.INVERSE = 'inverse';
|
|
364
367
|
|
|
365
368
|
// 2 inputs
|
|
366
369
|
|
|
367
|
-
MathNode.BITCAST = 'bitcast';
|
|
368
370
|
MathNode.EQUALS = 'equals';
|
|
369
371
|
MathNode.MIN = 'min';
|
|
370
372
|
MathNode.MAX = 'max';
|
|
@@ -413,13 +415,30 @@ export const INFINITY = /*@__PURE__*/ float( 1e6 );
|
|
|
413
415
|
*/
|
|
414
416
|
export const PI = /*@__PURE__*/ float( Math.PI );
|
|
415
417
|
|
|
418
|
+
/**
|
|
419
|
+
* Represents PI * 2. Please use the non-deprecated version `TWO_PI`.
|
|
420
|
+
*
|
|
421
|
+
* @tsl
|
|
422
|
+
* @deprecated
|
|
423
|
+
* @type {Node<float>}
|
|
424
|
+
*/
|
|
425
|
+
export const PI2 = /*@__PURE__*/ float( Math.PI * 2 ); // @deprecated r181
|
|
426
|
+
|
|
416
427
|
/**
|
|
417
428
|
* Represents PI * 2.
|
|
418
429
|
*
|
|
419
430
|
* @tsl
|
|
420
431
|
* @type {Node<float>}
|
|
421
432
|
*/
|
|
422
|
-
export const
|
|
433
|
+
export const TWO_PI = /*@__PURE__*/ float( Math.PI * 2 );
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Represents PI / 2.
|
|
437
|
+
*
|
|
438
|
+
* @tsl
|
|
439
|
+
* @type {Node<float>}
|
|
440
|
+
*/
|
|
441
|
+
export const HALF_PI = /*@__PURE__*/ float( Math.PI * 0.5 );
|
|
423
442
|
|
|
424
443
|
/**
|
|
425
444
|
* Returns `true` if all components of `x` are `true`.
|
|
@@ -429,7 +448,7 @@ export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
|
|
|
429
448
|
* @param {Node | number} x - The parameter.
|
|
430
449
|
* @returns {Node<bool>}
|
|
431
450
|
*/
|
|
432
|
-
export const all = /*@__PURE__*/
|
|
451
|
+
export const all = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ALL ).setParameterLength( 1 );
|
|
433
452
|
|
|
434
453
|
/**
|
|
435
454
|
* Returns `true` if any components of `x` are `true`.
|
|
@@ -439,7 +458,7 @@ export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL ).setParamete
|
|
|
439
458
|
* @param {Node | number} x - The parameter.
|
|
440
459
|
* @returns {Node<bool>}
|
|
441
460
|
*/
|
|
442
|
-
export const any = /*@__PURE__*/
|
|
461
|
+
export const any = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ANY ).setParameterLength( 1 );
|
|
443
462
|
|
|
444
463
|
/**
|
|
445
464
|
* Converts a quantity in degrees to radians.
|
|
@@ -449,7 +468,7 @@ export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY ).setParamete
|
|
|
449
468
|
* @param {Node | number} x - The input in degrees.
|
|
450
469
|
* @returns {Node}
|
|
451
470
|
*/
|
|
452
|
-
export const radians = /*@__PURE__*/
|
|
471
|
+
export const radians = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.RADIANS ).setParameterLength( 1 );
|
|
453
472
|
|
|
454
473
|
/**
|
|
455
474
|
* Convert a quantity in radians to degrees.
|
|
@@ -459,7 +478,7 @@ export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS ).set
|
|
|
459
478
|
* @param {Node | number} x - The input in radians.
|
|
460
479
|
* @returns {Node}
|
|
461
480
|
*/
|
|
462
|
-
export const degrees = /*@__PURE__*/
|
|
481
|
+
export const degrees = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DEGREES ).setParameterLength( 1 );
|
|
463
482
|
|
|
464
483
|
/**
|
|
465
484
|
* Returns the natural exponentiation of the parameter.
|
|
@@ -469,7 +488,7 @@ export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES ).set
|
|
|
469
488
|
* @param {Node | number} x - The parameter.
|
|
470
489
|
* @returns {Node}
|
|
471
490
|
*/
|
|
472
|
-
export const exp = /*@__PURE__*/
|
|
491
|
+
export const exp = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.EXP ).setParameterLength( 1 );
|
|
473
492
|
|
|
474
493
|
/**
|
|
475
494
|
* Returns 2 raised to the power of the parameter.
|
|
@@ -479,7 +498,7 @@ export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP ).setParamete
|
|
|
479
498
|
* @param {Node | number} x - The parameter.
|
|
480
499
|
* @returns {Node}
|
|
481
500
|
*/
|
|
482
|
-
export const exp2 = /*@__PURE__*/
|
|
501
|
+
export const exp2 = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.EXP2 ).setParameterLength( 1 );
|
|
483
502
|
|
|
484
503
|
/**
|
|
485
504
|
* Returns the natural logarithm of the parameter.
|
|
@@ -489,7 +508,7 @@ export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 ).setParame
|
|
|
489
508
|
* @param {Node | number} x - The parameter.
|
|
490
509
|
* @returns {Node}
|
|
491
510
|
*/
|
|
492
|
-
export const log = /*@__PURE__*/
|
|
511
|
+
export const log = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.LOG ).setParameterLength( 1 );
|
|
493
512
|
|
|
494
513
|
/**
|
|
495
514
|
* Returns the base 2 logarithm of the parameter.
|
|
@@ -499,7 +518,7 @@ export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG ).setParamete
|
|
|
499
518
|
* @param {Node | number} x - The parameter.
|
|
500
519
|
* @returns {Node}
|
|
501
520
|
*/
|
|
502
|
-
export const log2 = /*@__PURE__*/
|
|
521
|
+
export const log2 = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.LOG2 ).setParameterLength( 1 );
|
|
503
522
|
|
|
504
523
|
/**
|
|
505
524
|
* Returns the square root of the parameter.
|
|
@@ -509,7 +528,7 @@ export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 ).setParame
|
|
|
509
528
|
* @param {Node | number} x - The parameter.
|
|
510
529
|
* @returns {Node}
|
|
511
530
|
*/
|
|
512
|
-
export const sqrt = /*@__PURE__*/
|
|
531
|
+
export const sqrt = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.SQRT ).setParameterLength( 1 );
|
|
513
532
|
|
|
514
533
|
/**
|
|
515
534
|
* Returns the inverse of the square root of the parameter.
|
|
@@ -519,7 +538,7 @@ export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT ).setParame
|
|
|
519
538
|
* @param {Node | number} x - The parameter.
|
|
520
539
|
* @returns {Node}
|
|
521
540
|
*/
|
|
522
|
-
export const inverseSqrt = /*@__PURE__*/
|
|
541
|
+
export const inverseSqrt = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.INVERSE_SQRT ).setParameterLength( 1 );
|
|
523
542
|
|
|
524
543
|
/**
|
|
525
544
|
* Finds the nearest integer less than or equal to the parameter.
|
|
@@ -529,7 +548,7 @@ export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_S
|
|
|
529
548
|
* @param {Node | number} x - The parameter.
|
|
530
549
|
* @returns {Node}
|
|
531
550
|
*/
|
|
532
|
-
export const floor = /*@__PURE__*/
|
|
551
|
+
export const floor = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.FLOOR ).setParameterLength( 1 );
|
|
533
552
|
|
|
534
553
|
/**
|
|
535
554
|
* Finds the nearest integer that is greater than or equal to the parameter.
|
|
@@ -539,7 +558,7 @@ export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR ).setPara
|
|
|
539
558
|
* @param {Node | number} x - The parameter.
|
|
540
559
|
* @returns {Node}
|
|
541
560
|
*/
|
|
542
|
-
export const ceil = /*@__PURE__*/
|
|
561
|
+
export const ceil = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.CEIL ).setParameterLength( 1 );
|
|
543
562
|
|
|
544
563
|
/**
|
|
545
564
|
* Calculates the unit vector in the same direction as the original vector.
|
|
@@ -549,7 +568,7 @@ export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL ).setParame
|
|
|
549
568
|
* @param {Node} x - The input vector.
|
|
550
569
|
* @returns {Node}
|
|
551
570
|
*/
|
|
552
|
-
export const normalize = /*@__PURE__*/
|
|
571
|
+
export const normalize = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.NORMALIZE ).setParameterLength( 1 );
|
|
553
572
|
|
|
554
573
|
/**
|
|
555
574
|
* Computes the fractional part of the parameter.
|
|
@@ -559,7 +578,7 @@ export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE )
|
|
|
559
578
|
* @param {Node | number} x - The parameter.
|
|
560
579
|
* @returns {Node}
|
|
561
580
|
*/
|
|
562
|
-
export const fract = /*@__PURE__*/
|
|
581
|
+
export const fract = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.FRACT ).setParameterLength( 1 );
|
|
563
582
|
|
|
564
583
|
/**
|
|
565
584
|
* Returns the sine of the parameter.
|
|
@@ -569,7 +588,7 @@ export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT ).setPara
|
|
|
569
588
|
* @param {Node | number} x - The parameter.
|
|
570
589
|
* @returns {Node}
|
|
571
590
|
*/
|
|
572
|
-
export const sin = /*@__PURE__*/
|
|
591
|
+
export const sin = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.SIN ).setParameterLength( 1 );
|
|
573
592
|
|
|
574
593
|
/**
|
|
575
594
|
* Returns the cosine of the parameter.
|
|
@@ -579,7 +598,7 @@ export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN ).setParamete
|
|
|
579
598
|
* @param {Node | number} x - The parameter.
|
|
580
599
|
* @returns {Node}
|
|
581
600
|
*/
|
|
582
|
-
export const cos = /*@__PURE__*/
|
|
601
|
+
export const cos = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.COS ).setParameterLength( 1 );
|
|
583
602
|
|
|
584
603
|
/**
|
|
585
604
|
* Returns the tangent of the parameter.
|
|
@@ -589,7 +608,7 @@ export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS ).setParamete
|
|
|
589
608
|
* @param {Node | number} x - The parameter.
|
|
590
609
|
* @returns {Node}
|
|
591
610
|
*/
|
|
592
|
-
export const tan = /*@__PURE__*/
|
|
611
|
+
export const tan = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.TAN ).setParameterLength( 1 );
|
|
593
612
|
|
|
594
613
|
/**
|
|
595
614
|
* Returns the arcsine of the parameter.
|
|
@@ -599,7 +618,7 @@ export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN ).setParamete
|
|
|
599
618
|
* @param {Node | number} x - The parameter.
|
|
600
619
|
* @returns {Node}
|
|
601
620
|
*/
|
|
602
|
-
export const asin = /*@__PURE__*/
|
|
621
|
+
export const asin = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ASIN ).setParameterLength( 1 );
|
|
603
622
|
|
|
604
623
|
/**
|
|
605
624
|
* Returns the arccosine of the parameter.
|
|
@@ -609,7 +628,7 @@ export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN ).setParame
|
|
|
609
628
|
* @param {Node | number} x - The parameter.
|
|
610
629
|
* @returns {Node}
|
|
611
630
|
*/
|
|
612
|
-
export const acos = /*@__PURE__*/
|
|
631
|
+
export const acos = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ACOS ).setParameterLength( 1 );
|
|
613
632
|
|
|
614
633
|
/**
|
|
615
634
|
* Returns the arc-tangent of the parameter.
|
|
@@ -621,7 +640,7 @@ export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS ).setParame
|
|
|
621
640
|
* @param {?(Node | number)} x - The x parameter.
|
|
622
641
|
* @returns {Node}
|
|
623
642
|
*/
|
|
624
|
-
export const atan = /*@__PURE__*/
|
|
643
|
+
export const atan = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ATAN ).setParameterLength( 1, 2 );
|
|
625
644
|
|
|
626
645
|
/**
|
|
627
646
|
* Returns the absolute value of the parameter.
|
|
@@ -631,7 +650,7 @@ export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN ).setParame
|
|
|
631
650
|
* @param {Node | number} x - The parameter.
|
|
632
651
|
* @returns {Node}
|
|
633
652
|
*/
|
|
634
|
-
export const abs = /*@__PURE__*/
|
|
653
|
+
export const abs = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ABS ).setParameterLength( 1 );
|
|
635
654
|
|
|
636
655
|
/**
|
|
637
656
|
* Extracts the sign of the parameter.
|
|
@@ -641,7 +660,7 @@ export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS ).setParamete
|
|
|
641
660
|
* @param {Node | number} x - The parameter.
|
|
642
661
|
* @returns {Node}
|
|
643
662
|
*/
|
|
644
|
-
export const sign = /*@__PURE__*/
|
|
663
|
+
export const sign = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.SIGN ).setParameterLength( 1 );
|
|
645
664
|
|
|
646
665
|
/**
|
|
647
666
|
* Calculates the length of a vector.
|
|
@@ -651,7 +670,7 @@ export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN ).setParame
|
|
|
651
670
|
* @param {Node} x - The parameter.
|
|
652
671
|
* @returns {Node<float>}
|
|
653
672
|
*/
|
|
654
|
-
export const length = /*@__PURE__*/
|
|
673
|
+
export const length = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.LENGTH ).setParameterLength( 1 );
|
|
655
674
|
|
|
656
675
|
/**
|
|
657
676
|
* Negates the value of the parameter (-x).
|
|
@@ -661,7 +680,7 @@ export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH ).setPa
|
|
|
661
680
|
* @param {Node | number} x - The parameter.
|
|
662
681
|
* @returns {Node}
|
|
663
682
|
*/
|
|
664
|
-
export const negate = /*@__PURE__*/
|
|
683
|
+
export const negate = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.NEGATE ).setParameterLength( 1 );
|
|
665
684
|
|
|
666
685
|
/**
|
|
667
686
|
* Return `1` minus the parameter.
|
|
@@ -671,7 +690,7 @@ export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE ).setPa
|
|
|
671
690
|
* @param {Node | number} x - The parameter.
|
|
672
691
|
* @returns {Node}
|
|
673
692
|
*/
|
|
674
|
-
export const oneMinus = /*@__PURE__*/
|
|
693
|
+
export const oneMinus = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ONE_MINUS ).setParameterLength( 1 );
|
|
675
694
|
|
|
676
695
|
/**
|
|
677
696
|
* Returns the partial derivative of the parameter with respect to x.
|
|
@@ -681,7 +700,7 @@ export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS ).
|
|
|
681
700
|
* @param {Node | number} x - The parameter.
|
|
682
701
|
* @returns {Node}
|
|
683
702
|
*/
|
|
684
|
-
export const dFdx = /*@__PURE__*/
|
|
703
|
+
export const dFdx = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DFDX ).setParameterLength( 1 );
|
|
685
704
|
|
|
686
705
|
/**
|
|
687
706
|
* Returns the partial derivative of the parameter with respect to y.
|
|
@@ -691,7 +710,7 @@ export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX ).setParame
|
|
|
691
710
|
* @param {Node | number} x - The parameter.
|
|
692
711
|
* @returns {Node}
|
|
693
712
|
*/
|
|
694
|
-
export const dFdy = /*@__PURE__*/
|
|
713
|
+
export const dFdy = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DFDY ).setParameterLength( 1 );
|
|
695
714
|
|
|
696
715
|
/**
|
|
697
716
|
* Rounds the parameter to the nearest integer.
|
|
@@ -701,7 +720,7 @@ export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY ).setParame
|
|
|
701
720
|
* @param {Node | number} x - The parameter.
|
|
702
721
|
* @returns {Node}
|
|
703
722
|
*/
|
|
704
|
-
export const round = /*@__PURE__*/
|
|
723
|
+
export const round = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.ROUND ).setParameterLength( 1 );
|
|
705
724
|
|
|
706
725
|
/**
|
|
707
726
|
* Returns the reciprocal of the parameter `(1/x)`.
|
|
@@ -711,7 +730,7 @@ export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND ).setPara
|
|
|
711
730
|
* @param {Node | number} x - The parameter.
|
|
712
731
|
* @returns {Node}
|
|
713
732
|
*/
|
|
714
|
-
export const reciprocal = /*@__PURE__*/
|
|
733
|
+
export const reciprocal = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.RECIPROCAL ).setParameterLength( 1 );
|
|
715
734
|
|
|
716
735
|
/**
|
|
717
736
|
* Truncates the parameter, removing the fractional part.
|
|
@@ -721,7 +740,7 @@ export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL
|
|
|
721
740
|
* @param {Node | number} x - The parameter.
|
|
722
741
|
* @returns {Node}
|
|
723
742
|
*/
|
|
724
|
-
export const trunc = /*@__PURE__*/
|
|
743
|
+
export const trunc = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.TRUNC ).setParameterLength( 1 );
|
|
725
744
|
|
|
726
745
|
/**
|
|
727
746
|
* Returns the sum of the absolute derivatives in x and y.
|
|
@@ -731,7 +750,7 @@ export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC ).setPara
|
|
|
731
750
|
* @param {Node | number} x - The parameter.
|
|
732
751
|
* @returns {Node}
|
|
733
752
|
*/
|
|
734
|
-
export const fwidth = /*@__PURE__*/
|
|
753
|
+
export const fwidth = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.FWIDTH ).setParameterLength( 1 );
|
|
735
754
|
|
|
736
755
|
/**
|
|
737
756
|
* Returns the transpose of a matrix.
|
|
@@ -741,20 +760,29 @@ export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH ).setPa
|
|
|
741
760
|
* @param {Node<mat2|mat3|mat4>} x - The parameter.
|
|
742
761
|
* @returns {Node}
|
|
743
762
|
*/
|
|
744
|
-
export const transpose = /*@__PURE__*/
|
|
763
|
+
export const transpose = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.TRANSPOSE ).setParameterLength( 1 );
|
|
745
764
|
|
|
746
|
-
|
|
765
|
+
/**
|
|
766
|
+
* Returns the determinant of a matrix.
|
|
767
|
+
*
|
|
768
|
+
* @tsl
|
|
769
|
+
* @function
|
|
770
|
+
* @param {Node<mat2|mat3|mat4>} x - The parameter.
|
|
771
|
+
* @returns {Node<float>}
|
|
772
|
+
*/
|
|
773
|
+
export const determinant = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DETERMINANT ).setParameterLength( 1 );
|
|
747
774
|
|
|
748
775
|
/**
|
|
749
|
-
*
|
|
776
|
+
* Returns the inverse of a matrix.
|
|
750
777
|
*
|
|
751
778
|
* @tsl
|
|
752
779
|
* @function
|
|
753
|
-
* @param {Node
|
|
754
|
-
* @
|
|
755
|
-
* @returns {Node}
|
|
780
|
+
* @param {Node<mat2|mat3|mat4>} x - The parameter.
|
|
781
|
+
* @returns {Node<mat2|mat3|mat4>}
|
|
756
782
|
*/
|
|
757
|
-
export const
|
|
783
|
+
export const inverse = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.INVERSE ).setParameterLength( 1 );
|
|
784
|
+
|
|
785
|
+
// 2 inputs
|
|
758
786
|
|
|
759
787
|
/**
|
|
760
788
|
* Returns `true` if `x` equals `y`.
|
|
@@ -768,7 +796,7 @@ export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST ).set
|
|
|
768
796
|
*/
|
|
769
797
|
export const equals = ( x, y ) => { // @deprecated, r172
|
|
770
798
|
|
|
771
|
-
|
|
799
|
+
warn( 'TSL: "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"' );
|
|
772
800
|
return equal( x, y );
|
|
773
801
|
|
|
774
802
|
};
|
|
@@ -781,7 +809,7 @@ export const equals = ( x, y ) => { // @deprecated, r172
|
|
|
781
809
|
* @param {...(Node | number)} values - The values to compare.
|
|
782
810
|
* @returns {Node}
|
|
783
811
|
*/
|
|
784
|
-
export const min = /*@__PURE__*/
|
|
812
|
+
export const min = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.MIN ).setParameterLength( 2, Infinity );
|
|
785
813
|
|
|
786
814
|
/**
|
|
787
815
|
* Returns the greatest of the given values.
|
|
@@ -791,7 +819,7 @@ export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN ).setParamete
|
|
|
791
819
|
* @param {...(Node | number)} values - The values to compare.
|
|
792
820
|
* @returns {Node}
|
|
793
821
|
*/
|
|
794
|
-
export const max = /*@__PURE__*/
|
|
822
|
+
export const max = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.MAX ).setParameterLength( 2, Infinity );
|
|
795
823
|
|
|
796
824
|
/**
|
|
797
825
|
* Generate a step function by comparing two values.
|
|
@@ -802,7 +830,7 @@ export const max = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MAX ).setParamete
|
|
|
802
830
|
* @param {Node | number} y - The x parameter.
|
|
803
831
|
* @returns {Node}
|
|
804
832
|
*/
|
|
805
|
-
export const step = /*@__PURE__*/
|
|
833
|
+
export const step = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.STEP ).setParameterLength( 2 );
|
|
806
834
|
|
|
807
835
|
/**
|
|
808
836
|
* Calculates the reflection direction for an incident vector.
|
|
@@ -813,7 +841,7 @@ export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP ).setParame
|
|
|
813
841
|
* @param {Node<vec2|vec3|vec4>} N - The normal vector.
|
|
814
842
|
* @returns {Node<vec2|vec3|vec4>}
|
|
815
843
|
*/
|
|
816
|
-
export const reflect = /*@__PURE__*/
|
|
844
|
+
export const reflect = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.REFLECT ).setParameterLength( 2 );
|
|
817
845
|
|
|
818
846
|
/**
|
|
819
847
|
* Calculates the distance between two points.
|
|
@@ -824,7 +852,7 @@ export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT ).set
|
|
|
824
852
|
* @param {Node<vec2|vec3|vec4>} y - The second point.
|
|
825
853
|
* @returns {Node<float>}
|
|
826
854
|
*/
|
|
827
|
-
export const distance = /*@__PURE__*/
|
|
855
|
+
export const distance = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DISTANCE ).setParameterLength( 2 );
|
|
828
856
|
|
|
829
857
|
/**
|
|
830
858
|
* Calculates the absolute difference between two values.
|
|
@@ -835,7 +863,7 @@ export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE ).s
|
|
|
835
863
|
* @param {Node | number} y - The second parameter.
|
|
836
864
|
* @returns {Node}
|
|
837
865
|
*/
|
|
838
|
-
export const difference = /*@__PURE__*/
|
|
866
|
+
export const difference = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DIFFERENCE ).setParameterLength( 2 );
|
|
839
867
|
|
|
840
868
|
/**
|
|
841
869
|
* Calculates the dot product of two vectors.
|
|
@@ -846,18 +874,18 @@ export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE
|
|
|
846
874
|
* @param {Node<vec2|vec3|vec4>} y - The second vector.
|
|
847
875
|
* @returns {Node<float>}
|
|
848
876
|
*/
|
|
849
|
-
export const dot = /*@__PURE__*/
|
|
877
|
+
export const dot = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.DOT ).setParameterLength( 2 );
|
|
850
878
|
|
|
851
879
|
/**
|
|
852
880
|
* Calculates the cross product of two vectors.
|
|
853
881
|
*
|
|
854
882
|
* @tsl
|
|
855
883
|
* @function
|
|
856
|
-
* @param {Node<vec2|vec3
|
|
857
|
-
* @param {Node<vec2|vec3
|
|
858
|
-
* @returns {Node<
|
|
884
|
+
* @param {Node<vec2|vec3>} x - The first vector.
|
|
885
|
+
* @param {Node<vec2|vec3>} y - The second vector.
|
|
886
|
+
* @returns {Node<float|vec3>}
|
|
859
887
|
*/
|
|
860
|
-
export const cross = /*@__PURE__*/
|
|
888
|
+
export const cross = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.CROSS ).setParameterLength( 2 );
|
|
861
889
|
|
|
862
890
|
/**
|
|
863
891
|
* Return the value of the first parameter raised to the power of the second one.
|
|
@@ -868,7 +896,7 @@ export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS ).setPara
|
|
|
868
896
|
* @param {Node | number} y - The second parameter.
|
|
869
897
|
* @returns {Node}
|
|
870
898
|
*/
|
|
871
|
-
export const pow = /*@__PURE__*/
|
|
899
|
+
export const pow = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.POW ).setParameterLength( 2 );
|
|
872
900
|
|
|
873
901
|
/**
|
|
874
902
|
* Returns the square of the parameter.
|
|
@@ -878,7 +906,7 @@ export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW ).setParamete
|
|
|
878
906
|
* @param {Node | number} x - The first parameter.
|
|
879
907
|
* @returns {Node}
|
|
880
908
|
*/
|
|
881
|
-
export const pow2 =
|
|
909
|
+
export const pow2 = ( x ) => mul( x, x );
|
|
882
910
|
|
|
883
911
|
/**
|
|
884
912
|
* Returns the cube of the parameter.
|
|
@@ -888,7 +916,7 @@ export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 ).setPara
|
|
|
888
916
|
* @param {Node | number} x - The first parameter.
|
|
889
917
|
* @returns {Node}
|
|
890
918
|
*/
|
|
891
|
-
export const pow3 =
|
|
919
|
+
export const pow3 = ( x ) => mul( x, x, x );
|
|
892
920
|
|
|
893
921
|
/**
|
|
894
922
|
* Returns the fourth power of the parameter.
|
|
@@ -898,7 +926,7 @@ export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 ).setPara
|
|
|
898
926
|
* @param {Node | number} x - The first parameter.
|
|
899
927
|
* @returns {Node}
|
|
900
928
|
*/
|
|
901
|
-
export const pow4 =
|
|
929
|
+
export const pow4 = ( x ) => mul( x, x, x, x );
|
|
902
930
|
|
|
903
931
|
/**
|
|
904
932
|
* Transforms the direction of a vector by a matrix and then normalizes the result.
|
|
@@ -909,7 +937,7 @@ export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 ).setPara
|
|
|
909
937
|
* @param {Node<mat2|mat3|mat4>} matrix - The transformation matrix.
|
|
910
938
|
* @returns {Node}
|
|
911
939
|
*/
|
|
912
|
-
export const transformDirection = /*@__PURE__*/
|
|
940
|
+
export const transformDirection = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.TRANSFORM_DIRECTION ).setParameterLength( 2 );
|
|
913
941
|
|
|
914
942
|
/**
|
|
915
943
|
* Returns the cube root of a number.
|
|
@@ -941,7 +969,7 @@ export const lengthSq = ( a ) => dot( a, a );
|
|
|
941
969
|
* @param {Node | number} t - The interpolation value.
|
|
942
970
|
* @returns {Node}
|
|
943
971
|
*/
|
|
944
|
-
export const mix = /*@__PURE__*/
|
|
972
|
+
export const mix = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.MIX ).setParameterLength( 3 );
|
|
945
973
|
|
|
946
974
|
/**
|
|
947
975
|
* Constrains a value to lie between two further values.
|
|
@@ -975,7 +1003,7 @@ export const saturate = ( value ) => clamp( value );
|
|
|
975
1003
|
* @param {Node<float>} eta - The ratio of indices of refraction.
|
|
976
1004
|
* @returns {Node<vec2|vec3|vec4>}
|
|
977
1005
|
*/
|
|
978
|
-
export const refract = /*@__PURE__*/
|
|
1006
|
+
export const refract = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.REFRACT ).setParameterLength( 3 );
|
|
979
1007
|
|
|
980
1008
|
/**
|
|
981
1009
|
* Performs a Hermite interpolation between two values.
|
|
@@ -987,7 +1015,7 @@ export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT ).set
|
|
|
987
1015
|
* @param {Node | number} x - The source value for interpolation.
|
|
988
1016
|
* @returns {Node}
|
|
989
1017
|
*/
|
|
990
|
-
export const smoothstep = /*@__PURE__*/
|
|
1018
|
+
export const smoothstep = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.SMOOTHSTEP ).setParameterLength( 3 );
|
|
991
1019
|
|
|
992
1020
|
/**
|
|
993
1021
|
* Returns a vector pointing in the same direction as another.
|
|
@@ -999,7 +1027,7 @@ export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP
|
|
|
999
1027
|
* @param {Node<vec2|vec3|vec4>} Nref - The reference vector.
|
|
1000
1028
|
* @returns {Node<vec2|vec3|vec4>}
|
|
1001
1029
|
*/
|
|
1002
|
-
export const faceForward = /*@__PURE__*/
|
|
1030
|
+
export const faceForward = /*@__PURE__*/ nodeProxyIntent( MathNode, MathNode.FACEFORWARD ).setParameterLength( 3 );
|
|
1003
1031
|
|
|
1004
1032
|
/**
|
|
1005
1033
|
* Returns a random value for the given uv.
|
|
@@ -1042,6 +1070,17 @@ export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
|
|
|
1042
1070
|
*/
|
|
1043
1071
|
export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
|
|
1044
1072
|
|
|
1073
|
+
/**
|
|
1074
|
+
* Alias for `step()` with a different parameter order.
|
|
1075
|
+
*
|
|
1076
|
+
* @tsl
|
|
1077
|
+
* @function
|
|
1078
|
+
* @param {Node | number} x - The source value for interpolation.
|
|
1079
|
+
* @param {Node | number} edge - The edge value.
|
|
1080
|
+
* @returns {Node}
|
|
1081
|
+
*/
|
|
1082
|
+
export const stepElement = ( x, edge ) => step( edge, x );
|
|
1083
|
+
|
|
1045
1084
|
/**
|
|
1046
1085
|
* Returns the arc-tangent of the quotient of its parameters.
|
|
1047
1086
|
*
|
|
@@ -1055,7 +1094,7 @@ export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
|
|
|
1055
1094
|
*/
|
|
1056
1095
|
export const atan2 = ( y, x ) => { // @deprecated, r172
|
|
1057
1096
|
|
|
1058
|
-
|
|
1097
|
+
warn( 'TSL: "atan2" is overloaded. Use "atan" instead.' );
|
|
1059
1098
|
return atan( y, x );
|
|
1060
1099
|
|
|
1061
1100
|
};
|
|
@@ -1104,7 +1143,7 @@ addMethodChaining( 'fwidth', fwidth );
|
|
|
1104
1143
|
addMethodChaining( 'atan2', atan2 );
|
|
1105
1144
|
addMethodChaining( 'min', min );
|
|
1106
1145
|
addMethodChaining( 'max', max );
|
|
1107
|
-
addMethodChaining( 'step',
|
|
1146
|
+
addMethodChaining( 'step', stepElement );
|
|
1108
1147
|
addMethodChaining( 'reflect', reflect );
|
|
1109
1148
|
addMethodChaining( 'distance', distance );
|
|
1110
1149
|
addMethodChaining( 'dot', dot );
|
|
@@ -1123,4 +1162,6 @@ addMethodChaining( 'difference', difference );
|
|
|
1123
1162
|
addMethodChaining( 'saturate', saturate );
|
|
1124
1163
|
addMethodChaining( 'cbrt', cbrt );
|
|
1125
1164
|
addMethodChaining( 'transpose', transpose );
|
|
1165
|
+
addMethodChaining( 'determinant', determinant );
|
|
1166
|
+
addMethodChaining( 'inverse', inverse );
|
|
1126
1167
|
addMethodChaining( 'rand', rand );
|