@needle-tools/three 0.145.4 → 0.146.2
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 +32586 -35951
- package/build/three.js +32600 -35965
- package/build/three.min.js +6 -7
- package/build/three.module.js +1547 -1154
- 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 +75 -19
- 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/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
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
import {
|
|
15
15
|
CompressedTexture,
|
|
16
|
+
CompressedArrayTexture,
|
|
16
17
|
Data3DTexture,
|
|
17
18
|
DataTexture,
|
|
18
19
|
FileLoader,
|
|
@@ -35,7 +36,7 @@ import {
|
|
|
35
36
|
RGBAFormat,
|
|
36
37
|
RGFormat,
|
|
37
38
|
sRGBEncoding,
|
|
38
|
-
UnsignedByteType
|
|
39
|
+
UnsignedByteType,
|
|
39
40
|
} from 'three';
|
|
40
41
|
import { WorkerPool } from '../utils/WorkerPool.js';
|
|
41
42
|
import {
|
|
@@ -236,16 +237,21 @@ class KTX2Loader extends Loader {
|
|
|
236
237
|
|
|
237
238
|
}
|
|
238
239
|
|
|
239
|
-
_createTextureFrom( transcodeResult ) {
|
|
240
|
+
_createTextureFrom( transcodeResult, container ) {
|
|
240
241
|
|
|
241
242
|
const { mipmaps, width, height, format, type, error, dfdTransferFn, dfdFlags } = transcodeResult;
|
|
242
243
|
|
|
243
244
|
if ( type === 'error' ) return Promise.reject( error );
|
|
244
245
|
|
|
245
|
-
const texture =
|
|
246
|
+
const texture = container.layerCount > 1
|
|
247
|
+
? new CompressedArrayTexture( mipmaps, width, height, container.layerCount, format, UnsignedByteType )
|
|
248
|
+
: new CompressedTexture( mipmaps, width, height, format, UnsignedByteType );
|
|
249
|
+
|
|
250
|
+
|
|
246
251
|
texture.minFilter = mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter;
|
|
247
252
|
texture.magFilter = LinearFilter;
|
|
248
253
|
texture.generateMipmaps = false;
|
|
254
|
+
|
|
249
255
|
texture.needsUpdate = true;
|
|
250
256
|
texture.encoding = dfdTransferFn === KHR_DF_TRANSFER_SRGB ? sRGBEncoding : LinearEncoding;
|
|
251
257
|
texture.premultiplyAlpha = !! ( dfdFlags & KHR_DF_FLAG_ALPHA_PREMULTIPLIED );
|
|
@@ -257,9 +263,9 @@ class KTX2Loader extends Loader {
|
|
|
257
263
|
/**
|
|
258
264
|
* @param {ArrayBuffer} buffer
|
|
259
265
|
* @param {object?} config
|
|
260
|
-
* @return {Promise<CompressedTexture|DataTexture|Data3DTexture>}
|
|
266
|
+
* @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
|
|
261
267
|
*/
|
|
262
|
-
_createTexture( buffer, config = {} ) {
|
|
268
|
+
async _createTexture( buffer, config = {} ) {
|
|
263
269
|
|
|
264
270
|
const container = read( new Uint8Array( buffer ) );
|
|
265
271
|
|
|
@@ -270,13 +276,12 @@ class KTX2Loader extends Loader {
|
|
|
270
276
|
}
|
|
271
277
|
|
|
272
278
|
//
|
|
273
|
-
|
|
274
279
|
const taskConfig = config;
|
|
275
280
|
const texturePending = this.init().then( () => {
|
|
276
281
|
|
|
277
282
|
return this.workerPool.postMessage( { type: 'transcode', buffer, taskConfig: taskConfig }, [ buffer ] );
|
|
278
283
|
|
|
279
|
-
} ).then( ( e ) => this._createTextureFrom( e.data ) );
|
|
284
|
+
} ).then( ( e ) => this._createTextureFrom( e.data, container ) );
|
|
280
285
|
|
|
281
286
|
// Cache the task result.
|
|
282
287
|
_taskCache.set( buffer, { promise: texturePending } );
|
|
@@ -437,6 +442,7 @@ KTX2Loader.BasisWorker = function () {
|
|
|
437
442
|
const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;
|
|
438
443
|
const width = ktx2File.getWidth();
|
|
439
444
|
const height = ktx2File.getHeight();
|
|
445
|
+
const layers = ktx2File.getLayers() || 1;
|
|
440
446
|
const levels = ktx2File.getLevels();
|
|
441
447
|
const hasAlpha = ktx2File.getHasAlpha();
|
|
442
448
|
const dfdTransferFn = ktx2File.getDFDTransferFunc();
|
|
@@ -462,30 +468,39 @@ KTX2Loader.BasisWorker = function () {
|
|
|
462
468
|
|
|
463
469
|
for ( let mip = 0; mip < levels; mip ++ ) {
|
|
464
470
|
|
|
465
|
-
const
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
0,
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
471
|
+
const layerMips = [];
|
|
472
|
+
|
|
473
|
+
let mipWidth, mipHeight;
|
|
474
|
+
|
|
475
|
+
for ( let layer = 0; layer < layers; layer ++ ) {
|
|
476
|
+
|
|
477
|
+
const levelInfo = ktx2File.getImageLevelInfo( mip, layer, 0 );
|
|
478
|
+
mipWidth = levelInfo.origWidth;
|
|
479
|
+
mipHeight = levelInfo.origHeight;
|
|
480
|
+
const dst = new Uint8Array( ktx2File.getImageTranscodedSizeInBytes( mip, layer, 0, transcoderFormat ) );
|
|
481
|
+
const status = ktx2File.transcodeImage(
|
|
482
|
+
dst,
|
|
483
|
+
mip,
|
|
484
|
+
layer,
|
|
485
|
+
0,
|
|
486
|
+
transcoderFormat,
|
|
487
|
+
0,
|
|
488
|
+
- 1,
|
|
489
|
+
- 1,
|
|
490
|
+
);
|
|
491
|
+
|
|
492
|
+
if ( ! status ) {
|
|
480
493
|
|
|
481
|
-
|
|
494
|
+
cleanup();
|
|
495
|
+
throw new Error( 'THREE.KTX2Loader: .transcodeImage failed.' );
|
|
482
496
|
|
|
483
|
-
|
|
484
|
-
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
layerMips.push( dst );
|
|
485
500
|
|
|
486
501
|
}
|
|
487
502
|
|
|
488
|
-
mipmaps.push( { data:
|
|
503
|
+
mipmaps.push( { data: concat( layerMips ), width: mipWidth, height: mipHeight } );
|
|
489
504
|
|
|
490
505
|
}
|
|
491
506
|
|
|
@@ -612,6 +627,33 @@ KTX2Loader.BasisWorker = function () {
|
|
|
612
627
|
|
|
613
628
|
}
|
|
614
629
|
|
|
630
|
+
/** Concatenates N byte arrays. */
|
|
631
|
+
function concat( arrays ) {
|
|
632
|
+
|
|
633
|
+
let totalByteLength = 0;
|
|
634
|
+
|
|
635
|
+
for ( const array of arrays ) {
|
|
636
|
+
|
|
637
|
+
totalByteLength += array.byteLength;
|
|
638
|
+
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
const result = new Uint8Array( totalByteLength );
|
|
642
|
+
|
|
643
|
+
let byteOffset = 0;
|
|
644
|
+
|
|
645
|
+
for ( const array of arrays ) {
|
|
646
|
+
|
|
647
|
+
result.set( array, byteOffset );
|
|
648
|
+
|
|
649
|
+
byteOffset += array.byteLength;
|
|
650
|
+
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
return result;
|
|
654
|
+
|
|
655
|
+
}
|
|
656
|
+
|
|
615
657
|
};
|
|
616
658
|
|
|
617
659
|
//
|
|
@@ -673,8 +715,6 @@ async function createDataTexture( container ) {
|
|
|
673
715
|
|
|
674
716
|
}
|
|
675
717
|
|
|
676
|
-
//
|
|
677
|
-
|
|
678
718
|
const level = container.levels[ 0 ];
|
|
679
719
|
|
|
680
720
|
let levelData;
|
|
@@ -731,7 +771,6 @@ async function createDataTexture( container ) {
|
|
|
731
771
|
view = levelData;
|
|
732
772
|
|
|
733
773
|
}
|
|
734
|
-
|
|
735
774
|
//
|
|
736
775
|
|
|
737
776
|
const texture = pixelDepth === 0
|
|
@@ -692,7 +692,7 @@ class LDrawParsedCache {
|
|
|
692
692
|
result.subobjects = original.subobjects;
|
|
693
693
|
result.fileName = original.fileName;
|
|
694
694
|
result.totalFaces = original.totalFaces;
|
|
695
|
-
result.
|
|
695
|
+
result.startingBuildingStep = original.startingBuildingStep;
|
|
696
696
|
result.materials = original.materials;
|
|
697
697
|
result.group = null;
|
|
698
698
|
return result;
|
|
@@ -819,7 +819,7 @@ class LDrawParsedCache {
|
|
|
819
819
|
let bfcInverted = false;
|
|
820
820
|
let bfcCull = true;
|
|
821
821
|
|
|
822
|
-
let
|
|
822
|
+
let startingBuildingStep = false;
|
|
823
823
|
|
|
824
824
|
// Parse all line commands
|
|
825
825
|
for ( let lineIndex = 0; lineIndex < numLines; lineIndex ++ ) {
|
|
@@ -994,7 +994,7 @@ class LDrawParsedCache {
|
|
|
994
994
|
|
|
995
995
|
case 'STEP':
|
|
996
996
|
|
|
997
|
-
|
|
997
|
+
startingBuildingStep = true;
|
|
998
998
|
|
|
999
999
|
break;
|
|
1000
1000
|
|
|
@@ -1068,9 +1068,10 @@ class LDrawParsedCache {
|
|
|
1068
1068
|
matrix: matrix,
|
|
1069
1069
|
fileName: fileName,
|
|
1070
1070
|
inverted: bfcInverted,
|
|
1071
|
-
|
|
1071
|
+
startingBuildingStep: startingBuildingStep
|
|
1072
1072
|
} );
|
|
1073
1073
|
|
|
1074
|
+
startingBuildingStep = false;
|
|
1074
1075
|
bfcInverted = false;
|
|
1075
1076
|
|
|
1076
1077
|
break;
|
|
@@ -1233,7 +1234,7 @@ class LDrawParsedCache {
|
|
|
1233
1234
|
author,
|
|
1234
1235
|
subobjects,
|
|
1235
1236
|
totalFaces,
|
|
1236
|
-
|
|
1237
|
+
startingBuildingStep,
|
|
1237
1238
|
materials,
|
|
1238
1239
|
fileName,
|
|
1239
1240
|
group: null
|
|
@@ -1389,7 +1390,7 @@ class LDrawPartsGeometryCache {
|
|
|
1389
1390
|
|
|
1390
1391
|
const subobjectGroup = subobjectInfo;
|
|
1391
1392
|
subobject.matrix.decompose( subobjectGroup.position, subobjectGroup.quaternion, subobjectGroup.scale );
|
|
1392
|
-
subobjectGroup.userData.
|
|
1393
|
+
subobjectGroup.userData.startingBuildingStep = subobject.startingBuildingStep;
|
|
1393
1394
|
subobjectGroup.name = subobject.fileName;
|
|
1394
1395
|
|
|
1395
1396
|
loader.applyMaterialsToMesh( subobjectGroup, subobject.colorCode, info.materials );
|
|
@@ -1958,7 +1959,7 @@ class LDrawLoader extends Loader {
|
|
|
1958
1959
|
.then( group => {
|
|
1959
1960
|
|
|
1960
1961
|
this.applyMaterialsToMesh( group, MAIN_COLOUR_CODE, this.materialLibrary, true );
|
|
1961
|
-
this.
|
|
1962
|
+
this.computeBuildingSteps( group );
|
|
1962
1963
|
group.userData.fileName = url;
|
|
1963
1964
|
onLoad( group );
|
|
1964
1965
|
|
|
@@ -1976,7 +1977,7 @@ class LDrawLoader extends Loader {
|
|
|
1976
1977
|
.then( group => {
|
|
1977
1978
|
|
|
1978
1979
|
this.applyMaterialsToMesh( group, MAIN_COLOUR_CODE, this.materialLibrary, true );
|
|
1979
|
-
this.
|
|
1980
|
+
this.computeBuildingSteps( group );
|
|
1980
1981
|
group.userData.fileName = '';
|
|
1981
1982
|
onLoad( group );
|
|
1982
1983
|
|
|
@@ -2433,9 +2434,9 @@ class LDrawLoader extends Loader {
|
|
|
2433
2434
|
|
|
2434
2435
|
}
|
|
2435
2436
|
|
|
2436
|
-
|
|
2437
|
+
computeBuildingSteps( model ) {
|
|
2437
2438
|
|
|
2438
|
-
// Sets userdata.
|
|
2439
|
+
// Sets userdata.buildingStep number in Group objects and userData.numBuildingSteps number in the root Group object.
|
|
2439
2440
|
|
|
2440
2441
|
let stepNumber = 0;
|
|
2441
2442
|
|
|
@@ -2443,19 +2444,19 @@ class LDrawLoader extends Loader {
|
|
|
2443
2444
|
|
|
2444
2445
|
if ( c.isGroup ) {
|
|
2445
2446
|
|
|
2446
|
-
if ( c.userData.
|
|
2447
|
+
if ( c.userData.startingBuildingStep ) {
|
|
2447
2448
|
|
|
2448
2449
|
stepNumber ++;
|
|
2449
2450
|
|
|
2450
2451
|
}
|
|
2451
2452
|
|
|
2452
|
-
c.userData.
|
|
2453
|
+
c.userData.buildingStep = stepNumber;
|
|
2453
2454
|
|
|
2454
2455
|
}
|
|
2455
2456
|
|
|
2456
2457
|
} );
|
|
2457
2458
|
|
|
2458
|
-
model.userData.
|
|
2459
|
+
model.userData.numBuildingSteps = stepNumber + 1;
|
|
2459
2460
|
|
|
2460
2461
|
}
|
|
2461
2462
|
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
NearestFilter
|
|
6
6
|
} from 'three';
|
|
7
7
|
|
|
8
|
+
import lottie from '../libs/lottie_canvas.module.js';
|
|
9
|
+
|
|
8
10
|
class LottieLoader extends Loader {
|
|
9
11
|
|
|
10
12
|
setQuality( value ) {
|
|
@@ -28,7 +30,7 @@ class LottieLoader extends Loader {
|
|
|
28
30
|
|
|
29
31
|
const data = JSON.parse( text );
|
|
30
32
|
|
|
31
|
-
//
|
|
33
|
+
// lottie uses container.offetWidth and offsetHeight
|
|
32
34
|
// to define width/height
|
|
33
35
|
|
|
34
36
|
const container = document.createElement( 'div' );
|
|
@@ -36,7 +38,7 @@ class LottieLoader extends Loader {
|
|
|
36
38
|
container.style.height = data.h + 'px';
|
|
37
39
|
document.body.appendChild( container );
|
|
38
40
|
|
|
39
|
-
const animation =
|
|
41
|
+
const animation = lottie.loadAnimation( {
|
|
40
42
|
container: container,
|
|
41
43
|
animType: 'canvas',
|
|
42
44
|
loop: true,
|