@needle-tools/three 0.145.2 → 0.146.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/README.md +1 -1
- package/build/three.cjs +3559 -6924
- package/build/three.js +3559 -6924
- package/build/three.min.js +1 -2
- package/build/three.module.js +732 -339
- package/examples/js/animation/AnimationClipCreator.js +0 -8
- package/examples/js/animation/CCDIKSolver.js +49 -66
- package/examples/js/animation/MMDAnimationHelper.js +66 -137
- package/examples/js/animation/MMDPhysics.js +70 -134
- package/examples/js/cameras/CinematicCamera.js +33 -22
- package/examples/js/controls/ArcballControls.js +138 -405
- package/examples/js/controls/DragControls.js +8 -33
- package/examples/js/controls/FirstPersonControls.js +32 -54
- package/examples/js/controls/FlyControls.js +29 -55
- package/examples/js/controls/OrbitControls.js +85 -95
- package/examples/js/controls/PointerLockControls.js +5 -14
- package/examples/js/controls/TrackballControls.js +33 -86
- package/examples/js/controls/TransformControls.js +84 -169
- package/examples/js/csm/CSM.js +4 -39
- package/examples/js/csm/CSMFrustum.js +3 -9
- package/examples/js/csm/CSMHelper.js +24 -4
- package/examples/js/csm/CSMShader.js +2 -6
- package/examples/js/curves/CurveExtras.js +27 -27
- package/examples/js/curves/NURBSCurve.js +4 -16
- package/examples/js/curves/NURBSSurface.js +3 -9
- package/examples/js/curves/NURBSUtils.js +8 -45
- package/examples/js/effects/AnaglyphEffect.js +4 -18
- package/examples/js/effects/AsciiEffect.js +32 -31
- package/examples/js/effects/OutlineEffect.js +26 -30
- package/examples/js/effects/ParallaxBarrierEffect.js +0 -13
- package/examples/js/effects/PeppersGhostEffect.js +12 -39
- package/examples/js/effects/StereoEffect.js +0 -4
- package/examples/js/environments/RoomEnvironment.js +12 -10
- package/examples/js/exporters/ColladaExporter.js +48 -65
- package/examples/js/exporters/DRACOExporter.js +22 -22
- package/examples/js/exporters/EXRExporter.js +15 -18
- package/examples/js/exporters/GLTFExporter.js +143 -261
- package/examples/js/exporters/MMDExporter.js +5 -12
- package/examples/js/exporters/OBJExporter.js +42 -33
- package/examples/js/exporters/PLYExporter.js +38 -33
- package/examples/js/exporters/STLExporter.js +5 -7
- package/examples/js/exporters/USDZExporter.js +110 -25
- package/examples/js/geometries/BoxLineGeometry.js +0 -1
- package/examples/js/geometries/ConvexGeometry.js +11 -6
- package/examples/js/geometries/DecalGeometry.js +53 -20
- package/examples/js/geometries/LightningStrike.js +54 -67
- package/examples/js/geometries/ParametricGeometries.js +8 -7
- package/examples/js/geometries/ParametricGeometry.js +25 -12
- package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
- package/examples/js/geometries/TeapotGeometry.js +54 -50
- package/examples/js/geometries/TextGeometry.js +6 -4
- package/examples/js/helpers/LightProbeHelper.js +1 -2
- package/examples/js/helpers/OctreeHelper.js +22 -20
- package/examples/js/helpers/PositionalAudioHelper.js +8 -6
- package/examples/js/helpers/RectAreaLightHelper.js +6 -7
- package/examples/js/helpers/VertexNormalsHelper.js +15 -13
- package/examples/js/helpers/VertexTangentsHelper.js +15 -9
- package/examples/js/helpers/ViewHelper.js +31 -16
- package/examples/js/interactive/HTMLMesh.js +22 -33
- package/examples/js/interactive/InteractiveGroup.js +6 -12
- package/examples/js/interactive/SelectionBox.js +3 -70
- package/examples/js/interactive/SelectionHelper.js +0 -8
- package/examples/js/lights/LightProbeGenerator.js +32 -39
- package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
- package/examples/js/lines/LineGeometry.js +3 -5
- package/examples/js/lines/LineMaterial.js +4 -11
- package/examples/js/lines/LineSegments2.js +38 -89
- package/examples/js/lines/LineSegmentsGeometry.js +7 -28
- package/examples/js/lines/Wireframe.js +2 -7
- package/examples/js/lines/WireframeGeometry2.js +3 -1
- package/examples/js/loaders/3DMLoader.js +58 -155
- package/examples/js/loaders/3MFLoader.js +72 -106
- package/examples/js/loaders/AMFLoader.js +0 -25
- package/examples/js/loaders/BVHLoader.js +44 -43
- package/examples/js/loaders/BasisTextureLoader.js +16 -46
- package/examples/js/loaders/ColladaLoader.js +201 -359
- package/examples/js/loaders/DDSLoader.js +24 -25
- package/examples/js/loaders/DRACOLoader.js +29 -66
- package/examples/js/loaders/EXRLoader.js +67 -164
- package/examples/js/loaders/FBXLoader.js +286 -441
- package/examples/js/loaders/FontLoader.js +6 -15
- package/examples/js/loaders/GCodeLoader.js +15 -16
- package/examples/js/loaders/GLTFLoader.js +354 -405
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -6
- package/examples/js/loaders/KMZLoader.js +3 -7
- package/examples/js/loaders/KTXLoader.js +12 -30
- package/examples/js/loaders/LDrawLoader.js +178 -289
- package/examples/js/loaders/LUT3dlLoader.js +7 -11
- package/examples/js/loaders/LUTCubeLoader.js +0 -8
- package/examples/js/loaders/LWOLoader.js +59 -124
- package/examples/js/loaders/LogLuvLoader.js +27 -77
- package/examples/js/loaders/LottieLoader.js +4 -4
- package/examples/js/loaders/MD2Loader.js +26 -27
- package/examples/js/loaders/MDDLoader.js +6 -10
- package/examples/js/loaders/MMDLoader.js +180 -189
- package/examples/js/loaders/MTLLoader.js +18 -47
- package/examples/js/loaders/MaterialXLoader.js +392 -0
- package/examples/js/loaders/NRRDLoader.js +44 -84
- package/examples/js/loaders/OBJLoader.js +50 -65
- package/examples/js/loaders/PCDLoader.js +34 -29
- package/examples/js/loaders/PDBLoader.js +17 -13
- package/examples/js/loaders/PLYLoader.js +9 -39
- package/examples/js/loaders/PRWMLoader.js +11 -22
- package/examples/js/loaders/PVRLoader.js +7 -16
- package/examples/js/loaders/RGBELoader.js +36 -61
- package/examples/js/loaders/RGBMLoader.js +26 -87
- package/examples/js/loaders/STLLoader.js +20 -27
- package/examples/js/loaders/SVGLoader.js +361 -233
- package/examples/js/loaders/TDSLoader.js +81 -118
- package/examples/js/loaders/TGALoader.js +39 -41
- package/examples/js/loaders/TIFFLoader.js +0 -1
- package/examples/js/loaders/TTFLoader.js +0 -8
- package/examples/js/loaders/TiltLoader.js +14 -15
- package/examples/js/loaders/VOXLoader.js +8 -16
- package/examples/js/loaders/VRMLLoader.js +243 -340
- package/examples/js/loaders/VTKLoader.js +101 -118
- package/examples/js/loaders/XYZLoader.js +2 -4
- package/examples/js/loaders/lwo/IFFParser.js +55 -136
- package/examples/js/loaders/lwo/LWO2Parser.js +32 -83
- package/examples/js/loaders/lwo/LWO3Parser.js +31 -73
- package/examples/js/materials/MeshGouraudMaterial.js +15 -13
- package/examples/js/math/Capsule.js +0 -17
- package/examples/js/math/ColorConverter.js +3 -3
- package/examples/js/math/ConvexHull.js +183 -139
- package/examples/js/math/ImprovedNoise.js +1 -1
- package/examples/js/math/Lut.js +8 -15
- package/examples/js/math/MeshSurfaceSampler.js +6 -28
- package/examples/js/math/OBB.js +90 -49
- package/examples/js/math/Octree.js +2 -57
- package/examples/js/math/SimplexNoise.js +74 -88
- package/examples/js/misc/ConvexObjectBreaker.js +37 -48
- package/examples/js/misc/GPUComputationRenderer.js +14 -18
- package/examples/js/misc/Gyroscope.js +5 -9
- package/examples/js/misc/MD2Character.js +14 -23
- package/examples/js/misc/MD2CharacterComplex.js +73 -54
- package/examples/js/misc/MorphAnimMesh.js +0 -6
- package/examples/js/misc/MorphBlendMesh.js +3 -30
- package/examples/js/misc/ProgressiveLightMap.js +47 -43
- package/examples/js/misc/RollerCoaster.js +17 -24
- package/examples/js/misc/TubePainter.js +18 -12
- package/examples/js/misc/Volume.js +16 -45
- package/examples/js/misc/VolumeSlice.js +14 -24
- package/examples/js/modifiers/CurveModifier.js +19 -21
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
- package/examples/js/modifiers/SimplifyModifier.js +56 -59
- package/examples/js/modifiers/TessellateModifier.js +2 -9
- package/examples/js/objects/GroundProjectedEnv.js +2 -14
- package/examples/js/objects/Lensflare.js +47 -38
- package/examples/js/objects/LightningStorm.js +10 -13
- package/examples/js/objects/MarchingCubes.js +80 -59
- package/examples/js/objects/Reflector.js +22 -20
- package/examples/js/objects/ReflectorForSSRPass.js +19 -23
- package/examples/js/objects/Refractor.js +52 -30
- package/examples/js/objects/ShadowMesh.js +1 -2
- package/examples/js/objects/Sky.js +2 -7
- package/examples/js/objects/Water.js +23 -18
- package/examples/js/objects/Water2.js +20 -19
- package/examples/js/physics/AmmoPhysics.js +23 -20
- package/examples/js/physics/OimoPhysics.js +19 -17
- package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
- package/examples/js/postprocessing/AfterimagePass.js +19 -12
- package/examples/js/postprocessing/BloomPass.js +38 -17
- package/examples/js/postprocessing/BokehPass.js +29 -12
- package/examples/js/postprocessing/ClearPass.js +1 -6
- package/examples/js/postprocessing/CubeTexturePass.js +12 -9
- package/examples/js/postprocessing/DotScreenPass.js +7 -5
- package/examples/js/postprocessing/EffectComposer.js +25 -32
- package/examples/js/postprocessing/FilmPass.js +7 -5
- package/examples/js/postprocessing/GlitchPass.js +10 -11
- package/examples/js/postprocessing/HalftonePass.js +9 -9
- package/examples/js/postprocessing/LUTPass.js +2 -15
- package/examples/js/postprocessing/MaskPass.js +20 -17
- package/examples/js/postprocessing/OutlinePass.js +45 -36
- package/examples/js/postprocessing/Pass.js +11 -14
- package/examples/js/postprocessing/RenderPass.js +3 -7
- package/examples/js/postprocessing/SAOPass.js +40 -32
- package/examples/js/postprocessing/SMAAPass.js +34 -17
- package/examples/js/postprocessing/SSAARenderPass.js +14 -14
- package/examples/js/postprocessing/SSAOPass.js +56 -42
- package/examples/js/postprocessing/SSRPass.js +78 -61
- package/examples/js/postprocessing/SavePass.js +14 -6
- package/examples/js/postprocessing/ShaderPass.js +9 -8
- package/examples/js/postprocessing/TAARenderPass.js +11 -9
- package/examples/js/postprocessing/TexturePass.js +7 -4
- package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
- package/examples/js/renderers/CSS2DRenderer.js +2 -21
- package/examples/js/renderers/CSS3DRenderer.js +3 -24
- package/examples/js/renderers/Projector.js +29 -85
- package/examples/js/renderers/SVGRenderer.js +4 -50
- package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
- package/examples/js/shaders/AfterimageShader.js +3 -6
- package/examples/js/shaders/BasicShader.js +3 -6
- package/examples/js/shaders/BleachBypassShader.js +3 -6
- package/examples/js/shaders/BlendShader.js +3 -6
- package/examples/js/shaders/BokehShader.js +3 -6
- package/examples/js/shaders/BokehShader2.js +4 -13
- package/examples/js/shaders/BrightnessContrastShader.js +3 -6
- package/examples/js/shaders/ColorCorrectionShader.js +2 -6
- package/examples/js/shaders/ColorifyShader.js +2 -6
- package/examples/js/shaders/ConvolutionShader.js +5 -10
- package/examples/js/shaders/CopyShader.js +3 -6
- package/examples/js/shaders/DOFMipMapShader.js +3 -6
- package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
- package/examples/js/shaders/DigitalGlitch.js +3 -6
- package/examples/js/shaders/DotScreenShader.js +2 -6
- package/examples/js/shaders/FXAAShader.js +1 -3
- package/examples/js/shaders/FilmShader.js +3 -6
- package/examples/js/shaders/FocusShader.js +3 -6
- package/examples/js/shaders/FreiChenShader.js +2 -6
- package/examples/js/shaders/GammaCorrectionShader.js +3 -6
- package/examples/js/shaders/GodRaysShader.js +11 -24
- package/examples/js/shaders/HalftoneShader.js +3 -6
- package/examples/js/shaders/HorizontalBlurShader.js +3 -6
- package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
- package/examples/js/shaders/HueSaturationShader.js +3 -6
- package/examples/js/shaders/KaleidoShader.js +3 -6
- package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
- package/examples/js/shaders/LuminosityShader.js +3 -6
- package/examples/js/shaders/MMDToonShader.js +2 -6
- package/examples/js/shaders/MirrorShader.js +3 -6
- package/examples/js/shaders/NormalMapShader.js +2 -6
- package/examples/js/shaders/RGBShiftShader.js +3 -6
- package/examples/js/shaders/SAOShader.js +2 -6
- package/examples/js/shaders/SMAAShader.js +6 -18
- package/examples/js/shaders/SSAOShader.js +2 -6
- package/examples/js/shaders/SSRShader.js +6 -18
- package/examples/js/shaders/SepiaShader.js +3 -6
- package/examples/js/shaders/SobelOperatorShader.js +2 -6
- package/examples/js/shaders/TechnicolorShader.js +3 -6
- package/examples/js/shaders/ToneMapShader.js +3 -6
- package/examples/js/shaders/ToonShader.js +8 -24
- package/examples/js/shaders/TriangleBlurShader.js +2 -6
- package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
- package/examples/js/shaders/VelocityShader.js +126 -0
- package/examples/js/shaders/VerticalBlurShader.js +3 -6
- package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
- package/examples/js/shaders/VignetteShader.js +3 -6
- package/examples/js/shaders/VolumeShader.js +2 -6
- package/examples/js/shaders/WaterRefractionShader.js +2 -6
- package/examples/js/textures/FlakesTexture.js +0 -1
- package/examples/js/utils/BufferGeometryUtils.js +234 -168
- package/examples/js/utils/CameraUtils.js +5 -20
- package/examples/js/utils/GPUStatsPanel.js +3 -12
- package/examples/js/utils/GeometryCompressionUtils.js +19 -44
- package/examples/js/utils/GeometryUtils.js +13 -18
- package/examples/js/utils/LDrawUtils.js +8 -11
- package/examples/js/utils/PackedPhongMaterial.js +6 -4
- package/examples/js/utils/SceneUtils.js +117 -6
- package/examples/js/utils/ShadowMapViewer.js +17 -14
- package/examples/js/utils/SkeletonUtils.js +13 -27
- package/examples/js/utils/UVsDebug.js +20 -12
- package/examples/js/utils/WorkerPool.js +1 -11
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/capabilities/WebGPU.js +3 -1
- package/examples/jsm/controls/OrbitControls.js +44 -4
- package/examples/jsm/exporters/GLTFExporter.js +17 -131
- package/examples/jsm/exporters/USDZExporter.js +94 -28
- package/examples/jsm/interactive/HTMLMesh.js +2 -0
- package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -2
- package/examples/jsm/loaders/ColladaLoader.js +28 -0
- package/examples/jsm/loaders/FBXLoader.js +16 -2
- package/examples/jsm/loaders/GLTFLoader.js +204 -377
- package/examples/jsm/loaders/KTX2Loader.js +68 -29
- package/examples/jsm/loaders/LDrawLoader.js +14 -13
- package/examples/jsm/loaders/LottieLoader.js +4 -2
- package/examples/jsm/loaders/MaterialXLoader.js +728 -0
- package/examples/jsm/loaders/PCDLoader.js +1 -1
- package/examples/jsm/loaders/PLYLoader.js +68 -16
- package/examples/jsm/loaders/SVGLoader.js +227 -14
- package/examples/jsm/loaders/USDZLoader.js +31 -16
- package/examples/jsm/nodes/Nodes.js +14 -2
- package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +6 -0
- package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/SkinningNode.js +1 -1
- package/examples/jsm/nodes/core/Node.js +1 -1
- package/examples/jsm/nodes/core/NodeBuilder.js +36 -4
- package/examples/jsm/nodes/core/NodeFrame.js +2 -2
- package/examples/jsm/nodes/core/NodeVarying.js +7 -4
- package/examples/jsm/nodes/core/VaryingNode.js +6 -4
- package/examples/jsm/nodes/core/constants.js +13 -13
- package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
- package/examples/jsm/nodes/display/ViewportNode.js +106 -0
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +3 -1
- package/examples/jsm/nodes/materials/Materials.js +9 -7
- package/examples/jsm/nodes/materials/NodeMaterial.js +9 -1
- package/examples/jsm/nodes/materialx/MaterialXNodes.js +6 -2
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
- package/examples/jsm/nodes/math/MathNode.js +5 -0
- package/examples/jsm/nodes/math/OperatorNode.js +6 -1
- package/examples/jsm/nodes/shadernode/ShaderNode.js +26 -13
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +2 -0
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +18 -0
- package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
- package/examples/jsm/nodes/utils/JoinNode.js +8 -2
- package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
- package/examples/jsm/nodes/utils/TimerNode.js +1 -1
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
- package/examples/jsm/postprocessing/BloomPass.js +22 -3
- package/examples/jsm/postprocessing/BokehPass.js +18 -4
- package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
- package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
- package/examples/jsm/postprocessing/EffectComposer.js +9 -0
- package/examples/jsm/postprocessing/FilmPass.js +8 -0
- package/examples/jsm/postprocessing/GlitchPass.js +13 -1
- package/examples/jsm/postprocessing/HalftonePass.js +8 -0
- package/examples/jsm/postprocessing/OutlinePass.js +10 -0
- package/examples/jsm/postprocessing/Pass.js +2 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
- package/examples/jsm/postprocessing/SAOPass.js +20 -0
- package/examples/jsm/postprocessing/SMAAPass.js +16 -0
- package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
- package/examples/jsm/postprocessing/SavePass.js +17 -1
- package/examples/jsm/postprocessing/ShaderPass.js +8 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
- package/examples/jsm/postprocessing/TexturePass.js +8 -0
- package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +39 -16
- package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +36 -7
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -12
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +35 -5
- package/examples/jsm/shaders/MMDToonShader.js +0 -2
- package/examples/jsm/shaders/VelocityShader.js +128 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +130 -6
- package/examples/jsm/utils/SceneUtils.js +129 -4
- package/examples/jsm/utils/TextureUtils.js +85 -0
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +6 -3
- package/package.json +11 -12
- package/src/Three.js +1 -0
- package/src/audio/AudioContext.js +5 -5
- package/src/cameras/CubeCamera.js +14 -14
- package/src/constants.js +1 -1
- package/src/core/InstancedBufferGeometry.js +1 -7
- package/src/extras/Earcut.js +67 -67
- package/src/helpers/DirectionalLightHelper.js +5 -1
- package/src/helpers/HemisphereLightHelper.js +4 -1
- package/src/helpers/PointLightHelper.js +2 -1
- package/src/helpers/SpotLightHelper.js +4 -2
- package/src/lights/PointLight.js +2 -2
- package/src/lights/SpotLight.js +2 -2
- package/src/loaders/FileLoader.js +4 -1
- package/src/loaders/ObjectLoader.js +5 -1
- package/src/materials/Material.js +1 -1
- package/src/math/Color.js +5 -5
- package/src/math/Matrix3.js +53 -18
- package/src/math/Ray.js +2 -5
- package/src/math/Sphere.js +19 -26
- package/src/objects/InstancedMesh.js +7 -0
- package/src/objects/LOD.js +25 -6
- package/src/renderers/WebGL3DRenderTarget.js +1 -1
- package/src/renderers/WebGLArrayRenderTarget.js +1 -1
- package/src/renderers/WebGLCubeRenderTarget.js +1 -1
- package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
- package/src/renderers/WebGLRenderTarget.js +1 -1
- package/src/renderers/WebGLRenderer.js +36 -62
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk.js +3 -0
- package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
- package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +20 -6
- package/src/renderers/shaders/UniformsLib.js +1 -1
- package/src/renderers/shaders/UniformsUtils.js +15 -0
- package/src/renderers/webgl/WebGLAttributes.js +2 -0
- package/src/renderers/webgl/WebGLBackground.js +15 -7
- package/src/renderers/webgl/WebGLCubeUVMaps.js +1 -1
- package/src/renderers/webgl/WebGLLights.js +0 -4
- package/src/renderers/webgl/WebGLMaterials.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -1
- package/src/renderers/webgl/WebGLState.js +31 -1
- package/src/renderers/webgl/WebGLTextures.js +71 -18
- package/src/renderers/webgl/WebGLUniforms.js +116 -20
- package/src/renderers/webgl/WebGLUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +46 -13
- package/src/renderers/webxr/WebXRManager.js +85 -3
- package/src/scenes/Scene.js +8 -0
- package/src/textures/CompressedArrayTexture.js +18 -0
- package/examples/js/libs/lottie_canvas.js +0 -12751
- package/examples/js/shaders/PixelShader.js +0 -51
- package/examples/jsm/shaders/PixelShader.js +0 -44
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
const _taskCache = new WeakMap();
|
|
17
|
-
|
|
18
17
|
class BasisTextureLoader extends THREE.Loader {
|
|
19
18
|
|
|
20
19
|
constructor( manager ) {
|
|
@@ -31,21 +30,18 @@
|
|
|
31
30
|
console.warn( 'THREE.BasisTextureLoader: This loader is deprecated, and will be removed in a future release. ' + 'Instead, use Basis Universal compression in KTX2 (.ktx2) files with THREE.KTX2Loader.' );
|
|
32
31
|
|
|
33
32
|
}
|
|
34
|
-
|
|
35
33
|
setTranscoderPath( path ) {
|
|
36
34
|
|
|
37
35
|
this.transcoderPath = path;
|
|
38
36
|
return this;
|
|
39
37
|
|
|
40
38
|
}
|
|
41
|
-
|
|
42
39
|
setWorkerLimit( workerLimit ) {
|
|
43
40
|
|
|
44
41
|
this.workerLimit = workerLimit;
|
|
45
42
|
return this;
|
|
46
43
|
|
|
47
44
|
}
|
|
48
|
-
|
|
49
45
|
detectSupport( renderer ) {
|
|
50
46
|
|
|
51
47
|
this.workerConfig = {
|
|
@@ -59,7 +55,6 @@
|
|
|
59
55
|
return this;
|
|
60
56
|
|
|
61
57
|
}
|
|
62
|
-
|
|
63
58
|
load( url, onLoad, onProgress, onError ) {
|
|
64
59
|
|
|
65
60
|
const loader = new THREE.FileLoader( this.manager );
|
|
@@ -73,7 +68,6 @@
|
|
|
73
68
|
if ( _taskCache.has( buffer ) ) {
|
|
74
69
|
|
|
75
70
|
const cachedTask = _taskCache.get( buffer );
|
|
76
|
-
|
|
77
71
|
return cachedTask.promise.then( onLoad ).catch( onError );
|
|
78
72
|
|
|
79
73
|
}
|
|
@@ -90,41 +84,38 @@
|
|
|
90
84
|
return texture;
|
|
91
85
|
|
|
92
86
|
}
|
|
93
|
-
/** Low-level transcoding API, exposed for use by KTX2Loader. */
|
|
94
|
-
|
|
95
87
|
|
|
88
|
+
/** Low-level transcoding API, exposed for use by KTX2Loader. */
|
|
96
89
|
parseInternalAsync( options ) {
|
|
97
90
|
|
|
98
91
|
const {
|
|
99
92
|
levels
|
|
100
93
|
} = options;
|
|
101
94
|
const buffers = new Set();
|
|
102
|
-
|
|
103
95
|
for ( let i = 0; i < levels.length; i ++ ) {
|
|
104
96
|
|
|
105
97
|
buffers.add( levels[ i ].data.buffer );
|
|
106
98
|
|
|
107
99
|
}
|
|
108
100
|
|
|
109
|
-
return this._createTexture( Array.from( buffers ), {
|
|
101
|
+
return this._createTexture( Array.from( buffers ), {
|
|
102
|
+
...options,
|
|
110
103
|
lowLevel: true
|
|
111
104
|
} );
|
|
112
105
|
|
|
113
106
|
}
|
|
107
|
+
|
|
114
108
|
/**
|
|
115
109
|
* @param {ArrayBuffer[]} buffers
|
|
116
110
|
* @param {object?} config
|
|
117
111
|
* @return {Promise<CompressedTexture>}
|
|
118
112
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
113
|
_createTexture( buffers, config = {} ) {
|
|
122
114
|
|
|
123
115
|
let worker;
|
|
124
116
|
let taskID;
|
|
125
117
|
const taskConfig = config;
|
|
126
118
|
let taskCost = 0;
|
|
127
|
-
|
|
128
119
|
for ( let i = 0; i < buffers.length; i ++ ) {
|
|
129
120
|
|
|
130
121
|
taskCost += buffers[ i ].byteLength;
|
|
@@ -165,9 +156,9 @@
|
|
|
165
156
|
texture.needsUpdate = true;
|
|
166
157
|
return texture;
|
|
167
158
|
|
|
168
|
-
} );
|
|
169
|
-
|
|
159
|
+
} );
|
|
170
160
|
|
|
161
|
+
// Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)
|
|
171
162
|
texturePending.catch( () => true ).then( () => {
|
|
172
163
|
|
|
173
164
|
if ( worker && taskID ) {
|
|
@@ -177,16 +168,15 @@
|
|
|
177
168
|
|
|
178
169
|
}
|
|
179
170
|
|
|
180
|
-
} );
|
|
171
|
+
} );
|
|
181
172
|
|
|
173
|
+
// Cache the task result.
|
|
182
174
|
_taskCache.set( buffers[ 0 ], {
|
|
183
175
|
promise: texturePending
|
|
184
176
|
} );
|
|
185
|
-
|
|
186
177
|
return texturePending;
|
|
187
178
|
|
|
188
179
|
}
|
|
189
|
-
|
|
190
180
|
_initTranscoder() {
|
|
191
181
|
|
|
192
182
|
if ( ! this.transcoderPending ) {
|
|
@@ -199,8 +189,9 @@
|
|
|
199
189
|
|
|
200
190
|
jsLoader.load( 'basis_transcoder.js', resolve, undefined, reject );
|
|
201
191
|
|
|
202
|
-
} );
|
|
192
|
+
} );
|
|
203
193
|
|
|
194
|
+
// Load transcoder WASM binary.
|
|
204
195
|
const binaryLoader = new THREE.FileLoader( this.manager );
|
|
205
196
|
binaryLoader.setPath( this.transcoderPath );
|
|
206
197
|
binaryLoader.setResponseType( 'arraybuffer' );
|
|
@@ -224,7 +215,6 @@
|
|
|
224
215
|
return this.transcoderPending;
|
|
225
216
|
|
|
226
217
|
}
|
|
227
|
-
|
|
228
218
|
_allocateWorker( taskCost ) {
|
|
229
219
|
|
|
230
220
|
return this._initTranscoder().then( () => {
|
|
@@ -239,23 +229,17 @@
|
|
|
239
229
|
config: this.workerConfig,
|
|
240
230
|
transcoderBinary: this.transcoderBinary
|
|
241
231
|
} );
|
|
242
|
-
|
|
243
232
|
worker.onmessage = function ( e ) {
|
|
244
233
|
|
|
245
234
|
const message = e.data;
|
|
246
|
-
|
|
247
235
|
switch ( message.type ) {
|
|
248
236
|
|
|
249
237
|
case 'transcode':
|
|
250
238
|
worker._callbacks[ message.id ].resolve( message );
|
|
251
|
-
|
|
252
239
|
break;
|
|
253
|
-
|
|
254
240
|
case 'error':
|
|
255
241
|
worker._callbacks[ message.id ].reject( message );
|
|
256
|
-
|
|
257
242
|
break;
|
|
258
|
-
|
|
259
243
|
default:
|
|
260
244
|
console.error( 'THREE.BasisTextureLoader: Unexpected message, "' + message.type + '"' );
|
|
261
245
|
|
|
@@ -282,7 +266,6 @@
|
|
|
282
266
|
} );
|
|
283
267
|
|
|
284
268
|
}
|
|
285
|
-
|
|
286
269
|
dispose() {
|
|
287
270
|
|
|
288
271
|
for ( let i = 0; i < this.workerPool.length; i ++ ) {
|
|
@@ -297,8 +280,8 @@
|
|
|
297
280
|
}
|
|
298
281
|
|
|
299
282
|
}
|
|
300
|
-
/* CONSTANTS */
|
|
301
283
|
|
|
284
|
+
/* CONSTANTS */
|
|
302
285
|
|
|
303
286
|
BasisTextureLoader.BasisFormat = {
|
|
304
287
|
ETC1S: 0,
|
|
@@ -335,6 +318,7 @@
|
|
|
335
318
|
RGB_PVRTC_4BPPV1_Format: THREE.RGB_PVRTC_4BPPV1_Format,
|
|
336
319
|
RGB_S3TC_DXT1_Format: THREE.RGB_S3TC_DXT1_Format
|
|
337
320
|
};
|
|
321
|
+
|
|
338
322
|
/* WEB WORKER */
|
|
339
323
|
|
|
340
324
|
BasisTextureLoader.BasisWorker = function () {
|
|
@@ -343,22 +327,18 @@
|
|
|
343
327
|
let transcoderPending;
|
|
344
328
|
let BasisModule;
|
|
345
329
|
const EngineFormat = _EngineFormat; // eslint-disable-line no-undef
|
|
346
|
-
|
|
347
330
|
const TranscoderFormat = _TranscoderFormat; // eslint-disable-line no-undef
|
|
348
|
-
|
|
349
331
|
const BasisFormat = _BasisFormat; // eslint-disable-line no-undef
|
|
350
332
|
|
|
351
333
|
onmessage = function ( e ) {
|
|
352
334
|
|
|
353
335
|
const message = e.data;
|
|
354
|
-
|
|
355
336
|
switch ( message.type ) {
|
|
356
337
|
|
|
357
338
|
case 'init':
|
|
358
339
|
config = message.config;
|
|
359
340
|
init( message.transcoderBinary );
|
|
360
341
|
break;
|
|
361
|
-
|
|
362
342
|
case 'transcode':
|
|
363
343
|
transcoderPending.then( () => {
|
|
364
344
|
|
|
@@ -372,7 +352,6 @@
|
|
|
372
352
|
format
|
|
373
353
|
} = message.taskConfig.lowLevel ? transcodeLowLevel( message.taskConfig ) : transcode( message.buffers[ 0 ] );
|
|
374
354
|
const buffers = [];
|
|
375
|
-
|
|
376
355
|
for ( let i = 0; i < mipmaps.length; ++ i ) {
|
|
377
356
|
|
|
378
357
|
buffers.push( mipmaps[ i ].data.buffer );
|
|
@@ -440,7 +419,6 @@
|
|
|
440
419
|
const blockByteLength = BasisModule.getBytesPerBlockOrPixel( transcoderFormat );
|
|
441
420
|
assert( BasisModule.isFormatSupported( transcoderFormat ), 'THREE.BasisTextureLoader: Unsupported format.' );
|
|
442
421
|
const mipmaps = [];
|
|
443
|
-
|
|
444
422
|
if ( basisFormat === BasisFormat.ETC1S ) {
|
|
445
423
|
|
|
446
424
|
const transcoder = new BasisModule.LowLevelETC1SImageTranscoder();
|
|
@@ -451,7 +429,6 @@
|
|
|
451
429
|
selectorsData,
|
|
452
430
|
tablesData
|
|
453
431
|
} = taskConfig.globalData;
|
|
454
|
-
|
|
455
432
|
try {
|
|
456
433
|
|
|
457
434
|
let ok;
|
|
@@ -459,7 +436,6 @@
|
|
|
459
436
|
assert( ok, 'THREE.BasisTextureLoader: decodePalettes() failed.' );
|
|
460
437
|
ok = transcoder.decodeTables( tablesData );
|
|
461
438
|
assert( ok, 'THREE.BasisTextureLoader: decodeTables() failed.' );
|
|
462
|
-
|
|
463
439
|
for ( let i = 0; i < taskConfig.levels.length; i ++ ) {
|
|
464
440
|
|
|
465
441
|
const level = taskConfig.levels[ i ];
|
|
@@ -519,7 +495,6 @@
|
|
|
519
495
|
const height = basisFile.getImageHeight( 0, 0 );
|
|
520
496
|
const levels = basisFile.getNumLevels( 0 );
|
|
521
497
|
const hasAlpha = basisFile.getHasAlpha();
|
|
522
|
-
|
|
523
498
|
function cleanup() {
|
|
524
499
|
|
|
525
500
|
basisFile.close();
|
|
@@ -531,7 +506,6 @@
|
|
|
531
506
|
transcoderFormat,
|
|
532
507
|
engineFormat
|
|
533
508
|
} = getTranscoderFormat( basisFormat, width, height, hasAlpha );
|
|
534
|
-
|
|
535
509
|
if ( ! width || ! height || ! levels ) {
|
|
536
510
|
|
|
537
511
|
cleanup();
|
|
@@ -547,14 +521,12 @@
|
|
|
547
521
|
}
|
|
548
522
|
|
|
549
523
|
const mipmaps = [];
|
|
550
|
-
|
|
551
524
|
for ( let mip = 0; mip < levels; mip ++ ) {
|
|
552
525
|
|
|
553
526
|
const mipWidth = basisFile.getImageWidth( 0, mip );
|
|
554
527
|
const mipHeight = basisFile.getImageHeight( 0, mip );
|
|
555
528
|
const dst = new Uint8Array( basisFile.getImageTranscodedSizeInBytes( 0, mip, transcoderFormat ) );
|
|
556
529
|
const status = basisFile.transcodeImage( dst, 0, mip, transcoderFormat, 0, hasAlpha );
|
|
557
|
-
|
|
558
530
|
if ( ! status ) {
|
|
559
531
|
|
|
560
532
|
cleanup();
|
|
@@ -579,7 +551,10 @@
|
|
|
579
551
|
format: engineFormat
|
|
580
552
|
};
|
|
581
553
|
|
|
582
|
-
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
//
|
|
557
|
+
|
|
583
558
|
// Optimal choice of a transcoder target format depends on the Basis format (ETC1S or UASTC),
|
|
584
559
|
// device capabilities, and texture dimensions. The list below ranks the formats separately
|
|
585
560
|
// for ETC1S and UASTC.
|
|
@@ -587,8 +562,6 @@
|
|
|
587
562
|
// In some cases, transcoding UASTC to RGBA32 might be preferred for higher quality (at
|
|
588
563
|
// significant memory cost) compared to ETC1/2, BC1/3, and PVRTC. The transcoder currently
|
|
589
564
|
// chooses RGBA32 only as a last resort and does not expose that option to the caller.
|
|
590
|
-
|
|
591
|
-
|
|
592
565
|
const FORMAT_OPTIONS = [ {
|
|
593
566
|
if: 'astcSupported',
|
|
594
567
|
basisFormat: [ BasisFormat.UASTC_4x4 ],
|
|
@@ -648,13 +621,11 @@
|
|
|
648
621
|
return a.priorityUASTC - b.priorityUASTC;
|
|
649
622
|
|
|
650
623
|
} );
|
|
651
|
-
|
|
652
624
|
function getTranscoderFormat( basisFormat, width, height, hasAlpha ) {
|
|
653
625
|
|
|
654
626
|
let transcoderFormat;
|
|
655
627
|
let engineFormat;
|
|
656
628
|
const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;
|
|
657
|
-
|
|
658
629
|
for ( let i = 0; i < options.length; i ++ ) {
|
|
659
630
|
|
|
660
631
|
const opt = options[ i ];
|
|
@@ -701,7 +672,6 @@
|
|
|
701
672
|
function getTranscodedImageByteLength( transcoderFormat, width, height ) {
|
|
702
673
|
|
|
703
674
|
const blockByteLength = BasisModule.getBytesPerBlockOrPixel( transcoderFormat );
|
|
704
|
-
|
|
705
675
|
if ( BasisModule.formatIsUncompressed( transcoderFormat ) ) {
|
|
706
676
|
|
|
707
677
|
return width * height * blockByteLength;
|