super-three 0.173.5 → 0.176.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 +21993 -1359
- package/build/three.core.js +21129 -1188
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +835 -142
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +19493 -17617
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19477 -17617
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +144 -42
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +194 -71
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +74 -30
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +51 -5
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +36 -1
- package/examples/jsm/loaders/DDSLoader.js +25 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +71 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +222 -9
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +87 -19
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +56 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +90 -70
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +105 -13
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +109 -73
- package/examples/jsm/misc/VolumeSlice.js +91 -48
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +75 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +134 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +268 -134
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/AST.js +10 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
- package/examples/jsm/transpiler/TSLEncoder.js +83 -15
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
- package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
- package/examples/jsm/tsl/display/BleachBypass.js +1 -2
- package/examples/jsm/tsl/display/BloomNode.js +15 -16
- package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
- package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
- package/examples/jsm/tsl/display/FXAANode.js +2 -3
- package/examples/jsm/tsl/display/FilmNode.js +9 -8
- package/examples/jsm/tsl/display/GTAONode.js +11 -12
- package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
- package/examples/jsm/tsl/display/LensflareNode.js +15 -16
- package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
- package/examples/jsm/tsl/display/MotionBlur.js +1 -2
- package/examples/jsm/tsl/display/OutlineNode.js +7 -8
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
- package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
- package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
- package/examples/jsm/tsl/display/SMAANode.js +13 -7
- package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
- package/examples/jsm/tsl/display/SSRNode.js +6 -7
- package/examples/jsm/tsl/display/Sepia.js +1 -2
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
- package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
- package/examples/jsm/tsl/display/TransitionNode.js +4 -5
- package/examples/jsm/tsl/display/hashBlur.js +1 -2
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
- package/examples/jsm/tsl/math/Bayer.js +31 -0
- package/examples/jsm/tsl/utils/Raymarching.js +67 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +3 -4
- package/src/Three.TSL.js +7 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +169 -19
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +339 -0
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +28 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +163 -40
- package/src/cameras/StereoCamera.js +46 -0
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/EventDispatcher.js +44 -2
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +593 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +170 -11
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +88 -1
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +13 -780
- package/src/extras/ImageUtils.js +20 -2
- package/src/extras/PMREMGenerator.js +41 -25
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +95 -15
- package/src/extras/core/Curve.js +150 -50
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +63 -0
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +39 -0
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +28 -0
- package/src/geometries/ExtrudeGeometry.js +112 -28
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +40 -0
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +45 -5
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +22 -0
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +130 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +13 -9
- package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
- package/src/loaders/nodes/NodeObjectLoader.js +12 -12
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +481 -4
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +14 -14
- package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
- package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
- package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
- package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
- package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
- package/src/materials/nodes/NodeMaterial.js +66 -47
- package/src/materials/nodes/PointsNodeMaterial.js +6 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
- package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
- package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
- package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +94 -0
- package/src/math/MathUtils.js +405 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +262 -6
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +70 -8
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +388 -2
- package/src/math/Vector3.js +541 -4
- package/src/math/Vector4.js +393 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/AccessorsUtils.js +4 -2
- package/src/nodes/accessors/Arrays.js +6 -6
- package/src/nodes/accessors/BatchNode.js +10 -11
- package/src/nodes/accessors/Bitangent.js +6 -2
- package/src/nodes/accessors/BufferAttributeNode.js +33 -31
- package/src/nodes/accessors/BufferNode.js +12 -13
- package/src/nodes/accessors/BuiltinNode.js +7 -8
- package/src/nodes/accessors/Camera.js +9 -2
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +17 -19
- package/src/nodes/accessors/InstanceNode.js +10 -11
- package/src/nodes/accessors/InstancedMeshNode.js +3 -4
- package/src/nodes/accessors/Lights.js +12 -15
- package/src/nodes/accessors/MaterialNode.js +45 -9
- package/src/nodes/accessors/MaterialProperties.js +51 -2
- package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
- package/src/nodes/accessors/ModelNode.js +20 -3
- package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
- package/src/nodes/accessors/MorphNode.js +29 -26
- package/src/nodes/accessors/Normal.js +11 -3
- package/src/nodes/accessors/Object3DNode.js +51 -16
- package/src/nodes/accessors/PointUVNode.js +2 -3
- package/src/nodes/accessors/Position.js +8 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
- package/src/nodes/accessors/ReferenceNode.js +31 -31
- package/src/nodes/accessors/ReflectVector.js +4 -2
- package/src/nodes/accessors/RendererReferenceNode.js +9 -10
- package/src/nodes/accessors/SceneNode.js +5 -4
- package/src/nodes/accessors/SkinningNode.js +53 -44
- package/src/nodes/accessors/StorageBufferNode.js +24 -24
- package/src/nodes/accessors/StorageTextureNode.js +17 -17
- package/src/nodes/accessors/Tangent.js +6 -2
- package/src/nodes/accessors/Texture3DNode.js +11 -12
- package/src/nodes/accessors/TextureBicubic.js +2 -3
- package/src/nodes/accessors/TextureNode.js +68 -47
- package/src/nodes/accessors/TextureSizeNode.js +5 -6
- package/src/nodes/accessors/UV.js +2 -3
- package/src/nodes/accessors/UniformArrayNode.js +24 -24
- package/src/nodes/accessors/UserDataNode.js +11 -12
- package/src/nodes/accessors/VelocityNode.js +4 -5
- package/src/nodes/accessors/VertexColorNode.js +7 -8
- package/src/nodes/code/CodeNode.js +15 -13
- package/src/nodes/code/ExpressionNode.js +8 -9
- package/src/nodes/code/FunctionCallNode.js +29 -9
- package/src/nodes/code/FunctionNode.js +1 -1
- package/src/nodes/code/ScriptableNode.js +27 -28
- package/src/nodes/code/ScriptableValueNode.js +11 -12
- package/src/nodes/core/ArrayNode.js +29 -12
- package/src/nodes/core/AssignNode.js +4 -5
- package/src/nodes/core/AttributeNode.js +8 -9
- package/src/nodes/core/BypassNode.js +3 -4
- package/src/nodes/core/CacheNode.js +5 -6
- package/src/nodes/core/ConstNode.js +4 -4
- package/src/nodes/core/ContextNode.js +9 -9
- package/src/nodes/core/IndexNode.js +8 -4
- package/src/nodes/core/InputNode.js +7 -7
- package/src/nodes/core/LightingModel.js +17 -17
- package/src/nodes/core/MRTNode.js +9 -10
- package/src/nodes/core/Node.js +49 -37
- package/src/nodes/core/NodeAttribute.js +7 -7
- package/src/nodes/core/NodeBuilder.js +248 -175
- package/src/nodes/core/NodeCache.js +4 -4
- package/src/nodes/core/NodeCode.js +6 -6
- package/src/nodes/core/NodeFrame.js +10 -10
- package/src/nodes/core/NodeFunction.js +8 -8
- package/src/nodes/core/NodeFunctionInput.js +8 -8
- package/src/nodes/core/NodeParser.js +1 -1
- package/src/nodes/core/NodeUniform.js +7 -7
- package/src/nodes/core/NodeUtils.js +22 -24
- package/src/nodes/core/NodeVar.js +9 -9
- package/src/nodes/core/NodeVarying.js +4 -4
- package/src/nodes/core/OutputStructNode.js +2 -3
- package/src/nodes/core/ParameterNode.js +6 -7
- package/src/nodes/core/PropertyNode.js +41 -13
- package/src/nodes/core/StackNode.js +11 -12
- package/src/nodes/core/StructNode.js +2 -3
- package/src/nodes/core/StructTypeNode.js +10 -6
- package/src/nodes/core/TempNode.js +3 -3
- package/src/nodes/core/UniformGroupNode.js +15 -12
- package/src/nodes/core/UniformNode.js +9 -10
- package/src/nodes/core/VarNode.js +14 -18
- package/src/nodes/core/VaryingNode.js +10 -10
- package/src/nodes/core/constants.js +0 -2
- package/src/nodes/display/BlendModes.js +21 -14
- package/src/nodes/display/BumpMapNode.js +5 -6
- package/src/nodes/display/ColorAdjustment.js +13 -9
- package/src/nodes/display/ColorSpaceFunctions.js +4 -4
- package/src/nodes/display/ColorSpaceNode.js +15 -12
- package/src/nodes/display/FrontFacingNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +5 -6
- package/src/nodes/display/PassNode.js +122 -35
- package/src/nodes/display/PosterizeNode.js +2 -3
- package/src/nodes/display/RenderOutputNode.js +8 -9
- package/src/nodes/display/ScreenNode.js +16 -7
- package/src/nodes/display/ToneMappingFunctions.js +12 -8
- package/src/nodes/display/ToneMappingNode.js +8 -8
- package/src/nodes/display/ToonOutlinePassNode.js +3 -4
- package/src/nodes/display/ViewportDepthNode.js +15 -7
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
- package/src/nodes/display/ViewportTextureNode.js +16 -16
- package/src/nodes/fog/Fog.js +5 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BasicLightingModel.js +5 -8
- package/src/nodes/functions/PhongLightingModel.js +6 -8
- package/src/nodes/functions/PhysicalLightingModel.js +40 -42
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/ToonLightingModel.js +5 -6
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
- package/src/nodes/geometry/RangeNode.js +4 -5
- package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
- package/src/nodes/gpgpu/BarrierNode.js +6 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
- package/src/nodes/gpgpu/ComputeNode.js +43 -16
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +50 -9
- package/src/nodes/lighting/BasicLightMapNode.js +2 -2
- package/src/nodes/lighting/DirectionalLightNode.js +3 -12
- package/src/nodes/lighting/EnvironmentNode.js +5 -8
- package/src/nodes/lighting/HemisphereLightNode.js +1 -1
- package/src/nodes/lighting/LightProbeNode.js +1 -1
- package/src/nodes/lighting/LightUtils.js +1 -5
- package/src/nodes/lighting/LightingContextNode.js +10 -10
- package/src/nodes/lighting/LightingNode.js +1 -1
- package/src/nodes/lighting/LightsNode.js +68 -25
- package/src/nodes/lighting/PointLightNode.js +12 -27
- package/src/nodes/lighting/PointShadowNode.js +5 -6
- package/src/nodes/lighting/RectAreaLightNode.js +5 -10
- package/src/nodes/lighting/ShadowBaseNode.js +8 -9
- package/src/nodes/lighting/ShadowNode.js +28 -15
- package/src/nodes/lighting/SpotLightNode.js +8 -19
- package/src/nodes/math/ConditionalNode.js +26 -9
- package/src/nodes/math/Hash.js +2 -3
- package/src/nodes/math/MathNode.js +217 -150
- package/src/nodes/math/MathUtils.js +8 -6
- package/src/nodes/math/OperatorNode.js +198 -89
- package/src/nodes/math/TriNoise3D.js +2 -3
- package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
- package/src/nodes/parsers/GLSLNodeParser.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +61 -37
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +2 -3
- package/src/nodes/shapes/Shapes.js +2 -3
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +117 -19
- package/src/nodes/utils/ArrayElementNode.js +5 -3
- package/src/nodes/utils/ConvertNode.js +3 -3
- package/src/nodes/utils/CubeMapNode.js +7 -8
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/Discard.js +5 -5
- package/src/nodes/utils/EquirectUVNode.js +3 -4
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
- package/src/nodes/utils/JoinNode.js +29 -4
- package/src/nodes/utils/LoopNode.js +67 -35
- package/src/nodes/utils/MatcapUVNode.js +1 -2
- package/src/nodes/utils/MaxMipLevelNode.js +4 -5
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +8 -6
- package/src/nodes/utils/Packing.js +4 -4
- package/src/nodes/utils/PostProcessingUtils.js +6 -5
- package/src/nodes/utils/RTTNode.js +19 -19
- package/src/nodes/utils/ReflectorNode.js +35 -25
- package/src/nodes/utils/RemapNode.js +9 -9
- package/src/nodes/utils/RotateNode.js +3 -4
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +5 -5
- package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
- package/src/nodes/utils/SpriteUtils.js +5 -6
- package/src/nodes/utils/StorageArrayElementNode.js +3 -4
- package/src/nodes/utils/Timer.js +9 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
- package/src/nodes/utils/UVUtils.js +4 -4
- package/src/nodes/utils/ViewportUtils.js +3 -4
- package/src/objects/BatchedMesh.js +319 -32
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +4 -4
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +82 -0
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +75 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +105 -0
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +622 -83
- package/src/renderers/common/Animation.js +6 -6
- package/src/renderers/common/Attributes.js +3 -3
- package/src/renderers/common/Backend.js +40 -31
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/BindGroup.js +5 -5
- package/src/renderers/common/Binding.js +4 -4
- package/src/renderers/common/Bindings.js +10 -0
- package/src/renderers/common/Buffer.js +5 -5
- package/src/renderers/common/BufferUtils.js +7 -9
- package/src/renderers/common/BundleGroup.js +6 -6
- package/src/renderers/common/ChainMap.js +3 -3
- package/src/renderers/common/ClippingContext.js +8 -8
- package/src/renderers/common/Color4.js +8 -8
- package/src/renderers/common/ComputePipeline.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +2 -2
- package/src/renderers/common/Geometries.js +6 -6
- package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
- package/src/renderers/common/Info.js +17 -17
- package/src/renderers/common/Pipeline.js +3 -3
- package/src/renderers/common/Pipelines.js +12 -12
- package/src/renderers/common/PostProcessing.js +13 -1
- package/src/renderers/common/ProgrammableStage.js +11 -11
- package/src/renderers/common/QuadMesh.js +5 -3
- package/src/renderers/common/RenderContext.js +24 -24
- package/src/renderers/common/RenderContexts.js +4 -4
- package/src/renderers/common/RenderList.js +16 -16
- package/src/renderers/common/RenderObject.js +27 -27
- package/src/renderers/common/RenderObjects.js +4 -4
- package/src/renderers/common/RenderPipeline.js +1 -1
- package/src/renderers/common/Renderer.js +272 -200
- package/src/renderers/common/RendererUtils.js +0 -2
- package/src/renderers/common/SampledTexture.js +20 -20
- package/src/renderers/common/Sampler.js +5 -5
- package/src/renderers/common/StorageBuffer.js +2 -2
- package/src/renderers/common/StorageBufferAttribute.js +4 -4
- package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
- package/src/renderers/common/StorageTexture.js +6 -6
- package/src/renderers/common/Textures.js +6 -6
- package/src/renderers/common/TimestampQueryPool.js +66 -7
- package/src/renderers/common/Uniform.js +26 -26
- package/src/renderers/common/UniformBuffer.js +2 -2
- package/src/renderers/common/UniformsGroup.js +18 -18
- package/src/renderers/common/XRManager.js +369 -54
- package/src/renderers/common/XRRenderTarget.js +5 -5
- package/src/renderers/common/extras/PMREMGenerator.js +62 -37
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
- package/src/renderers/common/nodes/NodeLibrary.js +13 -13
- package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
- package/src/renderers/common/nodes/NodeSampler.js +1 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniform.js +9 -9
- package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
- package/src/renderers/common/nodes/Nodes.js +13 -13
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +19 -19
- package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
- package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
- package/src/renderers/webgpu/WebGPUBackend.js +200 -119
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
- package/src/renderers/webgpu/WebGPURenderer.js +19 -13
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +185 -9
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +61 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +362 -3
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import TempNode from '../core/TempNode.js';
|
|
2
|
-
import { sub, mul, div } from './OperatorNode.js';
|
|
2
|
+
import { sub, mul, div, mod, equal } from './OperatorNode.js';
|
|
3
3
|
import { addMethodChaining, nodeObject, nodeProxy, float, vec2, vec3, vec4, Fn } from '../tsl/TSLCore.js';
|
|
4
4
|
import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../../constants.js';
|
|
5
5
|
|
|
6
|
-
/** @module MathNode **/
|
|
7
|
-
|
|
8
6
|
/**
|
|
9
7
|
* This node represents a variety of mathematical methods available in shaders.
|
|
10
8
|
* They are divided into three categories:
|
|
@@ -26,19 +24,37 @@ class MathNode extends TempNode {
|
|
|
26
24
|
/**
|
|
27
25
|
* Constructs a new math node.
|
|
28
26
|
*
|
|
29
|
-
* @param {
|
|
27
|
+
* @param {string} method - The method name.
|
|
30
28
|
* @param {Node} aNode - The first input.
|
|
31
|
-
* @param {Node
|
|
32
|
-
* @param {Node
|
|
29
|
+
* @param {?Node} [bNode=null] - The second input.
|
|
30
|
+
* @param {?Node} [cNode=null] - The third input.
|
|
33
31
|
*/
|
|
34
32
|
constructor( method, aNode, bNode = null, cNode = null ) {
|
|
35
33
|
|
|
36
34
|
super();
|
|
37
35
|
|
|
36
|
+
// Allow the max() and min() functions to take an arbitrary number of arguments.
|
|
37
|
+
|
|
38
|
+
if ( ( method === MathNode.MAX || method === MathNode.MIN ) && arguments.length > 3 ) {
|
|
39
|
+
|
|
40
|
+
let finalOp = new MathNode( method, aNode, bNode );
|
|
41
|
+
|
|
42
|
+
for ( let i = 2; i < arguments.length - 1; i ++ ) {
|
|
43
|
+
|
|
44
|
+
finalOp = new MathNode( method, finalOp, arguments[ i ] );
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
aNode = finalOp;
|
|
49
|
+
bNode = arguments[ arguments.length - 1 ];
|
|
50
|
+
cNode = null;
|
|
51
|
+
|
|
52
|
+
}
|
|
53
|
+
|
|
38
54
|
/**
|
|
39
55
|
* The method name.
|
|
40
56
|
*
|
|
41
|
-
* @type {
|
|
57
|
+
* @type {string}
|
|
42
58
|
*/
|
|
43
59
|
this.method = method;
|
|
44
60
|
|
|
@@ -52,7 +68,7 @@ class MathNode extends TempNode {
|
|
|
52
68
|
/**
|
|
53
69
|
* The second input.
|
|
54
70
|
*
|
|
55
|
-
* @type {Node
|
|
71
|
+
* @type {?Node}
|
|
56
72
|
* @default null
|
|
57
73
|
*/
|
|
58
74
|
this.bNode = bNode;
|
|
@@ -60,7 +76,7 @@ class MathNode extends TempNode {
|
|
|
60
76
|
/**
|
|
61
77
|
* The third input.
|
|
62
78
|
*
|
|
63
|
-
* @type {Node
|
|
79
|
+
* @type {?Node}
|
|
64
80
|
* @default null
|
|
65
81
|
*/
|
|
66
82
|
this.cNode = cNode;
|
|
@@ -68,7 +84,7 @@ class MathNode extends TempNode {
|
|
|
68
84
|
/**
|
|
69
85
|
* This flag can be used for type testing.
|
|
70
86
|
*
|
|
71
|
-
* @type {
|
|
87
|
+
* @type {boolean}
|
|
72
88
|
* @readonly
|
|
73
89
|
* @default true
|
|
74
90
|
*/
|
|
@@ -80,7 +96,7 @@ class MathNode extends TempNode {
|
|
|
80
96
|
* The input type is inferred from the node types of the input nodes.
|
|
81
97
|
*
|
|
82
98
|
* @param {NodeBuilder} builder - The current node builder.
|
|
83
|
-
* @return {
|
|
99
|
+
* @return {string} The input type.
|
|
84
100
|
*/
|
|
85
101
|
getInputType( builder ) {
|
|
86
102
|
|
|
@@ -114,7 +130,7 @@ class MathNode extends TempNode {
|
|
|
114
130
|
* The selected method as well as the input type determine the node type of this node.
|
|
115
131
|
*
|
|
116
132
|
* @param {NodeBuilder} builder - The current node builder.
|
|
117
|
-
* @return {
|
|
133
|
+
* @return {string} The node type.
|
|
118
134
|
*/
|
|
119
135
|
getNodeType( builder ) {
|
|
120
136
|
|
|
@@ -128,7 +144,7 @@ class MathNode extends TempNode {
|
|
|
128
144
|
|
|
129
145
|
return 'vec3';
|
|
130
146
|
|
|
131
|
-
} else if ( method === MathNode.ALL ) {
|
|
147
|
+
} else if ( method === MathNode.ALL || method === MathNode.ANY ) {
|
|
132
148
|
|
|
133
149
|
return 'bool';
|
|
134
150
|
|
|
@@ -136,10 +152,6 @@ class MathNode extends TempNode {
|
|
|
136
152
|
|
|
137
153
|
return builder.changeComponentType( this.aNode.getNodeType( builder ), 'bool' );
|
|
138
154
|
|
|
139
|
-
} else if ( method === MathNode.MOD ) {
|
|
140
|
-
|
|
141
|
-
return this.aNode.getNodeType( builder );
|
|
142
|
-
|
|
143
155
|
} else {
|
|
144
156
|
|
|
145
157
|
return this.getInputType( builder );
|
|
@@ -203,7 +215,7 @@ class MathNode extends TempNode {
|
|
|
203
215
|
|
|
204
216
|
const params = [];
|
|
205
217
|
|
|
206
|
-
if ( method === MathNode.CROSS
|
|
218
|
+
if ( method === MathNode.CROSS ) {
|
|
207
219
|
|
|
208
220
|
params.push(
|
|
209
221
|
a.build( builder, type ),
|
|
@@ -217,7 +229,7 @@ class MathNode extends TempNode {
|
|
|
217
229
|
b.build( builder, inputType )
|
|
218
230
|
);
|
|
219
231
|
|
|
220
|
-
} else if (
|
|
232
|
+
} else if ( coordinateSystem === WebGLCoordinateSystem && ( method === MathNode.MIN || method === MathNode.MAX ) ) {
|
|
221
233
|
|
|
222
234
|
params.push(
|
|
223
235
|
a.build( builder, inputType ),
|
|
@@ -320,7 +332,6 @@ MathNode.BITCAST = 'bitcast';
|
|
|
320
332
|
MathNode.EQUALS = 'equals';
|
|
321
333
|
MathNode.MIN = 'min';
|
|
322
334
|
MathNode.MAX = 'max';
|
|
323
|
-
MathNode.MOD = 'mod';
|
|
324
335
|
MathNode.STEP = 'step';
|
|
325
336
|
MathNode.REFLECT = 'reflect';
|
|
326
337
|
MathNode.DISTANCE = 'distance';
|
|
@@ -345,6 +356,7 @@ export default MathNode;
|
|
|
345
356
|
/**
|
|
346
357
|
* A small value used to handle floating-point precision errors.
|
|
347
358
|
*
|
|
359
|
+
* @tsl
|
|
348
360
|
* @type {Node<float>}
|
|
349
361
|
*/
|
|
350
362
|
export const EPSILON = /*@__PURE__*/ float( 1e-6 );
|
|
@@ -352,6 +364,7 @@ export const EPSILON = /*@__PURE__*/ float( 1e-6 );
|
|
|
352
364
|
/**
|
|
353
365
|
* Represents infinity.
|
|
354
366
|
*
|
|
367
|
+
* @tsl
|
|
355
368
|
* @type {Node<float>}
|
|
356
369
|
*/
|
|
357
370
|
export const INFINITY = /*@__PURE__*/ float( 1e6 );
|
|
@@ -359,6 +372,7 @@ export const INFINITY = /*@__PURE__*/ float( 1e6 );
|
|
|
359
372
|
/**
|
|
360
373
|
* Represents PI.
|
|
361
374
|
*
|
|
375
|
+
* @tsl
|
|
362
376
|
* @type {Node<float>}
|
|
363
377
|
*/
|
|
364
378
|
export const PI = /*@__PURE__*/ float( Math.PI );
|
|
@@ -366,6 +380,7 @@ export const PI = /*@__PURE__*/ float( Math.PI );
|
|
|
366
380
|
/**
|
|
367
381
|
* Represents PI * 2.
|
|
368
382
|
*
|
|
383
|
+
* @tsl
|
|
369
384
|
* @type {Node<float>}
|
|
370
385
|
*/
|
|
371
386
|
export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
|
|
@@ -373,457 +388,499 @@ export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
|
|
|
373
388
|
/**
|
|
374
389
|
* Returns `true` if all components of `x` are `true`.
|
|
375
390
|
*
|
|
391
|
+
* @tsl
|
|
376
392
|
* @function
|
|
377
|
-
* @param {Node |
|
|
393
|
+
* @param {Node | number} x - The parameter.
|
|
378
394
|
* @returns {Node<bool>}
|
|
379
395
|
*/
|
|
380
|
-
export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL );
|
|
396
|
+
export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL ).setParameterLength( 1 );
|
|
381
397
|
|
|
382
398
|
/**
|
|
383
399
|
* Returns `true` if any components of `x` are `true`.
|
|
384
400
|
*
|
|
401
|
+
* @tsl
|
|
385
402
|
* @function
|
|
386
|
-
* @param {Node |
|
|
403
|
+
* @param {Node | number} x - The parameter.
|
|
387
404
|
* @returns {Node<bool>}
|
|
388
405
|
*/
|
|
389
|
-
export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY );
|
|
406
|
+
export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY ).setParameterLength( 1 );
|
|
390
407
|
|
|
391
408
|
/**
|
|
392
409
|
* Converts a quantity in degrees to radians.
|
|
393
410
|
*
|
|
411
|
+
* @tsl
|
|
394
412
|
* @function
|
|
395
|
-
* @param {Node |
|
|
413
|
+
* @param {Node | number} x - The input in degrees.
|
|
396
414
|
* @returns {Node}
|
|
397
415
|
*/
|
|
398
|
-
export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS );
|
|
416
|
+
export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS ).setParameterLength( 1 );
|
|
399
417
|
|
|
400
418
|
/**
|
|
401
419
|
* Convert a quantity in radians to degrees.
|
|
402
420
|
*
|
|
421
|
+
* @tsl
|
|
403
422
|
* @function
|
|
404
|
-
* @param {Node |
|
|
423
|
+
* @param {Node | number} x - The input in radians.
|
|
405
424
|
* @returns {Node}
|
|
406
425
|
*/
|
|
407
|
-
export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES );
|
|
426
|
+
export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES ).setParameterLength( 1 );
|
|
408
427
|
|
|
409
428
|
/**
|
|
410
429
|
* Returns the natural exponentiation of the parameter.
|
|
411
430
|
*
|
|
431
|
+
* @tsl
|
|
412
432
|
* @function
|
|
413
|
-
* @param {Node |
|
|
433
|
+
* @param {Node | number} x - The parameter.
|
|
414
434
|
* @returns {Node}
|
|
415
435
|
*/
|
|
416
|
-
export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP );
|
|
436
|
+
export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP ).setParameterLength( 1 );
|
|
417
437
|
|
|
418
438
|
/**
|
|
419
439
|
* Returns 2 raised to the power of the parameter.
|
|
420
440
|
*
|
|
441
|
+
* @tsl
|
|
421
442
|
* @function
|
|
422
|
-
* @param {Node |
|
|
443
|
+
* @param {Node | number} x - The parameter.
|
|
423
444
|
* @returns {Node}
|
|
424
445
|
*/
|
|
425
|
-
export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 );
|
|
446
|
+
export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 ).setParameterLength( 1 );
|
|
426
447
|
|
|
427
448
|
/**
|
|
428
449
|
* Returns the natural logarithm of the parameter.
|
|
429
450
|
*
|
|
451
|
+
* @tsl
|
|
430
452
|
* @function
|
|
431
|
-
* @param {Node |
|
|
453
|
+
* @param {Node | number} x - The parameter.
|
|
432
454
|
* @returns {Node}
|
|
433
455
|
*/
|
|
434
|
-
export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG );
|
|
456
|
+
export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG ).setParameterLength( 1 );
|
|
435
457
|
|
|
436
458
|
/**
|
|
437
459
|
* Returns the base 2 logarithm of the parameter.
|
|
438
460
|
*
|
|
461
|
+
* @tsl
|
|
439
462
|
* @function
|
|
440
|
-
* @param {Node |
|
|
463
|
+
* @param {Node | number} x - The parameter.
|
|
441
464
|
* @returns {Node}
|
|
442
465
|
*/
|
|
443
|
-
export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 );
|
|
466
|
+
export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 ).setParameterLength( 1 );
|
|
444
467
|
|
|
445
468
|
/**
|
|
446
469
|
* Returns the square root of the parameter.
|
|
447
470
|
*
|
|
471
|
+
* @tsl
|
|
448
472
|
* @function
|
|
449
|
-
* @param {Node |
|
|
473
|
+
* @param {Node | number} x - The parameter.
|
|
450
474
|
* @returns {Node}
|
|
451
475
|
*/
|
|
452
|
-
export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT );
|
|
476
|
+
export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT ).setParameterLength( 1 );
|
|
453
477
|
|
|
454
478
|
/**
|
|
455
479
|
* Returns the inverse of the square root of the parameter.
|
|
456
480
|
*
|
|
481
|
+
* @tsl
|
|
457
482
|
* @function
|
|
458
|
-
* @param {Node |
|
|
483
|
+
* @param {Node | number} x - The parameter.
|
|
459
484
|
* @returns {Node}
|
|
460
485
|
*/
|
|
461
|
-
export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_SQRT );
|
|
486
|
+
export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_SQRT ).setParameterLength( 1 );
|
|
462
487
|
|
|
463
488
|
/**
|
|
464
489
|
* Finds the nearest integer less than or equal to the parameter.
|
|
465
490
|
*
|
|
491
|
+
* @tsl
|
|
466
492
|
* @function
|
|
467
|
-
* @param {Node |
|
|
493
|
+
* @param {Node | number} x - The parameter.
|
|
468
494
|
* @returns {Node}
|
|
469
495
|
*/
|
|
470
|
-
export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR );
|
|
496
|
+
export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR ).setParameterLength( 1 );
|
|
471
497
|
|
|
472
498
|
/**
|
|
473
499
|
* Finds the nearest integer that is greater than or equal to the parameter.
|
|
474
500
|
*
|
|
501
|
+
* @tsl
|
|
475
502
|
* @function
|
|
476
|
-
* @param {Node |
|
|
503
|
+
* @param {Node | number} x - The parameter.
|
|
477
504
|
* @returns {Node}
|
|
478
505
|
*/
|
|
479
|
-
export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL );
|
|
506
|
+
export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL ).setParameterLength( 1 );
|
|
480
507
|
|
|
481
508
|
/**
|
|
482
509
|
* Calculates the unit vector in the same direction as the original vector.
|
|
483
510
|
*
|
|
511
|
+
* @tsl
|
|
484
512
|
* @function
|
|
485
513
|
* @param {Node} x - The input vector.
|
|
486
514
|
* @returns {Node}
|
|
487
515
|
*/
|
|
488
|
-
export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE );
|
|
516
|
+
export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE ).setParameterLength( 1 );
|
|
489
517
|
|
|
490
518
|
/**
|
|
491
519
|
* Computes the fractional part of the parameter.
|
|
492
520
|
*
|
|
521
|
+
* @tsl
|
|
493
522
|
* @function
|
|
494
|
-
* @param {Node |
|
|
523
|
+
* @param {Node | number} x - The parameter.
|
|
495
524
|
* @returns {Node}
|
|
496
525
|
*/
|
|
497
|
-
export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT );
|
|
526
|
+
export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT ).setParameterLength( 1 );
|
|
498
527
|
|
|
499
528
|
/**
|
|
500
529
|
* Returns the sine of the parameter.
|
|
501
530
|
*
|
|
531
|
+
* @tsl
|
|
502
532
|
* @function
|
|
503
|
-
* @param {Node |
|
|
533
|
+
* @param {Node | number} x - The parameter.
|
|
504
534
|
* @returns {Node}
|
|
505
535
|
*/
|
|
506
|
-
export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN );
|
|
536
|
+
export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN ).setParameterLength( 1 );
|
|
507
537
|
|
|
508
538
|
/**
|
|
509
539
|
* Returns the cosine of the parameter.
|
|
510
540
|
*
|
|
541
|
+
* @tsl
|
|
511
542
|
* @function
|
|
512
|
-
* @param {Node |
|
|
543
|
+
* @param {Node | number} x - The parameter.
|
|
513
544
|
* @returns {Node}
|
|
514
545
|
*/
|
|
515
|
-
export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS );
|
|
546
|
+
export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS ).setParameterLength( 1 );
|
|
516
547
|
|
|
517
548
|
/**
|
|
518
549
|
* Returns the tangent of the parameter.
|
|
519
550
|
*
|
|
551
|
+
* @tsl
|
|
520
552
|
* @function
|
|
521
|
-
* @param {Node |
|
|
553
|
+
* @param {Node | number} x - The parameter.
|
|
522
554
|
* @returns {Node}
|
|
523
555
|
*/
|
|
524
|
-
export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN );
|
|
556
|
+
export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN ).setParameterLength( 1 );
|
|
525
557
|
|
|
526
558
|
/**
|
|
527
559
|
* Returns the arcsine of the parameter.
|
|
528
560
|
*
|
|
561
|
+
* @tsl
|
|
529
562
|
* @function
|
|
530
|
-
* @param {Node |
|
|
563
|
+
* @param {Node | number} x - The parameter.
|
|
531
564
|
* @returns {Node}
|
|
532
565
|
*/
|
|
533
|
-
export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN );
|
|
566
|
+
export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN ).setParameterLength( 1 );
|
|
534
567
|
|
|
535
568
|
/**
|
|
536
569
|
* Returns the arccosine of the parameter.
|
|
537
570
|
*
|
|
571
|
+
* @tsl
|
|
538
572
|
* @function
|
|
539
|
-
* @param {Node |
|
|
573
|
+
* @param {Node | number} x - The parameter.
|
|
540
574
|
* @returns {Node}
|
|
541
575
|
*/
|
|
542
|
-
export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS );
|
|
576
|
+
export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS ).setParameterLength( 1 );
|
|
543
577
|
|
|
544
578
|
/**
|
|
545
579
|
* Returns the arc-tangent of the parameter.
|
|
546
580
|
* If two parameters are provided, the result is `atan2(y/x)`.
|
|
547
581
|
*
|
|
582
|
+
* @tsl
|
|
548
583
|
* @function
|
|
549
|
-
* @param {Node |
|
|
550
|
-
* @param {(Node |
|
|
584
|
+
* @param {Node | number} y - The y parameter.
|
|
585
|
+
* @param {?(Node | number)} x - The x parameter.
|
|
551
586
|
* @returns {Node}
|
|
552
587
|
*/
|
|
553
|
-
export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN );
|
|
588
|
+
export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN ).setParameterLength( 1, 2 );
|
|
554
589
|
|
|
555
590
|
/**
|
|
556
591
|
* Returns the absolute value of the parameter.
|
|
557
592
|
*
|
|
593
|
+
* @tsl
|
|
558
594
|
* @function
|
|
559
|
-
* @param {Node |
|
|
595
|
+
* @param {Node | number} x - The parameter.
|
|
560
596
|
* @returns {Node}
|
|
561
597
|
*/
|
|
562
|
-
export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS );
|
|
598
|
+
export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS ).setParameterLength( 1 );
|
|
563
599
|
|
|
564
600
|
/**
|
|
565
601
|
* Extracts the sign of the parameter.
|
|
566
602
|
*
|
|
603
|
+
* @tsl
|
|
567
604
|
* @function
|
|
568
|
-
* @param {Node |
|
|
605
|
+
* @param {Node | number} x - The parameter.
|
|
569
606
|
* @returns {Node}
|
|
570
607
|
*/
|
|
571
|
-
export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN );
|
|
608
|
+
export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN ).setParameterLength( 1 );
|
|
572
609
|
|
|
573
610
|
/**
|
|
574
611
|
* Calculates the length of a vector.
|
|
575
612
|
*
|
|
613
|
+
* @tsl
|
|
576
614
|
* @function
|
|
577
615
|
* @param {Node} x - The parameter.
|
|
578
616
|
* @returns {Node<float>}
|
|
579
617
|
*/
|
|
580
|
-
export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH );
|
|
618
|
+
export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH ).setParameterLength( 1 );
|
|
581
619
|
|
|
582
620
|
/**
|
|
583
621
|
* Negates the value of the parameter (-x).
|
|
584
622
|
*
|
|
623
|
+
* @tsl
|
|
585
624
|
* @function
|
|
586
|
-
* @param {Node |
|
|
625
|
+
* @param {Node | number} x - The parameter.
|
|
587
626
|
* @returns {Node}
|
|
588
627
|
*/
|
|
589
|
-
export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE );
|
|
628
|
+
export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE ).setParameterLength( 1 );
|
|
590
629
|
|
|
591
630
|
/**
|
|
592
631
|
* Return `1` minus the parameter.
|
|
593
632
|
*
|
|
633
|
+
* @tsl
|
|
594
634
|
* @function
|
|
595
|
-
* @param {Node |
|
|
635
|
+
* @param {Node | number} x - The parameter.
|
|
596
636
|
* @returns {Node}
|
|
597
637
|
*/
|
|
598
|
-
export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS );
|
|
638
|
+
export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS ).setParameterLength( 1 );
|
|
599
639
|
|
|
600
640
|
/**
|
|
601
641
|
* Returns the partial derivative of the parameter with respect to x.
|
|
602
642
|
*
|
|
643
|
+
* @tsl
|
|
603
644
|
* @function
|
|
604
|
-
* @param {Node |
|
|
645
|
+
* @param {Node | number} x - The parameter.
|
|
605
646
|
* @returns {Node}
|
|
606
647
|
*/
|
|
607
|
-
export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX );
|
|
648
|
+
export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX ).setParameterLength( 1 );
|
|
608
649
|
|
|
609
650
|
/**
|
|
610
651
|
* Returns the partial derivative of the parameter with respect to y.
|
|
611
652
|
*
|
|
653
|
+
* @tsl
|
|
612
654
|
* @function
|
|
613
|
-
* @param {Node |
|
|
655
|
+
* @param {Node | number} x - The parameter.
|
|
614
656
|
* @returns {Node}
|
|
615
657
|
*/
|
|
616
|
-
export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY );
|
|
658
|
+
export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY ).setParameterLength( 1 );
|
|
617
659
|
|
|
618
660
|
/**
|
|
619
661
|
* Rounds the parameter to the nearest integer.
|
|
620
662
|
*
|
|
663
|
+
* @tsl
|
|
621
664
|
* @function
|
|
622
|
-
* @param {Node |
|
|
665
|
+
* @param {Node | number} x - The parameter.
|
|
623
666
|
* @returns {Node}
|
|
624
667
|
*/
|
|
625
|
-
export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND );
|
|
668
|
+
export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND ).setParameterLength( 1 );
|
|
626
669
|
|
|
627
670
|
/**
|
|
628
671
|
* Returns the reciprocal of the parameter `(1/x)`.
|
|
629
672
|
*
|
|
673
|
+
* @tsl
|
|
630
674
|
* @function
|
|
631
|
-
* @param {Node |
|
|
675
|
+
* @param {Node | number} x - The parameter.
|
|
632
676
|
* @returns {Node}
|
|
633
677
|
*/
|
|
634
|
-
export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL );
|
|
678
|
+
export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL ).setParameterLength( 1 );
|
|
635
679
|
|
|
636
680
|
/**
|
|
637
681
|
* Truncates the parameter, removing the fractional part.
|
|
638
682
|
*
|
|
683
|
+
* @tsl
|
|
639
684
|
* @function
|
|
640
|
-
* @param {Node |
|
|
685
|
+
* @param {Node | number} x - The parameter.
|
|
641
686
|
* @returns {Node}
|
|
642
687
|
*/
|
|
643
|
-
export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC );
|
|
688
|
+
export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC ).setParameterLength( 1 );
|
|
644
689
|
|
|
645
690
|
/**
|
|
646
691
|
* Returns the sum of the absolute derivatives in x and y.
|
|
647
692
|
*
|
|
693
|
+
* @tsl
|
|
648
694
|
* @function
|
|
649
|
-
* @param {Node |
|
|
695
|
+
* @param {Node | number} x - The parameter.
|
|
650
696
|
* @returns {Node}
|
|
651
697
|
*/
|
|
652
|
-
export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH );
|
|
698
|
+
export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH ).setParameterLength( 1 );
|
|
653
699
|
|
|
654
700
|
/**
|
|
655
701
|
* Returns the transpose of a matrix.
|
|
656
702
|
*
|
|
703
|
+
* @tsl
|
|
657
704
|
* @function
|
|
658
705
|
* @param {Node<mat2|mat3|mat4>} x - The parameter.
|
|
659
706
|
* @returns {Node}
|
|
660
707
|
*/
|
|
661
|
-
export const transpose = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSPOSE );
|
|
708
|
+
export const transpose = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSPOSE ).setParameterLength( 1 );
|
|
662
709
|
|
|
663
710
|
// 2 inputs
|
|
664
711
|
|
|
665
712
|
/**
|
|
666
713
|
* Reinterpret the bit representation of a value in one type as a value in another type.
|
|
667
714
|
*
|
|
715
|
+
* @tsl
|
|
668
716
|
* @function
|
|
669
|
-
* @param {Node |
|
|
670
|
-
* @param {
|
|
717
|
+
* @param {Node | number} x - The parameter.
|
|
718
|
+
* @param {string} y - The new type.
|
|
671
719
|
* @returns {Node}
|
|
672
720
|
*/
|
|
673
|
-
export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST );
|
|
721
|
+
export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST ).setParameterLength( 2 );
|
|
674
722
|
|
|
675
723
|
/**
|
|
676
724
|
* Returns `true` if `x` equals `y`.
|
|
677
725
|
*
|
|
726
|
+
* @tsl
|
|
678
727
|
* @function
|
|
679
|
-
* @param {Node |
|
|
680
|
-
* @param {Node |
|
|
728
|
+
* @param {Node | number} x - The first parameter.
|
|
729
|
+
* @param {Node | number} y - The second parameter.
|
|
730
|
+
* @deprecated since r175. Use {@link equal} instead.
|
|
681
731
|
* @returns {Node<bool>}
|
|
682
732
|
*/
|
|
683
|
-
export const equals =
|
|
733
|
+
export const equals = ( x, y ) => { // @deprecated, r172
|
|
684
734
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
* @param {Node | Number} x - The y parameter.
|
|
690
|
-
* @param {Node | Number} y - The x parameter.
|
|
691
|
-
* @returns {Node}
|
|
692
|
-
*/
|
|
693
|
-
export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN );
|
|
735
|
+
console.warn( 'THREE.TSL: "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"' );
|
|
736
|
+
return equal( x, y );
|
|
737
|
+
|
|
738
|
+
};
|
|
694
739
|
|
|
695
740
|
/**
|
|
696
|
-
* Returns the
|
|
741
|
+
* Returns the least of the given values.
|
|
697
742
|
*
|
|
743
|
+
* @tsl
|
|
698
744
|
* @function
|
|
699
|
-
* @param {Node |
|
|
700
|
-
* @param {Node | Number} y - The x parameter.
|
|
745
|
+
* @param {...(Node | number)} values - The values to compare.
|
|
701
746
|
* @returns {Node}
|
|
702
747
|
*/
|
|
703
|
-
export const
|
|
748
|
+
export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN ).setParameterLength( 2, Infinity );
|
|
704
749
|
|
|
705
750
|
/**
|
|
706
|
-
*
|
|
751
|
+
* Returns the greatest of the given values.
|
|
707
752
|
*
|
|
753
|
+
* @tsl
|
|
708
754
|
* @function
|
|
709
|
-
* @param {Node |
|
|
710
|
-
* @param {Node | Number} y - The x parameter.
|
|
755
|
+
* @param {...(Node | number)} values - The values to compare.
|
|
711
756
|
* @returns {Node}
|
|
712
757
|
*/
|
|
713
|
-
export const
|
|
758
|
+
export const max = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MAX ).setParameterLength( 2, Infinity );
|
|
714
759
|
|
|
715
760
|
/**
|
|
716
761
|
* Generate a step function by comparing two values.
|
|
717
762
|
*
|
|
763
|
+
* @tsl
|
|
718
764
|
* @function
|
|
719
|
-
* @param {Node |
|
|
720
|
-
* @param {Node |
|
|
765
|
+
* @param {Node | number} x - The y parameter.
|
|
766
|
+
* @param {Node | number} y - The x parameter.
|
|
721
767
|
* @returns {Node}
|
|
722
768
|
*/
|
|
723
|
-
export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP );
|
|
769
|
+
export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP ).setParameterLength( 2 );
|
|
724
770
|
|
|
725
771
|
/**
|
|
726
772
|
* Calculates the reflection direction for an incident vector.
|
|
727
773
|
*
|
|
774
|
+
* @tsl
|
|
728
775
|
* @function
|
|
729
776
|
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
730
777
|
* @param {Node<vec2|vec3|vec4>} N - The normal vector.
|
|
731
778
|
* @returns {Node<vec2|vec3|vec4>}
|
|
732
779
|
*/
|
|
733
|
-
export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT );
|
|
780
|
+
export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT ).setParameterLength( 2 );
|
|
734
781
|
|
|
735
782
|
/**
|
|
736
783
|
* Calculates the distance between two points.
|
|
737
784
|
*
|
|
785
|
+
* @tsl
|
|
738
786
|
* @function
|
|
739
787
|
* @param {Node<vec2|vec3|vec4>} x - The first point.
|
|
740
788
|
* @param {Node<vec2|vec3|vec4>} y - The second point.
|
|
741
789
|
* @returns {Node<float>}
|
|
742
790
|
*/
|
|
743
|
-
export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE );
|
|
791
|
+
export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE ).setParameterLength( 2 );
|
|
744
792
|
|
|
745
793
|
/**
|
|
746
794
|
* Calculates the absolute difference between two values.
|
|
747
795
|
*
|
|
796
|
+
* @tsl
|
|
748
797
|
* @function
|
|
749
|
-
* @param {Node |
|
|
750
|
-
* @param {Node |
|
|
798
|
+
* @param {Node | number} x - The first parameter.
|
|
799
|
+
* @param {Node | number} y - The second parameter.
|
|
751
800
|
* @returns {Node}
|
|
752
801
|
*/
|
|
753
|
-
export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE );
|
|
802
|
+
export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE ).setParameterLength( 2 );
|
|
754
803
|
|
|
755
804
|
/**
|
|
756
805
|
* Calculates the dot product of two vectors.
|
|
757
806
|
*
|
|
807
|
+
* @tsl
|
|
758
808
|
* @function
|
|
759
809
|
* @param {Node<vec2|vec3|vec4>} x - The first vector.
|
|
760
810
|
* @param {Node<vec2|vec3|vec4>} y - The second vector.
|
|
761
811
|
* @returns {Node<float>}
|
|
762
812
|
*/
|
|
763
|
-
export const dot = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DOT );
|
|
813
|
+
export const dot = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DOT ).setParameterLength( 2 );
|
|
764
814
|
|
|
765
815
|
/**
|
|
766
816
|
* Calculates the cross product of two vectors.
|
|
767
817
|
*
|
|
818
|
+
* @tsl
|
|
768
819
|
* @function
|
|
769
820
|
* @param {Node<vec2|vec3|vec4>} x - The first vector.
|
|
770
821
|
* @param {Node<vec2|vec3|vec4>} y - The second vector.
|
|
771
822
|
* @returns {Node<vec2|vec3|vec4>}
|
|
772
823
|
*/
|
|
773
|
-
export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS );
|
|
824
|
+
export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS ).setParameterLength( 2 );
|
|
774
825
|
|
|
775
826
|
/**
|
|
776
827
|
* Return the value of the first parameter raised to the power of the second one.
|
|
777
828
|
*
|
|
829
|
+
* @tsl
|
|
778
830
|
* @function
|
|
779
|
-
* @param {Node |
|
|
780
|
-
* @param {Node |
|
|
831
|
+
* @param {Node | number} x - The first parameter.
|
|
832
|
+
* @param {Node | number} y - The second parameter.
|
|
781
833
|
* @returns {Node}
|
|
782
834
|
*/
|
|
783
|
-
export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW );
|
|
835
|
+
export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW ).setParameterLength( 2 );
|
|
784
836
|
|
|
785
837
|
/**
|
|
786
838
|
* Returns the square of the parameter.
|
|
787
839
|
*
|
|
840
|
+
* @tsl
|
|
788
841
|
* @function
|
|
789
|
-
* @param {Node |
|
|
842
|
+
* @param {Node | number} x - The first parameter.
|
|
790
843
|
* @returns {Node}
|
|
791
844
|
*/
|
|
792
|
-
export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 );
|
|
845
|
+
export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 ).setParameterLength( 1 );
|
|
793
846
|
|
|
794
847
|
/**
|
|
795
848
|
* Returns the cube of the parameter.
|
|
796
849
|
*
|
|
850
|
+
* @tsl
|
|
797
851
|
* @function
|
|
798
|
-
* @param {Node |
|
|
852
|
+
* @param {Node | number} x - The first parameter.
|
|
799
853
|
* @returns {Node}
|
|
800
854
|
*/
|
|
801
|
-
export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 );
|
|
855
|
+
export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 ).setParameterLength( 1 );
|
|
802
856
|
|
|
803
857
|
/**
|
|
804
858
|
* Returns the fourth power of the parameter.
|
|
805
859
|
*
|
|
860
|
+
* @tsl
|
|
806
861
|
* @function
|
|
807
|
-
* @param {Node |
|
|
862
|
+
* @param {Node | number} x - The first parameter.
|
|
808
863
|
* @returns {Node}
|
|
809
864
|
*/
|
|
810
|
-
export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 );
|
|
865
|
+
export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 ).setParameterLength( 1 );
|
|
811
866
|
|
|
812
867
|
/**
|
|
813
868
|
* Transforms the direction of a vector by a matrix and then normalizes the result.
|
|
814
869
|
*
|
|
870
|
+
* @tsl
|
|
815
871
|
* @function
|
|
816
872
|
* @param {Node<vec2|vec3|vec4>} direction - The direction vector.
|
|
817
873
|
* @param {Node<mat2|mat3|mat4>} matrix - The transformation matrix.
|
|
818
874
|
* @returns {Node}
|
|
819
875
|
*/
|
|
820
|
-
export const transformDirection = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSFORM_DIRECTION );
|
|
876
|
+
export const transformDirection = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSFORM_DIRECTION ).setParameterLength( 2 );
|
|
821
877
|
|
|
822
878
|
/**
|
|
823
879
|
* Returns the cube root of a number.
|
|
824
880
|
*
|
|
881
|
+
* @tsl
|
|
825
882
|
* @function
|
|
826
|
-
* @param {Node |
|
|
883
|
+
* @param {Node | number} a - The first parameter.
|
|
827
884
|
* @returns {Node}
|
|
828
885
|
*/
|
|
829
886
|
export const cbrt = ( a ) => mul( sign( a ), pow( abs( a ), 1.0 / 3.0 ) );
|
|
@@ -831,6 +888,7 @@ export const cbrt = ( a ) => mul( sign( a ), pow( abs( a ), 1.0 / 3.0 ) );
|
|
|
831
888
|
/**
|
|
832
889
|
* Calculate the squared length of a vector.
|
|
833
890
|
*
|
|
891
|
+
* @tsl
|
|
834
892
|
* @function
|
|
835
893
|
* @param {Node<vec2|vec3|vec4>} a - The vector.
|
|
836
894
|
* @returns {Node<float>}
|
|
@@ -840,21 +898,23 @@ export const lengthSq = ( a ) => dot( a, a );
|
|
|
840
898
|
/**
|
|
841
899
|
* Linearly interpolates between two values.
|
|
842
900
|
*
|
|
901
|
+
* @tsl
|
|
843
902
|
* @function
|
|
844
|
-
* @param {Node |
|
|
845
|
-
* @param {Node |
|
|
846
|
-
* @param {Node |
|
|
903
|
+
* @param {Node | number} a - The first parameter.
|
|
904
|
+
* @param {Node | number} b - The second parameter.
|
|
905
|
+
* @param {Node | number} t - The interpolation value.
|
|
847
906
|
* @returns {Node}
|
|
848
907
|
*/
|
|
849
|
-
export const mix = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIX );
|
|
908
|
+
export const mix = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIX ).setParameterLength( 3 );
|
|
850
909
|
|
|
851
910
|
/**
|
|
852
911
|
* Constrains a value to lie between two further values.
|
|
853
912
|
*
|
|
913
|
+
* @tsl
|
|
854
914
|
* @function
|
|
855
|
-
* @param {Node |
|
|
856
|
-
* @param {Node |
|
|
857
|
-
* @param {Node |
|
|
915
|
+
* @param {Node | number} value - The value to constrain.
|
|
916
|
+
* @param {Node | number} [low=0] - The lower bound.
|
|
917
|
+
* @param {Node | number} [high=1] - The upper bound.
|
|
858
918
|
* @returns {Node}
|
|
859
919
|
*/
|
|
860
920
|
export const clamp = ( value, low = 0, high = 1 ) => nodeObject( new MathNode( MathNode.CLAMP, nodeObject( value ), nodeObject( low ), nodeObject( high ) ) );
|
|
@@ -862,8 +922,9 @@ export const clamp = ( value, low = 0, high = 1 ) => nodeObject( new MathNode( M
|
|
|
862
922
|
/**
|
|
863
923
|
* Constrains a value between `0` and `1`.
|
|
864
924
|
*
|
|
925
|
+
* @tsl
|
|
865
926
|
* @function
|
|
866
|
-
* @param {Node |
|
|
927
|
+
* @param {Node | number} value - The value to constrain.
|
|
867
928
|
* @returns {Node}
|
|
868
929
|
*/
|
|
869
930
|
export const saturate = ( value ) => clamp( value );
|
|
@@ -871,39 +932,43 @@ export const saturate = ( value ) => clamp( value );
|
|
|
871
932
|
/**
|
|
872
933
|
* Calculates the refraction direction for an incident vector.
|
|
873
934
|
*
|
|
935
|
+
* @tsl
|
|
874
936
|
* @function
|
|
875
937
|
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
876
938
|
* @param {Node<vec2|vec3|vec4>} N - The normal vector.
|
|
877
|
-
* @param {Node<float>} eta - The
|
|
939
|
+
* @param {Node<float>} eta - The ratio of indices of refraction.
|
|
878
940
|
* @returns {Node<vec2|vec3|vec4>}
|
|
879
941
|
*/
|
|
880
|
-
export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT );
|
|
942
|
+
export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT ).setParameterLength( 3 );
|
|
881
943
|
|
|
882
944
|
/**
|
|
883
945
|
* Performs a Hermite interpolation between two values.
|
|
884
946
|
*
|
|
947
|
+
* @tsl
|
|
885
948
|
* @function
|
|
886
|
-
* @param {Node |
|
|
887
|
-
* @param {Node |
|
|
888
|
-
* @param {Node |
|
|
949
|
+
* @param {Node | number} low - The value of the lower edge of the Hermite function.
|
|
950
|
+
* @param {Node | number} high - The value of the upper edge of the Hermite function.
|
|
951
|
+
* @param {Node | number} x - The source value for interpolation.
|
|
889
952
|
* @returns {Node}
|
|
890
953
|
*/
|
|
891
|
-
export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP );
|
|
954
|
+
export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP ).setParameterLength( 3 );
|
|
892
955
|
|
|
893
956
|
/**
|
|
894
957
|
* Returns a vector pointing in the same direction as another.
|
|
895
958
|
*
|
|
959
|
+
* @tsl
|
|
896
960
|
* @function
|
|
897
961
|
* @param {Node<vec2|vec3|vec4>} N - The vector to orient.
|
|
898
962
|
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
899
963
|
* @param {Node<vec2|vec3|vec4>} Nref - The reference vector.
|
|
900
964
|
* @returns {Node<vec2|vec3|vec4>}
|
|
901
965
|
*/
|
|
902
|
-
export const faceForward = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FACEFORWARD );
|
|
966
|
+
export const faceForward = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FACEFORWARD ).setParameterLength( 3 );
|
|
903
967
|
|
|
904
968
|
/**
|
|
905
969
|
* Returns a random value for the given uv.
|
|
906
970
|
*
|
|
971
|
+
* @tsl
|
|
907
972
|
* @function
|
|
908
973
|
* @param {Node<vec2>} uv - The uv node.
|
|
909
974
|
* @returns {Node<float>}
|
|
@@ -920,10 +985,11 @@ export const rand = /*@__PURE__*/ Fn( ( [ uv ] ) => {
|
|
|
920
985
|
/**
|
|
921
986
|
* Alias for `mix()` with a different parameter order.
|
|
922
987
|
*
|
|
988
|
+
* @tsl
|
|
923
989
|
* @function
|
|
924
|
-
* @param {Node |
|
|
925
|
-
* @param {Node |
|
|
926
|
-
* @param {Node |
|
|
990
|
+
* @param {Node | number} t - The interpolation value.
|
|
991
|
+
* @param {Node | number} e1 - The first parameter.
|
|
992
|
+
* @param {Node | number} e2 - The second parameter.
|
|
927
993
|
* @returns {Node}
|
|
928
994
|
*/
|
|
929
995
|
export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
|
|
@@ -931,10 +997,11 @@ export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
|
|
|
931
997
|
/**
|
|
932
998
|
* Alias for `smoothstep()` with a different parameter order.
|
|
933
999
|
*
|
|
1000
|
+
* @tsl
|
|
934
1001
|
* @function
|
|
935
|
-
* @param {Node |
|
|
936
|
-
* @param {Node |
|
|
937
|
-
* @param {Node |
|
|
1002
|
+
* @param {Node | number} x - The source value for interpolation.
|
|
1003
|
+
* @param {Node | number} low - The value of the lower edge of the Hermite function.
|
|
1004
|
+
* @param {Node | number} high - The value of the upper edge of the Hermite function.
|
|
938
1005
|
* @returns {Node}
|
|
939
1006
|
*/
|
|
940
1007
|
export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
|
|
@@ -942,11 +1009,12 @@ export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
|
|
|
942
1009
|
/**
|
|
943
1010
|
* Returns the arc-tangent of the quotient of its parameters.
|
|
944
1011
|
*
|
|
1012
|
+
* @tsl
|
|
945
1013
|
* @function
|
|
946
1014
|
* @deprecated since r172. Use {@link atan} instead.
|
|
947
1015
|
*
|
|
948
|
-
* @param {Node |
|
|
949
|
-
* @param {Node |
|
|
1016
|
+
* @param {Node | number} y - The y parameter.
|
|
1017
|
+
* @param {Node | number} x - The x parameter.
|
|
950
1018
|
* @returns {Node}
|
|
951
1019
|
*/
|
|
952
1020
|
export const atan2 = ( y, x ) => { // @deprecated, r172
|
|
@@ -1000,7 +1068,6 @@ addMethodChaining( 'fwidth', fwidth );
|
|
|
1000
1068
|
addMethodChaining( 'atan2', atan2 );
|
|
1001
1069
|
addMethodChaining( 'min', min );
|
|
1002
1070
|
addMethodChaining( 'max', max );
|
|
1003
|
-
addMethodChaining( 'mod', mod );
|
|
1004
1071
|
addMethodChaining( 'step', step );
|
|
1005
1072
|
addMethodChaining( 'reflect', reflect );
|
|
1006
1073
|
addMethodChaining( 'distance', distance );
|