super-three 0.179.0 → 0.184.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/LICENSE +1 -1
- package/README.md +3 -4
- package/build/three.cjs +14522 -12207
- package/build/three.core.js +12005 -10954
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +2270 -1005
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +63 -18
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +16573 -7890
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +16533 -7888
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +12 -4
- package/examples/jsm/animation/CCDIKSolver.js +8 -4
- package/examples/jsm/controls/ArcballControls.js +15 -12
- package/examples/jsm/controls/DragControls.js +9 -59
- package/examples/jsm/controls/FirstPersonControls.js +61 -57
- package/examples/jsm/controls/FlyControls.js +5 -1
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +113 -10
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +9 -9
- package/examples/jsm/controls/TransformControls.js +35 -3
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMShadowNode.js +6 -2
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -2
- package/examples/jsm/exporters/GLTFExporter.js +185 -34
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +31 -5
- package/examples/jsm/geometries/DecalGeometry.js +3 -3
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +21 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +110 -13
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +542 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/extensions/extensions.json +6 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
- package/examples/jsm/inspector/tabs/Console.js +238 -0
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +380 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Settings.js +264 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
- package/examples/jsm/inspector/tabs/Viewer.js +268 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +2072 -0
- package/examples/jsm/inspector/ui/Style.js +1667 -0
- package/examples/jsm/inspector/ui/Tab.js +265 -0
- package/examples/jsm/inspector/ui/Values.js +476 -0
- package/examples/jsm/inspector/ui/utils.js +69 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +651 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +7 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +3 -3
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +27 -4029
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +692 -53
- package/examples/jsm/loaders/FBXLoader.js +237 -39
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +159 -185
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +162 -53
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +9 -41
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +4 -4
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- package/examples/jsm/loaders/VTKLoader.js +42 -25
- package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +450 -363
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -2
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +73 -25
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +91 -7
- package/examples/jsm/objects/SkyMesh.js +151 -17
- package/examples/jsm/objects/Water.js +7 -6
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +11 -13
- package/examples/jsm/physics/AmmoPhysics.js +12 -7
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +9 -5
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +175 -61
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +21 -8
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +7 -6
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +3 -5
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +52 -10
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +23 -9
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
- package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FSR1Node.js +477 -0
- package/examples/jsm/tsl/display/FXAANode.js +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +59 -9
- package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/LensflareNode.js +1 -1
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
- package/examples/jsm/tsl/display/OutlineNode.js +81 -20
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +2 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +638 -0
- package/examples/jsm/tsl/display/SSRNode.js +186 -69
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/examples/jsm/tsl/display/SharpenNode.js +283 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
- package/examples/jsm/tsl/display/TAAUNode.js +835 -0
- package/examples/jsm/tsl/display/TRAANode.js +381 -75
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
- package/examples/jsm/tsl/math/Bayer.js +53 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +3 -4
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
- package/package.json +27 -38
- package/src/Three.Core.js +7 -3
- package/src/Three.TSL.js +61 -16
- package/src/Three.WebGPU.Nodes.js +7 -0
- package/src/Three.WebGPU.js +11 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +21 -5
- package/src/animation/AnimationMixer.js +9 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +54 -14
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/PropertyMixer.js +4 -4
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
- package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +11 -10
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +100 -7
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +24 -12
- package/src/core/Clock.js +7 -0
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +55 -6
- package/src/core/Raycaster.js +4 -3
- package/src/core/RenderTarget.js +14 -5
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +259 -57
- package/src/extras/TextureUtils.js +6 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +10 -8
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +9 -3
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +4 -1
- package/src/helpers/DirectionalLightHelper.js +4 -1
- package/src/helpers/HemisphereLightHelper.js +3 -0
- package/src/helpers/PointLightHelper.js +1 -25
- package/src/helpers/SpotLightHelper.js +3 -0
- package/src/lights/DirectionalLight.js +13 -0
- package/src/lights/HemisphereLight.js +10 -0
- package/src/lights/Light.js +1 -11
- package/src/lights/LightProbe.js +0 -15
- package/src/lights/LightShadow.js +15 -6
- package/src/lights/PointLight.js +15 -0
- package/src/lights/PointLightShadow.js +0 -86
- package/src/lights/SpotLight.js +22 -1
- package/src/lights/webgpu/IESSpotLight.js +2 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +13 -2
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +30 -2
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +4 -4
- package/src/loaders/ImageBitmapLoader.js +17 -13
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +9 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +6 -4
- package/src/loaders/ObjectLoader.js +57 -17
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +5 -4
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +11 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +11 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +2 -1
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +22 -3
- package/src/materials/nodes/Line2NodeMaterial.js +36 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +95 -35
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +23 -21
- package/src/math/Matrix2.js +14 -10
- package/src/math/Matrix3.js +15 -11
- package/src/math/Matrix4.js +94 -81
- package/src/math/Plane.js +5 -4
- package/src/math/Quaternion.js +60 -84
- package/src/math/Sphere.js +1 -1
- package/src/math/Spherical.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +11 -7
- package/src/math/Vector3.js +15 -13
- package/src/math/Vector4.js +13 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +86 -65
- package/src/nodes/TSL.js +11 -8
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/BatchNode.js +10 -10
- package/src/nodes/accessors/Bitangent.js +5 -5
- package/src/nodes/accessors/BufferAttributeNode.js +107 -15
- package/src/nodes/accessors/BufferNode.js +30 -3
- package/src/nodes/accessors/Camera.js +260 -13
- package/src/nodes/accessors/ClippingNode.js +10 -9
- package/src/nodes/accessors/CubeTextureNode.js +32 -6
- package/src/nodes/accessors/InstanceNode.js +164 -39
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialProperties.js +2 -5
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +16 -15
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +51 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
- package/src/nodes/accessors/ReferenceNode.js +11 -10
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +14 -24
- package/src/nodes/accessors/StorageTextureNode.js +62 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +41 -31
- package/src/nodes/accessors/TextureNode.js +193 -63
- package/src/nodes/accessors/UniformArrayNode.js +6 -4
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionCallNode.js +25 -5
- package/src/nodes/code/FunctionNode.js +25 -3
- package/src/nodes/core/ArrayNode.js +22 -2
- package/src/nodes/core/AssignNode.js +6 -5
- package/src/nodes/core/AttributeNode.js +5 -4
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +133 -15
- package/src/nodes/core/IndexNode.js +4 -3
- package/src/nodes/core/InputNode.js +3 -2
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +264 -46
- package/src/nodes/core/NodeBuilder.js +453 -87
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +31 -23
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +25 -97
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +34 -3
- package/src/nodes/core/PropertyNode.js +26 -3
- package/src/nodes/core/StackNode.js +99 -23
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +22 -8
- package/src/nodes/core/StructTypeNode.js +13 -18
- package/src/nodes/core/SubBuildNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +37 -13
- package/src/nodes/core/VarNode.js +96 -34
- package/src/nodes/core/VaryingNode.js +2 -18
- package/src/nodes/display/BlendModes.js +0 -63
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +18 -1
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +41 -5
- package/src/nodes/display/PassNode.js +175 -25
- package/src/nodes/display/RenderOutputNode.js +35 -9
- package/src/nodes/display/ScreenNode.js +47 -15
- package/src/nodes/display/ToneMappingNode.js +32 -5
- package/src/nodes/display/ToonOutlinePassNode.js +10 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +72 -14
- package/src/nodes/fog/Fog.js +18 -34
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +128 -46
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +44 -6
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +76 -38
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +34 -9
- package/src/nodes/lighting/LightsNode.js +10 -32
- package/src/nodes/lighting/PointShadowNode.js +167 -148
- package/src/nodes/lighting/ShadowFilterNode.js +55 -65
- package/src/nodes/lighting/ShadowNode.js +189 -44
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +25 -8
- package/src/nodes/math/MathNode.js +98 -57
- package/src/nodes/math/OperatorNode.js +8 -5
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/pmrem/PMREMNode.js +1 -1
- package/src/nodes/pmrem/PMREMUtils.js +111 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -3
- package/src/nodes/tsl/TSLCore.js +488 -166
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +14 -13
- package/src/nodes/utils/EventNode.js +67 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +7 -4
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +60 -8
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +60 -1
- package/src/nodes/utils/RTTNode.js +14 -4
- package/src/nodes/utils/ReflectorNode.js +61 -11
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +12 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +46 -18
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +3 -2
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +12 -2
- package/src/objects/SkinnedMesh.js +29 -10
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +372 -179
- package/src/renderers/common/Animation.js +16 -4
- package/src/renderers/common/Attributes.js +16 -2
- package/src/renderers/common/Backend.js +137 -35
- package/src/renderers/common/Background.js +28 -14
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +83 -12
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +40 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +55 -3
- package/src/renderers/common/Info.js +337 -6
- package/src/renderers/common/InspectorBase.js +151 -0
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +41 -8
- package/src/renderers/common/PostProcessing.js +9 -226
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/ReadbackBuffer.js +78 -0
- package/src/renderers/common/RenderBundle.js +3 -1
- package/src/renderers/common/RenderBundles.js +7 -3
- package/src/renderers/common/RenderContext.js +18 -2
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +32 -6
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +22 -6
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +927 -335
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +52 -14
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +208 -47
- package/src/renderers/common/TimestampQueryPool.js +70 -6
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +64 -2
- package/src/renderers/common/XRManager.js +79 -51
- package/src/renderers/common/extras/PMREMGenerator.js +176 -79
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +221 -190
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +5 -3
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +4 -1
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -6
- package/src/renderers/shaders/UniformsLib.js +8 -5
- package/src/renderers/shaders/UniformsUtils.js +52 -9
- package/src/renderers/webgl/WebGLAnimation.js +2 -1
- package/src/renderers/webgl/WebGLBackground.js +15 -15
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLCapabilities.js +11 -5
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +24 -13
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +270 -0
- package/src/renderers/webgl/WebGLProgram.js +63 -122
- package/src/renderers/webgl/WebGLPrograms.js +65 -52
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +191 -26
- package/src/renderers/webgl/WebGLState.js +79 -40
- package/src/renderers/webgl/WebGLTextures.js +234 -68
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
- package/src/renderers/webgl/WebGLUtils.js +8 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
- package/src/renderers/webgpu/WebGPUBackend.js +403 -253
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +5 -3
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
- package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +45 -29
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +5 -4
- package/src/textures/Texture.js +19 -7
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +344 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
- package/examples/jsm/shaders/GodRaysShader.js +0 -333
- package/src/nodes/accessors/SceneNode.js +0 -144
- package/src/nodes/code/ScriptableNode.js +0 -726
- package/src/nodes/code/ScriptableValueNode.js +0 -253
- package/src/nodes/display/PosterizeNode.js +0 -65
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
- package/src/nodes/utils/RemapNode.js +0 -125
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
package/src/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const REVISION = '
|
|
1
|
+
export const REVISION = '184';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents mouse buttons and interaction types in context of controls.
|
|
@@ -155,6 +155,14 @@ export const MultiplyBlending = 4;
|
|
|
155
155
|
*/
|
|
156
156
|
export const CustomBlending = 5;
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Represents material blending.
|
|
160
|
+
*
|
|
161
|
+
* @type {number}
|
|
162
|
+
* @constant
|
|
163
|
+
*/
|
|
164
|
+
export const MaterialBlending = 6;
|
|
165
|
+
|
|
158
166
|
/**
|
|
159
167
|
* A `source + destination` blending equation.
|
|
160
168
|
*
|
|
@@ -721,6 +729,14 @@ export const UnsignedInt248Type = 1020;
|
|
|
721
729
|
*/
|
|
722
730
|
export const UnsignedInt5999Type = 35902;
|
|
723
731
|
|
|
732
|
+
/**
|
|
733
|
+
* An unsigned int 10_11_11 (packed) data type for textures.
|
|
734
|
+
*
|
|
735
|
+
* @type {number}
|
|
736
|
+
* @constant
|
|
737
|
+
*/
|
|
738
|
+
export const UnsignedInt101111Type = 35899;
|
|
739
|
+
|
|
724
740
|
/**
|
|
725
741
|
* Discards the red, green and blue components and reads just the alpha component.
|
|
726
742
|
*
|
|
@@ -899,6 +915,38 @@ export const RGB_ETC2_Format = 37492;
|
|
|
899
915
|
*/
|
|
900
916
|
export const RGBA_ETC2_EAC_Format = 37496;
|
|
901
917
|
|
|
918
|
+
/**
|
|
919
|
+
* EAC R11 UNORM format.
|
|
920
|
+
*
|
|
921
|
+
* @type {number}
|
|
922
|
+
* @constant
|
|
923
|
+
*/
|
|
924
|
+
export const R11_EAC_Format = 37488; // 0x9270
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* EAC R11 SNORM format.
|
|
928
|
+
*
|
|
929
|
+
* @type {number}
|
|
930
|
+
* @constant
|
|
931
|
+
*/
|
|
932
|
+
export const SIGNED_R11_EAC_Format = 37489; // 0x9271
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* EAC RG11 UNORM format.
|
|
936
|
+
*
|
|
937
|
+
* @type {number}
|
|
938
|
+
* @constant
|
|
939
|
+
*/
|
|
940
|
+
export const RG11_EAC_Format = 37490; // 0x9272
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* EAC RG11 SNORM format.
|
|
944
|
+
*
|
|
945
|
+
* @type {number}
|
|
946
|
+
* @constant
|
|
947
|
+
*/
|
|
948
|
+
export const SIGNED_RG11_EAC_Format = 37491; // 0x9273
|
|
949
|
+
|
|
902
950
|
/**
|
|
903
951
|
* ASTC RGBA 4x4 format.
|
|
904
952
|
*
|
|
@@ -1117,6 +1165,17 @@ export const InterpolateLinear = 2301;
|
|
|
1117
1165
|
*/
|
|
1118
1166
|
export const InterpolateSmooth = 2302;
|
|
1119
1167
|
|
|
1168
|
+
/**
|
|
1169
|
+
* Bezier interpolation mode for keyframe tracks.
|
|
1170
|
+
*
|
|
1171
|
+
* Uses cubic Bezier curves with explicit 2D control points.
|
|
1172
|
+
* Requires tangent data to be set on the track.
|
|
1173
|
+
*
|
|
1174
|
+
* @type {number}
|
|
1175
|
+
* @constant
|
|
1176
|
+
*/
|
|
1177
|
+
export const InterpolateBezier = 2303;
|
|
1178
|
+
|
|
1120
1179
|
/**
|
|
1121
1180
|
* Zero curvature ending for animations.
|
|
1122
1181
|
*
|
|
@@ -1183,7 +1242,7 @@ export const TriangleStripDrawMode = 1;
|
|
|
1183
1242
|
export const TriangleFanDrawMode = 2;
|
|
1184
1243
|
|
|
1185
1244
|
/**
|
|
1186
|
-
*
|
|
1245
|
+
* The depth value is inverted (1.0 - z) for visualization purposes.
|
|
1187
1246
|
*
|
|
1188
1247
|
* @type {number}
|
|
1189
1248
|
* @constant
|
|
@@ -1191,7 +1250,7 @@ export const TriangleFanDrawMode = 2;
|
|
|
1191
1250
|
export const BasicDepthPacking = 3200;
|
|
1192
1251
|
|
|
1193
1252
|
/**
|
|
1194
|
-
*
|
|
1253
|
+
* The depth value is packed into 32 bit RGBA.
|
|
1195
1254
|
*
|
|
1196
1255
|
* @type {number}
|
|
1197
1256
|
* @constant
|
|
@@ -1199,7 +1258,7 @@ export const BasicDepthPacking = 3200;
|
|
|
1199
1258
|
export const RGBADepthPacking = 3201;
|
|
1200
1259
|
|
|
1201
1260
|
/**
|
|
1202
|
-
*
|
|
1261
|
+
* The depth value is packed into 24 bit RGB.
|
|
1203
1262
|
*
|
|
1204
1263
|
* @type {number}
|
|
1205
1264
|
* @constant
|
|
@@ -1207,7 +1266,7 @@ export const RGBADepthPacking = 3201;
|
|
|
1207
1266
|
export const RGBDepthPacking = 3202;
|
|
1208
1267
|
|
|
1209
1268
|
/**
|
|
1210
|
-
*
|
|
1269
|
+
* The depth value is packed into 16 bit RG.
|
|
1211
1270
|
*
|
|
1212
1271
|
* @type {number}
|
|
1213
1272
|
* @constant
|
|
@@ -1272,6 +1331,30 @@ export const LinearTransfer = 'linear';
|
|
|
1272
1331
|
*/
|
|
1273
1332
|
export const SRGBTransfer = 'srgb';
|
|
1274
1333
|
|
|
1334
|
+
/**
|
|
1335
|
+
* No normal map packing.
|
|
1336
|
+
*
|
|
1337
|
+
* @type {string}
|
|
1338
|
+
* @constant
|
|
1339
|
+
*/
|
|
1340
|
+
export const NoNormalPacking = '';
|
|
1341
|
+
|
|
1342
|
+
/**
|
|
1343
|
+
* Normal RG packing.
|
|
1344
|
+
*
|
|
1345
|
+
* @type {string}
|
|
1346
|
+
* @constant
|
|
1347
|
+
*/
|
|
1348
|
+
export const NormalRGPacking = 'rg';
|
|
1349
|
+
|
|
1350
|
+
/**
|
|
1351
|
+
* Normal GA packing.
|
|
1352
|
+
*
|
|
1353
|
+
* @type {string}
|
|
1354
|
+
* @constant
|
|
1355
|
+
*/
|
|
1356
|
+
export const NormalGAPacking = 'ga';
|
|
1357
|
+
|
|
1275
1358
|
/**
|
|
1276
1359
|
* Sets the stencil buffer value to `0`.
|
|
1277
1360
|
*
|
|
@@ -1616,6 +1699,16 @@ export const InterpolationSamplingMode = {
|
|
|
1616
1699
|
EITHER: 'either'
|
|
1617
1700
|
};
|
|
1618
1701
|
|
|
1702
|
+
/**
|
|
1703
|
+
* Compatibility flags for features that may not be supported across all platforms.
|
|
1704
|
+
*
|
|
1705
|
+
* @type {Object}
|
|
1706
|
+
* @constant
|
|
1707
|
+
*/
|
|
1708
|
+
export const Compatibility = {
|
|
1709
|
+
TEXTURE_COMPARE: 'depthTextureCompare'
|
|
1710
|
+
};
|
|
1711
|
+
|
|
1619
1712
|
/**
|
|
1620
1713
|
* This type represents mouse buttons and interaction types in context of controls.
|
|
1621
1714
|
*
|
|
@@ -1662,6 +1755,6 @@ export const InterpolationSamplingMode = {
|
|
|
1662
1755
|
* @property {string} NORMAL - Normal sampling mode.
|
|
1663
1756
|
* @property {string} CENTROID - Centroid sampling mode.
|
|
1664
1757
|
* @property {string} SAMPLE - Sample-specific sampling mode.
|
|
1665
|
-
* @property {string}
|
|
1666
|
-
* @property {string}
|
|
1758
|
+
* @property {string} FIRST - Flat interpolation using the first vertex.
|
|
1759
|
+
* @property {string} EITHER - Flat interpolation using either vertex.
|
|
1667
1760
|
*/
|
|
@@ -3,6 +3,7 @@ import { Vector2 } from '../math/Vector2.js';
|
|
|
3
3
|
import { denormalize, normalize } from '../math/MathUtils.js';
|
|
4
4
|
import { StaticDrawUsage, FloatType } from '../constants.js';
|
|
5
5
|
import { fromHalfFloat, toHalfFloat } from '../extras/DataUtils.js';
|
|
6
|
+
import { EventDispatcher } from './EventDispatcher.js';
|
|
6
7
|
|
|
7
8
|
const _vector = /*@__PURE__*/ new Vector3();
|
|
8
9
|
const _vector2 = /*@__PURE__*/ new Vector2();
|
|
@@ -17,7 +18,7 @@ let _id = 0;
|
|
|
17
18
|
* When working with vector-like data, the `fromBufferAttribute( attribute, index )`
|
|
18
19
|
* helper methods on vector and color class might be helpful. E.g. {@link Vector3#fromBufferAttribute}.
|
|
19
20
|
*/
|
|
20
|
-
class BufferAttribute {
|
|
21
|
+
class BufferAttribute extends EventDispatcher {
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Constructs a new buffer attribute.
|
|
@@ -28,6 +29,8 @@ class BufferAttribute {
|
|
|
28
29
|
*/
|
|
29
30
|
constructor( array, itemSize, normalized = false ) {
|
|
30
31
|
|
|
32
|
+
super();
|
|
33
|
+
|
|
31
34
|
if ( Array.isArray( array ) ) {
|
|
32
35
|
|
|
33
36
|
throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );
|
|
@@ -674,6 +677,15 @@ class BufferAttribute {
|
|
|
674
677
|
|
|
675
678
|
}
|
|
676
679
|
|
|
680
|
+
/**
|
|
681
|
+
* Disposes of the buffer attribute. Available only in {@link WebGPURenderer}.
|
|
682
|
+
*/
|
|
683
|
+
dispose() {
|
|
684
|
+
|
|
685
|
+
this.dispatchEvent( { type: 'dispose' } );
|
|
686
|
+
|
|
687
|
+
}
|
|
688
|
+
|
|
677
689
|
}
|
|
678
690
|
|
|
679
691
|
/**
|
|
@@ -8,7 +8,7 @@ import { Object3D } from './Object3D.js';
|
|
|
8
8
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
9
9
|
import { Matrix3 } from '../math/Matrix3.js';
|
|
10
10
|
import { generateUUID } from '../math/MathUtils.js';
|
|
11
|
-
import { arrayNeedsUint32 } from '../utils.js';
|
|
11
|
+
import { arrayNeedsUint32, warn, error } from '../utils.js';
|
|
12
12
|
|
|
13
13
|
let _id = 0;
|
|
14
14
|
|
|
@@ -111,6 +111,16 @@ class BufferGeometry extends EventDispatcher {
|
|
|
111
111
|
*/
|
|
112
112
|
this.indirect = null;
|
|
113
113
|
|
|
114
|
+
/**
|
|
115
|
+
* The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
|
|
116
|
+
*
|
|
117
|
+
* Can only be used with {@link WebGPURenderer} and a WebGPU backend.
|
|
118
|
+
*
|
|
119
|
+
* @type {number|Array<number>}
|
|
120
|
+
* @default 0
|
|
121
|
+
*/
|
|
122
|
+
this.indirectOffset = 0;
|
|
123
|
+
|
|
114
124
|
/**
|
|
115
125
|
* This dictionary has as id the name of the attribute to be set and as value
|
|
116
126
|
* the buffer attribute to set it to. Rather than accessing this property directly,
|
|
@@ -124,7 +134,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
124
134
|
* This dictionary holds the morph targets of the geometry.
|
|
125
135
|
*
|
|
126
136
|
* Note: Once the geometry has been rendered, the morph attribute data cannot
|
|
127
|
-
* be changed. You will have to call `dispose()
|
|
137
|
+
* be changed. You will have to call `dispose()`, and create a new geometry instance.
|
|
128
138
|
*
|
|
129
139
|
* @type {Object}
|
|
130
140
|
*/
|
|
@@ -156,7 +166,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
156
166
|
/**
|
|
157
167
|
* Bounding box for the geometry which can be calculated with `computeBoundingBox()`.
|
|
158
168
|
*
|
|
159
|
-
* @type {Box3}
|
|
169
|
+
* @type {?Box3}
|
|
160
170
|
* @default null
|
|
161
171
|
*/
|
|
162
172
|
this.boundingBox = null;
|
|
@@ -164,7 +174,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
164
174
|
/**
|
|
165
175
|
* Bounding sphere for the geometry which can be calculated with `computeBoundingSphere()`.
|
|
166
176
|
*
|
|
167
|
-
* @type {Sphere}
|
|
177
|
+
* @type {?Sphere}
|
|
168
178
|
* @default null
|
|
169
179
|
*/
|
|
170
180
|
this.boundingSphere = null;
|
|
@@ -224,11 +234,13 @@ class BufferGeometry extends EventDispatcher {
|
|
|
224
234
|
* Sets the given indirect attribute to this geometry.
|
|
225
235
|
*
|
|
226
236
|
* @param {BufferAttribute} indirect - The attribute holding indirect draw calls.
|
|
237
|
+
* @param {number|Array<number>} [indirectOffset=0] - The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
|
|
227
238
|
* @return {BufferGeometry} A reference to this instance.
|
|
228
239
|
*/
|
|
229
|
-
setIndirect( indirect ) {
|
|
240
|
+
setIndirect( indirect, indirectOffset = 0 ) {
|
|
230
241
|
|
|
231
242
|
this.indirect = indirect;
|
|
243
|
+
this.indirectOffset = indirectOffset;
|
|
232
244
|
|
|
233
245
|
return this;
|
|
234
246
|
|
|
@@ -596,7 +608,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
596
608
|
|
|
597
609
|
if ( points.length > positionAttribute.count ) {
|
|
598
610
|
|
|
599
|
-
|
|
611
|
+
warn( 'BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );
|
|
600
612
|
|
|
601
613
|
}
|
|
602
614
|
|
|
@@ -626,7 +638,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
626
638
|
|
|
627
639
|
if ( position && position.isGLBufferAttribute ) {
|
|
628
640
|
|
|
629
|
-
|
|
641
|
+
error( 'BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );
|
|
630
642
|
|
|
631
643
|
this.boundingBox.set(
|
|
632
644
|
new Vector3( - Infinity, - Infinity, - Infinity ),
|
|
@@ -677,7 +689,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
677
689
|
|
|
678
690
|
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
|
|
679
691
|
|
|
680
|
-
|
|
692
|
+
error( 'BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
|
|
681
693
|
|
|
682
694
|
}
|
|
683
695
|
|
|
@@ -701,7 +713,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
701
713
|
|
|
702
714
|
if ( position && position.isGLBufferAttribute ) {
|
|
703
715
|
|
|
704
|
-
|
|
716
|
+
error( 'BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );
|
|
705
717
|
|
|
706
718
|
this.boundingSphere.set( new Vector3(), Infinity );
|
|
707
719
|
|
|
@@ -792,7 +804,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
792
804
|
|
|
793
805
|
if ( isNaN( this.boundingSphere.radius ) ) {
|
|
794
806
|
|
|
795
|
-
|
|
807
|
+
error( 'BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this );
|
|
796
808
|
|
|
797
809
|
}
|
|
798
810
|
|
|
@@ -820,7 +832,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
820
832
|
attributes.normal === undefined ||
|
|
821
833
|
attributes.uv === undefined ) {
|
|
822
834
|
|
|
823
|
-
|
|
835
|
+
error( 'BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );
|
|
824
836
|
return;
|
|
825
837
|
|
|
826
838
|
}
|
|
@@ -1130,7 +1142,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1130
1142
|
|
|
1131
1143
|
if ( this.index === null ) {
|
|
1132
1144
|
|
|
1133
|
-
|
|
1145
|
+
warn( 'BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );
|
|
1134
1146
|
return this;
|
|
1135
1147
|
|
|
1136
1148
|
}
|
package/src/core/Clock.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { warn } from '../utils.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Class for keeping track of time.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated since r183.
|
|
3
7
|
*/
|
|
4
8
|
class Clock {
|
|
5
9
|
|
|
6
10
|
/**
|
|
7
11
|
* Constructs a new clock.
|
|
8
12
|
*
|
|
13
|
+
* @deprecated since 183.
|
|
9
14
|
* @param {boolean} [autoStart=true] - Whether to automatically start the clock when
|
|
10
15
|
* `getDelta()` is called for the first time.
|
|
11
16
|
*/
|
|
@@ -53,6 +58,8 @@ class Clock {
|
|
|
53
58
|
*/
|
|
54
59
|
this.running = false;
|
|
55
60
|
|
|
61
|
+
warn( 'Clock: This module has been deprecated. Please use THREE.Timer instead.' ); // @deprecated, r183
|
|
62
|
+
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* This modules allows to dispatch event objects on custom JavaScript objects.
|
|
3
3
|
*
|
|
4
|
-
* Main repository: [eventdispatcher.js]
|
|
4
|
+
* Main repository: [eventdispatcher.js](https://github.com/mrdoob/eventdispatcher.js/)
|
|
5
5
|
*
|
|
6
6
|
* Code Example:
|
|
7
7
|
* ```js
|
|
@@ -5,7 +5,7 @@ import { StaticDrawUsage } from '../constants.js';
|
|
|
5
5
|
* "Interleaved" means that multiple attributes, possibly of different types,
|
|
6
6
|
* (e.g., position, normal, uv, color) are packed into a single array buffer.
|
|
7
7
|
*
|
|
8
|
-
* An introduction into interleaved arrays can be found here: [Interleaved array basics]
|
|
8
|
+
* An introduction into interleaved arrays can be found here: [Interleaved array basics](https://blog.tojicode.com/2011/05/interleaved-array-basics.html)
|
|
9
9
|
*/
|
|
10
10
|
class InterleavedBuffer {
|
|
11
11
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Vector3 } from '../math/Vector3.js';
|
|
2
2
|
import { BufferAttribute } from './BufferAttribute.js';
|
|
3
3
|
import { denormalize, normalize } from '../math/MathUtils.js';
|
|
4
|
+
import { log } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
const _vector = /*@__PURE__*/ new Vector3();
|
|
6
7
|
|
|
@@ -439,7 +440,7 @@ class InterleavedBufferAttribute {
|
|
|
439
440
|
|
|
440
441
|
if ( data === undefined ) {
|
|
441
442
|
|
|
442
|
-
|
|
443
|
+
log( 'InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );
|
|
443
444
|
|
|
444
445
|
const array = [];
|
|
445
446
|
|
|
@@ -489,7 +490,7 @@ class InterleavedBufferAttribute {
|
|
|
489
490
|
|
|
490
491
|
if ( data === undefined ) {
|
|
491
492
|
|
|
492
|
-
|
|
493
|
+
log( 'InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );
|
|
493
494
|
|
|
494
495
|
const array = [];
|
|
495
496
|
|
package/src/core/Object3D.js
CHANGED
|
@@ -6,6 +6,7 @@ import { Euler } from '../math/Euler.js';
|
|
|
6
6
|
import { Layers } from './Layers.js';
|
|
7
7
|
import { Matrix3 } from '../math/Matrix3.js';
|
|
8
8
|
import { generateUUID } from '../math/MathUtils.js';
|
|
9
|
+
import { error } from '../utils.js';
|
|
9
10
|
|
|
10
11
|
let _object3DId = 0;
|
|
11
12
|
|
|
@@ -241,7 +242,8 @@ class Object3D extends EventDispatcher {
|
|
|
241
242
|
|
|
242
243
|
/**
|
|
243
244
|
* When set to `true`, the engine automatically computes the local matrix from position,
|
|
244
|
-
* rotation and scale every frame.
|
|
245
|
+
* rotation and scale every frame. If set to `false`, the app is responsible for recomputing
|
|
246
|
+
* the local matrix by calling `updateMatrix()`.
|
|
245
247
|
*
|
|
246
248
|
* The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_AUTO_UPDATE`.
|
|
247
249
|
*
|
|
@@ -252,7 +254,8 @@ class Object3D extends EventDispatcher {
|
|
|
252
254
|
|
|
253
255
|
/**
|
|
254
256
|
* When set to `true`, the engine automatically computes the world matrix from the current local
|
|
255
|
-
* matrix and the object's transformation hierarchy.
|
|
257
|
+
* matrix and the object's transformation hierarchy. If set to `false`, the app is responsible for
|
|
258
|
+
* recomputing the world matrix by directly updating the `matrixWorld` property.
|
|
256
259
|
*
|
|
257
260
|
* The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE`.
|
|
258
261
|
*
|
|
@@ -353,6 +356,19 @@ class Object3D extends EventDispatcher {
|
|
|
353
356
|
*/
|
|
354
357
|
this.customDistanceMaterial = undefined;
|
|
355
358
|
|
|
359
|
+
/**
|
|
360
|
+
* Whether the 3D object is supposed to be static or not. If set to `true`, it means
|
|
361
|
+
* the 3D object is not going to be changed after the initial renderer. This includes
|
|
362
|
+
* geometry and material settings. A static 3D object can be processed by the renderer
|
|
363
|
+
* slightly faster since certain state checks can be bypassed.
|
|
364
|
+
*
|
|
365
|
+
* Only relevant in context of {@link WebGPURenderer}.
|
|
366
|
+
*
|
|
367
|
+
* @type {boolean}
|
|
368
|
+
* @default false
|
|
369
|
+
*/
|
|
370
|
+
this.static = false;
|
|
371
|
+
|
|
356
372
|
/**
|
|
357
373
|
* An object that can be used to store custom data about the 3D object. It
|
|
358
374
|
* should not hold references to functions as these will not be cloned.
|
|
@@ -361,6 +377,16 @@ class Object3D extends EventDispatcher {
|
|
|
361
377
|
*/
|
|
362
378
|
this.userData = {};
|
|
363
379
|
|
|
380
|
+
/**
|
|
381
|
+
* The pivot point for rotation and scale transformations.
|
|
382
|
+
* When set, rotation and scale are applied around this point
|
|
383
|
+
* instead of the object's origin.
|
|
384
|
+
*
|
|
385
|
+
* @type {?Vector3}
|
|
386
|
+
* @default null
|
|
387
|
+
*/
|
|
388
|
+
this.pivot = null;
|
|
389
|
+
|
|
364
390
|
}
|
|
365
391
|
|
|
366
392
|
/**
|
|
@@ -643,7 +669,7 @@ class Object3D extends EventDispatcher {
|
|
|
643
669
|
}
|
|
644
670
|
|
|
645
671
|
/**
|
|
646
|
-
* Converts the given vector from this 3D object's
|
|
672
|
+
* Converts the given vector from this 3D object's world space to local space.
|
|
647
673
|
*
|
|
648
674
|
* @param {Vector3} vector - The vector to convert.
|
|
649
675
|
* @return {Vector3} The converted vector.
|
|
@@ -733,7 +759,7 @@ class Object3D extends EventDispatcher {
|
|
|
733
759
|
|
|
734
760
|
if ( object === this ) {
|
|
735
761
|
|
|
736
|
-
|
|
762
|
+
error( 'Object3D.add: object can\'t be added as a child of itself.', object );
|
|
737
763
|
return this;
|
|
738
764
|
|
|
739
765
|
}
|
|
@@ -752,7 +778,7 @@ class Object3D extends EventDispatcher {
|
|
|
752
778
|
|
|
753
779
|
} else {
|
|
754
780
|
|
|
755
|
-
|
|
781
|
+
error( 'Object3D.add: object not an instance of THREE.Object3D.', object );
|
|
756
782
|
|
|
757
783
|
}
|
|
758
784
|
|
|
@@ -1108,6 +1134,19 @@ class Object3D extends EventDispatcher {
|
|
|
1108
1134
|
|
|
1109
1135
|
this.matrix.compose( this.position, this.quaternion, this.scale );
|
|
1110
1136
|
|
|
1137
|
+
const pivot = this.pivot;
|
|
1138
|
+
|
|
1139
|
+
if ( pivot !== null ) {
|
|
1140
|
+
|
|
1141
|
+
const px = pivot.x, py = pivot.y, pz = pivot.z;
|
|
1142
|
+
const te = this.matrix.elements;
|
|
1143
|
+
|
|
1144
|
+
te[ 12 ] += px - te[ 0 ] * px - te[ 4 ] * py - te[ 8 ] * pz;
|
|
1145
|
+
te[ 13 ] += py - te[ 1 ] * px - te[ 5 ] * py - te[ 9 ] * pz;
|
|
1146
|
+
te[ 14 ] += pz - te[ 2 ] * px - te[ 6 ] * py - te[ 10 ] * pz;
|
|
1147
|
+
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1111
1150
|
this.matrixWorldNeedsUpdate = true;
|
|
1112
1151
|
|
|
1113
1152
|
}
|
|
@@ -1121,7 +1160,7 @@ class Object3D extends EventDispatcher {
|
|
|
1121
1160
|
* `true` by default. Set these flags to `false` if you need more control over the update matrix process.
|
|
1122
1161
|
*
|
|
1123
1162
|
* @param {boolean} [force=false] - When set to `true`, a recomputation of world matrices is forced even
|
|
1124
|
-
* when {@link Object3D#
|
|
1163
|
+
* when {@link Object3D#matrixWorldNeedsUpdate} is `false`.
|
|
1125
1164
|
*/
|
|
1126
1165
|
updateMatrixWorld( force ) {
|
|
1127
1166
|
|
|
@@ -1266,14 +1305,20 @@ class Object3D extends EventDispatcher {
|
|
|
1266
1305
|
if ( this.visible === false ) object.visible = false;
|
|
1267
1306
|
if ( this.frustumCulled === false ) object.frustumCulled = false;
|
|
1268
1307
|
if ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;
|
|
1308
|
+
if ( this.static !== false ) object.static = this.static;
|
|
1269
1309
|
if ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;
|
|
1270
1310
|
|
|
1271
1311
|
object.layers = this.layers.mask;
|
|
1272
1312
|
object.matrix = this.matrix.toArray();
|
|
1273
1313
|
object.up = this.up.toArray();
|
|
1274
1314
|
|
|
1315
|
+
if ( this.pivot !== null ) object.pivot = this.pivot.toArray();
|
|
1316
|
+
|
|
1275
1317
|
if ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;
|
|
1276
1318
|
|
|
1319
|
+
if ( this.morphTargetDictionary !== undefined ) object.morphTargetDictionary = Object.assign( {}, this.morphTargetDictionary );
|
|
1320
|
+
if ( this.morphTargetInfluences !== undefined ) object.morphTargetInfluences = this.morphTargetInfluences.slice();
|
|
1321
|
+
|
|
1277
1322
|
// object specific properties
|
|
1278
1323
|
|
|
1279
1324
|
if ( this.isInstancedMesh ) {
|
|
@@ -1547,6 +1592,8 @@ class Object3D extends EventDispatcher {
|
|
|
1547
1592
|
this.quaternion.copy( source.quaternion );
|
|
1548
1593
|
this.scale.copy( source.scale );
|
|
1549
1594
|
|
|
1595
|
+
this.pivot = ( source.pivot !== null ) ? source.pivot.clone() : null;
|
|
1596
|
+
|
|
1550
1597
|
this.matrix.copy( source.matrix );
|
|
1551
1598
|
this.matrixWorld.copy( source.matrixWorld );
|
|
1552
1599
|
|
|
@@ -1564,6 +1611,8 @@ class Object3D extends EventDispatcher {
|
|
|
1564
1611
|
this.frustumCulled = source.frustumCulled;
|
|
1565
1612
|
this.renderOrder = source.renderOrder;
|
|
1566
1613
|
|
|
1614
|
+
this.static = source.static;
|
|
1615
|
+
|
|
1567
1616
|
this.animations = source.animations.slice();
|
|
1568
1617
|
|
|
1569
1618
|
this.userData = JSON.parse( JSON.stringify( source.userData ) );
|
package/src/core/Raycaster.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
2
2
|
import { Ray } from '../math/Ray.js';
|
|
3
3
|
import { Layers } from './Layers.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
const _matrix = /*@__PURE__*/ new Matrix4();
|
|
6
7
|
|
|
@@ -37,7 +38,7 @@ class Raycaster {
|
|
|
37
38
|
this.near = near;
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
|
-
* All results returned are
|
|
41
|
+
* All results returned are closer than far. Far can't be lower than near.
|
|
41
42
|
*
|
|
42
43
|
* @type {number}
|
|
43
44
|
* @default Infinity
|
|
@@ -131,7 +132,7 @@ class Raycaster {
|
|
|
131
132
|
|
|
132
133
|
} else {
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
error( 'Raycaster: Unsupported camera type: ' + camera.type );
|
|
135
136
|
|
|
136
137
|
}
|
|
137
138
|
|
|
@@ -166,7 +167,7 @@ class Raycaster {
|
|
|
166
167
|
* @property {Object3D} object - The 3D object that has been intersected.
|
|
167
168
|
* @property {Vector2} uv - U,V coordinates at point of intersection.
|
|
168
169
|
* @property {Vector2} uv1 - Second set of U,V coordinates at point of intersection.
|
|
169
|
-
* @property {Vector3}
|
|
170
|
+
* @property {Vector3} normal - Interpolated normal vector at point of intersection.
|
|
170
171
|
* @property {number} instanceId - The index number of the instance where the ray
|
|
171
172
|
* intersects the {@link InstancedMesh}.
|
|
172
173
|
*/
|
package/src/core/RenderTarget.js
CHANGED
|
@@ -124,10 +124,6 @@ class RenderTarget extends EventDispatcher {
|
|
|
124
124
|
*/
|
|
125
125
|
this.viewport = new Vector4( 0, 0, width, height );
|
|
126
126
|
|
|
127
|
-
const image = { width: width, height: height, depth: options.depth };
|
|
128
|
-
|
|
129
|
-
const texture = new Texture( image );
|
|
130
|
-
|
|
131
127
|
/**
|
|
132
128
|
* An array of textures. Each color attachment is represented as a separate texture.
|
|
133
129
|
* Has at least a single entry for the default color attachment.
|
|
@@ -136,6 +132,9 @@ class RenderTarget extends EventDispatcher {
|
|
|
136
132
|
*/
|
|
137
133
|
this.textures = [];
|
|
138
134
|
|
|
135
|
+
const image = { width: width, height: height, depth: options.depth };
|
|
136
|
+
const texture = new Texture( image );
|
|
137
|
+
|
|
139
138
|
const count = options.count;
|
|
140
139
|
for ( let i = 0; i < count; i ++ ) {
|
|
141
140
|
|
|
@@ -294,7 +293,16 @@ class RenderTarget extends EventDispatcher {
|
|
|
294
293
|
this.textures[ i ].image.width = width;
|
|
295
294
|
this.textures[ i ].image.height = height;
|
|
296
295
|
this.textures[ i ].image.depth = depth;
|
|
297
|
-
|
|
296
|
+
|
|
297
|
+
if ( this.textures[ i ].isData3DTexture !== true ) { // Fix for #31693
|
|
298
|
+
|
|
299
|
+
// TODO: Reconsider setting isArrayTexture flag here and in the ctor of Texture.
|
|
300
|
+
// Maybe a method `isArrayTexture()` or just a getter could replace a flag since
|
|
301
|
+
// both are evaluated on each call?
|
|
302
|
+
|
|
303
|
+
this.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;
|
|
304
|
+
|
|
305
|
+
}
|
|
298
306
|
|
|
299
307
|
}
|
|
300
308
|
|
|
@@ -361,6 +369,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
361
369
|
if ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();
|
|
362
370
|
|
|
363
371
|
this.samples = source.samples;
|
|
372
|
+
this.multiview = source.multiview;
|
|
364
373
|
|
|
365
374
|
return this;
|
|
366
375
|
|