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
|
@@ -12,7 +12,7 @@ import { MeshPhysicalMaterial } from '../MeshPhysicalMaterial.js';
|
|
|
12
12
|
const _defaultValues = /*@__PURE__*/ new MeshPhysicalMaterial();
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Node material version of
|
|
15
|
+
* Node material version of {@link MeshPhysicalMaterial}.
|
|
16
16
|
*
|
|
17
17
|
* @augments MeshStandardNodeMaterial
|
|
18
18
|
*/
|
|
@@ -27,7 +27,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
27
27
|
/**
|
|
28
28
|
* Constructs a new mesh physical 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 MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
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
|
*/
|
|
@@ -48,9 +48,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
48
48
|
* and define the clearcoat with a node instead.
|
|
49
49
|
*
|
|
50
50
|
* If you don't want to overwrite the clearcoat but modify the existing
|
|
51
|
-
* value instead, use {@link
|
|
51
|
+
* value instead, use {@link materialClearcoat}.
|
|
52
52
|
*
|
|
53
|
-
* @type {Node<float
|
|
53
|
+
* @type {?Node<float>}
|
|
54
54
|
* @default null
|
|
55
55
|
*/
|
|
56
56
|
this.clearcoatNode = null;
|
|
@@ -61,9 +61,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
61
61
|
* and define the clearcoat roughness with a node instead.
|
|
62
62
|
*
|
|
63
63
|
* If you don't want to overwrite the clearcoat roughness but modify the existing
|
|
64
|
-
* value instead, use {@link
|
|
64
|
+
* value instead, use {@link materialClearcoatRoughness}.
|
|
65
65
|
*
|
|
66
|
-
* @type {Node<float
|
|
66
|
+
* @type {?Node<float>}
|
|
67
67
|
* @default null
|
|
68
68
|
*/
|
|
69
69
|
this.clearcoatRoughnessNode = null;
|
|
@@ -74,9 +74,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
74
74
|
* and define the clearcoat normal with a node instead.
|
|
75
75
|
*
|
|
76
76
|
* If you don't want to overwrite the clearcoat normal but modify the existing
|
|
77
|
-
* value instead, use {@link
|
|
77
|
+
* value instead, use {@link materialClearcoatNormal}.
|
|
78
78
|
*
|
|
79
|
-
* @type {Node<vec3
|
|
79
|
+
* @type {?Node<vec3>}
|
|
80
80
|
* @default null
|
|
81
81
|
*/
|
|
82
82
|
this.clearcoatNormalNode = null;
|
|
@@ -87,9 +87,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
87
87
|
* and define the sheen with a node instead.
|
|
88
88
|
*
|
|
89
89
|
* If you don't want to overwrite the sheen but modify the existing
|
|
90
|
-
* value instead, use {@link
|
|
90
|
+
* value instead, use {@link materialSheen}.
|
|
91
91
|
*
|
|
92
|
-
* @type {Node<vec3
|
|
92
|
+
* @type {?Node<vec3>}
|
|
93
93
|
* @default null
|
|
94
94
|
*/
|
|
95
95
|
this.sheenNode = null;
|
|
@@ -100,9 +100,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
100
100
|
* and define the sheen roughness with a node instead.
|
|
101
101
|
*
|
|
102
102
|
* If you don't want to overwrite the sheen roughness but modify the existing
|
|
103
|
-
* value instead, use {@link
|
|
103
|
+
* value instead, use {@link materialSheenRoughness}.
|
|
104
104
|
*
|
|
105
|
-
* @type {Node<float
|
|
105
|
+
* @type {?Node<float>}
|
|
106
106
|
* @default null
|
|
107
107
|
*/
|
|
108
108
|
this.sheenRoughnessNode = null;
|
|
@@ -113,9 +113,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
113
113
|
* and define the iridescence with a node instead.
|
|
114
114
|
*
|
|
115
115
|
* If you don't want to overwrite the iridescence but modify the existing
|
|
116
|
-
* value instead, use {@link
|
|
116
|
+
* value instead, use {@link materialIridescence}.
|
|
117
117
|
*
|
|
118
|
-
* @type {Node<float
|
|
118
|
+
* @type {?Node<float>}
|
|
119
119
|
* @default null
|
|
120
120
|
*/
|
|
121
121
|
this.iridescenceNode = null;
|
|
@@ -126,9 +126,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
126
126
|
* and define the iridescence IOR with a node instead.
|
|
127
127
|
*
|
|
128
128
|
* If you don't want to overwrite the iridescence IOR but modify the existing
|
|
129
|
-
* value instead, use {@link
|
|
129
|
+
* value instead, use {@link materialIridescenceIOR}.
|
|
130
130
|
*
|
|
131
|
-
* @type {Node<float
|
|
131
|
+
* @type {?Node<float>}
|
|
132
132
|
* @default null
|
|
133
133
|
*/
|
|
134
134
|
this.iridescenceIORNode = null;
|
|
@@ -139,9 +139,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
139
139
|
* and define the iridescence thickness with a node instead.
|
|
140
140
|
*
|
|
141
141
|
* If you don't want to overwrite the iridescence thickness but modify the existing
|
|
142
|
-
* value instead, use {@link
|
|
142
|
+
* value instead, use {@link materialIridescenceThickness}.
|
|
143
143
|
*
|
|
144
|
-
* @type {Node<float
|
|
144
|
+
* @type {?Node<float>}
|
|
145
145
|
* @default null
|
|
146
146
|
*/
|
|
147
147
|
this.iridescenceThicknessNode = null;
|
|
@@ -152,9 +152,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
152
152
|
* and define the specular intensity with a node instead.
|
|
153
153
|
*
|
|
154
154
|
* If you don't want to overwrite the specular intensity but modify the existing
|
|
155
|
-
* value instead, use {@link
|
|
155
|
+
* value instead, use {@link materialSpecularIntensity}.
|
|
156
156
|
*
|
|
157
|
-
* @type {Node<float
|
|
157
|
+
* @type {?Node<float>}
|
|
158
158
|
* @default null
|
|
159
159
|
*/
|
|
160
160
|
this.specularIntensityNode = null;
|
|
@@ -165,9 +165,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
165
165
|
* and define the specular color with a node instead.
|
|
166
166
|
*
|
|
167
167
|
* If you don't want to overwrite the specular color but modify the existing
|
|
168
|
-
* value instead, use {@link
|
|
168
|
+
* value instead, use {@link materialSpecularColor}.
|
|
169
169
|
*
|
|
170
|
-
* @type {Node<vec3
|
|
170
|
+
* @type {?Node<vec3>}
|
|
171
171
|
* @default null
|
|
172
172
|
*/
|
|
173
173
|
this.specularColorNode = null;
|
|
@@ -178,9 +178,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
178
178
|
* and define the ior with a node instead.
|
|
179
179
|
*
|
|
180
180
|
* If you don't want to overwrite the ior but modify the existing
|
|
181
|
-
* value instead, use {@link
|
|
181
|
+
* value instead, use {@link materialIOR}.
|
|
182
182
|
*
|
|
183
|
-
* @type {Node<float
|
|
183
|
+
* @type {?Node<float>}
|
|
184
184
|
* @default null
|
|
185
185
|
*/
|
|
186
186
|
this.iorNode = null;
|
|
@@ -191,9 +191,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
191
191
|
* and define the transmission with a node instead.
|
|
192
192
|
*
|
|
193
193
|
* If you don't want to overwrite the transmission but modify the existing
|
|
194
|
-
* value instead, use {@link
|
|
194
|
+
* value instead, use {@link materialTransmission}.
|
|
195
195
|
*
|
|
196
|
-
* @type {Node<float
|
|
196
|
+
* @type {?Node<float>}
|
|
197
197
|
* @default null
|
|
198
198
|
*/
|
|
199
199
|
this.transmissionNode = null;
|
|
@@ -204,9 +204,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
204
204
|
* and define the thickness with a node instead.
|
|
205
205
|
*
|
|
206
206
|
* If you don't want to overwrite the thickness but modify the existing
|
|
207
|
-
* value instead, use {@link
|
|
207
|
+
* value instead, use {@link materialThickness}.
|
|
208
208
|
*
|
|
209
|
-
* @type {Node<float
|
|
209
|
+
* @type {?Node<float>}
|
|
210
210
|
* @default null
|
|
211
211
|
*/
|
|
212
212
|
this.thicknessNode = null;
|
|
@@ -217,9 +217,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
217
217
|
* and define the attenuation distance with a node instead.
|
|
218
218
|
*
|
|
219
219
|
* If you don't want to overwrite the attenuation distance but modify the existing
|
|
220
|
-
* value instead, use {@link
|
|
220
|
+
* value instead, use {@link materialAttenuationDistance}.
|
|
221
221
|
*
|
|
222
|
-
* @type {Node<float
|
|
222
|
+
* @type {?Node<float>}
|
|
223
223
|
* @default null
|
|
224
224
|
*/
|
|
225
225
|
this.attenuationDistanceNode = null;
|
|
@@ -230,9 +230,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
230
230
|
* and define the attenuation color with a node instead.
|
|
231
231
|
*
|
|
232
232
|
* If you don't want to overwrite the attenuation color but modify the existing
|
|
233
|
-
* value instead, use {@link
|
|
233
|
+
* value instead, use {@link materialAttenuationColor}.
|
|
234
234
|
*
|
|
235
|
-
* @type {Node<vec3
|
|
235
|
+
* @type {?Node<vec3>}
|
|
236
236
|
* @default null
|
|
237
237
|
*/
|
|
238
238
|
this.attenuationColorNode = null;
|
|
@@ -243,9 +243,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
243
243
|
* and define the dispersion with a node instead.
|
|
244
244
|
*
|
|
245
245
|
* If you don't want to overwrite the dispersion but modify the existing
|
|
246
|
-
* value instead, use {@link
|
|
246
|
+
* value instead, use {@link materialDispersion}.
|
|
247
247
|
*
|
|
248
|
-
* @type {Node<float
|
|
248
|
+
* @type {?Node<float>}
|
|
249
249
|
* @default null
|
|
250
250
|
*/
|
|
251
251
|
this.dispersionNode = null;
|
|
@@ -256,9 +256,9 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
256
256
|
* and define the anisotropy with a node instead.
|
|
257
257
|
*
|
|
258
258
|
* If you don't want to overwrite the anisotropy but modify the existing
|
|
259
|
-
* value instead, use {@link
|
|
259
|
+
* value instead, use {@link materialAnisotropy}.
|
|
260
260
|
*
|
|
261
|
-
* @type {Node<float
|
|
261
|
+
* @type {?Node<float>}
|
|
262
262
|
* @default null
|
|
263
263
|
*/
|
|
264
264
|
this.anisotropyNode = null;
|
|
@@ -272,7 +272,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
272
272
|
/**
|
|
273
273
|
* Whether the lighting model should use clearcoat or not.
|
|
274
274
|
*
|
|
275
|
-
* @type {
|
|
275
|
+
* @type {boolean}
|
|
276
276
|
* @default true
|
|
277
277
|
*/
|
|
278
278
|
get useClearcoat() {
|
|
@@ -284,7 +284,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
284
284
|
/**
|
|
285
285
|
* Whether the lighting model should use iridescence or not.
|
|
286
286
|
*
|
|
287
|
-
* @type {
|
|
287
|
+
* @type {boolean}
|
|
288
288
|
* @default true
|
|
289
289
|
*/
|
|
290
290
|
get useIridescence() {
|
|
@@ -296,7 +296,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
296
296
|
/**
|
|
297
297
|
* Whether the lighting model should use sheen or not.
|
|
298
298
|
*
|
|
299
|
-
* @type {
|
|
299
|
+
* @type {boolean}
|
|
300
300
|
* @default true
|
|
301
301
|
*/
|
|
302
302
|
get useSheen() {
|
|
@@ -308,7 +308,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
308
308
|
/**
|
|
309
309
|
* Whether the lighting model should use anisotropy or not.
|
|
310
310
|
*
|
|
311
|
-
* @type {
|
|
311
|
+
* @type {boolean}
|
|
312
312
|
* @default true
|
|
313
313
|
*/
|
|
314
314
|
get useAnisotropy() {
|
|
@@ -320,7 +320,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
320
320
|
/**
|
|
321
321
|
* Whether the lighting model should use transmission or not.
|
|
322
322
|
*
|
|
323
|
-
* @type {
|
|
323
|
+
* @type {boolean}
|
|
324
324
|
* @default true
|
|
325
325
|
*/
|
|
326
326
|
get useTransmission() {
|
|
@@ -332,7 +332,7 @@ class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
|
|
|
332
332
|
/**
|
|
333
333
|
* Whether the lighting model should use dispersion or not.
|
|
334
334
|
*
|
|
335
|
-
* @type {
|
|
335
|
+
* @type {boolean}
|
|
336
336
|
* @default true
|
|
337
337
|
*/
|
|
338
338
|
get useDispersion() {
|
|
@@ -4,8 +4,6 @@ import { transformedNormalView } from '../../nodes/accessors/Normal.js';
|
|
|
4
4
|
import { positionViewDirection } from '../../nodes/accessors/Position.js';
|
|
5
5
|
import { float, vec3 } from '../../nodes/tsl/TSLBase.js';
|
|
6
6
|
|
|
7
|
-
/** @module MeshSSSNodeMaterial **/
|
|
8
|
-
|
|
9
7
|
/**
|
|
10
8
|
* Represents the lighting model for {@link MeshSSSNodeMaterial}.
|
|
11
9
|
*
|
|
@@ -16,13 +14,13 @@ class SSSLightingModel extends PhysicalLightingModel {
|
|
|
16
14
|
/**
|
|
17
15
|
* Constructs a new physical lighting model.
|
|
18
16
|
*
|
|
19
|
-
* @param {
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {
|
|
22
|
-
* @param {
|
|
23
|
-
* @param {
|
|
24
|
-
* @param {
|
|
25
|
-
* @param {
|
|
17
|
+
* @param {boolean} [clearcoat=false] - Whether clearcoat is supported or not.
|
|
18
|
+
* @param {boolean} [sheen=false] - Whether sheen is supported or not.
|
|
19
|
+
* @param {boolean} [iridescence=false] - Whether iridescence is supported or not.
|
|
20
|
+
* @param {boolean} [anisotropy=false] - Whether anisotropy is supported or not.
|
|
21
|
+
* @param {boolean} [transmission=false] - Whether transmission is supported or not.
|
|
22
|
+
* @param {boolean} [dispersion=false] - Whether dispersion is supported or not.
|
|
23
|
+
* @param {boolean} [sss=false] - Whether SSS is supported or not.
|
|
26
24
|
*/
|
|
27
25
|
constructor( clearcoat = false, sheen = false, iridescence = false, anisotropy = false, transmission = false, dispersion = false, sss = false ) {
|
|
28
26
|
|
|
@@ -31,7 +29,7 @@ class SSSLightingModel extends PhysicalLightingModel {
|
|
|
31
29
|
/**
|
|
32
30
|
* Whether the lighting model should use SSS or not.
|
|
33
31
|
*
|
|
34
|
-
* @type {
|
|
32
|
+
* @type {boolean}
|
|
35
33
|
* @default false
|
|
36
34
|
*/
|
|
37
35
|
this.useSSS = sss;
|
|
@@ -44,10 +42,9 @@ class SSSLightingModel extends PhysicalLightingModel {
|
|
|
44
42
|
* Reference: [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look]{@link https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/}
|
|
45
43
|
*
|
|
46
44
|
* @param {Object} input - The input data.
|
|
47
|
-
* @param {StackNode} stack - The current stack.
|
|
48
45
|
* @param {NodeBuilder} builder - The current node builder.
|
|
49
46
|
*/
|
|
50
|
-
direct( { lightDirection, lightColor, reflectedLight },
|
|
47
|
+
direct( { lightDirection, lightColor, reflectedLight }, builder ) {
|
|
51
48
|
|
|
52
49
|
if ( this.useSSS === true ) {
|
|
53
50
|
|
|
@@ -63,7 +60,7 @@ class SSSLightingModel extends PhysicalLightingModel {
|
|
|
63
60
|
|
|
64
61
|
}
|
|
65
62
|
|
|
66
|
-
super.direct( { lightDirection, lightColor, reflectedLight },
|
|
63
|
+
super.direct( { lightDirection, lightColor, reflectedLight }, builder );
|
|
67
64
|
|
|
68
65
|
}
|
|
69
66
|
|
|
@@ -86,7 +83,7 @@ class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
|
|
|
86
83
|
/**
|
|
87
84
|
* Constructs a new mesh SSS node material.
|
|
88
85
|
*
|
|
89
|
-
* @param {Object
|
|
86
|
+
* @param {Object} [parameters] - The configuration parameter.
|
|
90
87
|
*/
|
|
91
88
|
constructor( parameters ) {
|
|
92
89
|
|
|
@@ -95,7 +92,7 @@ class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
|
|
|
95
92
|
/**
|
|
96
93
|
* Represents the thickness color.
|
|
97
94
|
*
|
|
98
|
-
* @type {Node<vec3
|
|
95
|
+
* @type {?Node<vec3>}
|
|
99
96
|
* @default null
|
|
100
97
|
*/
|
|
101
98
|
this.thicknessColorNode = null;
|
|
@@ -103,35 +100,35 @@ class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
|
|
|
103
100
|
/**
|
|
104
101
|
* Represents the distortion factor.
|
|
105
102
|
*
|
|
106
|
-
* @type {Node<float
|
|
103
|
+
* @type {?Node<float>}
|
|
107
104
|
*/
|
|
108
105
|
this.thicknessDistortionNode = float( 0.1 );
|
|
109
106
|
|
|
110
107
|
/**
|
|
111
108
|
* Represents the thickness ambient factor.
|
|
112
109
|
*
|
|
113
|
-
* @type {Node<float
|
|
110
|
+
* @type {?Node<float>}
|
|
114
111
|
*/
|
|
115
112
|
this.thicknessAmbientNode = float( 0.0 );
|
|
116
113
|
|
|
117
114
|
/**
|
|
118
115
|
* Represents the thickness attenuation.
|
|
119
116
|
*
|
|
120
|
-
* @type {Node<float
|
|
117
|
+
* @type {?Node<float>}
|
|
121
118
|
*/
|
|
122
119
|
this.thicknessAttenuationNode = float( .1 );
|
|
123
120
|
|
|
124
121
|
/**
|
|
125
122
|
* Represents the thickness power.
|
|
126
123
|
*
|
|
127
|
-
* @type {Node<float
|
|
124
|
+
* @type {?Node<float>}
|
|
128
125
|
*/
|
|
129
126
|
this.thicknessPowerNode = float( 2.0 );
|
|
130
127
|
|
|
131
128
|
/**
|
|
132
129
|
* Represents the thickness scale.
|
|
133
130
|
*
|
|
134
|
-
* @type {Node<float
|
|
131
|
+
* @type {?Node<float>}
|
|
135
132
|
*/
|
|
136
133
|
this.thicknessScaleNode = float( 10.0 );
|
|
137
134
|
|
|
@@ -140,7 +137,7 @@ class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
|
|
|
140
137
|
/**
|
|
141
138
|
* Whether the lighting model should use SSS or not.
|
|
142
139
|
*
|
|
143
|
-
* @type {
|
|
140
|
+
* @type {boolean}
|
|
144
141
|
* @default true
|
|
145
142
|
*/
|
|
146
143
|
get useSSS() {
|
|
@@ -12,7 +12,7 @@ import { MeshStandardMaterial } from '../MeshStandardMaterial.js';
|
|
|
12
12
|
const _defaultValues = /*@__PURE__*/ new MeshStandardMaterial();
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Node material version of
|
|
15
|
+
* Node material version of {@link MeshStandardMaterial}.
|
|
16
16
|
*
|
|
17
17
|
* @augments NodeMaterial
|
|
18
18
|
*/
|
|
@@ -27,7 +27,7 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
27
27
|
/**
|
|
28
28
|
* Constructs a new mesh standard 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 MeshStandardNodeMaterial 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
|
*/
|
|
@@ -45,7 +45,7 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
45
45
|
/**
|
|
46
46
|
* Set to `true` because standard materials react on lights.
|
|
47
47
|
*
|
|
48
|
-
* @type {
|
|
48
|
+
* @type {boolean}
|
|
49
49
|
* @default true
|
|
50
50
|
*/
|
|
51
51
|
this.lights = true;
|
|
@@ -56,9 +56,9 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
56
56
|
* overwrite the default and define the emissive color with a node instead.
|
|
57
57
|
*
|
|
58
58
|
* If you don't want to overwrite the emissive color but modify the existing
|
|
59
|
-
* value instead, use {@link
|
|
59
|
+
* value instead, use {@link materialEmissive}.
|
|
60
60
|
*
|
|
61
|
-
* @type {Node<vec3
|
|
61
|
+
* @type {?Node<vec3>}
|
|
62
62
|
* @default null
|
|
63
63
|
*/
|
|
64
64
|
this.emissiveNode = null;
|
|
@@ -69,9 +69,9 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
69
69
|
* overwrite the default and define the metalness with a node instead.
|
|
70
70
|
*
|
|
71
71
|
* If you don't want to overwrite the metalness but modify the existing
|
|
72
|
-
* value instead, use {@link
|
|
72
|
+
* value instead, use {@link materialMetalness}.
|
|
73
73
|
*
|
|
74
|
-
* @type {Node<float
|
|
74
|
+
* @type {?Node<float>}
|
|
75
75
|
* @default null
|
|
76
76
|
*/
|
|
77
77
|
this.metalnessNode = null;
|
|
@@ -82,9 +82,9 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
82
82
|
* overwrite the default and define the roughness with a node instead.
|
|
83
83
|
*
|
|
84
84
|
* If you don't want to overwrite the roughness but modify the existing
|
|
85
|
-
* value instead, use {@link
|
|
85
|
+
* value instead, use {@link materialRoughness}.
|
|
86
86
|
*
|
|
87
|
-
* @type {Node<float
|
|
87
|
+
* @type {?Node<float>}
|
|
88
88
|
* @default null
|
|
89
89
|
*/
|
|
90
90
|
this.roughnessNode = null;
|
|
@@ -101,7 +101,7 @@ class MeshStandardNodeMaterial extends NodeMaterial {
|
|
|
101
101
|
* method honors `Scene.environment`.
|
|
102
102
|
*
|
|
103
103
|
* @param {NodeBuilder} builder - The current node builder.
|
|
104
|
-
* @return {EnvironmentNode<vec3
|
|
104
|
+
* @return {?EnvironmentNode<vec3>} The environment node.
|
|
105
105
|
*/
|
|
106
106
|
setupEnvironment( builder ) {
|
|
107
107
|
|
|
@@ -6,7 +6,7 @@ import { MeshToonMaterial } from '../MeshToonMaterial.js';
|
|
|
6
6
|
const _defaultValues = /*@__PURE__*/ new MeshToonMaterial();
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Node material version of
|
|
9
|
+
* Node material version of {@link MeshToonMaterial}.
|
|
10
10
|
*
|
|
11
11
|
* @augments NodeMaterial
|
|
12
12
|
*/
|
|
@@ -21,7 +21,7 @@ class MeshToonNodeMaterial extends NodeMaterial {
|
|
|
21
21
|
/**
|
|
22
22
|
* Constructs a new mesh toon 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 MeshToonNodeMaterial 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
|
*/
|
|
@@ -39,7 +39,7 @@ class MeshToonNodeMaterial extends NodeMaterial {
|
|
|
39
39
|
/**
|
|
40
40
|
* Set to `true` because toon materials react on lights.
|
|
41
41
|
*
|
|
42
|
-
* @type {
|
|
42
|
+
* @type {boolean}
|
|
43
43
|
* @default true
|
|
44
44
|
*/
|
|
45
45
|
this.lights = true;
|