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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GLTFLoader } from '../loaders/GLTFLoader.js';
|
|
2
|
+
import { clone } from '../utils/SkeletonUtils.js';
|
|
2
3
|
|
|
3
4
|
const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/';
|
|
4
5
|
|
|
@@ -20,8 +21,9 @@ class XRHandMeshModel {
|
|
|
20
21
|
* @param {XRHandedness} handedness - The handedness of the XR input source.
|
|
21
22
|
* @param {?Loader} [loader=null] - The loader. If not provided, an instance of `GLTFLoader` will be used to load models.
|
|
22
23
|
* @param {?Function} [onLoad=null] - A callback that is executed when a controller model has been loaded.
|
|
24
|
+
* @param {?Object} [customCache=null] - An optional shared cache object for storing and reusing loaded assets across instances.
|
|
23
25
|
*/
|
|
24
|
-
constructor( handModel, controller, path, handedness, loader = null, onLoad = null ) {
|
|
26
|
+
constructor( handModel, controller, path, handedness, loader = null, onLoad = null, customCache = null ) {
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
29
|
* The WebXR controller.
|
|
@@ -45,16 +47,11 @@ class XRHandMeshModel {
|
|
|
45
47
|
*/
|
|
46
48
|
this.bones = [];
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
const pathToUse = path || DEFAULT_HAND_PROFILE_PATH;
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
loader.setPath( path || DEFAULT_HAND_PROFILE_PATH );
|
|
52
|
+
const processAsset = ( gltf ) => {
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
loader.load( `${handedness}.glb`, gltf => {
|
|
56
|
-
|
|
57
|
-
const object = gltf.scene.children[ 0 ];
|
|
54
|
+
const object = clone( gltf.scene.children[ 0 ] );
|
|
58
55
|
this.handModel.add( object );
|
|
59
56
|
|
|
60
57
|
const mesh = object.getObjectByProperty( 'type', 'SkinnedMesh' );
|
|
@@ -110,7 +107,36 @@ class XRHandMeshModel {
|
|
|
110
107
|
|
|
111
108
|
if ( onLoad ) onLoad( object );
|
|
112
109
|
|
|
113
|
-
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const assetUrl = `${pathToUse}${handedness}.glb`;
|
|
113
|
+
|
|
114
|
+
if ( customCache && customCache[ assetUrl ] ) {
|
|
115
|
+
|
|
116
|
+
processAsset( customCache[ assetUrl ] );
|
|
117
|
+
|
|
118
|
+
} else {
|
|
119
|
+
|
|
120
|
+
if ( loader === null ) {
|
|
121
|
+
|
|
122
|
+
loader = new GLTFLoader();
|
|
123
|
+
loader.setPath( pathToUse );
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
loader.load( `${handedness}.glb`, gltf => {
|
|
128
|
+
|
|
129
|
+
if ( customCache ) {
|
|
130
|
+
|
|
131
|
+
customCache[ assetUrl ] = gltf;
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
processAsset( gltf );
|
|
136
|
+
|
|
137
|
+
} );
|
|
138
|
+
|
|
139
|
+
}
|
|
114
140
|
|
|
115
141
|
}
|
|
116
142
|
|
|
@@ -118,6 +118,7 @@ class XRHandModelFactory {
|
|
|
118
118
|
* @default null
|
|
119
119
|
*/
|
|
120
120
|
this.path = null;
|
|
121
|
+
this._assetCache = {};
|
|
121
122
|
|
|
122
123
|
/**
|
|
123
124
|
* A callback that is executed when a hand model has been loaded.
|
|
@@ -173,7 +174,7 @@ class XRHandModelFactory {
|
|
|
173
174
|
|
|
174
175
|
} else if ( profile === 'mesh' ) {
|
|
175
176
|
|
|
176
|
-
handModel.motionController = new XRHandMeshModel( handModel, controller, this.path, xrInputSource.handedness, this.gltfLoader, this.onLoad );
|
|
177
|
+
handModel.motionController = new XRHandMeshModel( handModel, controller, this.path, xrInputSource.handedness, this.gltfLoader, this.onLoad, this._assetCache );
|
|
177
178
|
|
|
178
179
|
}
|
|
179
180
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "super-three",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.184.0",
|
|
4
4
|
"description": "JavaScript 3D library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/three.cjs",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
|
23
|
-
"url": "supermedium/three.js"
|
|
23
|
+
"url": "https://github.com/supermedium/three.js"
|
|
24
24
|
},
|
|
25
25
|
"sideEffects": [
|
|
26
26
|
"./src/nodes/**/*"
|
|
@@ -46,23 +46,20 @@
|
|
|
46
46
|
"start": "npm run dev",
|
|
47
47
|
"test": "npm run lint && npm run test-unit && npm run test-unit-addons",
|
|
48
48
|
"build": "rollup -c utils/build/rollup.config.js",
|
|
49
|
+
"build-docs": "jsdoc -c utils/docs/jsdoc.config.json && npm run build-llms",
|
|
50
|
+
"build-llms": "node utils/llms/build.js",
|
|
49
51
|
"build-module": "rollup -c utils/build/rollup.config.js --configOnlyModule",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"dev-ssl": "node utils/build/dev.js && servez -p 8080 --ssl",
|
|
53
|
-
"preview": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080\"",
|
|
54
|
-
"preview-ssl": "concurrently --names \"ROLLUP,HTTPS\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080 --ssl\"",
|
|
52
|
+
"dev": "node utils/build/dev.js && node utils/server.js -p 8080",
|
|
53
|
+
"preview": "node utils/build/preview.js",
|
|
55
54
|
"lint-core": "eslint src",
|
|
56
|
-
"lint-addons": "eslint examples/jsm
|
|
57
|
-
"lint-examples": "eslint examples
|
|
58
|
-
"lint-
|
|
59
|
-
"lint-
|
|
60
|
-
"lint-
|
|
61
|
-
"lint-
|
|
62
|
-
"lint-test": "eslint test --ignore-pattern vendor",
|
|
63
|
-
"lint-utils": "eslint utils --ignore-pattern prettify --ignore-pattern fuse",
|
|
55
|
+
"lint-addons": "eslint examples/jsm",
|
|
56
|
+
"lint-examples": "eslint examples",
|
|
57
|
+
"lint-editor": "eslint editor",
|
|
58
|
+
"lint-manual": "eslint manual",
|
|
59
|
+
"lint-test": "eslint test",
|
|
60
|
+
"lint-utils": "eslint utils",
|
|
64
61
|
"lint": "npm run lint-core",
|
|
65
|
-
"lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-
|
|
62
|
+
"lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-editor -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
|
|
66
63
|
"test-unit": "qunit test/unit/three.source.unit.js",
|
|
67
64
|
"test-unit-addons": "qunit test/unit/three.addons.unit.js",
|
|
68
65
|
"test-e2e": "node test/e2e/puppeteer.js",
|
|
@@ -94,26 +91,23 @@
|
|
|
94
91
|
},
|
|
95
92
|
"homepage": "https://threejs.org/",
|
|
96
93
|
"devDependencies": {
|
|
94
|
+
"@eslint/js": "^9.0.0",
|
|
97
95
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
98
|
-
"@rollup/plugin-terser": "^0.
|
|
99
|
-
"
|
|
100
|
-
"eslint": "^8.37.0",
|
|
96
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
97
|
+
"eslint": "^9.0.0",
|
|
101
98
|
"eslint-config-mdcs": "^5.0.0",
|
|
102
|
-
"eslint-plugin-compat": "^
|
|
103
|
-
"eslint-plugin-html": "^8.
|
|
104
|
-
"eslint-plugin-
|
|
105
|
-
"
|
|
99
|
+
"eslint-plugin-compat": "^7.0.0",
|
|
100
|
+
"eslint-plugin-html": "^8.1.3",
|
|
101
|
+
"eslint-plugin-jsdoc": "^62.0.0",
|
|
102
|
+
"globals": "^17.0.0",
|
|
103
|
+
"jpeg-js": "^0.4.4",
|
|
106
104
|
"jsdoc": "^4.0.5",
|
|
107
105
|
"magic-string": "^0.30.0",
|
|
108
|
-
"
|
|
109
|
-
"puppeteer": "^24.
|
|
106
|
+
"pngjs": "^7.0.0",
|
|
107
|
+
"puppeteer": "^24.40.0",
|
|
110
108
|
"qunit": "^2.19.4",
|
|
111
109
|
"rollup": "^4.6.0",
|
|
112
|
-
"
|
|
113
|
-
"servez": "^2.2.4"
|
|
114
|
-
},
|
|
115
|
-
"overrides": {
|
|
116
|
-
"jpeg-js": "^0.4.4"
|
|
110
|
+
"turndown": "^7.2.2"
|
|
117
111
|
},
|
|
118
112
|
"jspm": {
|
|
119
113
|
"files": [
|
package/src/Three.Core.js
CHANGED
|
@@ -3,7 +3,6 @@ import { warn } from './utils.js';
|
|
|
3
3
|
|
|
4
4
|
export { WebGLArrayRenderTarget } from './renderers/WebGLArrayRenderTarget.js';
|
|
5
5
|
export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
|
|
6
|
-
export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
|
|
7
6
|
export { WebGLRenderTarget } from './renderers/WebGLRenderTarget.js';
|
|
8
7
|
export { WebXRController } from './renderers/webxr/WebXRController.js';
|
|
9
8
|
export { FogExp2 } from './scenes/FogExp2.js';
|
|
@@ -34,7 +33,9 @@ export { CompressedArrayTexture } from './textures/CompressedArrayTexture.js';
|
|
|
34
33
|
export { CompressedCubeTexture } from './textures/CompressedCubeTexture.js';
|
|
35
34
|
export { CubeTexture } from './textures/CubeTexture.js';
|
|
36
35
|
export { CanvasTexture } from './textures/CanvasTexture.js';
|
|
36
|
+
export { HTMLTexture } from './textures/HTMLTexture.js';
|
|
37
37
|
export { DepthTexture } from './textures/DepthTexture.js';
|
|
38
|
+
export { CubeDepthTexture } from './textures/CubeDepthTexture.js';
|
|
38
39
|
export { ExternalTexture } from './textures/ExternalTexture.js';
|
|
39
40
|
export { Texture } from './textures/Texture.js';
|
|
40
41
|
export * from './geometries/Geometries.js';
|
|
@@ -110,6 +111,7 @@ export { QuaternionLinearInterpolant } from './math/interpolants/QuaternionLinea
|
|
|
110
111
|
export { LinearInterpolant } from './math/interpolants/LinearInterpolant.js';
|
|
111
112
|
export { DiscreteInterpolant } from './math/interpolants/DiscreteInterpolant.js';
|
|
112
113
|
export { CubicInterpolant } from './math/interpolants/CubicInterpolant.js';
|
|
114
|
+
export { BezierInterpolant } from './math/interpolants/BezierInterpolant.js';
|
|
113
115
|
export { Interpolant } from './math/Interpolant.js';
|
|
114
116
|
export { Triangle } from './math/Triangle.js';
|
|
115
117
|
export { MathUtils } from './math/MathUtils.js';
|
package/src/Three.TSL.js
CHANGED
|
@@ -7,7 +7,7 @@ export const BasicShadowFilter = TSL.BasicShadowFilter;
|
|
|
7
7
|
export const Break = TSL.Break;
|
|
8
8
|
export const Const = TSL.Const;
|
|
9
9
|
export const Continue = TSL.Continue;
|
|
10
|
-
export const
|
|
10
|
+
export const DFGLUT = TSL.DFGLUT;
|
|
11
11
|
export const D_GGX = TSL.D_GGX;
|
|
12
12
|
export const Discard = TSL.Discard;
|
|
13
13
|
export const EPSILON = TSL.EPSILON;
|
|
@@ -29,7 +29,6 @@ export const HALF_PI = TSL.HALF_PI;
|
|
|
29
29
|
export const PointShadowFilter = TSL.PointShadowFilter;
|
|
30
30
|
export const Return = TSL.Return;
|
|
31
31
|
export const Schlick_to_F0 = TSL.Schlick_to_F0;
|
|
32
|
-
export const ScriptableNodeResources = TSL.ScriptableNodeResources;
|
|
33
32
|
export const ShaderNode = TSL.ShaderNode;
|
|
34
33
|
export const Stack = TSL.Stack;
|
|
35
34
|
export const Switch = TSL.Switch;
|
|
@@ -41,6 +40,7 @@ export const VarIntent = TSL.VarIntent;
|
|
|
41
40
|
export const abs = TSL.abs;
|
|
42
41
|
export const acesFilmicToneMapping = TSL.acesFilmicToneMapping;
|
|
43
42
|
export const acos = TSL.acos;
|
|
43
|
+
export const acosh = TSL.acosh;
|
|
44
44
|
export const add = TSL.add;
|
|
45
45
|
export const addMethodChaining = TSL.addMethodChaining;
|
|
46
46
|
export const addNodeElement = TSL.addNodeElement;
|
|
@@ -56,9 +56,10 @@ export const append = TSL.append;
|
|
|
56
56
|
export const array = TSL.array;
|
|
57
57
|
export const arrayBuffer = TSL.arrayBuffer;
|
|
58
58
|
export const asin = TSL.asin;
|
|
59
|
+
export const asinh = TSL.asinh;
|
|
59
60
|
export const assign = TSL.assign;
|
|
60
61
|
export const atan = TSL.atan;
|
|
61
|
-
export const
|
|
62
|
+
export const atanh = TSL.atanh;
|
|
62
63
|
export const atomicAdd = TSL.atomicAdd;
|
|
63
64
|
export const atomicAnd = TSL.atomicAnd;
|
|
64
65
|
export const atomicFunc = TSL.atomicFunc;
|
|
@@ -98,8 +99,9 @@ export const bool = TSL.bool;
|
|
|
98
99
|
export const buffer = TSL.buffer;
|
|
99
100
|
export const bufferAttribute = TSL.bufferAttribute;
|
|
100
101
|
export const bumpMap = TSL.bumpMap;
|
|
101
|
-
export const burn = TSL.burn;
|
|
102
102
|
export const builtin = TSL.builtin;
|
|
103
|
+
export const builtinAOContext = TSL.builtinAOContext;
|
|
104
|
+
export const builtinShadowContext = TSL.builtinShadowContext;
|
|
103
105
|
export const bvec2 = TSL.bvec2;
|
|
104
106
|
export const bvec3 = TSL.bvec3;
|
|
105
107
|
export const bvec4 = TSL.bvec4;
|
|
@@ -125,6 +127,7 @@ export const clamp = TSL.clamp;
|
|
|
125
127
|
export const clearcoat = TSL.clearcoat;
|
|
126
128
|
export const clearcoatNormalView = TSL.clearcoatNormalView;
|
|
127
129
|
export const clearcoatRoughness = TSL.clearcoatRoughness;
|
|
130
|
+
export const clipSpace = TSL.clipSpace;
|
|
128
131
|
export const code = TSL.code;
|
|
129
132
|
export const color = TSL.color;
|
|
130
133
|
export const colorSpaceToWorking = TSL.colorSpaceToWorking;
|
|
@@ -136,11 +139,14 @@ export const context = TSL.context;
|
|
|
136
139
|
export const convert = TSL.convert;
|
|
137
140
|
export const convertColorSpace = TSL.convertColorSpace;
|
|
138
141
|
export const convertToTexture = TSL.convertToTexture;
|
|
142
|
+
export const countLeadingZeros = TSL.countLeadingZeros;
|
|
143
|
+
export const countOneBits = TSL.countOneBits;
|
|
144
|
+
export const countTrailingZeros = TSL.countTrailingZeros;
|
|
139
145
|
export const cos = TSL.cos;
|
|
146
|
+
export const cosh = TSL.cosh;
|
|
140
147
|
export const cross = TSL.cross;
|
|
141
148
|
export const cubeTexture = TSL.cubeTexture;
|
|
142
149
|
export const cubeTextureBase = TSL.cubeTextureBase;
|
|
143
|
-
export const cubeToUV = TSL.cubeToUV;
|
|
144
150
|
export const dFdx = TSL.dFdx;
|
|
145
151
|
export const dFdy = TSL.dFdy;
|
|
146
152
|
export const dashSize = TSL.dashSize;
|
|
@@ -165,17 +171,16 @@ export const directionToFaceDirection = TSL.directionToFaceDirection;
|
|
|
165
171
|
export const dispersion = TSL.dispersion;
|
|
166
172
|
export const distance = TSL.distance;
|
|
167
173
|
export const div = TSL.div;
|
|
168
|
-
export const dodge = TSL.dodge;
|
|
169
174
|
export const dot = TSL.dot;
|
|
170
175
|
export const drawIndex = TSL.drawIndex;
|
|
171
176
|
export const dynamicBufferAttribute = TSL.dynamicBufferAttribute;
|
|
172
177
|
export const element = TSL.element;
|
|
173
178
|
export const emissive = TSL.emissive;
|
|
174
179
|
export const equal = TSL.equal;
|
|
175
|
-
export const equals = TSL.equals;
|
|
176
180
|
export const equirectUV = TSL.equirectUV;
|
|
177
181
|
export const exp = TSL.exp;
|
|
178
182
|
export const exp2 = TSL.exp2;
|
|
183
|
+
export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
|
|
179
184
|
export const expression = TSL.expression;
|
|
180
185
|
export const faceDirection = TSL.faceDirection;
|
|
181
186
|
export const faceForward = TSL.faceForward;
|
|
@@ -199,6 +204,7 @@ export const getDistanceAttenuation = TSL.getDistanceAttenuation;
|
|
|
199
204
|
export const getGeometryRoughness = TSL.getGeometryRoughness;
|
|
200
205
|
export const getNormalFromDepth = TSL.getNormalFromDepth;
|
|
201
206
|
export const interleavedGradientNoise = TSL.interleavedGradientNoise;
|
|
207
|
+
export const vogelDiskSample = TSL.vogelDiskSample;
|
|
202
208
|
export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
|
|
203
209
|
export const getRoughness = TSL.getRoughness;
|
|
204
210
|
export const getScreenPosition = TSL.getScreenPosition;
|
|
@@ -412,8 +418,10 @@ export const oscSquare = TSL.oscSquare;
|
|
|
412
418
|
export const oscTriangle = TSL.oscTriangle;
|
|
413
419
|
export const output = TSL.output;
|
|
414
420
|
export const outputStruct = TSL.outputStruct;
|
|
415
|
-
export const overlay = TSL.overlay;
|
|
416
421
|
export const overloadingFn = TSL.overloadingFn;
|
|
422
|
+
export const packHalf2x16 = TSL.packHalf2x16;
|
|
423
|
+
export const packSnorm2x16 = TSL.packSnorm2x16;
|
|
424
|
+
export const packUnorm2x16 = TSL.packUnorm2x16;
|
|
417
425
|
export const parabola = TSL.parabola;
|
|
418
426
|
export const parallaxDirection = TSL.parallaxDirection;
|
|
419
427
|
export const parallaxUV = TSL.parallaxUV;
|
|
@@ -461,6 +469,7 @@ export const remapClamp = TSL.remapClamp;
|
|
|
461
469
|
export const renderGroup = TSL.renderGroup;
|
|
462
470
|
export const renderOutput = TSL.renderOutput;
|
|
463
471
|
export const rendererReference = TSL.rendererReference;
|
|
472
|
+
export const replaceDefaultUV = TSL.replaceDefaultUV;
|
|
464
473
|
export const rotate = TSL.rotate;
|
|
465
474
|
export const rotateUV = TSL.rotateUV;
|
|
466
475
|
export const roughness = TSL.roughness;
|
|
@@ -478,8 +487,6 @@ export const screenCoordinate = TSL.screenCoordinate;
|
|
|
478
487
|
export const screenDPR = TSL.screenDPR;
|
|
479
488
|
export const screenSize = TSL.screenSize;
|
|
480
489
|
export const screenUV = TSL.screenUV;
|
|
481
|
-
export const scriptable = TSL.scriptable;
|
|
482
|
-
export const scriptableValue = TSL.scriptableValue;
|
|
483
490
|
export const select = TSL.select;
|
|
484
491
|
export const setCurrentStack = TSL.setCurrentStack;
|
|
485
492
|
export const setName = TSL.setName;
|
|
@@ -495,6 +502,7 @@ export const shiftRight = TSL.shiftRight;
|
|
|
495
502
|
export const shininess = TSL.shininess;
|
|
496
503
|
export const sign = TSL.sign;
|
|
497
504
|
export const sin = TSL.sin;
|
|
505
|
+
export const sinh = TSL.sinh;
|
|
498
506
|
export const sinc = TSL.sinc;
|
|
499
507
|
export const skinning = TSL.skinning;
|
|
500
508
|
export const smoothstep = TSL.smoothstep;
|
|
@@ -510,7 +518,6 @@ export const step = TSL.step;
|
|
|
510
518
|
export const stepElement = TSL.stepElement;
|
|
511
519
|
export const storage = TSL.storage;
|
|
512
520
|
export const storageBarrier = TSL.storageBarrier;
|
|
513
|
-
export const storageObject = TSL.storageObject;
|
|
514
521
|
export const storageTexture = TSL.storageTexture;
|
|
515
522
|
export const string = TSL.string;
|
|
516
523
|
export const struct = TSL.struct;
|
|
@@ -540,6 +547,7 @@ export const subgroupShuffleXor = TSL.subgroupShuffleXor;
|
|
|
540
547
|
export const subgroupSize = TSL.subgroupSize;
|
|
541
548
|
export const subgroupXor = TSL.subgroupXor;
|
|
542
549
|
export const tan = TSL.tan;
|
|
550
|
+
export const tanh = TSL.tanh;
|
|
543
551
|
export const tangentGeometry = TSL.tangentGeometry;
|
|
544
552
|
export const tangentLocal = TSL.tangentLocal;
|
|
545
553
|
export const tangentView = TSL.tangentView;
|
|
@@ -579,6 +587,9 @@ export const uniformCubeTexture = TSL.uniformCubeTexture;
|
|
|
579
587
|
export const uniformGroup = TSL.uniformGroup;
|
|
580
588
|
export const uniformFlow = TSL.uniformFlow;
|
|
581
589
|
export const uniformTexture = TSL.uniformTexture;
|
|
590
|
+
export const unpackHalf2x16 = TSL.unpackHalf2x16;
|
|
591
|
+
export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
|
|
592
|
+
export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
|
|
582
593
|
export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
|
|
583
594
|
export const userData = TSL.userData;
|
|
584
595
|
export const uv = TSL.uv;
|
|
@@ -599,11 +610,14 @@ export const vibrance = TSL.vibrance;
|
|
|
599
610
|
export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
|
|
600
611
|
export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
|
|
601
612
|
export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
|
|
613
|
+
export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
|
|
614
|
+
export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
|
|
602
615
|
export const viewport = TSL.viewport;
|
|
603
616
|
export const viewportCoordinate = TSL.viewportCoordinate;
|
|
604
617
|
export const viewportDepthTexture = TSL.viewportDepthTexture;
|
|
605
618
|
export const viewportLinearDepth = TSL.viewportLinearDepth;
|
|
606
619
|
export const viewportMipTexture = TSL.viewportMipTexture;
|
|
620
|
+
export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
|
|
607
621
|
export const viewportResolution = TSL.viewportResolution;
|
|
608
622
|
export const viewportSafeUV = TSL.viewportSafeUV;
|
|
609
623
|
export const viewportSharedTexture = TSL.viewportSharedTexture;
|
|
@@ -2,11 +2,15 @@ export * from './Three.Core.js';
|
|
|
2
2
|
|
|
3
3
|
export * from './materials/nodes/NodeMaterials.js';
|
|
4
4
|
export { default as WebGPURenderer } from './renderers/webgpu/WebGPURenderer.Nodes.js';
|
|
5
|
+
export { default as WebGPUBackend } from './renderers/webgpu/WebGPUBackend.js';
|
|
6
|
+
export { default as WebGLBackend } from './renderers/webgl-fallback/WebGLBackend.js';
|
|
5
7
|
export { default as Lighting } from './renderers/common/Lighting.js';
|
|
6
8
|
export { default as BundleGroup } from './renderers/common/BundleGroup.js';
|
|
7
9
|
export { default as QuadMesh } from './renderers/common/QuadMesh.js';
|
|
8
10
|
export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
|
|
11
|
+
export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
|
|
9
12
|
export { default as PostProcessing } from './renderers/common/PostProcessing.js';
|
|
13
|
+
export { default as ReadbackBuffer } from './renderers/common/ReadbackBuffer.js';
|
|
10
14
|
import * as RendererUtils from './renderers/common/RendererUtils.js';
|
|
11
15
|
export { RendererUtils };
|
|
12
16
|
export { default as StorageTexture } from './renderers/common/StorageTexture.js';
|
|
@@ -20,6 +24,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
|
|
|
20
24
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
21
25
|
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
22
26
|
export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
|
|
27
|
+
export { default as BlendMode } from './renderers/common/BlendMode.js';
|
|
23
28
|
export { ClippingGroup } from './objects/ClippingGroup.js';
|
|
24
29
|
export * from './nodes/Nodes.js';
|
|
25
30
|
import * as TSL from './nodes/TSL.js';
|
package/src/Three.WebGPU.js
CHANGED
|
@@ -2,13 +2,19 @@ export * from './Three.Core.js';
|
|
|
2
2
|
|
|
3
3
|
export * from './materials/nodes/NodeMaterials.js';
|
|
4
4
|
export { default as WebGPURenderer } from './renderers/webgpu/WebGPURenderer.js';
|
|
5
|
+
export { default as WebGPUBackend } from './renderers/webgpu/WebGPUBackend.js';
|
|
6
|
+
export { default as WebGLBackend } from './renderers/webgl-fallback/WebGLBackend.js';
|
|
7
|
+
export { default as WebGLCapabilities } from './renderers/webgl-fallback/utils/WebGLCapabilities.js';
|
|
5
8
|
export { default as Lighting } from './renderers/common/Lighting.js';
|
|
6
9
|
export { default as BundleGroup } from './renderers/common/BundleGroup.js';
|
|
7
10
|
export { default as QuadMesh } from './renderers/common/QuadMesh.js';
|
|
8
11
|
export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
|
|
12
|
+
export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
|
|
9
13
|
export { default as PostProcessing } from './renderers/common/PostProcessing.js';
|
|
14
|
+
export { default as ReadbackBuffer } from './renderers/common/ReadbackBuffer.js';
|
|
10
15
|
import * as RendererUtils from './renderers/common/RendererUtils.js';
|
|
11
16
|
export { RendererUtils };
|
|
17
|
+
export { default as CubeRenderTarget } from './renderers/common/CubeRenderTarget.js';
|
|
12
18
|
export { default as StorageTexture } from './renderers/common/StorageTexture.js';
|
|
13
19
|
export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
|
|
14
20
|
export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
|
|
@@ -22,6 +28,9 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
|
|
|
22
28
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
23
29
|
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
24
30
|
export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
|
|
31
|
+
export { default as BlendMode } from './renderers/common/BlendMode.js';
|
|
32
|
+
export { default as GLSLNodeBuilder } from './renderers/webgl-fallback/nodes/GLSLNodeBuilder.js';
|
|
33
|
+
export { default as BasicNodeLibrary } from './renderers/webgpu/nodes/BasicNodeLibrary.js';
|
|
25
34
|
export { ClippingGroup } from './objects/ClippingGroup.js';
|
|
26
35
|
export * from './nodes/Nodes.js';
|
|
27
36
|
import * as TSL from './nodes/TSL.js';
|
package/src/Three.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './Three.Core.js';
|
|
2
2
|
|
|
3
3
|
export { WebGLRenderer } from './renderers/WebGLRenderer.js';
|
|
4
|
+
export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
|
|
4
5
|
export { ShaderLib } from './renderers/shaders/ShaderLib.js';
|
|
5
6
|
export { UniformsLib } from './renderers/shaders/UniformsLib.js';
|
|
6
7
|
export { UniformsUtils } from './renderers/shaders/UniformsUtils.js';
|
|
@@ -41,6 +41,15 @@ class AnimationAction {
|
|
|
41
41
|
|
|
42
42
|
const interpolant = tracks[ i ].createInterpolant( null );
|
|
43
43
|
interpolants[ i ] = interpolant;
|
|
44
|
+
|
|
45
|
+
// preserve interpolant settings (like tangent data from BezierInterpolant)
|
|
46
|
+
|
|
47
|
+
if ( interpolant.settings ) {
|
|
48
|
+
|
|
49
|
+
Object.assign( interpolantSettings, interpolant.settings );
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
|
|
44
53
|
interpolant.settings = interpolantSettings;
|
|
45
54
|
|
|
46
55
|
}
|
|
@@ -548,7 +557,7 @@ class AnimationAction {
|
|
|
548
557
|
|
|
549
558
|
}
|
|
550
559
|
|
|
551
|
-
//
|
|
560
|
+
// Internal
|
|
552
561
|
|
|
553
562
|
_update( time, deltaTime, timeDirection, accuIndex ) {
|
|
554
563
|
|
|
@@ -847,6 +856,7 @@ class AnimationAction {
|
|
|
847
856
|
|
|
848
857
|
} else {
|
|
849
858
|
|
|
859
|
+
this._loopCount = loopCount;
|
|
850
860
|
this.time = time;
|
|
851
861
|
|
|
852
862
|
}
|
|
@@ -894,7 +904,7 @@ class AnimationAction {
|
|
|
894
904
|
|
|
895
905
|
} else {
|
|
896
906
|
|
|
897
|
-
settings.endingEnd
|
|
907
|
+
settings.endingEnd = WrapAroundEnding;
|
|
898
908
|
|
|
899
909
|
}
|
|
900
910
|
|
|
@@ -301,7 +301,7 @@ class AnimationClip {
|
|
|
301
301
|
* @static
|
|
302
302
|
* @deprecated since r175.
|
|
303
303
|
* @param {Object} animation - A serialized animation clip as JSON.
|
|
304
|
-
* @param {Array<
|
|
304
|
+
* @param {Array<Bone>} bones - An array of bones.
|
|
305
305
|
* @return {?AnimationClip} The new animation clip.
|
|
306
306
|
*/
|
|
307
307
|
static parseAnimation( animation, bones ) {
|
|
@@ -48,6 +48,12 @@ class AnimationMixer extends EventDispatcher {
|
|
|
48
48
|
*/
|
|
49
49
|
this.timeScale = 1.0;
|
|
50
50
|
|
|
51
|
+
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
52
|
+
|
|
53
|
+
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
_bindAction( action, prototypeAction ) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Quaternion } from '../math/Quaternion.js';
|
|
2
2
|
import { AdditiveAnimationBlendMode } from '../constants.js';
|
|
3
|
+
import { isTypedArray } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Converts an array to a specific type.
|
|
@@ -22,18 +23,6 @@ function convertArray( array, type ) {
|
|
|
22
23
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
/**
|
|
26
|
-
* Returns `true` if the given object is a typed array.
|
|
27
|
-
*
|
|
28
|
-
* @param {any} object - The object to check.
|
|
29
|
-
* @return {boolean} Whether the given object is a typed array.
|
|
30
|
-
*/
|
|
31
|
-
function isTypedArray( object ) {
|
|
32
|
-
|
|
33
|
-
return ArrayBuffer.isView( object ) && ! ( object instanceof DataView );
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
26
|
/**
|
|
38
27
|
* Returns an array by which times and values can be sorted.
|
|
39
28
|
*
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InterpolateLinear,
|
|
3
3
|
InterpolateSmooth,
|
|
4
|
-
InterpolateDiscrete
|
|
4
|
+
InterpolateDiscrete,
|
|
5
|
+
InterpolateBezier
|
|
5
6
|
} from '../constants.js';
|
|
6
7
|
import { CubicInterpolant } from '../math/interpolants/CubicInterpolant.js';
|
|
7
8
|
import { LinearInterpolant } from '../math/interpolants/LinearInterpolant.js';
|
|
8
9
|
import { DiscreteInterpolant } from '../math/interpolants/DiscreteInterpolant.js';
|
|
10
|
+
import { BezierInterpolant } from '../math/interpolants/BezierInterpolant.js';
|
|
9
11
|
import * as AnimationUtils from './AnimationUtils.js';
|
|
10
12
|
import { warn, error } from '../utils.js';
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
|
-
* Represents
|
|
15
|
+
* Represents a timed sequence of keyframes, which are composed of lists of
|
|
14
16
|
* times and related values, and which are used to animate a specific property
|
|
15
17
|
* of an object.
|
|
16
18
|
*/
|
|
@@ -22,7 +24,7 @@ class KeyframeTrack {
|
|
|
22
24
|
* @param {string} name - The keyframe track's name.
|
|
23
25
|
* @param {Array<number>} times - A list of keyframe times.
|
|
24
26
|
* @param {Array<number|string|boolean>} values - A list of keyframe values.
|
|
25
|
-
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
27
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} [interpolation] - The interpolation type.
|
|
26
28
|
*/
|
|
27
29
|
constructor( name, times, values, interpolation ) {
|
|
28
30
|
|
|
@@ -140,10 +142,37 @@ class KeyframeTrack {
|
|
|
140
142
|
|
|
141
143
|
}
|
|
142
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Factory method for creating a new Bezier interpolant.
|
|
147
|
+
*
|
|
148
|
+
* The Bezier interpolant requires tangent data to be set via the `settings` property
|
|
149
|
+
* on the track before creating the interpolant. The settings should contain:
|
|
150
|
+
* - `inTangents`: Float32Array with [time, value] pairs per keyframe per component
|
|
151
|
+
* - `outTangents`: Float32Array with [time, value] pairs per keyframe per component
|
|
152
|
+
*
|
|
153
|
+
* @static
|
|
154
|
+
* @param {TypedArray} [result] - The result buffer.
|
|
155
|
+
* @return {BezierInterpolant} The new interpolant.
|
|
156
|
+
*/
|
|
157
|
+
InterpolantFactoryMethodBezier( result ) {
|
|
158
|
+
|
|
159
|
+
const interpolant = new BezierInterpolant( this.times, this.values, this.getValueSize(), result );
|
|
160
|
+
|
|
161
|
+
// Pass tangent data from track settings to interpolant
|
|
162
|
+
if ( this.settings ) {
|
|
163
|
+
|
|
164
|
+
interpolant.settings = this.settings;
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return interpolant;
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
143
172
|
/**
|
|
144
173
|
* Defines the interpolation factor method for this keyframe track.
|
|
145
174
|
*
|
|
146
|
-
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} interpolation - The interpolation type.
|
|
175
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} interpolation - The interpolation type.
|
|
147
176
|
* @return {KeyframeTrack} A reference to this keyframe track.
|
|
148
177
|
*/
|
|
149
178
|
setInterpolation( interpolation ) {
|
|
@@ -170,6 +199,12 @@ class KeyframeTrack {
|
|
|
170
199
|
|
|
171
200
|
break;
|
|
172
201
|
|
|
202
|
+
case InterpolateBezier:
|
|
203
|
+
|
|
204
|
+
factoryMethod = this.InterpolantFactoryMethodBezier;
|
|
205
|
+
|
|
206
|
+
break;
|
|
207
|
+
|
|
173
208
|
}
|
|
174
209
|
|
|
175
210
|
if ( factoryMethod === undefined ) {
|
|
@@ -206,7 +241,7 @@ class KeyframeTrack {
|
|
|
206
241
|
/**
|
|
207
242
|
* Returns the current interpolation type.
|
|
208
243
|
*
|
|
209
|
-
* @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} The interpolation type.
|
|
244
|
+
* @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} The interpolation type.
|
|
210
245
|
*/
|
|
211
246
|
getInterpolation() {
|
|
212
247
|
|
|
@@ -224,6 +259,10 @@ class KeyframeTrack {
|
|
|
224
259
|
|
|
225
260
|
return InterpolateSmooth;
|
|
226
261
|
|
|
262
|
+
case this.InterpolantFactoryMethodBezier:
|
|
263
|
+
|
|
264
|
+
return InterpolateBezier;
|
|
265
|
+
|
|
227
266
|
}
|
|
228
267
|
|
|
229
268
|
}
|
|
@@ -425,7 +464,7 @@ class KeyframeTrack {
|
|
|
425
464
|
* Optimizes this keyframe track by removing equivalent sequential keys (which are
|
|
426
465
|
* common in morph target sequences).
|
|
427
466
|
*
|
|
428
|
-
* @return {
|
|
467
|
+
* @return {KeyframeTrack} A reference to this keyframe track.
|
|
429
468
|
*/
|
|
430
469
|
optimize() {
|
|
431
470
|
|
|
@@ -565,7 +604,7 @@ class KeyframeTrack {
|
|
|
565
604
|
/**
|
|
566
605
|
* The value type name.
|
|
567
606
|
*
|
|
568
|
-
* @type {
|
|
607
|
+
* @type {string}
|
|
569
608
|
* @default ''
|
|
570
609
|
*/
|
|
571
610
|
KeyframeTrack.prototype.ValueTypeName = '';
|
|
@@ -589,7 +628,7 @@ KeyframeTrack.prototype.ValueBufferType = Float32Array;
|
|
|
589
628
|
/**
|
|
590
629
|
* The default interpolation type of this keyframe track.
|
|
591
630
|
*
|
|
592
|
-
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}
|
|
631
|
+
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)}
|
|
593
632
|
* @default InterpolateLinear
|
|
594
633
|
*/
|
|
595
634
|
KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
|