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
|
@@ -13,8 +13,8 @@ class SampledTexture extends Binding {
|
|
|
13
13
|
/**
|
|
14
14
|
* Constructs a new sampled texture.
|
|
15
15
|
*
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {Texture
|
|
16
|
+
* @param {string} name - The sampled texture's name.
|
|
17
|
+
* @param {?Texture} texture - The texture this binding is referring to.
|
|
18
18
|
*/
|
|
19
19
|
constructor( name, texture ) {
|
|
20
20
|
|
|
@@ -23,28 +23,28 @@ class SampledTexture extends Binding {
|
|
|
23
23
|
/**
|
|
24
24
|
* This identifier.
|
|
25
25
|
*
|
|
26
|
-
* @type {
|
|
26
|
+
* @type {number}
|
|
27
27
|
*/
|
|
28
28
|
this.id = _id ++;
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* The texture this binding is referring to.
|
|
32
32
|
*
|
|
33
|
-
* @type {Texture
|
|
33
|
+
* @type {?Texture}
|
|
34
34
|
*/
|
|
35
35
|
this.texture = texture;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* The binding's version.
|
|
39
39
|
*
|
|
40
|
-
* @type {
|
|
40
|
+
* @type {number}
|
|
41
41
|
*/
|
|
42
42
|
this.version = texture ? texture.version : 0;
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* Whether the texture is a storage texture or not.
|
|
46
46
|
*
|
|
47
|
-
* @type {
|
|
47
|
+
* @type {boolean}
|
|
48
48
|
* @default false
|
|
49
49
|
*/
|
|
50
50
|
this.store = false;
|
|
@@ -53,7 +53,7 @@ class SampledTexture extends Binding {
|
|
|
53
53
|
* The binding's generation which is an additional version
|
|
54
54
|
* qualifier.
|
|
55
55
|
*
|
|
56
|
-
* @type {
|
|
56
|
+
* @type {?number}
|
|
57
57
|
* @default null
|
|
58
58
|
*/
|
|
59
59
|
this.generation = null;
|
|
@@ -61,7 +61,7 @@ class SampledTexture extends Binding {
|
|
|
61
61
|
/**
|
|
62
62
|
* This flag can be used for type testing.
|
|
63
63
|
*
|
|
64
|
-
* @type {
|
|
64
|
+
* @type {boolean}
|
|
65
65
|
* @readonly
|
|
66
66
|
* @default true
|
|
67
67
|
*/
|
|
@@ -73,8 +73,8 @@ class SampledTexture extends Binding {
|
|
|
73
73
|
* Returns `true` whether this binding requires an update for the
|
|
74
74
|
* given generation.
|
|
75
75
|
*
|
|
76
|
-
* @param {
|
|
77
|
-
* @return {
|
|
76
|
+
* @param {number} generation - The generation.
|
|
77
|
+
* @return {boolean} Whether an update is required or not.
|
|
78
78
|
*/
|
|
79
79
|
needsBindingsUpdate( generation ) {
|
|
80
80
|
|
|
@@ -95,7 +95,7 @@ class SampledTexture extends Binding {
|
|
|
95
95
|
/**
|
|
96
96
|
* Updates the binding.
|
|
97
97
|
*
|
|
98
|
-
* @return {
|
|
98
|
+
* @return {boolean} Whether the texture has been updated and must be
|
|
99
99
|
* uploaded to the GPU.
|
|
100
100
|
*/
|
|
101
101
|
update() {
|
|
@@ -127,8 +127,8 @@ class SampledArrayTexture extends SampledTexture {
|
|
|
127
127
|
/**
|
|
128
128
|
* Constructs a new sampled array texture.
|
|
129
129
|
*
|
|
130
|
-
* @param {
|
|
131
|
-
* @param {(DataArrayTexture|CompressedArrayTexture)
|
|
130
|
+
* @param {string} name - The sampled array texture's name.
|
|
131
|
+
* @param {?(DataArrayTexture|CompressedArrayTexture)} texture - The texture this binding is referring to.
|
|
132
132
|
*/
|
|
133
133
|
constructor( name, texture ) {
|
|
134
134
|
|
|
@@ -137,7 +137,7 @@ class SampledArrayTexture extends SampledTexture {
|
|
|
137
137
|
/**
|
|
138
138
|
* This flag can be used for type testing.
|
|
139
139
|
*
|
|
140
|
-
* @type {
|
|
140
|
+
* @type {boolean}
|
|
141
141
|
* @readonly
|
|
142
142
|
* @default true
|
|
143
143
|
*/
|
|
@@ -158,8 +158,8 @@ class Sampled3DTexture extends SampledTexture {
|
|
|
158
158
|
/**
|
|
159
159
|
* Constructs a new sampled 3D texture.
|
|
160
160
|
*
|
|
161
|
-
* @param {
|
|
162
|
-
* @param {Data3DTexture
|
|
161
|
+
* @param {string} name - The sampled 3D texture's name.
|
|
162
|
+
* @param {?Data3DTexture} texture - The texture this binding is referring to.
|
|
163
163
|
*/
|
|
164
164
|
constructor( name, texture ) {
|
|
165
165
|
|
|
@@ -168,7 +168,7 @@ class Sampled3DTexture extends SampledTexture {
|
|
|
168
168
|
/**
|
|
169
169
|
* This flag can be used for type testing.
|
|
170
170
|
*
|
|
171
|
-
* @type {
|
|
171
|
+
* @type {boolean}
|
|
172
172
|
* @readonly
|
|
173
173
|
* @default true
|
|
174
174
|
*/
|
|
@@ -189,8 +189,8 @@ class SampledCubeTexture extends SampledTexture {
|
|
|
189
189
|
/**
|
|
190
190
|
* Constructs a new sampled cube texture.
|
|
191
191
|
*
|
|
192
|
-
* @param {
|
|
193
|
-
* @param {(CubeTexture|CompressedCubeTexture)
|
|
192
|
+
* @param {string} name - The sampled cube texture's name.
|
|
193
|
+
* @param {?(CubeTexture|CompressedCubeTexture)} texture - The texture this binding is referring to.
|
|
194
194
|
*/
|
|
195
195
|
constructor( name, texture ) {
|
|
196
196
|
|
|
@@ -199,7 +199,7 @@ class SampledCubeTexture extends SampledTexture {
|
|
|
199
199
|
/**
|
|
200
200
|
* This flag can be used for type testing.
|
|
201
201
|
*
|
|
202
|
-
* @type {
|
|
202
|
+
* @type {boolean}
|
|
203
203
|
* @readonly
|
|
204
204
|
* @default true
|
|
205
205
|
*/
|
|
@@ -11,8 +11,8 @@ class Sampler extends Binding {
|
|
|
11
11
|
/**
|
|
12
12
|
* Constructs a new sampler.
|
|
13
13
|
*
|
|
14
|
-
* @param {
|
|
15
|
-
* @param {Texture
|
|
14
|
+
* @param {string} name - The samplers's name.
|
|
15
|
+
* @param {?Texture} texture - The texture this binding is referring to.
|
|
16
16
|
*/
|
|
17
17
|
constructor( name, texture ) {
|
|
18
18
|
|
|
@@ -21,21 +21,21 @@ class Sampler extends Binding {
|
|
|
21
21
|
/**
|
|
22
22
|
* The texture the sampler is referring to.
|
|
23
23
|
*
|
|
24
|
-
* @type {Texture
|
|
24
|
+
* @type {?Texture}
|
|
25
25
|
*/
|
|
26
26
|
this.texture = texture;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* The binding's version.
|
|
30
30
|
*
|
|
31
|
-
* @type {
|
|
31
|
+
* @type {number}
|
|
32
32
|
*/
|
|
33
33
|
this.version = texture ? texture.version : 0;
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* This flag can be used for type testing.
|
|
37
37
|
*
|
|
38
|
-
* @type {
|
|
38
|
+
* @type {boolean}
|
|
39
39
|
* @readonly
|
|
40
40
|
* @default true
|
|
41
41
|
*/
|
|
@@ -11,7 +11,7 @@ class StorageBuffer extends Buffer {
|
|
|
11
11
|
/**
|
|
12
12
|
* Constructs a new uniform buffer.
|
|
13
13
|
*
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {string} name - The buffer's name.
|
|
15
15
|
* @param {BufferAttribute} attribute - The buffer attribute.
|
|
16
16
|
*/
|
|
17
17
|
constructor( name, attribute ) {
|
|
@@ -28,7 +28,7 @@ class StorageBuffer extends Buffer {
|
|
|
28
28
|
/**
|
|
29
29
|
* This flag can be used for type testing.
|
|
30
30
|
*
|
|
31
|
-
* @type {
|
|
31
|
+
* @type {boolean}
|
|
32
32
|
* @readonly
|
|
33
33
|
* @default true
|
|
34
34
|
*/
|
|
@@ -8,7 +8,7 @@ import { BufferAttribute } from '../../core/BufferAttribute.js';
|
|
|
8
8
|
* to compute the data for an attribute more efficiently on the GPU.
|
|
9
9
|
*
|
|
10
10
|
* The idea is to create an instance of this class and provide it as an input
|
|
11
|
-
* to {@link
|
|
11
|
+
* to {@link StorageBufferNode}.
|
|
12
12
|
*
|
|
13
13
|
* Note: This type of buffer attribute can only be used with `WebGPURenderer`.
|
|
14
14
|
*
|
|
@@ -19,9 +19,9 @@ class StorageBufferAttribute extends BufferAttribute {
|
|
|
19
19
|
/**
|
|
20
20
|
* Constructs a new storage buffer attribute.
|
|
21
21
|
*
|
|
22
|
-
* @param {
|
|
22
|
+
* @param {number|TypedArray} count - The item count. It is also valid to pass a typed array as an argument.
|
|
23
23
|
* The subsequent parameters are then obsolete.
|
|
24
|
-
* @param {
|
|
24
|
+
* @param {number} itemSize - The item size.
|
|
25
25
|
* @param {TypedArray.constructor} [typeClass=Float32Array] - A typed array constructor.
|
|
26
26
|
*/
|
|
27
27
|
constructor( count, itemSize, typeClass = Float32Array ) {
|
|
@@ -33,7 +33,7 @@ class StorageBufferAttribute extends BufferAttribute {
|
|
|
33
33
|
/**
|
|
34
34
|
* This flag can be used for type testing.
|
|
35
35
|
*
|
|
36
|
-
* @type {
|
|
36
|
+
* @type {boolean}
|
|
37
37
|
* @readonly
|
|
38
38
|
* @default true
|
|
39
39
|
*/
|
|
@@ -8,7 +8,7 @@ import { InstancedBufferAttribute } from '../../core/InstancedBufferAttribute.js
|
|
|
8
8
|
* to compute the data for an attribute more efficiently on the GPU.
|
|
9
9
|
*
|
|
10
10
|
* The idea is to create an instance of this class and provide it as an input
|
|
11
|
-
* to {@link
|
|
11
|
+
* to {@link StorageBufferNode}.
|
|
12
12
|
*
|
|
13
13
|
* Note: This type of buffer attribute can only be used with `WebGPURenderer`.
|
|
14
14
|
*
|
|
@@ -19,9 +19,9 @@ class StorageInstancedBufferAttribute extends InstancedBufferAttribute {
|
|
|
19
19
|
/**
|
|
20
20
|
* Constructs a new storage instanced buffer attribute.
|
|
21
21
|
*
|
|
22
|
-
* @param {
|
|
22
|
+
* @param {number|TypedArray} count - The item count. It is also valid to pass a typed array as an argument.
|
|
23
23
|
* The subsequent parameters are then obsolete.
|
|
24
|
-
* @param {
|
|
24
|
+
* @param {number} itemSize - The item size.
|
|
25
25
|
* @param {TypedArray.constructor} [typeClass=Float32Array] - A typed array constructor.
|
|
26
26
|
*/
|
|
27
27
|
constructor( count, itemSize, typeClass = Float32Array ) {
|
|
@@ -33,7 +33,7 @@ class StorageInstancedBufferAttribute extends InstancedBufferAttribute {
|
|
|
33
33
|
/**
|
|
34
34
|
* This flag can be used for type testing.
|
|
35
35
|
*
|
|
36
|
-
* @type {
|
|
36
|
+
* @type {boolean}
|
|
37
37
|
* @readonly
|
|
38
38
|
* @default true
|
|
39
39
|
*/
|
|
@@ -15,8 +15,8 @@ class StorageTexture extends Texture {
|
|
|
15
15
|
/**
|
|
16
16
|
* Constructs a new storage texture.
|
|
17
17
|
*
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {
|
|
18
|
+
* @param {number} [width=1] - The storage texture's width.
|
|
19
|
+
* @param {number} [height=1] - The storage texture's height.
|
|
20
20
|
*/
|
|
21
21
|
constructor( width = 1, height = 1 ) {
|
|
22
22
|
|
|
@@ -25,28 +25,28 @@ class StorageTexture extends Texture {
|
|
|
25
25
|
/**
|
|
26
26
|
* The image object which just represents the texture's dimension.
|
|
27
27
|
*
|
|
28
|
-
* @type {{width:
|
|
28
|
+
* @type {{width: number, height: number}}
|
|
29
29
|
*/
|
|
30
30
|
this.image = { width, height };
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* The default `magFilter` for storage textures is `THREE.LinearFilter`.
|
|
34
34
|
*
|
|
35
|
-
* @type {
|
|
35
|
+
* @type {number}
|
|
36
36
|
*/
|
|
37
37
|
this.magFilter = LinearFilter;
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* The default `minFilter` for storage textures is `THREE.LinearFilter`.
|
|
41
41
|
*
|
|
42
|
-
* @type {
|
|
42
|
+
* @type {number}
|
|
43
43
|
*/
|
|
44
44
|
this.minFilter = LinearFilter;
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* This flag can be used for type testing.
|
|
48
48
|
*
|
|
49
|
-
* @type {
|
|
49
|
+
* @type {boolean}
|
|
50
50
|
* @readonly
|
|
51
51
|
* @default true
|
|
52
52
|
*/
|
|
@@ -53,7 +53,7 @@ class Textures extends DataMap {
|
|
|
53
53
|
* it updates the texture states representing the attachments of the framebuffer.
|
|
54
54
|
*
|
|
55
55
|
* @param {RenderTarget} renderTarget - The render target to update.
|
|
56
|
-
* @param {
|
|
56
|
+
* @param {number} [activeMipmapLevel=0] - The active mipmap level.
|
|
57
57
|
*/
|
|
58
58
|
updateRenderTarget( renderTarget, activeMipmapLevel = 0 ) {
|
|
59
59
|
|
|
@@ -382,9 +382,9 @@ class Textures extends DataMap {
|
|
|
382
382
|
* Computes the number of mipmap levels for the given texture.
|
|
383
383
|
*
|
|
384
384
|
* @param {Texture} texture - The texture.
|
|
385
|
-
* @param {
|
|
386
|
-
* @param {
|
|
387
|
-
* @return {
|
|
385
|
+
* @param {number} width - The texture's width.
|
|
386
|
+
* @param {number} height - The texture's height.
|
|
387
|
+
* @return {number} The number of mipmap levels.
|
|
388
388
|
*/
|
|
389
389
|
getMipLevels( texture, width, height ) {
|
|
390
390
|
|
|
@@ -416,7 +416,7 @@ class Textures extends DataMap {
|
|
|
416
416
|
* Returns `true` if the given texture requires mipmaps.
|
|
417
417
|
*
|
|
418
418
|
* @param {Texture} texture - The texture.
|
|
419
|
-
* @return {
|
|
419
|
+
* @return {boolean} Whether mipmaps are required or not.
|
|
420
420
|
*/
|
|
421
421
|
needsMipmaps( texture ) {
|
|
422
422
|
|
|
@@ -428,7 +428,7 @@ class Textures extends DataMap {
|
|
|
428
428
|
* Returns `true` if the given texture is an environment map.
|
|
429
429
|
*
|
|
430
430
|
* @param {Texture} texture - The texture.
|
|
431
|
-
* @return {
|
|
431
|
+
* @return {boolean} Whether the given texture is an environment map or not.
|
|
432
432
|
*/
|
|
433
433
|
isEnvironmentTexture( texture ) {
|
|
434
434
|
|
|
@@ -1,30 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class of a timestamp query pool.
|
|
3
|
+
*
|
|
4
|
+
* @abstract
|
|
5
|
+
*/
|
|
1
6
|
class TimestampQueryPool {
|
|
2
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new timestamp query pool.
|
|
10
|
+
*
|
|
11
|
+
* @param {number} [maxQueries=256] - Maximum number of queries this pool can hold.
|
|
12
|
+
*/
|
|
3
13
|
constructor( maxQueries = 256 ) {
|
|
4
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Whether to track timestamps or not.
|
|
17
|
+
*
|
|
18
|
+
* @type {boolean}
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
5
21
|
this.trackTimestamp = true;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Maximum number of queries this pool can hold.
|
|
25
|
+
*
|
|
26
|
+
* @type {number}
|
|
27
|
+
* @default 256
|
|
28
|
+
*/
|
|
6
29
|
this.maxQueries = maxQueries;
|
|
7
|
-
|
|
8
|
-
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* How many queries allocated so far.
|
|
33
|
+
*
|
|
34
|
+
* @type {number}
|
|
35
|
+
* @default 0
|
|
36
|
+
*/
|
|
37
|
+
this.currentQueryIndex = 0;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Tracks offsets for different contexts.
|
|
41
|
+
*
|
|
42
|
+
* @type {Map<string, number>}
|
|
43
|
+
*/
|
|
44
|
+
this.queryOffsets = new Map();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Whether the pool has been disposed or not.
|
|
48
|
+
*
|
|
49
|
+
* @type {boolean}
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
9
52
|
this.isDisposed = false;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* TODO
|
|
56
|
+
*
|
|
57
|
+
* @type {number}
|
|
58
|
+
* @default 0
|
|
59
|
+
*/
|
|
10
60
|
this.lastValue = 0;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* TODO
|
|
64
|
+
*
|
|
65
|
+
* @type {boolean}
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
11
68
|
this.pendingResolve = false;
|
|
12
69
|
|
|
13
70
|
}
|
|
14
71
|
|
|
15
72
|
/**
|
|
16
|
-
|
|
73
|
+
* Allocate queries for a specific renderContext.
|
|
17
74
|
*
|
|
18
75
|
* @abstract
|
|
19
|
-
|
|
76
|
+
* @param {Object} renderContext - The render context to allocate queries for.
|
|
77
|
+
*/
|
|
20
78
|
allocateQueriesForContext( /* renderContext */ ) {}
|
|
21
79
|
|
|
22
80
|
/**
|
|
23
|
-
|
|
81
|
+
* Resolve all timestamps and return data (or process them).
|
|
24
82
|
*
|
|
25
83
|
* @abstract
|
|
26
|
-
* @
|
|
27
|
-
|
|
84
|
+
* @async
|
|
85
|
+
* @returns {Promise<number>|number} The resolved timestamp value.
|
|
86
|
+
*/
|
|
28
87
|
async resolveQueriesAsync() {}
|
|
29
88
|
|
|
30
89
|
/**
|
|
@@ -17,22 +17,22 @@ class Uniform {
|
|
|
17
17
|
/**
|
|
18
18
|
* Constructs a new uniform.
|
|
19
19
|
*
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {
|
|
20
|
+
* @param {string} name - The uniform's name.
|
|
21
|
+
* @param {any} value - The uniform's value.
|
|
22
22
|
*/
|
|
23
23
|
constructor( name, value ) {
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* The uniform's name.
|
|
27
27
|
*
|
|
28
|
-
* @type {
|
|
28
|
+
* @type {string}
|
|
29
29
|
*/
|
|
30
30
|
this.name = name;
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* The uniform's value.
|
|
34
34
|
*
|
|
35
|
-
* @type {
|
|
35
|
+
* @type {any}
|
|
36
36
|
*/
|
|
37
37
|
this.value = value;
|
|
38
38
|
|
|
@@ -41,7 +41,7 @@ class Uniform {
|
|
|
41
41
|
* Derived uniforms will set this property to a data type specific
|
|
42
42
|
* value.
|
|
43
43
|
*
|
|
44
|
-
* @type {
|
|
44
|
+
* @type {number}
|
|
45
45
|
*/
|
|
46
46
|
this.boundary = 0;
|
|
47
47
|
|
|
@@ -49,7 +49,7 @@ class Uniform {
|
|
|
49
49
|
* The item size. Derived uniforms will set this property to a data
|
|
50
50
|
* type specific value.
|
|
51
51
|
*
|
|
52
|
-
* @type {
|
|
52
|
+
* @type {number}
|
|
53
53
|
*/
|
|
54
54
|
this.itemSize = 0;
|
|
55
55
|
|
|
@@ -57,7 +57,7 @@ class Uniform {
|
|
|
57
57
|
* This property is set by {@link UniformsGroup} and marks
|
|
58
58
|
* the start position in the uniform buffer.
|
|
59
59
|
*
|
|
60
|
-
* @type {
|
|
60
|
+
* @type {number}
|
|
61
61
|
*/
|
|
62
62
|
this.offset = 0;
|
|
63
63
|
|
|
@@ -66,7 +66,7 @@ class Uniform {
|
|
|
66
66
|
/**
|
|
67
67
|
* Sets the uniform's value.
|
|
68
68
|
*
|
|
69
|
-
* @param {
|
|
69
|
+
* @param {any} value - The value to set.
|
|
70
70
|
*/
|
|
71
71
|
setValue( value ) {
|
|
72
72
|
|
|
@@ -77,7 +77,7 @@ class Uniform {
|
|
|
77
77
|
/**
|
|
78
78
|
* Returns the uniform's value.
|
|
79
79
|
*
|
|
80
|
-
* @return {
|
|
80
|
+
* @return {any} The value.
|
|
81
81
|
*/
|
|
82
82
|
getValue() {
|
|
83
83
|
|
|
@@ -98,8 +98,8 @@ class NumberUniform extends Uniform {
|
|
|
98
98
|
/**
|
|
99
99
|
* Constructs a new Number uniform.
|
|
100
100
|
*
|
|
101
|
-
* @param {
|
|
102
|
-
* @param {
|
|
101
|
+
* @param {string} name - The uniform's name.
|
|
102
|
+
* @param {number} value - The uniform's value.
|
|
103
103
|
*/
|
|
104
104
|
constructor( name, value = 0 ) {
|
|
105
105
|
|
|
@@ -108,7 +108,7 @@ class NumberUniform extends Uniform {
|
|
|
108
108
|
/**
|
|
109
109
|
* This flag can be used for type testing.
|
|
110
110
|
*
|
|
111
|
-
* @type {
|
|
111
|
+
* @type {boolean}
|
|
112
112
|
* @readonly
|
|
113
113
|
* @default true
|
|
114
114
|
*/
|
|
@@ -132,7 +132,7 @@ class Vector2Uniform extends Uniform {
|
|
|
132
132
|
/**
|
|
133
133
|
* Constructs a new Number uniform.
|
|
134
134
|
*
|
|
135
|
-
* @param {
|
|
135
|
+
* @param {string} name - The uniform's name.
|
|
136
136
|
* @param {Vector2} value - The uniform's value.
|
|
137
137
|
*/
|
|
138
138
|
constructor( name, value = new Vector2() ) {
|
|
@@ -142,7 +142,7 @@ class Vector2Uniform extends Uniform {
|
|
|
142
142
|
/**
|
|
143
143
|
* This flag can be used for type testing.
|
|
144
144
|
*
|
|
145
|
-
* @type {
|
|
145
|
+
* @type {boolean}
|
|
146
146
|
* @readonly
|
|
147
147
|
* @default true
|
|
148
148
|
*/
|
|
@@ -166,7 +166,7 @@ class Vector3Uniform extends Uniform {
|
|
|
166
166
|
/**
|
|
167
167
|
* Constructs a new Number uniform.
|
|
168
168
|
*
|
|
169
|
-
* @param {
|
|
169
|
+
* @param {string} name - The uniform's name.
|
|
170
170
|
* @param {Vector3} value - The uniform's value.
|
|
171
171
|
*/
|
|
172
172
|
constructor( name, value = new Vector3() ) {
|
|
@@ -176,7 +176,7 @@ class Vector3Uniform extends Uniform {
|
|
|
176
176
|
/**
|
|
177
177
|
* This flag can be used for type testing.
|
|
178
178
|
*
|
|
179
|
-
* @type {
|
|
179
|
+
* @type {boolean}
|
|
180
180
|
* @readonly
|
|
181
181
|
* @default true
|
|
182
182
|
*/
|
|
@@ -200,7 +200,7 @@ class Vector4Uniform extends Uniform {
|
|
|
200
200
|
/**
|
|
201
201
|
* Constructs a new Number uniform.
|
|
202
202
|
*
|
|
203
|
-
* @param {
|
|
203
|
+
* @param {string} name - The uniform's name.
|
|
204
204
|
* @param {Vector4} value - The uniform's value.
|
|
205
205
|
*/
|
|
206
206
|
constructor( name, value = new Vector4() ) {
|
|
@@ -210,7 +210,7 @@ class Vector4Uniform extends Uniform {
|
|
|
210
210
|
/**
|
|
211
211
|
* This flag can be used for type testing.
|
|
212
212
|
*
|
|
213
|
-
* @type {
|
|
213
|
+
* @type {boolean}
|
|
214
214
|
* @readonly
|
|
215
215
|
* @default true
|
|
216
216
|
*/
|
|
@@ -234,7 +234,7 @@ class ColorUniform extends Uniform {
|
|
|
234
234
|
/**
|
|
235
235
|
* Constructs a new Number uniform.
|
|
236
236
|
*
|
|
237
|
-
* @param {
|
|
237
|
+
* @param {string} name - The uniform's name.
|
|
238
238
|
* @param {Color} value - The uniform's value.
|
|
239
239
|
*/
|
|
240
240
|
constructor( name, value = new Color() ) {
|
|
@@ -244,7 +244,7 @@ class ColorUniform extends Uniform {
|
|
|
244
244
|
/**
|
|
245
245
|
* This flag can be used for type testing.
|
|
246
246
|
*
|
|
247
|
-
* @type {
|
|
247
|
+
* @type {boolean}
|
|
248
248
|
* @readonly
|
|
249
249
|
* @default true
|
|
250
250
|
*/
|
|
@@ -268,7 +268,7 @@ class Matrix2Uniform extends Uniform {
|
|
|
268
268
|
/**
|
|
269
269
|
* Constructs a new Number uniform.
|
|
270
270
|
*
|
|
271
|
-
* @param {
|
|
271
|
+
* @param {string} name - The uniform's name.
|
|
272
272
|
* @param {Matrix2} value - The uniform's value.
|
|
273
273
|
*/
|
|
274
274
|
constructor( name, value = new Matrix2() ) {
|
|
@@ -278,7 +278,7 @@ class Matrix2Uniform extends Uniform {
|
|
|
278
278
|
/**
|
|
279
279
|
* This flag can be used for type testing.
|
|
280
280
|
*
|
|
281
|
-
* @type {
|
|
281
|
+
* @type {boolean}
|
|
282
282
|
* @readonly
|
|
283
283
|
* @default true
|
|
284
284
|
*/
|
|
@@ -303,7 +303,7 @@ class Matrix3Uniform extends Uniform {
|
|
|
303
303
|
/**
|
|
304
304
|
* Constructs a new Number uniform.
|
|
305
305
|
*
|
|
306
|
-
* @param {
|
|
306
|
+
* @param {string} name - The uniform's name.
|
|
307
307
|
* @param {Matrix3} value - The uniform's value.
|
|
308
308
|
*/
|
|
309
309
|
constructor( name, value = new Matrix3() ) {
|
|
@@ -313,7 +313,7 @@ class Matrix3Uniform extends Uniform {
|
|
|
313
313
|
/**
|
|
314
314
|
* This flag can be used for type testing.
|
|
315
315
|
*
|
|
316
|
-
* @type {
|
|
316
|
+
* @type {boolean}
|
|
317
317
|
* @readonly
|
|
318
318
|
* @default true
|
|
319
319
|
*/
|
|
@@ -337,7 +337,7 @@ class Matrix4Uniform extends Uniform {
|
|
|
337
337
|
/**
|
|
338
338
|
* Constructs a new Number uniform.
|
|
339
339
|
*
|
|
340
|
-
* @param {
|
|
340
|
+
* @param {string} name - The uniform's name.
|
|
341
341
|
* @param {Matrix4} value - The uniform's value.
|
|
342
342
|
*/
|
|
343
343
|
constructor( name, value = new Matrix4() ) {
|
|
@@ -347,7 +347,7 @@ class Matrix4Uniform extends Uniform {
|
|
|
347
347
|
/**
|
|
348
348
|
* This flag can be used for type testing.
|
|
349
349
|
*
|
|
350
|
-
* @type {
|
|
350
|
+
* @type {boolean}
|
|
351
351
|
* @readonly
|
|
352
352
|
* @default true
|
|
353
353
|
*/
|
|
@@ -11,7 +11,7 @@ class UniformBuffer extends Buffer {
|
|
|
11
11
|
/**
|
|
12
12
|
* Constructs a new uniform buffer.
|
|
13
13
|
*
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {string} name - The buffer's name.
|
|
15
15
|
* @param {TypedArray} [buffer=null] - The buffer.
|
|
16
16
|
*/
|
|
17
17
|
constructor( name, buffer = null ) {
|
|
@@ -21,7 +21,7 @@ class UniformBuffer extends Buffer {
|
|
|
21
21
|
/**
|
|
22
22
|
* This flag can be used for type testing.
|
|
23
23
|
*
|
|
24
|
-
* @type {
|
|
24
|
+
* @type {boolean}
|
|
25
25
|
* @readonly
|
|
26
26
|
* @default true
|
|
27
27
|
*/
|