@plastic-software/three 0.175.14 → 0.179.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 +4 -4
- package/build/three.cjs +8402 -6787
- package/build/three.core.js +8007 -6688
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +397 -102
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +84 -27
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6831 -2838
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6648 -2838
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -3
- package/examples/jsm/animation/AnimationClipCreator.js +1 -0
- package/examples/jsm/animation/CCDIKSolver.js +6 -3
- package/examples/jsm/capabilities/WebGL.js +1 -27
- package/examples/jsm/capabilities/WebGPU.js +2 -1
- package/examples/jsm/controls/ArcballControls.js +15 -4
- 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 +62 -14
- 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 +22 -8
- 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 +57 -38
- 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 +679 -300
- 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 +48 -8
- 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 +11 -2
- 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/libs/meshopt_decoder.module.js +75 -58
- package/examples/jsm/lighting/TiledLighting.js +1 -0
- package/examples/jsm/lights/LightProbeGenerator.js +15 -3
- 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 +6 -5
- package/examples/jsm/loaders/DDSLoader.js +1 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -1
- package/examples/jsm/loaders/EXRLoader.js +211 -22
- package/examples/jsm/loaders/FBXLoader.js +25 -23
- 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 +213 -30
- 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 +14 -1
- package/examples/jsm/loaders/USDLoader.js +219 -0
- package/examples/jsm/loaders/USDZLoader.js +4 -891
- 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/loaders/usd/USDAParser.js +741 -0
- package/examples/jsm/loaders/usd/USDCParser.js +17 -0
- 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/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 +4 -3
- 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 +22 -19
- 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 +149 -13
- 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 +4 -2
- package/examples/jsm/postprocessing/FXAAPass.js +40 -0
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/GTAOPass.js +14 -12
- 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 +22 -19
- 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 +12 -10
- 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 +15 -3
- 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/AST.js +381 -30
- package/examples/jsm/transpiler/GLSLDecoder.js +227 -88
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/TSLEncoder.js +234 -85
- package/examples/jsm/transpiler/Transpiler.js +19 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +788 -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 +9 -7
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -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 +9 -36
- 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 +5 -4
- 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 → TRAANode.js} +184 -174
- 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 +5 -4
- 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 +2 -1
- package/src/Three.TSL.js +83 -26
- package/src/Three.WebGPU.Nodes.js +1 -0
- package/src/Three.WebGPU.js +3 -0
- package/src/animation/KeyframeTrack.js +1 -1
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/audio/AudioListener.js +13 -10
- package/src/cameras/ArrayCamera.js +9 -1
- package/src/cameras/Camera.js +14 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/constants.js +47 -20
- package/src/core/BufferAttribute.js +3 -3
- package/src/core/BufferGeometry.js +2 -5
- package/src/core/Clock.js +2 -8
- package/src/core/GLBufferAttribute.js +13 -1
- package/src/core/Object3D.js +23 -22
- package/src/core/RenderTarget.js +65 -21
- package/src/core/RenderTarget3D.js +1 -0
- package/{examples/jsm/misc → src/core}/Timer.js +4 -40
- package/src/extras/PMREMGenerator.js +11 -0
- package/src/extras/TextureUtils.js +1 -5
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +22 -22
- package/src/geometries/CapsuleGeometry.js +167 -17
- package/src/geometries/ExtrudeGeometry.js +39 -29
- package/src/helpers/ArrowHelper.js +2 -2
- package/src/helpers/CameraHelper.js +41 -11
- package/src/helpers/SkeletonHelper.js +36 -7
- package/src/lights/LightShadow.js +34 -7
- package/src/lights/PointLightShadow.js +1 -1
- 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/FileLoader.js +27 -4
- package/src/loaders/ImageBitmapLoader.js +48 -9
- package/src/loaders/ImageLoader.js +55 -8
- package/src/loaders/Loader.js +14 -0
- package/src/loaders/LoadingManager.js +23 -0
- 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/MeshBasicMaterial.js +1 -1
- package/src/materials/nodes/Line2NodeMaterial.js +0 -8
- package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
- package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +106 -20
- package/src/materials/nodes/PointsNodeMaterial.js +5 -0
- package/src/materials/nodes/manager/NodeMaterialObserver.js +107 -4
- package/src/math/Box3.js +28 -0
- package/src/math/Color.js +7 -7
- package/src/math/ColorManagement.js +22 -3
- package/src/math/Frustum.js +25 -9
- package/src/math/FrustumArray.js +258 -0
- package/src/math/Line3.js +129 -2
- package/src/math/Matrix4.js +48 -27
- package/src/math/Quaternion.js +1 -1
- package/src/math/Ray.js +2 -0
- package/src/math/Sphere.js +28 -0
- package/src/math/Spherical.js +2 -2
- package/src/nodes/Nodes.js +3 -3
- package/src/nodes/TSL.js +6 -3
- package/src/nodes/accessors/AccessorsUtils.js +7 -8
- package/src/nodes/accessors/Bitangent.js +54 -26
- package/src/nodes/accessors/Camera.js +40 -13
- 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 +110 -24
- package/src/nodes/accessors/Object3DNode.js +7 -8
- package/src/nodes/accessors/Position.js +14 -4
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +19 -4
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SceneNode.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 +15 -4
- package/src/nodes/accessors/Tangent.js +25 -17
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/TextureBicubic.js +21 -3
- package/src/nodes/accessors/TextureNode.js +71 -8
- package/src/nodes/accessors/UniformArrayNode.js +0 -16
- 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/ArrayNode.js +12 -0
- package/src/nodes/core/AssignNode.js +30 -5
- package/src/nodes/core/AttributeNode.js +2 -2
- package/src/nodes/core/ContextNode.js +27 -4
- package/src/nodes/core/Node.js +83 -22
- package/src/nodes/core/NodeBuilder.js +273 -49
- package/src/nodes/core/NodeUtils.js +46 -1
- package/src/nodes/core/NodeVarying.js +19 -1
- package/src/nodes/core/PropertyNode.js +8 -12
- package/src/nodes/core/StackNode.js +171 -26
- package/src/nodes/core/StructTypeNode.js +26 -4
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/UniformNode.js +63 -5
- package/src/nodes/core/VarNode.js +102 -4
- package/src/nodes/core/VaryingNode.js +45 -24
- package/src/nodes/display/BlendModes.js +42 -1
- package/src/nodes/display/ColorSpaceNode.js +4 -27
- package/src/nodes/display/FrontFacingNode.js +34 -2
- package/src/nodes/display/NormalMapNode.js +19 -50
- package/src/nodes/display/PassNode.js +165 -20
- package/src/nodes/display/ScreenNode.js +0 -26
- package/src/nodes/display/ViewportTextureNode.js +67 -7
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/PhongLightingModel.js +3 -3
- package/src/nodes/functions/PhysicalLightingModel.js +16 -16
- package/src/nodes/functions/ShadowMaskModel.js +5 -1
- package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
- 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 +68 -24
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +28 -3
- package/src/nodes/lighting/AnalyticLightNode.js +7 -13
- package/src/nodes/lighting/EnvironmentNode.js +5 -5
- package/src/nodes/lighting/HemisphereLightNode.js +2 -2
- package/src/nodes/lighting/IESSpotLightNode.js +2 -1
- package/src/nodes/lighting/LightsNode.js +29 -11
- package/src/nodes/lighting/ProjectorLightNode.js +91 -0
- package/src/nodes/lighting/ShadowBaseNode.js +1 -12
- package/src/nodes/lighting/ShadowFilterNode.js +274 -0
- package/src/nodes/lighting/ShadowNode.js +174 -242
- package/src/nodes/lighting/SpotLightNode.js +44 -7
- package/src/nodes/materialx/MaterialXNodes.js +131 -2
- package/src/nodes/materialx/lib/mx_noise.js +166 -2
- package/src/nodes/math/ConditionalNode.js +1 -20
- package/src/nodes/math/MathNode.js +146 -75
- package/src/nodes/math/OperatorNode.js +129 -119
- package/src/nodes/shapes/Shapes.js +5 -4
- package/src/nodes/tsl/TSLBase.js +1 -0
- package/src/nodes/tsl/TSLCore.js +222 -72
- package/src/nodes/utils/DebugNode.js +16 -4
- package/src/nodes/utils/Discard.js +2 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/EventNode.js +83 -0
- package/src/nodes/utils/LoopNode.js +64 -34
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/RTTNode.js +22 -5
- package/src/nodes/utils/ReflectorNode.js +77 -7
- package/src/nodes/utils/SampleNode.js +81 -0
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/objects/BatchedMesh.js +20 -6
- 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 +45 -32
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Background.js +13 -2
- package/src/renderers/common/Bindings.js +19 -18
- package/src/renderers/common/Color4.js +2 -2
- package/src/renderers/common/CubeRenderTarget.js +1 -1
- package/src/renderers/common/PostProcessing.js +60 -5
- package/src/renderers/common/RenderList.js +0 -4
- package/src/renderers/common/RenderObject.js +80 -4
- package/src/renderers/common/Renderer.js +133 -22
- package/src/renderers/common/SampledTexture.js +3 -71
- package/src/renderers/common/Sampler.js +79 -0
- package/src/renderers/common/Storage3DTexture.js +100 -0
- package/src/renderers/common/StorageArrayTexture.js +84 -0
- package/src/renderers/common/StorageTexture.js +19 -0
- package/src/renderers/common/Textures.js +34 -24
- 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 +183 -35
- package/src/renderers/common/XRRenderTarget.js +21 -4
- package/src/renderers/common/extras/PMREMGenerator.js +30 -23
- package/src/renderers/common/nodes/NodeSampledTexture.js +0 -12
- 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/ShaderChunk/shadowmap_pars_fragment.glsl.js +20 -2
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +11 -2
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLCapabilities.js +2 -2
- package/src/renderers/webgl/WebGLMaterials.js +6 -6
- package/src/renderers/webgl/WebGLProgram.js +22 -16
- package/src/renderers/webgl/WebGLPrograms.js +8 -6
- package/src/renderers/webgl/WebGLShadowMap.js +14 -3
- package/src/renderers/webgl/WebGLState.js +4 -4
- package/src/renderers/webgl/WebGLTextures.js +163 -11
- package/src/renderers/webgl/WebGLUtils.js +1 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +261 -94
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +75 -9
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +44 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
- package/src/renderers/webgpu/WebGPUBackend.js +505 -143
- 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 +129 -96
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +9 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +58 -31
- package/src/renderers/webgpu/utils/WebGPUConstants.js +8 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +39 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +50 -108
- package/src/renderers/webgpu/utils/WebGPUUtils.js +2 -17
- package/src/renderers/webxr/WebXRController.js +1 -1
- package/src/renderers/webxr/WebXRDepthSensing.js +6 -10
- package/src/renderers/webxr/WebXRManager.js +70 -9
- package/src/textures/DepthTexture.js +6 -10
- package/src/textures/ExternalTexture.js +45 -0
- package/src/textures/FramebufferTexture.js +2 -2
- package/src/textures/Source.js +32 -0
- package/src/textures/Texture.js +118 -1
- package/src/textures/VideoTexture.js +31 -3
- package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
- package/src/core/RenderTargetArray.js +0 -40
- package/src/nodes/utils/EquirectUVNode.js +0 -65
- package/src/nodes/utils/MatcapUVNode.js +0 -49
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
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';
|
|
@@ -118,7 +117,7 @@ export * from './loaders/TDSLoader.js';
|
|
|
118
117
|
export * from './loaders/TGALoader.js';
|
|
119
118
|
export * from './loaders/TIFFLoader.js';
|
|
120
119
|
export * from './loaders/TTFLoader.js';
|
|
121
|
-
export * from './loaders/
|
|
120
|
+
export * from './loaders/USDLoader.js';
|
|
122
121
|
export * from './loaders/VOXLoader.js';
|
|
123
122
|
export * from './loaders/VRMLLoader.js';
|
|
124
123
|
export * from './loaders/VTKLoader.js';
|
|
@@ -147,7 +146,6 @@ export * from './misc/MorphAnimMesh.js';
|
|
|
147
146
|
export * from './misc/MorphBlendMesh.js';
|
|
148
147
|
export * from './misc/ProgressiveLightMap.js';
|
|
149
148
|
export * from './misc/RollerCoaster.js';
|
|
150
|
-
export * from './misc/Timer.js';
|
|
151
149
|
export * from './misc/TubePainter.js';
|
|
152
150
|
export * from './misc/Volume.js';
|
|
153
151
|
export * from './misc/VolumeSlice.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
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* A utility module with basic WebGL 2 capability testing.
|
|
3
3
|
*
|
|
4
4
|
* @hideconstructor
|
|
5
|
+
* @three_import import WebGL from 'three/addons/capabilities/WebGL.js';
|
|
5
6
|
*/
|
|
6
7
|
class WebGL {
|
|
7
8
|
|
|
@@ -107,33 +108,6 @@ class WebGL {
|
|
|
107
108
|
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
// @deprecated, r168
|
|
111
|
-
|
|
112
|
-
static isWebGLAvailable() {
|
|
113
|
-
|
|
114
|
-
console.warn( 'isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.' );
|
|
115
|
-
|
|
116
|
-
try {
|
|
117
|
-
|
|
118
|
-
const canvas = document.createElement( 'canvas' );
|
|
119
|
-
return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
|
|
120
|
-
|
|
121
|
-
} catch ( e ) {
|
|
122
|
-
|
|
123
|
-
return false;
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
static getWebGLErrorMessage() {
|
|
130
|
-
|
|
131
|
-
console.warn( 'getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead.' );
|
|
132
|
-
|
|
133
|
-
return this._getErrorMessage( 1 );
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
111
|
}
|
|
138
112
|
|
|
139
113
|
export default WebGL;
|
|
@@ -2,7 +2,7 @@ let isAvailable = ( typeof navigator !== 'undefined' && navigator.gpu !== undefi
|
|
|
2
2
|
|
|
3
3
|
if ( typeof window !== 'undefined' && isAvailable ) {
|
|
4
4
|
|
|
5
|
-
isAvailable = await navigator.gpu.requestAdapter();
|
|
5
|
+
isAvailable = Boolean( await navigator.gpu.requestAdapter() );
|
|
6
6
|
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -10,6 +10,7 @@ if ( typeof window !== 'undefined' && isAvailable ) {
|
|
|
10
10
|
* A utility module with basic WebGPU capability testing.
|
|
11
11
|
*
|
|
12
12
|
* @hideconstructor
|
|
13
|
+
* @three_import import WebGPU from 'three/addons/capabilities/WebGPU.js';
|
|
13
14
|
*/
|
|
14
15
|
class WebGPU {
|
|
15
16
|
|
|
@@ -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;
|
|
@@ -455,7 +457,7 @@ class ArcballControls extends Controls {
|
|
|
455
457
|
this._devPxRatio = window.devicePixelRatio;
|
|
456
458
|
|
|
457
459
|
this.domElement.addEventListener( 'contextmenu', this._onContextMenu );
|
|
458
|
-
this.domElement.addEventListener( 'wheel', this._onWheel );
|
|
460
|
+
this.domElement.addEventListener( 'wheel', this._onWheel, { passive: false } );
|
|
459
461
|
this.domElement.addEventListener( 'pointerdown', this._onPointerDown );
|
|
460
462
|
this.domElement.addEventListener( 'pointercancel', this._onPointerCancel );
|
|
461
463
|
|
|
@@ -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
|
|
|
@@ -887,6 +888,40 @@ class TransformControls extends Controls {
|
|
|
887
888
|
|
|
888
889
|
}
|
|
889
890
|
|
|
891
|
+
/**
|
|
892
|
+
* Sets the colors of the control's gizmo.
|
|
893
|
+
*
|
|
894
|
+
* @param {number|Color|string} xAxis - The x-axis color.
|
|
895
|
+
* @param {number|Color|string} yAxis - The y-axis color.
|
|
896
|
+
* @param {number|Color|string} zAxis - The z-axis color.
|
|
897
|
+
* @param {number|Color|string} active - The color for active elements.
|
|
898
|
+
*/
|
|
899
|
+
setColors( xAxis, yAxis, zAxis, active ) {
|
|
900
|
+
|
|
901
|
+
const materialLib = this._gizmo.materialLib;
|
|
902
|
+
|
|
903
|
+
materialLib.xAxis.color.set( xAxis );
|
|
904
|
+
materialLib.yAxis.color.set( yAxis );
|
|
905
|
+
materialLib.zAxis.color.set( zAxis );
|
|
906
|
+
materialLib.active.color.set( active );
|
|
907
|
+
materialLib.xAxisTransparent.color.set( xAxis );
|
|
908
|
+
materialLib.yAxisTransparent.color.set( yAxis );
|
|
909
|
+
materialLib.zAxisTransparent.color.set( zAxis );
|
|
910
|
+
materialLib.activeTransparent.color.set( active );
|
|
911
|
+
|
|
912
|
+
// update color caches
|
|
913
|
+
|
|
914
|
+
if ( materialLib.xAxis._color ) materialLib.xAxis._color.set( xAxis );
|
|
915
|
+
if ( materialLib.yAxis._color ) materialLib.yAxis._color.set( yAxis );
|
|
916
|
+
if ( materialLib.zAxis._color ) materialLib.zAxis._color.set( zAxis );
|
|
917
|
+
if ( materialLib.active._color ) materialLib.active._color.set( active );
|
|
918
|
+
if ( materialLib.xAxisTransparent._color ) materialLib.xAxisTransparent._color.set( xAxis );
|
|
919
|
+
if ( materialLib.yAxisTransparent._color ) materialLib.yAxisTransparent._color.set( yAxis );
|
|
920
|
+
if ( materialLib.zAxisTransparent._color ) materialLib.zAxisTransparent._color.set( zAxis );
|
|
921
|
+
if ( materialLib.activeTransparent._color ) materialLib.activeTransparent._color.set( active );
|
|
922
|
+
|
|
923
|
+
}
|
|
924
|
+
|
|
890
925
|
}
|
|
891
926
|
|
|
892
927
|
// mouse / touch event handlers
|
|
@@ -1145,6 +1180,19 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1145
1180
|
const matGray = gizmoMaterial.clone();
|
|
1146
1181
|
matGray.color.setHex( 0x787878 );
|
|
1147
1182
|
|
|
1183
|
+
// materials in the below property are configurable via setColors()
|
|
1184
|
+
|
|
1185
|
+
this.materialLib = {
|
|
1186
|
+
xAxis: matRed,
|
|
1187
|
+
yAxis: matGreen,
|
|
1188
|
+
zAxis: matBlue,
|
|
1189
|
+
active: matYellow,
|
|
1190
|
+
xAxisTransparent: matRedTransparent,
|
|
1191
|
+
yAxisTransparent: matGreenTransparent,
|
|
1192
|
+
zAxisTransparent: matBlueTransparent,
|
|
1193
|
+
activeTransparent: matYellowTransparent
|
|
1194
|
+
};
|
|
1195
|
+
|
|
1148
1196
|
// reusable geometry
|
|
1149
1197
|
|
|
1150
1198
|
const arrowGeometry = new CylinderGeometry( 0, 0.04, 0.1, 12 );
|
|
@@ -1199,16 +1247,16 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1199
1247
|
[ new Mesh( lineGeometry2, matBlue ), null, [ Math.PI / 2, 0, 0 ]]
|
|
1200
1248
|
],
|
|
1201
1249
|
XYZ: [
|
|
1202
|
-
[ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent
|
|
1250
|
+
[ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent ), [ 0, 0, 0 ]]
|
|
1203
1251
|
],
|
|
1204
1252
|
XY: [
|
|
1205
|
-
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent
|
|
1253
|
+
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent ), [ 0.15, 0.15, 0 ]]
|
|
1206
1254
|
],
|
|
1207
1255
|
YZ: [
|
|
1208
|
-
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent
|
|
1256
|
+
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]]
|
|
1209
1257
|
],
|
|
1210
1258
|
XZ: [
|
|
1211
|
-
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent
|
|
1259
|
+
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]]
|
|
1212
1260
|
]
|
|
1213
1261
|
};
|
|
1214
1262
|
|
|
@@ -1250,13 +1298,13 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1250
1298
|
[ new Line( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ]
|
|
1251
1299
|
],
|
|
1252
1300
|
X: [
|
|
1253
|
-
[ new Line( lineGeometry, matHelper
|
|
1301
|
+
[ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
|
|
1254
1302
|
],
|
|
1255
1303
|
Y: [
|
|
1256
|
-
[ new Line( lineGeometry, matHelper
|
|
1304
|
+
[ new Line( lineGeometry, matHelper ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
|
|
1257
1305
|
],
|
|
1258
1306
|
Z: [
|
|
1259
|
-
[ new Line( lineGeometry, matHelper
|
|
1307
|
+
[ new Line( lineGeometry, matHelper ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
|
|
1260
1308
|
]
|
|
1261
1309
|
};
|
|
1262
1310
|
|
|
@@ -1280,7 +1328,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1280
1328
|
|
|
1281
1329
|
const helperRotate = {
|
|
1282
1330
|
AXIS: [
|
|
1283
|
-
[ new Line( lineGeometry, matHelper
|
|
1331
|
+
[ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
|
|
1284
1332
|
]
|
|
1285
1333
|
};
|
|
1286
1334
|
|
|
@@ -1328,7 +1376,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1328
1376
|
[ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]]
|
|
1329
1377
|
],
|
|
1330
1378
|
XYZ: [
|
|
1331
|
-
[ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent
|
|
1379
|
+
[ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent ) ],
|
|
1332
1380
|
]
|
|
1333
1381
|
};
|
|
1334
1382
|
|
|
@@ -1361,13 +1409,13 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1361
1409
|
|
|
1362
1410
|
const helperScale = {
|
|
1363
1411
|
X: [
|
|
1364
|
-
[ new Line( lineGeometry, matHelper
|
|
1412
|
+
[ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
|
|
1365
1413
|
],
|
|
1366
1414
|
Y: [
|
|
1367
|
-
[ new Line( lineGeometry, matHelper
|
|
1415
|
+
[ new Line( lineGeometry, matHelper ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
|
|
1368
1416
|
],
|
|
1369
1417
|
Z: [
|
|
1370
|
-
[ new Line( lineGeometry, matHelper
|
|
1418
|
+
[ new Line( lineGeometry, matHelper ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
|
|
1371
1419
|
]
|
|
1372
1420
|
};
|
|
1373
1421
|
|
|
@@ -1748,7 +1796,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1748
1796
|
|
|
1749
1797
|
if ( handle.name === this.axis ) {
|
|
1750
1798
|
|
|
1751
|
-
handle.material.color.
|
|
1799
|
+
handle.material.color.copy( this.materialLib.active.color );
|
|
1752
1800
|
handle.material.opacity = 1.0;
|
|
1753
1801
|
|
|
1754
1802
|
} else if ( this.axis.split( '' ).some( function ( a ) {
|
|
@@ -1757,7 +1805,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1757
1805
|
|
|
1758
1806
|
} ) ) {
|
|
1759
1807
|
|
|
1760
|
-
handle.material.color.
|
|
1808
|
+
handle.material.color.copy( this.materialLib.active.color );
|
|
1761
1809
|
handle.material.opacity = 1.0;
|
|
1762
1810
|
|
|
1763
1811
|
}
|
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 ) );
|
|
@@ -377,9 +374,9 @@ class CSMShadowNode extends ShadowBaseNode {
|
|
|
377
374
|
_setupFade() {
|
|
378
375
|
|
|
379
376
|
const cameraNear = reference( 'camera.near', 'float', this ).setGroup( renderGroup );
|
|
380
|
-
const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).
|
|
377
|
+
const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).setName( 'cascades' );
|
|
381
378
|
|
|
382
|
-
const shadowFar = uniform( 'float' ).setGroup( renderGroup ).
|
|
379
|
+
const shadowFar = uniform( 'float' ).setGroup( renderGroup ).setName( 'shadowFar' )
|
|
383
380
|
.onRenderUpdate( () => Math.min( this.maxFar, this.camera.far ) );
|
|
384
381
|
|
|
385
382
|
const linearDepth = viewZToOrthographicDepth( positionView.z, cameraNear, shadowFar ).toVar( 'linearDepth' );
|
|
@@ -459,9 +456,9 @@ class CSMShadowNode extends ShadowBaseNode {
|
|
|
459
456
|
_setupStandard() {
|
|
460
457
|
|
|
461
458
|
const cameraNear = reference( 'camera.near', 'float', this ).setGroup( renderGroup );
|
|
462
|
-
const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).
|
|
459
|
+
const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).setName( 'cascades' );
|
|
463
460
|
|
|
464
|
-
const shadowFar = uniform( 'float' ).setGroup( renderGroup ).
|
|
461
|
+
const shadowFar = uniform( 'float' ).setGroup( renderGroup ).setName( 'shadowFar' )
|
|
465
462
|
.onRenderUpdate( () => Math.min( this.maxFar, this.camera.far ) );
|
|
466
463
|
|
|
467
464
|
const linearDepth = viewZToOrthographicDepth( positionView.z, cameraNear, shadowFar ).toVar( 'linearDepth' );
|
|
@@ -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
|