super-three 0.175.0 → 0.177.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/README.md +3 -3
- package/build/three.cjs +7631 -6743
- package/build/three.core.js +7496 -6758
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +172 -22
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +14 -6
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +3948 -1678
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +3941 -1678
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +0 -1
- package/examples/jsm/animation/AnimationClipCreator.js +1 -0
- package/examples/jsm/animation/CCDIKSolver.js +6 -3
- package/examples/jsm/capabilities/WebGL.js +1 -0
- package/examples/jsm/capabilities/WebGPU.js +1 -0
- package/examples/jsm/controls/ArcballControls.js +14 -3
- package/examples/jsm/controls/DragControls.js +1 -0
- package/examples/jsm/controls/FirstPersonControls.js +1 -0
- package/examples/jsm/controls/FlyControls.js +1 -0
- package/examples/jsm/controls/MapControls.js +1 -0
- package/examples/jsm/controls/OrbitControls.js +1 -0
- package/examples/jsm/controls/PointerLockControls.js +5 -3
- package/examples/jsm/controls/TrackballControls.js +1 -0
- package/examples/jsm/controls/TransformControls.js +1 -0
- package/examples/jsm/csm/CSM.js +2 -0
- package/examples/jsm/csm/CSMFrustum.js +2 -0
- package/examples/jsm/csm/CSMHelper.js +1 -0
- package/examples/jsm/csm/CSMShader.js +4 -1
- package/examples/jsm/csm/CSMShadowNode.js +18 -4
- package/examples/jsm/curves/CurveExtras.js +14 -0
- package/examples/jsm/curves/NURBSCurve.js +1 -0
- package/examples/jsm/curves/NURBSSurface.js +2 -0
- package/examples/jsm/curves/NURBSUtils.js +4 -1
- package/examples/jsm/curves/NURBSVolume.js +2 -0
- package/examples/jsm/effects/AnaglyphEffect.js +2 -0
- package/examples/jsm/effects/AsciiEffect.js +2 -0
- package/examples/jsm/effects/OutlineEffect.js +2 -0
- package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -0
- package/examples/jsm/effects/StereoEffect.js +2 -0
- package/examples/jsm/environments/DebugEnvironment.js +1 -0
- package/examples/jsm/environments/RoomEnvironment.js +49 -35
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -0
- package/examples/jsm/exporters/GLTFExporter.js +7 -4
- package/examples/jsm/exporters/KTX2Exporter.js +2 -0
- package/examples/jsm/exporters/OBJExporter.js +3 -1
- package/examples/jsm/exporters/PLYExporter.js +4 -2
- package/examples/jsm/exporters/STLExporter.js +2 -0
- package/examples/jsm/exporters/USDZExporter.js +12 -10
- package/examples/jsm/geometries/BoxLineGeometry.js +1 -0
- package/examples/jsm/geometries/ConvexGeometry.js +1 -0
- package/examples/jsm/geometries/DecalGeometry.js +1 -0
- package/examples/jsm/geometries/ParametricFunctions.js +4 -1
- package/examples/jsm/geometries/ParametricGeometry.js +1 -0
- package/examples/jsm/geometries/RoundedBoxGeometry.js +1 -0
- package/examples/jsm/geometries/TeapotGeometry.js +1 -0
- package/examples/jsm/geometries/TextGeometry.js +1 -0
- package/examples/jsm/helpers/LightProbeHelper.js +1 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -0
- package/examples/jsm/helpers/OctreeHelper.js +1 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +1 -0
- package/examples/jsm/helpers/RapierHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +5 -4
- package/examples/jsm/helpers/VertexNormalsHelper.js +1 -0
- package/examples/jsm/helpers/VertexTangentsHelper.js +1 -0
- package/examples/jsm/helpers/ViewHelper.js +1 -0
- package/examples/jsm/interactive/HTMLMesh.js +7 -0
- package/examples/jsm/interactive/InteractiveGroup.js +1 -0
- package/examples/jsm/interactive/SelectionBox.js +2 -0
- package/examples/jsm/interactive/SelectionHelper.js +2 -0
- package/examples/jsm/lighting/TiledLighting.js +1 -0
- package/examples/jsm/lights/LightProbeGenerator.js +1 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +1 -0
- package/examples/jsm/lines/Line2.js +1 -0
- package/examples/jsm/lines/LineGeometry.js +1 -0
- package/examples/jsm/lines/LineMaterial.js +4 -4
- package/examples/jsm/lines/LineSegments2.js +1 -0
- package/examples/jsm/lines/LineSegmentsGeometry.js +1 -0
- package/examples/jsm/lines/Wireframe.js +1 -0
- package/examples/jsm/lines/WireframeGeometry2.js +1 -0
- package/examples/jsm/lines/webgpu/Line2.js +1 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +3 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +1 -0
- package/examples/jsm/loaders/AMFLoader.js +1 -0
- package/examples/jsm/loaders/BVHLoader.js +1 -0
- package/examples/jsm/loaders/ColladaLoader.js +5 -4
- package/examples/jsm/loaders/DDSLoader.js +1 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -1
- package/examples/jsm/loaders/EXRLoader.js +1 -0
- package/examples/jsm/loaders/FBXLoader.js +24 -22
- package/examples/jsm/loaders/FontLoader.js +1 -0
- package/examples/jsm/loaders/GCodeLoader.js +1 -0
- package/examples/jsm/loaders/GLTFLoader.js +10 -82
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -0
- package/examples/jsm/loaders/IESLoader.js +1 -0
- package/examples/jsm/loaders/KMZLoader.js +1 -0
- package/examples/jsm/loaders/KTX2Loader.js +67 -26
- package/examples/jsm/loaders/KTXLoader.js +1 -0
- package/examples/jsm/loaders/LDrawLoader.js +55 -3
- package/examples/jsm/loaders/LUT3dlLoader.js +1 -0
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -0
- package/examples/jsm/loaders/LUTImageLoader.js +1 -0
- package/examples/jsm/loaders/LWOLoader.js +1 -13
- package/examples/jsm/loaders/LottieLoader.js +15 -0
- package/examples/jsm/loaders/MD2Loader.js +1 -0
- package/examples/jsm/loaders/MDDLoader.js +1 -0
- package/examples/jsm/loaders/MTLLoader.js +4 -3
- package/examples/jsm/loaders/MaterialXLoader.js +1 -0
- package/examples/jsm/loaders/NRRDLoader.js +1 -0
- package/examples/jsm/loaders/OBJLoader.js +1 -0
- package/examples/jsm/loaders/PCDLoader.js +122 -19
- package/examples/jsm/loaders/PDBLoader.js +1 -0
- package/examples/jsm/loaders/PLYLoader.js +1 -0
- package/examples/jsm/loaders/PVRLoader.js +1 -0
- package/examples/jsm/loaders/RGBELoader.js +1 -0
- package/examples/jsm/loaders/RGBMLoader.js +1 -0
- package/examples/jsm/loaders/STLLoader.js +1 -0
- package/examples/jsm/loaders/SVGLoader.js +1 -0
- package/examples/jsm/loaders/TDSLoader.js +1 -0
- package/examples/jsm/loaders/TGALoader.js +1 -0
- package/examples/jsm/loaders/TIFFLoader.js +1 -0
- package/examples/jsm/loaders/TTFLoader.js +1 -0
- package/examples/jsm/loaders/USDZLoader.js +1 -0
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -0
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +3 -2
- package/examples/jsm/loaders/VTKLoader.js +1 -0
- package/examples/jsm/loaders/XYZLoader.js +1 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +74 -74
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +1 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +1 -0
- package/examples/jsm/math/Capsule.js +2 -0
- package/examples/jsm/math/ColorConverter.js +1 -0
- package/examples/jsm/math/ConvexHull.js +2 -0
- package/examples/jsm/math/ImprovedNoise.js +19 -14
- package/examples/jsm/math/Lut.js +2 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +2 -0
- package/examples/jsm/math/OBB.js +2 -0
- package/examples/jsm/math/Octree.js +20 -1
- package/examples/jsm/math/SimplexNoise.js +2 -0
- package/examples/jsm/misc/ConvexObjectBreaker.js +3 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/Gyroscope.js +1 -0
- package/examples/jsm/misc/MD2Character.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +5 -3
- package/examples/jsm/misc/MorphAnimMesh.js +1 -0
- package/examples/jsm/misc/MorphBlendMesh.js +1 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +2 -0
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +5 -0
- package/examples/jsm/misc/Timer.js +2 -0
- package/examples/jsm/misc/TubePainter.js +1 -0
- package/examples/jsm/misc/Volume.js +2 -0
- package/examples/jsm/misc/VolumeSlice.js +1 -0
- package/examples/jsm/modifiers/CurveModifier.js +3 -0
- package/examples/jsm/modifiers/CurveModifierGPU.js +2 -0
- package/examples/jsm/modifiers/EdgeSplitModifier.js +2 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -0
- package/examples/jsm/modifiers/TessellateModifier.js +2 -0
- package/examples/jsm/objects/GroundedSkybox.js +1 -0
- package/examples/jsm/objects/Lensflare.js +3 -0
- package/examples/jsm/objects/LensflareMesh.js +1 -0
- package/examples/jsm/objects/MarchingCubes.js +2 -0
- package/examples/jsm/objects/Reflector.js +1 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Refractor.js +1 -0
- package/examples/jsm/objects/ShadowMesh.js +1 -0
- package/examples/jsm/objects/Sky.js +2 -1
- package/examples/jsm/objects/SkyMesh.js +20 -17
- package/examples/jsm/objects/Water.js +1 -0
- package/examples/jsm/objects/Water2.js +1 -0
- package/examples/jsm/objects/Water2Mesh.js +3 -1
- package/examples/jsm/objects/WaterMesh.js +2 -1
- package/examples/jsm/physics/AmmoPhysics.js +1 -0
- package/examples/jsm/physics/JoltPhysics.js +1 -0
- package/examples/jsm/physics/RapierPhysics.js +58 -1
- package/examples/jsm/postprocessing/AfterimagePass.js +20 -2
- package/examples/jsm/postprocessing/BloomPass.js +2 -1
- package/examples/jsm/postprocessing/BokehPass.js +2 -1
- package/examples/jsm/postprocessing/ClearPass.js +1 -0
- package/examples/jsm/postprocessing/CubeTexturePass.js +1 -0
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
- package/examples/jsm/postprocessing/EffectComposer.js +5 -6
- package/examples/jsm/postprocessing/FXAAPass.js +40 -0
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/GTAOPass.js +4 -3
- package/examples/jsm/postprocessing/GlitchPass.js +2 -1
- package/examples/jsm/postprocessing/HalftonePass.js +2 -1
- package/examples/jsm/postprocessing/LUTPass.js +1 -0
- package/examples/jsm/postprocessing/MaskPass.js +1 -0
- package/examples/jsm/postprocessing/OutlinePass.js +5 -2
- package/examples/jsm/postprocessing/OutputPass.js +1 -0
- package/examples/jsm/postprocessing/Pass.js +3 -1
- package/examples/jsm/postprocessing/RenderPass.js +1 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +2 -1
- package/examples/jsm/postprocessing/RenderTransitionPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +3 -2
- package/examples/jsm/postprocessing/SMAAPass.js +3 -2
- package/examples/jsm/postprocessing/SSAARenderPass.js +2 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -1
- package/examples/jsm/postprocessing/SSRPass.js +4 -3
- package/examples/jsm/postprocessing/SavePass.js +2 -1
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -0
- package/examples/jsm/postprocessing/TexturePass.js +1 -0
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -1
- package/examples/jsm/renderers/CSS2DRenderer.js +3 -0
- package/examples/jsm/renderers/CSS3DRenderer.js +4 -0
- package/examples/jsm/renderers/Projector.js +2 -0
- package/examples/jsm/renderers/SVGRenderer.js +3 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +4 -1
- package/examples/jsm/shaders/AfterimageShader.js +4 -1
- package/examples/jsm/shaders/BasicShader.js +4 -1
- package/examples/jsm/shaders/BleachBypassShader.js +4 -1
- package/examples/jsm/shaders/BlendShader.js +4 -1
- package/examples/jsm/shaders/BokehShader.js +4 -1
- package/examples/jsm/shaders/BokehShader2.js +4 -1
- package/examples/jsm/shaders/BrightnessContrastShader.js +4 -1
- package/examples/jsm/shaders/ColorCorrectionShader.js +4 -1
- package/examples/jsm/shaders/ColorifyShader.js +4 -1
- package/examples/jsm/shaders/ConvolutionShader.js +4 -1
- package/examples/jsm/shaders/CopyShader.js +4 -1
- package/examples/jsm/shaders/DOFMipMapShader.js +4 -1
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +4 -1
- package/examples/jsm/shaders/DigitalGlitch.js +4 -1
- package/examples/jsm/shaders/DotScreenShader.js +4 -1
- package/examples/jsm/shaders/ExposureShader.js +4 -1
- package/examples/jsm/shaders/FXAAShader.js +4 -1
- package/examples/jsm/shaders/FilmShader.js +4 -1
- package/examples/jsm/shaders/FocusShader.js +4 -1
- package/examples/jsm/shaders/FreiChenShader.js +4 -1
- package/examples/jsm/shaders/GTAOShader.js +4 -1
- package/examples/jsm/shaders/GammaCorrectionShader.js +4 -1
- package/examples/jsm/shaders/GodRaysShader.js +4 -1
- package/examples/jsm/shaders/HalftoneShader.js +4 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +4 -1
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/HueSaturationShader.js +4 -1
- package/examples/jsm/shaders/KaleidoShader.js +4 -1
- package/examples/jsm/shaders/LuminosityHighPassShader.js +4 -1
- package/examples/jsm/shaders/LuminosityShader.js +4 -1
- package/examples/jsm/shaders/MirrorShader.js +4 -1
- package/examples/jsm/shaders/NormalMapShader.js +4 -1
- package/examples/jsm/shaders/OutputShader.js +4 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +4 -1
- package/examples/jsm/shaders/RGBShiftShader.js +4 -1
- package/examples/jsm/shaders/SAOShader.js +4 -1
- package/examples/jsm/shaders/SMAAShader.js +1 -0
- package/examples/jsm/shaders/SSAOShader.js +4 -1
- package/examples/jsm/shaders/SSRShader.js +1 -0
- package/examples/jsm/shaders/SepiaShader.js +4 -1
- package/examples/jsm/shaders/SobelOperatorShader.js +4 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +4 -1
- package/examples/jsm/shaders/TechnicolorShader.js +4 -1
- package/examples/jsm/shaders/ToonShader.js +2 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +4 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +4 -1
- package/examples/jsm/shaders/VelocityShader.js +4 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +4 -1
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/VignetteShader.js +4 -1
- package/examples/jsm/shaders/VolumeShader.js +5 -2
- package/examples/jsm/shaders/WaterRefractionShader.js +4 -1
- package/examples/jsm/textures/FlakesTexture.js +2 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +1 -2
- package/examples/jsm/transpiler/TSLEncoder.js +52 -8
- package/examples/jsm/transpiler/Transpiler.js +2 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
- package/examples/jsm/tsl/display/BloomNode.js +1 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
- package/examples/jsm/tsl/display/FXAANode.js +3 -2
- package/examples/jsm/tsl/display/FilmNode.js +1 -0
- package/examples/jsm/tsl/display/GTAONode.js +1 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +2 -27
- package/examples/jsm/tsl/display/LensflareNode.js +1 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
- package/examples/jsm/tsl/display/OutlineNode.js +1 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
- package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
- package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
- package/examples/jsm/tsl/display/SMAANode.js +9 -8
- package/examples/jsm/tsl/display/SSAAPassNode.js +3 -2
- package/examples/jsm/tsl/display/SSRNode.js +1 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
- package/examples/jsm/tsl/display/TRAAPassNode.js +5 -4
- package/examples/jsm/tsl/display/TransitionNode.js +1 -0
- package/examples/jsm/tsl/display/hashBlur.js +28 -6
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +4 -3
- package/examples/jsm/tsl/math/Bayer.js +4 -1
- package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
- package/examples/jsm/tsl/utils/Raymarching.js +6 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
- package/examples/jsm/utils/GeometryUtils.js +4 -1
- package/examples/jsm/utils/LDrawUtils.js +2 -0
- package/examples/jsm/utils/SceneOptimizer.js +2 -0
- package/examples/jsm/utils/SceneUtils.js +4 -1
- package/examples/jsm/utils/ShadowMapViewer.js +2 -0
- package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
- package/examples/jsm/utils/SkeletonUtils.js +4 -1
- package/examples/jsm/utils/SortUtils.js +4 -1
- package/examples/jsm/utils/UVsDebug.js +4 -1
- package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
- package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
- package/examples/jsm/utils/WorkerPool.js +2 -0
- package/examples/jsm/webxr/ARButton.js +1 -0
- package/examples/jsm/webxr/OculusHandModel.js +1 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
- package/examples/jsm/webxr/Text2D.js +4 -1
- package/examples/jsm/webxr/VRButton.js +1 -0
- package/examples/jsm/webxr/XRButton.js +1 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
- package/examples/jsm/webxr/XREstimatedLight.js +1 -0
- package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
- package/examples/jsm/webxr/XRPlanes.js +1 -0
- package/package.json +6 -4
- package/src/Three.Core.js +1 -1
- package/src/Three.TSL.js +13 -5
- package/src/Three.WebGPU.Nodes.js +1 -0
- package/src/Three.WebGPU.js +1 -0
- package/src/audio/AudioListener.js +13 -10
- package/src/cameras/ArrayCamera.js +9 -1
- package/src/constants.js +47 -20
- package/src/core/BufferAttribute.js +1 -1
- package/src/core/BufferGeometry.js +2 -5
- package/src/core/Object3D.js +22 -21
- package/src/core/RenderTarget.js +65 -21
- package/src/core/RenderTarget3D.js +1 -0
- package/src/extras/TextureUtils.js +1 -5
- package/src/extras/core/Curve.js +1 -1
- package/src/geometries/CapsuleGeometry.js +167 -17
- package/src/geometries/ExtrudeGeometry.js +39 -29
- package/src/helpers/ArrowHelper.js +2 -2
- package/src/helpers/SkeletonHelper.js +1 -1
- package/src/lights/LightShadow.js +14 -0
- package/src/lights/SpotLightShadow.js +9 -1
- package/src/lights/webgpu/ProjectorLight.js +46 -0
- package/src/loaders/BufferGeometryLoader.js +1 -10
- package/src/loaders/ImageBitmapLoader.js +21 -5
- package/src/loaders/ObjectLoader.js +44 -16
- package/src/loaders/nodes/NodeObjectLoader.js +2 -2
- package/src/materials/Material.js +1 -7
- package/src/materials/nodes/NodeMaterial.js +81 -18
- package/src/materials/nodes/manager/NodeMaterialObserver.js +20 -2
- package/src/math/Box3.js +28 -0
- package/src/math/Color.js +7 -7
- package/src/math/ColorManagement.js +22 -3
- package/src/math/FrustumArray.js +253 -0
- package/src/math/Ray.js +2 -0
- package/src/math/Sphere.js +28 -0
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +1 -0
- package/src/nodes/accessors/Bitangent.js +31 -9
- package/src/nodes/accessors/Camera.js +31 -4
- package/src/nodes/accessors/CubeTextureNode.js +50 -2
- package/src/nodes/accessors/InstanceNode.js +5 -4
- package/src/nodes/accessors/Lights.js +2 -2
- package/src/nodes/accessors/MaterialNode.js +4 -0
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +26 -6
- package/src/nodes/accessors/Object3DNode.js +6 -7
- package/src/nodes/accessors/Position.js +14 -4
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +3 -2
- package/src/nodes/accessors/StorageBufferNode.js +25 -0
- package/src/nodes/accessors/StorageTextureNode.js +14 -3
- package/src/nodes/accessors/TextureNode.js +59 -8
- package/src/nodes/accessors/VelocityNode.js +1 -0
- package/src/nodes/accessors/VertexColorNode.js +4 -4
- package/src/nodes/code/CodeNode.js +8 -11
- package/src/nodes/core/AssignNode.js +27 -5
- package/src/nodes/core/AttributeNode.js +2 -2
- package/src/nodes/core/CacheNode.js +14 -0
- package/src/nodes/core/ContextNode.js +7 -3
- package/src/nodes/core/Node.js +68 -19
- package/src/nodes/core/NodeBuilder.js +100 -12
- package/src/nodes/core/NodeUtils.js +42 -0
- package/src/nodes/core/NodeVarying.js +19 -1
- package/src/nodes/core/PropertyNode.js +8 -12
- package/src/nodes/core/StackNode.js +127 -2
- package/src/nodes/core/StructTypeNode.js +26 -4
- package/src/nodes/core/VarNode.js +11 -2
- package/src/nodes/core/VaryingNode.js +40 -21
- package/src/nodes/display/BlendModes.js +42 -1
- package/src/nodes/display/ColorSpaceNode.js +4 -27
- package/src/nodes/display/PassNode.js +8 -11
- package/src/nodes/functions/ShadowMaskModel.js +5 -1
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
- package/src/nodes/gpgpu/BarrierNode.js +3 -3
- package/src/nodes/gpgpu/ComputeNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +7 -13
- package/src/nodes/lighting/HemisphereLightNode.js +2 -2
- package/src/nodes/lighting/IESSpotLightNode.js +2 -1
- package/src/nodes/lighting/LightsNode.js +25 -7
- package/src/nodes/lighting/ProjectorLightNode.js +78 -0
- package/src/nodes/lighting/ShadowBaseNode.js +1 -12
- package/src/nodes/lighting/ShadowFilterNode.js +274 -0
- package/src/nodes/lighting/ShadowNode.js +172 -240
- package/src/nodes/lighting/SpotLightNode.js +44 -7
- package/src/nodes/materialx/lib/mx_noise.js +1 -1
- package/src/nodes/math/MathNode.js +56 -20
- package/src/nodes/math/OperatorNode.js +109 -82
- package/src/nodes/shapes/Shapes.js +5 -4
- package/src/nodes/tsl/TSLCore.js +140 -49
- package/src/nodes/utils/DebugNode.js +15 -3
- package/src/nodes/utils/Discard.js +2 -2
- package/src/nodes/utils/LoopNode.js +64 -17
- package/src/nodes/utils/ReflectorNode.js +67 -4
- package/src/objects/BatchedMesh.js +16 -4
- package/src/objects/Mesh.js +9 -0
- package/src/objects/Skeleton.js +1 -1
- package/src/objects/Sprite.js +9 -0
- package/src/renderers/WebGL3DRenderTarget.js +1 -0
- package/src/renderers/WebGLArrayRenderTarget.js +1 -0
- package/src/renderers/WebGLCubeRenderTarget.js +2 -4
- package/src/renderers/WebGLRenderer.js +21 -10
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Background.js +11 -0
- package/src/renderers/common/RenderList.js +0 -4
- package/src/renderers/common/RenderObject.js +12 -1
- package/src/renderers/common/Renderer.js +116 -8
- package/src/renderers/common/Textures.js +15 -21
- package/src/renderers/common/TimestampQueryPool.js +1 -0
- package/src/renderers/common/Uniform.js +1 -1
- package/src/renderers/common/UniformsGroup.js +14 -18
- package/src/renderers/common/XRManager.js +154 -25
- package/src/renderers/common/extras/PMREMGenerator.js +29 -22
- package/src/renderers/common/nodes/Nodes.js +13 -3
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLTextures.js +143 -4
- package/src/renderers/webgl/WebGLUtils.js +1 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +170 -34
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +75 -7
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +42 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
- package/src/renderers/webgpu/WebGPUBackend.js +442 -127
- package/src/renderers/webgpu/WebGPURenderer.js +7 -0
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +75 -27
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +3 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -5
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +34 -4
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +44 -49
- package/src/renderers/webxr/WebXRController.js +1 -1
- package/src/renderers/webxr/WebXRManager.js +2 -1
- package/src/textures/DepthTexture.js +6 -10
- package/src/textures/Source.js +22 -0
- package/src/textures/Texture.js +118 -1
- package/src/textures/VideoTexture.js +1 -1
- package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
- package/src/core/RenderTargetArray.js +0 -40
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Group, NodeMaterial, Mesh, PlaneGeometry, DoubleSide, CameraHelper } from 'three/webgpu';
|
|
2
|
+
import { Fn, vec4, vec3, texture, uv, positionLocal, vec2, float, screenSize } from 'three/tsl';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Helper class to manage and display debug visuals for TileShadowNode.
|
|
6
|
+
*
|
|
7
|
+
* @augments Group
|
|
8
|
+
* @three_import import { TileShadowNodeHelper } from 'three/addons/tsl/shadows/TileShadowNodeHelper.js';
|
|
9
|
+
*/
|
|
10
|
+
class TileShadowNodeHelper extends Group {
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @param {TileShadowNode} tileShadowNode The TileShadowNode instance to debug.
|
|
14
|
+
*/
|
|
15
|
+
constructor( tileShadowNode ) {
|
|
16
|
+
|
|
17
|
+
super();
|
|
18
|
+
|
|
19
|
+
if ( ! tileShadowNode ) {
|
|
20
|
+
|
|
21
|
+
throw new Error( 'TileShadowNode instance is required for TileShadowNodeHelper.' );
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
this.tileShadowNode = tileShadowNode;
|
|
26
|
+
this.config = tileShadowNode.config;
|
|
27
|
+
this.tiles = tileShadowNode.tiles;
|
|
28
|
+
this._debugMeshes = [];
|
|
29
|
+
this._shadowCamHelpers = [];
|
|
30
|
+
|
|
31
|
+
this.initialized = false;
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Initializes the debug displays (planes and camera helpers).
|
|
37
|
+
* Should be called after TileShadowNode has initialized its lights and shadow nodes.
|
|
38
|
+
*/
|
|
39
|
+
init() {
|
|
40
|
+
|
|
41
|
+
if ( this.tileShadowNode._shadowNodes.length !== this.tiles.length ) {
|
|
42
|
+
|
|
43
|
+
console.error( 'Cannot initialize TileShadowNodeHelper: Shadow nodes not ready or mismatch count.' );
|
|
44
|
+
return;
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const tilesX = this.config.tilesX;
|
|
49
|
+
const tilesY = this.config.tilesY;
|
|
50
|
+
|
|
51
|
+
// Clear previous helpers if any (e.g., during a re-init)
|
|
52
|
+
this.dispose();
|
|
53
|
+
|
|
54
|
+
// Create a display for each shadow map tile
|
|
55
|
+
for ( let i = 0; i < this.tiles.length; i ++ ) {
|
|
56
|
+
|
|
57
|
+
// Create display plane
|
|
58
|
+
const display = new Mesh( new PlaneGeometry( 1, 1 ), new NodeMaterial() );
|
|
59
|
+
display.renderOrder = 9999999; // Ensure they appear on top
|
|
60
|
+
display.material.transparent = true;
|
|
61
|
+
display.frustumCulled = false;
|
|
62
|
+
display.side = DoubleSide;
|
|
63
|
+
display.material.depthTest = false; // Disable depth testing
|
|
64
|
+
display.material.depthWrite = false; // Disable depth writing
|
|
65
|
+
|
|
66
|
+
const col = i % tilesX;
|
|
67
|
+
const row = Math.floor( i / tilesX );
|
|
68
|
+
|
|
69
|
+
// Vertex shader logic for positioning the debug quad
|
|
70
|
+
display.material.vertexNode = Fn( () => {
|
|
71
|
+
|
|
72
|
+
const aspectRatio = screenSize.x.div( screenSize.y );
|
|
73
|
+
const maxTiles = Math.max( tilesX, tilesY );
|
|
74
|
+
const displaySize = float( 0.8 / maxTiles ); // Size adapts to number of tiles
|
|
75
|
+
const margin = float( 0.01 );
|
|
76
|
+
const cornerOffset = float( 0.05 );
|
|
77
|
+
|
|
78
|
+
// Position tiles left-to-right, top-to-bottom
|
|
79
|
+
const xBase = float( - 1.0 ).add( cornerOffset ).add(
|
|
80
|
+
displaySize.div( 2 ).div( aspectRatio )
|
|
81
|
+
).add( float( col ).mul( displaySize.div( aspectRatio ).add( margin ) ) );
|
|
82
|
+
|
|
83
|
+
const yBase = float( 1.0 ).sub( cornerOffset ).sub(
|
|
84
|
+
displaySize.div( 2 )
|
|
85
|
+
).sub( float( row ).mul( displaySize.add( margin ) ) );
|
|
86
|
+
|
|
87
|
+
const scaledPos = vec2(
|
|
88
|
+
positionLocal.x.mul( displaySize.div( aspectRatio ) ),
|
|
89
|
+
positionLocal.y.mul( displaySize )
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
const finalPos = vec2(
|
|
93
|
+
scaledPos.x.add( xBase ),
|
|
94
|
+
scaledPos.y.add( yBase )
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
return vec4( finalPos.x, finalPos.y, 0.0, 1.0 );
|
|
98
|
+
|
|
99
|
+
} )();
|
|
100
|
+
|
|
101
|
+
display.material.outputNode = Fn( () => {
|
|
102
|
+
|
|
103
|
+
// Ensure shadowMap and depthTexture are available
|
|
104
|
+
if ( ! this.tileShadowNode.shadowMap || ! this.tileShadowNode.shadowMap.depthTexture ) {
|
|
105
|
+
|
|
106
|
+
return vec4( 1, 0, 1, 1 ); // Magenta error color
|
|
107
|
+
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const sampledDepth = texture( this.tileShadowNode.shadowMap.depthTexture )
|
|
111
|
+
.sample( uv().flipY() )
|
|
112
|
+
.depth( float( i ) ) // Sample correct layer
|
|
113
|
+
.compare( 0.9 ); // Example comparison value
|
|
114
|
+
|
|
115
|
+
// Simple tint based on index for visual distinction
|
|
116
|
+
const r = float( 0.5 + ( i % 3 ) * 0.16 );
|
|
117
|
+
const g = float( 0.5 + ( i % 2 ) * 0.25 );
|
|
118
|
+
const b = float( 0.7 + ( i % 4 ) * 0.075 );
|
|
119
|
+
|
|
120
|
+
return vec4(
|
|
121
|
+
vec3( r, g, b )
|
|
122
|
+
.mul( sampledDepth )
|
|
123
|
+
.saturate()
|
|
124
|
+
.rgb,
|
|
125
|
+
1.0
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
} )();
|
|
129
|
+
|
|
130
|
+
this.add( display );
|
|
131
|
+
this._debugMeshes.push( display );
|
|
132
|
+
|
|
133
|
+
if ( this.tileShadowNode._shadowNodes[ i ] && this.tileShadowNode._shadowNodes[ i ].shadow ) {
|
|
134
|
+
|
|
135
|
+
const camHelper = new CameraHelper( this.tileShadowNode._shadowNodes[ i ].shadow.camera );
|
|
136
|
+
camHelper.fog = false;
|
|
137
|
+
this.add( camHelper );
|
|
138
|
+
this._shadowCamHelpers.push( camHelper );
|
|
139
|
+
|
|
140
|
+
} else {
|
|
141
|
+
|
|
142
|
+
console.warn( `TileShadowNodeHelper: Could not create CameraHelper for tile index ${i}. Shadow node or camera missing.` );
|
|
143
|
+
this._shadowCamHelpers.push( null );
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
this.initialized = true;
|
|
150
|
+
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Updates the debug visuals (specifically camera helpers).
|
|
155
|
+
* Should be called within TileShadowNode's update method.
|
|
156
|
+
*/
|
|
157
|
+
update() {
|
|
158
|
+
|
|
159
|
+
if ( this.initialized === false ) {
|
|
160
|
+
|
|
161
|
+
this.init();
|
|
162
|
+
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
for ( const helper of this._shadowCamHelpers ) {
|
|
166
|
+
|
|
167
|
+
if ( helper ) {
|
|
168
|
+
|
|
169
|
+
helper.update(); // Update CameraHelper matrices
|
|
170
|
+
helper.updateMatrixWorld( true ); // Ensure world matrix is current
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Removes all debug objects (planes and helpers) from the scene.
|
|
180
|
+
*/
|
|
181
|
+
dispose() {
|
|
182
|
+
|
|
183
|
+
if ( this.scene ) {
|
|
184
|
+
|
|
185
|
+
for ( const mesh of this._debugMeshes ) {
|
|
186
|
+
|
|
187
|
+
mesh.geometry.dispose();
|
|
188
|
+
mesh.material.dispose();
|
|
189
|
+
this.scene.remove( mesh );
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
for ( const helper of this._shadowCamHelpers ) {
|
|
194
|
+
|
|
195
|
+
if ( helper ) {
|
|
196
|
+
|
|
197
|
+
this.scene.remove( helper );
|
|
198
|
+
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
this._debugMeshes = [];
|
|
206
|
+
this._shadowCamHelpers = [];
|
|
207
|
+
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export { TileShadowNodeHelper };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { varying, vec4, modelWorldMatrixInverse, cameraPosition, positionGeometry, float, Fn, Loop, max, min, vec2, vec3 } from 'three/tsl';
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* @module Raymarching
|
|
5
|
+
* @three_import import { RaymarchingBox } from 'three/addons/tsl/utils/Raymarching.js';
|
|
6
|
+
*/
|
|
4
7
|
|
|
5
8
|
const hitBox = /*@__PURE__*/ Fn( ( { orig, dir } ) => {
|
|
6
9
|
|
|
@@ -50,13 +53,13 @@ export const RaymarchingBox = ( steps, callback ) => {
|
|
|
50
53
|
bounds.assign( vec2( max( bounds.x, 0.0 ), bounds.y ) );
|
|
51
54
|
|
|
52
55
|
const inc = vec3( rayDir.abs().reciprocal() ).toVar();
|
|
53
|
-
const delta = float( min( inc.x, min( inc.y, inc.z ) ) ).toVar(
|
|
56
|
+
const delta = float( min( inc.x, min( inc.y, inc.z ) ) ).toVar();
|
|
54
57
|
|
|
55
58
|
delta.divAssign( float( steps ) );
|
|
56
59
|
|
|
57
60
|
const positionRay = vec3( vOrigin.add( bounds.x.mul( rayDir ) ) ).toVar();
|
|
58
61
|
|
|
59
|
-
Loop( { type: 'float', start: bounds.x, end: bounds.y, update:
|
|
62
|
+
Loop( { type: 'float', start: bounds.x, end: bounds.y, update: delta }, () => {
|
|
60
63
|
|
|
61
64
|
callback( { positionRay } );
|
|
62
65
|
|
|
@@ -11,7 +11,10 @@ import {
|
|
|
11
11
|
Vector3,
|
|
12
12
|
} from 'three';
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* @module BufferGeometryUtils
|
|
16
|
+
* @three_import import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
|
|
17
|
+
*/
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* Computes vertex tangents using the MikkTSpace algorithm. MikkTSpace generates the same tangents consistently,
|
|
@@ -4,7 +4,10 @@ import {
|
|
|
4
4
|
Vector3
|
|
5
5
|
} from 'three';
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* @module CameraUtils
|
|
9
|
+
* @three_import import * as CameraUtils from 'three/addons/utils/CameraUtils.js';
|
|
10
|
+
*/
|
|
8
11
|
|
|
9
12
|
const _va = /*@__PURE__*/ new Vector3(), // from pe to pa
|
|
10
13
|
_vb = /*@__PURE__*/ new Vector3(), // from pe to pb
|
|
@@ -5,7 +5,10 @@ import {
|
|
|
5
5
|
Vector3
|
|
6
6
|
} from 'three';
|
|
7
7
|
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* @module GeometryCompressionUtils
|
|
10
|
+
* @three_import import * as GeometryCompressionUtils from 'three/addons/utils/GeometryCompressionUtils.js';
|
|
11
|
+
*/
|
|
9
12
|
|
|
10
13
|
// Octahedron and Quantization encodings based on work by: https://github.com/tsherif/mesh-quantization-example
|
|
11
14
|
|
|
@@ -4,6 +4,8 @@ import * as THREE from 'three';
|
|
|
4
4
|
* This class can be used to optimized scenes by converting
|
|
5
5
|
* individual meshes into {@link BatchedMesh}. This component
|
|
6
6
|
* is an experimental attempt to implement auto-batching in three.js.
|
|
7
|
+
*
|
|
8
|
+
* @three_import import { SceneOptimizer } from 'three/addons/utils/SceneOptimizer.js';
|
|
7
9
|
*/
|
|
8
10
|
class SceneOptimizer {
|
|
9
11
|
|
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
|
|
11
11
|
import { mergeGroups, deepCloneAttribute } from './BufferGeometryUtils.js';
|
|
12
12
|
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* @module SceneUtils
|
|
15
|
+
* @three_import import * as SceneUtils from 'three/addons/utils/SceneUtils.js';
|
|
16
|
+
*/
|
|
14
17
|
|
|
15
18
|
const _color = /*@__PURE__*/new Color();
|
|
16
19
|
const _matrix = /*@__PURE__*/new Matrix4();
|
|
@@ -27,6 +27,8 @@ import { UnpackDepthRGBAShader } from '../shaders/UnpackDepthRGBAShader.js';
|
|
|
27
27
|
* lightShadowMapViewer.size.height = SHADOW_MAP_HEIGHT / 4;
|
|
28
28
|
* lightShadowMapViewer.update();
|
|
29
29
|
* ```
|
|
30
|
+
*
|
|
31
|
+
* @three_import import { ShadowMapViewer } from 'three/addons/utils/ShadowMapViewer.js';
|
|
30
32
|
*/
|
|
31
33
|
class ShadowMapViewer {
|
|
32
34
|
|
|
@@ -27,6 +27,8 @@ import { texture } from 'three/tsl';
|
|
|
27
27
|
* lightShadowMapViewer.size.height = SHADOW_MAP_HEIGHT / 4;
|
|
28
28
|
* lightShadowMapViewer.update();
|
|
29
29
|
* ```
|
|
30
|
+
*
|
|
31
|
+
* @three_import import { ShadowMapViewer } from 'three/addons/utils/ShadowMapViewerGPU.js';
|
|
30
32
|
*/
|
|
31
33
|
class ShadowMapViewer {
|
|
32
34
|
|
|
@@ -9,7 +9,10 @@ import {
|
|
|
9
9
|
VectorKeyframeTrack
|
|
10
10
|
} from 'three';
|
|
11
11
|
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* @module SkeletonUtils
|
|
14
|
+
* @three_import import * as SkeletonUtils from 'three/addons/utils/SkeletonUtils.js';
|
|
15
|
+
*/
|
|
13
16
|
|
|
14
17
|
function getBoneName( bone, options ) {
|
|
15
18
|
|
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
SRGBColorSpace
|
|
11
11
|
} from 'three';
|
|
12
12
|
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* @module WebGLTextureUtils
|
|
15
|
+
* @three_import import * as WebGLTextureUtils from 'three/addons/utils/WebGLTextureUtils.js';
|
|
16
|
+
*/
|
|
14
17
|
|
|
15
18
|
let _renderer;
|
|
16
19
|
let fullscreenQuadGeometry;
|
|
@@ -6,7 +6,10 @@ import {
|
|
|
6
6
|
} from 'three';
|
|
7
7
|
import { texture, uv } from 'three/tsl';
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* @module WebGPUTextureUtils
|
|
11
|
+
* @three_import import * as WebGPUTextureUtils from 'three/addons/utils/WebGPUTextureUtils.js';
|
|
12
|
+
*/
|
|
10
13
|
|
|
11
14
|
let _renderer;
|
|
12
15
|
const _quadMesh = /*@__PURE__*/ new QuadMesh();
|
|
@@ -23,6 +23,7 @@ const CURSOR_MAX_DISTANCE = 1.5;
|
|
|
23
23
|
* Represents an Oculus hand pointer model.
|
|
24
24
|
*
|
|
25
25
|
* @augments Object3D
|
|
26
|
+
* @three_import import { OculusHandPointerModel } from 'three/addons/webxr/OculusHandPointerModel.js';
|
|
26
27
|
*/
|
|
27
28
|
class OculusHandPointerModel extends Object3D {
|
|
28
29
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Texture } from 'three';
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* @module Text2D
|
|
5
|
+
* @three_import import * as Text2D from 'three/addons/webxr/Text2D.js';
|
|
6
|
+
*/
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* A helper function for creating a simple plane mesh
|
|
@@ -255,6 +255,8 @@ function addAssetSceneToControllerModel( controllerModel, scene ) {
|
|
|
255
255
|
* controllerGrip.add( controllerModelFactory.createControllerModel( controllerGrip ) );
|
|
256
256
|
* scene.add( controllerGrip );
|
|
257
257
|
* ```
|
|
258
|
+
*
|
|
259
|
+
* @three_import import { XRControllerModelFactory } from 'three/addons/webxr/XRControllerModelFactory.js';
|
|
258
260
|
*/
|
|
259
261
|
class XRControllerModelFactory {
|
|
260
262
|
|
|
@@ -138,6 +138,7 @@ class SessionLightProbe {
|
|
|
138
138
|
* a XR session. It relies on the WebXR Lighting Estimation API.
|
|
139
139
|
*
|
|
140
140
|
* @augments Group
|
|
141
|
+
* @three_import import { XREstimatedLight } from 'three/addons/webxr/XREstimatedLight.js';
|
|
141
142
|
*/
|
|
142
143
|
export class XREstimatedLight extends Group {
|
|
143
144
|
|
|
@@ -6,6 +6,8 @@ const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-pro
|
|
|
6
6
|
* Represents one of the hand model types {@link XRHandModelFactory} might produce
|
|
7
7
|
* depending on the selected profile. `XRHandMeshModel` represents a hand with a
|
|
8
8
|
* custom asset.
|
|
9
|
+
*
|
|
10
|
+
* @three_import import { XRHandMeshModel } from 'three/addons/webxr/XRHandMeshModel.js';
|
|
9
11
|
*/
|
|
10
12
|
class XRHandMeshModel {
|
|
11
13
|
|
|
@@ -90,6 +90,8 @@ class XRHandModel extends Object3D {
|
|
|
90
90
|
* hand.add( handModelFactory.createHandModel( hand ) );
|
|
91
91
|
* scene.add( hand );
|
|
92
92
|
* ```
|
|
93
|
+
*
|
|
94
|
+
* @three_import import { XRHandModelFactory } from 'three/addons/webxr/XRHandModelFactory.js';
|
|
93
95
|
*/
|
|
94
96
|
class XRHandModelFactory {
|
|
95
97
|
|
|
@@ -15,6 +15,8 @@ const _vector = new Vector3();
|
|
|
15
15
|
* Represents one of the hand model types {@link XRHandModelFactory} might produce
|
|
16
16
|
* depending on the selected profile. `XRHandPrimitiveModel` represents a hand
|
|
17
17
|
* with sphere or box primitives according to the selected `primitive` option.
|
|
18
|
+
*
|
|
19
|
+
* @three_import import { XRHandPrimitiveModel } from 'three/addons/webxr/XRHandPrimitiveModel.js';
|
|
18
20
|
*/
|
|
19
21
|
class XRHandPrimitiveModel {
|
|
20
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "super-three",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.177.0",
|
|
4
4
|
"description": "JavaScript 3D library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/three.cjs",
|
|
@@ -48,8 +48,10 @@
|
|
|
48
48
|
"build": "rollup -c utils/build/rollup.config.js",
|
|
49
49
|
"build-module": "rollup -c utils/build/rollup.config.js --configOnlyModule",
|
|
50
50
|
"build-docs": "jsdoc -c utils/docs/jsdoc.config.json",
|
|
51
|
-
"dev": "
|
|
52
|
-
"dev-ssl": "
|
|
51
|
+
"dev": "node utils/build/dev.js && servez -p 8080",
|
|
52
|
+
"dev-ssl": "node utils/build/dev.js && servez -p 8080 --ssl",
|
|
53
|
+
"preview": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080\"",
|
|
54
|
+
"preview-ssl": "concurrently --names \"ROLLUP,HTTPS\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080 --ssl\"",
|
|
53
55
|
"lint-core": "eslint src",
|
|
54
56
|
"lint-addons": "eslint examples/jsm --ext .js --ignore-pattern libs --ignore-pattern ifc",
|
|
55
57
|
"lint-examples": "eslint examples --ext .html",
|
|
@@ -112,7 +114,7 @@
|
|
|
112
114
|
"qunit": "^2.19.4",
|
|
113
115
|
"rollup": "^4.6.0",
|
|
114
116
|
"rollup-plugin-filesize": "^10.0.0",
|
|
115
|
-
"rollup-plugin-visualizer": "^
|
|
117
|
+
"rollup-plugin-visualizer": "^6.0.0",
|
|
116
118
|
"servez": "^2.2.4"
|
|
117
119
|
},
|
|
118
120
|
"overrides": {
|
package/src/Three.Core.js
CHANGED
|
@@ -88,7 +88,6 @@ export { AnimationClip } from './animation/AnimationClip.js';
|
|
|
88
88
|
export { AnimationAction } from './animation/AnimationAction.js';
|
|
89
89
|
export { RenderTarget } from './core/RenderTarget.js';
|
|
90
90
|
export { RenderTarget3D } from './core/RenderTarget3D.js';
|
|
91
|
-
export { RenderTargetArray } from './core/RenderTargetArray.js';
|
|
92
91
|
export { Uniform } from './core/Uniform.js';
|
|
93
92
|
export { UniformsGroup } from './core/UniformsGroup.js';
|
|
94
93
|
export { InstancedBufferGeometry } from './core/InstancedBufferGeometry.js';
|
|
@@ -115,6 +114,7 @@ export { Spherical } from './math/Spherical.js';
|
|
|
115
114
|
export { Cylindrical } from './math/Cylindrical.js';
|
|
116
115
|
export { Plane } from './math/Plane.js';
|
|
117
116
|
export { Frustum } from './math/Frustum.js';
|
|
117
|
+
export { FrustumArray } from './math/FrustumArray.js';
|
|
118
118
|
export { Sphere } from './math/Sphere.js';
|
|
119
119
|
export { Ray } from './math/Ray.js';
|
|
120
120
|
export { Matrix4 } from './math/Matrix4.js';
|