super-three 0.173.5 → 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 +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
|
@@ -11,10 +11,37 @@ import { Vector3 } from '../math/Vector3.js';
|
|
|
11
11
|
const _axis = /*@__PURE__*/ new Vector3();
|
|
12
12
|
let _lineGeometry, _coneGeometry;
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* An 3D arrow object for visualizing directions.
|
|
16
|
+
*
|
|
17
|
+
* ```js
|
|
18
|
+
* const dir = new THREE.Vector3( 1, 2, 0 );
|
|
19
|
+
*
|
|
20
|
+
* //normalize the direction vector (convert to vector of length 1)
|
|
21
|
+
* dir.normalize();
|
|
22
|
+
*
|
|
23
|
+
* const origin = new THREE.Vector3( 0, 0, 0 );
|
|
24
|
+
* const length = 1;
|
|
25
|
+
* const hex = 0xffff00;
|
|
26
|
+
*
|
|
27
|
+
* const arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );
|
|
28
|
+
* scene.add( arrowHelper );
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @augments Object3D
|
|
32
|
+
*/
|
|
14
33
|
class ArrowHelper extends Object3D {
|
|
15
34
|
|
|
16
|
-
|
|
17
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Constructs a new arrow helper.
|
|
37
|
+
*
|
|
38
|
+
* @param {Vector3} [dir=(0, 0, 1)] - The (normalized) direction vector.
|
|
39
|
+
* @param {Vector3} [origin=(0, 0, 0)] - Point at which the arrow starts.
|
|
40
|
+
* @param {number} [length=1] - Length of the arrow in world units.
|
|
41
|
+
* @param {(number|Color|string)} [color=0xffff00] - Color of the arrow.
|
|
42
|
+
* @param {number} [headLength=length*0.2] - The length of the head of the arrow.
|
|
43
|
+
* @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.
|
|
44
|
+
*/
|
|
18
45
|
constructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {
|
|
19
46
|
|
|
20
47
|
super();
|
|
@@ -33,10 +60,20 @@ class ArrowHelper extends Object3D {
|
|
|
33
60
|
|
|
34
61
|
this.position.copy( origin );
|
|
35
62
|
|
|
63
|
+
/**
|
|
64
|
+
* The line part of the arrow helper.
|
|
65
|
+
*
|
|
66
|
+
* @type {Line}
|
|
67
|
+
*/
|
|
36
68
|
this.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );
|
|
37
69
|
this.line.matrixAutoUpdate = false;
|
|
38
70
|
this.add( this.line );
|
|
39
71
|
|
|
72
|
+
/**
|
|
73
|
+
* The cone part of the arrow helper.
|
|
74
|
+
*
|
|
75
|
+
* @type {Mesh}
|
|
76
|
+
*/
|
|
40
77
|
this.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );
|
|
41
78
|
this.cone.matrixAutoUpdate = false;
|
|
42
79
|
this.add( this.cone );
|
|
@@ -46,6 +83,11 @@ class ArrowHelper extends Object3D {
|
|
|
46
83
|
|
|
47
84
|
}
|
|
48
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Sets the direction of the helper.
|
|
88
|
+
*
|
|
89
|
+
* @param {Vector3} dir - The normalized direction vector.
|
|
90
|
+
*/
|
|
49
91
|
setDirection( dir ) {
|
|
50
92
|
|
|
51
93
|
// dir is assumed to be normalized
|
|
@@ -70,6 +112,13 @@ class ArrowHelper extends Object3D {
|
|
|
70
112
|
|
|
71
113
|
}
|
|
72
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Sets the length of the helper.
|
|
117
|
+
*
|
|
118
|
+
* @param {number} length - Length of the arrow in world units.
|
|
119
|
+
* @param {number} [headLength=length*0.2] - The length of the head of the arrow.
|
|
120
|
+
* @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.
|
|
121
|
+
*/
|
|
73
122
|
setLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {
|
|
74
123
|
|
|
75
124
|
this.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458
|
|
@@ -81,6 +130,11 @@ class ArrowHelper extends Object3D {
|
|
|
81
130
|
|
|
82
131
|
}
|
|
83
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Sets the color of the helper.
|
|
135
|
+
*
|
|
136
|
+
* @param {number|Color|string} color - The color to set.
|
|
137
|
+
*/
|
|
84
138
|
setColor( color ) {
|
|
85
139
|
|
|
86
140
|
this.line.material.color.set( color );
|
|
@@ -99,6 +153,10 @@ class ArrowHelper extends Object3D {
|
|
|
99
153
|
|
|
100
154
|
}
|
|
101
155
|
|
|
156
|
+
/**
|
|
157
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
158
|
+
* method whenever this instance is no longer used in your app.
|
|
159
|
+
*/
|
|
102
160
|
dispose() {
|
|
103
161
|
|
|
104
162
|
this.line.geometry.dispose();
|
|
@@ -110,5 +168,4 @@ class ArrowHelper extends Object3D {
|
|
|
110
168
|
|
|
111
169
|
}
|
|
112
170
|
|
|
113
|
-
|
|
114
171
|
export { ArrowHelper };
|
|
@@ -4,8 +4,24 @@ import { Float32BufferAttribute } from '../core/BufferAttribute.js';
|
|
|
4
4
|
import { BufferGeometry } from '../core/BufferGeometry.js';
|
|
5
5
|
import { Color } from '../math/Color.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* An axis object to visualize the 3 axes in a simple way.
|
|
9
|
+
* The X axis is red. The Y axis is green. The Z axis is blue.
|
|
10
|
+
*
|
|
11
|
+
* ```js
|
|
12
|
+
* const axesHelper = new THREE.AxesHelper( 5 );
|
|
13
|
+
* scene.add( axesHelper );
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @augments LineSegments
|
|
17
|
+
*/
|
|
7
18
|
class AxesHelper extends LineSegments {
|
|
8
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Constructs a new axes helper.
|
|
22
|
+
*
|
|
23
|
+
* @param {number} [size=1] - Size of the lines representing the axes.
|
|
24
|
+
*/
|
|
9
25
|
constructor( size = 1 ) {
|
|
10
26
|
|
|
11
27
|
const vertices = [
|
|
@@ -32,6 +48,14 @@ class AxesHelper extends LineSegments {
|
|
|
32
48
|
|
|
33
49
|
}
|
|
34
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Defines the colors of the axes helper.
|
|
53
|
+
*
|
|
54
|
+
* @param {number|Color|string} xAxisColor - The color for the x axis.
|
|
55
|
+
* @param {number|Color|string} yAxisColor - The color for the y axis.
|
|
56
|
+
* @param {number|Color|string} zAxisColor - The color for the z axis.
|
|
57
|
+
* @return {AxesHelper} A reference to this axes helper.
|
|
58
|
+
*/
|
|
35
59
|
setColors( xAxisColor, yAxisColor, zAxisColor ) {
|
|
36
60
|
|
|
37
61
|
const color = new Color();
|
|
@@ -55,6 +79,10 @@ class AxesHelper extends LineSegments {
|
|
|
55
79
|
|
|
56
80
|
}
|
|
57
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
84
|
+
* method whenever this instance is no longer used in your app.
|
|
85
|
+
*/
|
|
58
86
|
dispose() {
|
|
59
87
|
|
|
60
88
|
this.geometry.dispose();
|
|
@@ -3,8 +3,27 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
|
|
|
3
3
|
import { BufferAttribute, Float32BufferAttribute } from '../core/BufferAttribute.js';
|
|
4
4
|
import { BufferGeometry } from '../core/BufferGeometry.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* A helper object to visualize an instance of {@link Box3}.
|
|
8
|
+
*
|
|
9
|
+
* ```js
|
|
10
|
+
* const box = new THREE.Box3();
|
|
11
|
+
* box.setFromCenterAndSize( new THREE.Vector3( 1, 1, 1 ), new THREE.Vector3( 2, 1, 3 ) );
|
|
12
|
+
*
|
|
13
|
+
* const helper = new THREE.Box3Helper( box, 0xffff00 );
|
|
14
|
+
* scene.add( helper )
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @augments LineSegments
|
|
18
|
+
*/
|
|
6
19
|
class Box3Helper extends LineSegments {
|
|
7
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Constructs a new box3 helper.
|
|
23
|
+
*
|
|
24
|
+
* @param {Box3} box - The box to visualize.
|
|
25
|
+
* @param {number|Color|string} [color=0xffff00] - The box's color.
|
|
26
|
+
*/
|
|
8
27
|
constructor( box, color = 0xffff00 ) {
|
|
9
28
|
|
|
10
29
|
const indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );
|
|
@@ -19,6 +38,11 @@ class Box3Helper extends LineSegments {
|
|
|
19
38
|
|
|
20
39
|
super( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );
|
|
21
40
|
|
|
41
|
+
/**
|
|
42
|
+
* The box being visualized.
|
|
43
|
+
*
|
|
44
|
+
* @type {Box3}
|
|
45
|
+
*/
|
|
22
46
|
this.box = box;
|
|
23
47
|
|
|
24
48
|
this.type = 'Box3Helper';
|
|
@@ -43,6 +67,10 @@ class Box3Helper extends LineSegments {
|
|
|
43
67
|
|
|
44
68
|
}
|
|
45
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
72
|
+
* method whenever this instance is no longer used in your app.
|
|
73
|
+
*/
|
|
46
74
|
dispose() {
|
|
47
75
|
|
|
48
76
|
this.geometry.dispose();
|
package/src/helpers/BoxHelper.js
CHANGED
|
@@ -6,8 +6,31 @@ import { BufferGeometry } from '../core/BufferGeometry.js';
|
|
|
6
6
|
|
|
7
7
|
const _box = /*@__PURE__*/ new Box3();
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Helper object to graphically show the world-axis-aligned bounding box
|
|
11
|
+
* around an object. The actual bounding box is handled with {@link Box3},
|
|
12
|
+
* this is just a visual helper for debugging. It can be automatically
|
|
13
|
+
* resized with {@link BoxHelper#update} when the object it's created from
|
|
14
|
+
* is transformed. Note that the object must have a geometry for this to work,
|
|
15
|
+
* so it won't work with sprites.
|
|
16
|
+
*
|
|
17
|
+
* ```js
|
|
18
|
+
* const sphere = new THREE.SphereGeometry();
|
|
19
|
+
* const object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );
|
|
20
|
+
* const box = new THREE.BoxHelper( object, 0xffff00 );
|
|
21
|
+
* scene.add( box );
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @augments LineSegments
|
|
25
|
+
*/
|
|
9
26
|
class BoxHelper extends LineSegments {
|
|
10
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Constructs a new box helper.
|
|
30
|
+
*
|
|
31
|
+
* @param {Object3D} [object] - The 3D object to show the world-axis-aligned bounding box.
|
|
32
|
+
* @param {number|Color|string} [color=0xffff00] - The box's color.
|
|
33
|
+
*/
|
|
11
34
|
constructor( object, color = 0xffff00 ) {
|
|
12
35
|
|
|
13
36
|
const indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );
|
|
@@ -19,6 +42,11 @@ class BoxHelper extends LineSegments {
|
|
|
19
42
|
|
|
20
43
|
super( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );
|
|
21
44
|
|
|
45
|
+
/**
|
|
46
|
+
* The 3D object being visualized.
|
|
47
|
+
*
|
|
48
|
+
* @type {Object3D}
|
|
49
|
+
*/
|
|
22
50
|
this.object = object;
|
|
23
51
|
this.type = 'BoxHelper';
|
|
24
52
|
|
|
@@ -28,13 +56,11 @@ class BoxHelper extends LineSegments {
|
|
|
28
56
|
|
|
29
57
|
}
|
|
30
58
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
59
|
+
/**
|
|
60
|
+
* Updates the helper's geometry to match the dimensions of the object,
|
|
61
|
+
* including any children.
|
|
62
|
+
*/
|
|
63
|
+
update() {
|
|
38
64
|
|
|
39
65
|
if ( this.object !== undefined ) {
|
|
40
66
|
|
|
@@ -81,6 +107,12 @@ class BoxHelper extends LineSegments {
|
|
|
81
107
|
|
|
82
108
|
}
|
|
83
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Updates the wireframe box for the passed object.
|
|
112
|
+
*
|
|
113
|
+
* @param {Object3D} object - The 3D object to create the helper for.
|
|
114
|
+
* @return {BoxHelper} A reference to this instance.
|
|
115
|
+
*/
|
|
84
116
|
setFromObject( object ) {
|
|
85
117
|
|
|
86
118
|
this.object = object;
|
|
@@ -100,6 +132,10 @@ class BoxHelper extends LineSegments {
|
|
|
100
132
|
|
|
101
133
|
}
|
|
102
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
137
|
+
* method whenever this instance is no longer used in your app.
|
|
138
|
+
*/
|
|
103
139
|
dispose() {
|
|
104
140
|
|
|
105
141
|
this.geometry.dispose();
|
|
@@ -11,14 +11,28 @@ const _vector = /*@__PURE__*/ new Vector3();
|
|
|
11
11
|
const _camera = /*@__PURE__*/ new Camera();
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* This helps with visualizing what a camera contains in its frustum. It
|
|
15
|
+
* visualizes the frustum of a camera using a line segments.
|
|
16
|
+
*
|
|
17
|
+
* Based on frustum visualization in [lightgl.js shadowmap example]{@link https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html}.
|
|
18
|
+
*
|
|
19
|
+
* `CameraHelper` must be a child of the scene.
|
|
20
|
+
*
|
|
21
|
+
* ```js
|
|
22
|
+
* const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
|
|
23
|
+
* const helper = new THREE.CameraHelper( camera );
|
|
24
|
+
* scene.add( helper );
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @augments LineSegments
|
|
18
28
|
*/
|
|
19
|
-
|
|
20
29
|
class CameraHelper extends LineSegments {
|
|
21
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Constructs a new arrow helper.
|
|
33
|
+
*
|
|
34
|
+
* @param {Camera} camera - The camera to visualize.
|
|
35
|
+
*/
|
|
22
36
|
constructor( camera ) {
|
|
23
37
|
|
|
24
38
|
const geometry = new BufferGeometry();
|
|
@@ -105,12 +119,22 @@ class CameraHelper extends LineSegments {
|
|
|
105
119
|
|
|
106
120
|
this.type = 'CameraHelper';
|
|
107
121
|
|
|
122
|
+
/**
|
|
123
|
+
* The camera being visualized.
|
|
124
|
+
*
|
|
125
|
+
* @type {Camera}
|
|
126
|
+
*/
|
|
108
127
|
this.camera = camera;
|
|
109
128
|
if ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();
|
|
110
129
|
|
|
111
130
|
this.matrix = camera.matrixWorld;
|
|
112
131
|
this.matrixAutoUpdate = false;
|
|
113
132
|
|
|
133
|
+
/**
|
|
134
|
+
* This contains the points used to visualize the camera.
|
|
135
|
+
*
|
|
136
|
+
* @type {Object<string,Array<number>>}
|
|
137
|
+
*/
|
|
114
138
|
this.pointMap = pointMap;
|
|
115
139
|
|
|
116
140
|
this.update();
|
|
@@ -127,6 +151,15 @@ class CameraHelper extends LineSegments {
|
|
|
127
151
|
|
|
128
152
|
}
|
|
129
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Defines the colors of the helper.
|
|
156
|
+
*
|
|
157
|
+
* @param {Color} frustum - The frustum line color.
|
|
158
|
+
* @param {Color} cone - The cone line color.
|
|
159
|
+
* @param {Color} up - The up line color.
|
|
160
|
+
* @param {Color} target - The target line color.
|
|
161
|
+
* @param {Color} cross - The cross line color.
|
|
162
|
+
*/
|
|
130
163
|
setColors( frustum, cone, up, target, cross ) {
|
|
131
164
|
|
|
132
165
|
const geometry = this.geometry;
|
|
@@ -184,6 +217,9 @@ class CameraHelper extends LineSegments {
|
|
|
184
217
|
|
|
185
218
|
}
|
|
186
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Updates the helper based on the projection matrix of the camera.
|
|
222
|
+
*/
|
|
187
223
|
update() {
|
|
188
224
|
|
|
189
225
|
const geometry = this.geometry;
|
|
@@ -239,6 +275,10 @@ class CameraHelper extends LineSegments {
|
|
|
239
275
|
|
|
240
276
|
}
|
|
241
277
|
|
|
278
|
+
/**
|
|
279
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
280
|
+
* method whenever this instance is no longer used in your app.
|
|
281
|
+
*/
|
|
242
282
|
dispose() {
|
|
243
283
|
|
|
244
284
|
this.geometry.dispose();
|
|
@@ -9,17 +9,51 @@ const _v1 = /*@__PURE__*/ new Vector3();
|
|
|
9
9
|
const _v2 = /*@__PURE__*/ new Vector3();
|
|
10
10
|
const _v3 = /*@__PURE__*/ new Vector3();
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Helper object to assist with visualizing a {@link DirectionalLight}'s
|
|
14
|
+
* effect on the scene. This consists of plane and a line representing the
|
|
15
|
+
* light's position and direction.
|
|
16
|
+
*
|
|
17
|
+
* ```js
|
|
18
|
+
* const light = new THREE.DirectionalLight( 0xFFFFFF );
|
|
19
|
+
* scene.add( light );
|
|
20
|
+
*
|
|
21
|
+
* const helper = new THREE.DirectionalLightHelper( light, 5 );
|
|
22
|
+
* scene.add( helper );
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @augments Object3D
|
|
26
|
+
*/
|
|
12
27
|
class DirectionalLightHelper extends Object3D {
|
|
13
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Constructs a new directional light helper.
|
|
31
|
+
*
|
|
32
|
+
* @param {DirectionalLight} light - The light to be visualized.
|
|
33
|
+
* @param {number} [size=1] - The dimensions of the plane.
|
|
34
|
+
* @param {number|Color|string} [color] - The helper's color. If not set, the helper will take
|
|
35
|
+
* the color of the light.
|
|
36
|
+
*/
|
|
14
37
|
constructor( light, size, color ) {
|
|
15
38
|
|
|
16
39
|
super();
|
|
17
40
|
|
|
41
|
+
/**
|
|
42
|
+
* The light being visualized.
|
|
43
|
+
*
|
|
44
|
+
* @type {DirectionalLight}
|
|
45
|
+
*/
|
|
18
46
|
this.light = light;
|
|
19
47
|
|
|
20
48
|
this.matrix = light.matrixWorld;
|
|
21
49
|
this.matrixAutoUpdate = false;
|
|
22
50
|
|
|
51
|
+
/**
|
|
52
|
+
* The color parameter passed in the constructor.
|
|
53
|
+
* If not set, the helper will take the color of the light.
|
|
54
|
+
*
|
|
55
|
+
* @type {number|Color|string}
|
|
56
|
+
*/
|
|
23
57
|
this.color = color;
|
|
24
58
|
|
|
25
59
|
this.type = 'DirectionalLightHelper';
|
|
@@ -37,12 +71,22 @@ class DirectionalLightHelper extends Object3D {
|
|
|
37
71
|
|
|
38
72
|
const material = new LineBasicMaterial( { fog: false, toneMapped: false } );
|
|
39
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Contains the line showing the location of the directional light.
|
|
76
|
+
*
|
|
77
|
+
* @type {Line}
|
|
78
|
+
*/
|
|
40
79
|
this.lightPlane = new Line( geometry, material );
|
|
41
80
|
this.add( this.lightPlane );
|
|
42
81
|
|
|
43
82
|
geometry = new BufferGeometry();
|
|
44
83
|
geometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );
|
|
45
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Represents the target line of the directional light.
|
|
87
|
+
*
|
|
88
|
+
* @type {Line}
|
|
89
|
+
*/
|
|
46
90
|
this.targetLine = new Line( geometry, material );
|
|
47
91
|
this.add( this.targetLine );
|
|
48
92
|
|
|
@@ -50,6 +94,10 @@ class DirectionalLightHelper extends Object3D {
|
|
|
50
94
|
|
|
51
95
|
}
|
|
52
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
99
|
+
* method whenever this instance is no longer used in your app.
|
|
100
|
+
*/
|
|
53
101
|
dispose() {
|
|
54
102
|
|
|
55
103
|
this.lightPlane.geometry.dispose();
|
|
@@ -59,6 +107,10 @@ class DirectionalLightHelper extends Object3D {
|
|
|
59
107
|
|
|
60
108
|
}
|
|
61
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Updates the helper to match the position and direction of the
|
|
112
|
+
* light being visualized.
|
|
113
|
+
*/
|
|
62
114
|
update() {
|
|
63
115
|
|
|
64
116
|
this.light.updateWorldMatrix( true, false );
|
|
@@ -4,8 +4,30 @@ import { Float32BufferAttribute } from '../core/BufferAttribute.js';
|
|
|
4
4
|
import { BufferGeometry } from '../core/BufferGeometry.js';
|
|
5
5
|
import { Color } from '../math/Color.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* The helper is an object to define grids. Grids are two-dimensional
|
|
9
|
+
* arrays of lines.
|
|
10
|
+
*
|
|
11
|
+
* ```js
|
|
12
|
+
* const size = 10;
|
|
13
|
+
* const divisions = 10;
|
|
14
|
+
*
|
|
15
|
+
* const gridHelper = new THREE.GridHelper( size, divisions );
|
|
16
|
+
* scene.add( gridHelper );
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @augments LineSegments
|
|
20
|
+
*/
|
|
7
21
|
class GridHelper extends LineSegments {
|
|
8
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Constructs a new grid helper.
|
|
25
|
+
*
|
|
26
|
+
* @param {number} [size=10] - The size of the grid.
|
|
27
|
+
* @param {number} [divisions=10] - The number of divisions across the grid.
|
|
28
|
+
* @param {number|Color|string} [color1=0x444444] - The color of the center line.
|
|
29
|
+
* @param {number|Color|string} [color2=0x888888] - The color of the lines of the grid.
|
|
30
|
+
*/
|
|
9
31
|
constructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {
|
|
10
32
|
|
|
11
33
|
color1 = new Color( color1 );
|
|
@@ -43,6 +65,10 @@ class GridHelper extends LineSegments {
|
|
|
43
65
|
|
|
44
66
|
}
|
|
45
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
70
|
+
* method whenever this instance is no longer used in your app.
|
|
71
|
+
*/
|
|
46
72
|
dispose() {
|
|
47
73
|
|
|
48
74
|
this.geometry.dispose();
|
|
@@ -10,17 +10,48 @@ const _vector = /*@__PURE__*/ new Vector3();
|
|
|
10
10
|
const _color1 = /*@__PURE__*/ new Color();
|
|
11
11
|
const _color2 = /*@__PURE__*/ new Color();
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Creates a visual aid consisting of a spherical mesh for a
|
|
15
|
+
* given {@link HemisphereLight}.
|
|
16
|
+
*
|
|
17
|
+
* ```js
|
|
18
|
+
* const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
|
|
19
|
+
* const helper = new THREE.HemisphereLightHelper( light, 5 );
|
|
20
|
+
* scene.add( helper );
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @augments Object3D
|
|
24
|
+
*/
|
|
13
25
|
class HemisphereLightHelper extends Object3D {
|
|
14
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Constructs a new hemisphere light helper.
|
|
29
|
+
*
|
|
30
|
+
* @param {HemisphereLight} light - The light to be visualized.
|
|
31
|
+
* @param {number} [size=1] - The size of the mesh used to visualize the light.
|
|
32
|
+
* @param {number|Color|string} [color] - The helper's color. If not set, the helper will take
|
|
33
|
+
* the color of the light.
|
|
34
|
+
*/
|
|
15
35
|
constructor( light, size, color ) {
|
|
16
36
|
|
|
17
37
|
super();
|
|
18
38
|
|
|
39
|
+
/**
|
|
40
|
+
* The light being visualized.
|
|
41
|
+
*
|
|
42
|
+
* @type {HemisphereLight}
|
|
43
|
+
*/
|
|
19
44
|
this.light = light;
|
|
20
45
|
|
|
21
46
|
this.matrix = light.matrixWorld;
|
|
22
47
|
this.matrixAutoUpdate = false;
|
|
23
48
|
|
|
49
|
+
/**
|
|
50
|
+
* The color parameter passed in the constructor.
|
|
51
|
+
* If not set, the helper will take the color of the light.
|
|
52
|
+
*
|
|
53
|
+
* @type {number|Color|string}
|
|
54
|
+
*/
|
|
24
55
|
this.color = color;
|
|
25
56
|
|
|
26
57
|
this.type = 'HemisphereLightHelper';
|
|
@@ -42,6 +73,10 @@ class HemisphereLightHelper extends Object3D {
|
|
|
42
73
|
|
|
43
74
|
}
|
|
44
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
78
|
+
* method whenever this instance is no longer used in your app.
|
|
79
|
+
*/
|
|
45
80
|
dispose() {
|
|
46
81
|
|
|
47
82
|
this.children[ 0 ].geometry.dispose();
|
|
@@ -49,6 +84,10 @@ class HemisphereLightHelper extends Object3D {
|
|
|
49
84
|
|
|
50
85
|
}
|
|
51
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Updates the helper to match the position and direction of the
|
|
89
|
+
* light being visualized.
|
|
90
|
+
*/
|
|
52
91
|
update() {
|
|
53
92
|
|
|
54
93
|
const mesh = this.children[ 0 ];
|
|
@@ -5,8 +5,26 @@ import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js';
|
|
|
5
5
|
import { Float32BufferAttribute } from '../core/BufferAttribute.js';
|
|
6
6
|
import { BufferGeometry } from '../core/BufferGeometry.js';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* A helper object to visualize an instance of {@link Plane}.
|
|
10
|
+
*
|
|
11
|
+
* ```js
|
|
12
|
+
* const plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );
|
|
13
|
+
* const helper = new THREE.PlaneHelper( plane, 1, 0xffff00 );
|
|
14
|
+
* scene.add( helper );
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @augments Line
|
|
18
|
+
*/
|
|
8
19
|
class PlaneHelper extends Line {
|
|
9
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Constructs a new plane helper.
|
|
23
|
+
*
|
|
24
|
+
* @param {Plane} plane - The plane to be visualized.
|
|
25
|
+
* @param {number} [size=1] - The side length of plane helper.
|
|
26
|
+
* @param {number|Color|string} [hex=0xffff00] - The helper's color.
|
|
27
|
+
*/
|
|
10
28
|
constructor( plane, size = 1, hex = 0xffff00 ) {
|
|
11
29
|
|
|
12
30
|
const color = hex;
|
|
@@ -21,8 +39,19 @@ class PlaneHelper extends Line {
|
|
|
21
39
|
|
|
22
40
|
this.type = 'PlaneHelper';
|
|
23
41
|
|
|
42
|
+
/**
|
|
43
|
+
* The plane being visualized.
|
|
44
|
+
*
|
|
45
|
+
* @type {Plane}
|
|
46
|
+
*/
|
|
24
47
|
this.plane = plane;
|
|
25
48
|
|
|
49
|
+
/**
|
|
50
|
+
* The side length of plane helper.
|
|
51
|
+
*
|
|
52
|
+
* @type {number}
|
|
53
|
+
* @default 1
|
|
54
|
+
*/
|
|
26
55
|
this.size = size;
|
|
27
56
|
|
|
28
57
|
const positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];
|
|
@@ -49,6 +78,10 @@ class PlaneHelper extends Line {
|
|
|
49
78
|
|
|
50
79
|
}
|
|
51
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Updates the helper to match the position and direction of the
|
|
83
|
+
* light being visualized.
|
|
84
|
+
*/
|
|
52
85
|
dispose() {
|
|
53
86
|
|
|
54
87
|
this.geometry.dispose();
|