@plastic-software/three 0.179.0 → 0.181.1
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/build/three.cjs +1108 -591
- package/build/three.core.js +616 -345
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +488 -250
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +37 -6
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6576 -2152
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6575 -2151
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +8 -8
- package/examples/jsm/controls/DragControls.js +7 -57
- package/examples/jsm/controls/FirstPersonControls.js +3 -3
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +1 -1
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +33 -25
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +9 -2
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +3 -3
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +14 -8
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +136 -49
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +1 -1
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
- package/examples/jsm/transpiler/TSLEncoder.js +9 -10
- package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
- package/examples/jsm/tsl/display/BloomNode.js +7 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/GTAONode.js +53 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +49 -35
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +182 -65
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +124 -7
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +4 -2
- package/src/Three.TSL.js +36 -5
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +20 -4
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +7 -6
- package/src/animation/PropertyBinding.js +12 -11
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +11 -3
- package/src/core/BufferGeometry.js +10 -10
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +3 -2
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +268 -55
- package/src/extras/TextureUtils.js +2 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +1 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +3 -2
- package/src/loaders/ImageBitmapLoader.js +5 -4
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +3 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +16 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/NodeMaterial.js +62 -22
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +3 -2
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +7 -7
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +68 -66
- package/src/math/Spherical.js +1 -1
- package/src/nodes/Nodes.js +4 -1
- package/src/nodes/TSL.js +4 -1
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +133 -7
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +5 -4
- package/src/nodes/accessors/InstanceNode.js +25 -5
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +3 -2
- package/src/nodes/accessors/SceneNode.js +2 -1
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +14 -1
- package/src/nodes/accessors/TextureNode.js +130 -44
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AssignNode.js +4 -3
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +29 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
- package/src/nodes/core/Node.js +152 -31
- package/src/nodes/core/NodeBuilder.js +183 -35
- package/src/nodes/core/NodeFrame.js +21 -21
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +17 -91
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +43 -16
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformNode.js +18 -10
- package/src/nodes/core/VarNode.js +70 -33
- package/src/nodes/core/VaryingNode.js +3 -2
- package/src/nodes/display/BlendModes.js +5 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +52 -11
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -14
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +42 -12
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +3 -2
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +17 -5
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +3 -4
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ShadowFilterNode.js +2 -0
- package/src/nodes/lighting/ShadowNode.js +75 -8
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +24 -7
- package/src/nodes/math/MathNode.js +25 -19
- package/src/nodes/math/OperatorNode.js +7 -5
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +5 -2
- package/src/nodes/tsl/TSLCore.js +460 -159
- package/src/nodes/utils/DebugNode.js +2 -1
- package/src/nodes/utils/EventNode.js +36 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +6 -3
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +13 -3
- package/src/nodes/utils/ReflectorNode.js +58 -7
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/objects/BatchedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +48 -41
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +108 -27
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +58 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/Pipelines.js +1 -1
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +16 -2
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +473 -245
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +50 -12
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +121 -45
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +42 -22
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLCapabilities.js +2 -1
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +15 -14
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +19 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +199 -167
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +181 -25
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +7 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +169 -19
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +153 -123
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +142 -50
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +7 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +53 -34
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +260 -99
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +42 -26
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/Source.js +3 -2
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
Vector3,
|
|
6
6
|
Vector4
|
|
7
7
|
} from 'three';
|
|
8
|
-
import { LineSegmentsGeometry } from '
|
|
9
|
-
import { LineMaterial } from '
|
|
8
|
+
import { LineSegmentsGeometry } from './LineSegmentsGeometry.js';
|
|
9
|
+
import { LineMaterial } from './LineMaterial.js';
|
|
10
10
|
|
|
11
11
|
const _start = new Vector3();
|
|
12
12
|
const _end = new Vector3();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WireframeGeometry
|
|
3
3
|
} from 'three';
|
|
4
|
-
import { LineSegmentsGeometry } from '
|
|
4
|
+
import { LineSegmentsGeometry } from './LineSegmentsGeometry.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* A special type of line segments geometry intended for wireframe rendering.
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
Line2NodeMaterial,
|
|
13
13
|
Vector2
|
|
14
14
|
} from 'three/webgpu';
|
|
15
|
-
import { LineSegmentsGeometry } from '
|
|
15
|
+
import { LineSegmentsGeometry } from '../LineSegmentsGeometry.js';
|
|
16
16
|
|
|
17
17
|
const _start = new Vector3();
|
|
18
18
|
const _end = new Vector3();
|
|
@@ -24,7 +24,7 @@ import * as fflate from '../libs/fflate.module.js';
|
|
|
24
24
|
const COLOR_SPACE_3MF = SRGBColorSpace;
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
* A loader for the [3D Manufacturing Format (3MF)]
|
|
27
|
+
* A loader for the [3D Manufacturing Format (3MF)](https://3mf.io/specification/) format.
|
|
28
28
|
*
|
|
29
29
|
* The following features from the core specification are supported:
|
|
30
30
|
*
|
|
@@ -45,7 +45,7 @@ import { TGALoader } from '../loaders/TGALoader.js';
|
|
|
45
45
|
* A loader for the Collada format.
|
|
46
46
|
*
|
|
47
47
|
* The Collada format is very complex so this loader only supports a subset of what
|
|
48
|
-
* is defined in the [official specification]
|
|
48
|
+
* is defined in the [official specification](https://www.khronos.org/files/collada_spec_1_5.pdf).
|
|
49
49
|
*
|
|
50
50
|
* Assets with a Z-UP coordinate system are transformed it into Y-UP by a simple rotation.
|
|
51
51
|
* The vertex data are not converted.
|
|
@@ -112,8 +112,8 @@ class ColladaLoader extends Loader {
|
|
|
112
112
|
* an array of animation clips and kinematics.
|
|
113
113
|
*
|
|
114
114
|
* @param {string} text - The raw Collada data as a string.
|
|
115
|
-
* @param {string} path - The asset path.
|
|
116
|
-
* @return {{scene:Group,animations:Array<AnimationClip>,kinematics:Object}} An object representing the parsed asset.
|
|
115
|
+
* @param {string} [path] - The asset path.
|
|
116
|
+
* @return {?{scene:Group,animations:Array<AnimationClip>,kinematics:Object}} An object representing the parsed asset.
|
|
117
117
|
*/
|
|
118
118
|
parse( text, path ) {
|
|
119
119
|
|
|
@@ -44,7 +44,7 @@ class DDSLoader extends CompressedTextureLoader {
|
|
|
44
44
|
*/
|
|
45
45
|
parse( buffer, loadMipmaps ) {
|
|
46
46
|
|
|
47
|
-
const dds = { mipmaps: [], width: 0, height: 0, format: null, mipmapCount: 1 };
|
|
47
|
+
const dds = { mipmaps: [], width: 0, height: 0, format: null, mipmapCount: 1, isCubemap: false };
|
|
48
48
|
|
|
49
49
|
// Adapted from @toji's DDS utils
|
|
50
50
|
// https://github.com/toji/webgl-texture-utils/blob/master/texture-util/dds.js
|
|
@@ -6,7 +6,9 @@ import {
|
|
|
6
6
|
FileLoader,
|
|
7
7
|
Loader,
|
|
8
8
|
LinearSRGBColorSpace,
|
|
9
|
-
SRGBColorSpace
|
|
9
|
+
SRGBColorSpace,
|
|
10
|
+
InterleavedBuffer,
|
|
11
|
+
InterleavedBufferAttribute
|
|
10
12
|
} from 'three';
|
|
11
13
|
|
|
12
14
|
const _taskCache = new WeakMap();
|
|
@@ -14,14 +16,14 @@ const _taskCache = new WeakMap();
|
|
|
14
16
|
/**
|
|
15
17
|
* A loader for the Draco format.
|
|
16
18
|
*
|
|
17
|
-
* [Draco]
|
|
19
|
+
* [Draco](https://google.github.io/draco/) is an open source library for compressing
|
|
18
20
|
* and decompressing 3D meshes and point clouds. Compressed geometry can be significantly smaller,
|
|
19
21
|
* at the cost of additional decoding time on the client device.
|
|
20
22
|
*
|
|
21
23
|
* Standalone Draco files have a `.drc` extension, and contain vertex positions, normals, colors,
|
|
22
24
|
* and other attributes. Draco files do not contain materials, textures, animation, or node hierarchies –
|
|
23
25
|
* to use these features, embed Draco geometry inside of a glTF file. A normal glTF file can be converted
|
|
24
|
-
* to a Draco-compressed glTF file using [glTF-Pipeline]
|
|
26
|
+
* to a Draco-compressed glTF file using [glTF-Pipeline](https://github.com/CesiumGS/gltf-pipeline).
|
|
25
27
|
* When using Draco with glTF, an instance of `DRACOLoader` will be used internally by {@link GLTFLoader}.
|
|
26
28
|
*
|
|
27
29
|
* It is recommended to create one DRACOLoader instance and reuse it to avoid loading and creating
|
|
@@ -273,16 +275,25 @@ class DRACOLoader extends Loader {
|
|
|
273
275
|
|
|
274
276
|
for ( let i = 0; i < geometryData.attributes.length; i ++ ) {
|
|
275
277
|
|
|
276
|
-
const
|
|
277
|
-
const name = result.name;
|
|
278
|
-
const array = result.array;
|
|
279
|
-
const itemSize = result.itemSize;
|
|
278
|
+
const { name, array, itemSize, stride, vertexColorSpace } = geometryData.attributes[ i ];
|
|
280
279
|
|
|
281
|
-
|
|
280
|
+
let attribute;
|
|
281
|
+
|
|
282
|
+
if ( itemSize === stride ) {
|
|
283
|
+
|
|
284
|
+
attribute = new BufferAttribute( array, itemSize );
|
|
285
|
+
|
|
286
|
+
} else {
|
|
287
|
+
|
|
288
|
+
const buffer = new InterleavedBuffer( array, stride );
|
|
289
|
+
|
|
290
|
+
attribute = new InterleavedBufferAttribute( buffer, itemSize, 0 );
|
|
291
|
+
|
|
292
|
+
}
|
|
282
293
|
|
|
283
294
|
if ( name === 'color' ) {
|
|
284
295
|
|
|
285
|
-
this._assignVertexColorSpace( attribute,
|
|
296
|
+
this._assignVertexColorSpace( attribute, vertexColorSpace );
|
|
286
297
|
|
|
287
298
|
attribute.normalized = ( array instanceof Float32Array ) === false;
|
|
288
299
|
|
|
@@ -646,30 +657,70 @@ function DRACOWorker() {
|
|
|
646
657
|
|
|
647
658
|
}
|
|
648
659
|
|
|
649
|
-
function decodeAttribute( draco, decoder, dracoGeometry, attributeName,
|
|
660
|
+
function decodeAttribute( draco, decoder, dracoGeometry, attributeName, TypedArray, attribute ) {
|
|
650
661
|
|
|
651
|
-
const
|
|
652
|
-
const
|
|
653
|
-
const
|
|
654
|
-
|
|
655
|
-
|
|
662
|
+
const count = dracoGeometry.num_points();
|
|
663
|
+
const itemSize = attribute.num_components();
|
|
664
|
+
const dracoDataType = getDracoDataType( draco, TypedArray );
|
|
665
|
+
|
|
666
|
+
// Reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#data-alignment
|
|
667
|
+
const srcByteStride = itemSize * TypedArray.BYTES_PER_ELEMENT;
|
|
668
|
+
const dstByteStride = Math.ceil( srcByteStride / 4 ) * 4;
|
|
669
|
+
|
|
670
|
+
const dstStride = dstByteStride / TypedArray.BYTES_PER_ELEMENT
|
|
671
|
+
|
|
672
|
+
const srcByteLength = count * srcByteStride;
|
|
673
|
+
const dstByteLength = count * dstByteStride;
|
|
674
|
+
|
|
675
|
+
const ptr = draco._malloc( srcByteLength );
|
|
676
|
+
decoder.GetAttributeDataArrayForAllPoints( dracoGeometry, attribute, dracoDataType, srcByteLength, ptr );
|
|
677
|
+
|
|
678
|
+
const srcArray = new TypedArray( draco.HEAPF32.buffer, ptr, srcByteLength / TypedArray.BYTES_PER_ELEMENT );
|
|
679
|
+
let dstArray;
|
|
680
|
+
|
|
681
|
+
if ( srcByteStride === dstByteStride ) {
|
|
682
|
+
|
|
683
|
+
// THREE.BufferAttribute
|
|
684
|
+
|
|
685
|
+
dstArray = srcArray.slice();
|
|
686
|
+
|
|
687
|
+
} else {
|
|
688
|
+
|
|
689
|
+
// THREE.InterleavedBufferAttribute
|
|
690
|
+
|
|
691
|
+
dstArray = new TypedArray( dstByteLength / TypedArray.BYTES_PER_ELEMENT );
|
|
692
|
+
|
|
693
|
+
let dstOffset = 0
|
|
694
|
+
|
|
695
|
+
for ( let i = 0, il = srcArray.length; i < il; i++ ) {
|
|
696
|
+
|
|
697
|
+
for ( let j = 0; j < itemSize; j++ ) {
|
|
698
|
+
|
|
699
|
+
dstArray[ dstOffset + j ] = srcArray[ i * itemSize + j ]
|
|
700
|
+
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
dstOffset += dstStride;
|
|
704
|
+
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
}
|
|
656
708
|
|
|
657
|
-
const ptr = draco._malloc( byteLength );
|
|
658
|
-
decoder.GetAttributeDataArrayForAllPoints( dracoGeometry, attribute, dataType, byteLength, ptr );
|
|
659
|
-
const array = new attributeType( draco.HEAPF32.buffer, ptr, numValues ).slice();
|
|
660
709
|
draco._free( ptr );
|
|
661
710
|
|
|
662
711
|
return {
|
|
663
712
|
name: attributeName,
|
|
664
|
-
|
|
665
|
-
itemSize:
|
|
713
|
+
count: count,
|
|
714
|
+
itemSize: itemSize,
|
|
715
|
+
array: dstArray,
|
|
716
|
+
stride: dstStride
|
|
666
717
|
};
|
|
667
718
|
|
|
668
719
|
}
|
|
669
720
|
|
|
670
|
-
function getDracoDataType( draco,
|
|
721
|
+
function getDracoDataType( draco, TypedArray ) {
|
|
671
722
|
|
|
672
|
-
switch (
|
|
723
|
+
switch ( TypedArray ) {
|
|
673
724
|
|
|
674
725
|
case Float32Array: return draco.DT_FLOAT32;
|
|
675
726
|
case Int8Array: return draco.DT_INT8;
|
|
@@ -2515,7 +2515,7 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2515
2515
|
EXRDecoder.outputChannels = 1;
|
|
2516
2516
|
EXRDecoder.decodeChannels = { R: 0 };
|
|
2517
2517
|
|
|
2518
|
-
} else
|
|
2518
|
+
} else {
|
|
2519
2519
|
|
|
2520
2520
|
invalidOutput = true;
|
|
2521
2521
|
|
|
@@ -2549,7 +2549,7 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2549
2549
|
EXRDecoder.outputChannels = 1;
|
|
2550
2550
|
EXRDecoder.decodeChannels = { Y: 0 };
|
|
2551
2551
|
|
|
2552
|
-
} else
|
|
2552
|
+
} else {
|
|
2553
2553
|
|
|
2554
2554
|
invalidOutput = true;
|
|
2555
2555
|
|
|
@@ -2563,7 +2563,7 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2563
2563
|
|
|
2564
2564
|
}
|
|
2565
2565
|
|
|
2566
|
-
if (invalidOutput) throw new Error( 'EXRLoader.parse: invalid output format for specified file.' );
|
|
2566
|
+
if ( invalidOutput ) throw new Error( 'EXRLoader.parse: invalid output format for specified file.' );
|
|
2567
2567
|
|
|
2568
2568
|
if ( EXRDecoder.type == 1 ) {
|
|
2569
2569
|
|
|
@@ -2712,12 +2712,12 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2712
2712
|
if ( this.outputFormat == RGBAFormat ) {
|
|
2713
2713
|
|
|
2714
2714
|
for ( let i = 0; i < byteArray.length; i += 4 )
|
|
2715
|
-
byteArray
|
|
2715
|
+
byteArray[ i + 2 ] = ( byteArray[ i + 1 ] = byteArray[ i ] );
|
|
2716
2716
|
|
|
2717
2717
|
} else if ( this.outputFormat == RGFormat ) {
|
|
2718
2718
|
|
|
2719
2719
|
for ( let i = 0; i < byteArray.length; i += 2 )
|
|
2720
|
-
byteArray
|
|
2720
|
+
byteArray[ i + 1 ] = byteArray[ i ];
|
|
2721
2721
|
|
|
2722
2722
|
}
|
|
2723
2723
|
|
|
@@ -61,10 +61,10 @@ let sceneGraph;
|
|
|
61
61
|
* - Morph normals / blend shape normals
|
|
62
62
|
*
|
|
63
63
|
* FBX format references:
|
|
64
|
-
* - [C++ SDK reference]
|
|
64
|
+
* - [C++ SDK reference](https://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html)
|
|
65
65
|
*
|
|
66
66
|
* Binary format specification:
|
|
67
|
-
* - [FBX binary file format specification]
|
|
67
|
+
* - [FBX binary file format specification](https://code.blender.org/2013/08/fbx-binary-file-format-specification/)
|
|
68
68
|
*
|
|
69
69
|
* ```js
|
|
70
70
|
* const loader = new FBXLoader();
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
/**
|
|
8
8
|
* A loader for loading fonts.
|
|
9
9
|
*
|
|
10
|
-
* You can convert fonts online using [facetype.js]
|
|
10
|
+
* You can convert fonts online using [facetype.js](https://gero3.github.io/facetype.js/).
|
|
11
11
|
*
|
|
12
12
|
* ```js
|
|
13
13
|
* const loader = new FontLoader();
|
|
@@ -109,12 +109,13 @@ class Font {
|
|
|
109
109
|
*
|
|
110
110
|
* @param {string} text - The text.
|
|
111
111
|
* @param {number} [size=100] - The text size.
|
|
112
|
+
* @param {string} [direction='ltr'] - Char direction: ltr(left to right), rtl(right to left) & tb(top bottom).
|
|
112
113
|
* @return {Array<Shape>} An array of shapes representing the text.
|
|
113
114
|
*/
|
|
114
|
-
generateShapes( text, size = 100 ) {
|
|
115
|
+
generateShapes( text, size = 100, direction = 'ltr' ) {
|
|
115
116
|
|
|
116
117
|
const shapes = [];
|
|
117
|
-
const paths = createPaths( text, size, this.data );
|
|
118
|
+
const paths = createPaths( text, size, this.data, direction );
|
|
118
119
|
|
|
119
120
|
for ( let p = 0, pl = paths.length; p < pl; p ++ ) {
|
|
120
121
|
|
|
@@ -128,7 +129,7 @@ class Font {
|
|
|
128
129
|
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
function createPaths( text, size, data ) {
|
|
132
|
+
function createPaths( text, size, data, direction ) {
|
|
132
133
|
|
|
133
134
|
const chars = Array.from( text );
|
|
134
135
|
const scale = size / data.resolution;
|
|
@@ -138,6 +139,12 @@ function createPaths( text, size, data ) {
|
|
|
138
139
|
|
|
139
140
|
let offsetX = 0, offsetY = 0;
|
|
140
141
|
|
|
142
|
+
if ( direction == 'rtl' || direction == 'tb' ) {
|
|
143
|
+
|
|
144
|
+
chars.reverse();
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
|
|
141
148
|
for ( let i = 0; i < chars.length; i ++ ) {
|
|
142
149
|
|
|
143
150
|
const char = chars[ i ];
|
|
@@ -150,7 +157,18 @@ function createPaths( text, size, data ) {
|
|
|
150
157
|
} else {
|
|
151
158
|
|
|
152
159
|
const ret = createPath( char, scale, offsetX, offsetY, data );
|
|
153
|
-
|
|
160
|
+
|
|
161
|
+
if ( direction == 'tb' ) {
|
|
162
|
+
|
|
163
|
+
offsetX = 0;
|
|
164
|
+
offsetY += data.ascender * scale;
|
|
165
|
+
|
|
166
|
+
} else {
|
|
167
|
+
|
|
168
|
+
offsetX += ret.offsetX;
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
154
172
|
paths.push( ret.path );
|
|
155
173
|
|
|
156
174
|
}
|
|
@@ -70,7 +70,7 @@ import { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';
|
|
|
70
70
|
/**
|
|
71
71
|
* A loader for the glTF 2.0 format.
|
|
72
72
|
*
|
|
73
|
-
* [glTF]
|
|
73
|
+
* [glTF](https://www.khronos.org/gltf/} (GL Transmission Format) is an [open format specification]{@link https://github.com/KhronosGroup/glTF/tree/main/specification/2.0)
|
|
74
74
|
* for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf) or binary (.glb)
|
|
75
75
|
* format. External files store textures (.jpg, .png) and additional binary data (.bin). A glTF asset may deliver
|
|
76
76
|
* one or more scenes, including meshes, materials, textures, skins, skeletons, morph targets, animations, lights,
|
|
@@ -99,8 +99,10 @@ import { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';
|
|
|
99
99
|
* - EXT_mesh_gpu_instancing
|
|
100
100
|
*
|
|
101
101
|
* The following glTF 2.0 extension is supported by an external user plugin:
|
|
102
|
-
* - [KHR_materials_variants]
|
|
103
|
-
* - [MSFT_texture_dds]
|
|
102
|
+
* - [KHR_materials_variants](https://github.com/takahirox/three-gltf-extensions)
|
|
103
|
+
* - [MSFT_texture_dds](https://github.com/takahirox/three-gltf-extensions)
|
|
104
|
+
* - [KHR_animation_pointer](https://github.com/needle-tools/three-animation-pointer)
|
|
105
|
+
* - [NEEDLE_progressive](https://github.com/needle-tools/gltf-progressive)
|
|
104
106
|
*
|
|
105
107
|
* ```js
|
|
106
108
|
* const loader = new GLTFLoader();
|
|
@@ -2376,7 +2378,7 @@ function addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) {
|
|
|
2376
2378
|
/**
|
|
2377
2379
|
*
|
|
2378
2380
|
* @private
|
|
2379
|
-
* @param {Object3D|Material|BufferGeometry|Object} object
|
|
2381
|
+
* @param {Object3D|Material|BufferGeometry|Object|AnimationClip} object
|
|
2380
2382
|
* @param {GLTF.definition} gltfDef
|
|
2381
2383
|
*/
|
|
2382
2384
|
function assignExtrasToUserData( object, gltfDef ) {
|
|
@@ -2943,7 +2945,7 @@ class GLTFParser {
|
|
|
2943
2945
|
* @private
|
|
2944
2946
|
* @param {string} type
|
|
2945
2947
|
* @param {number} index
|
|
2946
|
-
* @return {Promise<Object3D|Material|
|
|
2948
|
+
* @return {Promise<Object3D|Material|Texture|AnimationClip|ArrayBuffer|Object>}
|
|
2947
2949
|
*/
|
|
2948
2950
|
getDependency( type, index ) {
|
|
2949
2951
|
|
|
@@ -3283,7 +3285,7 @@ class GLTFParser {
|
|
|
3283
3285
|
*
|
|
3284
3286
|
* @private
|
|
3285
3287
|
* @param {number} textureIndex
|
|
3286
|
-
* @return {Promise
|
|
3288
|
+
* @return {Promise<?Texture>}
|
|
3287
3289
|
*/
|
|
3288
3290
|
loadTexture( textureIndex ) {
|
|
3289
3291
|
|
|
@@ -4020,7 +4022,7 @@ class GLTFParser {
|
|
|
4020
4022
|
*
|
|
4021
4023
|
* @private
|
|
4022
4024
|
* @param {number} cameraIndex
|
|
4023
|
-
* @return {Promise<
|
|
4025
|
+
* @return {Promise<Camera>|undefined}
|
|
4024
4026
|
*/
|
|
4025
4027
|
loadCamera( cameraIndex ) {
|
|
4026
4028
|
|
|
@@ -4213,7 +4215,11 @@ class GLTFParser {
|
|
|
4213
4215
|
|
|
4214
4216
|
}
|
|
4215
4217
|
|
|
4216
|
-
|
|
4218
|
+
const animation = new AnimationClip( animationName, undefined, tracks );
|
|
4219
|
+
|
|
4220
|
+
assignExtrasToUserData( animation, animationDef );
|
|
4221
|
+
|
|
4222
|
+
return animation;
|
|
4217
4223
|
|
|
4218
4224
|
} );
|
|
4219
4225
|
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
LinearSRGBColorSpace,
|
|
9
9
|
Loader
|
|
10
10
|
} from 'three';
|
|
11
|
-
import {
|
|
11
|
+
import { HDRLoader } from '../loaders/HDRLoader.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* A loader for loading HDR cube textures.
|
|
@@ -40,9 +40,9 @@ class HDRCubeTextureLoader extends Loader {
|
|
|
40
40
|
* The internal HDR loader that loads the
|
|
41
41
|
* individual textures for each cube face.
|
|
42
42
|
*
|
|
43
|
-
|
|
43
|
+
* @type {HDRLoader}
|
|
44
44
|
*/
|
|
45
|
-
this.hdrLoader = new
|
|
45
|
+
this.hdrLoader = new HDRLoader();
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* The texture type.
|
|
@@ -147,8 +147,8 @@ class HDRCubeTextureLoader extends Loader {
|
|
|
147
147
|
/**
|
|
148
148
|
* Sets the texture type.
|
|
149
149
|
*
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
* @param {(HalfFloatType|FloatType)} value - The texture type to set.
|
|
151
|
+
* @return {HDRCubeTextureLoader} A reference to this loader.
|
|
152
152
|
*/
|
|
153
153
|
setDataType( value ) {
|
|
154
154
|
|