@plastic-software/three 0.167.3 → 0.174.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/LICENSE +1 -1
- package/README.md +1 -1
- package/build/three.cjs +36277 -24023
- package/build/three.core.js +48830 -0
- package/build/three.core.min.js +6 -0
- package/build/three.module.js +10175 -46743
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +550 -0
- package/build/three.tsl.min.js +6 -0
- package/build/three.webgpu.js +44348 -50670
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +70301 -0
- package/build/three.webgpu.nodes.min.js +6 -0
- package/examples/jsm/Addons.js +3 -15
- package/examples/jsm/animation/AnimationClipCreator.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +61 -11
- package/examples/jsm/capabilities/WebGL.js +27 -21
- package/examples/jsm/capabilities/WebGPU.js +1 -10
- package/examples/jsm/controls/ArcballControls.js +262 -231
- package/examples/jsm/controls/DragControls.js +1 -1
- package/examples/jsm/controls/FirstPersonControls.js +175 -163
- package/examples/jsm/controls/FlyControls.js +194 -188
- package/examples/jsm/controls/OrbitControls.js +801 -777
- package/examples/jsm/controls/PointerLockControls.js +26 -20
- package/examples/jsm/controls/TrackballControls.js +469 -448
- package/examples/jsm/controls/TransformControls.js +119 -68
- package/examples/jsm/csm/CSM.js +2 -2
- package/examples/jsm/csm/CSMFrustum.js +7 -4
- package/examples/jsm/csm/CSMHelper.js +2 -0
- package/examples/jsm/csm/CSMShadowNode.js +442 -0
- package/examples/jsm/curves/NURBSCurve.js +33 -2
- package/examples/jsm/curves/NURBSUtils.js +3 -0
- package/examples/jsm/effects/AnaglyphEffect.js +6 -13
- package/examples/jsm/effects/OutlineEffect.js +1 -1
- package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
- package/examples/jsm/effects/StereoEffect.js +6 -1
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +19 -11
- package/examples/jsm/exporters/GLTFExporter.js +181 -109
- package/examples/jsm/exporters/KTX2Exporter.js +54 -23
- package/examples/jsm/exporters/OBJExporter.js +5 -1
- package/examples/jsm/exporters/PLYExporter.js +11 -9
- package/examples/jsm/exporters/USDZExporter.js +50 -11
- package/examples/jsm/geometries/DecalGeometry.js +73 -21
- package/examples/jsm/geometries/TextGeometry.js +1 -12
- package/examples/jsm/helpers/LightProbeHelper.js +43 -44
- package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +185 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
- package/examples/jsm/interactive/HTMLMesh.js +1 -0
- package/examples/jsm/interactive/InteractiveGroup.js +108 -51
- package/examples/jsm/interactive/SelectionHelper.js +3 -1
- package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
- package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
- package/examples/jsm/libs/demuxer_mp4.js +109 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +18 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -12
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/LineGeometry.js +25 -0
- package/examples/jsm/lines/LineMaterial.js +0 -1
- package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
- package/examples/jsm/lines/webgpu/Line2.js +2 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +16 -21
- package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +104 -2
- package/examples/jsm/loaders/BVHLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +15 -12
- package/examples/jsm/loaders/DDSLoader.js +42 -0
- package/examples/jsm/loaders/DRACOLoader.js +3 -1
- package/examples/jsm/loaders/FBXLoader.js +71 -22
- package/examples/jsm/loaders/GCodeLoader.js +4 -2
- package/examples/jsm/loaders/GLTFLoader.js +29 -14
- package/examples/jsm/loaders/KTX2Loader.js +160 -58
- package/examples/jsm/loaders/KTXLoader.js +4 -4
- package/examples/jsm/loaders/LDrawLoader.js +22 -136
- package/examples/jsm/loaders/LottieLoader.js +2 -1
- package/examples/jsm/loaders/MTLLoader.js +27 -7
- package/examples/jsm/loaders/MaterialXLoader.js +40 -14
- package/examples/jsm/loaders/NRRDLoader.js +1 -1
- package/examples/jsm/loaders/OBJLoader.js +5 -3
- package/examples/jsm/loaders/PCDLoader.js +14 -13
- package/examples/jsm/loaders/PDBLoader.js +3 -2
- package/examples/jsm/loaders/PLYLoader.js +15 -12
- package/examples/jsm/loaders/PVRLoader.js +1 -1
- package/examples/jsm/loaders/STLLoader.js +3 -2
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TDSLoader.js +17 -18
- package/examples/jsm/loaders/VRMLLoader.js +17 -17
- package/examples/jsm/loaders/VTKLoader.js +4 -3
- package/examples/jsm/loaders/XYZLoader.js +3 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
- package/examples/jsm/math/ColorSpaces.js +76 -0
- package/examples/jsm/math/ConvexHull.js +1 -1
- package/examples/jsm/math/OBB.js +17 -0
- package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
- package/examples/jsm/misc/ProgressiveLightMap.js +54 -41
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +294 -0
- package/examples/jsm/misc/Timer.js +27 -12
- package/examples/jsm/misc/Volume.js +28 -18
- package/examples/jsm/misc/VolumeSlice.js +19 -16
- package/examples/jsm/modifiers/CurveModifier.js +10 -8
- package/examples/jsm/modifiers/CurveModifierGPU.js +235 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
- package/examples/jsm/objects/GroundedSkybox.js +4 -4
- package/examples/jsm/objects/LensflareMesh.js +324 -0
- package/examples/jsm/objects/Reflector.js +5 -2
- package/examples/jsm/objects/Sky.js +2 -2
- package/examples/jsm/objects/SkyMesh.js +14 -14
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/objects/Water2Mesh.js +11 -9
- package/examples/jsm/objects/WaterMesh.js +38 -33
- package/examples/jsm/physics/JoltPhysics.js +8 -8
- package/examples/jsm/physics/RapierPhysics.js +5 -5
- package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
- package/examples/jsm/postprocessing/BloomPass.js +2 -2
- package/examples/jsm/postprocessing/EffectComposer.js +1 -2
- package/examples/jsm/postprocessing/OutlinePass.js +37 -51
- package/examples/jsm/postprocessing/OutputPass.js +2 -0
- package/examples/jsm/postprocessing/SAOPass.js +1 -2
- package/examples/jsm/postprocessing/SMAAPass.js +1 -3
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -4
- package/examples/jsm/postprocessing/SSRPass.js +8 -4
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
- package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
- package/examples/jsm/renderers/SVGRenderer.js +6 -4
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/FXAAShader.js +225 -224
- package/examples/jsm/shaders/GodRaysShader.js +3 -3
- package/examples/jsm/shaders/OutputShader.js +6 -2
- package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +12 -2
- package/examples/jsm/transpiler/GLSLDecoder.js +77 -31
- package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
- package/examples/jsm/transpiler/TSLEncoder.js +96 -21
- package/examples/jsm/tsl/display/AfterImageNode.js +243 -0
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +106 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +257 -0
- package/{src/nodes/display/BleachBypassNode.js → examples/jsm/tsl/display/BleachBypass.js} +11 -6
- package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +252 -67
- package/examples/jsm/tsl/display/DenoiseNode.js +332 -0
- package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +92 -14
- package/examples/jsm/tsl/display/DotScreenNode.js +103 -0
- package/examples/jsm/tsl/display/FXAANode.js +364 -0
- package/examples/jsm/tsl/display/FilmNode.js +100 -0
- package/examples/jsm/tsl/display/GTAONode.js +521 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +393 -0
- package/examples/jsm/tsl/display/LensflareNode.js +278 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +108 -0
- package/examples/jsm/tsl/display/MotionBlur.js +33 -0
- package/examples/jsm/tsl/display/OutlineNode.js +750 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +88 -0
- package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +160 -28
- package/examples/jsm/tsl/display/RGBShiftNode.js +95 -0
- package/examples/jsm/tsl/display/SMAANode.js +767 -0
- package/examples/jsm/tsl/display/SSAAPassNode.js +357 -0
- package/examples/jsm/tsl/display/SSRNode.js +538 -0
- package/examples/jsm/tsl/display/Sepia.js +24 -0
- package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +66 -20
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +184 -0
- package/examples/jsm/tsl/display/StereoPassNode.js +119 -0
- package/examples/jsm/tsl/display/TRAAPassNode.js +451 -0
- package/examples/jsm/tsl/display/TransitionNode.js +140 -0
- package/examples/jsm/tsl/display/hashBlur.js +34 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +395 -0
- package/examples/jsm/tsl/math/Bayer.js +18 -0
- package/examples/jsm/tsl/utils/Raymarching.js +65 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +2 -2
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryCompressionUtils.js +38 -123
- package/examples/jsm/utils/GeometryUtils.js +22 -19
- package/examples/jsm/utils/SceneOptimizer.js +410 -0
- package/examples/jsm/utils/SceneUtils.js +2 -2
- package/examples/jsm/utils/ShadowMapViewer.js +3 -8
- package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
- package/examples/jsm/utils/SkeletonUtils.js +84 -66
- package/examples/jsm/utils/UVsDebug.js +1 -1
- package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +1 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +64 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
- package/examples/jsm/webxr/Text2D.js +6 -6
- package/examples/jsm/webxr/XRControllerModelFactory.js +7 -2
- package/examples/jsm/webxr/XREstimatedLight.js +1 -1
- package/package.json +14 -9
- package/src/Three.Core.js +182 -0
- package/src/Three.Legacy.js +0 -21
- package/src/Three.TSL.js +543 -0
- package/src/Three.WebGPU.Nodes.js +23 -0
- package/src/Three.WebGPU.js +13 -184
- package/src/Three.js +1 -176
- package/src/animation/AnimationClip.js +2 -2
- package/src/animation/AnimationObjectGroup.js +2 -2
- package/src/animation/AnimationUtils.js +1 -1
- package/src/animation/PropertyBinding.js +2 -2
- package/src/audio/Audio.js +379 -2
- 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 +29 -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 +173 -34
- package/src/cameras/StereoCamera.js +48 -2
- package/src/constants.js +6 -6
- package/src/core/BufferAttribute.js +4 -9
- package/src/core/BufferGeometry.js +48 -8
- package/src/core/Clock.js +1 -1
- package/src/core/EventDispatcher.js +52 -8
- package/src/core/InterleavedBuffer.js +4 -13
- package/src/core/Object3D.js +573 -3
- package/src/core/RenderTarget.js +22 -4
- package/src/core/RenderTarget3D.js +22 -0
- package/src/core/RenderTargetArray.js +22 -0
- package/src/extras/Controls.js +104 -0
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +18 -7
- package/src/extras/ImageUtils.js +18 -11
- package/src/extras/PMREMGenerator.js +40 -9
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +96 -10
- package/src/extras/core/Curve.js +153 -53
- 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 +66 -3
- 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/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 +50 -4
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +30 -2
- package/src/geometries/ExtrudeGeometry.js +52 -0
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +43 -3
- 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 +61 -18
- 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 +24 -2
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/Loader.js +132 -0
- package/src/loaders/MaterialLoader.js +7 -1
- package/src/loaders/nodes/NodeLoader.js +189 -0
- package/src/loaders/nodes/NodeMaterialLoader.js +108 -0
- package/src/loaders/nodes/NodeObjectLoader.js +151 -0
- package/src/materials/LineDashedMaterial.js +0 -1
- package/src/materials/Material.js +469 -7
- package/src/materials/MeshPhongMaterial.js +1 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -2
- package/src/materials/MeshStandardMaterial.js +2 -2
- package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +192 -82
- package/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
- package/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
- package/src/materials/nodes/MeshBasicNodeMaterial.js +133 -0
- package/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
- package/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
- package/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +517 -0
- package/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
- package/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
- package/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
- package/src/materials/nodes/NodeMaterial.js +1180 -0
- package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -2
- package/src/materials/nodes/PointsNodeMaterial.js +153 -0
- package/src/materials/nodes/ShadowNodeMaterial.js +67 -0
- package/src/materials/nodes/SpriteNodeMaterial.js +198 -0
- package/src/materials/nodes/VolumeNodeMaterial.js +72 -0
- package/src/materials/nodes/manager/NodeMaterialObserver.js +509 -0
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/ColorManagement.js +143 -102
- 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 +96 -2
- package/src/math/MathUtils.js +182 -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 +265 -9
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +73 -11
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +230 -2
- package/src/math/Vector2.js +396 -10
- package/src/math/Vector3.js +550 -13
- package/src/math/Vector4.js +415 -9
- 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 +84 -166
- package/src/nodes/TSL.js +167 -0
- package/src/nodes/accessors/AccessorsUtils.js +39 -10
- package/src/nodes/accessors/Arrays.js +68 -0
- package/src/nodes/accessors/BatchNode.js +93 -26
- package/src/nodes/accessors/Bitangent.js +54 -0
- package/src/nodes/accessors/BufferAttributeNode.js +189 -11
- package/src/nodes/accessors/BufferNode.js +70 -5
- package/src/nodes/accessors/BuiltinNode.js +63 -0
- package/src/nodes/accessors/Camera.js +129 -0
- package/src/nodes/accessors/ClippingNode.js +152 -43
- package/src/nodes/accessors/CubeTextureNode.js +76 -13
- package/src/nodes/accessors/InstanceNode.js +118 -35
- package/src/nodes/accessors/InstancedMeshNode.js +50 -0
- package/src/nodes/accessors/Lights.js +129 -0
- package/src/nodes/accessors/MaterialNode.js +394 -58
- package/src/nodes/accessors/MaterialProperties.js +57 -1
- package/src/nodes/accessors/MaterialReferenceNode.js +60 -18
- package/src/nodes/accessors/ModelNode.js +159 -12
- package/src/nodes/accessors/ModelViewProjectionNode.js +10 -36
- package/src/nodes/accessors/MorphNode.js +60 -13
- package/src/nodes/accessors/Normal.js +156 -0
- package/src/nodes/accessors/Object3DNode.js +154 -35
- package/src/nodes/accessors/PointUVNode.js +35 -6
- package/src/nodes/accessors/Position.js +64 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +357 -0
- package/src/nodes/accessors/ReferenceNode.js +243 -6
- package/src/nodes/accessors/ReflectVector.js +36 -0
- package/src/nodes/accessors/RendererReferenceNode.js +57 -7
- package/src/nodes/accessors/SceneNode.js +98 -6
- package/src/nodes/accessors/SkinningNode.js +214 -21
- package/src/nodes/accessors/StorageBufferNode.js +288 -28
- package/src/nodes/accessors/StorageTextureNode.js +139 -12
- package/src/nodes/accessors/Tangent.js +62 -0
- package/src/nodes/accessors/Texture3DNode.js +98 -12
- package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +14 -34
- package/src/nodes/accessors/TextureNode.js +347 -34
- package/src/nodes/accessors/TextureSizeNode.js +51 -9
- package/src/nodes/accessors/UV.js +11 -0
- package/src/nodes/accessors/UniformArrayNode.js +241 -32
- package/src/nodes/accessors/UserDataNode.js +55 -7
- package/src/nodes/accessors/VelocityNode.js +223 -0
- package/src/nodes/accessors/VertexColorNode.js +45 -6
- package/src/nodes/code/CodeNode.js +108 -8
- package/src/nodes/code/ExpressionNode.js +38 -7
- package/src/nodes/code/FunctionCallNode.js +62 -11
- package/src/nodes/code/FunctionNode.js +54 -24
- package/src/nodes/code/ScriptableNode.js +241 -17
- package/src/nodes/code/ScriptableValueNode.js +93 -8
- package/src/nodes/core/ArrayNode.js +142 -0
- package/src/nodes/core/AssignNode.js +60 -12
- package/src/nodes/core/AttributeNode.js +55 -22
- package/src/nodes/core/BypassNode.js +59 -11
- package/src/nodes/core/CacheNode.js +64 -10
- package/src/nodes/core/ConstNode.js +38 -3
- package/src/nodes/core/ContextNode.js +87 -12
- package/src/nodes/core/IndexNode.js +102 -10
- package/src/nodes/core/InputNode.js +55 -3
- package/src/nodes/core/LightingModel.js +65 -5
- package/src/nodes/core/MRTNode.js +81 -7
- package/src/nodes/core/Node.js +368 -50
- package/src/nodes/core/NodeAttribute.js +38 -0
- package/src/nodes/core/NodeBuilder.js +1317 -83
- package/src/nodes/core/NodeCache.js +41 -2
- package/src/nodes/core/NodeCode.js +31 -0
- package/src/nodes/core/NodeFrame.js +123 -2
- package/src/nodes/core/NodeFunction.js +46 -0
- package/src/nodes/core/NodeFunctionInput.js +44 -0
- package/src/nodes/core/NodeParser.js +11 -0
- package/src/nodes/core/NodeUniform.js +52 -0
- package/src/nodes/core/NodeUtils.js +226 -6
- package/src/nodes/core/NodeVar.js +47 -1
- package/src/nodes/core/NodeVarying.js +28 -0
- package/src/nodes/core/OutputStructNode.js +61 -17
- package/src/nodes/core/ParameterNode.js +34 -4
- package/src/nodes/core/PropertyNode.js +296 -32
- package/src/nodes/core/StackNode.js +108 -8
- package/src/nodes/core/StructNode.js +120 -0
- package/src/nodes/core/StructType.js +13 -0
- package/src/nodes/core/StructTypeNode.js +116 -9
- package/src/nodes/core/TempNode.js +37 -7
- package/src/nodes/core/UniformGroupNode.js +98 -17
- package/src/nodes/core/UniformNode.js +72 -4
- package/src/nodes/core/VarNode.js +170 -13
- package/src/nodes/core/VaryingNode.js +109 -8
- package/src/nodes/core/constants.js +40 -0
- package/src/nodes/display/BlendModes.js +193 -0
- package/src/nodes/display/BumpMapNode.js +47 -10
- package/src/nodes/display/ColorAdjustment.js +141 -0
- package/src/nodes/display/ColorSpaceFunctions.js +54 -0
- package/src/nodes/display/ColorSpaceNode.js +147 -68
- package/src/nodes/display/FrontFacingNode.js +39 -6
- package/src/nodes/display/NormalMapNode.js +55 -13
- package/src/nodes/display/PassNode.js +420 -19
- package/src/nodes/display/PosterizeNode.js +40 -7
- package/src/nodes/display/RenderOutputNode.js +81 -13
- package/src/nodes/display/ScreenNode.js +286 -0
- package/src/nodes/display/ToneMappingFunctions.js +242 -0
- package/src/nodes/display/ToneMappingNode.js +68 -175
- package/src/nodes/display/ToonOutlinePassNode.js +183 -0
- package/src/nodes/display/ViewportDepthNode.js +210 -36
- package/src/nodes/display/ViewportDepthTextureNode.js +32 -9
- package/src/nodes/display/ViewportSharedTextureNode.js +32 -9
- package/src/nodes/display/ViewportTextureNode.js +68 -11
- package/src/nodes/fog/Fog.js +113 -0
- package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
- package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +50 -6
- package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +27 -6
- package/src/nodes/functions/PhongLightingModel.js +38 -8
- package/src/nodes/functions/PhysicalLightingModel.js +215 -51
- package/src/nodes/functions/ShadowMaskModel.js +24 -1
- package/src/nodes/functions/ToonLightingModel.js +24 -5
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
- package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
- package/src/nodes/functions/material/getRoughness.js +2 -2
- package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
- package/src/nodes/geometry/RangeNode.js +62 -7
- package/src/nodes/gpgpu/AtomicFunctionNode.js +280 -0
- package/src/nodes/gpgpu/BarrierNode.js +89 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +227 -0
- package/src/nodes/gpgpu/ComputeNode.js +124 -9
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +208 -0
- package/src/nodes/lighting/AONode.js +24 -3
- package/src/nodes/lighting/AmbientLightNode.js +16 -8
- package/src/nodes/lighting/AnalyticLightNode.js +151 -231
- package/src/nodes/lighting/BasicEnvironmentNode.js +25 -3
- package/src/nodes/lighting/BasicLightMapNode.js +25 -5
- package/src/nodes/lighting/DirectionalLightNode.js +19 -20
- package/src/nodes/lighting/EnvironmentNode.js +34 -17
- package/src/nodes/lighting/HemisphereLightNode.js +42 -11
- package/src/nodes/lighting/IESSpotLightNode.js +18 -9
- package/src/nodes/lighting/IrradianceNode.js +23 -3
- package/src/nodes/lighting/LightProbeNode.js +29 -36
- package/src/nodes/lighting/LightUtils.js +12 -4
- package/src/nodes/lighting/LightingContextNode.js +70 -21
- package/src/nodes/lighting/LightingNode.js +22 -9
- package/src/nodes/lighting/LightsNode.js +309 -86
- package/src/nodes/lighting/PointLightNode.js +66 -32
- package/src/nodes/lighting/PointShadowNode.js +306 -0
- package/src/nodes/lighting/RectAreaLightNode.js +61 -25
- package/src/nodes/lighting/ShadowBaseNode.js +92 -0
- package/src/nodes/lighting/ShadowNode.js +812 -0
- package/src/nodes/lighting/SpotLightNode.js +73 -31
- package/src/nodes/materialx/MaterialXNodes.js +2 -2
- package/src/nodes/materialx/lib/mx_hsv.js +27 -22
- package/src/nodes/materialx/lib/mx_noise.js +70 -70
- package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
- package/src/nodes/math/ConditionalNode.js +230 -0
- package/src/nodes/math/Hash.js +21 -0
- package/src/nodes/math/MathNode.js +812 -131
- package/src/nodes/math/MathUtils.js +47 -8
- package/src/nodes/math/OperatorNode.js +410 -66
- package/src/nodes/math/TriNoise3D.js +32 -32
- package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
- package/src/nodes/parsers/GLSLNodeParser.js +11 -0
- package/src/nodes/pmrem/PMREMNode.js +188 -28
- package/src/nodes/pmrem/PMREMUtils.js +24 -24
- package/src/nodes/procedural/Checker.js +22 -0
- package/src/nodes/shapes/Shapes.js +32 -0
- package/src/nodes/tsl/TSLBase.js +31 -0
- package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +114 -98
- package/src/nodes/utils/ArrayElementNode.js +45 -5
- package/src/nodes/utils/ConvertNode.js +39 -4
- package/src/nodes/utils/CubeMapNode.js +88 -8
- package/src/nodes/utils/Discard.js +24 -0
- package/src/nodes/utils/EquirectUVNode.js +39 -7
- package/src/nodes/utils/FlipNode.js +106 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +61 -6
- package/src/nodes/utils/JoinNode.js +31 -3
- package/src/nodes/utils/LoopNode.js +95 -9
- package/src/nodes/utils/MatcapUVNode.js +27 -8
- package/src/nodes/utils/MaxMipLevelNode.js +57 -6
- package/src/nodes/utils/MemberNode.js +68 -0
- package/src/nodes/utils/Oscillators.js +41 -0
- package/src/nodes/utils/Packing.js +21 -0
- package/src/nodes/utils/PostProcessingUtils.js +95 -0
- package/src/nodes/utils/RTTNode.js +141 -9
- package/src/nodes/utils/ReflectorNode.js +295 -21
- package/src/nodes/utils/RemapNode.js +93 -10
- package/src/nodes/utils/RotateNode.js +48 -13
- package/src/nodes/utils/SetNode.js +50 -4
- package/src/nodes/utils/SplitNode.js +62 -6
- package/src/nodes/utils/SpriteSheetUVNode.js +56 -7
- package/src/nodes/utils/SpriteUtils.js +21 -5
- package/src/nodes/utils/StorageArrayElementNode.js +64 -12
- package/src/nodes/utils/Timer.js +73 -0
- package/src/nodes/utils/TriplanarTexturesNode.js +96 -10
- package/src/nodes/utils/UVUtils.js +27 -9
- package/src/nodes/utils/ViewportUtils.js +16 -4
- package/src/objects/BatchedMesh.js +808 -281
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +68 -0
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +120 -5
- package/src/objects/Line.js +89 -6
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +82 -23
- package/src/objects/Points.js +62 -0
- package/src/objects/Skeleton.js +107 -2
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGLRenderer.js +274 -157
- package/src/renderers/common/Animation.js +109 -12
- package/src/renderers/common/Attributes.js +40 -0
- package/src/renderers/common/Backend.js +504 -44
- package/src/renderers/common/Background.js +67 -9
- package/src/renderers/common/BindGroup.js +45 -1
- package/src/renderers/common/Binding.js +35 -0
- package/src/renderers/common/Bindings.js +136 -19
- package/src/renderers/common/Buffer.js +49 -0
- package/src/renderers/common/BufferUtils.js +25 -0
- package/src/renderers/common/BundleGroup.js +83 -0
- package/src/renderers/common/ChainMap.js +45 -6
- package/src/renderers/common/ClippingContext.js +175 -80
- package/src/renderers/common/Color4.js +40 -0
- package/src/renderers/common/ComputePipeline.js +24 -0
- package/src/renderers/common/Constants.js +2 -1
- package/src/renderers/common/CubeRenderTarget.js +22 -3
- package/src/renderers/common/DataMap.js +37 -1
- package/src/renderers/common/Geometries.js +111 -14
- package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
- package/src/renderers/common/Info.js +78 -35
- package/src/renderers/common/Lighting.js +73 -0
- package/src/renderers/common/Pipeline.js +22 -0
- package/src/renderers/common/Pipelines.js +148 -5
- package/src/renderers/common/PostProcessing.js +112 -11
- package/src/renderers/common/ProgrammableStage.js +60 -2
- package/src/renderers/common/QuadMesh.js +56 -5
- package/src/renderers/common/RenderBundle.js +14 -8
- package/src/renderers/common/RenderBundles.js +39 -10
- package/src/renderers/common/RenderContext.js +205 -7
- package/src/renderers/common/RenderContexts.js +59 -6
- package/src/renderers/common/RenderList.js +230 -21
- package/src/renderers/common/RenderLists.js +45 -6
- package/src/renderers/common/RenderObject.js +552 -41
- package/src/renderers/common/RenderObjects.js +118 -9
- package/src/renderers/common/RenderPipeline.js +24 -0
- package/src/renderers/common/Renderer.js +1537 -239
- package/src/renderers/common/RendererUtils.js +191 -0
- package/src/renderers/common/SampledTexture.js +132 -3
- package/src/renderers/common/Sampler.js +30 -0
- package/src/renderers/common/StorageBuffer.js +24 -0
- package/src/renderers/common/StorageBufferAttribute.js +31 -2
- package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
- package/src/renderers/common/StorageTexture.js +38 -0
- package/src/renderers/common/Textures.js +142 -32
- package/src/renderers/common/TimestampQueryPool.js +98 -0
- package/src/renderers/common/Uniform.js +225 -3
- package/src/renderers/common/UniformBuffer.js +19 -0
- package/src/renderers/common/UniformsGroup.js +157 -6
- package/src/renderers/common/XRManager.js +1185 -0
- package/src/renderers/common/XRRenderTarget.js +74 -0
- package/src/renderers/common/extras/PMREMGenerator.js +211 -53
- package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
- package/src/renderers/common/nodes/NodeLibrary.js +194 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +92 -4
- package/src/renderers/common/nodes/NodeSampler.js +28 -0
- package/src/renderers/common/nodes/NodeStorageBuffer.js +37 -3
- package/src/renderers/common/nodes/NodeUniform.js +285 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
- package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
- package/src/renderers/common/nodes/Nodes.js +390 -70
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
- package/src/renderers/shaders/ShaderLib/points.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
- package/src/renderers/webgl/WebGLAttributes.js +45 -14
- package/src/renderers/webgl/WebGLBackground.js +24 -1
- package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLCapabilities.js +2 -0
- package/src/renderers/webgl/WebGLGeometries.js +0 -28
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLProgram.js +27 -29
- package/src/renderers/webgl/WebGLPrograms.js +24 -16
- package/src/renderers/webgl/WebGLState.js +68 -11
- package/src/renderers/webgl/WebGLTextures.js +49 -10
- package/src/renderers/webgl-fallback/WebGLBackend.js +1055 -238
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +425 -48
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +64 -1
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +419 -14
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +281 -59
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +367 -0
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
- package/src/renderers/webgpu/WebGPUBackend.js +816 -236
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +78 -0
- package/src/renderers/webgpu/WebGPURenderer.js +45 -6
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +63 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +97 -0
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +954 -147
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +29 -4
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +147 -31
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +213 -31
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +146 -28
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +161 -7
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +333 -50
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +287 -0
- package/src/renderers/webgpu/utils/WebGPUUtils.js +131 -3
- package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
- package/src/renderers/webxr/WebXRManager.js +54 -32
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +87 -0
- package/src/textures/Data3DTexture.js +2 -2
- package/src/textures/DepthTexture.js +2 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +368 -5
- package/src/textures/VideoFrameTexture.js +35 -0
- package/src/utils.js +33 -1
- package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
- package/examples/jsm/animation/MMDPhysics.js +0 -1406
- package/examples/jsm/cameras/CinematicCamera.js +0 -208
- package/examples/jsm/controls/Controls.js +0 -32
- package/examples/jsm/exporters/MMDExporter.js +0 -217
- package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
- package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
- package/examples/jsm/libs/mmdparser.module.js +0 -11530
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/examples/jsm/loaders/MMDLoader.js +0 -2295
- package/examples/jsm/loaders/TiltLoader.js +0 -520
- package/examples/jsm/objects/InstancedPoints.js +0 -21
- package/examples/jsm/shaders/MMDToonShader.js +0 -134
- package/examples/jsm/utils/GPUStatsPanel.js +0 -95
- package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
- package/src/nodes/accessors/BitangentNode.js +0 -13
- package/src/nodes/accessors/CameraNode.js +0 -19
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
- package/src/nodes/accessors/NormalNode.js +0 -14
- package/src/nodes/accessors/PositionNode.js +0 -10
- package/src/nodes/accessors/ReflectVectorNode.js +0 -10
- package/src/nodes/accessors/TangentNode.js +0 -23
- package/src/nodes/accessors/UVNode.js +0 -3
- package/src/nodes/core/NodeKeywords.js +0 -80
- package/src/nodes/core/UniformGroup.js +0 -13
- package/src/nodes/display/AfterImageNode.js +0 -152
- package/src/nodes/display/AnamorphicNode.js +0 -145
- package/src/nodes/display/BlendModeNode.js +0 -128
- package/src/nodes/display/ColorAdjustmentNode.js +0 -104
- package/src/nodes/display/DenoiseNode.js +0 -198
- package/src/nodes/display/DotScreenNode.js +0 -75
- package/src/nodes/display/FXAANode.js +0 -327
- package/src/nodes/display/FilmNode.js +0 -52
- package/src/nodes/display/GTAONode.js +0 -324
- package/src/nodes/display/GaussianBlurNode.js +0 -207
- package/src/nodes/display/Lut3DNode.js +0 -53
- package/src/nodes/display/RGBShiftNode.js +0 -49
- package/src/nodes/display/SepiaNode.js +0 -18
- package/src/nodes/display/TransitionNode.js +0 -76
- package/src/nodes/display/ViewportNode.js +0 -137
- package/src/nodes/fog/FogExp2Node.js +0 -34
- package/src/nodes/fog/FogNode.js +0 -48
- package/src/nodes/fog/FogRangeNode.js +0 -35
- package/src/nodes/lighting/LightNode.js +0 -57
- package/src/nodes/loaders/NodeLoader.js +0 -110
- package/src/nodes/loaders/NodeMaterialLoader.js +0 -60
- package/src/nodes/loaders/NodeObjectLoader.js +0 -71
- package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
- package/src/nodes/materials/LineBasicNodeMaterial.js +0 -28
- package/src/nodes/materials/LineDashedNodeMaterial.js +0 -55
- package/src/nodes/materials/MeshBasicNodeMaterial.js +0 -73
- package/src/nodes/materials/MeshLambertNodeMaterial.js +0 -43
- package/src/nodes/materials/MeshMatcapNodeMaterial.js +0 -53
- package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
- package/src/nodes/materials/MeshPhongNodeMaterial.js +0 -74
- package/src/nodes/materials/MeshPhysicalNodeMaterial.js +0 -244
- package/src/nodes/materials/MeshSSSNodeMaterial.js +0 -84
- package/src/nodes/materials/MeshStandardNodeMaterial.js +0 -104
- package/src/nodes/materials/MeshToonNodeMaterial.js +0 -34
- package/src/nodes/materials/NodeMaterial.js +0 -680
- package/src/nodes/materials/PointsNodeMaterial.js +0 -39
- package/src/nodes/materials/ShadowNodeMaterial.js +0 -34
- package/src/nodes/materials/SpriteNodeMaterial.js +0 -90
- package/src/nodes/materials/VolumeNodeMaterial.js +0 -106
- package/src/nodes/math/CondNode.js +0 -139
- package/src/nodes/math/HashNode.js +0 -34
- package/src/nodes/procedural/CheckerNode.js +0 -42
- package/src/nodes/utils/DiscardNode.js +0 -28
- package/src/nodes/utils/OscNode.js +0 -81
- package/src/nodes/utils/PackingNode.js +0 -55
- package/src/nodes/utils/TimerNode.js +0 -94
|
@@ -1,22 +1,85 @@
|
|
|
1
1
|
import TempNode from '../core/TempNode.js';
|
|
2
2
|
import { sub, mul, div } from './OperatorNode.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { addMethodChaining, nodeObject, nodeProxy, float, vec2, vec3, vec4, Fn } from '../tsl/TSLCore.js';
|
|
4
|
+
import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../../constants.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This node represents a variety of mathematical methods available in shaders.
|
|
8
|
+
* They are divided into three categories:
|
|
9
|
+
*
|
|
10
|
+
* - Methods with one input like `sin`, `cos` or `normalize`.
|
|
11
|
+
* - Methods with two inputs like `dot`, `cross` or `pow`.
|
|
12
|
+
* - Methods with three inputs like `mix`, `clamp` or `smoothstep`.
|
|
13
|
+
*
|
|
14
|
+
* @augments TempNode
|
|
15
|
+
*/
|
|
6
16
|
class MathNode extends TempNode {
|
|
7
17
|
|
|
18
|
+
static get type() {
|
|
19
|
+
|
|
20
|
+
return 'MathNode';
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Constructs a new math node.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} method - The method name.
|
|
28
|
+
* @param {Node} aNode - The first input.
|
|
29
|
+
* @param {?Node} [bNode=null] - The second input.
|
|
30
|
+
* @param {?Node} [cNode=null] - The third input.
|
|
31
|
+
*/
|
|
8
32
|
constructor( method, aNode, bNode = null, cNode = null ) {
|
|
9
33
|
|
|
10
34
|
super();
|
|
11
35
|
|
|
36
|
+
/**
|
|
37
|
+
* The method name.
|
|
38
|
+
*
|
|
39
|
+
* @type {string}
|
|
40
|
+
*/
|
|
12
41
|
this.method = method;
|
|
13
42
|
|
|
43
|
+
/**
|
|
44
|
+
* The first input.
|
|
45
|
+
*
|
|
46
|
+
* @type {Node}
|
|
47
|
+
*/
|
|
14
48
|
this.aNode = aNode;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The second input.
|
|
52
|
+
*
|
|
53
|
+
* @type {?Node}
|
|
54
|
+
* @default null
|
|
55
|
+
*/
|
|
15
56
|
this.bNode = bNode;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The third input.
|
|
60
|
+
*
|
|
61
|
+
* @type {?Node}
|
|
62
|
+
* @default null
|
|
63
|
+
*/
|
|
16
64
|
this.cNode = cNode;
|
|
17
65
|
|
|
66
|
+
/**
|
|
67
|
+
* This flag can be used for type testing.
|
|
68
|
+
*
|
|
69
|
+
* @type {boolean}
|
|
70
|
+
* @readonly
|
|
71
|
+
* @default true
|
|
72
|
+
*/
|
|
73
|
+
this.isMathNode = true;
|
|
74
|
+
|
|
18
75
|
}
|
|
19
76
|
|
|
77
|
+
/**
|
|
78
|
+
* The input type is inferred from the node types of the input nodes.
|
|
79
|
+
*
|
|
80
|
+
* @param {NodeBuilder} builder - The current node builder.
|
|
81
|
+
* @return {string} The input type.
|
|
82
|
+
*/
|
|
20
83
|
getInputType( builder ) {
|
|
21
84
|
|
|
22
85
|
const aType = this.aNode.getNodeType( builder );
|
|
@@ -45,6 +108,12 @@ class MathNode extends TempNode {
|
|
|
45
108
|
|
|
46
109
|
}
|
|
47
110
|
|
|
111
|
+
/**
|
|
112
|
+
* The selected method as well as the input type determine the node type of this node.
|
|
113
|
+
*
|
|
114
|
+
* @param {NodeBuilder} builder - The current node builder.
|
|
115
|
+
* @return {string} The node type.
|
|
116
|
+
*/
|
|
48
117
|
getNodeType( builder ) {
|
|
49
118
|
|
|
50
119
|
const method = this.method;
|
|
@@ -79,7 +148,7 @@ class MathNode extends TempNode {
|
|
|
79
148
|
|
|
80
149
|
generate( builder, output ) {
|
|
81
150
|
|
|
82
|
-
|
|
151
|
+
let method = this.method;
|
|
83
152
|
|
|
84
153
|
const type = this.getNodeType( builder );
|
|
85
154
|
const inputType = this.getInputType( builder );
|
|
@@ -88,7 +157,7 @@ class MathNode extends TempNode {
|
|
|
88
157
|
const b = this.bNode;
|
|
89
158
|
const c = this.cNode;
|
|
90
159
|
|
|
91
|
-
const
|
|
160
|
+
const coordinateSystem = builder.renderer.coordinateSystem;
|
|
92
161
|
|
|
93
162
|
if ( method === MathNode.TRANSFORM_DIRECTION ) {
|
|
94
163
|
|
|
@@ -139,14 +208,14 @@ class MathNode extends TempNode {
|
|
|
139
208
|
b.build( builder, type )
|
|
140
209
|
);
|
|
141
210
|
|
|
142
|
-
} else if ( method === MathNode.STEP ) {
|
|
211
|
+
} else if ( coordinateSystem === WebGLCoordinateSystem && method === MathNode.STEP ) {
|
|
143
212
|
|
|
144
213
|
params.push(
|
|
145
214
|
a.build( builder, builder.getTypeLength( a.getNodeType( builder ) ) === 1 ? 'float' : inputType ),
|
|
146
215
|
b.build( builder, inputType )
|
|
147
216
|
);
|
|
148
217
|
|
|
149
|
-
} else if ( (
|
|
218
|
+
} else if ( ( coordinateSystem === WebGLCoordinateSystem && ( method === MathNode.MIN || method === MathNode.MAX ) ) || method === MathNode.MOD ) {
|
|
150
219
|
|
|
151
220
|
params.push(
|
|
152
221
|
a.build( builder, inputType ),
|
|
@@ -171,6 +240,12 @@ class MathNode extends TempNode {
|
|
|
171
240
|
|
|
172
241
|
} else {
|
|
173
242
|
|
|
243
|
+
if ( coordinateSystem === WebGPUCoordinateSystem && method === MathNode.ATAN && b !== null ) {
|
|
244
|
+
|
|
245
|
+
method = 'atan2';
|
|
246
|
+
|
|
247
|
+
}
|
|
248
|
+
|
|
174
249
|
params.push( a.build( builder, inputType ) );
|
|
175
250
|
if ( b !== null ) params.push( b.build( builder, inputType ) );
|
|
176
251
|
if ( c !== null ) params.push( c.build( builder, inputType ) );
|
|
@@ -205,7 +280,6 @@ class MathNode extends TempNode {
|
|
|
205
280
|
|
|
206
281
|
MathNode.ALL = 'all';
|
|
207
282
|
MathNode.ANY = 'any';
|
|
208
|
-
MathNode.EQUALS = 'equals';
|
|
209
283
|
|
|
210
284
|
MathNode.RADIANS = 'radians';
|
|
211
285
|
MathNode.DEGREES = 'degrees';
|
|
@@ -236,12 +310,12 @@ MathNode.ROUND = 'round';
|
|
|
236
310
|
MathNode.RECIPROCAL = 'reciprocal';
|
|
237
311
|
MathNode.TRUNC = 'trunc';
|
|
238
312
|
MathNode.FWIDTH = 'fwidth';
|
|
239
|
-
MathNode.BITCAST = 'bitcast';
|
|
240
313
|
MathNode.TRANSPOSE = 'transpose';
|
|
241
314
|
|
|
242
315
|
// 2 inputs
|
|
243
316
|
|
|
244
|
-
MathNode.
|
|
317
|
+
MathNode.BITCAST = 'bitcast';
|
|
318
|
+
MathNode.EQUALS = 'equals';
|
|
245
319
|
MathNode.MIN = 'min';
|
|
246
320
|
MathNode.MAX = 'max';
|
|
247
321
|
MathNode.MOD = 'mod';
|
|
@@ -264,73 +338,636 @@ MathNode.FACEFORWARD = 'faceforward';
|
|
|
264
338
|
|
|
265
339
|
export default MathNode;
|
|
266
340
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
export const
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
export const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
export const
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
export const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
export const
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
341
|
+
// 1 inputs
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* A small value used to handle floating-point precision errors.
|
|
345
|
+
*
|
|
346
|
+
* @tsl
|
|
347
|
+
* @type {Node<float>}
|
|
348
|
+
*/
|
|
349
|
+
export const EPSILON = /*@__PURE__*/ float( 1e-6 );
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Represents infinity.
|
|
353
|
+
*
|
|
354
|
+
* @tsl
|
|
355
|
+
* @type {Node<float>}
|
|
356
|
+
*/
|
|
357
|
+
export const INFINITY = /*@__PURE__*/ float( 1e6 );
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Represents PI.
|
|
361
|
+
*
|
|
362
|
+
* @tsl
|
|
363
|
+
* @type {Node<float>}
|
|
364
|
+
*/
|
|
365
|
+
export const PI = /*@__PURE__*/ float( Math.PI );
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Represents PI * 2.
|
|
369
|
+
*
|
|
370
|
+
* @tsl
|
|
371
|
+
* @type {Node<float>}
|
|
372
|
+
*/
|
|
373
|
+
export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Returns `true` if all components of `x` are `true`.
|
|
377
|
+
*
|
|
378
|
+
* @tsl
|
|
379
|
+
* @function
|
|
380
|
+
* @param {Node | number} x - The parameter.
|
|
381
|
+
* @returns {Node<bool>}
|
|
382
|
+
*/
|
|
383
|
+
export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL );
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Returns `true` if any components of `x` are `true`.
|
|
387
|
+
*
|
|
388
|
+
* @tsl
|
|
389
|
+
* @function
|
|
390
|
+
* @param {Node | number} x - The parameter.
|
|
391
|
+
* @returns {Node<bool>}
|
|
392
|
+
*/
|
|
393
|
+
export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY );
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Converts a quantity in degrees to radians.
|
|
397
|
+
*
|
|
398
|
+
* @tsl
|
|
399
|
+
* @function
|
|
400
|
+
* @param {Node | number} x - The input in degrees.
|
|
401
|
+
* @returns {Node}
|
|
402
|
+
*/
|
|
403
|
+
export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS );
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Convert a quantity in radians to degrees.
|
|
407
|
+
*
|
|
408
|
+
* @tsl
|
|
409
|
+
* @function
|
|
410
|
+
* @param {Node | number} x - The input in radians.
|
|
411
|
+
* @returns {Node}
|
|
412
|
+
*/
|
|
413
|
+
export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES );
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Returns the natural exponentiation of the parameter.
|
|
417
|
+
*
|
|
418
|
+
* @tsl
|
|
419
|
+
* @function
|
|
420
|
+
* @param {Node | number} x - The parameter.
|
|
421
|
+
* @returns {Node}
|
|
422
|
+
*/
|
|
423
|
+
export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP );
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Returns 2 raised to the power of the parameter.
|
|
427
|
+
*
|
|
428
|
+
* @tsl
|
|
429
|
+
* @function
|
|
430
|
+
* @param {Node | number} x - The parameter.
|
|
431
|
+
* @returns {Node}
|
|
432
|
+
*/
|
|
433
|
+
export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 );
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Returns the natural logarithm of the parameter.
|
|
437
|
+
*
|
|
438
|
+
* @tsl
|
|
439
|
+
* @function
|
|
440
|
+
* @param {Node | number} x - The parameter.
|
|
441
|
+
* @returns {Node}
|
|
442
|
+
*/
|
|
443
|
+
export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG );
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Returns the base 2 logarithm of the parameter.
|
|
447
|
+
*
|
|
448
|
+
* @tsl
|
|
449
|
+
* @function
|
|
450
|
+
* @param {Node | number} x - The parameter.
|
|
451
|
+
* @returns {Node}
|
|
452
|
+
*/
|
|
453
|
+
export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 );
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Returns the square root of the parameter.
|
|
457
|
+
*
|
|
458
|
+
* @tsl
|
|
459
|
+
* @function
|
|
460
|
+
* @param {Node | number} x - The parameter.
|
|
461
|
+
* @returns {Node}
|
|
462
|
+
*/
|
|
463
|
+
export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT );
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Returns the inverse of the square root of the parameter.
|
|
467
|
+
*
|
|
468
|
+
* @tsl
|
|
469
|
+
* @function
|
|
470
|
+
* @param {Node | number} x - The parameter.
|
|
471
|
+
* @returns {Node}
|
|
472
|
+
*/
|
|
473
|
+
export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_SQRT );
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Finds the nearest integer less than or equal to the parameter.
|
|
477
|
+
*
|
|
478
|
+
* @tsl
|
|
479
|
+
* @function
|
|
480
|
+
* @param {Node | number} x - The parameter.
|
|
481
|
+
* @returns {Node}
|
|
482
|
+
*/
|
|
483
|
+
export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR );
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Finds the nearest integer that is greater than or equal to the parameter.
|
|
487
|
+
*
|
|
488
|
+
* @tsl
|
|
489
|
+
* @function
|
|
490
|
+
* @param {Node | number} x - The parameter.
|
|
491
|
+
* @returns {Node}
|
|
492
|
+
*/
|
|
493
|
+
export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL );
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* Calculates the unit vector in the same direction as the original vector.
|
|
497
|
+
*
|
|
498
|
+
* @tsl
|
|
499
|
+
* @function
|
|
500
|
+
* @param {Node} x - The input vector.
|
|
501
|
+
* @returns {Node}
|
|
502
|
+
*/
|
|
503
|
+
export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE );
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Computes the fractional part of the parameter.
|
|
507
|
+
*
|
|
508
|
+
* @tsl
|
|
509
|
+
* @function
|
|
510
|
+
* @param {Node | number} x - The parameter.
|
|
511
|
+
* @returns {Node}
|
|
512
|
+
*/
|
|
513
|
+
export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT );
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Returns the sine of the parameter.
|
|
517
|
+
*
|
|
518
|
+
* @tsl
|
|
519
|
+
* @function
|
|
520
|
+
* @param {Node | number} x - The parameter.
|
|
521
|
+
* @returns {Node}
|
|
522
|
+
*/
|
|
523
|
+
export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN );
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* Returns the cosine of the parameter.
|
|
527
|
+
*
|
|
528
|
+
* @tsl
|
|
529
|
+
* @function
|
|
530
|
+
* @param {Node | number} x - The parameter.
|
|
531
|
+
* @returns {Node}
|
|
532
|
+
*/
|
|
533
|
+
export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS );
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* Returns the tangent of the parameter.
|
|
537
|
+
*
|
|
538
|
+
* @tsl
|
|
539
|
+
* @function
|
|
540
|
+
* @param {Node | number} x - The parameter.
|
|
541
|
+
* @returns {Node}
|
|
542
|
+
*/
|
|
543
|
+
export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN );
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Returns the arcsine of the parameter.
|
|
547
|
+
*
|
|
548
|
+
* @tsl
|
|
549
|
+
* @function
|
|
550
|
+
* @param {Node | number} x - The parameter.
|
|
551
|
+
* @returns {Node}
|
|
552
|
+
*/
|
|
553
|
+
export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN );
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* Returns the arccosine of the parameter.
|
|
557
|
+
*
|
|
558
|
+
* @tsl
|
|
559
|
+
* @function
|
|
560
|
+
* @param {Node | number} x - The parameter.
|
|
561
|
+
* @returns {Node}
|
|
562
|
+
*/
|
|
563
|
+
export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS );
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* Returns the arc-tangent of the parameter.
|
|
567
|
+
* If two parameters are provided, the result is `atan2(y/x)`.
|
|
568
|
+
*
|
|
569
|
+
* @tsl
|
|
570
|
+
* @function
|
|
571
|
+
* @param {Node | number} y - The y parameter.
|
|
572
|
+
* @param {?(Node | number)} x - The x parameter.
|
|
573
|
+
* @returns {Node}
|
|
574
|
+
*/
|
|
575
|
+
export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN );
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* Returns the absolute value of the parameter.
|
|
579
|
+
*
|
|
580
|
+
* @tsl
|
|
581
|
+
* @function
|
|
582
|
+
* @param {Node | number} x - The parameter.
|
|
583
|
+
* @returns {Node}
|
|
584
|
+
*/
|
|
585
|
+
export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS );
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* Extracts the sign of the parameter.
|
|
589
|
+
*
|
|
590
|
+
* @tsl
|
|
591
|
+
* @function
|
|
592
|
+
* @param {Node | number} x - The parameter.
|
|
593
|
+
* @returns {Node}
|
|
594
|
+
*/
|
|
595
|
+
export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN );
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* Calculates the length of a vector.
|
|
599
|
+
*
|
|
600
|
+
* @tsl
|
|
601
|
+
* @function
|
|
602
|
+
* @param {Node} x - The parameter.
|
|
603
|
+
* @returns {Node<float>}
|
|
604
|
+
*/
|
|
605
|
+
export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH );
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* Negates the value of the parameter (-x).
|
|
609
|
+
*
|
|
610
|
+
* @tsl
|
|
611
|
+
* @function
|
|
612
|
+
* @param {Node | number} x - The parameter.
|
|
613
|
+
* @returns {Node}
|
|
614
|
+
*/
|
|
615
|
+
export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE );
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Return `1` minus the parameter.
|
|
619
|
+
*
|
|
620
|
+
* @tsl
|
|
621
|
+
* @function
|
|
622
|
+
* @param {Node | number} x - The parameter.
|
|
623
|
+
* @returns {Node}
|
|
624
|
+
*/
|
|
625
|
+
export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS );
|
|
626
|
+
|
|
627
|
+
/**
|
|
628
|
+
* Returns the partial derivative of the parameter with respect to x.
|
|
629
|
+
*
|
|
630
|
+
* @tsl
|
|
631
|
+
* @function
|
|
632
|
+
* @param {Node | number} x - The parameter.
|
|
633
|
+
* @returns {Node}
|
|
634
|
+
*/
|
|
635
|
+
export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX );
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* Returns the partial derivative of the parameter with respect to y.
|
|
639
|
+
*
|
|
640
|
+
* @tsl
|
|
641
|
+
* @function
|
|
642
|
+
* @param {Node | number} x - The parameter.
|
|
643
|
+
* @returns {Node}
|
|
644
|
+
*/
|
|
645
|
+
export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY );
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* Rounds the parameter to the nearest integer.
|
|
649
|
+
*
|
|
650
|
+
* @tsl
|
|
651
|
+
* @function
|
|
652
|
+
* @param {Node | number} x - The parameter.
|
|
653
|
+
* @returns {Node}
|
|
654
|
+
*/
|
|
655
|
+
export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND );
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Returns the reciprocal of the parameter `(1/x)`.
|
|
659
|
+
*
|
|
660
|
+
* @tsl
|
|
661
|
+
* @function
|
|
662
|
+
* @param {Node | number} x - The parameter.
|
|
663
|
+
* @returns {Node}
|
|
664
|
+
*/
|
|
665
|
+
export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL );
|
|
666
|
+
|
|
667
|
+
/**
|
|
668
|
+
* Truncates the parameter, removing the fractional part.
|
|
669
|
+
*
|
|
670
|
+
* @tsl
|
|
671
|
+
* @function
|
|
672
|
+
* @param {Node | number} x - The parameter.
|
|
673
|
+
* @returns {Node}
|
|
674
|
+
*/
|
|
675
|
+
export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC );
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Returns the sum of the absolute derivatives in x and y.
|
|
679
|
+
*
|
|
680
|
+
* @tsl
|
|
681
|
+
* @function
|
|
682
|
+
* @param {Node | number} x - The parameter.
|
|
683
|
+
* @returns {Node}
|
|
684
|
+
*/
|
|
685
|
+
export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH );
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* Returns the transpose of a matrix.
|
|
689
|
+
*
|
|
690
|
+
* @tsl
|
|
691
|
+
* @function
|
|
692
|
+
* @param {Node<mat2|mat3|mat4>} x - The parameter.
|
|
693
|
+
* @returns {Node}
|
|
694
|
+
*/
|
|
695
|
+
export const transpose = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSPOSE );
|
|
323
696
|
|
|
697
|
+
// 2 inputs
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* Reinterpret the bit representation of a value in one type as a value in another type.
|
|
701
|
+
*
|
|
702
|
+
* @tsl
|
|
703
|
+
* @function
|
|
704
|
+
* @param {Node | number} x - The parameter.
|
|
705
|
+
* @param {string} y - The new type.
|
|
706
|
+
* @returns {Node}
|
|
707
|
+
*/
|
|
708
|
+
export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST );
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Returns `true` if `x` equals `y`.
|
|
712
|
+
*
|
|
713
|
+
* @tsl
|
|
714
|
+
* @function
|
|
715
|
+
* @param {Node | number} x - The first parameter.
|
|
716
|
+
* @param {Node | number} y - The second parameter.
|
|
717
|
+
* @returns {Node<bool>}
|
|
718
|
+
*/
|
|
719
|
+
export const equals = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EQUALS );
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Returns the lesser of two values.
|
|
723
|
+
*
|
|
724
|
+
* @tsl
|
|
725
|
+
* @function
|
|
726
|
+
* @param {Node | number} x - The y parameter.
|
|
727
|
+
* @param {Node | number} y - The x parameter.
|
|
728
|
+
* @returns {Node}
|
|
729
|
+
*/
|
|
730
|
+
export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN );
|
|
731
|
+
|
|
732
|
+
/**
|
|
733
|
+
* Returns the greater of two values.
|
|
734
|
+
*
|
|
735
|
+
* @tsl
|
|
736
|
+
* @function
|
|
737
|
+
* @param {Node | number} x - The y parameter.
|
|
738
|
+
* @param {Node | number} y - The x parameter.
|
|
739
|
+
* @returns {Node}
|
|
740
|
+
*/
|
|
741
|
+
export const max = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MAX );
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Computes the remainder of dividing the first node by the second one.
|
|
745
|
+
*
|
|
746
|
+
* @tsl
|
|
747
|
+
* @function
|
|
748
|
+
* @param {Node | number} x - The y parameter.
|
|
749
|
+
* @param {Node | number} y - The x parameter.
|
|
750
|
+
* @returns {Node}
|
|
751
|
+
*/
|
|
752
|
+
export const mod = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MOD );
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Generate a step function by comparing two values.
|
|
756
|
+
*
|
|
757
|
+
* @tsl
|
|
758
|
+
* @function
|
|
759
|
+
* @param {Node | number} x - The y parameter.
|
|
760
|
+
* @param {Node | number} y - The x parameter.
|
|
761
|
+
* @returns {Node}
|
|
762
|
+
*/
|
|
763
|
+
export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP );
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Calculates the reflection direction for an incident vector.
|
|
767
|
+
*
|
|
768
|
+
* @tsl
|
|
769
|
+
* @function
|
|
770
|
+
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
771
|
+
* @param {Node<vec2|vec3|vec4>} N - The normal vector.
|
|
772
|
+
* @returns {Node<vec2|vec3|vec4>}
|
|
773
|
+
*/
|
|
774
|
+
export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT );
|
|
775
|
+
|
|
776
|
+
/**
|
|
777
|
+
* Calculates the distance between two points.
|
|
778
|
+
*
|
|
779
|
+
* @tsl
|
|
780
|
+
* @function
|
|
781
|
+
* @param {Node<vec2|vec3|vec4>} x - The first point.
|
|
782
|
+
* @param {Node<vec2|vec3|vec4>} y - The second point.
|
|
783
|
+
* @returns {Node<float>}
|
|
784
|
+
*/
|
|
785
|
+
export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE );
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* Calculates the absolute difference between two values.
|
|
789
|
+
*
|
|
790
|
+
* @tsl
|
|
791
|
+
* @function
|
|
792
|
+
* @param {Node | number} x - The first parameter.
|
|
793
|
+
* @param {Node | number} y - The second parameter.
|
|
794
|
+
* @returns {Node}
|
|
795
|
+
*/
|
|
796
|
+
export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE );
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* Calculates the dot product of two vectors.
|
|
800
|
+
*
|
|
801
|
+
* @tsl
|
|
802
|
+
* @function
|
|
803
|
+
* @param {Node<vec2|vec3|vec4>} x - The first vector.
|
|
804
|
+
* @param {Node<vec2|vec3|vec4>} y - The second vector.
|
|
805
|
+
* @returns {Node<float>}
|
|
806
|
+
*/
|
|
807
|
+
export const dot = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DOT );
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Calculates the cross product of two vectors.
|
|
811
|
+
*
|
|
812
|
+
* @tsl
|
|
813
|
+
* @function
|
|
814
|
+
* @param {Node<vec2|vec3|vec4>} x - The first vector.
|
|
815
|
+
* @param {Node<vec2|vec3|vec4>} y - The second vector.
|
|
816
|
+
* @returns {Node<vec2|vec3|vec4>}
|
|
817
|
+
*/
|
|
818
|
+
export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS );
|
|
819
|
+
|
|
820
|
+
/**
|
|
821
|
+
* Return the value of the first parameter raised to the power of the second one.
|
|
822
|
+
*
|
|
823
|
+
* @tsl
|
|
824
|
+
* @function
|
|
825
|
+
* @param {Node | number} x - The first parameter.
|
|
826
|
+
* @param {Node | number} y - The second parameter.
|
|
827
|
+
* @returns {Node}
|
|
828
|
+
*/
|
|
829
|
+
export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW );
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* Returns the square of the parameter.
|
|
833
|
+
*
|
|
834
|
+
* @tsl
|
|
835
|
+
* @function
|
|
836
|
+
* @param {Node | number} x - The first parameter.
|
|
837
|
+
* @returns {Node}
|
|
838
|
+
*/
|
|
839
|
+
export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 );
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Returns the cube of the parameter.
|
|
843
|
+
*
|
|
844
|
+
* @tsl
|
|
845
|
+
* @function
|
|
846
|
+
* @param {Node | number} x - The first parameter.
|
|
847
|
+
* @returns {Node}
|
|
848
|
+
*/
|
|
849
|
+
export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 );
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* Returns the fourth power of the parameter.
|
|
853
|
+
*
|
|
854
|
+
* @tsl
|
|
855
|
+
* @function
|
|
856
|
+
* @param {Node | number} x - The first parameter.
|
|
857
|
+
* @returns {Node}
|
|
858
|
+
*/
|
|
859
|
+
export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 );
|
|
860
|
+
|
|
861
|
+
/**
|
|
862
|
+
* Transforms the direction of a vector by a matrix and then normalizes the result.
|
|
863
|
+
*
|
|
864
|
+
* @tsl
|
|
865
|
+
* @function
|
|
866
|
+
* @param {Node<vec2|vec3|vec4>} direction - The direction vector.
|
|
867
|
+
* @param {Node<mat2|mat3|mat4>} matrix - The transformation matrix.
|
|
868
|
+
* @returns {Node}
|
|
869
|
+
*/
|
|
870
|
+
export const transformDirection = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSFORM_DIRECTION );
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* Returns the cube root of a number.
|
|
874
|
+
*
|
|
875
|
+
* @tsl
|
|
876
|
+
* @function
|
|
877
|
+
* @param {Node | number} a - The first parameter.
|
|
878
|
+
* @returns {Node}
|
|
879
|
+
*/
|
|
324
880
|
export const cbrt = ( a ) => mul( sign( a ), pow( abs( a ), 1.0 / 3.0 ) );
|
|
881
|
+
|
|
882
|
+
/**
|
|
883
|
+
* Calculate the squared length of a vector.
|
|
884
|
+
*
|
|
885
|
+
* @tsl
|
|
886
|
+
* @function
|
|
887
|
+
* @param {Node<vec2|vec3|vec4>} a - The vector.
|
|
888
|
+
* @returns {Node<float>}
|
|
889
|
+
*/
|
|
325
890
|
export const lengthSq = ( a ) => dot( a, a );
|
|
326
|
-
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Linearly interpolates between two values.
|
|
894
|
+
*
|
|
895
|
+
* @tsl
|
|
896
|
+
* @function
|
|
897
|
+
* @param {Node | number} a - The first parameter.
|
|
898
|
+
* @param {Node | number} b - The second parameter.
|
|
899
|
+
* @param {Node | number} t - The interpolation value.
|
|
900
|
+
* @returns {Node}
|
|
901
|
+
*/
|
|
902
|
+
export const mix = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIX );
|
|
903
|
+
|
|
904
|
+
/**
|
|
905
|
+
* Constrains a value to lie between two further values.
|
|
906
|
+
*
|
|
907
|
+
* @tsl
|
|
908
|
+
* @function
|
|
909
|
+
* @param {Node | number} value - The value to constrain.
|
|
910
|
+
* @param {Node | number} [low=0] - The lower bound.
|
|
911
|
+
* @param {Node | number} [high=1] - The upper bound.
|
|
912
|
+
* @returns {Node}
|
|
913
|
+
*/
|
|
327
914
|
export const clamp = ( value, low = 0, high = 1 ) => nodeObject( new MathNode( MathNode.CLAMP, nodeObject( value ), nodeObject( low ), nodeObject( high ) ) );
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Constrains a value between `0` and `1`.
|
|
918
|
+
*
|
|
919
|
+
* @tsl
|
|
920
|
+
* @function
|
|
921
|
+
* @param {Node | number} value - The value to constrain.
|
|
922
|
+
* @returns {Node}
|
|
923
|
+
*/
|
|
328
924
|
export const saturate = ( value ) => clamp( value );
|
|
329
|
-
export const refract = nodeProxy( MathNode, MathNode.REFRACT );
|
|
330
|
-
export const smoothstep = nodeProxy( MathNode, MathNode.SMOOTHSTEP );
|
|
331
|
-
export const faceForward = nodeProxy( MathNode, MathNode.FACEFORWARD );
|
|
332
925
|
|
|
333
|
-
|
|
926
|
+
/**
|
|
927
|
+
* Calculates the refraction direction for an incident vector.
|
|
928
|
+
*
|
|
929
|
+
* @tsl
|
|
930
|
+
* @function
|
|
931
|
+
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
932
|
+
* @param {Node<vec2|vec3|vec4>} N - The normal vector.
|
|
933
|
+
* @param {Node<float>} eta - The the ratio of indices of refraction.
|
|
934
|
+
* @returns {Node<vec2|vec3|vec4>}
|
|
935
|
+
*/
|
|
936
|
+
export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT );
|
|
937
|
+
|
|
938
|
+
/**
|
|
939
|
+
* Performs a Hermite interpolation between two values.
|
|
940
|
+
*
|
|
941
|
+
* @tsl
|
|
942
|
+
* @function
|
|
943
|
+
* @param {Node | number} low - The value of the lower edge of the Hermite function.
|
|
944
|
+
* @param {Node | number} high - The value of the upper edge of the Hermite function.
|
|
945
|
+
* @param {Node | number} x - The source value for interpolation.
|
|
946
|
+
* @returns {Node}
|
|
947
|
+
*/
|
|
948
|
+
export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP );
|
|
949
|
+
|
|
950
|
+
/**
|
|
951
|
+
* Returns a vector pointing in the same direction as another.
|
|
952
|
+
*
|
|
953
|
+
* @tsl
|
|
954
|
+
* @function
|
|
955
|
+
* @param {Node<vec2|vec3|vec4>} N - The vector to orient.
|
|
956
|
+
* @param {Node<vec2|vec3|vec4>} I - The incident vector.
|
|
957
|
+
* @param {Node<vec2|vec3|vec4>} Nref - The reference vector.
|
|
958
|
+
* @returns {Node<vec2|vec3|vec4>}
|
|
959
|
+
*/
|
|
960
|
+
export const faceForward = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FACEFORWARD );
|
|
961
|
+
|
|
962
|
+
/**
|
|
963
|
+
* Returns a random value for the given uv.
|
|
964
|
+
*
|
|
965
|
+
* @tsl
|
|
966
|
+
* @function
|
|
967
|
+
* @param {Node<vec2>} uv - The uv node.
|
|
968
|
+
* @returns {Node<float>}
|
|
969
|
+
*/
|
|
970
|
+
export const rand = /*@__PURE__*/ Fn( ( [ uv ] ) => {
|
|
334
971
|
|
|
335
972
|
const a = 12.9898, b = 78.233, c = 43758.5453;
|
|
336
973
|
const dt = dot( uv.xy, vec2( a, b ) ), sn = mod( dt, PI );
|
|
@@ -339,66 +976,110 @@ export const rand = Fn( ( [ uv ] ) => {
|
|
|
339
976
|
|
|
340
977
|
} );
|
|
341
978
|
|
|
979
|
+
/**
|
|
980
|
+
* Alias for `mix()` with a different parameter order.
|
|
981
|
+
*
|
|
982
|
+
* @tsl
|
|
983
|
+
* @function
|
|
984
|
+
* @param {Node | number} t - The interpolation value.
|
|
985
|
+
* @param {Node | number} e1 - The first parameter.
|
|
986
|
+
* @param {Node | number} e2 - The second parameter.
|
|
987
|
+
* @returns {Node}
|
|
988
|
+
*/
|
|
342
989
|
export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
|
|
990
|
+
|
|
991
|
+
/**
|
|
992
|
+
* Alias for `smoothstep()` with a different parameter order.
|
|
993
|
+
*
|
|
994
|
+
* @tsl
|
|
995
|
+
* @function
|
|
996
|
+
* @param {Node | number} x - The source value for interpolation.
|
|
997
|
+
* @param {Node | number} low - The value of the lower edge of the Hermite function.
|
|
998
|
+
* @param {Node | number} high - The value of the upper edge of the Hermite function.
|
|
999
|
+
* @returns {Node}
|
|
1000
|
+
*/
|
|
343
1001
|
export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
|
|
344
1002
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
1003
|
+
/**
|
|
1004
|
+
* Returns the arc-tangent of the quotient of its parameters.
|
|
1005
|
+
*
|
|
1006
|
+
* @tsl
|
|
1007
|
+
* @function
|
|
1008
|
+
* @deprecated since r172. Use {@link atan} instead.
|
|
1009
|
+
*
|
|
1010
|
+
* @param {Node | number} y - The y parameter.
|
|
1011
|
+
* @param {Node | number} x - The x parameter.
|
|
1012
|
+
* @returns {Node}
|
|
1013
|
+
*/
|
|
1014
|
+
export const atan2 = ( y, x ) => { // @deprecated, r172
|
|
1015
|
+
|
|
1016
|
+
console.warn( 'THREE.TSL: "atan2" is overloaded. Use "atan" instead.' );
|
|
1017
|
+
return atan( y, x );
|
|
1018
|
+
|
|
1019
|
+
};
|
|
1020
|
+
|
|
1021
|
+
// GLSL alias function
|
|
1022
|
+
|
|
1023
|
+
export const faceforward = faceForward;
|
|
1024
|
+
export const inversesqrt = inverseSqrt;
|
|
1025
|
+
|
|
1026
|
+
// Method chaining
|
|
1027
|
+
|
|
1028
|
+
addMethodChaining( 'all', all );
|
|
1029
|
+
addMethodChaining( 'any', any );
|
|
1030
|
+
addMethodChaining( 'equals', equals );
|
|
1031
|
+
|
|
1032
|
+
addMethodChaining( 'radians', radians );
|
|
1033
|
+
addMethodChaining( 'degrees', degrees );
|
|
1034
|
+
addMethodChaining( 'exp', exp );
|
|
1035
|
+
addMethodChaining( 'exp2', exp2 );
|
|
1036
|
+
addMethodChaining( 'log', log );
|
|
1037
|
+
addMethodChaining( 'log2', log2 );
|
|
1038
|
+
addMethodChaining( 'sqrt', sqrt );
|
|
1039
|
+
addMethodChaining( 'inverseSqrt', inverseSqrt );
|
|
1040
|
+
addMethodChaining( 'floor', floor );
|
|
1041
|
+
addMethodChaining( 'ceil', ceil );
|
|
1042
|
+
addMethodChaining( 'normalize', normalize );
|
|
1043
|
+
addMethodChaining( 'fract', fract );
|
|
1044
|
+
addMethodChaining( 'sin', sin );
|
|
1045
|
+
addMethodChaining( 'cos', cos );
|
|
1046
|
+
addMethodChaining( 'tan', tan );
|
|
1047
|
+
addMethodChaining( 'asin', asin );
|
|
1048
|
+
addMethodChaining( 'acos', acos );
|
|
1049
|
+
addMethodChaining( 'atan', atan );
|
|
1050
|
+
addMethodChaining( 'abs', abs );
|
|
1051
|
+
addMethodChaining( 'sign', sign );
|
|
1052
|
+
addMethodChaining( 'length', length );
|
|
1053
|
+
addMethodChaining( 'lengthSq', lengthSq );
|
|
1054
|
+
addMethodChaining( 'negate', negate );
|
|
1055
|
+
addMethodChaining( 'oneMinus', oneMinus );
|
|
1056
|
+
addMethodChaining( 'dFdx', dFdx );
|
|
1057
|
+
addMethodChaining( 'dFdy', dFdy );
|
|
1058
|
+
addMethodChaining( 'round', round );
|
|
1059
|
+
addMethodChaining( 'reciprocal', reciprocal );
|
|
1060
|
+
addMethodChaining( 'trunc', trunc );
|
|
1061
|
+
addMethodChaining( 'fwidth', fwidth );
|
|
1062
|
+
addMethodChaining( 'atan2', atan2 );
|
|
1063
|
+
addMethodChaining( 'min', min );
|
|
1064
|
+
addMethodChaining( 'max', max );
|
|
1065
|
+
addMethodChaining( 'mod', mod );
|
|
1066
|
+
addMethodChaining( 'step', step );
|
|
1067
|
+
addMethodChaining( 'reflect', reflect );
|
|
1068
|
+
addMethodChaining( 'distance', distance );
|
|
1069
|
+
addMethodChaining( 'dot', dot );
|
|
1070
|
+
addMethodChaining( 'cross', cross );
|
|
1071
|
+
addMethodChaining( 'pow', pow );
|
|
1072
|
+
addMethodChaining( 'pow2', pow2 );
|
|
1073
|
+
addMethodChaining( 'pow3', pow3 );
|
|
1074
|
+
addMethodChaining( 'pow4', pow4 );
|
|
1075
|
+
addMethodChaining( 'transformDirection', transformDirection );
|
|
1076
|
+
addMethodChaining( 'mix', mixElement );
|
|
1077
|
+
addMethodChaining( 'clamp', clamp );
|
|
1078
|
+
addMethodChaining( 'refract', refract );
|
|
1079
|
+
addMethodChaining( 'smoothstep', smoothstepElement );
|
|
1080
|
+
addMethodChaining( 'faceForward', faceForward );
|
|
1081
|
+
addMethodChaining( 'difference', difference );
|
|
1082
|
+
addMethodChaining( 'saturate', saturate );
|
|
1083
|
+
addMethodChaining( 'cbrt', cbrt );
|
|
1084
|
+
addMethodChaining( 'transpose', transpose );
|
|
1085
|
+
addMethodChaining( 'rand', rand );
|