super-three 0.173.4 → 0.175.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 +22198 -1564
- package/build/three.core.js +21287 -1346
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +882 -189
- 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 +19358 -17482
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19342 -17482
- 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 +187 -11
- 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
|
@@ -11,7 +11,7 @@ import { instancedMesh } from '../../nodes/accessors/InstancedMeshNode.js';
|
|
|
11
11
|
import { batch } from '../../nodes/accessors/BatchNode.js';
|
|
12
12
|
import { materialReference } from '../../nodes/accessors/MaterialReferenceNode.js';
|
|
13
13
|
import { positionLocal, positionView } from '../../nodes/accessors/Position.js';
|
|
14
|
-
import {
|
|
14
|
+
import { skinning } from '../../nodes/accessors/SkinningNode.js';
|
|
15
15
|
import { morphReference } from '../../nodes/accessors/MorphNode.js';
|
|
16
16
|
import { mix } from '../../nodes/math/MathNode.js';
|
|
17
17
|
import { float, vec3, vec4 } from '../../nodes/tsl/TSLBase.js';
|
|
@@ -41,7 +41,7 @@ class NodeMaterial extends Material {
|
|
|
41
41
|
/**
|
|
42
42
|
* Represents the type of the node material.
|
|
43
43
|
*
|
|
44
|
-
* @type {
|
|
44
|
+
* @type {string}
|
|
45
45
|
*/
|
|
46
46
|
get type() {
|
|
47
47
|
|
|
@@ -61,7 +61,7 @@ class NodeMaterial extends Material {
|
|
|
61
61
|
/**
|
|
62
62
|
* This flag can be used for type testing.
|
|
63
63
|
*
|
|
64
|
-
* @type {
|
|
64
|
+
* @type {boolean}
|
|
65
65
|
* @readonly
|
|
66
66
|
* @default true
|
|
67
67
|
*/
|
|
@@ -70,7 +70,7 @@ class NodeMaterial extends Material {
|
|
|
70
70
|
/**
|
|
71
71
|
* Whether this material is affected by fog or not.
|
|
72
72
|
*
|
|
73
|
-
* @type {
|
|
73
|
+
* @type {boolean}
|
|
74
74
|
* @default true
|
|
75
75
|
*/
|
|
76
76
|
this.fog = true;
|
|
@@ -78,7 +78,7 @@ class NodeMaterial extends Material {
|
|
|
78
78
|
/**
|
|
79
79
|
* Whether this material is affected by lights or not.
|
|
80
80
|
*
|
|
81
|
-
* @type {
|
|
81
|
+
* @type {boolean}
|
|
82
82
|
* @default false
|
|
83
83
|
*/
|
|
84
84
|
this.lights = false;
|
|
@@ -88,7 +88,7 @@ class NodeMaterial extends Material {
|
|
|
88
88
|
* This property is managed by the engine and should not be
|
|
89
89
|
* modified by apps.
|
|
90
90
|
*
|
|
91
|
-
* @type {
|
|
91
|
+
* @type {boolean}
|
|
92
92
|
* @default false
|
|
93
93
|
*/
|
|
94
94
|
this.hardwareClipping = false;
|
|
@@ -98,7 +98,7 @@ class NodeMaterial extends Material {
|
|
|
98
98
|
* are affected by all lights of the scene. Sometimes selective
|
|
99
99
|
* lighting is wanted which means only _some_ lights in the scene
|
|
100
100
|
* affect a material. This can be achieved by creating an instance
|
|
101
|
-
* of {@link
|
|
101
|
+
* of {@link LightsNode} with a list of selective
|
|
102
102
|
* lights and assign the node to this property.
|
|
103
103
|
*
|
|
104
104
|
* ```js
|
|
@@ -106,7 +106,7 @@ class NodeMaterial extends Material {
|
|
|
106
106
|
* material.lightsNode = customLightsNode;
|
|
107
107
|
* ```
|
|
108
108
|
*
|
|
109
|
-
* @type {LightsNode
|
|
109
|
+
* @type {?LightsNode}
|
|
110
110
|
* @default null
|
|
111
111
|
*/
|
|
112
112
|
this.lightsNode = null;
|
|
@@ -121,7 +121,7 @@ class NodeMaterial extends Material {
|
|
|
121
121
|
* material.envNode = pmremTexture( renderTarget.texture );
|
|
122
122
|
* ```
|
|
123
123
|
*
|
|
124
|
-
* @type {Node<vec3
|
|
124
|
+
* @type {?Node<vec3>}
|
|
125
125
|
* @default null
|
|
126
126
|
*/
|
|
127
127
|
this.envNode = null;
|
|
@@ -133,9 +133,9 @@ class NodeMaterial extends Material {
|
|
|
133
133
|
* the default and define the ambient occlusion with a custom node instead.
|
|
134
134
|
*
|
|
135
135
|
* If you don't want to overwrite the diffuse color but modify the existing
|
|
136
|
-
* values instead, use {@link
|
|
136
|
+
* values instead, use {@link materialAO}.
|
|
137
137
|
*
|
|
138
|
-
* @type {Node<float
|
|
138
|
+
* @type {?Node<float>}
|
|
139
139
|
* @default null
|
|
140
140
|
*/
|
|
141
141
|
this.aoNode = null;
|
|
@@ -150,13 +150,13 @@ class NodeMaterial extends Material {
|
|
|
150
150
|
* ```
|
|
151
151
|
*
|
|
152
152
|
* If you don't want to overwrite the diffuse color but modify the existing
|
|
153
|
-
* values instead, use {@link
|
|
153
|
+
* values instead, use {@link materialColor}.
|
|
154
154
|
*
|
|
155
155
|
* ```js
|
|
156
156
|
* material.colorNode = materialColor.mul( color( 0xff0000 ) ); // give diffuse colors a red tint
|
|
157
157
|
* ```
|
|
158
158
|
*
|
|
159
|
-
* @type {Node<vec3
|
|
159
|
+
* @type {?Node<vec3>}
|
|
160
160
|
* @default null
|
|
161
161
|
*/
|
|
162
162
|
this.colorNode = null;
|
|
@@ -167,9 +167,9 @@ class NodeMaterial extends Material {
|
|
|
167
167
|
* and define the normals with a node instead.
|
|
168
168
|
*
|
|
169
169
|
* If you don't want to overwrite the normals but modify the existing values instead,
|
|
170
|
-
* use {@link
|
|
170
|
+
* use {@link materialNormal}.
|
|
171
171
|
*
|
|
172
|
-
* @type {Node<vec3
|
|
172
|
+
* @type {?Node<vec3>}
|
|
173
173
|
* @default null
|
|
174
174
|
*/
|
|
175
175
|
this.normalNode = null;
|
|
@@ -180,9 +180,9 @@ class NodeMaterial extends Material {
|
|
|
180
180
|
* and define the opacity with a node instead.
|
|
181
181
|
*
|
|
182
182
|
* If you don't want to overwrite the normals but modify the existing
|
|
183
|
-
* value instead, use {@link
|
|
183
|
+
* value instead, use {@link materialOpacity}.
|
|
184
184
|
*
|
|
185
|
-
* @type {Node<float
|
|
185
|
+
* @type {?Node<float>}
|
|
186
186
|
* @default null
|
|
187
187
|
*/
|
|
188
188
|
this.opacityNode = null;
|
|
@@ -203,7 +203,7 @@ class NodeMaterial extends Material {
|
|
|
203
203
|
*
|
|
204
204
|
* Backdrop computations are part of the lighting so only lit materials can use this property.
|
|
205
205
|
*
|
|
206
|
-
* @type {Node<vec3
|
|
206
|
+
* @type {?Node<vec3>}
|
|
207
207
|
* @default null
|
|
208
208
|
*/
|
|
209
209
|
this.backdropNode = null;
|
|
@@ -211,7 +211,7 @@ class NodeMaterial extends Material {
|
|
|
211
211
|
/**
|
|
212
212
|
* This node allows to modulate the influence of `backdropNode` to the outgoing light.
|
|
213
213
|
*
|
|
214
|
-
* @type {Node<float
|
|
214
|
+
* @type {?Node<float>}
|
|
215
215
|
* @default null
|
|
216
216
|
*/
|
|
217
217
|
this.backdropAlphaNode = null;
|
|
@@ -222,9 +222,9 @@ class NodeMaterial extends Material {
|
|
|
222
222
|
* alpha test with a node instead.
|
|
223
223
|
*
|
|
224
224
|
* If you don't want to overwrite the alpha test but modify the existing
|
|
225
|
-
* value instead, use {@link
|
|
225
|
+
* value instead, use {@link materialAlphaTest}.
|
|
226
226
|
*
|
|
227
|
-
* @type {Node<float
|
|
227
|
+
* @type {?Node<float>}
|
|
228
228
|
* @default null
|
|
229
229
|
*/
|
|
230
230
|
this.alphaTestNode = null;
|
|
@@ -235,13 +235,13 @@ class NodeMaterial extends Material {
|
|
|
235
235
|
* the default and define local vertex positions with nodes instead.
|
|
236
236
|
*
|
|
237
237
|
* If you don't want to overwrite the vertex positions but modify the existing
|
|
238
|
-
* values instead, use {@link
|
|
238
|
+
* values instead, use {@link positionLocal}.
|
|
239
239
|
*
|
|
240
240
|
*```js
|
|
241
241
|
* material.positionNode = positionLocal.add( displace );
|
|
242
242
|
* ```
|
|
243
243
|
*
|
|
244
|
-
* @type {Node<vec3
|
|
244
|
+
* @type {?Node<vec3>}
|
|
245
245
|
* @default null
|
|
246
246
|
*/
|
|
247
247
|
this.positionNode = null;
|
|
@@ -257,7 +257,7 @@ class NodeMaterial extends Material {
|
|
|
257
257
|
* simulation would be implemented as compute shaders and managed inside a `Fn` function. This function is
|
|
258
258
|
* eventually assigned to `geometryNode`.
|
|
259
259
|
*
|
|
260
|
-
* @type {Function}
|
|
260
|
+
* @type {?Function}
|
|
261
261
|
* @default null
|
|
262
262
|
*/
|
|
263
263
|
this.geometryNode = null;
|
|
@@ -265,17 +265,17 @@ class NodeMaterial extends Material {
|
|
|
265
265
|
/**
|
|
266
266
|
* Allows to overwrite depth values in the fragment shader.
|
|
267
267
|
*
|
|
268
|
-
* @type {Node<float
|
|
268
|
+
* @type {?Node<float>}
|
|
269
269
|
* @default null
|
|
270
270
|
*/
|
|
271
271
|
this.depthNode = null;
|
|
272
272
|
|
|
273
273
|
/**
|
|
274
274
|
* Allows to overwrite the position used for shadow map rendering which
|
|
275
|
-
* is by default {@link
|
|
275
|
+
* is by default {@link positionWorld}, the vertex position
|
|
276
276
|
* in world space.
|
|
277
277
|
*
|
|
278
|
-
* @type {Node<float
|
|
278
|
+
* @type {?Node<float>}
|
|
279
279
|
* @default null
|
|
280
280
|
*/
|
|
281
281
|
this.shadowPositionNode = null;
|
|
@@ -292,7 +292,7 @@ class NodeMaterial extends Material {
|
|
|
292
292
|
* return shadow.mix( color( 0xff0000 ), 1 ); // modify shadow color
|
|
293
293
|
* } );
|
|
294
294
|
*
|
|
295
|
-
* @type {
|
|
295
|
+
* @type {?(Function|FunctionNode<vec4>)}
|
|
296
296
|
* @default null
|
|
297
297
|
*/
|
|
298
298
|
this.receivedShadowNode = null;
|
|
@@ -316,7 +316,7 @@ class NodeMaterial extends Material {
|
|
|
316
316
|
* } )();
|
|
317
317
|
* ```
|
|
318
318
|
*
|
|
319
|
-
* @type {Node<vec4
|
|
319
|
+
* @type {?Node<vec4>}
|
|
320
320
|
* @default null
|
|
321
321
|
*/
|
|
322
322
|
this.castShadowNode = null;
|
|
@@ -326,7 +326,7 @@ class NodeMaterial extends Material {
|
|
|
326
326
|
*
|
|
327
327
|
* TODO: Explain the differences to `fragmentNode`.
|
|
328
328
|
*
|
|
329
|
-
* @type {Node<vec4
|
|
329
|
+
* @type {?Node<vec4>}
|
|
330
330
|
* @default null
|
|
331
331
|
*/
|
|
332
332
|
this.outputNode = null;
|
|
@@ -337,7 +337,7 @@ class NodeMaterial extends Material {
|
|
|
337
337
|
* can be useful for implementing selective FX features that should only affect
|
|
338
338
|
* specific objects.
|
|
339
339
|
*
|
|
340
|
-
* @type {MRTNode
|
|
340
|
+
* @type {?MRTNode}
|
|
341
341
|
* @default null
|
|
342
342
|
*/
|
|
343
343
|
this.mrtNode = null;
|
|
@@ -347,7 +347,7 @@ class NodeMaterial extends Material {
|
|
|
347
347
|
* the fragment shader. Assigning a node will replace the built-in material
|
|
348
348
|
* logic used in the fragment stage.
|
|
349
349
|
*
|
|
350
|
-
* @type {Node<vec4
|
|
350
|
+
* @type {?Node<vec4>}
|
|
351
351
|
* @default null
|
|
352
352
|
*/
|
|
353
353
|
this.fragmentNode = null;
|
|
@@ -357,7 +357,7 @@ class NodeMaterial extends Material {
|
|
|
357
357
|
* the vertex shader. Assigning a node will replace the built-in material logic
|
|
358
358
|
* used in the vertex stage.
|
|
359
359
|
*
|
|
360
|
-
* @type {Node<vec4
|
|
360
|
+
* @type {?Node<vec4>}
|
|
361
361
|
* @default null
|
|
362
362
|
*/
|
|
363
363
|
this.vertexNode = null;
|
|
@@ -368,7 +368,7 @@ class NodeMaterial extends Material {
|
|
|
368
368
|
* Allows to define a custom cache key that influence the material key computation
|
|
369
369
|
* for render objects.
|
|
370
370
|
*
|
|
371
|
-
* @return {
|
|
371
|
+
* @return {string} The custom cache key.
|
|
372
372
|
*/
|
|
373
373
|
customProgramCacheKey() {
|
|
374
374
|
|
|
@@ -476,7 +476,9 @@ class NodeMaterial extends Material {
|
|
|
476
476
|
|
|
477
477
|
//
|
|
478
478
|
|
|
479
|
-
|
|
479
|
+
const isCustomOutput = this.outputNode !== null;
|
|
480
|
+
|
|
481
|
+
if ( isCustomOutput ) resultNode = this.outputNode;
|
|
480
482
|
|
|
481
483
|
// MRT
|
|
482
484
|
|
|
@@ -487,6 +489,8 @@ class NodeMaterial extends Material {
|
|
|
487
489
|
|
|
488
490
|
if ( mrt !== null ) {
|
|
489
491
|
|
|
492
|
+
if ( isCustomOutput ) output.assign( resultNode );
|
|
493
|
+
|
|
490
494
|
resultNode = mrt;
|
|
491
495
|
|
|
492
496
|
if ( materialMRT !== null ) {
|
|
@@ -695,7 +699,7 @@ class NodeMaterial extends Material {
|
|
|
695
699
|
|
|
696
700
|
if ( object.isSkinnedMesh === true ) {
|
|
697
701
|
|
|
698
|
-
|
|
702
|
+
skinning( object ).append();
|
|
699
703
|
|
|
700
704
|
}
|
|
701
705
|
|
|
@@ -965,7 +969,7 @@ class NodeMaterial extends Material {
|
|
|
965
969
|
|
|
966
970
|
if ( lightsNode && lightsNode.getScope().hasLights ) {
|
|
967
971
|
|
|
968
|
-
const lightingModel = this.setupLightingModel( builder );
|
|
972
|
+
const lightingModel = this.setupLightingModel( builder ) || null;
|
|
969
973
|
|
|
970
974
|
outgoingLightNode = lightingContext( lightsNode, lightingModel, backdropNode, backdropAlphaNode );
|
|
971
975
|
|
|
@@ -990,27 +994,42 @@ class NodeMaterial extends Material {
|
|
|
990
994
|
}
|
|
991
995
|
|
|
992
996
|
/**
|
|
993
|
-
*
|
|
997
|
+
* Setup the fog.
|
|
994
998
|
*
|
|
995
999
|
* @param {NodeBuilder} builder - The current node builder.
|
|
996
1000
|
* @param {Node<vec4>} outputNode - The existing output node.
|
|
997
1001
|
* @return {Node<vec4>} The output node.
|
|
998
1002
|
*/
|
|
999
|
-
|
|
1003
|
+
setupFog( builder, outputNode ) {
|
|
1000
1004
|
|
|
1001
|
-
|
|
1005
|
+
const fogNode = builder.fogNode;
|
|
1002
1006
|
|
|
1003
|
-
if (
|
|
1007
|
+
if ( fogNode ) {
|
|
1004
1008
|
|
|
1005
|
-
|
|
1009
|
+
output.assign( outputNode );
|
|
1006
1010
|
|
|
1007
|
-
|
|
1011
|
+
outputNode = vec4( fogNode );
|
|
1008
1012
|
|
|
1009
|
-
|
|
1013
|
+
}
|
|
1010
1014
|
|
|
1011
|
-
|
|
1015
|
+
return outputNode;
|
|
1012
1016
|
|
|
1013
|
-
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
/**
|
|
1020
|
+
* Setups the output node.
|
|
1021
|
+
*
|
|
1022
|
+
* @param {NodeBuilder} builder - The current node builder.
|
|
1023
|
+
* @param {Node<vec4>} outputNode - The existing output node.
|
|
1024
|
+
* @return {Node<vec4>} The output node.
|
|
1025
|
+
*/
|
|
1026
|
+
setupOutput( builder, outputNode ) {
|
|
1027
|
+
|
|
1028
|
+
// FOG
|
|
1029
|
+
|
|
1030
|
+
if ( this.fog === true ) {
|
|
1031
|
+
|
|
1032
|
+
outputNode = this.setupFog( builder, outputNode );
|
|
1014
1033
|
|
|
1015
1034
|
}
|
|
1016
1035
|
|
|
@@ -1062,7 +1081,7 @@ class NodeMaterial extends Material {
|
|
|
1062
1081
|
/**
|
|
1063
1082
|
* Serializes this material to JSON.
|
|
1064
1083
|
*
|
|
1065
|
-
* @param {(Object|
|
|
1084
|
+
* @param {?(Object|string)} meta - The meta information for serialization.
|
|
1066
1085
|
* @return {Object} The serialized node.
|
|
1067
1086
|
*/
|
|
1068
1087
|
toJSON( meta ) {
|
|
@@ -11,9 +11,9 @@ import { PointsMaterial } from '../PointsMaterial.js';
|
|
|
11
11
|
const _defaultValues = /*@__PURE__*/ new PointsMaterial();
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Node material version of
|
|
14
|
+
* Node material version of {@link PointsMaterial}.
|
|
15
15
|
*
|
|
16
|
-
* @augments
|
|
16
|
+
* @augments SpriteNodeMaterial
|
|
17
17
|
*/
|
|
18
18
|
class PointsNodeMaterial extends SpriteNodeMaterial {
|
|
19
19
|
|
|
@@ -26,7 +26,7 @@ class PointsNodeMaterial extends SpriteNodeMaterial {
|
|
|
26
26
|
/**
|
|
27
27
|
* Constructs a new points node material.
|
|
28
28
|
*
|
|
29
|
-
* @param {Object
|
|
29
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
30
30
|
*/
|
|
31
31
|
constructor( parameters ) {
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ class PointsNodeMaterial extends SpriteNodeMaterial {
|
|
|
35
35
|
/**
|
|
36
36
|
* This node property provides an additional way to set the point size.
|
|
37
37
|
*
|
|
38
|
-
* @type {Node<vec2
|
|
38
|
+
* @type {?Node<vec2>}
|
|
39
39
|
* @default null
|
|
40
40
|
*/
|
|
41
41
|
this.sizeNode = null;
|
|
@@ -43,7 +43,7 @@ class PointsNodeMaterial extends SpriteNodeMaterial {
|
|
|
43
43
|
/**
|
|
44
44
|
* This flag can be used for type testing.
|
|
45
45
|
*
|
|
46
|
-
* @type {
|
|
46
|
+
* @type {boolean}
|
|
47
47
|
* @readonly
|
|
48
48
|
* @default true
|
|
49
49
|
*/
|
|
@@ -128,7 +128,7 @@ class PointsNodeMaterial extends SpriteNodeMaterial {
|
|
|
128
128
|
/**
|
|
129
129
|
* Whether alpha to coverage should be used or not.
|
|
130
130
|
*
|
|
131
|
-
* @type {
|
|
131
|
+
* @type {boolean}
|
|
132
132
|
* @default true
|
|
133
133
|
*/
|
|
134
134
|
get alphaToCoverage() {
|
|
@@ -6,7 +6,7 @@ import { ShadowMaterial } from '../ShadowMaterial.js';
|
|
|
6
6
|
const _defaultValues = /*@__PURE__*/ new ShadowMaterial();
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Node material version of
|
|
9
|
+
* Node material version of {@link ShadowMaterial}.
|
|
10
10
|
*
|
|
11
11
|
* @augments NodeMaterial
|
|
12
12
|
*/
|
|
@@ -21,7 +21,7 @@ class ShadowNodeMaterial extends NodeMaterial {
|
|
|
21
21
|
/**
|
|
22
22
|
* Constructs a new shadow node material.
|
|
23
23
|
*
|
|
24
|
-
* @param {Object
|
|
24
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
25
25
|
*/
|
|
26
26
|
constructor( parameters ) {
|
|
27
27
|
|
|
@@ -30,7 +30,7 @@ class ShadowNodeMaterial extends NodeMaterial {
|
|
|
30
30
|
/**
|
|
31
31
|
* This flag can be used for type testing.
|
|
32
32
|
*
|
|
33
|
-
* @type {
|
|
33
|
+
* @type {boolean}
|
|
34
34
|
* @readonly
|
|
35
35
|
* @default true
|
|
36
36
|
*/
|
|
@@ -40,11 +40,20 @@ class ShadowNodeMaterial extends NodeMaterial {
|
|
|
40
40
|
* Set to `true` because so it's possible to implement
|
|
41
41
|
* the shadow mask effect.
|
|
42
42
|
*
|
|
43
|
-
* @type {
|
|
43
|
+
* @type {boolean}
|
|
44
44
|
* @default true
|
|
45
45
|
*/
|
|
46
46
|
this.lights = true;
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Overwritten since shadow materials are transparent
|
|
50
|
+
* by default.
|
|
51
|
+
*
|
|
52
|
+
* @type {boolean}
|
|
53
|
+
* @default true
|
|
54
|
+
*/
|
|
55
|
+
this.transparent = true;
|
|
56
|
+
|
|
48
57
|
this.setDefaultValues( _defaultValues );
|
|
49
58
|
|
|
50
59
|
this.setValues( parameters );
|
|
@@ -12,7 +12,7 @@ import { reference } from '../../nodes/accessors/ReferenceBaseNode.js';
|
|
|
12
12
|
const _defaultValues = /*@__PURE__*/ new SpriteMaterial();
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Node material version of
|
|
15
|
+
* Node material version of {@link SpriteMaterial}.
|
|
16
16
|
*
|
|
17
17
|
* @augments NodeMaterial
|
|
18
18
|
*/
|
|
@@ -27,7 +27,7 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
27
27
|
/**
|
|
28
28
|
* Constructs a new sprite node material.
|
|
29
29
|
*
|
|
30
|
-
* @param {Object
|
|
30
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
31
31
|
*/
|
|
32
32
|
constructor( parameters ) {
|
|
33
33
|
|
|
@@ -36,7 +36,7 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
36
36
|
/**
|
|
37
37
|
* This flag can be used for type testing.
|
|
38
38
|
*
|
|
39
|
-
* @type {
|
|
39
|
+
* @type {boolean}
|
|
40
40
|
* @readonly
|
|
41
41
|
* @default true
|
|
42
42
|
*/
|
|
@@ -58,7 +58,7 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
58
58
|
* particleMaterial.positionNode = positionBuffer.toAttribute();
|
|
59
59
|
* ```
|
|
60
60
|
*
|
|
61
|
-
* @type {Node<vec2
|
|
61
|
+
* @type {?Node<vec2>}
|
|
62
62
|
* @default null
|
|
63
63
|
*/
|
|
64
64
|
this.positionNode = null;
|
|
@@ -69,9 +69,9 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
69
69
|
* the rotation with a node instead.
|
|
70
70
|
*
|
|
71
71
|
* If you don't want to overwrite the rotation but modify the existing
|
|
72
|
-
* value instead, use {@link
|
|
72
|
+
* value instead, use {@link materialRotation}.
|
|
73
73
|
*
|
|
74
|
-
* @type {Node<float
|
|
74
|
+
* @type {?Node<float>}
|
|
75
75
|
* @default null
|
|
76
76
|
*/
|
|
77
77
|
this.rotationNode = null;
|
|
@@ -81,11 +81,19 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
81
81
|
* `Object3D.scale`. The scale transformation based in `Object3D.scale`
|
|
82
82
|
* is multiplied with the scale value of this node in the vertex shader.
|
|
83
83
|
*
|
|
84
|
-
* @type {Node<vec2
|
|
84
|
+
* @type {?Node<vec2>}
|
|
85
85
|
* @default null
|
|
86
86
|
*/
|
|
87
87
|
this.scaleNode = null;
|
|
88
88
|
|
|
89
|
+
/**
|
|
90
|
+
* In Sprites, the transparent property is enabled by default.
|
|
91
|
+
*
|
|
92
|
+
* @type {boolean}
|
|
93
|
+
* @default true
|
|
94
|
+
*/
|
|
95
|
+
this.transparent = true;
|
|
96
|
+
|
|
89
97
|
this.setDefaultValues( _defaultValues );
|
|
90
98
|
|
|
91
99
|
this.setValues( parameters );
|
|
@@ -113,7 +121,7 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
113
121
|
|
|
114
122
|
if ( scaleNode !== null ) {
|
|
115
123
|
|
|
116
|
-
scale = scale.mul(
|
|
124
|
+
scale = scale.mul( vec2( scaleNode ) );
|
|
117
125
|
|
|
118
126
|
}
|
|
119
127
|
|
|
@@ -165,7 +173,7 @@ class SpriteNodeMaterial extends NodeMaterial {
|
|
|
165
173
|
/**
|
|
166
174
|
* Whether to use size attenuation or not.
|
|
167
175
|
*
|
|
168
|
-
* @type {
|
|
176
|
+
* @type {boolean}
|
|
169
177
|
* @default true
|
|
170
178
|
*/
|
|
171
179
|
get sizeAttenuation() {
|