super-three 0.173.5 → 0.176.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +21993 -1359
- package/build/three.core.js +21129 -1188
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +835 -142
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +19493 -17617
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19477 -17617
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +144 -42
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +194 -71
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +74 -30
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +51 -5
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +36 -1
- package/examples/jsm/loaders/DDSLoader.js +25 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +71 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +222 -9
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +87 -19
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +56 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +90 -70
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +105 -13
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +109 -73
- package/examples/jsm/misc/VolumeSlice.js +91 -48
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +75 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +134 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +268 -134
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/AST.js +10 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
- package/examples/jsm/transpiler/TSLEncoder.js +83 -15
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
- package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
- package/examples/jsm/tsl/display/BleachBypass.js +1 -2
- package/examples/jsm/tsl/display/BloomNode.js +15 -16
- package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
- package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
- package/examples/jsm/tsl/display/FXAANode.js +2 -3
- package/examples/jsm/tsl/display/FilmNode.js +9 -8
- package/examples/jsm/tsl/display/GTAONode.js +11 -12
- package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
- package/examples/jsm/tsl/display/LensflareNode.js +15 -16
- package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
- package/examples/jsm/tsl/display/MotionBlur.js +1 -2
- package/examples/jsm/tsl/display/OutlineNode.js +7 -8
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
- package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
- package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
- package/examples/jsm/tsl/display/SMAANode.js +13 -7
- package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
- package/examples/jsm/tsl/display/SSRNode.js +6 -7
- package/examples/jsm/tsl/display/Sepia.js +1 -2
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
- package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
- package/examples/jsm/tsl/display/TransitionNode.js +4 -5
- package/examples/jsm/tsl/display/hashBlur.js +1 -2
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
- package/examples/jsm/tsl/math/Bayer.js +31 -0
- package/examples/jsm/tsl/utils/Raymarching.js +67 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +3 -4
- package/src/Three.TSL.js +7 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +169 -19
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +339 -0
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +28 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +163 -40
- package/src/cameras/StereoCamera.js +46 -0
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/EventDispatcher.js +44 -2
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +593 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +170 -11
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +88 -1
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +13 -780
- package/src/extras/ImageUtils.js +20 -2
- package/src/extras/PMREMGenerator.js +41 -25
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +95 -15
- package/src/extras/core/Curve.js +150 -50
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +63 -0
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +39 -0
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +28 -0
- package/src/geometries/ExtrudeGeometry.js +112 -28
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +40 -0
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +45 -5
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +22 -0
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +130 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +13 -9
- package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
- package/src/loaders/nodes/NodeObjectLoader.js +12 -12
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +481 -4
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +14 -14
- package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
- package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
- package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
- package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
- package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
- package/src/materials/nodes/NodeMaterial.js +66 -47
- package/src/materials/nodes/PointsNodeMaterial.js +6 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
- package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
- package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
- package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +94 -0
- package/src/math/MathUtils.js +405 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +262 -6
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +70 -8
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +388 -2
- package/src/math/Vector3.js +541 -4
- package/src/math/Vector4.js +393 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/AccessorsUtils.js +4 -2
- package/src/nodes/accessors/Arrays.js +6 -6
- package/src/nodes/accessors/BatchNode.js +10 -11
- package/src/nodes/accessors/Bitangent.js +6 -2
- package/src/nodes/accessors/BufferAttributeNode.js +33 -31
- package/src/nodes/accessors/BufferNode.js +12 -13
- package/src/nodes/accessors/BuiltinNode.js +7 -8
- package/src/nodes/accessors/Camera.js +9 -2
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +17 -19
- package/src/nodes/accessors/InstanceNode.js +10 -11
- package/src/nodes/accessors/InstancedMeshNode.js +3 -4
- package/src/nodes/accessors/Lights.js +12 -15
- package/src/nodes/accessors/MaterialNode.js +45 -9
- package/src/nodes/accessors/MaterialProperties.js +51 -2
- package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
- package/src/nodes/accessors/ModelNode.js +20 -3
- package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
- package/src/nodes/accessors/MorphNode.js +29 -26
- package/src/nodes/accessors/Normal.js +11 -3
- package/src/nodes/accessors/Object3DNode.js +51 -16
- package/src/nodes/accessors/PointUVNode.js +2 -3
- package/src/nodes/accessors/Position.js +8 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
- package/src/nodes/accessors/ReferenceNode.js +31 -31
- package/src/nodes/accessors/ReflectVector.js +4 -2
- package/src/nodes/accessors/RendererReferenceNode.js +9 -10
- package/src/nodes/accessors/SceneNode.js +5 -4
- package/src/nodes/accessors/SkinningNode.js +53 -44
- package/src/nodes/accessors/StorageBufferNode.js +24 -24
- package/src/nodes/accessors/StorageTextureNode.js +17 -17
- package/src/nodes/accessors/Tangent.js +6 -2
- package/src/nodes/accessors/Texture3DNode.js +11 -12
- package/src/nodes/accessors/TextureBicubic.js +2 -3
- package/src/nodes/accessors/TextureNode.js +68 -47
- package/src/nodes/accessors/TextureSizeNode.js +5 -6
- package/src/nodes/accessors/UV.js +2 -3
- package/src/nodes/accessors/UniformArrayNode.js +24 -24
- package/src/nodes/accessors/UserDataNode.js +11 -12
- package/src/nodes/accessors/VelocityNode.js +4 -5
- package/src/nodes/accessors/VertexColorNode.js +7 -8
- package/src/nodes/code/CodeNode.js +15 -13
- package/src/nodes/code/ExpressionNode.js +8 -9
- package/src/nodes/code/FunctionCallNode.js +29 -9
- package/src/nodes/code/FunctionNode.js +1 -1
- package/src/nodes/code/ScriptableNode.js +27 -28
- package/src/nodes/code/ScriptableValueNode.js +11 -12
- package/src/nodes/core/ArrayNode.js +29 -12
- package/src/nodes/core/AssignNode.js +4 -5
- package/src/nodes/core/AttributeNode.js +8 -9
- package/src/nodes/core/BypassNode.js +3 -4
- package/src/nodes/core/CacheNode.js +5 -6
- package/src/nodes/core/ConstNode.js +4 -4
- package/src/nodes/core/ContextNode.js +9 -9
- package/src/nodes/core/IndexNode.js +8 -4
- package/src/nodes/core/InputNode.js +7 -7
- package/src/nodes/core/LightingModel.js +17 -17
- package/src/nodes/core/MRTNode.js +9 -10
- package/src/nodes/core/Node.js +49 -37
- package/src/nodes/core/NodeAttribute.js +7 -7
- package/src/nodes/core/NodeBuilder.js +248 -175
- package/src/nodes/core/NodeCache.js +4 -4
- package/src/nodes/core/NodeCode.js +6 -6
- package/src/nodes/core/NodeFrame.js +10 -10
- package/src/nodes/core/NodeFunction.js +8 -8
- package/src/nodes/core/NodeFunctionInput.js +8 -8
- package/src/nodes/core/NodeParser.js +1 -1
- package/src/nodes/core/NodeUniform.js +7 -7
- package/src/nodes/core/NodeUtils.js +22 -24
- package/src/nodes/core/NodeVar.js +9 -9
- package/src/nodes/core/NodeVarying.js +4 -4
- package/src/nodes/core/OutputStructNode.js +2 -3
- package/src/nodes/core/ParameterNode.js +6 -7
- package/src/nodes/core/PropertyNode.js +41 -13
- package/src/nodes/core/StackNode.js +11 -12
- package/src/nodes/core/StructNode.js +2 -3
- package/src/nodes/core/StructTypeNode.js +10 -6
- package/src/nodes/core/TempNode.js +3 -3
- package/src/nodes/core/UniformGroupNode.js +15 -12
- package/src/nodes/core/UniformNode.js +9 -10
- package/src/nodes/core/VarNode.js +14 -18
- package/src/nodes/core/VaryingNode.js +10 -10
- package/src/nodes/core/constants.js +0 -2
- package/src/nodes/display/BlendModes.js +21 -14
- package/src/nodes/display/BumpMapNode.js +5 -6
- package/src/nodes/display/ColorAdjustment.js +13 -9
- package/src/nodes/display/ColorSpaceFunctions.js +4 -4
- package/src/nodes/display/ColorSpaceNode.js +15 -12
- package/src/nodes/display/FrontFacingNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +5 -6
- package/src/nodes/display/PassNode.js +122 -35
- package/src/nodes/display/PosterizeNode.js +2 -3
- package/src/nodes/display/RenderOutputNode.js +8 -9
- package/src/nodes/display/ScreenNode.js +16 -7
- package/src/nodes/display/ToneMappingFunctions.js +12 -8
- package/src/nodes/display/ToneMappingNode.js +8 -8
- package/src/nodes/display/ToonOutlinePassNode.js +3 -4
- package/src/nodes/display/ViewportDepthNode.js +15 -7
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
- package/src/nodes/display/ViewportTextureNode.js +16 -16
- package/src/nodes/fog/Fog.js +5 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BasicLightingModel.js +5 -8
- package/src/nodes/functions/PhongLightingModel.js +6 -8
- package/src/nodes/functions/PhysicalLightingModel.js +40 -42
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/ToonLightingModel.js +5 -6
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
- package/src/nodes/geometry/RangeNode.js +4 -5
- package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
- package/src/nodes/gpgpu/BarrierNode.js +6 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
- package/src/nodes/gpgpu/ComputeNode.js +43 -16
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +50 -9
- package/src/nodes/lighting/BasicLightMapNode.js +2 -2
- package/src/nodes/lighting/DirectionalLightNode.js +3 -12
- package/src/nodes/lighting/EnvironmentNode.js +5 -8
- package/src/nodes/lighting/HemisphereLightNode.js +1 -1
- package/src/nodes/lighting/LightProbeNode.js +1 -1
- package/src/nodes/lighting/LightUtils.js +1 -5
- package/src/nodes/lighting/LightingContextNode.js +10 -10
- package/src/nodes/lighting/LightingNode.js +1 -1
- package/src/nodes/lighting/LightsNode.js +68 -25
- package/src/nodes/lighting/PointLightNode.js +12 -27
- package/src/nodes/lighting/PointShadowNode.js +5 -6
- package/src/nodes/lighting/RectAreaLightNode.js +5 -10
- package/src/nodes/lighting/ShadowBaseNode.js +8 -9
- package/src/nodes/lighting/ShadowNode.js +28 -15
- package/src/nodes/lighting/SpotLightNode.js +8 -19
- package/src/nodes/math/ConditionalNode.js +26 -9
- package/src/nodes/math/Hash.js +2 -3
- package/src/nodes/math/MathNode.js +217 -150
- package/src/nodes/math/MathUtils.js +8 -6
- package/src/nodes/math/OperatorNode.js +198 -89
- package/src/nodes/math/TriNoise3D.js +2 -3
- package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
- package/src/nodes/parsers/GLSLNodeParser.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +61 -37
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +2 -3
- package/src/nodes/shapes/Shapes.js +2 -3
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +117 -19
- package/src/nodes/utils/ArrayElementNode.js +5 -3
- package/src/nodes/utils/ConvertNode.js +3 -3
- package/src/nodes/utils/CubeMapNode.js +7 -8
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/Discard.js +5 -5
- package/src/nodes/utils/EquirectUVNode.js +3 -4
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
- package/src/nodes/utils/JoinNode.js +29 -4
- package/src/nodes/utils/LoopNode.js +67 -35
- package/src/nodes/utils/MatcapUVNode.js +1 -2
- package/src/nodes/utils/MaxMipLevelNode.js +4 -5
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +8 -6
- package/src/nodes/utils/Packing.js +4 -4
- package/src/nodes/utils/PostProcessingUtils.js +6 -5
- package/src/nodes/utils/RTTNode.js +19 -19
- package/src/nodes/utils/ReflectorNode.js +35 -25
- package/src/nodes/utils/RemapNode.js +9 -9
- package/src/nodes/utils/RotateNode.js +3 -4
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +5 -5
- package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
- package/src/nodes/utils/SpriteUtils.js +5 -6
- package/src/nodes/utils/StorageArrayElementNode.js +3 -4
- package/src/nodes/utils/Timer.js +9 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
- package/src/nodes/utils/UVUtils.js +4 -4
- package/src/nodes/utils/ViewportUtils.js +3 -4
- package/src/objects/BatchedMesh.js +319 -32
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +4 -4
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +82 -0
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +75 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +105 -0
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +622 -83
- package/src/renderers/common/Animation.js +6 -6
- package/src/renderers/common/Attributes.js +3 -3
- package/src/renderers/common/Backend.js +40 -31
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/BindGroup.js +5 -5
- package/src/renderers/common/Binding.js +4 -4
- package/src/renderers/common/Bindings.js +10 -0
- package/src/renderers/common/Buffer.js +5 -5
- package/src/renderers/common/BufferUtils.js +7 -9
- package/src/renderers/common/BundleGroup.js +6 -6
- package/src/renderers/common/ChainMap.js +3 -3
- package/src/renderers/common/ClippingContext.js +8 -8
- package/src/renderers/common/Color4.js +8 -8
- package/src/renderers/common/ComputePipeline.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +2 -2
- package/src/renderers/common/Geometries.js +6 -6
- package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
- package/src/renderers/common/Info.js +17 -17
- package/src/renderers/common/Pipeline.js +3 -3
- package/src/renderers/common/Pipelines.js +12 -12
- package/src/renderers/common/PostProcessing.js +13 -1
- package/src/renderers/common/ProgrammableStage.js +11 -11
- package/src/renderers/common/QuadMesh.js +5 -3
- package/src/renderers/common/RenderContext.js +24 -24
- package/src/renderers/common/RenderContexts.js +4 -4
- package/src/renderers/common/RenderList.js +16 -16
- package/src/renderers/common/RenderObject.js +27 -27
- package/src/renderers/common/RenderObjects.js +4 -4
- package/src/renderers/common/RenderPipeline.js +1 -1
- package/src/renderers/common/Renderer.js +272 -200
- package/src/renderers/common/RendererUtils.js +0 -2
- package/src/renderers/common/SampledTexture.js +20 -20
- package/src/renderers/common/Sampler.js +5 -5
- package/src/renderers/common/StorageBuffer.js +2 -2
- package/src/renderers/common/StorageBufferAttribute.js +4 -4
- package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
- package/src/renderers/common/StorageTexture.js +6 -6
- package/src/renderers/common/Textures.js +6 -6
- package/src/renderers/common/TimestampQueryPool.js +66 -7
- package/src/renderers/common/Uniform.js +26 -26
- package/src/renderers/common/UniformBuffer.js +2 -2
- package/src/renderers/common/UniformsGroup.js +18 -18
- package/src/renderers/common/XRManager.js +369 -54
- package/src/renderers/common/XRRenderTarget.js +5 -5
- package/src/renderers/common/extras/PMREMGenerator.js +62 -37
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
- package/src/renderers/common/nodes/NodeLibrary.js +13 -13
- package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
- package/src/renderers/common/nodes/NodeSampler.js +1 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniform.js +9 -9
- package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
- package/src/renderers/common/nodes/Nodes.js +13 -13
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +19 -19
- package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
- package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
- package/src/renderers/webgpu/WebGPUBackend.js +200 -119
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
- package/src/renderers/webgpu/WebGPURenderer.js +19 -13
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +185 -9
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +61 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +362 -3
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import Node from './Node.js';
|
|
2
2
|
import { nodeImmutable, nodeObject } from '../tsl/TSLCore.js';
|
|
3
3
|
|
|
4
|
-
/** @module PropertyNode **/
|
|
5
|
-
|
|
6
4
|
/**
|
|
7
5
|
* This class represents a shader property. It can be used
|
|
8
6
|
* to explicitly define a property and assign a value to it.
|
|
@@ -26,9 +24,9 @@ class PropertyNode extends Node {
|
|
|
26
24
|
/**
|
|
27
25
|
* Constructs a new property node.
|
|
28
26
|
*
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {
|
|
31
|
-
* @param {
|
|
27
|
+
* @param {string} nodeType - The type of the node.
|
|
28
|
+
* @param {?string} [name=null] - The name of the property in the shader.
|
|
29
|
+
* @param {boolean} [varying=false] - Whether this property is a varying or not.
|
|
32
30
|
*/
|
|
33
31
|
constructor( nodeType, name = null, varying = false ) {
|
|
34
32
|
|
|
@@ -38,7 +36,7 @@ class PropertyNode extends Node {
|
|
|
38
36
|
* The name of the property in the shader. If no name is defined,
|
|
39
37
|
* the node system auto-generates one.
|
|
40
38
|
*
|
|
41
|
-
* @type {
|
|
39
|
+
* @type {?string}
|
|
42
40
|
* @default null
|
|
43
41
|
*/
|
|
44
42
|
this.name = name;
|
|
@@ -46,7 +44,7 @@ class PropertyNode extends Node {
|
|
|
46
44
|
/**
|
|
47
45
|
* Whether this property is a varying or not.
|
|
48
46
|
*
|
|
49
|
-
* @type {
|
|
47
|
+
* @type {boolean}
|
|
50
48
|
* @default false
|
|
51
49
|
*/
|
|
52
50
|
this.varying = varying;
|
|
@@ -54,7 +52,7 @@ class PropertyNode extends Node {
|
|
|
54
52
|
/**
|
|
55
53
|
* This flag can be used for type testing.
|
|
56
54
|
*
|
|
57
|
-
* @type {
|
|
55
|
+
* @type {boolean}
|
|
58
56
|
* @readonly
|
|
59
57
|
* @default true
|
|
60
58
|
*/
|
|
@@ -72,7 +70,7 @@ class PropertyNode extends Node {
|
|
|
72
70
|
* The method is overwritten so it always returns `true`.
|
|
73
71
|
*
|
|
74
72
|
* @param {NodeBuilder} builder - The current node builder.
|
|
75
|
-
* @return {
|
|
73
|
+
* @return {boolean} Whether this node is global or not.
|
|
76
74
|
*/
|
|
77
75
|
isGlobal( /*builder*/ ) {
|
|
78
76
|
|
|
@@ -106,9 +104,10 @@ export default PropertyNode;
|
|
|
106
104
|
/**
|
|
107
105
|
* TSL function for creating a property node.
|
|
108
106
|
*
|
|
107
|
+
* @tsl
|
|
109
108
|
* @function
|
|
110
|
-
* @param {
|
|
111
|
-
* @param {
|
|
109
|
+
* @param {string} type - The type of the node.
|
|
110
|
+
* @param {?string} [name=null] - The name of the property in the shader.
|
|
112
111
|
* @returns {PropertyNode}
|
|
113
112
|
*/
|
|
114
113
|
export const property = ( type, name ) => nodeObject( new PropertyNode( type, name ) );
|
|
@@ -116,9 +115,10 @@ export const property = ( type, name ) => nodeObject( new PropertyNode( type, na
|
|
|
116
115
|
/**
|
|
117
116
|
* TSL function for creating a varying property node.
|
|
118
117
|
*
|
|
118
|
+
* @tsl
|
|
119
119
|
* @function
|
|
120
|
-
* @param {
|
|
121
|
-
* @param {
|
|
120
|
+
* @param {string} type - The type of the node.
|
|
121
|
+
* @param {?string} [name=null] - The name of the varying in the shader.
|
|
122
122
|
* @returns {PropertyNode}
|
|
123
123
|
*/
|
|
124
124
|
export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( type, name, true ) );
|
|
@@ -126,6 +126,7 @@ export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( t
|
|
|
126
126
|
/**
|
|
127
127
|
* TSL object that represents the shader variable `DiffuseColor`.
|
|
128
128
|
*
|
|
129
|
+
* @tsl
|
|
129
130
|
* @type {PropertyNode<vec4>}
|
|
130
131
|
*/
|
|
131
132
|
export const diffuseColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'DiffuseColor' );
|
|
@@ -133,6 +134,7 @@ export const diffuseColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', '
|
|
|
133
134
|
/**
|
|
134
135
|
* TSL object that represents the shader variable `EmissiveColor`.
|
|
135
136
|
*
|
|
137
|
+
* @tsl
|
|
136
138
|
* @type {PropertyNode<vec3>}
|
|
137
139
|
*/
|
|
138
140
|
export const emissive = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'EmissiveColor' );
|
|
@@ -140,6 +142,7 @@ export const emissive = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'Emis
|
|
|
140
142
|
/**
|
|
141
143
|
* TSL object that represents the shader variable `Roughness`.
|
|
142
144
|
*
|
|
145
|
+
* @tsl
|
|
143
146
|
* @type {PropertyNode<float>}
|
|
144
147
|
*/
|
|
145
148
|
export const roughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Roughness' );
|
|
@@ -147,6 +150,7 @@ export const roughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Ro
|
|
|
147
150
|
/**
|
|
148
151
|
* TSL object that represents the shader variable `Metalness`.
|
|
149
152
|
*
|
|
153
|
+
* @tsl
|
|
150
154
|
* @type {PropertyNode<float>}
|
|
151
155
|
*/
|
|
152
156
|
export const metalness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Metalness' );
|
|
@@ -154,6 +158,7 @@ export const metalness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Me
|
|
|
154
158
|
/**
|
|
155
159
|
* TSL object that represents the shader variable `Clearcoat`.
|
|
156
160
|
*
|
|
161
|
+
* @tsl
|
|
157
162
|
* @type {PropertyNode<float>}
|
|
158
163
|
*/
|
|
159
164
|
export const clearcoat = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Clearcoat' );
|
|
@@ -161,6 +166,7 @@ export const clearcoat = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Cl
|
|
|
161
166
|
/**
|
|
162
167
|
* TSL object that represents the shader variable `ClearcoatRoughness`.
|
|
163
168
|
*
|
|
169
|
+
* @tsl
|
|
164
170
|
* @type {PropertyNode<float>}
|
|
165
171
|
*/
|
|
166
172
|
export const clearcoatRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'ClearcoatRoughness' );
|
|
@@ -168,6 +174,7 @@ export const clearcoatRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'fl
|
|
|
168
174
|
/**
|
|
169
175
|
* TSL object that represents the shader variable `Sheen`.
|
|
170
176
|
*
|
|
177
|
+
* @tsl
|
|
171
178
|
* @type {PropertyNode<vec3>}
|
|
172
179
|
*/
|
|
173
180
|
export const sheen = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'Sheen' );
|
|
@@ -175,6 +182,7 @@ export const sheen = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'Sheen'
|
|
|
175
182
|
/**
|
|
176
183
|
* TSL object that represents the shader variable `SheenRoughness`.
|
|
177
184
|
*
|
|
185
|
+
* @tsl
|
|
178
186
|
* @type {PropertyNode<float>}
|
|
179
187
|
*/
|
|
180
188
|
export const sheenRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'SheenRoughness' );
|
|
@@ -182,6 +190,7 @@ export const sheenRoughness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float'
|
|
|
182
190
|
/**
|
|
183
191
|
* TSL object that represents the shader variable `Iridescence`.
|
|
184
192
|
*
|
|
193
|
+
* @tsl
|
|
185
194
|
* @type {PropertyNode<float>}
|
|
186
195
|
*/
|
|
187
196
|
export const iridescence = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Iridescence' );
|
|
@@ -189,6 +198,7 @@ export const iridescence = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', '
|
|
|
189
198
|
/**
|
|
190
199
|
* TSL object that represents the shader variable `IridescenceIOR`.
|
|
191
200
|
*
|
|
201
|
+
* @tsl
|
|
192
202
|
* @type {PropertyNode<float>}
|
|
193
203
|
*/
|
|
194
204
|
export const iridescenceIOR = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IridescenceIOR' );
|
|
@@ -196,6 +206,7 @@ export const iridescenceIOR = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float'
|
|
|
196
206
|
/**
|
|
197
207
|
* TSL object that represents the shader variable `IridescenceThickness`.
|
|
198
208
|
*
|
|
209
|
+
* @tsl
|
|
199
210
|
* @type {PropertyNode<float>}
|
|
200
211
|
*/
|
|
201
212
|
export const iridescenceThickness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IridescenceThickness' );
|
|
@@ -203,6 +214,7 @@ export const iridescenceThickness = /*@__PURE__*/ nodeImmutable( PropertyNode, '
|
|
|
203
214
|
/**
|
|
204
215
|
* TSL object that represents the shader variable `AlphaT`.
|
|
205
216
|
*
|
|
217
|
+
* @tsl
|
|
206
218
|
* @type {PropertyNode<float>}
|
|
207
219
|
*/
|
|
208
220
|
export const alphaT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'AlphaT' );
|
|
@@ -210,6 +222,7 @@ export const alphaT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Alpha
|
|
|
210
222
|
/**
|
|
211
223
|
* TSL object that represents the shader variable `Anisotropy`.
|
|
212
224
|
*
|
|
225
|
+
* @tsl
|
|
213
226
|
* @type {PropertyNode<float>}
|
|
214
227
|
*/
|
|
215
228
|
export const anisotropy = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Anisotropy' );
|
|
@@ -217,6 +230,7 @@ export const anisotropy = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'A
|
|
|
217
230
|
/**
|
|
218
231
|
* TSL object that represents the shader variable `AnisotropyT`.
|
|
219
232
|
*
|
|
233
|
+
* @tsl
|
|
220
234
|
* @type {PropertyNode<vec3>}
|
|
221
235
|
*/
|
|
222
236
|
export const anisotropyT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'AnisotropyT' );
|
|
@@ -224,6 +238,7 @@ export const anisotropyT = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'A
|
|
|
224
238
|
/**
|
|
225
239
|
* TSL object that represents the shader variable `AnisotropyB`.
|
|
226
240
|
*
|
|
241
|
+
* @tsl
|
|
227
242
|
* @type {PropertyNode<vec3>}
|
|
228
243
|
*/
|
|
229
244
|
export const anisotropyB = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'AnisotropyB' );
|
|
@@ -231,6 +246,7 @@ export const anisotropyB = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec3', 'A
|
|
|
231
246
|
/**
|
|
232
247
|
* TSL object that represents the shader variable `SpecularColor`.
|
|
233
248
|
*
|
|
249
|
+
* @tsl
|
|
234
250
|
* @type {PropertyNode<color>}
|
|
235
251
|
*/
|
|
236
252
|
export const specularColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'SpecularColor' );
|
|
@@ -238,6 +254,7 @@ export const specularColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color',
|
|
|
238
254
|
/**
|
|
239
255
|
* TSL object that represents the shader variable `SpecularF90`.
|
|
240
256
|
*
|
|
257
|
+
* @tsl
|
|
241
258
|
* @type {PropertyNode<float>}
|
|
242
259
|
*/
|
|
243
260
|
export const specularF90 = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'SpecularF90' );
|
|
@@ -245,6 +262,7 @@ export const specularF90 = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', '
|
|
|
245
262
|
/**
|
|
246
263
|
* TSL object that represents the shader variable `Shininess`.
|
|
247
264
|
*
|
|
265
|
+
* @tsl
|
|
248
266
|
* @type {PropertyNode<float>}
|
|
249
267
|
*/
|
|
250
268
|
export const shininess = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Shininess' );
|
|
@@ -252,6 +270,7 @@ export const shininess = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Sh
|
|
|
252
270
|
/**
|
|
253
271
|
* TSL object that represents the shader variable `Output`.
|
|
254
272
|
*
|
|
273
|
+
* @tsl
|
|
255
274
|
* @type {PropertyNode<vec4>}
|
|
256
275
|
*/
|
|
257
276
|
export const output = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'Output' );
|
|
@@ -259,6 +278,7 @@ export const output = /*@__PURE__*/ nodeImmutable( PropertyNode, 'vec4', 'Output
|
|
|
259
278
|
/**
|
|
260
279
|
* TSL object that represents the shader variable `dashSize`.
|
|
261
280
|
*
|
|
281
|
+
* @tsl
|
|
262
282
|
* @type {PropertyNode<float>}
|
|
263
283
|
*/
|
|
264
284
|
export const dashSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'dashSize' );
|
|
@@ -266,6 +286,7 @@ export const dashSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'das
|
|
|
266
286
|
/**
|
|
267
287
|
* TSL object that represents the shader variable `gapSize`.
|
|
268
288
|
*
|
|
289
|
+
* @tsl
|
|
269
290
|
* @type {PropertyNode<float>}
|
|
270
291
|
*/
|
|
271
292
|
export const gapSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'gapSize' );
|
|
@@ -273,6 +294,7 @@ export const gapSize = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'gapS
|
|
|
273
294
|
/**
|
|
274
295
|
* TSL object that represents the shader variable `pointWidth`.
|
|
275
296
|
*
|
|
297
|
+
* @tsl
|
|
276
298
|
* @type {PropertyNode<float>}
|
|
277
299
|
*/
|
|
278
300
|
export const pointWidth = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'pointWidth' );
|
|
@@ -280,6 +302,7 @@ export const pointWidth = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'p
|
|
|
280
302
|
/**
|
|
281
303
|
* TSL object that represents the shader variable `IOR`.
|
|
282
304
|
*
|
|
305
|
+
* @tsl
|
|
283
306
|
* @type {PropertyNode<float>}
|
|
284
307
|
*/
|
|
285
308
|
export const ior = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IOR' );
|
|
@@ -287,6 +310,7 @@ export const ior = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'IOR' );
|
|
|
287
310
|
/**
|
|
288
311
|
* TSL object that represents the shader variable `Transmission`.
|
|
289
312
|
*
|
|
313
|
+
* @tsl
|
|
290
314
|
* @type {PropertyNode<float>}
|
|
291
315
|
*/
|
|
292
316
|
export const transmission = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Transmission' );
|
|
@@ -294,6 +318,7 @@ export const transmission = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float',
|
|
|
294
318
|
/**
|
|
295
319
|
* TSL object that represents the shader variable `Thickness`.
|
|
296
320
|
*
|
|
321
|
+
* @tsl
|
|
297
322
|
* @type {PropertyNode<float>}
|
|
298
323
|
*/
|
|
299
324
|
export const thickness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Thickness' );
|
|
@@ -301,6 +326,7 @@ export const thickness = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Th
|
|
|
301
326
|
/**
|
|
302
327
|
* TSL object that represents the shader variable `AttenuationDistance`.
|
|
303
328
|
*
|
|
329
|
+
* @tsl
|
|
304
330
|
* @type {PropertyNode<float>}
|
|
305
331
|
*/
|
|
306
332
|
export const attenuationDistance = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'AttenuationDistance' );
|
|
@@ -308,6 +334,7 @@ export const attenuationDistance = /*@__PURE__*/ nodeImmutable( PropertyNode, 'f
|
|
|
308
334
|
/**
|
|
309
335
|
* TSL object that represents the shader variable `AttenuationColor`.
|
|
310
336
|
*
|
|
337
|
+
* @tsl
|
|
311
338
|
* @type {PropertyNode<color>}
|
|
312
339
|
*/
|
|
313
340
|
export const attenuationColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'color', 'AttenuationColor' );
|
|
@@ -315,6 +342,7 @@ export const attenuationColor = /*@__PURE__*/ nodeImmutable( PropertyNode, 'colo
|
|
|
315
342
|
/**
|
|
316
343
|
* TSL object that represents the shader variable `Dispersion`.
|
|
317
344
|
*
|
|
345
|
+
* @tsl
|
|
318
346
|
* @type {PropertyNode<float>}
|
|
319
347
|
*/
|
|
320
348
|
export const dispersion = /*@__PURE__*/ nodeImmutable( PropertyNode, 'float', 'Dispersion' );
|
|
@@ -2,8 +2,6 @@ import Node from './Node.js';
|
|
|
2
2
|
import { select } from '../math/ConditionalNode.js';
|
|
3
3
|
import { ShaderNode, nodeProxy, getCurrentStack, setCurrentStack } from '../tsl/TSLBase.js';
|
|
4
4
|
|
|
5
|
-
/** @module StackNode **/
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* Stack is a helper for Nodes that need to produce stack-based code instead of continuous flow.
|
|
9
7
|
* They are usually needed in cases like `If`, `Else`.
|
|
@@ -21,7 +19,7 @@ class StackNode extends Node {
|
|
|
21
19
|
/**
|
|
22
20
|
* Constructs a new stack node.
|
|
23
21
|
*
|
|
24
|
-
* @param {StackNode
|
|
22
|
+
* @param {?StackNode} [parent=null] - The parent stack node.
|
|
25
23
|
*/
|
|
26
24
|
constructor( parent = null ) {
|
|
27
25
|
|
|
@@ -37,7 +35,7 @@ class StackNode extends Node {
|
|
|
37
35
|
/**
|
|
38
36
|
* The output node.
|
|
39
37
|
*
|
|
40
|
-
* @type {Node
|
|
38
|
+
* @type {?Node}
|
|
41
39
|
* @default null
|
|
42
40
|
*/
|
|
43
41
|
this.outputNode = null;
|
|
@@ -45,7 +43,7 @@ class StackNode extends Node {
|
|
|
45
43
|
/**
|
|
46
44
|
* The parent stack node.
|
|
47
45
|
*
|
|
48
|
-
* @type {StackNode}
|
|
46
|
+
* @type {?StackNode}
|
|
49
47
|
* @default null
|
|
50
48
|
*/
|
|
51
49
|
this.parent = parent;
|
|
@@ -62,7 +60,7 @@ class StackNode extends Node {
|
|
|
62
60
|
/**
|
|
63
61
|
* This flag can be used for type testing.
|
|
64
62
|
*
|
|
65
|
-
* @type {
|
|
63
|
+
* @type {boolean}
|
|
66
64
|
* @readonly
|
|
67
65
|
* @default true
|
|
68
66
|
*/
|
|
@@ -169,12 +167,12 @@ class StackNode extends Node {
|
|
|
169
167
|
* @function
|
|
170
168
|
* @deprecated since r168. Use {@link StackNode#Else} instead.
|
|
171
169
|
*
|
|
172
|
-
* @param
|
|
170
|
+
* @param {...any} params
|
|
173
171
|
* @returns {StackNode}
|
|
174
172
|
*/
|
|
175
173
|
else( ...params ) { // @deprecated, r168
|
|
176
174
|
|
|
177
|
-
console.warn( 'TSL
|
|
175
|
+
console.warn( 'THREE.TSL: .else() has been renamed to .Else().' );
|
|
178
176
|
return this.Else( ...params );
|
|
179
177
|
|
|
180
178
|
}
|
|
@@ -182,12 +180,12 @@ class StackNode extends Node {
|
|
|
182
180
|
/**
|
|
183
181
|
* @deprecated since r168. Use {@link StackNode#ElseIf} instead.
|
|
184
182
|
*
|
|
185
|
-
* @param
|
|
183
|
+
* @param {...any} params
|
|
186
184
|
* @returns {StackNode}
|
|
187
185
|
*/
|
|
188
186
|
elseif( ...params ) { // @deprecated, r168
|
|
189
187
|
|
|
190
|
-
console.warn( 'TSL
|
|
188
|
+
console.warn( 'THREE.TSL: .elseif() has been renamed to .ElseIf().' );
|
|
191
189
|
return this.ElseIf( ...params );
|
|
192
190
|
|
|
193
191
|
}
|
|
@@ -199,8 +197,9 @@ export default StackNode;
|
|
|
199
197
|
/**
|
|
200
198
|
* TSL function for creating a stack node.
|
|
201
199
|
*
|
|
200
|
+
* @tsl
|
|
202
201
|
* @function
|
|
203
|
-
* @param {StackNode
|
|
202
|
+
* @param {?StackNode} [parent=null] - The parent stack node.
|
|
204
203
|
* @returns {StackNode}
|
|
205
204
|
*/
|
|
206
|
-
export const stack = /*@__PURE__*/ nodeProxy( StackNode );
|
|
205
|
+
export const stack = /*@__PURE__*/ nodeProxy( StackNode ).setParameterLength( 0, 1 );
|
|
@@ -2,8 +2,6 @@ import Node from './Node.js';
|
|
|
2
2
|
import StructTypeNode from './StructTypeNode.js';
|
|
3
3
|
import { nodeObject } from '../tsl/TSLCore.js';
|
|
4
4
|
|
|
5
|
-
/** @module StructNode **/
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* StructNode allows to create custom structures with multiple members.
|
|
9
7
|
* This can also be used to define structures in attribute and uniform data.
|
|
@@ -74,9 +72,10 @@ export default StructNode;
|
|
|
74
72
|
/**
|
|
75
73
|
* TSL function for creating a struct node.
|
|
76
74
|
*
|
|
75
|
+
* @tsl
|
|
77
76
|
* @function
|
|
78
77
|
* @param {Object} membersLayout - The layout of the struct members.
|
|
79
|
-
* @param {string} [name=null] - The name of the struct.
|
|
78
|
+
* @param {?string} [name=null] - The name of the struct.
|
|
80
79
|
* @returns {Function} The struct function.
|
|
81
80
|
*/
|
|
82
81
|
export const struct = ( membersLayout, name = null ) => {
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
import Node from './Node.js';
|
|
3
3
|
import { getLengthFromType } from './NodeUtils.js';
|
|
4
4
|
|
|
5
|
-
/** @module StructTypeNode **/
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* Generates a layout for struct members.
|
|
9
7
|
* This function takes an object representing struct members and returns an array of member layouts.
|
|
@@ -48,7 +46,7 @@ class StructTypeNode extends Node {
|
|
|
48
46
|
* Creates an instance of StructTypeNode.
|
|
49
47
|
*
|
|
50
48
|
* @param {Object} membersLayout - The layout of the members for the struct.
|
|
51
|
-
* @param {string} [name=null] - The optional name of the struct.
|
|
49
|
+
* @param {?string} [name=null] - The optional name of the struct.
|
|
52
50
|
*/
|
|
53
51
|
constructor( membersLayout, name = null ) {
|
|
54
52
|
|
|
@@ -64,7 +62,7 @@ class StructTypeNode extends Node {
|
|
|
64
62
|
/**
|
|
65
63
|
* The name of the struct.
|
|
66
64
|
*
|
|
67
|
-
* @type {
|
|
65
|
+
* @type {?string}
|
|
68
66
|
* @default null
|
|
69
67
|
*/
|
|
70
68
|
this.name = name;
|
|
@@ -72,7 +70,7 @@ class StructTypeNode extends Node {
|
|
|
72
70
|
/**
|
|
73
71
|
* This flag can be used for type testing.
|
|
74
72
|
*
|
|
75
|
-
* @type {
|
|
73
|
+
* @type {boolean}
|
|
76
74
|
* @readonly
|
|
77
75
|
* @default true
|
|
78
76
|
*/
|
|
@@ -84,7 +82,7 @@ class StructTypeNode extends Node {
|
|
|
84
82
|
* Returns the length of the struct.
|
|
85
83
|
* The length is calculated by summing the lengths of the struct's members.
|
|
86
84
|
*
|
|
87
|
-
* @returns {
|
|
85
|
+
* @returns {number} The length of the struct.
|
|
88
86
|
*/
|
|
89
87
|
getLength() {
|
|
90
88
|
|
|
@@ -116,6 +114,12 @@ class StructTypeNode extends Node {
|
|
|
116
114
|
|
|
117
115
|
}
|
|
118
116
|
|
|
117
|
+
setup( builder ) {
|
|
118
|
+
|
|
119
|
+
builder.addInclude( this );
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
119
123
|
generate( builder ) {
|
|
120
124
|
|
|
121
125
|
return this.getNodeType( builder );
|
|
@@ -19,7 +19,7 @@ class TempNode extends Node {
|
|
|
19
19
|
/**
|
|
20
20
|
* Constructs a temp node.
|
|
21
21
|
*
|
|
22
|
-
* @param {
|
|
22
|
+
* @param {?string} nodeType - The node type.
|
|
23
23
|
*/
|
|
24
24
|
constructor( nodeType = null ) {
|
|
25
25
|
|
|
@@ -28,7 +28,7 @@ class TempNode extends Node {
|
|
|
28
28
|
/**
|
|
29
29
|
* This flag can be used for type testing.
|
|
30
30
|
*
|
|
31
|
-
* @type {
|
|
31
|
+
* @type {boolean}
|
|
32
32
|
* @readonly
|
|
33
33
|
* @default true
|
|
34
34
|
*/
|
|
@@ -40,7 +40,7 @@ class TempNode extends Node {
|
|
|
40
40
|
* Whether this node is used more than once in context of other nodes.
|
|
41
41
|
*
|
|
42
42
|
* @param {NodeBuilder} builder - The node builder.
|
|
43
|
-
* @return {
|
|
43
|
+
* @return {boolean} A flag that indicates if there is more than one dependency to other nodes.
|
|
44
44
|
*/
|
|
45
45
|
hasDependencies( builder ) {
|
|
46
46
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import Node from './Node.js';
|
|
2
2
|
|
|
3
|
-
/** @module UniformGroupNode **/
|
|
4
|
-
|
|
5
3
|
/**
|
|
6
4
|
* This node can be used to group single instances of {@link UniformNode}
|
|
7
5
|
* and manage them as a uniform buffer.
|
|
@@ -26,9 +24,9 @@ class UniformGroupNode extends Node {
|
|
|
26
24
|
/**
|
|
27
25
|
* Constructs a new uniform group node.
|
|
28
26
|
*
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {
|
|
31
|
-
* @param {
|
|
27
|
+
* @param {string} name - The name of the uniform group node.
|
|
28
|
+
* @param {boolean} [shared=false] - Whether this uniform group node is shared or not.
|
|
29
|
+
* @param {number} [order=1] - Influences the internal sorting.
|
|
32
30
|
*/
|
|
33
31
|
constructor( name, shared = false, order = 1 ) {
|
|
34
32
|
|
|
@@ -37,14 +35,14 @@ class UniformGroupNode extends Node {
|
|
|
37
35
|
/**
|
|
38
36
|
* The name of the uniform group node.
|
|
39
37
|
*
|
|
40
|
-
* @type {
|
|
38
|
+
* @type {string}
|
|
41
39
|
*/
|
|
42
40
|
this.name = name;
|
|
43
41
|
|
|
44
42
|
/**
|
|
45
43
|
* Whether this uniform group node is shared or not.
|
|
46
44
|
*
|
|
47
|
-
* @type {
|
|
45
|
+
* @type {boolean}
|
|
48
46
|
* @default false
|
|
49
47
|
*/
|
|
50
48
|
this.shared = shared;
|
|
@@ -53,7 +51,7 @@ class UniformGroupNode extends Node {
|
|
|
53
51
|
* Influences the internal sorting.
|
|
54
52
|
* TODO: Add details when this property should be changed.
|
|
55
53
|
*
|
|
56
|
-
* @type {
|
|
54
|
+
* @type {number}
|
|
57
55
|
* @default 1
|
|
58
56
|
*/
|
|
59
57
|
this.order = order;
|
|
@@ -61,7 +59,7 @@ class UniformGroupNode extends Node {
|
|
|
61
59
|
/**
|
|
62
60
|
* This flag can be used for type testing.
|
|
63
61
|
*
|
|
64
|
-
* @type {
|
|
62
|
+
* @type {boolean}
|
|
65
63
|
* @readonly
|
|
66
64
|
* @default true
|
|
67
65
|
*/
|
|
@@ -96,8 +94,9 @@ export default UniformGroupNode;
|
|
|
96
94
|
/**
|
|
97
95
|
* TSL function for creating a uniform group node with the given name.
|
|
98
96
|
*
|
|
97
|
+
* @tsl
|
|
99
98
|
* @function
|
|
100
|
-
* @param {
|
|
99
|
+
* @param {string} name - The name of the uniform group node.
|
|
101
100
|
* @returns {UniformGroupNode}
|
|
102
101
|
*/
|
|
103
102
|
export const uniformGroup = ( name ) => new UniformGroupNode( name );
|
|
@@ -105,9 +104,10 @@ export const uniformGroup = ( name ) => new UniformGroupNode( name );
|
|
|
105
104
|
/**
|
|
106
105
|
* TSL function for creating a shared uniform group node with the given name and order.
|
|
107
106
|
*
|
|
107
|
+
* @tsl
|
|
108
108
|
* @function
|
|
109
|
-
* @param {
|
|
110
|
-
* @param {
|
|
109
|
+
* @param {string} name - The name of the uniform group node.
|
|
110
|
+
* @param {number} [order=0] - Influences the internal sorting.
|
|
111
111
|
* @returns {UniformGroupNode}
|
|
112
112
|
*/
|
|
113
113
|
export const sharedUniformGroup = ( name, order = 0 ) => new UniformGroupNode( name, true, order );
|
|
@@ -115,6 +115,7 @@ export const sharedUniformGroup = ( name, order = 0 ) => new UniformGroupNode( n
|
|
|
115
115
|
/**
|
|
116
116
|
* TSL object that represents a shared uniform group node which is updated once per frame.
|
|
117
117
|
*
|
|
118
|
+
* @tsl
|
|
118
119
|
* @type {UniformGroupNode}
|
|
119
120
|
*/
|
|
120
121
|
export const frameGroup = /*@__PURE__*/ sharedUniformGroup( 'frame' );
|
|
@@ -122,6 +123,7 @@ export const frameGroup = /*@__PURE__*/ sharedUniformGroup( 'frame' );
|
|
|
122
123
|
/**
|
|
123
124
|
* TSL object that represents a shared uniform group node which is updated once per render.
|
|
124
125
|
*
|
|
126
|
+
* @tsl
|
|
125
127
|
* @type {UniformGroupNode}
|
|
126
128
|
*/
|
|
127
129
|
export const renderGroup = /*@__PURE__*/ sharedUniformGroup( 'render' );
|
|
@@ -129,6 +131,7 @@ export const renderGroup = /*@__PURE__*/ sharedUniformGroup( 'render' );
|
|
|
129
131
|
/**
|
|
130
132
|
* TSL object that represents a uniform group node which is updated once per object.
|
|
131
133
|
*
|
|
134
|
+
* @tsl
|
|
132
135
|
* @type {UniformGroupNode}
|
|
133
136
|
*/
|
|
134
137
|
export const objectGroup = /*@__PURE__*/ uniformGroup( 'object' );
|
|
@@ -2,8 +2,6 @@ import InputNode from './InputNode.js';
|
|
|
2
2
|
import { objectGroup } from './UniformGroupNode.js';
|
|
3
3
|
import { nodeObject, getConstNodeType } from '../tsl/TSLCore.js';
|
|
4
4
|
|
|
5
|
-
/** @module UniformNode **/
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* Class for representing a uniform.
|
|
9
7
|
*
|
|
@@ -20,8 +18,8 @@ class UniformNode extends InputNode {
|
|
|
20
18
|
/**
|
|
21
19
|
* Constructs a new uniform node.
|
|
22
20
|
*
|
|
23
|
-
* @param {
|
|
24
|
-
* @param {
|
|
21
|
+
* @param {any} value - The value of this node. Usually a JS primitive or three.js object (vector, matrix, color, texture).
|
|
22
|
+
* @param {?string} nodeType - The node type. If no explicit type is defined, the node tries to derive the type from its value.
|
|
25
23
|
*/
|
|
26
24
|
constructor( value, nodeType = null ) {
|
|
27
25
|
|
|
@@ -30,7 +28,7 @@ class UniformNode extends InputNode {
|
|
|
30
28
|
/**
|
|
31
29
|
* This flag can be used for type testing.
|
|
32
30
|
*
|
|
33
|
-
* @type {
|
|
31
|
+
* @type {boolean}
|
|
34
32
|
* @readonly
|
|
35
33
|
* @default true
|
|
36
34
|
*/
|
|
@@ -39,7 +37,7 @@ class UniformNode extends InputNode {
|
|
|
39
37
|
/**
|
|
40
38
|
* The name or label of the uniform.
|
|
41
39
|
*
|
|
42
|
-
* @type {
|
|
40
|
+
* @type {string}
|
|
43
41
|
* @default ''
|
|
44
42
|
*/
|
|
45
43
|
this.name = '';
|
|
@@ -58,7 +56,7 @@ class UniformNode extends InputNode {
|
|
|
58
56
|
/**
|
|
59
57
|
* Sets the {@link UniformNode#name} property.
|
|
60
58
|
*
|
|
61
|
-
* @param {
|
|
59
|
+
* @param {string} name - The name of the uniform.
|
|
62
60
|
* @return {UniformNode} A reference to this node.
|
|
63
61
|
*/
|
|
64
62
|
label( name ) {
|
|
@@ -99,7 +97,7 @@ class UniformNode extends InputNode {
|
|
|
99
97
|
* classes might overwrite this method with a different implementation.
|
|
100
98
|
*
|
|
101
99
|
* @param {NodeBuilder} builder - The current node builder.
|
|
102
|
-
* @return {
|
|
100
|
+
* @return {string} The uniform hash.
|
|
103
101
|
*/
|
|
104
102
|
getUniformHash( builder ) {
|
|
105
103
|
|
|
@@ -161,9 +159,10 @@ export default UniformNode;
|
|
|
161
159
|
/**
|
|
162
160
|
* TSL function for creating a uniform node.
|
|
163
161
|
*
|
|
162
|
+
* @tsl
|
|
164
163
|
* @function
|
|
165
|
-
* @param {
|
|
166
|
-
* @param {
|
|
164
|
+
* @param {any} arg1 - The value of this node. Usually a JS primitive or three.js object (vector, matrix, color, texture).
|
|
165
|
+
* @param {string} [arg2] - The node type. If no explicit type is defined, the node tries to derive the type from its value.
|
|
167
166
|
* @returns {UniformNode}
|
|
168
167
|
*/
|
|
169
168
|
export const uniform = ( arg1, arg2 ) => {
|