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
package/examples/jsm/Addons.js
CHANGED
|
@@ -28,7 +28,6 @@ export * from './effects/AnaglyphEffect.js';
|
|
|
28
28
|
export * from './effects/AsciiEffect.js';
|
|
29
29
|
export * from './effects/OutlineEffect.js';
|
|
30
30
|
export * from './effects/ParallaxBarrierEffect.js';
|
|
31
|
-
export * from './effects/PeppersGhostEffect.js';
|
|
32
31
|
export * from './effects/StereoEffect.js';
|
|
33
32
|
|
|
34
33
|
export * from './environments/DebugEnvironment.js';
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
Vector3
|
|
14
14
|
} from 'three';
|
|
15
15
|
|
|
16
|
-
const
|
|
16
|
+
const _quaternion = new Quaternion();
|
|
17
17
|
const _targetPos = new Vector3();
|
|
18
18
|
const _targetVec = new Vector3();
|
|
19
19
|
const _effectorPos = new Vector3();
|
|
@@ -29,6 +29,8 @@ const _matrix = new Matrix4();
|
|
|
29
29
|
* This class solves the Inverse Kinematics Problem with a [CCD Algorithm]{@link https://web.archive.org/web/20221206080850/https://sites.google.com/site/auraliusproject/ccd-algorithm}.
|
|
30
30
|
*
|
|
31
31
|
* `CCDIKSolver` is designed to work with instances of {@link SkinnedMesh}.
|
|
32
|
+
*
|
|
33
|
+
* @three_import import { CCDIKSolver } from 'three/addons/animation/CCDIKSolver.js';
|
|
32
34
|
*/
|
|
33
35
|
class CCDIKSolver {
|
|
34
36
|
|
|
@@ -192,8 +194,8 @@ class CCDIKSolver {
|
|
|
192
194
|
_axis.crossVectors( _effectorVec, _targetVec );
|
|
193
195
|
_axis.normalize();
|
|
194
196
|
|
|
195
|
-
|
|
196
|
-
link.quaternion.multiply(
|
|
197
|
+
_quaternion.setFromAxisAngle( _axis, angle );
|
|
198
|
+
link.quaternion.multiply( _quaternion );
|
|
197
199
|
|
|
198
200
|
// TODO: re-consider the limitation specification
|
|
199
201
|
if ( limitation !== undefined ) {
|
|
@@ -322,6 +324,7 @@ function setPositionOfBoneToAttributeArray( array, index, bone, matrixWorldInv )
|
|
|
322
324
|
* Helper for visualizing IK bones.
|
|
323
325
|
*
|
|
324
326
|
* @augments Object3D
|
|
327
|
+
* @three_import import { CCDIKHelper } from 'three/addons/animation/CCDIKSolver.js';
|
|
325
328
|
*/
|
|
326
329
|
class CCDIKHelper extends Object3D {
|
|
327
330
|
|
|
@@ -96,7 +96,7 @@ const _EPS = 0.000001;
|
|
|
96
96
|
* Arcball controls allow the camera to be controlled by a virtual trackball with full touch support and advanced navigation functionality.
|
|
97
97
|
* Cursor/finger positions and movements are mapped over a virtual trackball surface represented by a gizmo and mapped in intuitive and
|
|
98
98
|
* consistent camera movements. Dragging cursor/fingers will cause camera to orbit around the center of the trackball in a conservative
|
|
99
|
-
* way (returning to the starting point will make the camera
|
|
99
|
+
* way (returning to the starting point will make the camera return to its starting orientation).
|
|
100
100
|
*
|
|
101
101
|
* In addition to supporting pan, zoom and pinch gestures, Arcball controls provide focus< functionality with a double click/tap for intuitively
|
|
102
102
|
* moving the object's point of interest in the center of the virtual trackball. Focus allows a much better inspection and navigation in complex
|
|
@@ -107,6 +107,7 @@ const _EPS = 0.000001;
|
|
|
107
107
|
* animation loop when animations are on.
|
|
108
108
|
*
|
|
109
109
|
* @augments Controls
|
|
110
|
+
* @three_import import { ArcballControls } from 'three/addons/controls/ArcballControls.js';
|
|
110
111
|
*/
|
|
111
112
|
class ArcballControls extends Controls {
|
|
112
113
|
|
|
@@ -195,6 +196,7 @@ class ArcballControls extends Controls {
|
|
|
195
196
|
this._farPos0 = 0;
|
|
196
197
|
this._cameraMatrixState0 = new Matrix4();
|
|
197
198
|
this._gizmoMatrixState0 = new Matrix4();
|
|
199
|
+
this._target0 = new Vector3();
|
|
198
200
|
|
|
199
201
|
//pointers array
|
|
200
202
|
this._button = - 1;
|
|
@@ -2228,6 +2230,7 @@ class ArcballControls extends Controls {
|
|
|
2228
2230
|
*/
|
|
2229
2231
|
reset() {
|
|
2230
2232
|
|
|
2233
|
+
this.target.copy( this._target0 );
|
|
2231
2234
|
this.object.zoom = this._zoom0;
|
|
2232
2235
|
|
|
2233
2236
|
if ( this.object.isPerspectiveCamera ) {
|
|
@@ -2300,7 +2303,8 @@ class ArcballControls extends Controls {
|
|
|
2300
2303
|
cameraNear: this.object.near,
|
|
2301
2304
|
cameraUp: this.object.up,
|
|
2302
2305
|
cameraZoom: this.object.zoom,
|
|
2303
|
-
gizmoMatrix: this._gizmos.matrix
|
|
2306
|
+
gizmoMatrix: this._gizmos.matrix,
|
|
2307
|
+
target: this.target
|
|
2304
2308
|
|
|
2305
2309
|
}
|
|
2306
2310
|
} );
|
|
@@ -2315,7 +2319,8 @@ class ArcballControls extends Controls {
|
|
|
2315
2319
|
cameraNear: this.object.near,
|
|
2316
2320
|
cameraUp: this.object.up,
|
|
2317
2321
|
cameraZoom: this.object.zoom,
|
|
2318
|
-
gizmoMatrix: this._gizmos.matrix
|
|
2322
|
+
gizmoMatrix: this._gizmos.matrix,
|
|
2323
|
+
target: this.target
|
|
2319
2324
|
|
|
2320
2325
|
}
|
|
2321
2326
|
} );
|
|
@@ -2346,6 +2351,10 @@ class ArcballControls extends Controls {
|
|
|
2346
2351
|
*/
|
|
2347
2352
|
saveState() {
|
|
2348
2353
|
|
|
2354
|
+
this.object.updateMatrix();
|
|
2355
|
+
this._gizmos.updateMatrix();
|
|
2356
|
+
|
|
2357
|
+
this._target0.copy( this.target );
|
|
2349
2358
|
this._cameraMatrixState0.copy( this.object.matrix );
|
|
2350
2359
|
this._gizmoMatrixState0.copy( this._gizmos.matrix );
|
|
2351
2360
|
this._nearPos = this.object.near;
|
|
@@ -2946,6 +2955,8 @@ class ArcballControls extends Controls {
|
|
|
2946
2955
|
|
|
2947
2956
|
if ( state.arcballState != undefined ) {
|
|
2948
2957
|
|
|
2958
|
+
this.target.fromArray( state.arcballState.target );
|
|
2959
|
+
|
|
2949
2960
|
this._cameraMatrixState.fromArray( state.arcballState.cameraMatrix.elements );
|
|
2950
2961
|
this._cameraMatrixState.decompose( this.object.position, this.object.quaternion, this.object.scale );
|
|
2951
2962
|
|
|
@@ -14,6 +14,7 @@ const _targetPosition = new Vector3();
|
|
|
14
14
|
* This class is an alternative implementation of {@link FlyControls}.
|
|
15
15
|
*
|
|
16
16
|
* @augments Controls
|
|
17
|
+
* @three_import import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';
|
|
17
18
|
*/
|
|
18
19
|
class FirstPersonControls extends Controls {
|
|
19
20
|
|
|
@@ -12,6 +12,7 @@ import { OrbitControls } from './OrbitControls.js';
|
|
|
12
12
|
* - Pan: Left mouse, or arrow keys / touch: one-finger move.
|
|
13
13
|
*
|
|
14
14
|
* @augments OrbitControls
|
|
15
|
+
* @three_import import { MapControls } from 'three/addons/controls/MapControls.js';
|
|
15
16
|
*/
|
|
16
17
|
class MapControls extends OrbitControls {
|
|
17
18
|
|
|
@@ -31,6 +31,7 @@ const _lockEvent = { type: 'lock' };
|
|
|
31
31
|
*/
|
|
32
32
|
const _unlockEvent = { type: 'unlock' };
|
|
33
33
|
|
|
34
|
+
const _MOUSE_SENSITIVITY = 0.002;
|
|
34
35
|
const _PI_2 = Math.PI / 2;
|
|
35
36
|
|
|
36
37
|
/**
|
|
@@ -55,6 +56,7 @@ const _PI_2 = Math.PI / 2;
|
|
|
55
56
|
* ```
|
|
56
57
|
*
|
|
57
58
|
* @augments Controls
|
|
59
|
+
* @three_import import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
|
|
58
60
|
*/
|
|
59
61
|
class PointerLockControls extends Controls {
|
|
60
62
|
|
|
@@ -200,7 +202,7 @@ class PointerLockControls extends Controls {
|
|
|
200
202
|
|
|
201
203
|
/**
|
|
202
204
|
* Activates the pointer lock.
|
|
203
|
-
*
|
|
205
|
+
*
|
|
204
206
|
* @param {boolean} [unadjustedMovement=false] - Disables OS-level adjustment for mouse acceleration, and accesses raw mouse input instead.
|
|
205
207
|
* Setting it to true will disable mouse acceleration.
|
|
206
208
|
*/
|
|
@@ -232,8 +234,8 @@ function onMouseMove( event ) {
|
|
|
232
234
|
const camera = this.object;
|
|
233
235
|
_euler.setFromQuaternion( camera.quaternion );
|
|
234
236
|
|
|
235
|
-
_euler.y -= event.movementX *
|
|
236
|
-
_euler.x -= event.movementY *
|
|
237
|
+
_euler.y -= event.movementX * _MOUSE_SENSITIVITY * this.pointerSpeed;
|
|
238
|
+
_euler.x -= event.movementY * _MOUSE_SENSITIVITY * this.pointerSpeed;
|
|
237
239
|
|
|
238
240
|
_euler.x = Math.max( _PI_2 - this.maxPolarAngle, Math.min( _PI_2 - this.minPolarAngle, _euler.x ) );
|
|
239
241
|
|
|
@@ -72,6 +72,7 @@ const _objectChangeEvent = { type: 'objectChange' };
|
|
|
72
72
|
* `TransformControls` expects that its attached 3D object is part of the scene graph.
|
|
73
73
|
*
|
|
74
74
|
* @augments Controls
|
|
75
|
+
* @three_import import { TransformControls } from 'three/addons/controls/TransformControls.js';
|
|
75
76
|
*/
|
|
76
77
|
class TransformControls extends Controls {
|
|
77
78
|
|
package/examples/jsm/csm/CSM.js
CHANGED
|
@@ -25,6 +25,8 @@ const _up = new Vector3( 0, 1, 0 );
|
|
|
25
25
|
*
|
|
26
26
|
* This module can only be used with {@link WebGLRenderer}. When using {@link WebGPURenderer},
|
|
27
27
|
* use {@link CSMShadowNode} instead.
|
|
28
|
+
*
|
|
29
|
+
* @three_import import { CSM } from 'three/addons/csm/CSM.js';
|
|
28
30
|
*/
|
|
29
31
|
export class CSM {
|
|
30
32
|
|
|
@@ -42,6 +42,7 @@ class LwLight extends Object3D {
|
|
|
42
42
|
* use {@link CSM} instead.
|
|
43
43
|
*
|
|
44
44
|
* @augments ShadowBaseNode
|
|
45
|
+
* @three_import import { CSMShadowNode } from 'three/addons/csm/CSMShadowNode.js';
|
|
45
46
|
*/
|
|
46
47
|
class CSMShadowNode extends ShadowBaseNode {
|
|
47
48
|
|
|
@@ -162,7 +163,6 @@ class CSMShadowNode extends ShadowBaseNode {
|
|
|
162
163
|
this.mainFrustum = new CSMFrustum( data );
|
|
163
164
|
|
|
164
165
|
const light = this.light;
|
|
165
|
-
const parent = light.parent;
|
|
166
166
|
|
|
167
167
|
for ( let i = 0; i < this.cascades; i ++ ) {
|
|
168
168
|
|
|
@@ -174,9 +174,6 @@ class CSMShadowNode extends ShadowBaseNode {
|
|
|
174
174
|
|
|
175
175
|
this.lights.push( lwLight );
|
|
176
176
|
|
|
177
|
-
parent.add( lwLight );
|
|
178
|
-
parent.add( lwLight.target );
|
|
179
|
-
|
|
180
177
|
lwLight.shadow = lShadow;
|
|
181
178
|
|
|
182
179
|
this._shadowNodes.push( shadow( lwLight, lShadow ) );
|
|
@@ -502,9 +499,26 @@ class CSMShadowNode extends ShadowBaseNode {
|
|
|
502
499
|
updateBefore( /*builder*/ ) {
|
|
503
500
|
|
|
504
501
|
const light = this.light;
|
|
502
|
+
const parent = light.parent;
|
|
505
503
|
const camera = this.camera;
|
|
506
504
|
const frustums = this.frustums;
|
|
507
505
|
|
|
506
|
+
// make sure the placeholder light objects which represent the
|
|
507
|
+
// multiple cascade shadow casters are part of the scene graph
|
|
508
|
+
|
|
509
|
+
for ( let i = 0; i < this.lights.length; i ++ ) {
|
|
510
|
+
|
|
511
|
+
const lwLight = this.lights[ i ];
|
|
512
|
+
|
|
513
|
+
if ( lwLight.parent === null ) {
|
|
514
|
+
|
|
515
|
+
parent.add( lwLight.target );
|
|
516
|
+
parent.add( lwLight );
|
|
517
|
+
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
}
|
|
521
|
+
|
|
508
522
|
_lightDirection.subVectors( light.target.position, light.position ).normalize();
|
|
509
523
|
|
|
510
524
|
// for each frustum we need to find its min-max box aligned with the light orientation
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
* A Granny Knot curve.
|
|
18
18
|
*
|
|
19
19
|
* @augments Curve
|
|
20
|
+
* @three_import import { GrannyKnot } from 'three/addons/curves/CurveExtras.js';
|
|
20
21
|
*/
|
|
21
22
|
class GrannyKnot extends Curve {
|
|
22
23
|
|
|
@@ -47,6 +48,7 @@ class GrannyKnot extends Curve {
|
|
|
47
48
|
* A heart curve.
|
|
48
49
|
*
|
|
49
50
|
* @augments Curve
|
|
51
|
+
* @three_import import { HeartCurve } from 'three/addons/curves/CurveExtras.js';
|
|
50
52
|
*/
|
|
51
53
|
class HeartCurve extends Curve {
|
|
52
54
|
|
|
@@ -96,6 +98,7 @@ class HeartCurve extends Curve {
|
|
|
96
98
|
* A Viviani curve.
|
|
97
99
|
*
|
|
98
100
|
* @augments Curve
|
|
101
|
+
* @three_import import { VivianiCurve } from 'three/addons/curves/CurveExtras.js';
|
|
99
102
|
*/
|
|
100
103
|
class VivianiCurve extends Curve {
|
|
101
104
|
|
|
@@ -146,6 +149,7 @@ class VivianiCurve extends Curve {
|
|
|
146
149
|
* A knot curve.
|
|
147
150
|
*
|
|
148
151
|
* @augments Curve
|
|
152
|
+
* @three_import import { KnotCurve } from 'three/addons/curves/CurveExtras.js';
|
|
149
153
|
*/
|
|
150
154
|
class KnotCurve extends Curve {
|
|
151
155
|
|
|
@@ -179,6 +183,7 @@ class KnotCurve extends Curve {
|
|
|
179
183
|
* A helix curve.
|
|
180
184
|
*
|
|
181
185
|
* @augments Curve
|
|
186
|
+
* @three_import import { HelixCurve } from 'three/addons/curves/CurveExtras.js';
|
|
182
187
|
*/
|
|
183
188
|
class HelixCurve extends Curve {
|
|
184
189
|
|
|
@@ -212,6 +217,7 @@ class HelixCurve extends Curve {
|
|
|
212
217
|
* A Trefoil Knot.
|
|
213
218
|
*
|
|
214
219
|
* @augments Curve
|
|
220
|
+
* @three_import import { TrefoilKnot } from 'three/addons/curves/CurveExtras.js';
|
|
215
221
|
*/
|
|
216
222
|
class TrefoilKnot extends Curve {
|
|
217
223
|
|
|
@@ -261,6 +267,7 @@ class TrefoilKnot extends Curve {
|
|
|
261
267
|
* A torus knot.
|
|
262
268
|
*
|
|
263
269
|
* @augments Curve
|
|
270
|
+
* @three_import import { TorusKnot } from 'three/addons/curves/CurveExtras.js';
|
|
264
271
|
*/
|
|
265
272
|
class TorusKnot extends Curve {
|
|
266
273
|
|
|
@@ -313,6 +320,7 @@ class TorusKnot extends Curve {
|
|
|
313
320
|
* A Cinquefoil Knot.
|
|
314
321
|
*
|
|
315
322
|
* @augments Curve
|
|
323
|
+
* @three_import import { CinquefoilKnot } from 'three/addons/curves/CurveExtras.js';
|
|
316
324
|
*/
|
|
317
325
|
class CinquefoilKnot extends Curve {
|
|
318
326
|
|
|
@@ -365,6 +373,7 @@ class CinquefoilKnot extends Curve {
|
|
|
365
373
|
* A Trefoil Polynomial Knot.
|
|
366
374
|
*
|
|
367
375
|
* @augments Curve
|
|
376
|
+
* @three_import import { TrefoilPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
|
|
368
377
|
*/
|
|
369
378
|
class TrefoilPolynomialKnot extends Curve {
|
|
370
379
|
|
|
@@ -421,6 +430,7 @@ function scaleTo( x, y, t ) {
|
|
|
421
430
|
* A Figure Eight Polynomial Knot.
|
|
422
431
|
*
|
|
423
432
|
* @augments Curve
|
|
433
|
+
* @three_import import { FigureEightPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
|
|
424
434
|
*/
|
|
425
435
|
class FigureEightPolynomialKnot extends Curve {
|
|
426
436
|
|
|
@@ -470,6 +480,7 @@ class FigureEightPolynomialKnot extends Curve {
|
|
|
470
480
|
* A Decorated Torus Knot 4a.
|
|
471
481
|
*
|
|
472
482
|
* @augments Curve
|
|
483
|
+
* @three_import import { DecoratedTorusKnot4a } from 'three/addons/curves/CurveExtras.js';
|
|
473
484
|
*/
|
|
474
485
|
class DecoratedTorusKnot4a extends Curve {
|
|
475
486
|
|
|
@@ -519,6 +530,7 @@ class DecoratedTorusKnot4a extends Curve {
|
|
|
519
530
|
* A Decorated Torus Knot 4b.
|
|
520
531
|
*
|
|
521
532
|
* @augments Curve
|
|
533
|
+
* @three_import import { DecoratedTorusKnot4b } from 'three/addons/curves/CurveExtras.js';
|
|
522
534
|
*/
|
|
523
535
|
class DecoratedTorusKnot4b extends Curve {
|
|
524
536
|
|
|
@@ -568,6 +580,7 @@ class DecoratedTorusKnot4b extends Curve {
|
|
|
568
580
|
* A Decorated Torus Knot 5a.
|
|
569
581
|
*
|
|
570
582
|
* @augments Curve
|
|
583
|
+
* @three_import import { DecoratedTorusKnot5a } from 'three/addons/curves/CurveExtras.js';
|
|
571
584
|
*/
|
|
572
585
|
class DecoratedTorusKnot5a extends Curve {
|
|
573
586
|
|
|
@@ -617,6 +630,7 @@ class DecoratedTorusKnot5a extends Curve {
|
|
|
617
630
|
* A Decorated Torus Knot 5c.
|
|
618
631
|
*
|
|
619
632
|
* @augments Curve
|
|
633
|
+
* @three_import import { DecoratedTorusKnot5c } from 'three/addons/curves/CurveExtras.js';
|
|
620
634
|
*/
|
|
621
635
|
class DecoratedTorusKnot5c extends Curve {
|
|
622
636
|
|
|
@@ -11,6 +11,7 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
11
11
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
12
12
|
*
|
|
13
13
|
* @augments Curve
|
|
14
|
+
* @three_import import { NURBSCurve } from 'three/addons/curves/NURBSCurve.js';
|
|
14
15
|
*/
|
|
15
16
|
class NURBSCurve extends Curve {
|
|
16
17
|
|
|
@@ -7,6 +7,8 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
7
7
|
* This class represents a NURBS surface.
|
|
8
8
|
*
|
|
9
9
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
10
|
+
*
|
|
11
|
+
* @three_import import { NURBSSurface } from 'three/addons/curves/NURBSSurface.js';
|
|
10
12
|
*/
|
|
11
13
|
class NURBSSurface {
|
|
12
14
|
|
|
@@ -7,6 +7,8 @@ import * as NURBSUtils from '../curves/NURBSUtils.js';
|
|
|
7
7
|
* This class represents a NURBS volume.
|
|
8
8
|
*
|
|
9
9
|
* Implementation is based on `(x, y [, z=0 [, w=1]])` control points with `w=weight`.
|
|
10
|
+
*
|
|
11
|
+
* @three_import import { NURBSVolume } from 'three/addons/curves/NURBSVolume.js';
|
|
10
12
|
*/
|
|
11
13
|
class NURBSVolume {
|
|
12
14
|
|
|
@@ -14,6 +14,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
|
|
|
14
14
|
*
|
|
15
15
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
16
16
|
* When using {@link WebGPURenderer}, use {@link AnaglyphPassNode}.
|
|
17
|
+
*
|
|
18
|
+
* @three_import import { AnaglyphEffect } from 'three/addons/effects/AnaglyphEffect.js';
|
|
17
19
|
*/
|
|
18
20
|
class AnaglyphEffect {
|
|
19
21
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* A class that creates an ASCII effect.
|
|
3
3
|
*
|
|
4
4
|
* The ASCII generation is based on [jsascii]{@link https://github.com/hassadee/jsascii/blob/master/jsascii.js}.
|
|
5
|
+
*
|
|
6
|
+
* @three_import import { AsciiEffect } from 'three/addons/effects/AsciiEffect.js';
|
|
5
7
|
*/
|
|
6
8
|
class AsciiEffect {
|
|
7
9
|
|
|
@@ -13,6 +13,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
|
|
|
13
13
|
*
|
|
14
14
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
15
15
|
* When using {@link WebGPURenderer}, use {@link ParallaxBarrierPassNode}.
|
|
16
|
+
*
|
|
17
|
+
* @three_import import { ParallaxBarrierEffect } from 'three/addons/effects/ParallaxBarrierEffect.js';
|
|
16
18
|
*/
|
|
17
19
|
class ParallaxBarrierEffect {
|
|
18
20
|
|
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
*
|
|
9
9
|
* Note that this class can only be used with {@link WebGLRenderer}.
|
|
10
10
|
* When using {@link WebGPURenderer}, use {@link StereoPassNode}.
|
|
11
|
+
*
|
|
12
|
+
* @three_import import { StereoEffect } from 'three/addons/effects/StereoEffect.js';
|
|
11
13
|
*/
|
|
12
14
|
class StereoEffect {
|
|
13
15
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BackSide,
|
|
3
3
|
BoxGeometry,
|
|
4
|
+
InstancedMesh,
|
|
4
5
|
Mesh,
|
|
5
6
|
MeshBasicMaterial,
|
|
6
7
|
MeshStandardMaterial,
|
|
7
8
|
PointLight,
|
|
8
9
|
Scene,
|
|
10
|
+
Object3D,
|
|
9
11
|
} from 'three';
|
|
10
12
|
|
|
11
13
|
/**
|
|
@@ -26,6 +28,7 @@ import {
|
|
|
26
28
|
* ```
|
|
27
29
|
*
|
|
28
30
|
* @augments Scene
|
|
31
|
+
* @three_import import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js';
|
|
29
32
|
*/
|
|
30
33
|
class RoomEnvironment extends Scene {
|
|
31
34
|
|
|
@@ -48,41 +51,52 @@ class RoomEnvironment extends Scene {
|
|
|
48
51
|
room.scale.set( 31.713, 28.305, 28.591 );
|
|
49
52
|
this.add( room );
|
|
50
53
|
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
box1
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
54
|
+
const boxes = new InstancedMesh( geometry, boxMaterial, 6 );
|
|
55
|
+
const transform = new Object3D();
|
|
56
|
+
|
|
57
|
+
// box1
|
|
58
|
+
transform.position.set( - 10.906, 2.009, 1.846 );
|
|
59
|
+
transform.rotation.set( 0, - 0.195, 0 );
|
|
60
|
+
transform.scale.set( 2.328, 7.905, 4.651 );
|
|
61
|
+
transform.updateMatrix();
|
|
62
|
+
boxes.setMatrixAt( 0, transform.matrix );
|
|
63
|
+
|
|
64
|
+
// box2
|
|
65
|
+
transform.position.set( - 5.607, - 0.754, - 0.758 );
|
|
66
|
+
transform.rotation.set( 0, 0.994, 0 );
|
|
67
|
+
transform.scale.set( 1.970, 1.534, 3.955 );
|
|
68
|
+
transform.updateMatrix();
|
|
69
|
+
boxes.setMatrixAt( 1, transform.matrix );
|
|
70
|
+
|
|
71
|
+
// box3
|
|
72
|
+
transform.position.set( 6.167, 0.857, 7.803 );
|
|
73
|
+
transform.rotation.set( 0, 0.561, 0 );
|
|
74
|
+
transform.scale.set( 3.927, 6.285, 3.687 );
|
|
75
|
+
transform.updateMatrix();
|
|
76
|
+
boxes.setMatrixAt( 2, transform.matrix );
|
|
77
|
+
|
|
78
|
+
// box4
|
|
79
|
+
transform.position.set( - 2.017, 0.018, 6.124 );
|
|
80
|
+
transform.rotation.set( 0, 0.333, 0 );
|
|
81
|
+
transform.scale.set( 2.002, 4.566, 2.064 );
|
|
82
|
+
transform.updateMatrix();
|
|
83
|
+
boxes.setMatrixAt( 3, transform.matrix );
|
|
84
|
+
|
|
85
|
+
// box5
|
|
86
|
+
transform.position.set( 2.291, - 0.756, - 2.621 );
|
|
87
|
+
transform.rotation.set( 0, - 0.286, 0 );
|
|
88
|
+
transform.scale.set( 1.546, 1.552, 1.496 );
|
|
89
|
+
transform.updateMatrix();
|
|
90
|
+
boxes.setMatrixAt( 4, transform.matrix );
|
|
91
|
+
|
|
92
|
+
// box6
|
|
93
|
+
transform.position.set( - 2.193, - 0.369, - 5.547 );
|
|
94
|
+
transform.rotation.set( 0, 0.516, 0 );
|
|
95
|
+
transform.scale.set( 3.875, 3.487, 2.986 );
|
|
96
|
+
transform.updateMatrix();
|
|
97
|
+
boxes.setMatrixAt( 5, transform.matrix );
|
|
98
|
+
|
|
99
|
+
this.add( boxes );
|
|
86
100
|
|
|
87
101
|
|
|
88
102
|
// -x right
|