@plastic-software/three 0.174.0 → 0.175.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 +10744 -1476
- package/build/three.core.js +9633 -1096
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +918 -189
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +4 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +2658 -1697
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +2654 -1709
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +93 -39
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +171 -48
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +71 -29
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +41 -3
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +35 -0
- package/examples/jsm/loaders/DDSLoader.js +24 -0
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +42 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +218 -5
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +86 -18
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +38 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +81 -61
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +79 -2
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +108 -72
- package/examples/jsm/misc/VolumeSlice.js +88 -45
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +70 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +131 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +266 -133
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
- package/examples/jsm/tsl/display/BloomNode.js +1 -1
- package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -1
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
- package/examples/jsm/tsl/math/Bayer.js +14 -1
- package/examples/jsm/tsl/utils/Raymarching.js +4 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +1 -1
- package/src/Three.TSL.js +3 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +168 -18
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/AudioAnalyser.js +1 -1
- package/src/audio/AudioListener.js +2 -2
- package/src/audio/PositionalAudio.js +5 -5
- package/src/constants.js +1432 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +23 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +166 -7
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +16 -1
- package/src/extras/Earcut.js +3 -781
- package/src/extras/ImageUtils.js +3 -2
- package/src/extras/PMREMGenerator.js +22 -17
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +1 -1
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/ConeGeometry.js +2 -2
- package/src/geometries/CylinderGeometry.js +2 -2
- package/src/geometries/ExtrudeGeometry.js +71 -39
- package/src/geometries/LatheGeometry.js +1 -1
- package/src/lights/LightShadow.js +1 -1
- package/src/lights/webgpu/IESSpotLight.js +1 -1
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +4 -6
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +58 -1
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +6 -2
- package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
- package/src/loaders/nodes/NodeObjectLoader.js +3 -3
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +1 -1
- package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +7 -3
- package/src/materials/nodes/PointsNodeMaterial.js +1 -1
- package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
- package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
- package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
- package/src/math/Color.js +1 -1
- package/src/math/MathUtils.js +223 -0
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/accessors/BatchNode.js +8 -8
- package/src/nodes/accessors/BuiltinNode.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +1 -1
- package/src/nodes/accessors/InstanceNode.js +5 -5
- package/src/nodes/accessors/InstancedMeshNode.js +1 -1
- package/src/nodes/accessors/MorphNode.js +27 -23
- package/src/nodes/accessors/Normal.js +1 -1
- package/src/nodes/accessors/Object3DNode.js +12 -12
- package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +46 -37
- package/src/nodes/accessors/StorageBufferNode.js +1 -1
- package/src/nodes/accessors/StorageTextureNode.js +3 -3
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +25 -5
- package/src/nodes/accessors/TextureSizeNode.js +1 -1
- package/src/nodes/accessors/UniformArrayNode.js +2 -2
- package/src/nodes/code/CodeNode.js +4 -4
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +23 -3
- package/src/nodes/code/ScriptableNode.js +4 -4
- package/src/nodes/code/ScriptableValueNode.js +2 -2
- package/src/nodes/core/AssignNode.js +1 -1
- package/src/nodes/core/AttributeNode.js +1 -1
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/CacheNode.js +1 -1
- package/src/nodes/core/ContextNode.js +1 -1
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/Node.js +14 -2
- package/src/nodes/core/NodeBuilder.js +86 -14
- package/src/nodes/core/StackNode.js +5 -5
- package/src/nodes/core/StructNode.js +1 -1
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/VarNode.js +2 -8
- package/src/nodes/core/VaryingNode.js +3 -3
- package/src/nodes/display/BlendModes.js +4 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/NormalMapNode.js +1 -1
- package/src/nodes/display/PosterizeNode.js +1 -1
- package/src/nodes/display/ScreenNode.js +3 -3
- package/src/nodes/display/ViewportDepthNode.js +2 -2
- package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
- package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
- package/src/nodes/display/ViewportTextureNode.js +4 -4
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
- package/src/nodes/geometry/RangeNode.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
- package/src/nodes/gpgpu/ComputeNode.js +30 -2
- package/src/nodes/lighting/AnalyticLightNode.js +9 -1
- package/src/nodes/lighting/LightsNode.js +3 -3
- package/src/nodes/lighting/ShadowNode.js +1 -1
- package/src/nodes/math/ConditionalNode.js +20 -3
- package/src/nodes/math/MathNode.js +83 -78
- package/src/nodes/math/OperatorNode.js +171 -82
- package/src/nodes/pmrem/PMREMNode.js +4 -4
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +115 -12
- package/src/nodes/utils/ArrayElementNode.js +3 -1
- package/src/nodes/utils/CubeMapNode.js +3 -3
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/EquirectUVNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +27 -2
- package/src/nodes/utils/LoopNode.js +58 -28
- package/src/nodes/utils/MaxMipLevelNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +2 -2
- package/src/nodes/utils/RemapNode.js +6 -6
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
- package/src/objects/BatchedMesh.js +4 -4
- package/src/objects/InstancedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Skeleton.js +1 -1
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +617 -79
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Attributes.js +2 -2
- package/src/renderers/common/Backend.js +12 -3
- package/src/renderers/common/Background.js +1 -0
- package/src/renderers/common/Color4.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/PostProcessing.js +2 -0
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderList.js +2 -2
- package/src/renderers/common/RenderObject.js +1 -1
- package/src/renderers/common/RenderObjects.js +2 -2
- package/src/renderers/common/Renderer.js +52 -31
- package/src/renderers/common/XRManager.js +333 -10
- package/src/renderers/common/extras/PMREMGenerator.js +6 -0
- package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
- package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +10 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +82 -0
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +22 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +8 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +31 -11
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/triplanar_fragment.glsl.js +20 -0
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +52 -7
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +25 -6
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +19 -7
- package/src/renderers/shaders/ShaderChunk.js +2 -0
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -0
- package/src/renderers/shaders/UniformsLib.js +6 -5
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLProgram.js +25 -5
- package/src/renderers/webgl/WebGLPrograms.js +21 -7
- package/src/renderers/webgl/WebGLState.js +9 -9
- package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
- package/src/renderers/webgpu/WebGPUBackend.js +128 -87
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
- package/src/renderers/webgpu/WebGPURenderer.js +17 -11
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +173 -1
- package/src/scenes/Scene.js +2 -1
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +59 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +5 -5
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -30,12 +30,38 @@ import { EXRLoader } from '../loaders/EXRLoader.js';
|
|
|
30
30
|
|
|
31
31
|
const _taskCache = new WeakMap();
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* A loader for Rhinoceros 3D files and objects.
|
|
35
|
+
*
|
|
36
|
+
* Rhinoceros is a 3D modeler used to create, edit, analyze, document, render,
|
|
37
|
+
* animate, and translate NURBS curves, surfaces, breps, extrusions, point clouds,
|
|
38
|
+
* as well as polygon meshes and SubD objects. `rhino3dm.js` is compiled to WebAssembly
|
|
39
|
+
* from the open source geometry library `openNURBS`. The loader currently uses
|
|
40
|
+
* `rhino3dm.js 8.4.0`.
|
|
41
|
+
*
|
|
42
|
+
* ```js
|
|
43
|
+
* const loader = new Rhino3dmLoader();
|
|
44
|
+
* loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/rhino3dm@8.0.1' );
|
|
45
|
+
*
|
|
46
|
+
* const object = await loader.loadAsync( 'models/3dm/Rhino_Logo.3dm' );
|
|
47
|
+
* scene.add( object );
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @augments Loader
|
|
51
|
+
*/
|
|
33
52
|
class Rhino3dmLoader extends Loader {
|
|
34
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Constructs a new Rhino 3DM loader.
|
|
56
|
+
*
|
|
57
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
58
|
+
*/
|
|
35
59
|
constructor( manager ) {
|
|
36
60
|
|
|
37
61
|
super( manager );
|
|
38
62
|
|
|
63
|
+
// internals
|
|
64
|
+
|
|
39
65
|
this.libraryPath = '';
|
|
40
66
|
this.libraryPending = null;
|
|
41
67
|
this.libraryBinary = null;
|
|
@@ -54,6 +80,12 @@ class Rhino3dmLoader extends Loader {
|
|
|
54
80
|
|
|
55
81
|
}
|
|
56
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Path to a folder containing the JS and WASM libraries.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} path - The library path to set.
|
|
87
|
+
* @return {Rhino3dmLoader} A reference to this loader.
|
|
88
|
+
*/
|
|
57
89
|
setLibraryPath( path ) {
|
|
58
90
|
|
|
59
91
|
this.libraryPath = path;
|
|
@@ -62,6 +94,14 @@ class Rhino3dmLoader extends Loader {
|
|
|
62
94
|
|
|
63
95
|
}
|
|
64
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Sets the maximum number of Web Workers to be used during decoding.
|
|
99
|
+
* A lower limit may be preferable if workers are also for other
|
|
100
|
+
* tasks in the application.
|
|
101
|
+
*
|
|
102
|
+
* @param {number} workerLimit - The worker limit.
|
|
103
|
+
* @return {Rhino3dmLoader} A reference to this loader.
|
|
104
|
+
*/
|
|
65
105
|
setWorkerLimit( workerLimit ) {
|
|
66
106
|
|
|
67
107
|
this.workerLimit = workerLimit;
|
|
@@ -70,6 +110,15 @@ class Rhino3dmLoader extends Loader {
|
|
|
70
110
|
|
|
71
111
|
}
|
|
72
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Starts loading from the given URL and passes the loaded 3DM asset
|
|
115
|
+
* to the `onLoad()` callback.
|
|
116
|
+
*
|
|
117
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
118
|
+
* @param {function(Object3D)} onLoad - Executed when the loading process has been finished.
|
|
119
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
120
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
121
|
+
*/
|
|
73
122
|
load( url, onLoad, onProgress, onError ) {
|
|
74
123
|
|
|
75
124
|
const loader = new FileLoader( this.manager );
|
|
@@ -105,12 +154,22 @@ class Rhino3dmLoader extends Loader {
|
|
|
105
154
|
|
|
106
155
|
}
|
|
107
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Prints debug messages to the browser console.
|
|
159
|
+
*/
|
|
108
160
|
debug() {
|
|
109
161
|
|
|
110
162
|
console.log( 'Task load: ', this.workerPool.map( ( worker ) => worker._taskLoad ) );
|
|
111
163
|
|
|
112
164
|
}
|
|
113
165
|
|
|
166
|
+
/**
|
|
167
|
+
* Decodes the 3DM asset data with a Web Worker.
|
|
168
|
+
*
|
|
169
|
+
* @param {ArrayBuffer} buffer - The raw 3DM asset data as an array buffer.
|
|
170
|
+
* @param {string} url - The asset URL.
|
|
171
|
+
* @return {Promise<Object3D>} A Promise that resolved with the decoded 3D object.
|
|
172
|
+
*/
|
|
114
173
|
decodeObjects( buffer, url ) {
|
|
115
174
|
|
|
116
175
|
let worker;
|
|
@@ -170,6 +229,14 @@ class Rhino3dmLoader extends Loader {
|
|
|
170
229
|
|
|
171
230
|
}
|
|
172
231
|
|
|
232
|
+
/**
|
|
233
|
+
* Parses the given 3DM data and passes the loaded 3DM asset
|
|
234
|
+
* to the `onLoad()` callback.
|
|
235
|
+
*
|
|
236
|
+
* @param {ArrayBuffer} data - The raw 3DM asset data as an array buffer.
|
|
237
|
+
* @param {function(Object3D)} onLoad - Executed when the loading process has been finished.
|
|
238
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
239
|
+
*/
|
|
173
240
|
parse( data, onLoad, onError ) {
|
|
174
241
|
|
|
175
242
|
this.decodeObjects( data, '' )
|
|
@@ -962,6 +1029,10 @@ class Rhino3dmLoader extends Loader {
|
|
|
962
1029
|
|
|
963
1030
|
}
|
|
964
1031
|
|
|
1032
|
+
/**
|
|
1033
|
+
* Frees internal resources. This method should be called
|
|
1034
|
+
* when the loader is no longer required.
|
|
1035
|
+
*/
|
|
965
1036
|
dispose() {
|
|
966
1037
|
|
|
967
1038
|
for ( let i = 0; i < this.workerPool.length; ++ i ) {
|
|
@@ -972,8 +1043,6 @@ class Rhino3dmLoader extends Loader {
|
|
|
972
1043
|
|
|
973
1044
|
this.workerPool.length = 0;
|
|
974
1045
|
|
|
975
|
-
return this;
|
|
976
|
-
|
|
977
1046
|
}
|
|
978
1047
|
|
|
979
1048
|
}
|
|
@@ -24,8 +24,7 @@ import * as fflate from '../libs/fflate.module.js';
|
|
|
24
24
|
const COLOR_SPACE_3MF = SRGBColorSpace;
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
* 3D Manufacturing Format (3MF) specification: https://3mf.io/specification/
|
|
27
|
+
* A loader for the [3D Manufacturing Format (3MF)]{@link https://3mf.io/specification/} format.
|
|
29
28
|
*
|
|
30
29
|
* The following features from the core specification are supported:
|
|
31
30
|
*
|
|
@@ -39,18 +38,46 @@ const COLOR_SPACE_3MF = SRGBColorSpace;
|
|
|
39
38
|
* - Texture 2D Groups
|
|
40
39
|
* - Color Groups (Vertex Colors)
|
|
41
40
|
* - Metallic Display Properties (PBR)
|
|
41
|
+
*
|
|
42
|
+
* ```js
|
|
43
|
+
* const loader = new ThreeMFLoader();
|
|
44
|
+
*
|
|
45
|
+
* const object = await loader.loadAsync( './models/3mf/truck.3mf' );
|
|
46
|
+
* object.rotation.set( - Math.PI / 2, 0, 0 ); // z-up conversion
|
|
47
|
+
* scene.add( object );
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @augments Loader
|
|
42
51
|
*/
|
|
43
|
-
|
|
44
52
|
class ThreeMFLoader extends Loader {
|
|
45
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Constructs a new 3MF loader.
|
|
56
|
+
*
|
|
57
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
58
|
+
*/
|
|
46
59
|
constructor( manager ) {
|
|
47
60
|
|
|
48
61
|
super( manager );
|
|
49
62
|
|
|
63
|
+
/**
|
|
64
|
+
* An array of available extensions.
|
|
65
|
+
*
|
|
66
|
+
* @type {Array<Object>}
|
|
67
|
+
*/
|
|
50
68
|
this.availableExtensions = [];
|
|
51
69
|
|
|
52
70
|
}
|
|
53
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Starts loading from the given URL and passes the loaded 3MF asset
|
|
74
|
+
* to the `onLoad()` callback.
|
|
75
|
+
*
|
|
76
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
77
|
+
* @param {function(Group)} onLoad - Executed when the loading process has been finished.
|
|
78
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
79
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
80
|
+
*/
|
|
54
81
|
load( url, onLoad, onProgress, onError ) {
|
|
55
82
|
|
|
56
83
|
const scope = this;
|
|
@@ -85,6 +112,12 @@ class ThreeMFLoader extends Loader {
|
|
|
85
112
|
|
|
86
113
|
}
|
|
87
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Parses the given 3MF data and returns the resulting group.
|
|
117
|
+
*
|
|
118
|
+
* @param {ArrayBuffer} data - The raw 3MF asset data as an array buffer.
|
|
119
|
+
* @return {Group} A group representing the parsed asset.
|
|
120
|
+
*/
|
|
88
121
|
parse( data ) {
|
|
89
122
|
|
|
90
123
|
const scope = this;
|
|
@@ -1571,6 +1604,11 @@ class ThreeMFLoader extends Loader {
|
|
|
1571
1604
|
|
|
1572
1605
|
}
|
|
1573
1606
|
|
|
1607
|
+
/**
|
|
1608
|
+
* Adds a 3MF extension.
|
|
1609
|
+
*
|
|
1610
|
+
* @param {Object} extension - The extension to add.
|
|
1611
|
+
*/
|
|
1574
1612
|
addExtension( extension ) {
|
|
1575
1613
|
|
|
1576
1614
|
this.availableExtensions.push( extension );
|
|
@@ -11,29 +11,42 @@ import {
|
|
|
11
11
|
import * as fflate from '../libs/fflate.module.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* example loaders in the three.js project.
|
|
14
|
+
* A loader for the AMF format.
|
|
16
15
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* loader.load('/path/to/project.amf', function(objecttree) {
|
|
20
|
-
* scene.add(objecttree);
|
|
21
|
-
* });
|
|
16
|
+
* The loader supports materials, color and ZIP compressed files.
|
|
17
|
+
* No constellation support (yet).
|
|
22
18
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* No constellation support (yet)!
|
|
19
|
+
* ```js
|
|
20
|
+
* const loader = new AMFLoader();
|
|
26
21
|
*
|
|
22
|
+
* const object = await loader.loadAsync( './models/amf/rook.amf' );
|
|
23
|
+
* scene.add( object );
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @augments Loader
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
28
|
class AMFLoader extends Loader {
|
|
30
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a new AMF loader.
|
|
32
|
+
*
|
|
33
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
34
|
+
*/
|
|
31
35
|
constructor( manager ) {
|
|
32
36
|
|
|
33
37
|
super( manager );
|
|
34
38
|
|
|
35
39
|
}
|
|
36
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Starts loading from the given URL and passes the loaded AMF asset
|
|
43
|
+
* to the `onLoad()` callback.
|
|
44
|
+
*
|
|
45
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
46
|
+
* @param {function(Group)} onLoad - Executed when the loading process has been finished.
|
|
47
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
48
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
49
|
+
*/
|
|
37
50
|
load( url, onLoad, onProgress, onError ) {
|
|
38
51
|
|
|
39
52
|
const scope = this;
|
|
@@ -69,6 +82,12 @@ class AMFLoader extends Loader {
|
|
|
69
82
|
|
|
70
83
|
}
|
|
71
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Parses the given AMF data and returns the resulting group.
|
|
87
|
+
*
|
|
88
|
+
* @param {ArrayBuffer} data - The raw AMF asset data as an array buffer.
|
|
89
|
+
* @return {Group} A group representing the parsed asset.
|
|
90
|
+
*/
|
|
72
91
|
parse( data ) {
|
|
73
92
|
|
|
74
93
|
function loadDocument( data ) {
|
|
@@ -236,7 +255,7 @@ class AMFLoader extends Loader {
|
|
|
236
255
|
|
|
237
256
|
function loadMeshVolume( node ) {
|
|
238
257
|
|
|
239
|
-
const volume = { name: '', triangles: [],
|
|
258
|
+
const volume = { name: '', triangles: [], materialId: null };
|
|
240
259
|
|
|
241
260
|
let currVolumeNode = node.firstElementChild;
|
|
242
261
|
|
|
@@ -11,23 +11,65 @@ import {
|
|
|
11
11
|
} from 'three';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* A loader for the BVH format.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
16
|
+
* Imports BVH files and outputs a single {@link Skeleton} and {@link AnimationClip}.
|
|
17
|
+
* The loader only supports BVH files containing a single root right now.
|
|
17
18
|
*
|
|
19
|
+
* ```js
|
|
20
|
+
* const loader = new BVHLoader();
|
|
21
|
+
* const result = await loader.loadAsync( 'models/bvh/pirouette.bvh' );
|
|
22
|
+
*
|
|
23
|
+
* // visualize skeleton
|
|
24
|
+
* const skeletonHelper = new THREE.SkeletonHelper( result.skeleton.bones[ 0 ] );
|
|
25
|
+
* scene.add( result.skeleton.bones[ 0 ] );
|
|
26
|
+
* scene.add( skeletonHelper );
|
|
27
|
+
*
|
|
28
|
+
* // play animation clip
|
|
29
|
+
* mixer = new THREE.AnimationMixer( result.skeleton.bones[ 0 ] );
|
|
30
|
+
* mixer.clipAction( result.clip ).play();
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @augments Loader
|
|
18
34
|
*/
|
|
19
|
-
|
|
20
35
|
class BVHLoader extends Loader {
|
|
21
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Constructs a new BVH loader.
|
|
39
|
+
*
|
|
40
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
41
|
+
*/
|
|
22
42
|
constructor( manager ) {
|
|
23
43
|
|
|
24
44
|
super( manager );
|
|
25
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Whether to animate bone positions or not.
|
|
48
|
+
*
|
|
49
|
+
* @type {boolean}
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
26
52
|
this.animateBonePositions = true;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Whether to animate bone rotations or not.
|
|
56
|
+
*
|
|
57
|
+
* @type {boolean}
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
27
60
|
this.animateBoneRotations = true;
|
|
28
61
|
|
|
29
62
|
}
|
|
30
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Starts loading from the given URL and passes the loaded BVH asset
|
|
66
|
+
* to the `onLoad()` callback.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
69
|
+
* @param {function({skeleton:Skeleton,clip:AnimationClip})} onLoad - Executed when the loading process has been finished.
|
|
70
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
71
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
72
|
+
*/
|
|
31
73
|
load( url, onLoad, onProgress, onError ) {
|
|
32
74
|
|
|
33
75
|
const scope = this;
|
|
@@ -62,15 +104,19 @@ class BVHLoader extends Loader {
|
|
|
62
104
|
|
|
63
105
|
}
|
|
64
106
|
|
|
107
|
+
/**
|
|
108
|
+
* Parses the given BVH data and returns the resulting data.
|
|
109
|
+
*
|
|
110
|
+
* @param {string} text - The raw BVH data as a string.
|
|
111
|
+
* @return {{skeleton:Skeleton,clip:AnimationClip}} An object representing the parsed asset.
|
|
112
|
+
*/
|
|
65
113
|
parse( text ) {
|
|
66
114
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
and outputs a skeleton structure including motion data
|
|
115
|
+
// reads a string array (lines) from a BVH file
|
|
116
|
+
// and outputs a skeleton structure including motion data
|
|
70
117
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
*/
|
|
118
|
+
// returns thee root node:
|
|
119
|
+
// { name: '', channels: [], children: [] }
|
|
74
120
|
function readBvh( lines ) {
|
|
75
121
|
|
|
76
122
|
// read model structure
|
|
@@ -338,11 +384,11 @@ class BVHLoader extends Loader {
|
|
|
338
384
|
}
|
|
339
385
|
|
|
340
386
|
/*
|
|
341
|
-
builds
|
|
387
|
+
builds an AnimationClip from the keyframe data saved in each bone.
|
|
342
388
|
|
|
343
389
|
bone: bvh root node
|
|
344
390
|
|
|
345
|
-
returns:
|
|
391
|
+
returns: an AnimationClip containing position and quaternion tracks
|
|
346
392
|
*/
|
|
347
393
|
function toTHREEAnimation( bones ) {
|
|
348
394
|
|
|
@@ -41,8 +41,35 @@ import {
|
|
|
41
41
|
} from 'three';
|
|
42
42
|
import { TGALoader } from '../loaders/TGALoader.js';
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* A loader for the Collada format.
|
|
46
|
+
*
|
|
47
|
+
* The Collada format is very complex so this loader only supports a subset of what
|
|
48
|
+
* is defined in the [official specification]{@link https://www.khronos.org/files/collada_spec_1_5.pdf}.
|
|
49
|
+
*
|
|
50
|
+
* Assets with a Z-UP coordinate system are transformed it into Y-UP by a simple rotation.
|
|
51
|
+
* The vertex data are not converted.
|
|
52
|
+
*
|
|
53
|
+
* ```js
|
|
54
|
+
* const loader = new ColladaLoader();
|
|
55
|
+
*
|
|
56
|
+
* const result = await loader.loadAsync( './models/collada/elf/elf.dae' );
|
|
57
|
+
* scene.add( result.scene );
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @augments Loader
|
|
61
|
+
*/
|
|
44
62
|
class ColladaLoader extends Loader {
|
|
45
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Starts loading from the given URL and passes the loaded Collada asset
|
|
66
|
+
* to the `onLoad()` callback.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
69
|
+
* @param {function({scene:Group,animations:Array<AnimationClip>,kinematics:Object})} onLoad - Executed when the loading process has been finished.
|
|
70
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
71
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
72
|
+
*/
|
|
46
73
|
load( url, onLoad, onProgress, onError ) {
|
|
47
74
|
|
|
48
75
|
const scope = this;
|
|
@@ -79,6 +106,14 @@ class ColladaLoader extends Loader {
|
|
|
79
106
|
|
|
80
107
|
}
|
|
81
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Parses the given Collada data and returns a result oject holding the parsed scene,
|
|
111
|
+
* an array of animation clips and kinematics.
|
|
112
|
+
*
|
|
113
|
+
* @param {string} text - The raw Collada data as a string.
|
|
114
|
+
* @param {string} path - The asset path.
|
|
115
|
+
* @return {{scene:Group,animations:Array<AnimationClip>,kinematics:Object}} An object representing the parsed asset.
|
|
116
|
+
*/
|
|
82
117
|
parse( text, path ) {
|
|
83
118
|
|
|
84
119
|
function getElementsByTagName( xml, name ) {
|
|
@@ -9,14 +9,38 @@ import {
|
|
|
9
9
|
RGB_BPTC_UNSIGNED_Format
|
|
10
10
|
} from 'three';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* A loader for the S3TC texture compression format.
|
|
14
|
+
*
|
|
15
|
+
* ```js
|
|
16
|
+
* const loader = new DDSLoader();
|
|
17
|
+
*
|
|
18
|
+
* const map = loader.load( 'textures/compressed/disturb_dxt1_nomip.dds' );
|
|
19
|
+
* map.colorSpace = THREE.SRGBColorSpace; // only for color textures
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @augments CompressedTextureLoader
|
|
23
|
+
*/
|
|
12
24
|
class DDSLoader extends CompressedTextureLoader {
|
|
13
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Constructs a new DDS loader.
|
|
28
|
+
*
|
|
29
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
30
|
+
*/
|
|
14
31
|
constructor( manager ) {
|
|
15
32
|
|
|
16
33
|
super( manager );
|
|
17
34
|
|
|
18
35
|
}
|
|
19
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Parses the given S3TC texture data.
|
|
39
|
+
*
|
|
40
|
+
* @param {ArrayBuffer} buffer - The raw texture data.
|
|
41
|
+
* @param {boolean} loadMipmaps - Whether to load mipmaps or not.
|
|
42
|
+
* @return {CompressedTextureLoader~TexData} An object representing the parsed texture data.
|
|
43
|
+
*/
|
|
20
44
|
parse( buffer, loadMipmaps ) {
|
|
21
45
|
|
|
22
46
|
const dds = { mipmaps: [], width: 0, height: 0, format: null, mipmapCount: 1 };
|
|
@@ -11,8 +11,44 @@ import {
|
|
|
11
11
|
|
|
12
12
|
const _taskCache = new WeakMap();
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* A loader for the Draco format.
|
|
16
|
+
*
|
|
17
|
+
* [Draco]{@link https://google.github.io/draco/} is an open source library for compressing
|
|
18
|
+
* and decompressing 3D meshes and point clouds. Compressed geometry can be significantly smaller,
|
|
19
|
+
* at the cost of additional decoding time on the client device.
|
|
20
|
+
*
|
|
21
|
+
* Standalone Draco files have a `.drc` extension, and contain vertex positions, normals, colors,
|
|
22
|
+
* and other attributes. Draco files do not contain materials, textures, animation, or node hierarchies –
|
|
23
|
+
* 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]{@link https://github.com/CesiumGS/gltf-pipeline}.
|
|
25
|
+
* When using Draco with glTF, an instance of `DRACOLoader` will be used internally by {@link GLTFLoader}.
|
|
26
|
+
*
|
|
27
|
+
* It is recommended to create one DRACOLoader instance and reuse it to avoid loading and creating
|
|
28
|
+
* multiple decoder instances.
|
|
29
|
+
*
|
|
30
|
+
* `DRACOLoader` will automatically use either the JS or the WASM decoding library, based on
|
|
31
|
+
* browser capabilities.
|
|
32
|
+
*
|
|
33
|
+
* ```js
|
|
34
|
+
* const loader = new DRACOLoader();
|
|
35
|
+
* loader.setDecoderPath( '/examples/jsm/libs/draco/' );
|
|
36
|
+
*
|
|
37
|
+
* const geometry = await dracoLoader.loadAsync( 'models/draco/bunny.drc' );
|
|
38
|
+
* geometry.computeVertexNormals(); // optional
|
|
39
|
+
*
|
|
40
|
+
* dracoLoader.dispose();
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @augments Loader
|
|
44
|
+
*/
|
|
14
45
|
class DRACOLoader extends Loader {
|
|
15
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Constructs a new Draco loader.
|
|
49
|
+
*
|
|
50
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
51
|
+
*/
|
|
16
52
|
constructor( manager ) {
|
|
17
53
|
|
|
18
54
|
super( manager );
|
|
@@ -42,6 +78,12 @@ class DRACOLoader extends Loader {
|
|
|
42
78
|
|
|
43
79
|
}
|
|
44
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Provides configuration for the decoder libraries. Configuration cannot be changed after decoding begins.
|
|
83
|
+
*
|
|
84
|
+
* @param {string} path - The decoder path.
|
|
85
|
+
* @return {DRACOLoader} A reference to this loader.
|
|
86
|
+
*/
|
|
45
87
|
setDecoderPath( path ) {
|
|
46
88
|
|
|
47
89
|
this.decoderPath = path;
|
|
@@ -50,6 +92,12 @@ class DRACOLoader extends Loader {
|
|
|
50
92
|
|
|
51
93
|
}
|
|
52
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Provides configuration for the decoder libraries. Configuration cannot be changed after decoding begins.
|
|
97
|
+
*
|
|
98
|
+
* @param {{type:('js'|'wasm')}} config - The decoder config.
|
|
99
|
+
* @return {DRACOLoader} A reference to this loader.
|
|
100
|
+
*/
|
|
53
101
|
setDecoderConfig( config ) {
|
|
54
102
|
|
|
55
103
|
this.decoderConfig = config;
|
|
@@ -58,6 +106,13 @@ class DRACOLoader extends Loader {
|
|
|
58
106
|
|
|
59
107
|
}
|
|
60
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Sets the maximum number of Web Workers to be used during decoding.
|
|
111
|
+
* A lower limit may be preferable if workers are also for other tasks in the application.
|
|
112
|
+
*
|
|
113
|
+
* @param {number} workerLimit - The worker limit.
|
|
114
|
+
* @return {DRACOLoader} A reference to this loader.
|
|
115
|
+
*/
|
|
61
116
|
setWorkerLimit( workerLimit ) {
|
|
62
117
|
|
|
63
118
|
this.workerLimit = workerLimit;
|
|
@@ -66,6 +121,15 @@ class DRACOLoader extends Loader {
|
|
|
66
121
|
|
|
67
122
|
}
|
|
68
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Starts loading from the given URL and passes the loaded Draco asset
|
|
126
|
+
* to the `onLoad()` callback.
|
|
127
|
+
*
|
|
128
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
129
|
+
* @param {function(BufferGeometry)} onLoad - Executed when the loading process has been finished.
|
|
130
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
131
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
132
|
+
*/
|
|
69
133
|
load( url, onLoad, onProgress, onError ) {
|
|
70
134
|
|
|
71
135
|
const loader = new FileLoader( this.manager );
|
|
@@ -83,13 +147,21 @@ class DRACOLoader extends Loader {
|
|
|
83
147
|
|
|
84
148
|
}
|
|
85
149
|
|
|
86
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Parses the given Draco data.
|
|
152
|
+
*
|
|
153
|
+
* @param {ArrayBuffer} buffer - The raw Draco data as an array buffer.
|
|
154
|
+
* @param {function(BufferGeometry)} onLoad - Executed when the loading/parsing process has been finished.
|
|
155
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
156
|
+
*/
|
|
87
157
|
parse( buffer, onLoad, onError = ()=>{} ) {
|
|
88
158
|
|
|
89
159
|
this.decodeDracoFile( buffer, onLoad, null, null, SRGBColorSpace, onError ).catch( onError );
|
|
90
160
|
|
|
91
161
|
}
|
|
92
162
|
|
|
163
|
+
//
|
|
164
|
+
|
|
93
165
|
decodeDracoFile( buffer, callback, attributeIDs, attributeTypes, vertexColorSpace = LinearSRGBColorSpace, onError = () => {} ) {
|
|
94
166
|
|
|
95
167
|
const taskConfig = {
|
|
@@ -11,13 +11,8 @@ import {
|
|
|
11
11
|
} from 'three';
|
|
12
12
|
import * as fflate from '../libs/fflate.module.js';
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* Supports reading as UnsignedByte, HalfFloat and Float type data texture.
|
|
17
|
-
*
|
|
18
|
-
* Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita
|
|
19
|
-
* implementation, so I have preserved their copyright notices.
|
|
20
|
-
*/
|
|
14
|
+
// Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita
|
|
15
|
+
// implementation, so I have preserved their copyright notices.
|
|
21
16
|
|
|
22
17
|
// /*
|
|
23
18
|
// Copyright (c) 2014 - 2017, Syoyo Fujita
|
|
@@ -84,16 +79,47 @@ import * as fflate from '../libs/fflate.module.js';
|
|
|
84
79
|
|
|
85
80
|
// // End of OpenEXR license -------------------------------------------------
|
|
86
81
|
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* A loader for the OpenEXR texture format.
|
|
85
|
+
*
|
|
86
|
+
* `EXRLoader` currently supports uncompressed, ZIP(S), RLE, PIZ and DWA/B compression.
|
|
87
|
+
* Supports reading as UnsignedByte, HalfFloat and Float type data texture.
|
|
88
|
+
*
|
|
89
|
+
* ```js
|
|
90
|
+
* const loader = new EXRLoader();
|
|
91
|
+
* const texture = await loader.loadAsync( 'textures/memorial.exr' );
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @augments DataTextureLoader
|
|
95
|
+
*/
|
|
87
96
|
class EXRLoader extends DataTextureLoader {
|
|
88
97
|
|
|
98
|
+
/**
|
|
99
|
+
* Constructs a new EXR loader.
|
|
100
|
+
*
|
|
101
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
102
|
+
*/
|
|
89
103
|
constructor( manager ) {
|
|
90
104
|
|
|
91
105
|
super( manager );
|
|
92
106
|
|
|
107
|
+
/**
|
|
108
|
+
* The texture type.
|
|
109
|
+
*
|
|
110
|
+
* @type {(HalfFloatType|FloatType)}
|
|
111
|
+
* @default HalfFloatType
|
|
112
|
+
*/
|
|
93
113
|
this.type = HalfFloatType;
|
|
94
114
|
|
|
95
115
|
}
|
|
96
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Parses the given EXR texture data.
|
|
119
|
+
*
|
|
120
|
+
* @param {ArrayBuffer} buffer - The raw texture data.
|
|
121
|
+
* @return {DataTextureLoader~TexData} An object representing the parsed texture data.
|
|
122
|
+
*/
|
|
97
123
|
parse( buffer ) {
|
|
98
124
|
|
|
99
125
|
const USHORT_RANGE = ( 1 << 16 );
|
|
@@ -2229,7 +2255,7 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2229
2255
|
|
|
2230
2256
|
const attributeName = parseNullTerminatedString( buffer, offset );
|
|
2231
2257
|
|
|
2232
|
-
if ( attributeName
|
|
2258
|
+
if ( attributeName === '' ) {
|
|
2233
2259
|
|
|
2234
2260
|
keepReading = false;
|
|
2235
2261
|
|
|
@@ -2533,6 +2559,12 @@ class EXRLoader extends DataTextureLoader {
|
|
|
2533
2559
|
|
|
2534
2560
|
}
|
|
2535
2561
|
|
|
2562
|
+
/**
|
|
2563
|
+
* Sets the texture type.
|
|
2564
|
+
*
|
|
2565
|
+
* @param {(HalfFloatType|FloatType)} value - The texture type to set.
|
|
2566
|
+
* @return {RGBMLoader} A reference to this loader.
|
|
2567
|
+
*/
|
|
2536
2568
|
setDataType( value ) {
|
|
2537
2569
|
|
|
2538
2570
|
this.type = value;
|