@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
|
@@ -7,10 +7,19 @@ import { Interpolant } from '../Interpolant.js';
|
|
|
7
7
|
* It was derived from a Hermitian construction setting the first derivative
|
|
8
8
|
* at each sample position to the linear slope between neighboring positions
|
|
9
9
|
* over their parameter interval.
|
|
10
|
+
*
|
|
11
|
+
* @augments Interpolant
|
|
10
12
|
*/
|
|
11
|
-
|
|
12
13
|
class CubicInterpolant extends Interpolant {
|
|
13
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Constructs a new cubic interpolant.
|
|
17
|
+
*
|
|
18
|
+
* @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
|
|
19
|
+
* @param {TypedArray} sampleValues - The sample values.
|
|
20
|
+
* @param {number} sampleSize - The sample size
|
|
21
|
+
* @param {TypedArray} [resultBuffer] - The result buffer.
|
|
22
|
+
*/
|
|
14
23
|
constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
|
|
15
24
|
|
|
16
25
|
super( parameterPositions, sampleValues, sampleSize, resultBuffer );
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { Interpolant } from '../Interpolant.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
4
|
* Interpolant that evaluates to the sample value at the position preceding
|
|
6
5
|
* the parameter.
|
|
6
|
+
*
|
|
7
|
+
* @augments Interpolant
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
class DiscreteInterpolant extends Interpolant {
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new discrete interpolant.
|
|
13
|
+
*
|
|
14
|
+
* @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
|
|
15
|
+
* @param {TypedArray} sampleValues - The sample values.
|
|
16
|
+
* @param {number} sampleSize - The sample size
|
|
17
|
+
* @param {TypedArray} [resultBuffer] - The result buffer.
|
|
18
|
+
*/
|
|
11
19
|
constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
|
|
12
20
|
|
|
13
21
|
super( parameterPositions, sampleValues, sampleSize, resultBuffer );
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { Interpolant } from '../Interpolant.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* A basic linear interpolant.
|
|
5
|
+
*
|
|
6
|
+
* @augments Interpolant
|
|
7
|
+
*/
|
|
3
8
|
class LinearInterpolant extends Interpolant {
|
|
4
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new linear interpolant.
|
|
12
|
+
*
|
|
13
|
+
* @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
|
|
14
|
+
* @param {TypedArray} sampleValues - The sample values.
|
|
15
|
+
* @param {number} sampleSize - The sample size
|
|
16
|
+
* @param {TypedArray} [resultBuffer] - The result buffer.
|
|
17
|
+
*/
|
|
5
18
|
constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
|
|
6
19
|
|
|
7
20
|
super( parameterPositions, sampleValues, sampleSize, resultBuffer );
|
|
@@ -3,10 +3,19 @@ import { Quaternion } from '../Quaternion.js';
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Spherical linear unit quaternion interpolant.
|
|
6
|
+
*
|
|
7
|
+
* @augments Interpolant
|
|
6
8
|
*/
|
|
7
|
-
|
|
8
9
|
class QuaternionLinearInterpolant extends Interpolant {
|
|
9
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new SLERP interpolant.
|
|
13
|
+
*
|
|
14
|
+
* @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
|
|
15
|
+
* @param {TypedArray} sampleValues - The sample values.
|
|
16
|
+
* @param {number} sampleSize - The sample size
|
|
17
|
+
* @param {TypedArray} [resultBuffer] - The result buffer.
|
|
18
|
+
*/
|
|
10
19
|
constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
|
|
11
20
|
|
|
12
21
|
super( parameterPositions, sampleValues, sampleSize, resultBuffer );
|
package/src/nodes/Nodes.js
CHANGED
|
@@ -1,184 +1,128 @@
|
|
|
1
|
-
// @TODO: We can simplify "export { default as SomeNode, other, exports } from '...'" to just "export * from '...'" if we will use only named exports
|
|
2
|
-
// this will also solve issues like "import TempNode from '../core/Node.js'"
|
|
3
|
-
|
|
4
1
|
// constants
|
|
5
2
|
export * from './core/constants.js';
|
|
6
3
|
|
|
7
4
|
// core
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
5
|
+
export { default as ArrayNode } from './core/ArrayNode.js';
|
|
6
|
+
export { default as AssignNode } from './core/AssignNode.js';
|
|
7
|
+
export { default as AttributeNode } from './core/AttributeNode.js';
|
|
8
|
+
export { default as BypassNode } from './core/BypassNode.js';
|
|
9
|
+
export { default as CacheNode } from './core/CacheNode.js';
|
|
12
10
|
export { default as ConstNode } from './core/ConstNode.js';
|
|
13
|
-
export { default as ContextNode
|
|
14
|
-
export { default as IndexNode
|
|
11
|
+
export { default as ContextNode } from './core/ContextNode.js';
|
|
12
|
+
export { default as IndexNode } from './core/IndexNode.js';
|
|
15
13
|
export { default as LightingModel } from './core/LightingModel.js';
|
|
16
|
-
export { default as Node
|
|
17
|
-
export { default as VarNode
|
|
14
|
+
export { default as Node } from './core/Node.js';
|
|
15
|
+
export { default as VarNode } from './core/VarNode.js';
|
|
18
16
|
export { default as NodeAttribute } from './core/NodeAttribute.js';
|
|
19
17
|
export { default as NodeBuilder } from './core/NodeBuilder.js';
|
|
20
18
|
export { default as NodeCache } from './core/NodeCache.js';
|
|
21
19
|
export { default as NodeCode } from './core/NodeCode.js';
|
|
22
20
|
export { default as NodeFrame } from './core/NodeFrame.js';
|
|
23
21
|
export { default as NodeFunctionInput } from './core/NodeFunctionInput.js';
|
|
24
|
-
export { default as NodeKeywords } from './core/NodeKeywords.js';
|
|
25
22
|
export { default as NodeUniform } from './core/NodeUniform.js';
|
|
26
23
|
export { default as NodeVar } from './core/NodeVar.js';
|
|
27
24
|
export { default as NodeVarying } from './core/NodeVarying.js';
|
|
28
|
-
export { default as ParameterNode
|
|
29
|
-
export { default as PropertyNode
|
|
30
|
-
export { default as StackNode
|
|
25
|
+
export { default as ParameterNode } from './core/ParameterNode.js';
|
|
26
|
+
export { default as PropertyNode } from './core/PropertyNode.js';
|
|
27
|
+
export { default as StackNode } from './core/StackNode.js';
|
|
31
28
|
export { default as TempNode } from './core/TempNode.js';
|
|
32
|
-
export { default as UniformGroupNode
|
|
33
|
-
export { default as UniformNode
|
|
34
|
-
export { default as VaryingNode
|
|
35
|
-
export { default as
|
|
36
|
-
export { default as
|
|
29
|
+
export { default as UniformGroupNode } from './core/UniformGroupNode.js';
|
|
30
|
+
export { default as UniformNode } from './core/UniformNode.js';
|
|
31
|
+
export { default as VaryingNode } from './core/VaryingNode.js';
|
|
32
|
+
export { default as StructNode } from './core/StructNode.js';
|
|
33
|
+
export { default as StructTypeNode } from './core/StructTypeNode.js';
|
|
34
|
+
export { default as OutputStructNode } from './core/OutputStructNode.js';
|
|
35
|
+
export { default as MRTNode } from './core/MRTNode.js';
|
|
37
36
|
|
|
38
37
|
import * as NodeUtils from './core/NodeUtils.js';
|
|
39
38
|
export { NodeUtils };
|
|
40
39
|
|
|
41
|
-
// math
|
|
42
|
-
export { default as MathNode, PI, PI2, EPSILON, INFINITY, radians, degrees, exp, exp2, log, log2, sqrt, inverseSqrt, floor, ceil, normalize, fract, sin, cos, tan, asin, acos, atan, abs, sign, length, lengthSq, negate, oneMinus, dFdx, dFdy, round, reciprocal, trunc, fwidth, bitcast, atan2, min, max, mod, step, reflect, distance, difference, dot, cross, pow, pow2, pow3, pow4, transformDirection, mix, clamp, saturate, refract, smoothstep, faceForward, cbrt, transpose, all, any, equals, rand } from './math/MathNode.js';
|
|
43
|
-
|
|
44
|
-
export { default as OperatorNode, add, sub, mul, div, remainder, equal, lessThan, greaterThan, lessThanEqual, greaterThanEqual, and, or, not, xor, bitAnd, bitNot, bitOr, bitXor, shiftLeft, shiftRight } from './math/OperatorNode.js';
|
|
45
|
-
export { default as CondNode, select, cond } from './math/CondNode.js';
|
|
46
|
-
export { default as HashNode, hash } from './math/HashNode.js';
|
|
47
|
-
|
|
48
|
-
// math utils
|
|
49
|
-
export { parabola, gain, pcurve, sinc } from './math/MathUtils.js';
|
|
50
|
-
export { triNoise3D } from './math/TriNoise3D.js';
|
|
51
|
-
|
|
52
40
|
// utils
|
|
53
41
|
export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
|
|
54
42
|
export { default as ConvertNode } from './utils/ConvertNode.js';
|
|
55
|
-
export { default as
|
|
56
|
-
export { default as
|
|
57
|
-
export { default as FunctionOverloadingNode, overloadingFn } from './utils/FunctionOverloadingNode.js';
|
|
43
|
+
export { default as EquirectUVNode } from './utils/EquirectUVNode.js';
|
|
44
|
+
export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
|
|
58
45
|
export { default as JoinNode } from './utils/JoinNode.js';
|
|
59
|
-
export { default as LoopNode
|
|
60
|
-
export { default as MatcapUVNode
|
|
61
|
-
export { default as MaxMipLevelNode
|
|
62
|
-
export { default as
|
|
63
|
-
export { default as
|
|
64
|
-
export { default as RemapNode, remap, remapClamp } from './utils/RemapNode.js';
|
|
65
|
-
export * from './utils/UVUtils.js';
|
|
66
|
-
export * from './utils/SpriteUtils.js';
|
|
67
|
-
export * from './utils/ViewportUtils.js';
|
|
68
|
-
export { default as RotateNode, rotate } from './utils/RotateNode.js';
|
|
46
|
+
export { default as LoopNode } from './utils/LoopNode.js';
|
|
47
|
+
export { default as MatcapUVNode } from './utils/MatcapUVNode.js';
|
|
48
|
+
export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
|
|
49
|
+
export { default as RemapNode } from './utils/RemapNode.js';
|
|
50
|
+
export { default as RotateNode } from './utils/RotateNode.js';
|
|
69
51
|
export { default as SetNode } from './utils/SetNode.js';
|
|
70
52
|
export { default as SplitNode } from './utils/SplitNode.js';
|
|
71
|
-
export { default as SpriteSheetUVNode
|
|
53
|
+
export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode.js';
|
|
72
54
|
export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
|
|
73
|
-
export { default as
|
|
74
|
-
export { default as
|
|
75
|
-
export { default as
|
|
76
|
-
export { default as
|
|
77
|
-
|
|
78
|
-
// shadernode
|
|
79
|
-
export * from './shadernode/ShaderNode.js';
|
|
55
|
+
export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode.js';
|
|
56
|
+
export { default as ReflectorNode } from './utils/ReflectorNode.js';
|
|
57
|
+
export { default as RTTNode } from './utils/RTTNode.js';
|
|
58
|
+
export { default as MemberNode } from './utils/MemberNode.js';
|
|
80
59
|
|
|
81
60
|
// accessors
|
|
82
|
-
export {
|
|
83
|
-
export { default as
|
|
84
|
-
export
|
|
85
|
-
export { default as
|
|
86
|
-
export { default as
|
|
87
|
-
export
|
|
88
|
-
export { default as
|
|
89
|
-
export { default as
|
|
90
|
-
export { default as
|
|
91
|
-
export { default as
|
|
92
|
-
export { default as
|
|
93
|
-
export
|
|
94
|
-
export { default as
|
|
95
|
-
export { default as
|
|
96
|
-
export { default as
|
|
97
|
-
export { default as
|
|
98
|
-
export { default as
|
|
99
|
-
export { default as
|
|
100
|
-
export
|
|
101
|
-
export { default as
|
|
102
|
-
export { default as
|
|
103
|
-
export
|
|
104
|
-
export { default as
|
|
105
|
-
export
|
|
106
|
-
export { default as SkinningNode, skinning, skinningReference } from './accessors/SkinningNode.js';
|
|
107
|
-
export { default as SceneNode, backgroundBlurriness, backgroundIntensity } from './accessors/SceneNode.js';
|
|
108
|
-
export { default as StorageBufferNode, storage, storageObject } from './accessors/StorageBufferNode.js';
|
|
109
|
-
export * from './accessors/TangentNode.js';
|
|
110
|
-
export { default as TextureNode, texture, textureLoad, /*textureLevel,*/ sampler } from './accessors/TextureNode.js';
|
|
111
|
-
export { default as TextureSizeNode, textureSize } from './accessors/TextureSizeNode.js';
|
|
112
|
-
export { default as StorageTextureNode, storageTexture, textureStore } from './accessors/StorageTextureNode.js';
|
|
113
|
-
export { default as Texture3DNode, texture3D } from './accessors/Texture3DNode.js';
|
|
114
|
-
export * from './accessors/UVNode.js';
|
|
115
|
-
export { default as UserDataNode, userData } from './accessors/UserDataNode.js';
|
|
61
|
+
export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
|
|
62
|
+
export { default as BufferAttributeNode } from './accessors/BufferAttributeNode.js';
|
|
63
|
+
export { default as BufferNode } from './accessors/BufferNode.js';
|
|
64
|
+
export { default as VertexColorNode } from './accessors/VertexColorNode.js';
|
|
65
|
+
export { default as CubeTextureNode } from './accessors/CubeTextureNode.js';
|
|
66
|
+
export { default as InstanceNode } from './accessors/InstanceNode.js';
|
|
67
|
+
export { default as InstancedMeshNode } from './accessors/InstancedMeshNode.js';
|
|
68
|
+
export { default as BatchNode } from './accessors/BatchNode.js';
|
|
69
|
+
export { default as MaterialNode } from './accessors/MaterialNode.js';
|
|
70
|
+
export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode.js';
|
|
71
|
+
export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
|
|
72
|
+
export { default as MorphNode } from './accessors/MorphNode.js';
|
|
73
|
+
export { default as ModelNode } from './accessors/ModelNode.js';
|
|
74
|
+
export { default as Object3DNode } from './accessors/Object3DNode.js';
|
|
75
|
+
export { default as PointUVNode } from './accessors/PointUVNode.js';
|
|
76
|
+
export { default as ReferenceNode } from './accessors/ReferenceNode.js';
|
|
77
|
+
export { default as SkinningNode } from './accessors/SkinningNode.js';
|
|
78
|
+
export { default as SceneNode } from './accessors/SceneNode.js';
|
|
79
|
+
export { default as StorageBufferNode } from './accessors/StorageBufferNode.js';
|
|
80
|
+
export { default as TextureNode } from './accessors/TextureNode.js';
|
|
81
|
+
export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
|
|
82
|
+
export { default as StorageTextureNode } from './accessors/StorageTextureNode.js';
|
|
83
|
+
export { default as Texture3DNode } from './accessors/Texture3DNode.js';
|
|
84
|
+
export { default as UserDataNode } from './accessors/UserDataNode.js';
|
|
116
85
|
|
|
117
86
|
// display
|
|
118
|
-
export { default as
|
|
119
|
-
export { default as
|
|
120
|
-
export { default as
|
|
121
|
-
export { default as
|
|
122
|
-
export { default as
|
|
123
|
-
export { default as
|
|
124
|
-
export { default as
|
|
125
|
-
export { default as
|
|
126
|
-
export { default as
|
|
127
|
-
export { default as
|
|
128
|
-
export { default as
|
|
129
|
-
export { default as
|
|
130
|
-
export { default as
|
|
131
|
-
export { default as
|
|
132
|
-
export { default as AfterImageNode, afterImage } from './display/AfterImageNode.js';
|
|
133
|
-
export { default as AnamorphicNode, anamorphic } from './display/AnamorphicNode.js';
|
|
134
|
-
export { default as SobelOperatorNode, sobel } from './display/SobelOperatorNode.js';
|
|
135
|
-
export { default as DepthOfFieldNode, dof } from './display/DepthOfFieldNode.js';
|
|
136
|
-
export { default as DotScreenNode, dotScreen } from './display/DotScreenNode.js';
|
|
137
|
-
export { default as RGBShiftNode, rgbShift } from './display/RGBShiftNode.js';
|
|
138
|
-
export { default as FilmNode, film } from './display/FilmNode.js';
|
|
139
|
-
export { default as Lut3DNode, lut3D } from './display/Lut3DNode.js';
|
|
140
|
-
export { default as GTAONode, ao } from './display/GTAONode.js';
|
|
141
|
-
export { default as DenoiseNode, denoise } from './display/DenoiseNode.js';
|
|
142
|
-
export { default as FXAANode, fxaa } from './display/FXAANode.js';
|
|
143
|
-
export { default as BloomNode, bloom } from './display/BloomNode.js';
|
|
144
|
-
export { default as TransitionNode, transition } from './display/TransitionNode.js';
|
|
145
|
-
export { default as RenderOutputNode, renderOutput } from './display/RenderOutputNode.js';
|
|
146
|
-
export { default as PixelationPassNode, pixelationPass } from './display/PixelationPassNode.js';
|
|
147
|
-
export { bleach } from './display/BleachBypassNode.js';
|
|
148
|
-
export { sepia } from './display/SepiaNode.js';
|
|
149
|
-
|
|
150
|
-
export { default as PassNode, pass, passTexture, depthPass } from './display/PassNode.js';
|
|
87
|
+
export { default as BumpMapNode } from './display/BumpMapNode.js';
|
|
88
|
+
export { default as ColorSpaceNode } from './display/ColorSpaceNode.js';
|
|
89
|
+
export { default as FrontFacingNode } from './display/FrontFacingNode.js';
|
|
90
|
+
export { default as NormalMapNode } from './display/NormalMapNode.js';
|
|
91
|
+
export { default as PosterizeNode } from './display/PosterizeNode.js';
|
|
92
|
+
export { default as ToneMappingNode } from './display/ToneMappingNode.js';
|
|
93
|
+
export { default as ScreenNode } from './display/ScreenNode.js';
|
|
94
|
+
export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
|
|
95
|
+
export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
|
|
96
|
+
export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
|
|
97
|
+
export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
|
|
98
|
+
export { default as RenderOutputNode } from './display/RenderOutputNode.js';
|
|
99
|
+
export { default as PassNode } from './display/PassNode.js';
|
|
100
|
+
export { default as ToonOutlinePassNode } from './display/ToonOutlinePassNode.js';
|
|
151
101
|
|
|
152
102
|
// code
|
|
153
|
-
export { default as ExpressionNode
|
|
154
|
-
export { default as CodeNode
|
|
155
|
-
export { default as FunctionCallNode
|
|
156
|
-
export { default as FunctionNode
|
|
157
|
-
export { default as ScriptableNode
|
|
158
|
-
export { default as ScriptableValueNode
|
|
159
|
-
|
|
160
|
-
// fog
|
|
161
|
-
export { default as FogNode, fog } from './fog/FogNode.js';
|
|
162
|
-
export { default as FogRangeNode, rangeFog } from './fog/FogRangeNode.js';
|
|
163
|
-
export { default as FogExp2Node, densityFog } from './fog/FogExp2Node.js';
|
|
103
|
+
export { default as ExpressionNode } from './code/ExpressionNode.js';
|
|
104
|
+
export { default as CodeNode } from './code/CodeNode.js';
|
|
105
|
+
export { default as FunctionCallNode } from './code/FunctionCallNode.js';
|
|
106
|
+
export { default as FunctionNode } from './code/FunctionNode.js';
|
|
107
|
+
export { default as ScriptableNode } from './code/ScriptableNode.js';
|
|
108
|
+
export { default as ScriptableValueNode } from './code/ScriptableValueNode.js';
|
|
164
109
|
|
|
165
110
|
// geometry
|
|
166
|
-
export { default as RangeNode
|
|
111
|
+
export { default as RangeNode } from './geometry/RangeNode.js';
|
|
167
112
|
|
|
168
113
|
// gpgpu
|
|
169
|
-
export { default as ComputeNode
|
|
114
|
+
export { default as ComputeNode } from './gpgpu/ComputeNode.js';
|
|
170
115
|
|
|
171
116
|
// lighting
|
|
172
|
-
export { default as LightNode, lightTargetDirection } from './lighting/LightNode.js';
|
|
173
117
|
export { default as PointLightNode } from './lighting/PointLightNode.js';
|
|
174
118
|
export { default as DirectionalLightNode } from './lighting/DirectionalLightNode.js';
|
|
175
119
|
export { default as RectAreaLightNode } from './lighting/RectAreaLightNode.js';
|
|
176
120
|
export { default as SpotLightNode } from './lighting/SpotLightNode.js';
|
|
177
121
|
export { default as IESSpotLightNode } from './lighting/IESSpotLightNode.js';
|
|
178
122
|
export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
|
|
179
|
-
export { default as LightsNode
|
|
180
|
-
export { default as LightingNode
|
|
181
|
-
export { default as LightingContextNode
|
|
123
|
+
export { default as LightsNode } from './lighting/LightsNode.js';
|
|
124
|
+
export { default as LightingNode } from './lighting/LightingNode.js';
|
|
125
|
+
export { default as LightingContextNode } from './lighting/LightingContextNode.js';
|
|
182
126
|
export { default as HemisphereLightNode } from './lighting/HemisphereLightNode.js';
|
|
183
127
|
export { default as LightProbeNode } from './lighting/LightProbeNode.js';
|
|
184
128
|
export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
|
|
@@ -186,41 +130,15 @@ export { default as BasicEnvironmentNode } from './lighting/BasicEnvironmentNode
|
|
|
186
130
|
export { default as IrradianceNode } from './lighting/IrradianceNode.js';
|
|
187
131
|
export { default as AONode } from './lighting/AONode.js';
|
|
188
132
|
export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
|
|
133
|
+
export { default as ShadowBaseNode } from './lighting/ShadowBaseNode.js';
|
|
134
|
+
export { default as ShadowNode } from './lighting/ShadowNode.js';
|
|
189
135
|
|
|
190
136
|
// pmrem
|
|
191
|
-
export { default as PMREMNode
|
|
192
|
-
export * from './pmrem/PMREMUtils.js';
|
|
193
|
-
|
|
194
|
-
// procedural
|
|
195
|
-
export { default as CheckerNode, checker } from './procedural/CheckerNode.js';
|
|
196
|
-
|
|
197
|
-
// loaders
|
|
198
|
-
export { default as NodeLoader } from './loaders/NodeLoader.js';
|
|
199
|
-
export { default as NodeObjectLoader } from './loaders/NodeObjectLoader.js';
|
|
200
|
-
export { default as NodeMaterialLoader } from './loaders/NodeMaterialLoader.js';
|
|
137
|
+
export { default as PMREMNode } from './pmrem/PMREMNode.js';
|
|
201
138
|
|
|
202
139
|
// parsers
|
|
203
140
|
export { default as GLSLNodeParser } from './parsers/GLSLNodeParser.js'; // @TODO: Move to jsm/renderers/webgl.
|
|
204
141
|
|
|
205
|
-
//
|
|
206
|
-
export * from './materials/Materials.js';
|
|
207
|
-
|
|
208
|
-
// materialX
|
|
209
|
-
export * from './materialx/MaterialXNodes.js';
|
|
210
|
-
|
|
211
|
-
// functions
|
|
212
|
-
export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
|
|
213
|
-
export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
|
|
214
|
-
export { default as D_GGX } from './functions/BSDF/D_GGX.js';
|
|
215
|
-
export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
|
|
216
|
-
export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
|
|
217
|
-
export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
|
|
218
|
-
export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
|
|
219
|
-
|
|
220
|
-
export { getDistanceAttenuation } from './lighting/LightUtils.js';
|
|
221
|
-
|
|
222
|
-
export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
|
|
223
|
-
export { default as getRoughness } from './functions/material/getRoughness.js';
|
|
224
|
-
|
|
142
|
+
// lighting models
|
|
225
143
|
export { default as PhongLightingModel } from './functions/PhongLightingModel.js';
|
|
226
144
|
export { default as PhysicalLightingModel } from './functions/PhysicalLightingModel.js';
|
package/src/nodes/TSL.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// constants
|
|
2
|
+
export * from './core/constants.js';
|
|
3
|
+
|
|
4
|
+
// core
|
|
5
|
+
export * from './core/AssignNode.js';
|
|
6
|
+
export * from './core/AttributeNode.js';
|
|
7
|
+
export * from './core/BypassNode.js';
|
|
8
|
+
export * from './core/CacheNode.js';
|
|
9
|
+
export * from './core/ContextNode.js';
|
|
10
|
+
export * from './core/IndexNode.js';
|
|
11
|
+
export * from './core/ParameterNode.js';
|
|
12
|
+
export * from './core/PropertyNode.js';
|
|
13
|
+
export * from './core/StackNode.js';
|
|
14
|
+
export * from './core/StructNode.js';
|
|
15
|
+
export * from './core/UniformGroupNode.js';
|
|
16
|
+
export * from './core/UniformNode.js';
|
|
17
|
+
export * from './core/VaryingNode.js';
|
|
18
|
+
export * from './core/OutputStructNode.js';
|
|
19
|
+
export * from './core/MRTNode.js';
|
|
20
|
+
|
|
21
|
+
// math
|
|
22
|
+
export * from './math/Hash.js';
|
|
23
|
+
export * from './math/MathUtils.js';
|
|
24
|
+
export * from './math/TriNoise3D.js';
|
|
25
|
+
|
|
26
|
+
// utils
|
|
27
|
+
export * from './utils/EquirectUVNode.js';
|
|
28
|
+
export * from './utils/FunctionOverloadingNode.js';
|
|
29
|
+
export * from './utils/LoopNode.js';
|
|
30
|
+
export * from './utils/MatcapUVNode.js';
|
|
31
|
+
export * from './utils/MaxMipLevelNode.js';
|
|
32
|
+
export * from './utils/Oscillators.js';
|
|
33
|
+
export * from './utils/Packing.js';
|
|
34
|
+
export * from './utils/RemapNode.js';
|
|
35
|
+
export * from './utils/UVUtils.js';
|
|
36
|
+
export * from './utils/SpriteUtils.js';
|
|
37
|
+
export * from './utils/ViewportUtils.js';
|
|
38
|
+
export * from './utils/RotateNode.js';
|
|
39
|
+
export * from './utils/SpriteSheetUVNode.js';
|
|
40
|
+
export * from './utils/Timer.js';
|
|
41
|
+
export * from './utils/TriplanarTexturesNode.js';
|
|
42
|
+
export * from './utils/ReflectorNode.js';
|
|
43
|
+
export * from './utils/RTTNode.js';
|
|
44
|
+
export * from './utils/PostProcessingUtils.js';
|
|
45
|
+
|
|
46
|
+
// three.js shading language
|
|
47
|
+
export * from './tsl/TSLBase.js';
|
|
48
|
+
|
|
49
|
+
// accessors
|
|
50
|
+
export * from './accessors/AccessorsUtils.js';
|
|
51
|
+
export * from './accessors/Arrays.js';
|
|
52
|
+
export * from './accessors/UniformArrayNode.js';
|
|
53
|
+
export * from './accessors/Bitangent.js';
|
|
54
|
+
export * from './accessors/BufferAttributeNode.js';
|
|
55
|
+
export * from './accessors/BufferNode.js';
|
|
56
|
+
export * from './accessors/Camera.js';
|
|
57
|
+
export * from './accessors/VertexColorNode.js';
|
|
58
|
+
export * from './accessors/CubeTextureNode.js';
|
|
59
|
+
export * from './accessors/InstanceNode.js';
|
|
60
|
+
export * from './accessors/InstancedMeshNode.js';
|
|
61
|
+
export * from './accessors/BatchNode.js';
|
|
62
|
+
export * from './accessors/MaterialNode.js';
|
|
63
|
+
export * from './accessors/MaterialProperties.js';
|
|
64
|
+
export * from './accessors/MaterialReferenceNode.js';
|
|
65
|
+
export * from './accessors/RendererReferenceNode.js';
|
|
66
|
+
export * from './accessors/MorphNode.js';
|
|
67
|
+
export * from './accessors/TextureBicubic.js';
|
|
68
|
+
export * from './accessors/ModelNode.js';
|
|
69
|
+
export * from './accessors/ModelViewProjectionNode.js';
|
|
70
|
+
export * from './accessors/Normal.js';
|
|
71
|
+
export * from './accessors/Object3DNode.js';
|
|
72
|
+
export * from './accessors/PointUVNode.js';
|
|
73
|
+
export * from './accessors/Position.js';
|
|
74
|
+
export * from './accessors/ReferenceNode.js';
|
|
75
|
+
export * from './accessors/ReflectVector.js';
|
|
76
|
+
export * from './accessors/SkinningNode.js';
|
|
77
|
+
export * from './accessors/SceneNode.js';
|
|
78
|
+
export * from './accessors/StorageBufferNode.js';
|
|
79
|
+
export * from './accessors/Tangent.js';
|
|
80
|
+
export * from './accessors/TextureNode.js';
|
|
81
|
+
export * from './accessors/TextureSizeNode.js';
|
|
82
|
+
export * from './accessors/StorageTextureNode.js';
|
|
83
|
+
export * from './accessors/Texture3DNode.js';
|
|
84
|
+
export * from './accessors/UV.js';
|
|
85
|
+
export * from './accessors/UserDataNode.js';
|
|
86
|
+
export * from './accessors/VelocityNode.js';
|
|
87
|
+
|
|
88
|
+
// display
|
|
89
|
+
export * from './display/BlendModes.js';
|
|
90
|
+
export * from './display/BumpMapNode.js';
|
|
91
|
+
export * from './display/ColorAdjustment.js';
|
|
92
|
+
export * from './display/ColorSpaceNode.js';
|
|
93
|
+
export * from './display/FrontFacingNode.js';
|
|
94
|
+
export * from './display/NormalMapNode.js';
|
|
95
|
+
export * from './display/PosterizeNode.js';
|
|
96
|
+
export * from './display/ToneMappingNode.js';
|
|
97
|
+
export * from './display/ScreenNode.js';
|
|
98
|
+
export * from './display/ViewportTextureNode.js';
|
|
99
|
+
export * from './display/ViewportSharedTextureNode.js';
|
|
100
|
+
export * from './display/ViewportDepthTextureNode.js';
|
|
101
|
+
export * from './display/ViewportDepthNode.js';
|
|
102
|
+
export * from './display/RenderOutputNode.js';
|
|
103
|
+
export * from './display/ToonOutlinePassNode.js';
|
|
104
|
+
|
|
105
|
+
export * from './display/PassNode.js';
|
|
106
|
+
|
|
107
|
+
export * from './display/ColorSpaceFunctions.js';
|
|
108
|
+
export * from './display/ToneMappingFunctions.js';
|
|
109
|
+
|
|
110
|
+
// code
|
|
111
|
+
export * from './code/ExpressionNode.js';
|
|
112
|
+
export * from './code/CodeNode.js';
|
|
113
|
+
export * from './code/FunctionCallNode.js';
|
|
114
|
+
export * from './code/FunctionNode.js';
|
|
115
|
+
export * from './code/ScriptableNode.js';
|
|
116
|
+
export * from './code/ScriptableValueNode.js';
|
|
117
|
+
|
|
118
|
+
// fog
|
|
119
|
+
export * from './fog/Fog.js';
|
|
120
|
+
|
|
121
|
+
// geometry
|
|
122
|
+
export * from './geometry/RangeNode.js';
|
|
123
|
+
|
|
124
|
+
// gpgpu
|
|
125
|
+
export * from './gpgpu/ComputeNode.js';
|
|
126
|
+
export * from './gpgpu/ComputeBuiltinNode.js';
|
|
127
|
+
export * from './gpgpu/BarrierNode.js';
|
|
128
|
+
export * from './gpgpu/WorkgroupInfoNode.js';
|
|
129
|
+
export * from './gpgpu/AtomicFunctionNode.js';
|
|
130
|
+
|
|
131
|
+
// lighting
|
|
132
|
+
export * from './accessors/Lights.js';
|
|
133
|
+
export * from './lighting/LightsNode.js';
|
|
134
|
+
export * from './lighting/LightingContextNode.js';
|
|
135
|
+
export * from './lighting/ShadowBaseNode.js';
|
|
136
|
+
export * from './lighting/ShadowNode.js';
|
|
137
|
+
export * from './lighting/PointShadowNode.js';
|
|
138
|
+
export * from './lighting/PointLightNode.js';
|
|
139
|
+
|
|
140
|
+
// pmrem
|
|
141
|
+
export * from './pmrem/PMREMNode.js';
|
|
142
|
+
export * from './pmrem/PMREMUtils.js';
|
|
143
|
+
|
|
144
|
+
// procedural
|
|
145
|
+
export * from './procedural/Checker.js';
|
|
146
|
+
|
|
147
|
+
// shapes
|
|
148
|
+
export * from './shapes/Shapes.js';
|
|
149
|
+
|
|
150
|
+
// materialX
|
|
151
|
+
export * from './materialx/MaterialXNodes.js';
|
|
152
|
+
|
|
153
|
+
// functions
|
|
154
|
+
export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
|
|
155
|
+
export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
|
|
156
|
+
export { default as D_GGX } from './functions/BSDF/D_GGX.js';
|
|
157
|
+
export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
|
|
158
|
+
export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
|
|
159
|
+
export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
|
|
160
|
+
export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
|
|
161
|
+
|
|
162
|
+
export * from './lighting/LightUtils.js';
|
|
163
|
+
|
|
164
|
+
export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
|
|
165
|
+
export { default as getParallaxCorrectNormal } from './functions/material/getParallaxCorrectNormal.js';
|
|
166
|
+
export { default as getRoughness } from './functions/material/getRoughness.js';
|
|
167
|
+
export { default as getShIrradianceAt } from './functions/material/getShIrradianceAt.js';
|
|
@@ -1,17 +1,46 @@
|
|
|
1
|
-
import { bitangentView } from './
|
|
2
|
-
import { normalView, transformedNormalView } from './
|
|
3
|
-
import { tangentView } from './
|
|
4
|
-
import { mat3 } from '../
|
|
1
|
+
import { bitangentView } from './Bitangent.js';
|
|
2
|
+
import { normalView, transformedNormalView } from './Normal.js';
|
|
3
|
+
import { tangentView } from './Tangent.js';
|
|
4
|
+
import { mat3 } from '../tsl/TSLBase.js';
|
|
5
5
|
import { mix } from '../math/MathNode.js';
|
|
6
6
|
import { anisotropy, anisotropyB, roughness } from '../core/PropertyNode.js';
|
|
7
|
-
import { positionViewDirection } from './
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import { positionViewDirection } from './Position.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* TSL object that represents the TBN matrix in view space.
|
|
11
|
+
*
|
|
12
|
+
* @tsl
|
|
13
|
+
* @type {Node<mat3>}
|
|
14
|
+
*/
|
|
15
|
+
export const TBNViewMatrix = /*@__PURE__*/ mat3( tangentView, bitangentView, normalView );
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* TSL object that represents the parallax direction.
|
|
19
|
+
*
|
|
20
|
+
* @tsl
|
|
21
|
+
* @type {Node<mat3>}
|
|
22
|
+
*/
|
|
23
|
+
export const parallaxDirection = /*@__PURE__*/ positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* TSL function for computing parallax uv coordinates.
|
|
27
|
+
*
|
|
28
|
+
* @tsl
|
|
29
|
+
* @function
|
|
30
|
+
* @param {Node<vec2>} uv - A uv node.
|
|
31
|
+
* @param {Node<vec2>} scale - A scale node.
|
|
32
|
+
* @returns {Node<vec2>} Parallax uv coordinates.
|
|
33
|
+
*/
|
|
12
34
|
export const parallaxUV = ( uv, scale ) => uv.sub( parallaxDirection.mul( scale ) );
|
|
13
35
|
|
|
14
|
-
|
|
36
|
+
/**
|
|
37
|
+
* TSL function for computing bent normals.
|
|
38
|
+
*
|
|
39
|
+
* @tsl
|
|
40
|
+
* @function
|
|
41
|
+
* @returns {Node<vec3>} Bent normals.
|
|
42
|
+
*/
|
|
43
|
+
export const transformedBentNormalView = /*@__PURE__*/ ( () => {
|
|
15
44
|
|
|
16
45
|
// https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy
|
|
17
46
|
|