super-three 0.181.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 +13152 -11354
- package/build/three.core.js +12319 -11539
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +1808 -781
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +27 -13
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +10523 -6263
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +10484 -6262
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/jsm/Addons.js +11 -3
- package/examples/jsm/animation/CCDIKSolver.js +7 -3
- package/examples/jsm/controls/ArcballControls.js +7 -4
- package/examples/jsm/controls/DragControls.js +2 -2
- package/examples/jsm/controls/FirstPersonControls.js +58 -54
- package/examples/jsm/controls/FlyControls.js +4 -0
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +111 -8
- package/examples/jsm/controls/TrackballControls.js +8 -8
- package/examples/jsm/controls/TransformControls.js +34 -2
- 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/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +152 -9
- package/examples/jsm/exporters/USDZExporter.js +22 -3
- package/examples/jsm/geometries/DecalGeometry.js +1 -1
- package/examples/jsm/geometries/TextGeometry.js +18 -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 +67 -8
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +203 -88
- package/examples/jsm/inspector/RendererInspector.js +14 -4
- 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 +41 -7
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +51 -3
- package/examples/jsm/inspector/tabs/Performance.js +4 -4
- 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 +107 -5
- package/examples/jsm/inspector/ui/Graph.js +2 -2
- package/examples/jsm/inspector/ui/List.js +1 -1
- package/examples/jsm/inspector/ui/Profiler.js +1936 -34
- package/examples/jsm/inspector/ui/Style.js +1044 -31
- package/examples/jsm/inspector/ui/Tab.js +222 -3
- package/examples/jsm/inspector/ui/Values.js +55 -2
- package/examples/jsm/inspector/ui/utils.js +13 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- 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/lines/LineMaterial.js +7 -1
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +2 -2
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +24 -4026
- package/examples/jsm/loaders/DRACOLoader.js +5 -5
- package/examples/jsm/loaders/EXRLoader.js +687 -48
- package/examples/jsm/loaders/FBXLoader.js +235 -37
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +146 -178
- package/examples/jsm/loaders/HDRLoader.js +1 -2
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +27 -5
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LWOLoader.js +7 -39
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
- 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/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 +11 -11
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/Volume.js +0 -1
- package/examples/jsm/misc/VolumeSlice.js +0 -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/Sky.js +90 -6
- package/examples/jsm/objects/SkyMesh.js +150 -16
- package/examples/jsm/objects/Water.js +4 -3
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +5 -7
- 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/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
- package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +174 -60
- package/examples/jsm/shaders/GTAOShader.js +19 -6
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +6 -5
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +63 -6
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +46 -3
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +12 -1
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +16 -6
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
- package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -1
- 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 +6 -4
- package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
- 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 +69 -19
- 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 +8 -24
- package/examples/jsm/tsl/display/SSRNode.js +8 -8
- package/examples/jsm/tsl/display/SSSNode.js +6 -4
- 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 +315 -126
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- 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 +2 -3
- 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 +1 -1
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
- package/package.json +24 -30
- package/src/Three.Core.js +3 -1
- package/src/Three.TSL.js +25 -11
- package/src/Three.WebGPU.Nodes.js +5 -0
- package/src/Three.WebGPU.js +9 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/AnimationMixer.js +6 -0
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +47 -8
- 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 +1 -1
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/constants.js +90 -5
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +14 -2
- package/src/core/Clock.js +7 -0
- package/src/core/Object3D.js +52 -4
- package/src/core/Raycaster.js +2 -2
- package/src/core/RenderTarget.js +4 -4
- package/src/extras/PMREMGenerator.js +7 -18
- package/src/extras/TextureUtils.js +5 -1
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/geometries/ExtrudeGeometry.js +2 -2
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/TorusGeometry.js +8 -3
- package/src/helpers/CameraHelper.js +3 -0
- 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/loaders/AudioLoader.js +11 -1
- package/src/loaders/Cache.js +28 -0
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +2 -3
- package/src/loaders/ImageBitmapLoader.js +12 -9
- package/src/loaders/Loader.js +6 -0
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +46 -6
- package/src/loaders/nodes/NodeLoader.js +2 -2
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +2 -0
- package/src/materials/MeshLambertMaterial.js +9 -0
- package/src/materials/MeshPhongMaterial.js +9 -0
- package/src/materials/MeshToonMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +20 -1
- package/src/materials/nodes/Line2NodeMaterial.js +34 -7
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +45 -25
- package/src/materials/nodes/manager/NodeMaterialObserver.js +191 -86
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +10 -10
- package/src/math/Matrix2.js +13 -9
- package/src/math/Matrix3.js +13 -9
- package/src/math/Matrix4.js +87 -74
- package/src/math/Plane.js +4 -3
- package/src/math/Quaternion.js +3 -29
- package/src/math/Sphere.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 -68
- package/src/nodes/TSL.js +7 -7
- 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 +29 -2
- package/src/nodes/accessors/Camera.js +149 -28
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +27 -2
- package/src/nodes/accessors/InstanceNode.js +148 -43
- 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 +11 -11
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +34 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
- package/src/nodes/accessors/ReferenceNode.js +8 -8
- 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 -25
- package/src/nodes/accessors/StorageTextureNode.js +40 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +32 -35
- package/src/nodes/accessors/TextureNode.js +67 -23
- 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 +1 -1
- package/src/nodes/code/FunctionNode.js +2 -3
- package/src/nodes/core/ArrayNode.js +21 -2
- package/src/nodes/core/AssignNode.js +3 -3
- package/src/nodes/core/AttributeNode.js +3 -3
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +104 -5
- package/src/nodes/core/IndexNode.js +2 -1
- package/src/nodes/core/InputNode.js +1 -1
- package/src/nodes/core/InspectorNode.js +1 -1
- package/src/nodes/core/IsolateNode.js +1 -1
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +112 -15
- package/src/nodes/core/NodeBuilder.js +284 -66
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +12 -4
- package/src/nodes/core/NodeUtils.js +11 -9
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +19 -3
- package/src/nodes/core/StackNode.js +66 -17
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +17 -3
- package/src/nodes/core/StructTypeNode.js +12 -18
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +21 -5
- package/src/nodes/core/VarNode.js +48 -23
- package/src/nodes/core/VaryingNode.js +2 -19
- package/src/nodes/display/BlendModes.js +0 -64
- package/src/nodes/display/ColorAdjustment.js +17 -0
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +39 -4
- package/src/nodes/display/PassNode.js +125 -16
- package/src/nodes/display/RenderOutputNode.js +7 -7
- package/src/nodes/display/ScreenNode.js +4 -2
- package/src/nodes/display/ToneMappingNode.js +1 -1
- package/src/nodes/display/ToonOutlinePassNode.js +2 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
- package/src/nodes/display/ViewportTextureNode.js +39 -11
- package/src/nodes/fog/Fog.js +18 -35
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
- 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/PhysicalLightingModel.js +126 -45
- package/src/nodes/geometry/RangeNode.js +5 -3
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
- package/src/nodes/gpgpu/ComputeNode.js +74 -48
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +4 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +28 -3
- package/src/nodes/lighting/LightsNode.js +7 -28
- package/src/nodes/lighting/PointShadowNode.js +162 -149
- package/src/nodes/lighting/ShadowFilterNode.js +53 -65
- package/src/nodes/lighting/ShadowNode.js +120 -42
- package/src/nodes/math/BitcastNode.js +1 -1
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +3 -3
- package/src/nodes/math/MathNode.js +76 -41
- package/src/nodes/math/OperatorNode.js +3 -2
- 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 +9 -15
- package/src/nodes/tsl/TSLBase.js +1 -1
- package/src/nodes/tsl/TSLCore.js +38 -17
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +12 -12
- package/src/nodes/utils/EventNode.js +31 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +1 -1
- package/src/nodes/utils/JoinNode.js +3 -3
- package/src/nodes/utils/LoopNode.js +1 -1
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +33 -1
- package/src/nodes/utils/RTTNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +3 -4
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +1 -1
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +44 -16
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/Line.js +1 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +9 -0
- package/src/objects/SkinnedMesh.js +26 -9
- package/src/renderers/WebGLRenderer.js +329 -145
- package/src/renderers/common/Animation.js +3 -3
- package/src/renderers/common/Attributes.js +15 -1
- package/src/renderers/common/Backend.js +29 -8
- package/src/renderers/common/Background.js +26 -13
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +29 -14
- 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/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/Geometries.js +29 -3
- package/src/renderers/common/Info.js +333 -4
- package/src/renderers/common/InspectorBase.js +6 -1
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +40 -7
- package/src/renderers/common/PostProcessing.js +8 -206
- 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 +16 -0
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +17 -5
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +21 -5
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +481 -117
- package/src/renderers/common/Sampler.js +4 -4
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/Textures.js +89 -4
- package/src/renderers/common/TimestampQueryPool.js +5 -3
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +62 -1
- package/src/renderers/common/XRManager.js +37 -29
- package/src/renderers/common/extras/PMREMGenerator.js +25 -23
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +242 -99
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +19 -34
- 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/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- 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 +112 -53
- 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 +225 -186
- 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 +3 -0
- 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 +7 -5
- package/src/renderers/shaders/UniformsUtils.js +27 -5
- 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 +9 -4
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- 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 +49 -109
- package/src/renderers/webgl/WebGLPrograms.js +63 -51
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +188 -24
- package/src/renderers/webgl/WebGLState.js +75 -37
- package/src/renderers/webgl/WebGLTextures.js +215 -54
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +19 -0
- package/src/renderers/webgl/WebGLUtils.js +6 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +253 -82
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +173 -74
- 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/WebGLState.js +223 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +68 -53
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +6 -2
- package/src/renderers/webgpu/WebGPUBackend.js +260 -140
- package/src/renderers/webgpu/WebGPURenderer.js +2 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +366 -90
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +107 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +357 -200
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +61 -23
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +152 -200
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +156 -59
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +7 -7
- package/src/renderers/webgpu/utils/WebGPUUtils.js +33 -11
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +4 -2
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +16 -5
- package/src/utils.js +280 -3
- 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 -145
- 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 -71
- 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
|
@@ -88,7 +88,7 @@ class PropertyMixer {
|
|
|
88
88
|
this._addIndex = 4;
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
91
|
+
* Accumulated weight of the property binding.
|
|
92
92
|
*
|
|
93
93
|
* @type {number}
|
|
94
94
|
* @default 0
|
|
@@ -96,7 +96,7 @@ class PropertyMixer {
|
|
|
96
96
|
this.cumulativeWeight = 0;
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Accumulated additive weight of the property binding.
|
|
100
100
|
*
|
|
101
101
|
* @type {number}
|
|
102
102
|
* @default 0
|
|
@@ -104,7 +104,7 @@ class PropertyMixer {
|
|
|
104
104
|
this.cumulativeWeightAdditive = 0;
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
107
|
+
* Number of active keyframe tracks currently using this property binding.
|
|
108
108
|
*
|
|
109
109
|
* @type {number}
|
|
110
110
|
* @default 0
|
|
@@ -112,7 +112,7 @@ class PropertyMixer {
|
|
|
112
112
|
this.useCount = 0;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
115
|
+
* Number of keyframe tracks referencing this property binding.
|
|
116
116
|
*
|
|
117
117
|
* @type {number}
|
|
118
118
|
* @default 0
|
package/src/audio/Audio.js
CHANGED
|
@@ -191,7 +191,7 @@ class Audio extends Object3D {
|
|
|
191
191
|
/**
|
|
192
192
|
* Defines the source type.
|
|
193
193
|
*
|
|
194
|
-
* The property is automatically by one of the `set*()` methods.
|
|
194
|
+
* The property is automatically set by one of the `set*()` methods.
|
|
195
195
|
*
|
|
196
196
|
* @type {('empty'|'audioNode'|'mediaNode'|'mediaStreamNode'|'buffer')}
|
|
197
197
|
* @readonly
|
|
@@ -10,7 +10,7 @@ class AudioContext {
|
|
|
10
10
|
/**
|
|
11
11
|
* Returns the global native audio context.
|
|
12
12
|
*
|
|
13
|
-
* @return {AudioContext} The native audio context.
|
|
13
|
+
* @return {Window.AudioContext} The native audio context.
|
|
14
14
|
*/
|
|
15
15
|
static getContext() {
|
|
16
16
|
|
|
@@ -27,7 +27,7 @@ class AudioContext {
|
|
|
27
27
|
/**
|
|
28
28
|
* Allows to set the global native audio context from outside.
|
|
29
29
|
*
|
|
30
|
-
* @param {AudioContext} value - The native context to set.
|
|
30
|
+
* @param {Window.AudioContext} value - The native context to set.
|
|
31
31
|
*/
|
|
32
32
|
static setContext( value ) {
|
|
33
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3 } from '../math/Vector3.js';
|
|
2
2
|
import { Quaternion } from '../math/Quaternion.js';
|
|
3
|
-
import {
|
|
3
|
+
import { Timer } from '../core/Timer.js';
|
|
4
4
|
import { Object3D } from '../core/Object3D.js';
|
|
5
5
|
import { AudioContext } from './AudioContext.js';
|
|
6
6
|
|
|
@@ -71,7 +71,7 @@ class AudioListener extends Object3D {
|
|
|
71
71
|
|
|
72
72
|
// private
|
|
73
73
|
|
|
74
|
-
this.
|
|
74
|
+
this._timer = new Timer();
|
|
75
75
|
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -176,9 +176,11 @@ class AudioListener extends Object3D {
|
|
|
176
176
|
|
|
177
177
|
super.updateMatrixWorld( force );
|
|
178
178
|
|
|
179
|
+
this._timer.update();
|
|
180
|
+
|
|
179
181
|
const listener = this.context.listener;
|
|
180
182
|
|
|
181
|
-
this.timeDelta = this.
|
|
183
|
+
this.timeDelta = this._timer.getDelta();
|
|
182
184
|
|
|
183
185
|
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
184
186
|
|
package/src/cameras/Camera.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { WebGLCoordinateSystem } from '../constants.js';
|
|
2
2
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
3
3
|
import { Object3D } from '../core/Object3D.js';
|
|
4
|
+
import { Vector3 } from '../math/Vector3.js';
|
|
5
|
+
import { Quaternion } from '../math/Quaternion.js';
|
|
6
|
+
|
|
7
|
+
const _position = /*@__PURE__*/ new Vector3();
|
|
8
|
+
const _quaternion = /*@__PURE__*/ new Quaternion();
|
|
9
|
+
const _scale = /*@__PURE__*/ new Vector3();
|
|
4
10
|
|
|
5
11
|
/**
|
|
6
12
|
* Abstract base class for cameras. This class should always be inherited
|
|
@@ -107,7 +113,19 @@ class Camera extends Object3D {
|
|
|
107
113
|
|
|
108
114
|
super.updateMatrixWorld( force );
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
// exclude scale from view matrix to be glTF conform
|
|
117
|
+
|
|
118
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
119
|
+
|
|
120
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
121
|
+
|
|
122
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
123
|
+
|
|
124
|
+
} else {
|
|
125
|
+
|
|
126
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
127
|
+
|
|
128
|
+
}
|
|
111
129
|
|
|
112
130
|
}
|
|
113
131
|
|
|
@@ -115,7 +133,19 @@ class Camera extends Object3D {
|
|
|
115
133
|
|
|
116
134
|
super.updateWorldMatrix( updateParents, updateChildren );
|
|
117
135
|
|
|
118
|
-
|
|
136
|
+
// exclude scale from view matrix to be glTF conform
|
|
137
|
+
|
|
138
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
139
|
+
|
|
140
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
141
|
+
|
|
142
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
143
|
+
|
|
144
|
+
} else {
|
|
145
|
+
|
|
146
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
147
|
+
|
|
148
|
+
}
|
|
119
149
|
|
|
120
150
|
}
|
|
121
151
|
|
|
@@ -203,19 +203,38 @@ class CubeCamera extends Object3D {
|
|
|
203
203
|
|
|
204
204
|
renderTarget.texture.generateMipmaps = false;
|
|
205
205
|
|
|
206
|
+
// https://github.com/mrdoob/three.js/issues/31413#issuecomment-3095966812
|
|
207
|
+
|
|
208
|
+
let reversedDepthBuffer = false;
|
|
209
|
+
|
|
210
|
+
if ( renderer.isWebGLRenderer === true ) {
|
|
211
|
+
|
|
212
|
+
reversedDepthBuffer = renderer.state.buffers.depth.getReversed();
|
|
213
|
+
|
|
214
|
+
} else {
|
|
215
|
+
|
|
216
|
+
reversedDepthBuffer = renderer.reversedDepthBuffer;
|
|
217
|
+
|
|
218
|
+
}
|
|
219
|
+
|
|
206
220
|
renderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );
|
|
221
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
207
222
|
renderer.render( scene, cameraPX );
|
|
208
223
|
|
|
209
224
|
renderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );
|
|
225
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
210
226
|
renderer.render( scene, cameraNX );
|
|
211
227
|
|
|
212
228
|
renderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );
|
|
229
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
213
230
|
renderer.render( scene, cameraPY );
|
|
214
231
|
|
|
215
232
|
renderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );
|
|
233
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
216
234
|
renderer.render( scene, cameraNY );
|
|
217
235
|
|
|
218
236
|
renderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );
|
|
237
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
219
238
|
renderer.render( scene, cameraPZ );
|
|
220
239
|
|
|
221
240
|
// mipmaps are generated during the last call of render()
|
|
@@ -224,6 +243,7 @@ class CubeCamera extends Object3D {
|
|
|
224
243
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
225
244
|
|
|
226
245
|
renderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );
|
|
246
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
227
247
|
renderer.render( scene, cameraNZ );
|
|
228
248
|
|
|
229
249
|
renderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );
|
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
|
*
|
|
@@ -907,6 +915,38 @@ export const RGB_ETC2_Format = 37492;
|
|
|
907
915
|
*/
|
|
908
916
|
export const RGBA_ETC2_EAC_Format = 37496;
|
|
909
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
|
+
|
|
910
950
|
/**
|
|
911
951
|
* ASTC RGBA 4x4 format.
|
|
912
952
|
*
|
|
@@ -1125,6 +1165,17 @@ export const InterpolateLinear = 2301;
|
|
|
1125
1165
|
*/
|
|
1126
1166
|
export const InterpolateSmooth = 2302;
|
|
1127
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
|
+
|
|
1128
1179
|
/**
|
|
1129
1180
|
* Zero curvature ending for animations.
|
|
1130
1181
|
*
|
|
@@ -1191,7 +1242,7 @@ export const TriangleStripDrawMode = 1;
|
|
|
1191
1242
|
export const TriangleFanDrawMode = 2;
|
|
1192
1243
|
|
|
1193
1244
|
/**
|
|
1194
|
-
*
|
|
1245
|
+
* The depth value is inverted (1.0 - z) for visualization purposes.
|
|
1195
1246
|
*
|
|
1196
1247
|
* @type {number}
|
|
1197
1248
|
* @constant
|
|
@@ -1199,7 +1250,7 @@ export const TriangleFanDrawMode = 2;
|
|
|
1199
1250
|
export const BasicDepthPacking = 3200;
|
|
1200
1251
|
|
|
1201
1252
|
/**
|
|
1202
|
-
*
|
|
1253
|
+
* The depth value is packed into 32 bit RGBA.
|
|
1203
1254
|
*
|
|
1204
1255
|
* @type {number}
|
|
1205
1256
|
* @constant
|
|
@@ -1207,7 +1258,7 @@ export const BasicDepthPacking = 3200;
|
|
|
1207
1258
|
export const RGBADepthPacking = 3201;
|
|
1208
1259
|
|
|
1209
1260
|
/**
|
|
1210
|
-
*
|
|
1261
|
+
* The depth value is packed into 24 bit RGB.
|
|
1211
1262
|
*
|
|
1212
1263
|
* @type {number}
|
|
1213
1264
|
* @constant
|
|
@@ -1215,7 +1266,7 @@ export const RGBADepthPacking = 3201;
|
|
|
1215
1266
|
export const RGBDepthPacking = 3202;
|
|
1216
1267
|
|
|
1217
1268
|
/**
|
|
1218
|
-
*
|
|
1269
|
+
* The depth value is packed into 16 bit RG.
|
|
1219
1270
|
*
|
|
1220
1271
|
* @type {number}
|
|
1221
1272
|
* @constant
|
|
@@ -1280,6 +1331,30 @@ export const LinearTransfer = 'linear';
|
|
|
1280
1331
|
*/
|
|
1281
1332
|
export const SRGBTransfer = 'srgb';
|
|
1282
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
|
+
|
|
1283
1358
|
/**
|
|
1284
1359
|
* Sets the stencil buffer value to `0`.
|
|
1285
1360
|
*
|
|
@@ -1624,6 +1699,16 @@ export const InterpolationSamplingMode = {
|
|
|
1624
1699
|
EITHER: 'either'
|
|
1625
1700
|
};
|
|
1626
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
|
+
|
|
1627
1712
|
/**
|
|
1628
1713
|
* This type represents mouse buttons and interaction types in context of controls.
|
|
1629
1714
|
*
|
|
@@ -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
|
/**
|
|
@@ -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
|
*/
|
|
@@ -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
|
|
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
|
/**
|
package/src/core/Object3D.js
CHANGED
|
@@ -242,7 +242,8 @@ class Object3D extends EventDispatcher {
|
|
|
242
242
|
|
|
243
243
|
/**
|
|
244
244
|
* When set to `true`, the engine automatically computes the local matrix from position,
|
|
245
|
-
* 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()`.
|
|
246
247
|
*
|
|
247
248
|
* The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_AUTO_UPDATE`.
|
|
248
249
|
*
|
|
@@ -253,7 +254,8 @@ class Object3D extends EventDispatcher {
|
|
|
253
254
|
|
|
254
255
|
/**
|
|
255
256
|
* When set to `true`, the engine automatically computes the world matrix from the current local
|
|
256
|
-
* 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.
|
|
257
259
|
*
|
|
258
260
|
* The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE`.
|
|
259
261
|
*
|
|
@@ -354,6 +356,19 @@ class Object3D extends EventDispatcher {
|
|
|
354
356
|
*/
|
|
355
357
|
this.customDistanceMaterial = undefined;
|
|
356
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
|
+
|
|
357
372
|
/**
|
|
358
373
|
* An object that can be used to store custom data about the 3D object. It
|
|
359
374
|
* should not hold references to functions as these will not be cloned.
|
|
@@ -362,6 +377,16 @@ class Object3D extends EventDispatcher {
|
|
|
362
377
|
*/
|
|
363
378
|
this.userData = {};
|
|
364
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
|
+
|
|
365
390
|
}
|
|
366
391
|
|
|
367
392
|
/**
|
|
@@ -644,7 +669,7 @@ class Object3D extends EventDispatcher {
|
|
|
644
669
|
}
|
|
645
670
|
|
|
646
671
|
/**
|
|
647
|
-
* Converts the given vector from this 3D object's
|
|
672
|
+
* Converts the given vector from this 3D object's world space to local space.
|
|
648
673
|
*
|
|
649
674
|
* @param {Vector3} vector - The vector to convert.
|
|
650
675
|
* @return {Vector3} The converted vector.
|
|
@@ -1109,6 +1134,19 @@ class Object3D extends EventDispatcher {
|
|
|
1109
1134
|
|
|
1110
1135
|
this.matrix.compose( this.position, this.quaternion, this.scale );
|
|
1111
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
|
+
|
|
1112
1150
|
this.matrixWorldNeedsUpdate = true;
|
|
1113
1151
|
|
|
1114
1152
|
}
|
|
@@ -1122,7 +1160,7 @@ class Object3D extends EventDispatcher {
|
|
|
1122
1160
|
* `true` by default. Set these flags to `false` if you need more control over the update matrix process.
|
|
1123
1161
|
*
|
|
1124
1162
|
* @param {boolean} [force=false] - When set to `true`, a recomputation of world matrices is forced even
|
|
1125
|
-
* when {@link Object3D#
|
|
1163
|
+
* when {@link Object3D#matrixWorldNeedsUpdate} is `false`.
|
|
1126
1164
|
*/
|
|
1127
1165
|
updateMatrixWorld( force ) {
|
|
1128
1166
|
|
|
@@ -1267,14 +1305,20 @@ class Object3D extends EventDispatcher {
|
|
|
1267
1305
|
if ( this.visible === false ) object.visible = false;
|
|
1268
1306
|
if ( this.frustumCulled === false ) object.frustumCulled = false;
|
|
1269
1307
|
if ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;
|
|
1308
|
+
if ( this.static !== false ) object.static = this.static;
|
|
1270
1309
|
if ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;
|
|
1271
1310
|
|
|
1272
1311
|
object.layers = this.layers.mask;
|
|
1273
1312
|
object.matrix = this.matrix.toArray();
|
|
1274
1313
|
object.up = this.up.toArray();
|
|
1275
1314
|
|
|
1315
|
+
if ( this.pivot !== null ) object.pivot = this.pivot.toArray();
|
|
1316
|
+
|
|
1276
1317
|
if ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;
|
|
1277
1318
|
|
|
1319
|
+
if ( this.morphTargetDictionary !== undefined ) object.morphTargetDictionary = Object.assign( {}, this.morphTargetDictionary );
|
|
1320
|
+
if ( this.morphTargetInfluences !== undefined ) object.morphTargetInfluences = this.morphTargetInfluences.slice();
|
|
1321
|
+
|
|
1278
1322
|
// object specific properties
|
|
1279
1323
|
|
|
1280
1324
|
if ( this.isInstancedMesh ) {
|
|
@@ -1548,6 +1592,8 @@ class Object3D extends EventDispatcher {
|
|
|
1548
1592
|
this.quaternion.copy( source.quaternion );
|
|
1549
1593
|
this.scale.copy( source.scale );
|
|
1550
1594
|
|
|
1595
|
+
this.pivot = ( source.pivot !== null ) ? source.pivot.clone() : null;
|
|
1596
|
+
|
|
1551
1597
|
this.matrix.copy( source.matrix );
|
|
1552
1598
|
this.matrixWorld.copy( source.matrixWorld );
|
|
1553
1599
|
|
|
@@ -1565,6 +1611,8 @@ class Object3D extends EventDispatcher {
|
|
|
1565
1611
|
this.frustumCulled = source.frustumCulled;
|
|
1566
1612
|
this.renderOrder = source.renderOrder;
|
|
1567
1613
|
|
|
1614
|
+
this.static = source.static;
|
|
1615
|
+
|
|
1568
1616
|
this.animations = source.animations.slice();
|
|
1569
1617
|
|
|
1570
1618
|
this.userData = JSON.parse( JSON.stringify( source.userData ) );
|
package/src/core/Raycaster.js
CHANGED
|
@@ -38,7 +38,7 @@ class Raycaster {
|
|
|
38
38
|
this.near = near;
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
* All results returned are
|
|
41
|
+
* All results returned are closer than far. Far can't be lower than near.
|
|
42
42
|
*
|
|
43
43
|
* @type {number}
|
|
44
44
|
* @default Infinity
|
|
@@ -167,7 +167,7 @@ class Raycaster {
|
|
|
167
167
|
* @property {Object3D} object - The 3D object that has been intersected.
|
|
168
168
|
* @property {Vector2} uv - U,V coordinates at point of intersection.
|
|
169
169
|
* @property {Vector2} uv1 - Second set of U,V coordinates at point of intersection.
|
|
170
|
-
* @property {Vector3}
|
|
170
|
+
* @property {Vector3} normal - Interpolated normal vector at point of intersection.
|
|
171
171
|
* @property {number} instanceId - The index number of the instance where the ray
|
|
172
172
|
* intersects the {@link InstancedMesh}.
|
|
173
173
|
*/
|