@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,7 +11,6 @@
|
|
|
11
11
|
return new THREE.AnimationClip( null, period, [ track ] );
|
|
12
12
|
|
|
13
13
|
}
|
|
14
|
-
|
|
15
14
|
static CreateScaleAxisAnimation( period, axis = 'x' ) {
|
|
16
15
|
|
|
17
16
|
const times = [ 0, period ],
|
|
@@ -21,13 +20,11 @@
|
|
|
21
20
|
return new THREE.AnimationClip( null, period, [ track ] );
|
|
22
21
|
|
|
23
22
|
}
|
|
24
|
-
|
|
25
23
|
static CreateShakeAnimation( duration, shakeScale ) {
|
|
26
24
|
|
|
27
25
|
const times = [],
|
|
28
26
|
values = [],
|
|
29
27
|
tmp = new THREE.Vector3();
|
|
30
|
-
|
|
31
28
|
for ( let i = 0; i < duration * 10; i ++ ) {
|
|
32
29
|
|
|
33
30
|
times.push( i / 10 );
|
|
@@ -40,13 +37,11 @@
|
|
|
40
37
|
return new THREE.AnimationClip( null, duration, [ track ] );
|
|
41
38
|
|
|
42
39
|
}
|
|
43
|
-
|
|
44
40
|
static CreatePulsationAnimation( duration, pulseScale ) {
|
|
45
41
|
|
|
46
42
|
const times = [],
|
|
47
43
|
values = [],
|
|
48
44
|
tmp = new THREE.Vector3();
|
|
49
|
-
|
|
50
45
|
for ( let i = 0; i < duration * 10; i ++ ) {
|
|
51
46
|
|
|
52
47
|
times.push( i / 10 );
|
|
@@ -60,7 +55,6 @@
|
|
|
60
55
|
return new THREE.AnimationClip( null, duration, [ track ] );
|
|
61
56
|
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
static CreateVisibilityAnimation( duration ) {
|
|
65
59
|
|
|
66
60
|
const times = [ 0, duration / 2, duration ],
|
|
@@ -70,13 +64,11 @@
|
|
|
70
64
|
return new THREE.AnimationClip( null, duration, [ track ] );
|
|
71
65
|
|
|
72
66
|
}
|
|
73
|
-
|
|
74
67
|
static CreateMaterialColorAnimation( duration, colors ) {
|
|
75
68
|
|
|
76
69
|
const times = [],
|
|
77
70
|
values = [],
|
|
78
71
|
timeStep = duration / colors.length;
|
|
79
|
-
|
|
80
72
|
for ( let i = 0; i <= colors.length; i ++ ) {
|
|
81
73
|
|
|
82
74
|
times.push( i * timeStep );
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
( function () {
|
|
2
2
|
|
|
3
3
|
const _q = new THREE.Quaternion();
|
|
4
|
-
|
|
5
4
|
const _targetPos = new THREE.Vector3();
|
|
6
|
-
|
|
7
5
|
const _targetVec = new THREE.Vector3();
|
|
8
|
-
|
|
9
6
|
const _effectorPos = new THREE.Vector3();
|
|
10
|
-
|
|
11
7
|
const _effectorVec = new THREE.Vector3();
|
|
12
|
-
|
|
13
8
|
const _linkPos = new THREE.Vector3();
|
|
14
|
-
|
|
15
9
|
const _invLinkQ = new THREE.Quaternion();
|
|
16
|
-
|
|
17
10
|
const _linkScale = new THREE.Vector3();
|
|
18
|
-
|
|
19
11
|
const _axis = new THREE.Vector3();
|
|
20
|
-
|
|
21
12
|
const _vector = new THREE.Vector3();
|
|
22
|
-
|
|
23
13
|
const _matrix = new THREE.Matrix4();
|
|
14
|
+
|
|
24
15
|
/**
|
|
25
16
|
* CCD Algorithm
|
|
26
17
|
* - https://sites.google.com/site/auraliusproject/ccd-algorithm
|
|
@@ -41,7 +32,6 @@
|
|
|
41
32
|
* } ];
|
|
42
33
|
*/
|
|
43
34
|
|
|
44
|
-
|
|
45
35
|
class CCDIKSolver {
|
|
46
36
|
|
|
47
37
|
/**
|
|
@@ -52,21 +42,18 @@
|
|
|
52
42
|
|
|
53
43
|
this.mesh = mesh;
|
|
54
44
|
this.iks = iks;
|
|
55
|
-
|
|
56
45
|
this._valid();
|
|
57
46
|
|
|
58
47
|
}
|
|
48
|
+
|
|
59
49
|
/**
|
|
60
50
|
* Update all IK bones.
|
|
61
51
|
*
|
|
62
52
|
* @return {CCDIKSolver}
|
|
63
53
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
54
|
update() {
|
|
67
55
|
|
|
68
56
|
const iks = this.iks;
|
|
69
|
-
|
|
70
57
|
for ( let i = 0, il = iks.length; i < il; i ++ ) {
|
|
71
58
|
|
|
72
59
|
this.updateOne( iks[ i ] );
|
|
@@ -76,64 +63,55 @@
|
|
|
76
63
|
return this;
|
|
77
64
|
|
|
78
65
|
}
|
|
66
|
+
|
|
79
67
|
/**
|
|
80
68
|
* Update one IK bone
|
|
81
69
|
*
|
|
82
70
|
* @param {Object} ik parameter
|
|
83
71
|
* @return {CCDIKSolver}
|
|
84
72
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
73
|
updateOne( ik ) {
|
|
88
74
|
|
|
89
|
-
const bones = this.mesh.skeleton.bones;
|
|
75
|
+
const bones = this.mesh.skeleton.bones;
|
|
90
76
|
|
|
77
|
+
// for reference overhead reduction in loop
|
|
91
78
|
const math = Math;
|
|
92
79
|
const effector = bones[ ik.effector ];
|
|
93
|
-
const target = bones[ ik.target ];
|
|
94
|
-
// because it calls updateMatrixWorld( true ) inside.
|
|
80
|
+
const target = bones[ ik.target ];
|
|
95
81
|
|
|
82
|
+
// don't use getWorldPosition() here for the performance
|
|
83
|
+
// because it calls updateMatrixWorld( true ) inside.
|
|
96
84
|
_targetPos.setFromMatrixPosition( target.matrixWorld );
|
|
97
|
-
|
|
98
85
|
const links = ik.links;
|
|
99
86
|
const iteration = ik.iteration !== undefined ? ik.iteration : 1;
|
|
100
|
-
|
|
101
87
|
for ( let i = 0; i < iteration; i ++ ) {
|
|
102
88
|
|
|
103
89
|
let rotated = false;
|
|
104
|
-
|
|
105
90
|
for ( let j = 0, jl = links.length; j < jl; j ++ ) {
|
|
106
91
|
|
|
107
|
-
const link = bones[ links[ j ].index ];
|
|
108
|
-
// this skip is used for MMD performance optimization.
|
|
92
|
+
const link = bones[ links[ j ].index ];
|
|
109
93
|
|
|
94
|
+
// skip this link and following links.
|
|
95
|
+
// this skip is used for MMD performance optimization.
|
|
110
96
|
if ( links[ j ].enabled === false ) break;
|
|
111
97
|
const limitation = links[ j ].limitation;
|
|
112
98
|
const rotationMin = links[ j ].rotationMin;
|
|
113
|
-
const rotationMax = links[ j ].rotationMax;
|
|
114
|
-
// because they call updateMatrixWorld( true ) inside.
|
|
99
|
+
const rotationMax = links[ j ].rotationMax;
|
|
115
100
|
|
|
101
|
+
// don't use getWorldPosition/Quaternion() here for the performance
|
|
102
|
+
// because they call updateMatrixWorld( true ) inside.
|
|
116
103
|
link.matrixWorld.decompose( _linkPos, _invLinkQ, _linkScale );
|
|
117
|
-
|
|
118
104
|
_invLinkQ.invert();
|
|
105
|
+
_effectorPos.setFromMatrixPosition( effector.matrixWorld );
|
|
119
106
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
107
|
+
// work in link world
|
|
123
108
|
_effectorVec.subVectors( _effectorPos, _linkPos );
|
|
124
|
-
|
|
125
109
|
_effectorVec.applyQuaternion( _invLinkQ );
|
|
126
|
-
|
|
127
110
|
_effectorVec.normalize();
|
|
128
|
-
|
|
129
111
|
_targetVec.subVectors( _targetPos, _linkPos );
|
|
130
|
-
|
|
131
112
|
_targetVec.applyQuaternion( _invLinkQ );
|
|
132
|
-
|
|
133
113
|
_targetVec.normalize();
|
|
134
|
-
|
|
135
114
|
let angle = _targetVec.dot( _effectorVec );
|
|
136
|
-
|
|
137
115
|
if ( angle > 1.0 ) {
|
|
138
116
|
|
|
139
117
|
angle = 1.0;
|
|
@@ -144,10 +122,10 @@
|
|
|
144
122
|
|
|
145
123
|
}
|
|
146
124
|
|
|
147
|
-
angle = math.acos( angle );
|
|
125
|
+
angle = math.acos( angle );
|
|
148
126
|
|
|
127
|
+
// skip if changing angle is too small to prevent vibration of bone
|
|
149
128
|
if ( angle < 1e-5 ) continue;
|
|
150
|
-
|
|
151
129
|
if ( ik.minAngle !== undefined && angle < ik.minAngle ) {
|
|
152
130
|
|
|
153
131
|
angle = ik.minAngle;
|
|
@@ -161,13 +139,11 @@
|
|
|
161
139
|
}
|
|
162
140
|
|
|
163
141
|
_axis.crossVectors( _effectorVec, _targetVec );
|
|
164
|
-
|
|
165
142
|
_axis.normalize();
|
|
166
|
-
|
|
167
143
|
_q.setFromAxisAngle( _axis, angle );
|
|
144
|
+
link.quaternion.multiply( _q );
|
|
168
145
|
|
|
169
|
-
|
|
170
|
-
|
|
146
|
+
// TODO: re-consider the limitation specification
|
|
171
147
|
if ( limitation !== undefined ) {
|
|
172
148
|
|
|
173
149
|
let c = link.quaternion.w;
|
|
@@ -201,25 +177,24 @@
|
|
|
201
177
|
return this;
|
|
202
178
|
|
|
203
179
|
}
|
|
180
|
+
|
|
204
181
|
/**
|
|
205
182
|
* Creates Helper
|
|
206
183
|
*
|
|
207
184
|
* @return {CCDIKHelper}
|
|
208
185
|
*/
|
|
209
|
-
|
|
210
|
-
|
|
211
186
|
createHelper() {
|
|
212
187
|
|
|
213
188
|
return new CCDIKHelper( this.mesh, this.mesh.geometry.userData.MMD.iks );
|
|
214
189
|
|
|
215
|
-
}
|
|
190
|
+
}
|
|
216
191
|
|
|
192
|
+
// private methods
|
|
217
193
|
|
|
218
194
|
_valid() {
|
|
219
195
|
|
|
220
196
|
const iks = this.iks;
|
|
221
197
|
const bones = this.mesh.skeleton.bones;
|
|
222
|
-
|
|
223
198
|
for ( let i = 0, il = iks.length; i < il; i ++ ) {
|
|
224
199
|
|
|
225
200
|
const ik = iks[ i ];
|
|
@@ -227,11 +202,9 @@
|
|
|
227
202
|
const links = ik.links;
|
|
228
203
|
let link0, link1;
|
|
229
204
|
link0 = effector;
|
|
230
|
-
|
|
231
205
|
for ( let j = 0, jl = links.length; j < jl; j ++ ) {
|
|
232
206
|
|
|
233
207
|
link1 = bones[ links[ j ].index ];
|
|
234
|
-
|
|
235
208
|
if ( link0.parent !== link1 ) {
|
|
236
209
|
|
|
237
210
|
console.warn( 'THREE.CCDIKSolver: bone ' + link0.name + ' is not the child of bone ' + link1.name );
|
|
@@ -247,7 +220,6 @@
|
|
|
247
220
|
}
|
|
248
221
|
|
|
249
222
|
}
|
|
250
|
-
|
|
251
223
|
function getPosition( bone, matrixWorldInv ) {
|
|
252
224
|
|
|
253
225
|
return _vector.setFromMatrixPosition( bone.matrixWorld ).applyMatrix4( matrixWorldInv );
|
|
@@ -262,24 +234,23 @@
|
|
|
262
234
|
array[ index * 3 + 2 ] = v.z;
|
|
263
235
|
|
|
264
236
|
}
|
|
237
|
+
|
|
265
238
|
/**
|
|
266
239
|
* Visualize IK bones
|
|
267
240
|
*
|
|
268
241
|
* @param {SkinnedMesh} mesh
|
|
269
242
|
* @param {Array<Object>} iks
|
|
270
243
|
*/
|
|
271
|
-
|
|
272
|
-
|
|
273
244
|
class CCDIKHelper extends THREE.Object3D {
|
|
274
245
|
|
|
275
|
-
constructor( mesh, iks = [] ) {
|
|
246
|
+
constructor( mesh, iks = [], sphereSize = 0.25 ) {
|
|
276
247
|
|
|
277
248
|
super();
|
|
278
249
|
this.root = mesh;
|
|
279
250
|
this.iks = iks;
|
|
280
251
|
this.matrix.copy( mesh.matrixWorld );
|
|
281
252
|
this.matrixAutoUpdate = false;
|
|
282
|
-
this.sphereGeometry = new THREE.SphereGeometry(
|
|
253
|
+
this.sphereGeometry = new THREE.SphereGeometry( sphereSize, 16, 8 );
|
|
283
254
|
this.targetSphereMaterial = new THREE.MeshBasicMaterial( {
|
|
284
255
|
color: new THREE.Color( 0xff8888 ),
|
|
285
256
|
depthTest: false,
|
|
@@ -304,27 +275,22 @@
|
|
|
304
275
|
depthWrite: false,
|
|
305
276
|
transparent: true
|
|
306
277
|
} );
|
|
307
|
-
|
|
308
278
|
this._init();
|
|
309
279
|
|
|
310
280
|
}
|
|
281
|
+
|
|
311
282
|
/**
|
|
312
283
|
* Updates IK bones visualization.
|
|
313
284
|
*/
|
|
314
|
-
|
|
315
|
-
|
|
316
285
|
updateMatrixWorld( force ) {
|
|
317
286
|
|
|
318
287
|
const mesh = this.root;
|
|
319
|
-
|
|
320
288
|
if ( this.visible ) {
|
|
321
289
|
|
|
322
290
|
let offset = 0;
|
|
323
291
|
const iks = this.iks;
|
|
324
292
|
const bones = mesh.skeleton.bones;
|
|
325
|
-
|
|
326
293
|
_matrix.copy( mesh.matrixWorld ).invert();
|
|
327
|
-
|
|
328
294
|
for ( let i = 0, il = iks.length; i < il; i ++ ) {
|
|
329
295
|
|
|
330
296
|
const ik = iks[ i ];
|
|
@@ -334,7 +300,6 @@
|
|
|
334
300
|
const effectorMesh = this.children[ offset ++ ];
|
|
335
301
|
targetMesh.position.copy( getPosition( targetBone, _matrix ) );
|
|
336
302
|
effectorMesh.position.copy( getPosition( effectorBone, _matrix ) );
|
|
337
|
-
|
|
338
303
|
for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
|
|
339
304
|
|
|
340
305
|
const link = ik.links[ j ];
|
|
@@ -348,7 +313,6 @@
|
|
|
348
313
|
const array = line.geometry.attributes.position.array;
|
|
349
314
|
setPositionOfBoneToAttributeArray( array, 0, targetBone, _matrix );
|
|
350
315
|
setPositionOfBoneToAttributeArray( array, 1, effectorBone, _matrix );
|
|
351
|
-
|
|
352
316
|
for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
|
|
353
317
|
|
|
354
318
|
const link = ik.links[ j ];
|
|
@@ -366,14 +330,34 @@
|
|
|
366
330
|
this.matrix.copy( mesh.matrixWorld );
|
|
367
331
|
super.updateMatrixWorld( force );
|
|
368
332
|
|
|
369
|
-
}
|
|
333
|
+
}
|
|
370
334
|
|
|
335
|
+
/**
|
|
336
|
+
* Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
|
|
337
|
+
*/
|
|
338
|
+
dispose() {
|
|
339
|
+
|
|
340
|
+
this.sphereGeometry.dispose();
|
|
341
|
+
this.targetSphereMaterial.dispose();
|
|
342
|
+
this.effectorSphereMaterial.dispose();
|
|
343
|
+
this.linkSphereMaterial.dispose();
|
|
344
|
+
this.lineMaterial.dispose();
|
|
345
|
+
const children = this.children;
|
|
346
|
+
for ( let i = 0; i < children.length; i ++ ) {
|
|
347
|
+
|
|
348
|
+
const child = children[ i ];
|
|
349
|
+
if ( child.isLine ) child.geometry.dispose();
|
|
350
|
+
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
// private method
|
|
371
356
|
|
|
372
357
|
_init() {
|
|
373
358
|
|
|
374
359
|
const scope = this;
|
|
375
360
|
const iks = this.iks;
|
|
376
|
-
|
|
377
361
|
function createLineGeometry( ik ) {
|
|
378
362
|
|
|
379
363
|
const geometry = new THREE.BufferGeometry();
|
|
@@ -412,7 +396,6 @@
|
|
|
412
396
|
const ik = iks[ i ];
|
|
413
397
|
this.add( createTargetMesh() );
|
|
414
398
|
this.add( createEffectorMesh() );
|
|
415
|
-
|
|
416
399
|
for ( let j = 0, jl = ik.links.length; j < jl; j ++ ) {
|
|
417
400
|
|
|
418
401
|
this.add( createLinkMesh() );
|