super-three 0.176.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
|
@@ -19,6 +19,8 @@ import { Color, ColorManagement, SRGBColorSpace } from 'three';
|
|
|
19
19
|
* const exporter = new DRACOExporter();
|
|
20
20
|
* const data = exporter.parse( mesh, options );
|
|
21
21
|
* ```
|
|
22
|
+
*
|
|
23
|
+
* @three_import import { DRACOExporter } from 'three/addons/exporters/DRACOExporter.js';
|
|
22
24
|
*/
|
|
23
25
|
class DRACOExporter {
|
|
24
26
|
|
|
@@ -27,7 +29,7 @@ class DRACOExporter {
|
|
|
27
29
|
*
|
|
28
30
|
* @param {(Mesh|Points)} object - The mesh or point cloud to export.
|
|
29
31
|
* @param {DRACOExporter~Options} options - The export options.
|
|
30
|
-
* @return {
|
|
32
|
+
* @return {Int8Array} The exported Draco.
|
|
31
33
|
*/
|
|
32
34
|
parse( object, options = {} ) {
|
|
33
35
|
|
|
@@ -239,7 +241,7 @@ function createVertexColorSRGBArray( attribute ) {
|
|
|
239
241
|
|
|
240
242
|
_color.fromBufferAttribute( attribute, i );
|
|
241
243
|
|
|
242
|
-
ColorManagement.
|
|
244
|
+
ColorManagement.workingToColorSpace( _color, SRGBColorSpace );
|
|
243
245
|
|
|
244
246
|
array[ i * itemSize ] = _color.r;
|
|
245
247
|
array[ i * itemSize + 1 ] = _color.g;
|
|
@@ -26,6 +26,8 @@ const ZIP_COMPRESSION = 3;
|
|
|
26
26
|
* const exporter = new EXRExporter();
|
|
27
27
|
* const result = await exporter.parse( renderer, options );
|
|
28
28
|
* ```
|
|
29
|
+
*
|
|
30
|
+
* @three_import import { EXRExporter } from 'three/addons/exporters/EXRExporter.js';
|
|
29
31
|
*/
|
|
30
32
|
class EXRExporter {
|
|
31
33
|
|
|
@@ -97,6 +97,8 @@ const KHR_mesh_quantization_ExtraAttrTypes = {
|
|
|
97
97
|
* const exporter = new GLTFExporter();
|
|
98
98
|
* const data = await exporter.parseAsync( scene, options );
|
|
99
99
|
* ```
|
|
100
|
+
*
|
|
101
|
+
* @three_import import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
|
|
100
102
|
*/
|
|
101
103
|
class GLTFExporter {
|
|
102
104
|
|
|
@@ -2406,6 +2408,9 @@ class GLTFWriter {
|
|
|
2406
2408
|
|
|
2407
2409
|
if ( object.isSkinnedMesh ) this.skins.push( object );
|
|
2408
2410
|
|
|
2411
|
+
const nodeIndex = json.nodes.push( nodeDef ) - 1;
|
|
2412
|
+
nodeMap.set( object, nodeIndex );
|
|
2413
|
+
|
|
2409
2414
|
if ( object.children.length > 0 ) {
|
|
2410
2415
|
|
|
2411
2416
|
const children = [];
|
|
@@ -2416,9 +2421,9 @@ class GLTFWriter {
|
|
|
2416
2421
|
|
|
2417
2422
|
if ( child.visible || options.onlyVisible === false ) {
|
|
2418
2423
|
|
|
2419
|
-
const
|
|
2424
|
+
const childNodeIndex = await this.processNodeAsync( child );
|
|
2420
2425
|
|
|
2421
|
-
if (
|
|
2426
|
+
if ( childNodeIndex !== null ) children.push( childNodeIndex );
|
|
2422
2427
|
|
|
2423
2428
|
}
|
|
2424
2429
|
|
|
@@ -2434,8 +2439,6 @@ class GLTFWriter {
|
|
|
2434
2439
|
|
|
2435
2440
|
} );
|
|
2436
2441
|
|
|
2437
|
-
const nodeIndex = json.nodes.push( nodeDef ) - 1;
|
|
2438
|
-
nodeMap.set( object, nodeIndex );
|
|
2439
2442
|
return nodeIndex;
|
|
2440
2443
|
|
|
2441
2444
|
}
|
|
@@ -134,6 +134,8 @@ const ERROR_COLOR_SPACE = 'THREE.KTX2Exporter: Supported color spaces are SRGBCo
|
|
|
134
134
|
* const exporter = new KTX2Exporter();
|
|
135
135
|
* const result = await exporter.parse( dataTexture );
|
|
136
136
|
* ```
|
|
137
|
+
*
|
|
138
|
+
* @three_import import { KTX2Exporter } from 'three/addons/exporters/KTX2Exporter.js';
|
|
137
139
|
*/
|
|
138
140
|
export class KTX2Exporter {
|
|
139
141
|
|
|
@@ -16,6 +16,8 @@ import {
|
|
|
16
16
|
* const exporter = new OBJExporter();
|
|
17
17
|
* const data = exporter.parse( scene );
|
|
18
18
|
* ```
|
|
19
|
+
*
|
|
20
|
+
* @three_import import { OBJExporter } from 'three/addons/exporters/OBJExporter.js';
|
|
19
21
|
*/
|
|
20
22
|
class OBJExporter {
|
|
21
23
|
|
|
@@ -248,7 +250,7 @@ class OBJExporter {
|
|
|
248
250
|
|
|
249
251
|
color.fromBufferAttribute( colors, i );
|
|
250
252
|
|
|
251
|
-
ColorManagement.
|
|
253
|
+
ColorManagement.workingToColorSpace( color, SRGBColorSpace );
|
|
252
254
|
|
|
253
255
|
output += ' ' + color.r + ' ' + color.g + ' ' + color.b;
|
|
254
256
|
|
|
@@ -18,6 +18,8 @@ import {
|
|
|
18
18
|
* const exporter = new PLYExporter();
|
|
19
19
|
* const data = exporter.parse( scene, options );
|
|
20
20
|
* ```
|
|
21
|
+
*
|
|
22
|
+
* @three_import import { PLYExporter } from 'three/addons/exporters/PLYExporter.js';
|
|
21
23
|
*/
|
|
22
24
|
class PLYExporter {
|
|
23
25
|
|
|
@@ -318,7 +320,7 @@ class PLYExporter {
|
|
|
318
320
|
|
|
319
321
|
tempColor.fromBufferAttribute( colors, i );
|
|
320
322
|
|
|
321
|
-
ColorManagement.
|
|
323
|
+
ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
|
|
322
324
|
|
|
323
325
|
output.setUint8( vOffset, Math.floor( tempColor.r * 255 ) );
|
|
324
326
|
vOffset += 1;
|
|
@@ -477,7 +479,7 @@ class PLYExporter {
|
|
|
477
479
|
|
|
478
480
|
tempColor.fromBufferAttribute( colors, i );
|
|
479
481
|
|
|
480
|
-
ColorManagement.
|
|
482
|
+
ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
|
|
481
483
|
|
|
482
484
|
line += ' ' +
|
|
483
485
|
Math.floor( tempColor.r * 255 ) + ' ' +
|
|
@@ -12,6 +12,8 @@ import { Vector3 } from 'three';
|
|
|
12
12
|
* const exporter = new STLExporter();
|
|
13
13
|
* const data = exporter.parse( mesh, { binary: true } );
|
|
14
14
|
* ```
|
|
15
|
+
*
|
|
16
|
+
* @three_import import { STLExporter } from 'three/addons/exporters/STLExporter.js';
|
|
15
17
|
*/
|
|
16
18
|
class STLExporter {
|
|
17
19
|
|
|
@@ -16,6 +16,8 @@ import {
|
|
|
16
16
|
* const exporter = new USDZExporter();
|
|
17
17
|
* const arraybuffer = await exporter.parseAsync( scene );
|
|
18
18
|
* ```
|
|
19
|
+
*
|
|
20
|
+
* @three_import import { USDZExporter } from 'three/addons/exporters/USDZExporter.js';
|
|
19
21
|
*/
|
|
20
22
|
class USDZExporter {
|
|
21
23
|
|
|
@@ -313,16 +315,16 @@ function buildXform( object, geometry, material ) {
|
|
|
313
315
|
|
|
314
316
|
}
|
|
315
317
|
|
|
316
|
-
return `def Xform "${ name }" (
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
)
|
|
320
|
-
{
|
|
321
|
-
|
|
322
|
-
|
|
318
|
+
return ` def Xform "${ name }" (
|
|
319
|
+
prepend references = @./geometries/Geometry_${ geometry.id }.usda@</Geometry>
|
|
320
|
+
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
321
|
+
)
|
|
322
|
+
{
|
|
323
|
+
matrix4d xformOp:transform = ${ transform }
|
|
324
|
+
uniform token[] xformOpOrder = ["xformOp:transform"]
|
|
323
325
|
|
|
324
|
-
|
|
325
|
-
}
|
|
326
|
+
rel material:binding = </Materials/Material_${ material.id }>
|
|
327
|
+
}
|
|
326
328
|
|
|
327
329
|
`;
|
|
328
330
|
|
|
@@ -825,7 +827,7 @@ function buildCamera( camera ) {
|
|
|
825
827
|
*
|
|
826
828
|
* @typedef {Object} USDZExporter~Options
|
|
827
829
|
* @property {number} [maxTextureSize=1024] - The maximum texture size that is going to be exported.
|
|
828
|
-
* @property {boolean} [includeAnchoringProperties=
|
|
830
|
+
* @property {boolean} [includeAnchoringProperties=true] - Whether to include anchoring properties or not.
|
|
829
831
|
* @property {Object} [ar] - If `includeAnchoringProperties` is set to `true`, the anchoring type and alignment
|
|
830
832
|
* can be configured via `ar.anchoring.type` and `ar.planeAnchoring.alignment`.
|
|
831
833
|
* @property {boolean} [quickLookCompatible=false] - Whether to make the exported USDZ compatible to QuickLook
|
|
@@ -49,6 +49,7 @@ function getUv( faceDirVector, normal, uvAxis, projectionAxis, radius, sideLengt
|
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
51
|
* @augments BoxGeometry
|
|
52
|
+
* @three_import import { RoundedBoxGeometry } from 'three/addons/geometries/RoundedBoxGeometry.js';
|
|
52
53
|
*/
|
|
53
54
|
class RoundedBoxGeometry extends BoxGeometry {
|
|
54
55
|
|
|
@@ -18,6 +18,7 @@ import { float, Fn, getShIrradianceAt, normalWorld, uniformArray, uniform, vec4
|
|
|
18
18
|
*
|
|
19
19
|
* @private
|
|
20
20
|
* @augments Mesh
|
|
21
|
+
* @three_import import { LightProbeHelper } from 'three/addons/helpers/LightProbeHelperGPU.js';
|
|
21
22
|
*/
|
|
22
23
|
class LightProbeHelper extends Mesh {
|
|
23
24
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { LineSegments, LineBasicMaterial, BufferAttribute } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* This class displays all Rapier Colliders in outline.
|
|
4
|
+
*
|
|
5
|
+
* @augments LineSegments
|
|
6
|
+
* @three_import import { RapierHelper } from 'three/addons/helpers/RapierHelper.js';
|
|
7
|
+
*/
|
|
8
|
+
class RapierHelper extends LineSegments {
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new Rapier debug helper.
|
|
12
|
+
*
|
|
13
|
+
* @param {RAPIER.world} world - The Rapier world to visualize.
|
|
14
|
+
*/
|
|
15
|
+
constructor( world ) {
|
|
16
|
+
|
|
17
|
+
super();
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The Rapier world to visualize.
|
|
21
|
+
*
|
|
22
|
+
* @type {RAPIER.world}
|
|
23
|
+
*/
|
|
24
|
+
this.world = world;
|
|
25
|
+
|
|
26
|
+
this.material = new LineBasicMaterial( { vertexColors: true } );
|
|
27
|
+
this.frustumCulled = false;
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Call this in the render loop to update the outlines.
|
|
33
|
+
*/
|
|
34
|
+
update() {
|
|
35
|
+
|
|
36
|
+
const { vertices, colors } = this.world.debugRender();
|
|
37
|
+
|
|
38
|
+
this.geometry.deleteAttribute( 'position' );
|
|
39
|
+
this.geometry.deleteAttribute( 'color' );
|
|
40
|
+
|
|
41
|
+
this.geometry.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );
|
|
42
|
+
this.geometry.setAttribute( 'color', new BufferAttribute( colors, 4 ) );
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Frees the GPU-related resources allocated by this instance. Call this
|
|
48
|
+
* method whenever this instance is no longer used in your app.
|
|
49
|
+
*/
|
|
50
|
+
dispose() {
|
|
51
|
+
|
|
52
|
+
this.geometry.dispose();
|
|
53
|
+
this.material.dispose();
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { RapierHelper };
|
|
@@ -18,6 +18,7 @@ import { mergeGeometries } from '../utils/BufferGeometryUtils.js';
|
|
|
18
18
|
* When using {@link WebGPURenderer}, import from `TextureHelperGPU.js`.
|
|
19
19
|
*
|
|
20
20
|
* @augments Mesh
|
|
21
|
+
* @three_import import { TextureHelper } from 'three/addons/helpers/TextureHelper.js';
|
|
21
22
|
*/
|
|
22
23
|
class TextureHelper extends Mesh {
|
|
23
24
|
|
|
@@ -20,6 +20,7 @@ import { mergeGeometries } from '../utils/BufferGeometryUtils.js';
|
|
|
20
20
|
*
|
|
21
21
|
* @private
|
|
22
22
|
* @augments Mesh
|
|
23
|
+
* @three_import import { TextureHelper } from 'three/addons/helpers/TextureHelperGPU.js';
|
|
23
24
|
*/
|
|
24
25
|
class TextureHelper extends Mesh {
|
|
25
26
|
|
|
@@ -50,7 +51,7 @@ class TextureHelper extends Mesh {
|
|
|
50
51
|
|
|
51
52
|
colorNode = texture3D( texture ).sample( uvw );
|
|
52
53
|
|
|
53
|
-
} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
54
|
+
} else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
54
55
|
|
|
55
56
|
colorNode = textureNode( texture ).sample( uvw.xy ).depth( uvw.z );
|
|
56
57
|
|
|
@@ -99,7 +100,7 @@ function getImageCount( texture ) {
|
|
|
99
100
|
|
|
100
101
|
return 6;
|
|
101
102
|
|
|
102
|
-
} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
103
|
+
} else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
103
104
|
|
|
104
105
|
return texture.image.depth;
|
|
105
106
|
|
|
@@ -121,7 +122,7 @@ function getAlpha( texture ) {
|
|
|
121
122
|
|
|
122
123
|
return 1;
|
|
123
124
|
|
|
124
|
-
} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
125
|
+
} else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
|
|
125
126
|
|
|
126
127
|
return Math.max( 1 / texture.image.depth, 0.25 );
|
|
127
128
|
|
|
@@ -191,7 +192,7 @@ function createSliceGeometry( texture, width, height, depth ) {
|
|
|
191
192
|
const v = texture.flipY ? uv.getY( j ) : 1 - uv.getY( j );
|
|
192
193
|
const w = sliceCount === 1
|
|
193
194
|
? 1
|
|
194
|
-
: texture.isDataArrayTexture || texture.isCompressedArrayTexture
|
|
195
|
+
: texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture
|
|
195
196
|
? i
|
|
196
197
|
: i / ( sliceCount - 1 );
|
|
197
198
|
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
* ```
|
|
24
24
|
*
|
|
25
25
|
* @augments Mesh
|
|
26
|
+
* @three_import import { HTMLMesh } from 'three/addons/interactive/HTMLMesh.js';
|
|
26
27
|
*/
|
|
27
28
|
class HTMLMesh extends Mesh {
|
|
28
29
|
|
|
@@ -577,6 +578,12 @@ function htmlevent( element, event, x, y ) {
|
|
|
577
578
|
|
|
578
579
|
}
|
|
579
580
|
|
|
581
|
+
if ( element instanceof HTMLInputElement && ( element.type === 'text' || element.type === 'number' ) && ( event === 'mousedown' || event === 'click' ) ) {
|
|
582
|
+
|
|
583
|
+
element.focus();
|
|
584
|
+
|
|
585
|
+
}
|
|
586
|
+
|
|
580
587
|
}
|
|
581
588
|
|
|
582
589
|
for ( let i = 0; i < element.childNodes.length; i ++ ) {
|
|
@@ -37,6 +37,8 @@ const _scale = new Vector3();
|
|
|
37
37
|
* const selectionBox = new SelectionBox( camera, scene );
|
|
38
38
|
* const selectedObjects = selectionBox.select( startPoint, endPoint );
|
|
39
39
|
* ```
|
|
40
|
+
*
|
|
41
|
+
* @three_import import { SelectionBox } from 'three/addons/interactive/SelectionBox.js';
|
|
40
42
|
*/
|
|
41
43
|
class SelectionBox {
|
|
42
44
|
|
|
@@ -4,6 +4,8 @@ import { Vector2 } from 'three';
|
|
|
4
4
|
* A helper for {@link SelectionBox}.
|
|
5
5
|
*
|
|
6
6
|
* It visualizes the current selection box with a `div` container element.
|
|
7
|
+
*
|
|
8
|
+
* @three_import import { SelectionHelper } from 'three/addons/interactive/SelectionHelper.js';
|
|
7
9
|
*/
|
|
8
10
|
class SelectionHelper {
|
|
9
11
|
|
|
@@ -12,6 +12,7 @@ import { RectAreaLightTexturesLib } from './RectAreaLightTexturesLib.js';
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* @hideconstructor
|
|
15
|
+
* @three_import import { RectAreaLightUniformsLib } from 'three/addons/lights/RectAreaLightUniformsLib.js';
|
|
15
16
|
*/
|
|
16
17
|
class RectAreaLightUniformsLib {
|
|
17
18
|
|
|
@@ -17,6 +17,7 @@ import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';
|
|
|
17
17
|
* ```
|
|
18
18
|
*
|
|
19
19
|
* @augments LineSegmentsGeometry
|
|
20
|
+
* @three_import import { LineLineGeometry2 } from 'three/addons/lines/LineGeometry.js';
|
|
20
21
|
*/
|
|
21
22
|
class LineGeometry extends LineSegmentsGeometry {
|
|
22
23
|
|
|
@@ -311,6 +311,9 @@ ShaderLib[ 'line' ] = {
|
|
|
311
311
|
|
|
312
312
|
void main() {
|
|
313
313
|
|
|
314
|
+
float alpha = opacity;
|
|
315
|
+
vec4 diffuseColor = vec4( diffuse, alpha );
|
|
316
|
+
|
|
314
317
|
#include <clipping_planes_fragment>
|
|
315
318
|
|
|
316
319
|
#ifdef USE_DASH
|
|
@@ -321,8 +324,6 @@ ShaderLib[ 'line' ] = {
|
|
|
321
324
|
|
|
322
325
|
#endif
|
|
323
326
|
|
|
324
|
-
float alpha = opacity;
|
|
325
|
-
|
|
326
327
|
#ifdef WORLD_UNITS
|
|
327
328
|
|
|
328
329
|
// Find the closest points on the view ray and the line segment
|
|
@@ -387,8 +388,6 @@ ShaderLib[ 'line' ] = {
|
|
|
387
388
|
|
|
388
389
|
#endif
|
|
389
390
|
|
|
390
|
-
vec4 diffuseColor = vec4( diffuse, alpha );
|
|
391
|
-
|
|
392
391
|
#include <logdepthbuf_fragment>
|
|
393
392
|
#include <color_fragment>
|
|
394
393
|
|
|
@@ -413,6 +412,7 @@ ShaderLib[ 'line' ] = {
|
|
|
413
412
|
* use {@link Line2NodeMaterial}.
|
|
414
413
|
*
|
|
415
414
|
* @augments ShaderMaterial
|
|
415
|
+
* @three_import import { LineMaterial } from 'three/addons/lines/LineMaterial.js';
|
|
416
416
|
*/
|
|
417
417
|
class LineMaterial extends ShaderMaterial {
|
|
418
418
|
|
|
@@ -18,6 +18,7 @@ const _vector = new Vector3();
|
|
|
18
18
|
* This is used in {@link LineSegments2} to describe the shape.
|
|
19
19
|
*
|
|
20
20
|
* @augments InstancedBufferGeometry
|
|
21
|
+
* @three_import import { LineSegmentsGeometry } from 'three/addons/lines/LineSegmentsGeometry.js';
|
|
21
22
|
*/
|
|
22
23
|
class LineSegmentsGeometry extends InstancedBufferGeometry {
|
|
23
24
|
|
|
@@ -14,6 +14,7 @@ import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';
|
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
16
|
* @augments LineSegmentsGeometry
|
|
17
|
+
* @three_import import { WireframeGeometry2 } from 'three/addons/lines/WireframeGeometry2.js';
|
|
17
18
|
*/
|
|
18
19
|
class WireframeGeometry2 extends LineSegmentsGeometry {
|
|
19
20
|
|
|
@@ -94,9 +94,10 @@ function raycastWorldUnits( lineSegments, intersects ) {
|
|
|
94
94
|
function raycastScreenSpace( lineSegments, camera, intersects ) {
|
|
95
95
|
|
|
96
96
|
const projectionMatrix = camera.projectionMatrix;
|
|
97
|
-
const resolution = lineSegments.resolution;
|
|
98
97
|
const matrixWorld = lineSegments.matrixWorld;
|
|
99
98
|
|
|
99
|
+
const resolution = lineSegments._resolution;
|
|
100
|
+
|
|
100
101
|
const geometry = lineSegments.geometry;
|
|
101
102
|
const instanceStart = geometry.attributes.instanceStart;
|
|
102
103
|
const instanceEnd = geometry.attributes.instanceEnd;
|
|
@@ -234,6 +235,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
|
|
|
234
235
|
* import the class from `lines/LineSegments2.js`.
|
|
235
236
|
*
|
|
236
237
|
* @augments Mesh
|
|
238
|
+
* @three_import import { LineSegments2 } from 'three/addons/lines/webgpu/LineSegments2.js';
|
|
237
239
|
*/
|
|
238
240
|
class LineSegments2 extends Mesh {
|
|
239
241
|
|