super-three 0.173.5 → 0.176.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +21993 -1359
- package/build/three.core.js +21129 -1188
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +835 -142
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +19493 -17617
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +19477 -17617
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +144 -42
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +194 -71
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +74 -30
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +51 -5
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +36 -1
- package/examples/jsm/loaders/DDSLoader.js +25 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +71 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +222 -9
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +87 -19
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +56 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +90 -70
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +105 -13
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +109 -73
- package/examples/jsm/misc/VolumeSlice.js +91 -48
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +75 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +134 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +268 -134
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/AST.js +10 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
- package/examples/jsm/transpiler/TSLEncoder.js +83 -15
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
- package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
- package/examples/jsm/tsl/display/BleachBypass.js +1 -2
- package/examples/jsm/tsl/display/BloomNode.js +15 -16
- package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
- package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
- package/examples/jsm/tsl/display/FXAANode.js +2 -3
- package/examples/jsm/tsl/display/FilmNode.js +9 -8
- package/examples/jsm/tsl/display/GTAONode.js +11 -12
- package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
- package/examples/jsm/tsl/display/LensflareNode.js +15 -16
- package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
- package/examples/jsm/tsl/display/MotionBlur.js +1 -2
- package/examples/jsm/tsl/display/OutlineNode.js +7 -8
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
- package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
- package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
- package/examples/jsm/tsl/display/SMAANode.js +13 -7
- package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
- package/examples/jsm/tsl/display/SSRNode.js +6 -7
- package/examples/jsm/tsl/display/Sepia.js +1 -2
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
- package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
- package/examples/jsm/tsl/display/TransitionNode.js +4 -5
- package/examples/jsm/tsl/display/hashBlur.js +1 -2
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
- package/examples/jsm/tsl/math/Bayer.js +31 -0
- package/examples/jsm/tsl/utils/Raymarching.js +67 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +3 -4
- package/src/Three.TSL.js +7 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +169 -19
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +339 -0
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +28 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +163 -40
- package/src/cameras/StereoCamera.js +46 -0
- package/src/constants.js +1429 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/EventDispatcher.js +44 -2
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +593 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +170 -11
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +88 -1
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +13 -780
- package/src/extras/ImageUtils.js +20 -2
- package/src/extras/PMREMGenerator.js +41 -25
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +95 -15
- package/src/extras/core/Curve.js +150 -50
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +63 -0
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +39 -0
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +28 -0
- package/src/geometries/ExtrudeGeometry.js +112 -28
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +40 -0
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +45 -5
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +22 -0
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +130 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +53 -0
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +13 -9
- package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
- package/src/loaders/nodes/NodeObjectLoader.js +12 -12
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +481 -4
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +14 -14
- package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
- package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
- package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
- package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
- package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
- package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
- package/src/materials/nodes/NodeMaterial.js +66 -47
- package/src/materials/nodes/PointsNodeMaterial.js +6 -6
- package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
- package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
- package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
- package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +94 -0
- package/src/math/MathUtils.js +405 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +262 -6
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +70 -8
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +388 -2
- package/src/math/Vector3.js +541 -4
- package/src/math/Vector4.js +393 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/AccessorsUtils.js +4 -2
- package/src/nodes/accessors/Arrays.js +6 -6
- package/src/nodes/accessors/BatchNode.js +10 -11
- package/src/nodes/accessors/Bitangent.js +6 -2
- package/src/nodes/accessors/BufferAttributeNode.js +33 -31
- package/src/nodes/accessors/BufferNode.js +12 -13
- package/src/nodes/accessors/BuiltinNode.js +7 -8
- package/src/nodes/accessors/Camera.js +9 -2
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +17 -19
- package/src/nodes/accessors/InstanceNode.js +10 -11
- package/src/nodes/accessors/InstancedMeshNode.js +3 -4
- package/src/nodes/accessors/Lights.js +12 -15
- package/src/nodes/accessors/MaterialNode.js +45 -9
- package/src/nodes/accessors/MaterialProperties.js +51 -2
- package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
- package/src/nodes/accessors/ModelNode.js +20 -3
- package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
- package/src/nodes/accessors/MorphNode.js +29 -26
- package/src/nodes/accessors/Normal.js +11 -3
- package/src/nodes/accessors/Object3DNode.js +51 -16
- package/src/nodes/accessors/PointUVNode.js +2 -3
- package/src/nodes/accessors/Position.js +8 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
- package/src/nodes/accessors/ReferenceNode.js +31 -31
- package/src/nodes/accessors/ReflectVector.js +4 -2
- package/src/nodes/accessors/RendererReferenceNode.js +9 -10
- package/src/nodes/accessors/SceneNode.js +5 -4
- package/src/nodes/accessors/SkinningNode.js +53 -44
- package/src/nodes/accessors/StorageBufferNode.js +24 -24
- package/src/nodes/accessors/StorageTextureNode.js +17 -17
- package/src/nodes/accessors/Tangent.js +6 -2
- package/src/nodes/accessors/Texture3DNode.js +11 -12
- package/src/nodes/accessors/TextureBicubic.js +2 -3
- package/src/nodes/accessors/TextureNode.js +68 -47
- package/src/nodes/accessors/TextureSizeNode.js +5 -6
- package/src/nodes/accessors/UV.js +2 -3
- package/src/nodes/accessors/UniformArrayNode.js +24 -24
- package/src/nodes/accessors/UserDataNode.js +11 -12
- package/src/nodes/accessors/VelocityNode.js +4 -5
- package/src/nodes/accessors/VertexColorNode.js +7 -8
- package/src/nodes/code/CodeNode.js +15 -13
- package/src/nodes/code/ExpressionNode.js +8 -9
- package/src/nodes/code/FunctionCallNode.js +29 -9
- package/src/nodes/code/FunctionNode.js +1 -1
- package/src/nodes/code/ScriptableNode.js +27 -28
- package/src/nodes/code/ScriptableValueNode.js +11 -12
- package/src/nodes/core/ArrayNode.js +29 -12
- package/src/nodes/core/AssignNode.js +4 -5
- package/src/nodes/core/AttributeNode.js +8 -9
- package/src/nodes/core/BypassNode.js +3 -4
- package/src/nodes/core/CacheNode.js +5 -6
- package/src/nodes/core/ConstNode.js +4 -4
- package/src/nodes/core/ContextNode.js +9 -9
- package/src/nodes/core/IndexNode.js +8 -4
- package/src/nodes/core/InputNode.js +7 -7
- package/src/nodes/core/LightingModel.js +17 -17
- package/src/nodes/core/MRTNode.js +9 -10
- package/src/nodes/core/Node.js +49 -37
- package/src/nodes/core/NodeAttribute.js +7 -7
- package/src/nodes/core/NodeBuilder.js +248 -175
- package/src/nodes/core/NodeCache.js +4 -4
- package/src/nodes/core/NodeCode.js +6 -6
- package/src/nodes/core/NodeFrame.js +10 -10
- package/src/nodes/core/NodeFunction.js +8 -8
- package/src/nodes/core/NodeFunctionInput.js +8 -8
- package/src/nodes/core/NodeParser.js +1 -1
- package/src/nodes/core/NodeUniform.js +7 -7
- package/src/nodes/core/NodeUtils.js +22 -24
- package/src/nodes/core/NodeVar.js +9 -9
- package/src/nodes/core/NodeVarying.js +4 -4
- package/src/nodes/core/OutputStructNode.js +2 -3
- package/src/nodes/core/ParameterNode.js +6 -7
- package/src/nodes/core/PropertyNode.js +41 -13
- package/src/nodes/core/StackNode.js +11 -12
- package/src/nodes/core/StructNode.js +2 -3
- package/src/nodes/core/StructTypeNode.js +10 -6
- package/src/nodes/core/TempNode.js +3 -3
- package/src/nodes/core/UniformGroupNode.js +15 -12
- package/src/nodes/core/UniformNode.js +9 -10
- package/src/nodes/core/VarNode.js +14 -18
- package/src/nodes/core/VaryingNode.js +10 -10
- package/src/nodes/core/constants.js +0 -2
- package/src/nodes/display/BlendModes.js +21 -14
- package/src/nodes/display/BumpMapNode.js +5 -6
- package/src/nodes/display/ColorAdjustment.js +13 -9
- package/src/nodes/display/ColorSpaceFunctions.js +4 -4
- package/src/nodes/display/ColorSpaceNode.js +15 -12
- package/src/nodes/display/FrontFacingNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +5 -6
- package/src/nodes/display/PassNode.js +122 -35
- package/src/nodes/display/PosterizeNode.js +2 -3
- package/src/nodes/display/RenderOutputNode.js +8 -9
- package/src/nodes/display/ScreenNode.js +16 -7
- package/src/nodes/display/ToneMappingFunctions.js +12 -8
- package/src/nodes/display/ToneMappingNode.js +8 -8
- package/src/nodes/display/ToonOutlinePassNode.js +3 -4
- package/src/nodes/display/ViewportDepthNode.js +15 -7
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
- package/src/nodes/display/ViewportTextureNode.js +16 -16
- package/src/nodes/fog/Fog.js +5 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BasicLightingModel.js +5 -8
- package/src/nodes/functions/PhongLightingModel.js +6 -8
- package/src/nodes/functions/PhysicalLightingModel.js +40 -42
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/ToonLightingModel.js +5 -6
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
- package/src/nodes/geometry/RangeNode.js +4 -5
- package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
- package/src/nodes/gpgpu/BarrierNode.js +6 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
- package/src/nodes/gpgpu/ComputeNode.js +43 -16
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +50 -9
- package/src/nodes/lighting/BasicLightMapNode.js +2 -2
- package/src/nodes/lighting/DirectionalLightNode.js +3 -12
- package/src/nodes/lighting/EnvironmentNode.js +5 -8
- package/src/nodes/lighting/HemisphereLightNode.js +1 -1
- package/src/nodes/lighting/LightProbeNode.js +1 -1
- package/src/nodes/lighting/LightUtils.js +1 -5
- package/src/nodes/lighting/LightingContextNode.js +10 -10
- package/src/nodes/lighting/LightingNode.js +1 -1
- package/src/nodes/lighting/LightsNode.js +68 -25
- package/src/nodes/lighting/PointLightNode.js +12 -27
- package/src/nodes/lighting/PointShadowNode.js +5 -6
- package/src/nodes/lighting/RectAreaLightNode.js +5 -10
- package/src/nodes/lighting/ShadowBaseNode.js +8 -9
- package/src/nodes/lighting/ShadowNode.js +28 -15
- package/src/nodes/lighting/SpotLightNode.js +8 -19
- package/src/nodes/math/ConditionalNode.js +26 -9
- package/src/nodes/math/Hash.js +2 -3
- package/src/nodes/math/MathNode.js +217 -150
- package/src/nodes/math/MathUtils.js +8 -6
- package/src/nodes/math/OperatorNode.js +198 -89
- package/src/nodes/math/TriNoise3D.js +2 -3
- package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
- package/src/nodes/parsers/GLSLNodeParser.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +61 -37
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +2 -3
- package/src/nodes/shapes/Shapes.js +2 -3
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +117 -19
- package/src/nodes/utils/ArrayElementNode.js +5 -3
- package/src/nodes/utils/ConvertNode.js +3 -3
- package/src/nodes/utils/CubeMapNode.js +7 -8
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/Discard.js +5 -5
- package/src/nodes/utils/EquirectUVNode.js +3 -4
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
- package/src/nodes/utils/JoinNode.js +29 -4
- package/src/nodes/utils/LoopNode.js +67 -35
- package/src/nodes/utils/MatcapUVNode.js +1 -2
- package/src/nodes/utils/MaxMipLevelNode.js +4 -5
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +8 -6
- package/src/nodes/utils/Packing.js +4 -4
- package/src/nodes/utils/PostProcessingUtils.js +6 -5
- package/src/nodes/utils/RTTNode.js +19 -19
- package/src/nodes/utils/ReflectorNode.js +35 -25
- package/src/nodes/utils/RemapNode.js +9 -9
- package/src/nodes/utils/RotateNode.js +3 -4
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +5 -5
- package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
- package/src/nodes/utils/SpriteUtils.js +5 -6
- package/src/nodes/utils/StorageArrayElementNode.js +3 -4
- package/src/nodes/utils/Timer.js +9 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
- package/src/nodes/utils/UVUtils.js +4 -4
- package/src/nodes/utils/ViewportUtils.js +3 -4
- package/src/objects/BatchedMesh.js +319 -32
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +4 -4
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +82 -0
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +75 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +105 -0
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +622 -83
- package/src/renderers/common/Animation.js +6 -6
- package/src/renderers/common/Attributes.js +3 -3
- package/src/renderers/common/Backend.js +40 -31
- package/src/renderers/common/Background.js +4 -3
- package/src/renderers/common/BindGroup.js +5 -5
- package/src/renderers/common/Binding.js +4 -4
- package/src/renderers/common/Bindings.js +10 -0
- package/src/renderers/common/Buffer.js +5 -5
- package/src/renderers/common/BufferUtils.js +7 -9
- package/src/renderers/common/BundleGroup.js +6 -6
- package/src/renderers/common/ChainMap.js +3 -3
- package/src/renderers/common/ClippingContext.js +8 -8
- package/src/renderers/common/Color4.js +8 -8
- package/src/renderers/common/ComputePipeline.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +2 -2
- package/src/renderers/common/Geometries.js +6 -6
- package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
- package/src/renderers/common/Info.js +17 -17
- package/src/renderers/common/Pipeline.js +3 -3
- package/src/renderers/common/Pipelines.js +12 -12
- package/src/renderers/common/PostProcessing.js +13 -1
- package/src/renderers/common/ProgrammableStage.js +11 -11
- package/src/renderers/common/QuadMesh.js +5 -3
- package/src/renderers/common/RenderContext.js +24 -24
- package/src/renderers/common/RenderContexts.js +4 -4
- package/src/renderers/common/RenderList.js +16 -16
- package/src/renderers/common/RenderObject.js +27 -27
- package/src/renderers/common/RenderObjects.js +4 -4
- package/src/renderers/common/RenderPipeline.js +1 -1
- package/src/renderers/common/Renderer.js +272 -200
- package/src/renderers/common/RendererUtils.js +0 -2
- package/src/renderers/common/SampledTexture.js +20 -20
- package/src/renderers/common/Sampler.js +5 -5
- package/src/renderers/common/StorageBuffer.js +2 -2
- package/src/renderers/common/StorageBufferAttribute.js +4 -4
- package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
- package/src/renderers/common/StorageTexture.js +6 -6
- package/src/renderers/common/Textures.js +6 -6
- package/src/renderers/common/TimestampQueryPool.js +66 -7
- package/src/renderers/common/Uniform.js +26 -26
- package/src/renderers/common/UniformBuffer.js +2 -2
- package/src/renderers/common/UniformsGroup.js +18 -18
- package/src/renderers/common/XRManager.js +369 -54
- package/src/renderers/common/XRRenderTarget.js +5 -5
- package/src/renderers/common/extras/PMREMGenerator.js +62 -37
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
- package/src/renderers/common/nodes/NodeLibrary.js +13 -13
- package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
- package/src/renderers/common/nodes/NodeSampler.js +1 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniform.js +9 -9
- package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
- package/src/renderers/common/nodes/Nodes.js +13 -13
- package/src/renderers/shaders/UniformsLib.js +1 -4
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLState.js +19 -19
- package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
- package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
- package/src/renderers/webgpu/WebGPUBackend.js +200 -119
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
- package/src/renderers/webgpu/WebGPURenderer.js +19 -13
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +185 -9
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +61 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +362 -3
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -12,8 +12,8 @@ class XRRenderTarget extends RenderTarget {
|
|
|
12
12
|
/**
|
|
13
13
|
* Constructs a new XR render target.
|
|
14
14
|
*
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {
|
|
15
|
+
* @param {number} [width=1] - The width of the render target.
|
|
16
|
+
* @param {number} [height=1] - The height of the render target.
|
|
17
17
|
* @param {Object} [options={}] - The configuration options.
|
|
18
18
|
*/
|
|
19
19
|
constructor( width = 1, height = 1, options = {} ) {
|
|
@@ -23,7 +23,7 @@ class XRRenderTarget extends RenderTarget {
|
|
|
23
23
|
/**
|
|
24
24
|
* This flag can be used for type testing.
|
|
25
25
|
*
|
|
26
|
-
* @type {
|
|
26
|
+
* @type {boolean}
|
|
27
27
|
* @readonly
|
|
28
28
|
* @default true
|
|
29
29
|
*/
|
|
@@ -34,7 +34,7 @@ class XRRenderTarget extends RenderTarget {
|
|
|
34
34
|
* are defined by external textures. This flag is
|
|
35
35
|
* set to `true` when using the WebXR Layers API.
|
|
36
36
|
*
|
|
37
|
-
* @type {
|
|
37
|
+
* @type {boolean}
|
|
38
38
|
* @default false
|
|
39
39
|
*/
|
|
40
40
|
this.hasExternalTextures = false;
|
|
@@ -50,7 +50,7 @@ class XRRenderTarget extends RenderTarget {
|
|
|
50
50
|
*
|
|
51
51
|
* Reference: {@link https://www.w3.org/TR/webxrlayers-1/#dom-xrprojectionlayer-ignoredepthvalues}.
|
|
52
52
|
*
|
|
53
|
-
* @type {
|
|
53
|
+
* @type {boolean}
|
|
54
54
|
* @default true
|
|
55
55
|
*/
|
|
56
56
|
this.autoAllocateDepthBuffer = true;
|
|
@@ -69,6 +69,8 @@ const _axisDirections = [
|
|
|
69
69
|
/*@__PURE__*/ new Vector3( 1, 1, 1 )
|
|
70
70
|
];
|
|
71
71
|
|
|
72
|
+
const _origin = /*@__PURE__*/ new Vector3();
|
|
73
|
+
|
|
72
74
|
// maps blur materials to their uniforms dictionary
|
|
73
75
|
|
|
74
76
|
const _uniformsMap = new WeakMap();
|
|
@@ -93,12 +95,16 @@ const _outputDirection = /*@__PURE__*/ vec3( _direction.x, _direction.y, _direct
|
|
|
93
95
|
* higher roughness levels. In this way we maintain resolution to smoothly
|
|
94
96
|
* interpolate diffuse lighting while limiting sampling computation.
|
|
95
97
|
*
|
|
96
|
-
* Paper: Fast, Accurate Image-Based Lighting
|
|
97
|
-
* https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view
|
|
98
|
+
* Paper: Fast, Accurate Image-Based Lighting:
|
|
99
|
+
* {@link https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view}
|
|
98
100
|
*/
|
|
99
|
-
|
|
100
101
|
class PMREMGenerator {
|
|
101
102
|
|
|
103
|
+
/**
|
|
104
|
+
* Constructs a new PMREM generator.
|
|
105
|
+
*
|
|
106
|
+
* @param {Renderer} renderer - The renderer.
|
|
107
|
+
*/
|
|
102
108
|
constructor( renderer ) {
|
|
103
109
|
|
|
104
110
|
this._renderer = renderer;
|
|
@@ -128,20 +134,28 @@ class PMREMGenerator {
|
|
|
128
134
|
* Generates a PMREM from a supplied Scene, which can be faster than using an
|
|
129
135
|
* image if networking bandwidth is low. Optional sigma specifies a blur radius
|
|
130
136
|
* in radians to be applied to the scene before PMREM generation. Optional near
|
|
131
|
-
* and far planes ensure the scene is rendered in its entirety
|
|
132
|
-
* is placed at the origin).
|
|
137
|
+
* and far planes ensure the scene is rendered in its entirety.
|
|
133
138
|
*
|
|
134
139
|
* @param {Scene} scene - The scene to be captured.
|
|
135
|
-
* @param {
|
|
136
|
-
* @param {
|
|
137
|
-
* @param {
|
|
138
|
-
* @param {
|
|
140
|
+
* @param {number} [sigma=0] - The blur radius in radians.
|
|
141
|
+
* @param {number} [near=0.1] - The near plane distance.
|
|
142
|
+
* @param {number} [far=100] - The far plane distance.
|
|
143
|
+
* @param {Object} [options={}] - The configuration options.
|
|
144
|
+
* @param {number} [options.size=256] - The texture size of the PMREM.
|
|
145
|
+
* @param {Vector3} [options.renderTarget=origin] - The position of the internal cube camera that renders the scene.
|
|
146
|
+
* @param {?RenderTarget} [options.renderTarget=null] - The render target to use.
|
|
139
147
|
* @return {RenderTarget} The resulting PMREM.
|
|
140
|
-
* @see fromSceneAsync
|
|
148
|
+
* @see {@link PMREMGenerator#fromSceneAsync}
|
|
141
149
|
*/
|
|
142
|
-
fromScene( scene, sigma = 0, near = 0.1, far = 100,
|
|
150
|
+
fromScene( scene, sigma = 0, near = 0.1, far = 100, options = {} ) {
|
|
151
|
+
|
|
152
|
+
const {
|
|
153
|
+
size = 256,
|
|
154
|
+
position = _origin,
|
|
155
|
+
renderTarget = null,
|
|
156
|
+
} = options;
|
|
143
157
|
|
|
144
|
-
this._setSize(
|
|
158
|
+
this._setSize( size );
|
|
145
159
|
|
|
146
160
|
if ( this._hasInitialized === false ) {
|
|
147
161
|
|
|
@@ -149,7 +163,9 @@ class PMREMGenerator {
|
|
|
149
163
|
|
|
150
164
|
const cubeUVRenderTarget = renderTarget || this._allocateTargets();
|
|
151
165
|
|
|
152
|
-
|
|
166
|
+
options.renderTarget = cubeUVRenderTarget;
|
|
167
|
+
|
|
168
|
+
this.fromSceneAsync( scene, sigma, near, far, options );
|
|
153
169
|
|
|
154
170
|
return cubeUVRenderTarget;
|
|
155
171
|
|
|
@@ -162,7 +178,7 @@ class PMREMGenerator {
|
|
|
162
178
|
const cubeUVRenderTarget = renderTarget || this._allocateTargets();
|
|
163
179
|
cubeUVRenderTarget.depthBuffer = true;
|
|
164
180
|
|
|
165
|
-
this._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );
|
|
181
|
+
this._sceneToCubeUV( scene, near, far, cubeUVRenderTarget, position );
|
|
166
182
|
|
|
167
183
|
if ( sigma > 0 ) {
|
|
168
184
|
|
|
@@ -186,18 +202,21 @@ class PMREMGenerator {
|
|
|
186
202
|
* is placed at the origin).
|
|
187
203
|
*
|
|
188
204
|
* @param {Scene} scene - The scene to be captured.
|
|
189
|
-
* @param {
|
|
190
|
-
* @param {
|
|
191
|
-
* @param {
|
|
192
|
-
* @param {
|
|
193
|
-
* @
|
|
194
|
-
* @
|
|
205
|
+
* @param {number} [sigma=0] - The blur radius in radians.
|
|
206
|
+
* @param {number} [near=0.1] - The near plane distance.
|
|
207
|
+
* @param {number} [far=100] - The far plane distance.
|
|
208
|
+
* @param {Object} [options={}] - The configuration options.
|
|
209
|
+
* @param {number} [options.size=256] - The texture size of the PMREM.
|
|
210
|
+
* @param {Vector3} [options.position=origin] - The position of the internal cube camera that renders the scene.
|
|
211
|
+
* @param {?RenderTarget} [options.renderTarget=null] - The render target to use.
|
|
212
|
+
* @return {Promise<RenderTarget>} A Promise that resolve with the PMREM when the generation has been finished.
|
|
213
|
+
* @see {@link PMREMGenerator#fromScene}
|
|
195
214
|
*/
|
|
196
|
-
async fromSceneAsync( scene, sigma = 0, near = 0.1, far = 100,
|
|
215
|
+
async fromSceneAsync( scene, sigma = 0, near = 0.1, far = 100, options = {} ) {
|
|
197
216
|
|
|
198
217
|
if ( this._hasInitialized === false ) await this._renderer.init();
|
|
199
218
|
|
|
200
|
-
return this.fromScene( scene, sigma, near, far,
|
|
219
|
+
return this.fromScene( scene, sigma, near, far, options );
|
|
201
220
|
|
|
202
221
|
}
|
|
203
222
|
|
|
@@ -207,9 +226,9 @@ class PMREMGenerator {
|
|
|
207
226
|
* as this matches best with the 256 x 256 cubemap output.
|
|
208
227
|
*
|
|
209
228
|
* @param {Texture} equirectangular - The equirectangular texture to be converted.
|
|
210
|
-
* @param {RenderTarget
|
|
229
|
+
* @param {?RenderTarget} [renderTarget=null] - The render target to use.
|
|
211
230
|
* @return {RenderTarget} The resulting PMREM.
|
|
212
|
-
* @see fromEquirectangularAsync
|
|
231
|
+
* @see {@link PMREMGenerator#fromEquirectangularAsync}
|
|
213
232
|
*/
|
|
214
233
|
fromEquirectangular( equirectangular, renderTarget = null ) {
|
|
215
234
|
|
|
@@ -237,9 +256,9 @@ class PMREMGenerator {
|
|
|
237
256
|
* as this matches best with the 256 x 256 cubemap output.
|
|
238
257
|
*
|
|
239
258
|
* @param {Texture} equirectangular - The equirectangular texture to be converted.
|
|
240
|
-
* @param {RenderTarget
|
|
259
|
+
* @param {?RenderTarget} [renderTarget=null] - The render target to use.
|
|
241
260
|
* @return {Promise<RenderTarget>} The resulting PMREM.
|
|
242
|
-
* @see fromEquirectangular
|
|
261
|
+
* @see {@link PMREMGenerator#fromEquirectangular}
|
|
243
262
|
*/
|
|
244
263
|
async fromEquirectangularAsync( equirectangular, renderTarget = null ) {
|
|
245
264
|
|
|
@@ -255,9 +274,9 @@ class PMREMGenerator {
|
|
|
255
274
|
* as this matches best with the 256 x 256 cubemap output.
|
|
256
275
|
*
|
|
257
276
|
* @param {Texture} cubemap - The cubemap texture to be converted.
|
|
258
|
-
* @param {RenderTarget
|
|
277
|
+
* @param {?RenderTarget} [renderTarget=null] - The render target to use.
|
|
259
278
|
* @return {RenderTarget} The resulting PMREM.
|
|
260
|
-
* @see fromCubemapAsync
|
|
279
|
+
* @see {@link PMREMGenerator#fromCubemapAsync}
|
|
261
280
|
*/
|
|
262
281
|
fromCubemap( cubemap, renderTarget = null ) {
|
|
263
282
|
|
|
@@ -285,9 +304,9 @@ class PMREMGenerator {
|
|
|
285
304
|
* with the 256 x 256 cubemap output.
|
|
286
305
|
*
|
|
287
306
|
* @param {Texture} cubemap - The cubemap texture to be converted.
|
|
288
|
-
* @param {RenderTarget
|
|
307
|
+
* @param {?RenderTarget} [renderTarget=null] - The render target to use.
|
|
289
308
|
* @return {Promise<RenderTarget>} The resulting PMREM.
|
|
290
|
-
* @see fromCubemap
|
|
309
|
+
* @see {@link PMREMGenerator#fromCubemap}
|
|
291
310
|
*/
|
|
292
311
|
async fromCubemapAsync( cubemap, renderTarget = null ) {
|
|
293
312
|
|
|
@@ -458,7 +477,7 @@ class PMREMGenerator {
|
|
|
458
477
|
|
|
459
478
|
}
|
|
460
479
|
|
|
461
|
-
_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {
|
|
480
|
+
_sceneToCubeUV( scene, near, far, cubeUVRenderTarget, position ) {
|
|
462
481
|
|
|
463
482
|
const cubeCamera = _cubeCamera;
|
|
464
483
|
cubeCamera.near = near;
|
|
@@ -528,17 +547,22 @@ class PMREMGenerator {
|
|
|
528
547
|
if ( col === 0 ) {
|
|
529
548
|
|
|
530
549
|
cubeCamera.up.set( 0, upSign[ i ], 0 );
|
|
531
|
-
cubeCamera.
|
|
550
|
+
cubeCamera.position.set( position.x, position.y, position.z );
|
|
551
|
+
cubeCamera.lookAt( position.x + forwardSign[ i ], position.y, position.z );
|
|
532
552
|
|
|
533
553
|
} else if ( col === 1 ) {
|
|
534
554
|
|
|
535
555
|
cubeCamera.up.set( 0, 0, upSign[ i ] );
|
|
536
|
-
cubeCamera.
|
|
556
|
+
cubeCamera.position.set( position.x, position.y, position.z );
|
|
557
|
+
cubeCamera.lookAt( position.x, position.y + forwardSign[ i ], position.z );
|
|
558
|
+
|
|
537
559
|
|
|
538
560
|
} else {
|
|
539
561
|
|
|
540
562
|
cubeCamera.up.set( 0, upSign[ i ], 0 );
|
|
541
|
-
cubeCamera.
|
|
563
|
+
cubeCamera.position.set( position.x, position.y, position.z );
|
|
564
|
+
cubeCamera.lookAt( position.x, position.y, position.z + forwardSign[ i ] );
|
|
565
|
+
|
|
542
566
|
|
|
543
567
|
}
|
|
544
568
|
|
|
@@ -622,10 +646,11 @@ class PMREMGenerator {
|
|
|
622
646
|
* the poles) to approximate the orthogonally-separable blur. It is least
|
|
623
647
|
* accurate at the poles, but still does a decent job.
|
|
624
648
|
*
|
|
649
|
+
* @private
|
|
625
650
|
* @param {RenderTarget} cubeUVRenderTarget - The cubemap render target.
|
|
626
|
-
* @param {
|
|
627
|
-
* @param {
|
|
628
|
-
* @param {
|
|
651
|
+
* @param {number} lodIn - The input level-of-detail.
|
|
652
|
+
* @param {number} lodOut - The output level-of-detail.
|
|
653
|
+
* @param {number} sigma - The blur radius in radians.
|
|
629
654
|
* @param {Vector3} [poleAxis] - The pole axis.
|
|
630
655
|
*/
|
|
631
656
|
_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {
|
|
@@ -14,9 +14,9 @@ class NodeBuilderState {
|
|
|
14
14
|
/**
|
|
15
15
|
* Constructs a new node builder state.
|
|
16
16
|
*
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {
|
|
17
|
+
* @param {string} vertexShader - The native vertex shader code.
|
|
18
|
+
* @param {string} fragmentShader - The native fragment shader code.
|
|
19
|
+
* @param {string} computeShader - The native compute shader code.
|
|
20
20
|
* @param {Array<NodeAttribute>} nodeAttributes - An array of node attributes.
|
|
21
21
|
* @param {Array<BindGroup>} bindings - An array of bind groups.
|
|
22
22
|
* @param {Array<Node>} updateNodes - An array of nodes that implement their `update()` method.
|
|
@@ -30,21 +30,21 @@ class NodeBuilderState {
|
|
|
30
30
|
/**
|
|
31
31
|
* The native vertex shader code.
|
|
32
32
|
*
|
|
33
|
-
* @type {
|
|
33
|
+
* @type {string}
|
|
34
34
|
*/
|
|
35
35
|
this.vertexShader = vertexShader;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* The native fragment shader code.
|
|
39
39
|
*
|
|
40
|
-
* @type {
|
|
40
|
+
* @type {string}
|
|
41
41
|
*/
|
|
42
42
|
this.fragmentShader = fragmentShader;
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* The native compute shader code.
|
|
46
46
|
*
|
|
47
|
-
* @type {
|
|
47
|
+
* @type {string}
|
|
48
48
|
*/
|
|
49
49
|
this.computeShader = computeShader;
|
|
50
50
|
|
|
@@ -103,7 +103,7 @@ class NodeBuilderState {
|
|
|
103
103
|
/**
|
|
104
104
|
* How often this state is used by render objects.
|
|
105
105
|
*
|
|
106
|
-
* @type {
|
|
106
|
+
* @type {number}
|
|
107
107
|
*/
|
|
108
108
|
this.usedTimes = 0;
|
|
109
109
|
|
|
@@ -23,7 +23,7 @@ class NodeLibrary {
|
|
|
23
23
|
/**
|
|
24
24
|
* A map that maps materials to node materials.
|
|
25
25
|
*
|
|
26
|
-
* @type {Map<
|
|
26
|
+
* @type {Map<string,NodeMaterial.constructor>}
|
|
27
27
|
*/
|
|
28
28
|
this.materialNodes = new Map();
|
|
29
29
|
|
|
@@ -31,7 +31,7 @@ class NodeLibrary {
|
|
|
31
31
|
* A map that maps tone mapping techniques (constants)
|
|
32
32
|
* to tone mapping node functions.
|
|
33
33
|
*
|
|
34
|
-
* @type {Map<
|
|
34
|
+
* @type {Map<number,Function>}
|
|
35
35
|
*/
|
|
36
36
|
this.toneMappingNodes = new Map();
|
|
37
37
|
|
|
@@ -75,7 +75,7 @@ class NodeLibrary {
|
|
|
75
75
|
* Adds a tone mapping node function for a tone mapping technique (constant).
|
|
76
76
|
*
|
|
77
77
|
* @param {Function} toneMappingNode - The tone mapping node function.
|
|
78
|
-
* @param {
|
|
78
|
+
* @param {number} toneMapping - The tone mapping.
|
|
79
79
|
*/
|
|
80
80
|
addToneMapping( toneMappingNode, toneMapping ) {
|
|
81
81
|
|
|
@@ -86,8 +86,8 @@ class NodeLibrary {
|
|
|
86
86
|
/**
|
|
87
87
|
* Returns a tone mapping node function for a tone mapping technique (constant).
|
|
88
88
|
*
|
|
89
|
-
* @param {
|
|
90
|
-
* @return {Function
|
|
89
|
+
* @param {number} toneMapping - The tone mapping.
|
|
90
|
+
* @return {?Function} The tone mapping node function. Returns `null` if no node function is found.
|
|
91
91
|
*/
|
|
92
92
|
getToneMappingFunction( toneMapping ) {
|
|
93
93
|
|
|
@@ -98,8 +98,8 @@ class NodeLibrary {
|
|
|
98
98
|
/**
|
|
99
99
|
* Returns a node material class definition for a material type.
|
|
100
100
|
*
|
|
101
|
-
* @param {
|
|
102
|
-
* @return {NodeMaterial.constructor
|
|
101
|
+
* @param {string} materialType - The material type.
|
|
102
|
+
* @return {?NodeMaterial.constructor} The node material class definition. Returns `null` if no node material is found.
|
|
103
103
|
*/
|
|
104
104
|
getMaterialNodeClass( materialType ) {
|
|
105
105
|
|
|
@@ -111,7 +111,7 @@ class NodeLibrary {
|
|
|
111
111
|
* Adds a node material class definition for a given material type.
|
|
112
112
|
*
|
|
113
113
|
* @param {NodeMaterial.constructor} materialNodeClass - The node material class definition.
|
|
114
|
-
* @param {
|
|
114
|
+
* @param {string} materialClassType - The material type.
|
|
115
115
|
*/
|
|
116
116
|
addMaterial( materialNodeClass, materialClassType ) {
|
|
117
117
|
|
|
@@ -123,7 +123,7 @@ class NodeLibrary {
|
|
|
123
123
|
* Returns a light node class definition for a light class definition.
|
|
124
124
|
*
|
|
125
125
|
* @param {Light.constructor} light - The light class definition.
|
|
126
|
-
* @return {AnalyticLightNode.constructor
|
|
126
|
+
* @return {?AnalyticLightNode.constructor} The light node class definition. Returns `null` if no light node is found.
|
|
127
127
|
*/
|
|
128
128
|
getLightNodeClass( light ) {
|
|
129
129
|
|
|
@@ -146,8 +146,8 @@ class NodeLibrary {
|
|
|
146
146
|
/**
|
|
147
147
|
* Adds a node class definition for the given type to the provided type library.
|
|
148
148
|
*
|
|
149
|
-
* @param {
|
|
150
|
-
* @param {
|
|
149
|
+
* @param {any} nodeClass - The node class definition.
|
|
150
|
+
* @param {number|string} type - The object type.
|
|
151
151
|
* @param {Map} library - The type library.
|
|
152
152
|
*/
|
|
153
153
|
addType( nodeClass, type, library ) {
|
|
@@ -169,8 +169,8 @@ class NodeLibrary {
|
|
|
169
169
|
/**
|
|
170
170
|
* Adds a node class definition for the given class definition to the provided type library.
|
|
171
171
|
*
|
|
172
|
-
* @param {
|
|
173
|
-
* @param {
|
|
172
|
+
* @param {any} nodeClass - The node class definition.
|
|
173
|
+
* @param {any} baseClass - The class definition.
|
|
174
174
|
* @param {WeakMap} library - The type library.
|
|
175
175
|
*/
|
|
176
176
|
addClass( nodeClass, baseClass, library ) {
|
|
@@ -12,10 +12,10 @@ class NodeSampledTexture extends SampledTexture {
|
|
|
12
12
|
/**
|
|
13
13
|
* Constructs a new node-based sampled texture.
|
|
14
14
|
*
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {string} name - The textures's name.
|
|
16
16
|
* @param {TextureNode} textureNode - The texture node.
|
|
17
17
|
* @param {UniformGroupNode} groupNode - The uniform group node.
|
|
18
|
-
* @param {
|
|
18
|
+
* @param {?string} [access=null] - The access type.
|
|
19
19
|
*/
|
|
20
20
|
constructor( name, textureNode, groupNode, access = null ) {
|
|
21
21
|
|
|
@@ -38,7 +38,7 @@ class NodeSampledTexture extends SampledTexture {
|
|
|
38
38
|
/**
|
|
39
39
|
* The access type.
|
|
40
40
|
*
|
|
41
|
-
* @type {
|
|
41
|
+
* @type {?string}
|
|
42
42
|
* @default null
|
|
43
43
|
*/
|
|
44
44
|
this.access = access;
|
|
@@ -48,8 +48,8 @@ class NodeSampledTexture extends SampledTexture {
|
|
|
48
48
|
/**
|
|
49
49
|
* Overwrites the default to additionally check if the node value has changed.
|
|
50
50
|
*
|
|
51
|
-
* @param {
|
|
52
|
-
* @return {
|
|
51
|
+
* @param {number} generation - The generation.
|
|
52
|
+
* @return {boolean} Whether an update is required or not.
|
|
53
53
|
*/
|
|
54
54
|
needsBindingsUpdate( generation ) {
|
|
55
55
|
|
|
@@ -60,7 +60,7 @@ class NodeSampledTexture extends SampledTexture {
|
|
|
60
60
|
/**
|
|
61
61
|
* Updates the binding.
|
|
62
62
|
*
|
|
63
|
-
* @return {
|
|
63
|
+
* @return {boolean} Whether the texture has been updated and must be
|
|
64
64
|
* uploaded to the GPU.
|
|
65
65
|
*/
|
|
66
66
|
update() {
|
|
@@ -93,10 +93,10 @@ class NodeSampledCubeTexture extends NodeSampledTexture {
|
|
|
93
93
|
/**
|
|
94
94
|
* Constructs a new node-based sampled cube texture.
|
|
95
95
|
*
|
|
96
|
-
* @param {
|
|
96
|
+
* @param {string} name - The textures's name.
|
|
97
97
|
* @param {TextureNode} textureNode - The texture node.
|
|
98
98
|
* @param {UniformGroupNode} groupNode - The uniform group node.
|
|
99
|
-
* @param {
|
|
99
|
+
* @param {?string} [access=null] - The access type.
|
|
100
100
|
*/
|
|
101
101
|
constructor( name, textureNode, groupNode, access = null ) {
|
|
102
102
|
|
|
@@ -105,7 +105,7 @@ class NodeSampledCubeTexture extends NodeSampledTexture {
|
|
|
105
105
|
/**
|
|
106
106
|
* This flag can be used for type testing.
|
|
107
107
|
*
|
|
108
|
-
* @type {
|
|
108
|
+
* @type {boolean}
|
|
109
109
|
* @readonly
|
|
110
110
|
* @default true
|
|
111
111
|
*/
|
|
@@ -127,10 +127,10 @@ class NodeSampledTexture3D extends NodeSampledTexture {
|
|
|
127
127
|
/**
|
|
128
128
|
* Constructs a new node-based sampled 3D texture.
|
|
129
129
|
*
|
|
130
|
-
* @param {
|
|
130
|
+
* @param {string} name - The textures's name.
|
|
131
131
|
* @param {TextureNode} textureNode - The texture node.
|
|
132
132
|
* @param {UniformGroupNode} groupNode - The uniform group node.
|
|
133
|
-
* @param {
|
|
133
|
+
* @param {?string} [access=null] - The access type.
|
|
134
134
|
*/
|
|
135
135
|
constructor( name, textureNode, groupNode, access = null ) {
|
|
136
136
|
|
|
@@ -139,7 +139,7 @@ class NodeSampledTexture3D extends NodeSampledTexture {
|
|
|
139
139
|
/**
|
|
140
140
|
* This flag can be used for type testing.
|
|
141
141
|
*
|
|
142
|
-
* @type {
|
|
142
|
+
* @type {boolean}
|
|
143
143
|
* @readonly
|
|
144
144
|
* @default true
|
|
145
145
|
*/
|
|
@@ -12,7 +12,7 @@ class NodeSampler extends Sampler {
|
|
|
12
12
|
/**
|
|
13
13
|
* Constructs a new node-based sampler.
|
|
14
14
|
*
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {string} name - The samplers's name.
|
|
16
16
|
* @param {TextureNode} textureNode - The texture node.
|
|
17
17
|
* @param {UniformGroupNode} groupNode - The uniform group node.
|
|
18
18
|
*/
|
|
@@ -33,7 +33,7 @@ class NumberNodeUniform extends NumberUniform {
|
|
|
33
33
|
/**
|
|
34
34
|
* Overwritten to return the value of the node uniform.
|
|
35
35
|
*
|
|
36
|
-
* @return {
|
|
36
|
+
* @return {number} The value.
|
|
37
37
|
*/
|
|
38
38
|
getValue() {
|
|
39
39
|
|
|
@@ -44,7 +44,7 @@ class NumberNodeUniform extends NumberUniform {
|
|
|
44
44
|
/**
|
|
45
45
|
* Returns the node uniform data type.
|
|
46
46
|
*
|
|
47
|
-
* @return {
|
|
47
|
+
* @return {string} The data type.
|
|
48
48
|
*/
|
|
49
49
|
getType() {
|
|
50
50
|
|
|
@@ -95,7 +95,7 @@ class Vector2NodeUniform extends Vector2Uniform {
|
|
|
95
95
|
/**
|
|
96
96
|
* Returns the node uniform data type.
|
|
97
97
|
*
|
|
98
|
-
* @return {
|
|
98
|
+
* @return {string} The data type.
|
|
99
99
|
*/
|
|
100
100
|
getType() {
|
|
101
101
|
|
|
@@ -146,7 +146,7 @@ class Vector3NodeUniform extends Vector3Uniform {
|
|
|
146
146
|
/**
|
|
147
147
|
* Returns the node uniform data type.
|
|
148
148
|
*
|
|
149
|
-
* @return {
|
|
149
|
+
* @return {string} The data type.
|
|
150
150
|
*/
|
|
151
151
|
getType() {
|
|
152
152
|
|
|
@@ -197,7 +197,7 @@ class Vector4NodeUniform extends Vector4Uniform {
|
|
|
197
197
|
/**
|
|
198
198
|
* Returns the node uniform data type.
|
|
199
199
|
*
|
|
200
|
-
* @return {
|
|
200
|
+
* @return {string} The data type.
|
|
201
201
|
*/
|
|
202
202
|
getType() {
|
|
203
203
|
|
|
@@ -248,7 +248,7 @@ class ColorNodeUniform extends ColorUniform {
|
|
|
248
248
|
/**
|
|
249
249
|
* Returns the node uniform data type.
|
|
250
250
|
*
|
|
251
|
-
* @return {
|
|
251
|
+
* @return {string} The data type.
|
|
252
252
|
*/
|
|
253
253
|
getType() {
|
|
254
254
|
|
|
@@ -300,7 +300,7 @@ class Matrix2NodeUniform extends Matrix2Uniform {
|
|
|
300
300
|
/**
|
|
301
301
|
* Returns the node uniform data type.
|
|
302
302
|
*
|
|
303
|
-
* @return {
|
|
303
|
+
* @return {string} The data type.
|
|
304
304
|
*/
|
|
305
305
|
getType() {
|
|
306
306
|
|
|
@@ -351,7 +351,7 @@ class Matrix3NodeUniform extends Matrix3Uniform {
|
|
|
351
351
|
/**
|
|
352
352
|
* Returns the node uniform data type.
|
|
353
353
|
*
|
|
354
|
-
* @return {
|
|
354
|
+
* @return {string} The data type.
|
|
355
355
|
*/
|
|
356
356
|
getType() {
|
|
357
357
|
|
|
@@ -402,7 +402,7 @@ class Matrix4NodeUniform extends Matrix4Uniform {
|
|
|
402
402
|
/**
|
|
403
403
|
* Returns the node uniform data type.
|
|
404
404
|
*
|
|
405
|
-
* @return {
|
|
405
|
+
* @return {string} The data type.
|
|
406
406
|
*/
|
|
407
407
|
getType() {
|
|
408
408
|
|
|
@@ -14,7 +14,7 @@ class NodeUniformsGroup extends UniformsGroup {
|
|
|
14
14
|
/**
|
|
15
15
|
* Constructs a new node-based uniforms group.
|
|
16
16
|
*
|
|
17
|
-
* @param {
|
|
17
|
+
* @param {string} name - The group's name.
|
|
18
18
|
* @param {UniformGroupNode} groupNode - The uniform group node.
|
|
19
19
|
*/
|
|
20
20
|
constructor( name, groupNode ) {
|
|
@@ -24,7 +24,7 @@ class NodeUniformsGroup extends UniformsGroup {
|
|
|
24
24
|
/**
|
|
25
25
|
* The group's ID.
|
|
26
26
|
*
|
|
27
|
-
* @type {
|
|
27
|
+
* @type {number}
|
|
28
28
|
*/
|
|
29
29
|
this.id = _id ++;
|
|
30
30
|
|
|
@@ -38,7 +38,7 @@ class NodeUniformsGroup extends UniformsGroup {
|
|
|
38
38
|
/**
|
|
39
39
|
* This flag can be used for type testing.
|
|
40
40
|
*
|
|
41
|
-
* @type {
|
|
41
|
+
* @type {boolean}
|
|
42
42
|
* @readonly
|
|
43
43
|
* @default true
|
|
44
44
|
*/
|