@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
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
super( manager );
|
|
12
12
|
|
|
13
13
|
}
|
|
14
|
+
|
|
14
15
|
/**
|
|
15
16
|
* Loads and parses a MTL asset from a URL.
|
|
16
17
|
*
|
|
@@ -24,8 +25,6 @@
|
|
|
24
25
|
* @note In order for relative texture references to resolve correctly
|
|
25
26
|
* you must call setResourcePath() explicitly prior to load.
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
28
|
load( url, onLoad, onProgress, onError ) {
|
|
30
29
|
|
|
31
30
|
const scope = this;
|
|
@@ -59,13 +58,13 @@
|
|
|
59
58
|
}, onProgress, onError );
|
|
60
59
|
|
|
61
60
|
}
|
|
62
|
-
|
|
63
61
|
setMaterialOptions( value ) {
|
|
64
62
|
|
|
65
63
|
this.materialOptions = value;
|
|
66
64
|
return this;
|
|
67
65
|
|
|
68
66
|
}
|
|
67
|
+
|
|
69
68
|
/**
|
|
70
69
|
* Parses a MTL file.
|
|
71
70
|
*
|
|
@@ -77,20 +76,16 @@
|
|
|
77
76
|
* @note In order for relative texture references to resolve correctly
|
|
78
77
|
* you must call setResourcePath() explicitly prior to parse.
|
|
79
78
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
79
|
parse( text, path ) {
|
|
83
80
|
|
|
84
81
|
const lines = text.split( '\n' );
|
|
85
82
|
let info = {};
|
|
86
83
|
const delimiter_pattern = /\s+/;
|
|
87
84
|
const materialsInfo = {};
|
|
88
|
-
|
|
89
85
|
for ( let i = 0; i < lines.length; i ++ ) {
|
|
90
86
|
|
|
91
87
|
let line = lines[ i ];
|
|
92
88
|
line = line.trim();
|
|
93
|
-
|
|
94
89
|
if ( line.length === 0 || line.charAt( 0 ) === '#' ) {
|
|
95
90
|
|
|
96
91
|
// Blank line or comment ignore
|
|
@@ -103,10 +98,10 @@
|
|
|
103
98
|
key = key.toLowerCase();
|
|
104
99
|
let value = pos >= 0 ? line.substring( pos + 1 ) : '';
|
|
105
100
|
value = value.trim();
|
|
106
|
-
|
|
107
101
|
if ( key === 'newmtl' ) {
|
|
108
102
|
|
|
109
103
|
// New material
|
|
104
|
+
|
|
110
105
|
info = {
|
|
111
106
|
name: value
|
|
112
107
|
};
|
|
@@ -138,6 +133,7 @@
|
|
|
138
133
|
}
|
|
139
134
|
|
|
140
135
|
}
|
|
136
|
+
|
|
141
137
|
/**
|
|
142
138
|
* Create a new MTLLoader.MaterialCreator
|
|
143
139
|
* @param baseUrl - Url relative to which textures are loaded
|
|
@@ -153,7 +149,6 @@
|
|
|
153
149
|
* @constructor
|
|
154
150
|
*/
|
|
155
151
|
|
|
156
|
-
|
|
157
152
|
class MaterialCreator {
|
|
158
153
|
|
|
159
154
|
constructor( baseUrl = '', options = {} ) {
|
|
@@ -169,20 +164,17 @@
|
|
|
169
164
|
this.wrap = this.options.wrap !== undefined ? this.options.wrap : THREE.RepeatWrapping;
|
|
170
165
|
|
|
171
166
|
}
|
|
172
|
-
|
|
173
167
|
setCrossOrigin( value ) {
|
|
174
168
|
|
|
175
169
|
this.crossOrigin = value;
|
|
176
170
|
return this;
|
|
177
171
|
|
|
178
172
|
}
|
|
179
|
-
|
|
180
173
|
setManager( value ) {
|
|
181
174
|
|
|
182
175
|
this.manager = value;
|
|
183
176
|
|
|
184
177
|
}
|
|
185
|
-
|
|
186
178
|
setMaterials( materialsInfo ) {
|
|
187
179
|
|
|
188
180
|
this.materialsInfo = this.convert( materialsInfo );
|
|
@@ -191,31 +183,29 @@
|
|
|
191
183
|
this.nameLookup = {};
|
|
192
184
|
|
|
193
185
|
}
|
|
194
|
-
|
|
195
186
|
convert( materialsInfo ) {
|
|
196
187
|
|
|
197
188
|
if ( ! this.options ) return materialsInfo;
|
|
198
189
|
const converted = {};
|
|
199
|
-
|
|
200
190
|
for ( const mn in materialsInfo ) {
|
|
201
191
|
|
|
202
192
|
// Convert materials info into normalized form based on options
|
|
193
|
+
|
|
203
194
|
const mat = materialsInfo[ mn ];
|
|
204
195
|
const covmat = {};
|
|
205
196
|
converted[ mn ] = covmat;
|
|
206
|
-
|
|
207
197
|
for ( const prop in mat ) {
|
|
208
198
|
|
|
209
199
|
let save = true;
|
|
210
200
|
let value = mat[ prop ];
|
|
211
201
|
const lprop = prop.toLowerCase();
|
|
212
|
-
|
|
213
202
|
switch ( lprop ) {
|
|
214
203
|
|
|
215
204
|
case 'kd':
|
|
216
205
|
case 'ka':
|
|
217
206
|
case 'ks':
|
|
218
207
|
// Diffuse color (color under white light) using RGB values
|
|
208
|
+
|
|
219
209
|
if ( this.options && this.options.normalizeRGB ) {
|
|
220
210
|
|
|
221
211
|
value = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ];
|
|
@@ -227,6 +217,7 @@
|
|
|
227
217
|
if ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) {
|
|
228
218
|
|
|
229
219
|
// ignore
|
|
220
|
+
|
|
230
221
|
save = false;
|
|
231
222
|
|
|
232
223
|
}
|
|
@@ -234,7 +225,6 @@
|
|
|
234
225
|
}
|
|
235
226
|
|
|
236
227
|
break;
|
|
237
|
-
|
|
238
228
|
default:
|
|
239
229
|
break;
|
|
240
230
|
|
|
@@ -253,7 +243,6 @@
|
|
|
253
243
|
return converted;
|
|
254
244
|
|
|
255
245
|
}
|
|
256
|
-
|
|
257
246
|
preload() {
|
|
258
247
|
|
|
259
248
|
for ( const mn in this.materialsInfo ) {
|
|
@@ -263,17 +252,14 @@
|
|
|
263
252
|
}
|
|
264
253
|
|
|
265
254
|
}
|
|
266
|
-
|
|
267
255
|
getIndex( materialName ) {
|
|
268
256
|
|
|
269
257
|
return this.nameLookup[ materialName ];
|
|
270
258
|
|
|
271
259
|
}
|
|
272
|
-
|
|
273
260
|
getAsArray() {
|
|
274
261
|
|
|
275
262
|
let index = 0;
|
|
276
|
-
|
|
277
263
|
for ( const mn in this.materialsInfo ) {
|
|
278
264
|
|
|
279
265
|
this.materialsArray[ index ] = this.create( mn );
|
|
@@ -285,7 +271,6 @@
|
|
|
285
271
|
return this.materialsArray;
|
|
286
272
|
|
|
287
273
|
}
|
|
288
|
-
|
|
289
274
|
create( materialName ) {
|
|
290
275
|
|
|
291
276
|
if ( this.materials[ materialName ] === undefined ) {
|
|
@@ -297,21 +282,21 @@
|
|
|
297
282
|
return this.materials[ materialName ];
|
|
298
283
|
|
|
299
284
|
}
|
|
300
|
-
|
|
301
285
|
createMaterial_( materialName ) {
|
|
302
286
|
|
|
303
287
|
// Create material
|
|
288
|
+
|
|
304
289
|
const scope = this;
|
|
305
290
|
const mat = this.materialsInfo[ materialName ];
|
|
306
291
|
const params = {
|
|
307
292
|
name: materialName,
|
|
308
293
|
side: this.side
|
|
309
294
|
};
|
|
310
|
-
|
|
311
295
|
function resolveURL( baseUrl, url ) {
|
|
312
296
|
|
|
313
|
-
if ( typeof url !== 'string' || url === '' ) return '';
|
|
297
|
+
if ( typeof url !== 'string' || url === '' ) return '';
|
|
314
298
|
|
|
299
|
+
// Absolute URL
|
|
315
300
|
if ( /^https?:\/\//i.test( url ) ) return url;
|
|
316
301
|
return baseUrl + url;
|
|
317
302
|
|
|
@@ -327,7 +312,6 @@
|
|
|
327
312
|
map.offset.copy( texParams.offset );
|
|
328
313
|
map.wrapS = scope.wrap;
|
|
329
314
|
map.wrapT = scope.wrap;
|
|
330
|
-
|
|
331
315
|
if ( mapType === 'map' || mapType === 'emissiveMap' ) {
|
|
332
316
|
|
|
333
317
|
map.encoding = THREE.sRGBEncoding;
|
|
@@ -343,65 +327,61 @@
|
|
|
343
327
|
const value = mat[ prop ];
|
|
344
328
|
let n;
|
|
345
329
|
if ( value === '' ) continue;
|
|
346
|
-
|
|
347
330
|
switch ( prop.toLowerCase() ) {
|
|
348
331
|
|
|
349
332
|
// Ns is material specular exponent
|
|
333
|
+
|
|
350
334
|
case 'kd':
|
|
351
335
|
// Diffuse color (color under white light) using RGB values
|
|
336
|
+
|
|
352
337
|
params.color = new THREE.Color().fromArray( value ).convertSRGBToLinear();
|
|
353
338
|
break;
|
|
354
|
-
|
|
355
339
|
case 'ks':
|
|
356
340
|
// Specular color (color when light is reflected from shiny surface) using RGB values
|
|
357
341
|
params.specular = new THREE.Color().fromArray( value ).convertSRGBToLinear();
|
|
358
342
|
break;
|
|
359
|
-
|
|
360
343
|
case 'ke':
|
|
361
344
|
// Emissive using RGB values
|
|
362
345
|
params.emissive = new THREE.Color().fromArray( value ).convertSRGBToLinear();
|
|
363
346
|
break;
|
|
364
|
-
|
|
365
347
|
case 'map_kd':
|
|
366
348
|
// Diffuse texture map
|
|
349
|
+
|
|
367
350
|
setMapForType( 'map', value );
|
|
368
351
|
break;
|
|
369
|
-
|
|
370
352
|
case 'map_ks':
|
|
371
353
|
// Specular map
|
|
354
|
+
|
|
372
355
|
setMapForType( 'specularMap', value );
|
|
373
356
|
break;
|
|
374
|
-
|
|
375
357
|
case 'map_ke':
|
|
376
358
|
// Emissive map
|
|
359
|
+
|
|
377
360
|
setMapForType( 'emissiveMap', value );
|
|
378
361
|
break;
|
|
379
|
-
|
|
380
362
|
case 'norm':
|
|
381
363
|
setMapForType( 'normalMap', value );
|
|
382
364
|
break;
|
|
383
|
-
|
|
384
365
|
case 'map_bump':
|
|
385
366
|
case 'bump':
|
|
386
367
|
// Bump texture map
|
|
368
|
+
|
|
387
369
|
setMapForType( 'bumpMap', value );
|
|
388
370
|
break;
|
|
389
|
-
|
|
390
371
|
case 'map_d':
|
|
391
372
|
// Alpha map
|
|
373
|
+
|
|
392
374
|
setMapForType( 'alphaMap', value );
|
|
393
375
|
params.transparent = true;
|
|
394
376
|
break;
|
|
395
|
-
|
|
396
377
|
case 'ns':
|
|
397
378
|
// The specular exponent (defines the focus of the specular highlight)
|
|
398
379
|
// A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.
|
|
380
|
+
|
|
399
381
|
params.shininess = parseFloat( value );
|
|
400
382
|
break;
|
|
401
|
-
|
|
402
383
|
case 'd':
|
|
403
384
|
n = parseFloat( value );
|
|
404
|
-
|
|
405
385
|
if ( n < 1 ) {
|
|
406
386
|
|
|
407
387
|
params.opacity = n;
|
|
@@ -410,11 +390,9 @@
|
|
|
410
390
|
}
|
|
411
391
|
|
|
412
392
|
break;
|
|
413
|
-
|
|
414
393
|
case 'tr':
|
|
415
394
|
n = parseFloat( value );
|
|
416
395
|
if ( this.options && this.options.invertTrProperty ) n = 1 - n;
|
|
417
|
-
|
|
418
396
|
if ( n > 0 ) {
|
|
419
397
|
|
|
420
398
|
params.opacity = 1 - n;
|
|
@@ -423,7 +401,6 @@
|
|
|
423
401
|
}
|
|
424
402
|
|
|
425
403
|
break;
|
|
426
|
-
|
|
427
404
|
default:
|
|
428
405
|
break;
|
|
429
406
|
|
|
@@ -435,7 +412,6 @@
|
|
|
435
412
|
return this.materials[ materialName ];
|
|
436
413
|
|
|
437
414
|
}
|
|
438
|
-
|
|
439
415
|
getTextureParams( value, matParams ) {
|
|
440
416
|
|
|
441
417
|
const texParams = {
|
|
@@ -445,7 +421,6 @@
|
|
|
445
421
|
const items = value.split( /\s+/ );
|
|
446
422
|
let pos;
|
|
447
423
|
pos = items.indexOf( '-bm' );
|
|
448
|
-
|
|
449
424
|
if ( pos >= 0 ) {
|
|
450
425
|
|
|
451
426
|
matParams.bumpScale = parseFloat( items[ pos + 1 ] );
|
|
@@ -454,7 +429,6 @@
|
|
|
454
429
|
}
|
|
455
430
|
|
|
456
431
|
pos = items.indexOf( '-s' );
|
|
457
|
-
|
|
458
432
|
if ( pos >= 0 ) {
|
|
459
433
|
|
|
460
434
|
texParams.scale.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );
|
|
@@ -463,7 +437,6 @@
|
|
|
463
437
|
}
|
|
464
438
|
|
|
465
439
|
pos = items.indexOf( '-o' );
|
|
466
|
-
|
|
467
440
|
if ( pos >= 0 ) {
|
|
468
441
|
|
|
469
442
|
texParams.offset.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );
|
|
@@ -475,12 +448,10 @@
|
|
|
475
448
|
return texParams;
|
|
476
449
|
|
|
477
450
|
}
|
|
478
|
-
|
|
479
451
|
loadTexture( url, mapping, onLoad, onProgress, onError ) {
|
|
480
452
|
|
|
481
453
|
const manager = this.manager !== undefined ? this.manager : THREE.DefaultLoadingManager;
|
|
482
454
|
let loader = manager.getHandler( url );
|
|
483
|
-
|
|
484
455
|
if ( loader === null ) {
|
|
485
456
|
|
|
486
457
|
loader = new THREE.TextureLoader( manager );
|