@needle-tools/three 0.169.20 → 0.183.2-canary.0
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/LICENSE +1 -1
- package/README.md +5 -6
- package/build/three.cjs +54178 -56709
- package/build/three.core.js +59506 -0
- package/build/three.core.min.js +6 -0
- package/build/three.module.js +11645 -73012
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +648 -0
- package/build/three.tsl.min.js +6 -0
- package/build/three.webgpu.js +53905 -51657
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +53884 -51814
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +5 -15
- package/examples/jsm/animation/AnimationClipCreator.js +58 -6
- package/examples/jsm/animation/CCDIKSolver.js +152 -45
- package/examples/jsm/capabilities/WebGL.js +28 -29
- package/examples/jsm/capabilities/WebGPU.js +19 -17
- package/examples/jsm/controls/ArcballControls.js +474 -178
- package/examples/jsm/controls/DragControls.js +100 -58
- package/examples/jsm/controls/FirstPersonControls.js +116 -6
- package/examples/jsm/controls/FlyControls.js +50 -2
- package/examples/jsm/controls/MapControls.js +96 -8
- package/examples/jsm/controls/OrbitControls.js +496 -57
- package/examples/jsm/controls/PointerLockControls.js +115 -22
- package/examples/jsm/controls/TrackballControls.js +166 -14
- package/examples/jsm/controls/TransformControls.js +336 -26
- package/examples/jsm/csm/CSM.js +232 -18
- package/examples/jsm/csm/CSMFrustum.js +61 -4
- package/examples/jsm/csm/CSMHelper.js +50 -0
- package/examples/jsm/csm/CSMShader.js +13 -1
- package/examples/jsm/csm/CSMShadowNode.js +599 -0
- package/examples/jsm/curves/CurveExtras.js +303 -31
- package/examples/jsm/curves/NURBSCurve.js +91 -16
- package/examples/jsm/curves/NURBSSurface.js +52 -6
- package/examples/jsm/curves/NURBSUtils.js +102 -112
- package/examples/jsm/curves/NURBSVolume.js +24 -4
- package/examples/jsm/effects/AnaglyphEffect.js +134 -7
- package/examples/jsm/effects/AsciiEffect.js +69 -22
- package/examples/jsm/effects/OutlineEffect.js +61 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +30 -0
- package/examples/jsm/effects/StereoEffect.js +31 -0
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/DebugEnvironment.js +50 -0
- package/examples/jsm/environments/RoomEnvironment.js +83 -42
- package/examples/jsm/exporters/DRACOExporter.js +56 -14
- package/examples/jsm/exporters/EXRExporter.js +40 -9
- package/examples/jsm/exporters/GLTFExporter.js +502 -169
- package/examples/jsm/exporters/OBJExporter.js +21 -1
- package/examples/jsm/exporters/PLYExporter.js +44 -12
- package/examples/jsm/exporters/STLExporter.js +27 -5
- package/examples/jsm/exporters/USDZExporter.js +781 -291
- package/examples/jsm/geometries/BoxLineGeometry.js +23 -0
- package/examples/jsm/geometries/ConvexGeometry.js +19 -0
- package/examples/jsm/geometries/DecalGeometry.js +91 -30
- package/examples/jsm/geometries/ParametricFunctions.js +100 -0
- package/examples/jsm/geometries/ParametricGeometry.js +38 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +68 -7
- package/examples/jsm/geometries/TeapotGeometry.js +23 -38
- package/examples/jsm/geometries/TextGeometry.js +48 -29
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeHelper.js +36 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +38 -1
- package/examples/jsm/helpers/OctreeHelper.js +36 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +60 -0
- package/examples/jsm/helpers/RapierHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +36 -3
- package/examples/jsm/helpers/TextureHelper.js +28 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +214 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +61 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +47 -2
- package/examples/jsm/helpers/ViewHelper.js +181 -9
- package/examples/jsm/inspector/Inspector.js +487 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/tabs/Console.js +238 -0
- package/examples/jsm/inspector/tabs/Parameters.js +348 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +1975 -0
- package/examples/jsm/inspector/ui/Style.js +1613 -0
- package/examples/jsm/inspector/ui/Tab.js +233 -0
- package/examples/jsm/inspector/ui/Values.js +439 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +43 -12
- package/examples/jsm/interactive/InteractiveGroup.js +170 -52
- package/examples/jsm/interactive/SelectionBox.js +106 -9
- package/examples/jsm/interactive/SelectionHelper.js +76 -30
- package/examples/jsm/libs/demuxer_mp4.js +109 -0
- package/examples/jsm/libs/meshopt_decoder.module.js +76 -58
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +42 -0
- package/examples/jsm/lights/LightProbeGenerator.js +44 -7
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +50 -14
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +16 -0
- package/examples/jsm/lines/Line2.js +41 -4
- package/examples/jsm/lines/LineGeometry.js +80 -2
- package/examples/jsm/lines/LineMaterial.js +105 -5
- package/examples/jsm/lines/LineSegments2.js +54 -4
- package/examples/jsm/lines/LineSegmentsGeometry.js +65 -8
- package/examples/jsm/lines/Wireframe.js +41 -4
- package/examples/jsm/lines/WireframeGeometry2.js +27 -2
- package/examples/jsm/lines/webgpu/Line2.js +28 -2
- package/examples/jsm/lines/webgpu/LineSegments2.js +59 -24
- package/examples/jsm/lines/webgpu/Wireframe.js +86 -0
- package/examples/jsm/loaders/3DMLoader.js +78 -6
- package/examples/jsm/loaders/3MFLoader.js +148 -7
- package/examples/jsm/loaders/AMFLoader.js +34 -14
- package/examples/jsm/loaders/BVHLoader.js +59 -12
- package/examples/jsm/loaders/ColladaLoader.js +61 -4027
- package/examples/jsm/loaders/DDSLoader.js +68 -1
- package/examples/jsm/loaders/DRACOLoader.js +146 -22
- package/examples/jsm/loaders/EXRLoader.js +255 -34
- package/examples/jsm/loaders/FBXLoader.js +80 -42
- package/examples/jsm/loaders/FontLoader.js +83 -6
- package/examples/jsm/loaders/GCodeLoader.js +71 -14
- package/examples/jsm/loaders/GLTFLoader.js +381 -263
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +52 -3
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/IESLoader.js +42 -0
- package/examples/jsm/loaders/KMZLoader.js +39 -6
- package/examples/jsm/loaders/KTX2Loader.js +124 -48
- package/examples/jsm/loaders/KTXLoader.js +31 -10
- package/examples/jsm/loaders/LDrawLoader.js +192 -145
- package/examples/jsm/loaders/LUT3dlLoader.js +47 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +46 -9
- package/examples/jsm/loaders/LUTImageLoader.js +79 -38
- package/examples/jsm/loaders/LWOLoader.js +54 -59
- package/examples/jsm/loaders/LottieLoader.js +54 -1
- package/examples/jsm/loaders/MD2Loader.js +37 -1
- package/examples/jsm/loaders/MDDLoader.js +57 -12
- package/examples/jsm/loaders/MTLLoader.js +60 -35
- package/examples/jsm/loaders/MaterialXLoader.js +268 -34
- package/examples/jsm/loaders/NRRDLoader.js +40 -8
- package/examples/jsm/loaders/OBJLoader.js +51 -2
- package/examples/jsm/loaders/PCDLoader.js +173 -21
- package/examples/jsm/loaders/PDBLoader.js +41 -2
- package/examples/jsm/loaders/PLYLoader.js +70 -39
- package/examples/jsm/loaders/PVRLoader.js +25 -6
- package/examples/jsm/loaders/RGBELoader.js +6 -438
- package/examples/jsm/loaders/STLLoader.js +48 -38
- package/examples/jsm/loaders/SVGLoader.js +119 -25
- package/examples/jsm/loaders/TDSLoader.js +92 -74
- package/examples/jsm/loaders/TGALoader.js +23 -2
- package/examples/jsm/loaders/TIFFLoader.js +23 -0
- package/examples/jsm/loaders/TTFLoader.js +50 -3
- package/examples/jsm/loaders/USDLoader.js +279 -0
- package/examples/jsm/loaders/USDZLoader.js +4 -858
- package/examples/jsm/loaders/UltraHDRLoader.js +338 -166
- package/examples/jsm/loaders/VOXLoader.js +688 -87
- package/examples/jsm/loaders/VRMLLoader.js +121 -12
- package/examples/jsm/loaders/VTKLoader.js +77 -25
- package/examples/jsm/loaders/XYZLoader.js +36 -0
- package/examples/jsm/loaders/collada/ColladaComposer.js +2950 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1962 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +77 -77
- package/examples/jsm/loaders/usd/USDAParser.js +822 -0
- package/examples/jsm/loaders/usd/USDCParser.js +1852 -0
- package/examples/jsm/loaders/usd/USDComposer.js +4041 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +183 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +154 -0
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/Capsule.js +91 -14
- package/examples/jsm/math/ColorConverter.js +22 -0
- package/examples/jsm/math/ColorSpaces.js +74 -2
- package/examples/jsm/math/ConvexHull.js +517 -93
- package/examples/jsm/math/ImprovedNoise.js +32 -15
- package/examples/jsm/math/Lut.js +113 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +78 -13
- package/examples/jsm/math/OBB.js +141 -29
- package/examples/jsm/math/Octree.js +283 -7
- package/examples/jsm/math/SimplexNoise.js +68 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +45 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +96 -20
- package/examples/jsm/misc/Gyroscope.js +12 -0
- package/examples/jsm/misc/MD2Character.js +117 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +175 -11
- package/examples/jsm/misc/MorphAnimMesh.js +44 -0
- package/examples/jsm/misc/MorphBlendMesh.js +103 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +100 -54
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +322 -0
- package/examples/jsm/misc/RollerCoaster.js +57 -0
- package/examples/jsm/misc/TubePainter.js +437 -40
- package/examples/jsm/misc/Volume.js +123 -76
- package/examples/jsm/misc/VolumeSlice.js +95 -49
- package/examples/jsm/modifiers/CurveModifier.js +66 -38
- package/examples/jsm/modifiers/CurveModifierGPU.js +42 -19
- package/examples/jsm/modifiers/EdgeSplitModifier.js +20 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +24 -10
- package/examples/jsm/modifiers/TessellateModifier.js +35 -2
- package/examples/jsm/objects/GroundedSkybox.js +25 -6
- package/examples/jsm/objects/Lensflare.js +94 -2
- package/examples/jsm/objects/LensflareMesh.js +64 -10
- package/examples/jsm/objects/MarchingCubes.js +90 -5
- package/examples/jsm/objects/Reflector.js +76 -2
- package/examples/jsm/objects/ReflectorForSSRPass.js +41 -0
- package/examples/jsm/objects/Refractor.js +62 -0
- package/examples/jsm/objects/ShadowMesh.js +54 -4
- package/examples/jsm/objects/Sky.js +106 -16
- package/examples/jsm/objects/SkyMesh.js +211 -38
- package/examples/jsm/objects/Water.js +49 -8
- package/examples/jsm/objects/Water2.js +49 -7
- package/examples/jsm/objects/Water2Mesh.js +50 -9
- package/examples/jsm/objects/WaterMesh.js +136 -43
- package/examples/jsm/physics/AmmoPhysics.js +60 -7
- package/examples/jsm/physics/JoltPhysics.js +65 -12
- package/examples/jsm/physics/RapierPhysics.js +217 -21
- package/examples/jsm/postprocessing/AfterimagePass.js +110 -29
- package/examples/jsm/postprocessing/BloomPass.js +128 -26
- package/examples/jsm/postprocessing/BokehPass.js +99 -22
- package/examples/jsm/postprocessing/ClearPass.js +54 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +82 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +59 -10
- package/examples/jsm/postprocessing/EffectComposer.js +140 -6
- package/examples/jsm/postprocessing/FXAAPass.js +40 -0
- package/examples/jsm/postprocessing/FilmPass.js +54 -5
- package/examples/jsm/postprocessing/GTAOPass.js +202 -57
- package/examples/jsm/postprocessing/GlitchPass.js +86 -34
- package/examples/jsm/postprocessing/HalftonePass.js +65 -10
- package/examples/jsm/postprocessing/LUTPass.js +38 -8
- package/examples/jsm/postprocessing/MaskPass.js +91 -0
- package/examples/jsm/postprocessing/OutlinePass.js +272 -135
- package/examples/jsm/postprocessing/OutputPass.js +65 -14
- package/examples/jsm/postprocessing/Pass.js +100 -4
- package/examples/jsm/postprocessing/RenderPass.js +94 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +124 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +120 -21
- package/examples/jsm/postprocessing/SAOPass.js +128 -55
- package/examples/jsm/postprocessing/SMAAPass.js +106 -75
- package/examples/jsm/postprocessing/SSAARenderPass.js +118 -35
- package/examples/jsm/postprocessing/SSAOPass.js +173 -60
- package/examples/jsm/postprocessing/SSRPass.js +268 -53
- package/examples/jsm/postprocessing/SavePass.js +69 -16
- package/examples/jsm/postprocessing/ShaderPass.js +65 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +79 -24
- package/examples/jsm/postprocessing/TexturePass.js +72 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +168 -59
- package/examples/jsm/renderers/CSS2DRenderer.js +98 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +111 -7
- package/examples/jsm/renderers/Projector.js +288 -32
- package/examples/jsm/renderers/SVGRenderer.js +323 -61
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +3 -1
- package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +1 -1
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +5 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +12 -5
- package/examples/jsm/shaders/AfterimageShader.js +8 -3
- package/examples/jsm/shaders/BasicShader.js +8 -1
- package/examples/jsm/shaders/BleachBypassShader.js +10 -3
- package/examples/jsm/shaders/BlendShader.js +8 -1
- package/examples/jsm/shaders/BokehShader.js +9 -3
- package/examples/jsm/shaders/BokehShader2.js +11 -4
- package/examples/jsm/shaders/BrightnessContrastShader.js +10 -4
- package/examples/jsm/shaders/ColorCorrectionShader.js +8 -1
- package/examples/jsm/shaders/ColorifyShader.js +8 -1
- package/examples/jsm/shaders/ConvolutionShader.js +9 -38
- package/examples/jsm/shaders/CopyShader.js +8 -1
- package/examples/jsm/shaders/DOFMipMapShader.js +10 -3
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +10 -1
- package/examples/jsm/shaders/DigitalGlitch.js +10 -7
- package/examples/jsm/shaders/DotScreenShader.js +8 -3
- package/examples/jsm/shaders/ExposureShader.js +8 -1
- package/examples/jsm/shaders/FXAAShader.js +233 -221
- package/examples/jsm/shaders/FilmShader.js +13 -0
- package/examples/jsm/shaders/FocusShader.js +8 -3
- package/examples/jsm/shaders/FreiChenShader.js +10 -3
- package/examples/jsm/shaders/GTAOShader.js +55 -45
- package/examples/jsm/shaders/GammaCorrectionShader.js +11 -2
- package/examples/jsm/shaders/HalftoneShader.js +24 -4
- package/examples/jsm/shaders/HorizontalBlurShader.js +12 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +9 -2
- package/examples/jsm/shaders/HueSaturationShader.js +10 -3
- package/examples/jsm/shaders/KaleidoShader.js +11 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +8 -4
- package/examples/jsm/shaders/LuminosityShader.js +8 -2
- package/examples/jsm/shaders/MirrorShader.js +10 -4
- package/examples/jsm/shaders/NormalMapShader.js +7 -2
- package/examples/jsm/shaders/OutputShader.js +19 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +30 -17
- package/examples/jsm/shaders/RGBShiftShader.js +8 -1
- package/examples/jsm/shaders/SAOShader.js +27 -5
- package/examples/jsm/shaders/SMAAShader.js +24 -1
- package/examples/jsm/shaders/SSAOShader.js +37 -6
- package/examples/jsm/shaders/SSRShader.js +32 -6
- package/examples/jsm/shaders/SepiaShader.js +8 -3
- package/examples/jsm/shaders/SobelOperatorShader.js +9 -3
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +13 -8
- package/examples/jsm/shaders/TechnicolorShader.js +10 -4
- package/examples/jsm/shaders/ToonShader.js +29 -6
- package/examples/jsm/shaders/TriangleBlurShader.js +9 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +19 -6
- package/examples/jsm/shaders/VelocityShader.js +8 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +9 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +8 -1
- package/examples/jsm/shaders/VignetteShader.js +8 -3
- package/examples/jsm/shaders/VolumeShader.js +11 -2
- package/examples/jsm/shaders/WaterRefractionShader.js +11 -0
- package/examples/jsm/textures/FlakesTexture.js +14 -0
- package/examples/jsm/transpiler/AST.js +436 -31
- package/examples/jsm/transpiler/GLSLDecoder.js +380 -135
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -1
- package/examples/jsm/transpiler/TSLEncoder.js +363 -97
- package/examples/jsm/transpiler/Transpiler.js +50 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +839 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +244 -0
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +549 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +282 -0
- package/examples/jsm/tsl/display/BilateralBlurNode.js +364 -0
- package/{src/nodes → examples/jsm/tsl}/display/BleachBypass.js +11 -4
- package/examples/jsm/tsl/display/BloomNode.js +534 -0
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +207 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +334 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +554 -0
- package/examples/jsm/tsl/display/DotScreenNode.js +104 -0
- package/examples/jsm/tsl/display/FXAANode.js +365 -0
- package/examples/jsm/tsl/display/FilmNode.js +101 -0
- package/examples/jsm/tsl/display/GTAONode.js +571 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +389 -0
- package/examples/jsm/tsl/display/GodraysNode.js +624 -0
- package/examples/jsm/tsl/display/LensflareNode.js +279 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +109 -0
- package/examples/jsm/tsl/display/MotionBlur.js +33 -0
- package/examples/jsm/tsl/display/OutlineNode.js +762 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +89 -0
- package/examples/jsm/tsl/display/PixelationPassNode.js +335 -0
- package/examples/jsm/tsl/display/RGBShiftNode.js +96 -0
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +768 -0
- package/{src/nodes → examples/jsm/tsl}/display/SSAAPassNode.js +120 -49
- package/examples/jsm/tsl/display/SSGINode.js +642 -0
- package/examples/jsm/tsl/display/SSRNode.js +656 -0
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- package/{src/nodes → examples/jsm/tsl}/display/Sepia.js +9 -2
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +61 -19
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +192 -0
- package/{src/nodes → examples/jsm/tsl}/display/StereoPassNode.js +48 -12
- package/examples/jsm/tsl/display/TRAANode.js +726 -0
- package/examples/jsm/tsl/display/TransitionNode.js +141 -0
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +54 -0
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +442 -0
- package/examples/jsm/tsl/math/Bayer.js +73 -0
- package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
- package/examples/jsm/tsl/utils/Raymarching.js +70 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +91 -29
- package/examples/jsm/utils/CameraUtils.js +15 -6
- package/examples/jsm/utils/GeometryCompressionUtils.js +23 -30
- package/examples/jsm/utils/GeometryUtils.js +32 -27
- package/examples/jsm/utils/LDrawUtils.js +14 -5
- package/examples/jsm/utils/SceneOptimizer.js +458 -0
- package/examples/jsm/utils/SceneUtils.js +53 -3
- package/examples/jsm/utils/ShadowMapViewer.js +72 -33
- package/examples/jsm/utils/ShadowMapViewerGPU.js +61 -29
- package/examples/jsm/utils/SkeletonUtils.js +48 -0
- package/examples/jsm/utils/SortUtils.js +17 -5
- package/examples/jsm/utils/UVsDebug.js +12 -4
- package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +16 -0
- package/examples/jsm/utils/{TextureUtilsGPU.js → WebGPUTextureUtils.js} +20 -2
- package/examples/jsm/utils/WorkerPool.js +67 -2
- package/examples/jsm/webxr/ARButton.js +19 -0
- package/examples/jsm/webxr/OculusHandModel.js +84 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +148 -22
- package/examples/jsm/webxr/Text2D.js +20 -6
- package/examples/jsm/webxr/VRButton.js +31 -0
- package/examples/jsm/webxr/XRButton.js +23 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +94 -3
- package/examples/jsm/webxr/XREstimatedLight.js +35 -4
- package/examples/jsm/webxr/XRHandMeshModel.js +37 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +96 -6
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +44 -0
- package/examples/jsm/webxr/XRPlanes.js +18 -0
- package/package.json +29 -34
- package/src/Three.Core.js +198 -0
- package/src/Three.Legacy.js +0 -21
- package/src/Three.TSL.js +641 -0
- package/src/Three.WebGPU.Nodes.js +14 -186
- package/src/Three.WebGPU.js +16 -186
- package/src/Three.js +2 -197
- package/src/animation/AnimationAction.js +263 -31
- package/src/animation/AnimationClip.js +162 -7
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +45 -21
- package/src/animation/AnimationUtils.js +163 -24
- package/src/animation/KeyframeTrack.js +191 -17
- package/src/animation/PropertyBinding.js +91 -16
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/Audio.js +386 -8
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +94 -13
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +37 -0
- package/src/cameras/Camera.js +61 -0
- package/src/cameras/CubeCamera.js +86 -0
- package/src/cameras/OrthographicCamera.js +110 -1
- package/src/cameras/PerspectiveCamera.js +174 -35
- package/src/cameras/StereoCamera.js +48 -2
- package/src/constants.js +1546 -11
- package/src/core/BufferAttribute.js +417 -3
- package/src/core/BufferGeometry.js +407 -22
- package/src/core/Clock.js +69 -8
- package/src/core/EventDispatcher.js +52 -8
- package/src/core/GLBufferAttribute.js +113 -2
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +141 -7
- package/src/core/InterleavedBufferAttribute.js +200 -2
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +673 -26
- package/src/core/Raycaster.js +136 -2
- package/src/core/RenderTarget.js +256 -27
- package/src/core/RenderTarget3D.js +48 -0
- package/src/core/Timer.js +184 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +89 -1
- package/src/extras/DataUtils.js +50 -9
- package/src/extras/Earcut.js +18 -779
- package/src/extras/ImageUtils.js +22 -14
- package/src/extras/PMREMGenerator.js +316 -67
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +101 -15
- package/src/extras/core/Curve.js +156 -55
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +34 -2
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +66 -3
- package/src/extras/core/ShapePath.js +80 -4
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/BoxGeometry.js +39 -0
- package/src/geometries/CapsuleGeometry.js +196 -11
- package/src/geometries/CircleGeometry.js +41 -0
- package/src/geometries/ConeGeometry.js +39 -0
- package/src/geometries/CylinderGeometry.js +42 -2
- package/src/geometries/DodecahedronGeometry.js +33 -0
- package/src/geometries/EdgesGeometry.js +30 -2
- package/src/geometries/ExtrudeGeometry.js +148 -52
- package/src/geometries/IcosahedronGeometry.js +33 -0
- package/src/geometries/LatheGeometry.js +44 -3
- package/src/geometries/OctahedronGeometry.js +33 -0
- package/src/geometries/PlaneGeometry.js +35 -0
- package/src/geometries/PolyhedronGeometry.js +30 -1
- package/src/geometries/RingGeometry.js +37 -0
- package/src/geometries/ShapeGeometry.js +38 -0
- package/src/geometries/SphereGeometry.js +38 -0
- package/src/geometries/TetrahedronGeometry.js +33 -0
- package/src/geometries/TorusGeometry.js +44 -3
- package/src/geometries/TorusKnotGeometry.js +39 -0
- package/src/geometries/TubeGeometry.js +50 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +62 -5
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +103 -27
- package/src/helpers/DirectionalLightHelper.js +55 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +42 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -24
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +73 -7
- package/src/helpers/SpotLightHelper.js +43 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +70 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +42 -0
- package/src/lights/Light.js +37 -11
- package/src/lights/LightProbe.js +37 -9
- package/src/lights/LightShadow.js +202 -7
- package/src/lights/PointLight.js +74 -0
- package/src/lights/PointLightShadow.js +15 -80
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +124 -1
- package/src/lights/SpotLightShadow.js +33 -3
- package/src/lights/webgpu/IESSpotLight.js +22 -0
- package/src/lights/webgpu/ProjectorLight.js +46 -0
- package/src/loaders/AnimationLoader.js +34 -2
- package/src/loaders/AudioLoader.js +34 -2
- package/src/loaders/BufferGeometryLoader.js +38 -13
- package/src/loaders/Cache.js +75 -2
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +45 -4
- package/src/loaders/FileLoader.js +85 -5
- package/src/loaders/ImageBitmapLoader.js +113 -11
- package/src/loaders/ImageLoader.js +85 -8
- package/src/loaders/Loader.js +144 -0
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +187 -0
- package/src/loaders/MaterialLoader.js +62 -3
- package/src/loaders/ObjectLoader.js +131 -31
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +68 -4
- package/src/loaders/nodes/NodeMaterialLoader.js +45 -0
- package/src/loaders/nodes/NodeObjectLoader.js +61 -0
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -1
- package/src/materials/Material.js +502 -8
- package/src/materials/MeshBasicMaterial.js +168 -2
- package/src/materials/MeshDepthMaterial.js +94 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +283 -0
- package/src/materials/MeshMatcapMaterial.js +164 -0
- package/src/materials/MeshNormalMaterial.js +114 -0
- package/src/materials/MeshPhongMaterial.js +298 -0
- package/src/materials/MeshPhysicalMaterial.js +296 -4
- package/src/materials/MeshStandardMaterial.js +300 -2
- package/src/materials/MeshToonMaterial.js +219 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +234 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +158 -53
- package/src/materials/nodes/LineBasicNodeMaterial.js +17 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +81 -6
- package/src/materials/nodes/MeshBasicNodeMaterial.js +59 -2
- package/src/materials/nodes/MeshLambertNodeMaterial.js +35 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +23 -3
- package/src/materials/nodes/MeshNormalNodeMaterial.js +27 -4
- package/src/materials/nodes/MeshPhongNodeMaterial.js +64 -1
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +276 -3
- package/src/materials/nodes/MeshSSSNodeMaterial.js +98 -10
- package/src/materials/nodes/MeshStandardNodeMaterial.js +83 -4
- package/src/materials/nodes/MeshToonNodeMaterial.js +28 -0
- package/src/materials/nodes/NodeMaterial.js +789 -74
- package/src/materials/nodes/NodeMaterials.js +0 -1
- package/src/materials/nodes/PointsNodeMaterial.js +180 -11
- package/src/materials/nodes/ShadowNodeMaterial.js +38 -0
- package/src/materials/nodes/SpriteNodeMaterial.js +86 -23
- package/src/materials/nodes/VolumeNodeMaterial.js +57 -84
- package/src/materials/nodes/manager/NodeMaterialObserver.js +329 -12
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +271 -0
- package/src/math/Color.js +355 -11
- package/src/math/ColorManagement.js +158 -92
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +139 -5
- package/src/math/Frustum.js +108 -9
- package/src/math/FrustumArray.js +258 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +221 -2
- package/src/math/MathUtils.js +408 -20
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +489 -94
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +322 -90
- package/src/math/Ray.js +162 -0
- package/src/math/Sphere.js +175 -0
- package/src/math/Spherical.js +73 -11
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +206 -2
- package/src/math/Vector2.js +396 -10
- package/src/math/Vector3.js +550 -15
- package/src/math/Vector4.js +415 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +91 -88
- package/src/nodes/TSL.js +32 -38
- package/src/nodes/accessors/AccessorsUtils.js +37 -9
- package/src/nodes/accessors/Arrays.js +68 -0
- package/src/nodes/accessors/BatchNode.js +49 -14
- package/src/nodes/accessors/Bitangent.js +82 -13
- package/src/nodes/accessors/BufferAttributeNode.js +269 -8
- package/src/nodes/accessors/BufferNode.js +91 -2
- package/src/nodes/accessors/BuiltinNode.js +63 -0
- package/src/nodes/accessors/Camera.js +400 -10
- package/src/nodes/accessors/ClippingNode.js +149 -45
- package/src/nodes/accessors/CubeTextureNode.js +137 -7
- package/src/nodes/accessors/InstanceNode.js +245 -40
- package/src/nodes/accessors/InstancedMeshNode.js +50 -0
- package/src/nodes/accessors/Lights.js +88 -0
- package/src/nodes/accessors/MaterialNode.js +355 -13
- package/src/nodes/accessors/MaterialProperties.js +57 -1
- package/src/nodes/accessors/MaterialReferenceNode.js +52 -14
- package/src/nodes/accessors/ModelNode.js +117 -5
- package/src/nodes/accessors/ModelViewProjectionNode.js +10 -39
- package/src/nodes/accessors/MorphNode.js +73 -26
- package/src/nodes/accessors/Normal.js +174 -19
- package/src/nodes/accessors/Object3DNode.js +146 -12
- package/src/nodes/accessors/PointUVNode.js +25 -0
- package/src/nodes/accessors/Position.js +119 -7
- package/src/nodes/accessors/ReferenceBaseNode.js +190 -4
- package/src/nodes/accessors/ReferenceNode.js +223 -8
- package/src/nodes/accessors/ReflectVector.js +29 -3
- package/src/nodes/accessors/RendererReferenceNode.js +45 -2
- package/src/nodes/accessors/SceneProperties.js +53 -0
- package/src/nodes/accessors/SkinningNode.js +180 -43
- package/src/nodes/accessors/StorageBufferNode.js +278 -26
- package/src/nodes/accessors/StorageTextureNode.js +205 -12
- package/src/nodes/accessors/Tangent.js +48 -10
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/Texture3DNode.js +104 -11
- package/src/nodes/accessors/TextureBicubic.js +31 -4
- package/src/nodes/accessors/TextureNode.js +564 -52
- package/src/nodes/accessors/TextureSizeNode.js +42 -1
- package/src/nodes/accessors/UV.js +9 -1
- package/src/nodes/accessors/UniformArrayNode.js +226 -34
- package/src/nodes/accessors/UserDataNode.js +46 -2
- package/src/nodes/accessors/VelocityNode.js +93 -3
- package/src/nodes/accessors/VertexColorNode.js +39 -4
- package/src/nodes/code/CodeNode.js +101 -8
- package/src/nodes/code/ExpressionNode.js +29 -2
- package/src/nodes/code/FunctionCallNode.js +98 -10
- package/src/nodes/code/FunctionNode.js +69 -2
- package/src/nodes/core/ArrayNode.js +174 -0
- package/src/nodes/core/AssignNode.js +80 -9
- package/src/nodes/core/AttributeNode.js +47 -4
- package/src/nodes/core/BypassNode.js +47 -3
- package/src/nodes/core/ConstNode.js +32 -0
- package/src/nodes/core/ContextNode.js +220 -14
- package/src/nodes/core/IndexNode.js +72 -7
- package/src/nodes/core/InputNode.js +50 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/IsolateNode.js +133 -0
- package/src/nodes/core/LightingModel.js +65 -5
- package/src/nodes/core/MRTNode.js +113 -2
- package/src/nodes/core/Node.js +595 -36
- package/src/nodes/core/NodeAttribute.js +38 -0
- package/src/nodes/core/NodeBuilder.js +1840 -121
- package/src/nodes/core/NodeCache.js +41 -2
- package/src/nodes/core/NodeCode.js +31 -0
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +153 -24
- package/src/nodes/core/NodeFunction.js +48 -1
- package/src/nodes/core/NodeFunctionInput.js +44 -0
- package/src/nodes/core/NodeParser.js +13 -1
- package/src/nodes/core/NodeUniform.js +53 -1
- package/src/nodes/core/NodeUtils.js +201 -51
- package/src/nodes/core/NodeVar.js +47 -1
- package/src/nodes/core/NodeVarying.js +47 -1
- package/src/nodes/core/OutputStructNode.js +54 -12
- package/src/nodes/core/ParameterNode.js +60 -2
- package/src/nodes/core/PropertyNode.js +286 -7
- package/src/nodes/core/StackNode.js +337 -20
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +134 -0
- package/src/nodes/core/StructType.js +13 -0
- package/src/nodes/core/StructTypeNode.js +126 -6
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/TempNode.js +31 -5
- package/src/nodes/core/UniformGroupNode.js +85 -7
- package/src/nodes/core/UniformNode.js +163 -16
- package/src/nodes/core/VarNode.js +317 -10
- package/src/nodes/core/VaryingNode.js +115 -13
- package/src/nodes/core/constants.js +40 -0
- package/src/nodes/display/BlendModes.js +171 -0
- package/src/nodes/display/BumpMapNode.js +38 -2
- package/src/nodes/display/ColorAdjustment.js +118 -6
- package/src/nodes/display/ColorSpaceFunctions.js +22 -6
- package/src/nodes/display/ColorSpaceNode.js +97 -47
- package/src/nodes/display/FrontFacingNode.js +64 -7
- package/src/nodes/display/NormalMapNode.js +101 -54
- package/src/nodes/display/PassNode.js +690 -33
- package/src/nodes/display/RenderOutputNode.js +94 -4
- package/src/nodes/display/ScreenNode.js +138 -27
- package/src/nodes/display/ToneMappingFunctions.js +62 -10
- package/src/nodes/display/ToneMappingNode.js +88 -8
- package/src/nodes/display/ToonOutlinePassNode.js +84 -4
- package/src/nodes/display/ViewportDepthNode.js +227 -10
- package/src/nodes/display/ViewportDepthTextureNode.js +39 -5
- package/src/nodes/display/ViewportSharedTextureNode.js +35 -1
- package/src/nodes/display/ViewportTextureNode.js +171 -7
- package/src/nodes/fog/Fog.js +97 -0
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +45 -1
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +1 -1
- package/src/nodes/functions/BasicLightingModel.js +28 -6
- package/src/nodes/functions/PhongLightingModel.js +36 -6
- package/src/nodes/functions/PhysicalLightingModel.js +336 -91
- package/src/nodes/functions/ShadowMaskModel.js +30 -3
- package/src/nodes/functions/ToonLightingModel.js +21 -2
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
- package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
- package/src/nodes/geometry/RangeNode.js +97 -8
- package/src/nodes/gpgpu/AtomicFunctionNode.js +198 -23
- package/src/nodes/gpgpu/BarrierNode.js +52 -3
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +135 -6
- package/src/nodes/gpgpu/ComputeNode.js +212 -16
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +143 -9
- package/src/nodes/lighting/AONode.js +18 -0
- package/src/nodes/lighting/AmbientLightNode.js +10 -0
- package/src/nodes/lighting/AnalyticLightNode.js +186 -399
- package/src/nodes/lighting/BasicEnvironmentNode.js +19 -0
- package/src/nodes/lighting/BasicLightMapNode.js +17 -0
- package/src/nodes/lighting/DirectionalLightNode.js +12 -11
- package/src/nodes/lighting/EnvironmentNode.js +59 -19
- package/src/nodes/lighting/HemisphereLightNode.js +33 -2
- package/src/nodes/lighting/IESSpotLightNode.js +13 -1
- package/src/nodes/lighting/IrradianceNode.js +17 -0
- package/src/nodes/lighting/LightProbeNode.js +20 -0
- package/src/nodes/lighting/LightUtils.js +11 -3
- package/src/nodes/lighting/LightingContextNode.js +52 -4
- package/src/nodes/lighting/LightingNode.js +15 -6
- package/src/nodes/lighting/LightsNode.js +238 -35
- package/src/nodes/lighting/PointLightNode.js +60 -25
- package/src/nodes/lighting/PointShadowNode.js +325 -0
- package/src/nodes/lighting/ProjectorLightNode.js +91 -0
- package/src/nodes/lighting/RectAreaLightNode.js +50 -14
- package/src/nodes/lighting/ShadowBaseNode.js +81 -0
- package/src/nodes/lighting/ShadowFilterNode.js +264 -0
- package/src/nodes/lighting/ShadowNode.js +867 -0
- package/src/nodes/lighting/SpotLightNode.js +99 -18
- package/src/nodes/materialx/MaterialXNodes.js +131 -2
- package/src/nodes/materialx/lib/mx_noise.js +166 -2
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +110 -21
- package/src/nodes/math/Hash.js +8 -0
- package/src/nodes/math/MathNode.js +820 -97
- package/src/nodes/math/MathUtils.js +47 -1
- package/src/nodes/math/OperatorNode.js +517 -84
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/TriNoise3D.js +17 -7
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
- package/src/nodes/parsers/GLSLNodeParser.js +11 -0
- package/src/nodes/pmrem/PMREMNode.js +180 -23
- package/src/nodes/pmrem/PMREMUtils.js +114 -5
- package/src/nodes/procedural/Checker.js +8 -0
- package/src/nodes/shapes/Shapes.js +33 -0
- package/src/nodes/tsl/TSLBase.js +10 -4
- package/src/nodes/tsl/TSLCore.js +732 -160
- package/src/nodes/utils/ArrayElementNode.js +55 -4
- package/src/nodes/utils/ConvertNode.js +31 -0
- package/src/nodes/utils/CubeMapNode.js +79 -2
- package/src/nodes/utils/DebugNode.js +83 -0
- package/src/nodes/utils/Discard.js +18 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/EventNode.js +118 -0
- package/src/nodes/utils/FlipNode.js +38 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +91 -22
- package/src/nodes/utils/JoinNode.js +57 -4
- package/src/nodes/utils/LoopNode.js +193 -55
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/MaxMipLevelNode.js +49 -1
- package/src/nodes/utils/MemberNode.js +120 -0
- package/src/nodes/utils/Oscillators.js +41 -0
- package/src/nodes/utils/Packing.js +30 -1
- package/src/nodes/utils/PostProcessingUtils.js +154 -0
- package/src/nodes/utils/RTTNode.js +165 -9
- package/src/nodes/utils/ReflectorNode.js +407 -21
- package/src/nodes/utils/RemapNode.js +81 -2
- package/src/nodes/utils/RotateNode.js +41 -1
- package/src/nodes/utils/SampleNode.js +91 -0
- package/src/nodes/utils/SetNode.js +44 -1
- package/src/nodes/utils/SplitNode.js +66 -3
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/SpriteUtils.js +16 -0
- package/src/nodes/utils/StorageArrayElementNode.js +56 -3
- package/src/nodes/utils/Timer.js +26 -0
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/nodes/utils/UVUtils.js +48 -0
- package/src/nodes/utils/ViewportUtils.js +12 -0
- package/src/objects/BatchedMesh.js +798 -309
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +68 -0
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +131 -2
- package/src/objects/LOD.js +99 -5
- package/src/objects/Line.js +90 -7
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +20 -1
- package/src/objects/Mesh.js +84 -0
- package/src/objects/Points.js +60 -0
- package/src/objects/Skeleton.js +120 -5
- package/src/objects/SkinnedMesh.js +102 -6
- package/src/objects/Sprite.js +65 -1
- package/src/renderers/WebGL3DRenderTarget.js +26 -0
- package/src/renderers/WebGLArrayRenderTarget.js +26 -0
- package/src/renderers/WebGLCubeRenderTarget.js +41 -5
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +1016 -278
- package/src/renderers/common/Animation.js +123 -14
- package/src/renderers/common/Attributes.js +41 -1
- package/src/renderers/common/Backend.js +623 -44
- package/src/renderers/common/Background.js +99 -16
- package/src/renderers/common/BindGroup.js +37 -2
- package/src/renderers/common/Binding.js +46 -0
- package/src/renderers/common/Bindings.js +211 -20
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +89 -0
- package/src/renderers/common/BufferUtils.js +25 -0
- package/src/renderers/common/BundleGroup.js +57 -0
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +73 -10
- package/src/renderers/common/ClippingContext.js +172 -87
- package/src/renderers/common/Color4.js +40 -0
- package/src/renderers/common/ComputePipeline.js +24 -0
- package/src/renderers/common/Constants.js +2 -1
- package/src/renderers/common/CubeRenderTarget.js +77 -7
- package/src/renderers/common/DataMap.js +37 -1
- package/src/renderers/common/Geometries.js +163 -14
- package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
- package/src/renderers/common/Info.js +81 -36
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/Lighting.js +57 -0
- package/src/renderers/common/Pipeline.js +22 -0
- package/src/renderers/common/Pipelines.js +150 -7
- package/src/renderers/common/PostProcessing.js +22 -84
- package/src/renderers/common/ProgrammableStage.js +60 -2
- package/src/renderers/common/QuadMesh.js +63 -6
- package/src/renderers/common/RenderBundle.js +14 -8
- package/src/renderers/common/RenderBundles.js +40 -10
- package/src/renderers/common/RenderContext.js +219 -4
- package/src/renderers/common/RenderContexts.js +54 -17
- package/src/renderers/common/RenderList.js +233 -24
- package/src/renderers/common/RenderLists.js +46 -6
- package/src/renderers/common/RenderObject.js +548 -46
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +133 -15
- package/src/renderers/common/RenderPipeline.js +216 -6
- package/src/renderers/common/Renderer.js +2155 -332
- package/src/renderers/common/RendererUtils.js +200 -0
- package/src/renderers/common/SampledTexture.js +99 -39
- package/src/renderers/common/Sampler.js +148 -1
- package/src/renderers/common/Storage3DTexture.js +100 -0
- package/src/renderers/common/StorageArrayTexture.js +84 -0
- package/src/renderers/common/StorageBuffer.js +38 -2
- package/src/renderers/common/StorageBufferAttribute.js +31 -2
- package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
- package/src/renderers/common/StorageTexture.js +65 -0
- package/src/renderers/common/Textures.js +273 -57
- package/src/renderers/common/TimestampQueryPool.js +163 -0
- package/src/renderers/common/Uniform.js +233 -3
- package/src/renderers/common/UniformBuffer.js +19 -0
- package/src/renderers/common/UniformsGroup.js +235 -26
- package/src/renderers/common/XRManager.js +1677 -0
- package/src/renderers/common/XRRenderTarget.js +91 -0
- package/src/renderers/common/extras/PMREMGenerator.js +371 -108
- package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
- package/src/renderers/common/nodes/NodeLibrary.js +95 -17
- package/src/renderers/common/nodes/NodeManager.js +852 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +84 -8
- package/src/renderers/common/nodes/NodeSampler.js +41 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +48 -3
- package/src/renderers/common/nodes/NodeUniform.js +285 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +81 -0
- package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +7 -11
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +5 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +154 -59
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +230 -181
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
- package/src/renderers/shaders/ShaderChunk.js +3 -3
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +14 -2
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -5
- package/src/renderers/shaders/UniformsLib.js +2 -7
- package/src/renderers/shaders/UniformsUtils.js +21 -2
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLBackground.js +30 -5
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLCapabilities.js +7 -14
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -35
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +267 -0
- package/src/renderers/webgl/WebGLProgram.js +87 -148
- package/src/renderers/webgl/WebGLPrograms.js +53 -51
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLShadowMap.js +204 -28
- package/src/renderers/webgl/WebGLState.js +88 -56
- package/src/renderers/webgl/WebGLTextures.js +293 -59
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +7 -5
- package/src/renderers/webgl-fallback/WebGLBackend.js +1416 -293
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +785 -92
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +62 -1
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +3 -3
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +584 -20
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +468 -80
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +396 -0
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +72 -24
- package/src/renderers/webgpu/WebGPUBackend.js +1517 -428
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +31 -4
- package/src/renderers/webgpu/WebGPURenderer.js +55 -4
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +23 -16
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +37 -42
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +1335 -241
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +32 -4
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +144 -20
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +460 -116
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -4
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +283 -69
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +225 -178
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +583 -191
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +310 -0
- package/src/renderers/webgpu/utils/WebGPUUtils.js +150 -28
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +52 -7
- package/src/renderers/webxr/WebXRManager.js +275 -15
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +88 -0
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +79 -2
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +59 -11
- package/src/textures/ExternalTexture.js +56 -0
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +106 -4
- package/src/textures/Texture.js +488 -6
- package/src/textures/VideoFrameTexture.js +72 -0
- package/src/textures/VideoTexture.js +78 -6
- package/src/utils.js +322 -3
- package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
- package/examples/jsm/animation/MMDPhysics.js +0 -1406
- package/examples/jsm/cameras/CinematicCamera.js +0 -208
- package/examples/jsm/effects/PeppersGhostEffect.js +0 -153
- package/examples/jsm/exporters/MMDExporter.js +0 -217
- package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
- package/examples/jsm/libs/mmdparser.module.js +0 -11530
- package/examples/jsm/loaders/GLTFLoaderAnimationPointer.js +0 -729
- package/examples/jsm/loaders/MMDLoader.js +0 -2295
- package/examples/jsm/loaders/RGBMLoader.js +0 -1081
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -432
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -144
- package/examples/jsm/misc/Timer.js +0 -128
- package/examples/jsm/objects/InstancedPoints.js +0 -21
- package/examples/jsm/shaders/GodRaysShader.js +0 -321
- package/examples/jsm/shaders/MMDToonShader.js +0 -134
- package/src/materials/nodes/InstancedPointsNodeMaterial.js +0 -156
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -24
- package/src/nodes/accessors/SceneNode.js +0 -55
- package/src/nodes/code/ScriptableNode.js +0 -505
- package/src/nodes/code/ScriptableValueNode.js +0 -170
- package/src/nodes/core/CacheNode.js +0 -50
- package/src/nodes/core/UniformGroup.js +0 -13
- package/src/nodes/display/AfterImageNode.js +0 -158
- package/src/nodes/display/AnaglyphPassNode.js +0 -67
- package/src/nodes/display/AnamorphicNode.js +0 -151
- package/src/nodes/display/BlendMode.js +0 -54
- package/src/nodes/display/BloomNode.js +0 -341
- package/src/nodes/display/DenoiseNode.js +0 -204
- package/src/nodes/display/DepthOfFieldNode.js +0 -124
- package/src/nodes/display/DotScreenNode.js +0 -66
- package/src/nodes/display/FXAANode.js +0 -332
- package/src/nodes/display/FilmNode.js +0 -56
- package/src/nodes/display/GTAONode.js +0 -331
- package/src/nodes/display/GaussianBlurNode.js +0 -213
- package/src/nodes/display/Lut3DNode.js +0 -57
- package/src/nodes/display/MotionBlur.js +0 -25
- package/src/nodes/display/ParallaxBarrierPassNode.js +0 -58
- package/src/nodes/display/PixelationPassNode.js +0 -213
- package/src/nodes/display/PosterizeNode.js +0 -33
- package/src/nodes/display/RGBShiftNode.js +0 -53
- package/src/nodes/display/StereoCompositePassNode.js +0 -110
- package/src/nodes/display/TransitionNode.js +0 -80
- package/src/nodes/fog/FogExp2Node.js +0 -35
- package/src/nodes/fog/FogNode.js +0 -50
- package/src/nodes/fog/FogRangeNode.js +0 -36
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
- package/src/nodes/utils/EquirectUVNode.js +0 -36
- package/src/nodes/utils/MatcapUVNode.js +0 -33
- package/src/nodes/utils/OscNode.js +0 -85
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -45
- package/src/nodes/utils/TimerNode.js +0 -97
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -64
- package/src/renderers/common/nodes/Nodes.js +0 -534
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -136
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
2
|
+
This license is copied below, and is also available with a FAQ at:
|
|
3
|
+
https://openfontlicense.org
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
-----------------------------------------------------------
|
|
7
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
PREAMBLE
|
|
11
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
12
|
+
development of collaborative font projects, to support the font creation
|
|
13
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
14
|
+
open framework in which fonts may be shared and improved in partnership
|
|
15
|
+
with others.
|
|
16
|
+
|
|
17
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
18
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
19
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
20
|
+
redistributed and/or sold with any software provided that any reserved
|
|
21
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
22
|
+
however, cannot be released under any other type of license. The
|
|
23
|
+
requirement for fonts to remain under this license does not apply
|
|
24
|
+
to any document created using the fonts or their derivatives.
|
|
25
|
+
|
|
26
|
+
DEFINITIONS
|
|
27
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
28
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
29
|
+
include source files, build scripts and documentation.
|
|
30
|
+
|
|
31
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
32
|
+
copyright statement(s).
|
|
33
|
+
|
|
34
|
+
"Original Version" refers to the collection of Font Software components as
|
|
35
|
+
distributed by the Copyright Holder(s).
|
|
36
|
+
|
|
37
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
38
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
39
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
40
|
+
new environment.
|
|
41
|
+
|
|
42
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
43
|
+
writer or other person who contributed to the Font Software.
|
|
44
|
+
|
|
45
|
+
PERMISSION & CONDITIONS
|
|
46
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
47
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
48
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
49
|
+
Software, subject to the following conditions:
|
|
50
|
+
|
|
51
|
+
1) Neither the Font Software nor any of its individual components,
|
|
52
|
+
in Original or Modified Versions, may be sold by itself.
|
|
53
|
+
|
|
54
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
55
|
+
redistributed and/or sold with any software, provided that each copy
|
|
56
|
+
contains the above copyright notice and this license. These can be
|
|
57
|
+
included either as stand-alone text files, human-readable headers or
|
|
58
|
+
in the appropriate machine-readable metadata fields within text or
|
|
59
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
60
|
+
|
|
61
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
62
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
63
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
64
|
+
presented to the users.
|
|
65
|
+
|
|
66
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
67
|
+
Software shall not be used to promote, endorse or advertise any
|
|
68
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
69
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
70
|
+
permission.
|
|
71
|
+
|
|
72
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
73
|
+
must be distributed entirely under this license, and must not be
|
|
74
|
+
distributed under any other license. The requirement for fonts to
|
|
75
|
+
remain under this license does not apply to any document created
|
|
76
|
+
using the Font Software.
|
|
77
|
+
|
|
78
|
+
TERMINATION
|
|
79
|
+
This license becomes null and void if any of the above conditions are
|
|
80
|
+
not met.
|
|
81
|
+
|
|
82
|
+
DISCLAIMER
|
|
83
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
84
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
85
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
86
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
87
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
88
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
89
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
90
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
91
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
package/examples/jsm/Addons.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export * from './animation/AnimationClipCreator.js';
|
|
2
2
|
export * from './animation/CCDIKSolver.js';
|
|
3
|
-
export * from './animation/MMDAnimationHelper.js';
|
|
4
|
-
export * from './animation/MMDPhysics.js';
|
|
5
|
-
|
|
6
|
-
export * from './cameras/CinematicCamera.js';
|
|
7
3
|
|
|
8
4
|
export { default as WebGL } from './capabilities/WebGL.js';
|
|
9
5
|
|
|
@@ -32,7 +28,6 @@ export * from './effects/AnaglyphEffect.js';
|
|
|
32
28
|
export * from './effects/AsciiEffect.js';
|
|
33
29
|
export * from './effects/OutlineEffect.js';
|
|
34
30
|
export * from './effects/ParallaxBarrierEffect.js';
|
|
35
|
-
export * from './effects/PeppersGhostEffect.js';
|
|
36
31
|
export * from './effects/StereoEffect.js';
|
|
37
32
|
|
|
38
33
|
export * from './environments/DebugEnvironment.js';
|
|
@@ -42,7 +37,6 @@ export * from './exporters/DRACOExporter.js';
|
|
|
42
37
|
export * from './exporters/EXRExporter.js';
|
|
43
38
|
export * from './exporters/GLTFExporter.js';
|
|
44
39
|
export * from './exporters/KTX2Exporter.js';
|
|
45
|
-
export * from './exporters/MMDExporter.js';
|
|
46
40
|
export * from './exporters/OBJExporter.js';
|
|
47
41
|
export * from './exporters/PLYExporter.js';
|
|
48
42
|
export * from './exporters/STLExporter.js';
|
|
@@ -51,7 +45,7 @@ export * from './exporters/USDZExporter.js';
|
|
|
51
45
|
export * from './geometries/BoxLineGeometry.js';
|
|
52
46
|
export * from './geometries/ConvexGeometry.js';
|
|
53
47
|
export * from './geometries/DecalGeometry.js';
|
|
54
|
-
export * from './geometries/
|
|
48
|
+
export * from './geometries/ParametricFunctions.js';
|
|
55
49
|
export * from './geometries/ParametricGeometry.js';
|
|
56
50
|
export * from './geometries/RoundedBoxGeometry.js';
|
|
57
51
|
export * from './geometries/TeapotGeometry.js';
|
|
@@ -95,6 +89,7 @@ export * from './loaders/FBXLoader.js';
|
|
|
95
89
|
export * from './loaders/FontLoader.js';
|
|
96
90
|
export * from './loaders/GCodeLoader.js';
|
|
97
91
|
export * from './loaders/GLTFLoader.js';
|
|
92
|
+
export * from './loaders/HDRLoader.js';
|
|
98
93
|
export * from './loaders/HDRCubeTextureLoader.js';
|
|
99
94
|
export * from './loaders/IESLoader.js';
|
|
100
95
|
export * from './loaders/KMZLoader.js';
|
|
@@ -107,7 +102,6 @@ export * from './loaders/LWOLoader.js';
|
|
|
107
102
|
export * from './loaders/LottieLoader.js';
|
|
108
103
|
export * from './loaders/MD2Loader.js';
|
|
109
104
|
export * from './loaders/MDDLoader.js';
|
|
110
|
-
export * from './loaders/MMDLoader.js';
|
|
111
105
|
export * from './loaders/MTLLoader.js';
|
|
112
106
|
export * from './loaders/NRRDLoader.js';
|
|
113
107
|
export * from './loaders/OBJLoader.js';
|
|
@@ -117,20 +111,19 @@ export * from './loaders/PLYLoader.js';
|
|
|
117
111
|
export * from './loaders/PVRLoader.js';
|
|
118
112
|
export * from './loaders/RGBELoader.js';
|
|
119
113
|
export * from './loaders/UltraHDRLoader.js';
|
|
120
|
-
export * from './loaders/RGBMLoader.js';
|
|
121
114
|
export * from './loaders/STLLoader.js';
|
|
122
115
|
export * from './loaders/SVGLoader.js';
|
|
123
116
|
export * from './loaders/TDSLoader.js';
|
|
124
117
|
export * from './loaders/TGALoader.js';
|
|
125
118
|
export * from './loaders/TIFFLoader.js';
|
|
126
119
|
export * from './loaders/TTFLoader.js';
|
|
127
|
-
export * from './loaders/
|
|
120
|
+
export * from './loaders/USDLoader.js';
|
|
128
121
|
export * from './loaders/VOXLoader.js';
|
|
129
122
|
export * from './loaders/VRMLLoader.js';
|
|
130
123
|
export * from './loaders/VTKLoader.js';
|
|
131
124
|
export * from './loaders/XYZLoader.js';
|
|
132
125
|
|
|
133
|
-
export * from './materials/
|
|
126
|
+
export * from './materials/LDrawConditionalLineMaterial.js';
|
|
134
127
|
|
|
135
128
|
export * from './math/Capsule.js';
|
|
136
129
|
export * from './math/ColorConverter.js';
|
|
@@ -151,7 +144,6 @@ export * from './misc/MorphAnimMesh.js';
|
|
|
151
144
|
export * from './misc/MorphBlendMesh.js';
|
|
152
145
|
export * from './misc/ProgressiveLightMap.js';
|
|
153
146
|
export * from './misc/RollerCoaster.js';
|
|
154
|
-
export * from './misc/Timer.js';
|
|
155
147
|
export * from './misc/TubePainter.js';
|
|
156
148
|
export * from './misc/Volume.js';
|
|
157
149
|
export * from './misc/VolumeSlice.js';
|
|
@@ -231,7 +223,6 @@ export * from './shaders/FilmShader.js';
|
|
|
231
223
|
export * from './shaders/FocusShader.js';
|
|
232
224
|
export * from './shaders/FreiChenShader.js';
|
|
233
225
|
export * from './shaders/GammaCorrectionShader.js';
|
|
234
|
-
export * from './shaders/GodRaysShader.js';
|
|
235
226
|
export * from './shaders/GTAOShader.js';
|
|
236
227
|
export * from './shaders/HalftoneShader.js';
|
|
237
228
|
export * from './shaders/HorizontalBlurShader.js';
|
|
@@ -240,7 +231,6 @@ export * from './shaders/HueSaturationShader.js';
|
|
|
240
231
|
export * from './shaders/KaleidoShader.js';
|
|
241
232
|
export * from './shaders/LuminosityHighPassShader.js';
|
|
242
233
|
export * from './shaders/LuminosityShader.js';
|
|
243
|
-
export * from './shaders/MMDToonShader.js';
|
|
244
234
|
export * from './shaders/MirrorShader.js';
|
|
245
235
|
export * from './shaders/NormalMapShader.js';
|
|
246
236
|
export * from './shaders/OutputShader.js';
|
|
@@ -274,7 +264,7 @@ export * as SceneUtils from './utils/SceneUtils.js';
|
|
|
274
264
|
export * from './utils/ShadowMapViewer.js';
|
|
275
265
|
export * as SkeletonUtils from './utils/SkeletonUtils.js';
|
|
276
266
|
export * as SortUtils from './utils/SortUtils.js';
|
|
277
|
-
export * from './utils/
|
|
267
|
+
export * from './utils/WebGLTextureUtils.js';
|
|
278
268
|
export * from './utils/UVsDebug.js';
|
|
279
269
|
export * from './utils/WorkerPool.js';
|
|
280
270
|
|
|
@@ -7,8 +7,22 @@ import {
|
|
|
7
7
|
VectorKeyframeTrack
|
|
8
8
|
} from 'three';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* A utility class with factory methods for creating basic animation clips.
|
|
12
|
+
*
|
|
13
|
+
* @hideconstructor
|
|
14
|
+
* @three_import import { AnimationClipCreator } from 'three/addons/animation/AnimationClipCreator.js';
|
|
15
|
+
*/
|
|
10
16
|
class AnimationClipCreator {
|
|
11
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Creates an animation clip that rotates a 3D object 360 degrees
|
|
20
|
+
* in the given period of time around the given axis.
|
|
21
|
+
*
|
|
22
|
+
* @param {number} period - The duration of the animation.
|
|
23
|
+
* @param {('x'|'y'|'z')} [axis='x'] - The axis of rotation.
|
|
24
|
+
* @return {AnimationClip} The created animation clip.
|
|
25
|
+
*/
|
|
12
26
|
static CreateRotationAnimation( period, axis = 'x' ) {
|
|
13
27
|
|
|
14
28
|
const times = [ 0, period ], values = [ 0, 360 ];
|
|
@@ -17,10 +31,18 @@ class AnimationClipCreator {
|
|
|
17
31
|
|
|
18
32
|
const track = new NumberKeyframeTrack( trackName, times, values );
|
|
19
33
|
|
|
20
|
-
return new AnimationClip(
|
|
34
|
+
return new AnimationClip( '', period, [ track ] );
|
|
21
35
|
|
|
22
36
|
}
|
|
23
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Creates an animation clip that scales a 3D object from `0` to `1`
|
|
40
|
+
* in the given period of time along the given axis.
|
|
41
|
+
*
|
|
42
|
+
* @param {number} period - The duration of the animation.
|
|
43
|
+
* @param {('x'|'y'|'z')} [axis='x'] - The axis to scale the 3D object along.
|
|
44
|
+
* @return {AnimationClip} The created animation clip.
|
|
45
|
+
*/
|
|
24
46
|
static CreateScaleAxisAnimation( period, axis = 'x' ) {
|
|
25
47
|
|
|
26
48
|
const times = [ 0, period ], values = [ 0, 1 ];
|
|
@@ -29,10 +51,18 @@ class AnimationClipCreator {
|
|
|
29
51
|
|
|
30
52
|
const track = new NumberKeyframeTrack( trackName, times, values );
|
|
31
53
|
|
|
32
|
-
return new AnimationClip(
|
|
54
|
+
return new AnimationClip( '', period, [ track ] );
|
|
33
55
|
|
|
34
56
|
}
|
|
35
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Creates an animation clip that translates a 3D object in a shake pattern
|
|
60
|
+
* in the given period.
|
|
61
|
+
*
|
|
62
|
+
* @param {number} duration - The duration of the animation.
|
|
63
|
+
* @param {Vector3} shakeScale - The scale of the shake.
|
|
64
|
+
* @return {AnimationClip} The created animation clip.
|
|
65
|
+
*/
|
|
36
66
|
static CreateShakeAnimation( duration, shakeScale ) {
|
|
37
67
|
|
|
38
68
|
const times = [], values = [], tmp = new Vector3();
|
|
@@ -51,10 +81,18 @@ class AnimationClipCreator {
|
|
|
51
81
|
|
|
52
82
|
const track = new VectorKeyframeTrack( trackName, times, values );
|
|
53
83
|
|
|
54
|
-
return new AnimationClip(
|
|
84
|
+
return new AnimationClip( '', duration, [ track ] );
|
|
55
85
|
|
|
56
86
|
}
|
|
57
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Creates an animation clip that scales a 3D object in a pulse pattern
|
|
90
|
+
* in the given period.
|
|
91
|
+
*
|
|
92
|
+
* @param {number} duration - The duration of the animation.
|
|
93
|
+
* @param {number} pulseScale - The scale of the pulse.
|
|
94
|
+
* @return {AnimationClip} The created animation clip.
|
|
95
|
+
*/
|
|
58
96
|
static CreatePulsationAnimation( duration, pulseScale ) {
|
|
59
97
|
|
|
60
98
|
const times = [], values = [], tmp = new Vector3();
|
|
@@ -73,10 +111,16 @@ class AnimationClipCreator {
|
|
|
73
111
|
|
|
74
112
|
const track = new VectorKeyframeTrack( trackName, times, values );
|
|
75
113
|
|
|
76
|
-
return new AnimationClip(
|
|
114
|
+
return new AnimationClip( '', duration, [ track ] );
|
|
77
115
|
|
|
78
116
|
}
|
|
79
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Creates an animation clip that toggles the visibility of a 3D object.
|
|
120
|
+
*
|
|
121
|
+
* @param {number} duration - The duration of the animation.
|
|
122
|
+
* @return {AnimationClip} The created animation clip.
|
|
123
|
+
*/
|
|
80
124
|
static CreateVisibilityAnimation( duration ) {
|
|
81
125
|
|
|
82
126
|
const times = [ 0, duration / 2, duration ], values = [ true, false, true ];
|
|
@@ -85,10 +129,18 @@ class AnimationClipCreator {
|
|
|
85
129
|
|
|
86
130
|
const track = new BooleanKeyframeTrack( trackName, times, values );
|
|
87
131
|
|
|
88
|
-
return new AnimationClip(
|
|
132
|
+
return new AnimationClip( '', duration, [ track ] );
|
|
89
133
|
|
|
90
134
|
}
|
|
91
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Creates an animation clip that animates the `color` property of a 3D object's
|
|
138
|
+
* material.
|
|
139
|
+
*
|
|
140
|
+
* @param {number} duration - The duration of the animation.
|
|
141
|
+
* @param {Array<Color>} colors - An array of colors that should be sequentially animated.
|
|
142
|
+
* @return {AnimationClip} The created animation clip.
|
|
143
|
+
*/
|
|
92
144
|
static CreateMaterialColorAnimation( duration, colors ) {
|
|
93
145
|
|
|
94
146
|
const times = [], values = [],
|
|
@@ -107,7 +159,7 @@ class AnimationClipCreator {
|
|
|
107
159
|
|
|
108
160
|
const track = new ColorKeyframeTrack( trackName, times, values );
|
|
109
161
|
|
|
110
|
-
return new AnimationClip(
|
|
162
|
+
return new AnimationClip( '', duration, [ track ] );
|
|
111
163
|
|
|
112
164
|
}
|
|
113
165
|
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
Vector3
|
|
14
14
|
} from 'three';
|
|
15
15
|
|
|
16
|
-
const
|
|
16
|
+
const _quaternion = new Quaternion();
|
|
17
17
|
const _targetPos = new Vector3();
|
|
18
18
|
const _targetVec = new Vector3();
|
|
19
19
|
const _effectorPos = new Vector3();
|
|
@@ -25,54 +25,68 @@ const _axis = new Vector3();
|
|
|
25
25
|
const _vector = new Vector3();
|
|
26
26
|
const _matrix = new Matrix4();
|
|
27
27
|
|
|
28
|
-
|
|
29
28
|
/**
|
|
30
|
-
* CCD Algorithm
|
|
31
|
-
*
|
|
29
|
+
* This class solves the Inverse Kinematics Problem with a [CCD Algorithm](https://web.archive.org/web/20221206080850/https://sites.google.com/site/auraliusproject/ccd-algorithm).
|
|
30
|
+
*
|
|
31
|
+
* `CCDIKSolver` is designed to work with instances of {@link SkinnedMesh}.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
* //
|
|
35
|
-
* // target, effector, index in links are bone index in skeleton.bones.
|
|
36
|
-
* // the bones relation should be
|
|
37
|
-
* // <-- parent child -->
|
|
38
|
-
* // links[ n ], links[ n - 1 ], ..., links[ 0 ], effector
|
|
39
|
-
* iks = [ {
|
|
40
|
-
* target: 1,
|
|
41
|
-
* effector: 2,
|
|
42
|
-
* links: [ { index: 5, limitation: new Vector3( 1, 0, 0 ) }, { index: 4, enabled: false }, { index : 3 } ],
|
|
43
|
-
* iteration: 10,
|
|
44
|
-
* minAngle: 0.0,
|
|
45
|
-
* maxAngle: 1.0,
|
|
46
|
-
* } ];
|
|
33
|
+
* @three_import import { CCDIKSolver } from 'three/addons/animation/CCDIKSolver.js';
|
|
47
34
|
*/
|
|
48
|
-
|
|
49
35
|
class CCDIKSolver {
|
|
50
36
|
|
|
51
37
|
/**
|
|
52
|
-
* @param {
|
|
53
|
-
* @param {Array<
|
|
38
|
+
* @param {SkinnedMesh} mesh - The skinned mesh.
|
|
39
|
+
* @param {Array<CCDIKSolver~IK>} [iks=[]] - The IK objects.
|
|
54
40
|
*/
|
|
55
41
|
constructor( mesh, iks = [] ) {
|
|
56
42
|
|
|
43
|
+
/**
|
|
44
|
+
* The skinned mesh.
|
|
45
|
+
*
|
|
46
|
+
* @type {SkinnedMesh}
|
|
47
|
+
*/
|
|
57
48
|
this.mesh = mesh;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The IK objects.
|
|
52
|
+
*
|
|
53
|
+
* @type {Array<CCDIKSolver~IK>}
|
|
54
|
+
*/
|
|
58
55
|
this.iks = iks;
|
|
59
56
|
|
|
57
|
+
this._initialQuaternions = [];
|
|
58
|
+
this._workingQuaternion = new Quaternion();
|
|
59
|
+
|
|
60
|
+
for ( const ik of iks ) {
|
|
61
|
+
|
|
62
|
+
const chainQuats = [];
|
|
63
|
+
for ( let i = 0; i < ik.links.length; i ++ ) {
|
|
64
|
+
|
|
65
|
+
chainQuats.push( new Quaternion() );
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
this._initialQuaternions.push( chainQuats );
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
60
73
|
this._valid();
|
|
61
74
|
|
|
62
75
|
}
|
|
63
76
|
|
|
64
77
|
/**
|
|
65
|
-
*
|
|
78
|
+
* Updates all IK bones by solving the CCD algorithm.
|
|
66
79
|
*
|
|
67
|
-
* @
|
|
80
|
+
* @param {number} [globalBlendFactor=1.0] - Blend factor applied if an IK chain doesn't have its own .blendFactor.
|
|
81
|
+
* @return {CCDIKSolver} A reference to this instance.
|
|
68
82
|
*/
|
|
69
|
-
update() {
|
|
83
|
+
update( globalBlendFactor = 1.0 ) {
|
|
70
84
|
|
|
71
85
|
const iks = this.iks;
|
|
72
86
|
|
|
73
87
|
for ( let i = 0, il = iks.length; i < il; i ++ ) {
|
|
74
88
|
|
|
75
|
-
this.updateOne( iks[ i ] );
|
|
89
|
+
this.updateOne( iks[ i ], globalBlendFactor );
|
|
76
90
|
|
|
77
91
|
}
|
|
78
92
|
|
|
@@ -81,14 +95,18 @@ class CCDIKSolver {
|
|
|
81
95
|
}
|
|
82
96
|
|
|
83
97
|
/**
|
|
84
|
-
*
|
|
98
|
+
* Updates one IK bone solving the CCD algorithm.
|
|
85
99
|
*
|
|
86
|
-
* @param {
|
|
87
|
-
* @
|
|
100
|
+
* @param {CCDIKSolver~IK} ik - The IK to update.
|
|
101
|
+
* @param {number} [overrideBlend=1.0] - If the IK object does not define `blendFactor`, this value is used.
|
|
102
|
+
* @return {CCDIKSolver} A reference to this instance.
|
|
88
103
|
*/
|
|
89
|
-
updateOne( ik ) {
|
|
104
|
+
updateOne( ik, overrideBlend = 1.0 ) {
|
|
90
105
|
|
|
106
|
+
const chainBlend = ik.blendFactor !== undefined ? ik.blendFactor : overrideBlend;
|
|
91
107
|
const bones = this.mesh.skeleton.bones;
|
|
108
|
+
const chainIndex = this.iks.indexOf( ik );
|
|
109
|
+
const initialQuaternions = this._initialQuaternions[ chainIndex ];
|
|
92
110
|
|
|
93
111
|
// for reference overhead reduction in loop
|
|
94
112
|
const math = Math;
|
|
@@ -103,6 +121,17 @@ class CCDIKSolver {
|
|
|
103
121
|
const links = ik.links;
|
|
104
122
|
const iteration = ik.iteration !== undefined ? ik.iteration : 1;
|
|
105
123
|
|
|
124
|
+
if ( chainBlend < 1.0 ) {
|
|
125
|
+
|
|
126
|
+
for ( let j = 0; j < links.length; j ++ ) {
|
|
127
|
+
|
|
128
|
+
const linkIndex = links[ j ].index;
|
|
129
|
+
initialQuaternions[ j ].copy( bones[ linkIndex ].quaternion );
|
|
130
|
+
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
|
|
106
135
|
for ( let i = 0; i < iteration; i ++ ) {
|
|
107
136
|
|
|
108
137
|
let rotated = false;
|
|
@@ -111,8 +140,7 @@ class CCDIKSolver {
|
|
|
111
140
|
|
|
112
141
|
const link = bones[ links[ j ].index ];
|
|
113
142
|
|
|
114
|
-
// skip this link and following links
|
|
115
|
-
// this skip is used for MMD performance optimization.
|
|
143
|
+
// skip this link and following links
|
|
116
144
|
if ( links[ j ].enabled === false ) break;
|
|
117
145
|
|
|
118
146
|
const limitation = links[ j ].limitation;
|
|
@@ -166,8 +194,8 @@ class CCDIKSolver {
|
|
|
166
194
|
_axis.crossVectors( _effectorVec, _targetVec );
|
|
167
195
|
_axis.normalize();
|
|
168
196
|
|
|
169
|
-
|
|
170
|
-
link.quaternion.multiply(
|
|
197
|
+
_quaternion.setFromAxisAngle( _axis, angle );
|
|
198
|
+
link.quaternion.multiply( _quaternion );
|
|
171
199
|
|
|
172
200
|
// TODO: re-consider the limitation specification
|
|
173
201
|
if ( limitation !== undefined ) {
|
|
@@ -206,15 +234,31 @@ class CCDIKSolver {
|
|
|
206
234
|
|
|
207
235
|
}
|
|
208
236
|
|
|
209
|
-
|
|
237
|
+
if ( chainBlend < 1.0 ) {
|
|
238
|
+
|
|
239
|
+
for ( let j = 0; j < links.length; j ++ ) {
|
|
240
|
+
|
|
241
|
+
const linkIndex = links[ j ].index;
|
|
242
|
+
const link = bones[ linkIndex ];
|
|
243
|
+
|
|
244
|
+
this._workingQuaternion.copy( initialQuaternions[ j ] ).slerp( link.quaternion, chainBlend );
|
|
245
|
+
|
|
246
|
+
link.quaternion.copy( this._workingQuaternion );
|
|
247
|
+
link.updateMatrixWorld( true );
|
|
248
|
+
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return this;
|
|
210
254
|
|
|
211
255
|
}
|
|
212
256
|
|
|
213
257
|
/**
|
|
214
|
-
* Creates
|
|
258
|
+
* Creates a helper for visualizing the CCDIK.
|
|
215
259
|
*
|
|
216
|
-
* @param {number} sphereSize
|
|
217
|
-
* @return {CCDIKHelper}
|
|
260
|
+
* @param {number} sphereSize - The sphere size.
|
|
261
|
+
* @return {CCDIKHelper} The created helper.
|
|
218
262
|
*/
|
|
219
263
|
createHelper( sphereSize ) {
|
|
220
264
|
|
|
@@ -277,26 +321,51 @@ function setPositionOfBoneToAttributeArray( array, index, bone, matrixWorldInv )
|
|
|
277
321
|
}
|
|
278
322
|
|
|
279
323
|
/**
|
|
280
|
-
*
|
|
324
|
+
* Helper for visualizing IK bones.
|
|
281
325
|
*
|
|
282
|
-
* @
|
|
283
|
-
* @
|
|
284
|
-
* @param {number} sphereSize
|
|
326
|
+
* @augments Object3D
|
|
327
|
+
* @three_import import { CCDIKHelper } from 'three/addons/animation/CCDIKSolver.js';
|
|
285
328
|
*/
|
|
286
329
|
class CCDIKHelper extends Object3D {
|
|
287
330
|
|
|
331
|
+
/**
|
|
332
|
+
* @param {SkinnedMesh} mesh - The skinned mesh.
|
|
333
|
+
* @param {Array<CCDIKSolver~IK>} [iks=[]] - The IK objects.
|
|
334
|
+
* @param {number} [sphereSize=0.25] - The sphere size.
|
|
335
|
+
*/
|
|
288
336
|
constructor( mesh, iks = [], sphereSize = 0.25 ) {
|
|
289
337
|
|
|
290
338
|
super();
|
|
291
339
|
|
|
340
|
+
/**
|
|
341
|
+
* The skinned mesh this helper refers to.
|
|
342
|
+
*
|
|
343
|
+
* @type {SkinnedMesh}
|
|
344
|
+
*/
|
|
292
345
|
this.root = mesh;
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* The IK objects.
|
|
349
|
+
*
|
|
350
|
+
* @type {Array<CCDIKSolver~IK>}
|
|
351
|
+
*/
|
|
293
352
|
this.iks = iks;
|
|
294
353
|
|
|
295
354
|
this.matrix.copy( mesh.matrixWorld );
|
|
296
355
|
this.matrixAutoUpdate = false;
|
|
297
356
|
|
|
357
|
+
/**
|
|
358
|
+
* The helpers sphere geometry.
|
|
359
|
+
*
|
|
360
|
+
* @type {SphereGeometry}
|
|
361
|
+
*/
|
|
298
362
|
this.sphereGeometry = new SphereGeometry( sphereSize, 16, 8 );
|
|
299
363
|
|
|
364
|
+
/**
|
|
365
|
+
* The material for the target spheres.
|
|
366
|
+
*
|
|
367
|
+
* @type {MeshBasicMaterial}
|
|
368
|
+
*/
|
|
300
369
|
this.targetSphereMaterial = new MeshBasicMaterial( {
|
|
301
370
|
color: new Color( 0xff8888 ),
|
|
302
371
|
depthTest: false,
|
|
@@ -304,6 +373,11 @@ class CCDIKHelper extends Object3D {
|
|
|
304
373
|
transparent: true
|
|
305
374
|
} );
|
|
306
375
|
|
|
376
|
+
/**
|
|
377
|
+
* The material for the effector spheres.
|
|
378
|
+
*
|
|
379
|
+
* @type {MeshBasicMaterial}
|
|
380
|
+
*/
|
|
307
381
|
this.effectorSphereMaterial = new MeshBasicMaterial( {
|
|
308
382
|
color: new Color( 0x88ff88 ),
|
|
309
383
|
depthTest: false,
|
|
@@ -311,6 +385,11 @@ class CCDIKHelper extends Object3D {
|
|
|
311
385
|
transparent: true
|
|
312
386
|
} );
|
|
313
387
|
|
|
388
|
+
/**
|
|
389
|
+
* The material for the link spheres.
|
|
390
|
+
*
|
|
391
|
+
* @type {MeshBasicMaterial}
|
|
392
|
+
*/
|
|
314
393
|
this.linkSphereMaterial = new MeshBasicMaterial( {
|
|
315
394
|
color: new Color( 0x8888ff ),
|
|
316
395
|
depthTest: false,
|
|
@@ -318,6 +397,11 @@ class CCDIKHelper extends Object3D {
|
|
|
318
397
|
transparent: true
|
|
319
398
|
} );
|
|
320
399
|
|
|
400
|
+
/**
|
|
401
|
+
* A global line material.
|
|
402
|
+
*
|
|
403
|
+
* @type {LineBasicMaterial}
|
|
404
|
+
*/
|
|
321
405
|
this.lineMaterial = new LineBasicMaterial( {
|
|
322
406
|
color: new Color( 0xff0000 ),
|
|
323
407
|
depthTest: false,
|
|
@@ -329,9 +413,6 @@ class CCDIKHelper extends Object3D {
|
|
|
329
413
|
|
|
330
414
|
}
|
|
331
415
|
|
|
332
|
-
/**
|
|
333
|
-
* Updates IK bones visualization.
|
|
334
|
-
*/
|
|
335
416
|
updateMatrixWorld( force ) {
|
|
336
417
|
|
|
337
418
|
const mesh = this.root;
|
|
@@ -396,7 +477,8 @@ class CCDIKHelper extends Object3D {
|
|
|
396
477
|
}
|
|
397
478
|
|
|
398
479
|
/**
|
|
399
|
-
* Frees the GPU-related resources allocated by this instance.
|
|
480
|
+
* Frees the GPU-related resources allocated by this instance.
|
|
481
|
+
* Call this method whenever this instance is no longer used in your app.
|
|
400
482
|
*/
|
|
401
483
|
dispose() {
|
|
402
484
|
|
|
@@ -481,4 +563,29 @@ class CCDIKHelper extends Object3D {
|
|
|
481
563
|
|
|
482
564
|
}
|
|
483
565
|
|
|
566
|
+
/**
|
|
567
|
+
* This type represents IK configuration objects.
|
|
568
|
+
*
|
|
569
|
+
* @typedef {Object} CCDIKSolver~IK
|
|
570
|
+
* @property {number} target - The target bone index which refers to a bone in the `Skeleton.bones` array.
|
|
571
|
+
* @property {number} effector - The effector bone index which refers to a bone in the `Skeleton.bones` array.
|
|
572
|
+
* @property {Array<CCDIKSolver~BoneLink>} links - An array of bone links.
|
|
573
|
+
* @property {number} [iteration=1] - Iteration number of calculation. Smaller is faster but less precise.
|
|
574
|
+
* @property {number} [minAngle] - Minimum rotation angle in a step in radians.
|
|
575
|
+
* @property {number} [maxAngle] - Minimum rotation angle in a step in radians.
|
|
576
|
+
* @property {number} [blendFactor] - The blend factor.
|
|
577
|
+
**/
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* This type represents bone links.
|
|
581
|
+
*
|
|
582
|
+
* @typedef {Object} CCDIKSolver~BoneLink
|
|
583
|
+
* @property {number} index - The index of a linked bone which refers to a bone in the `Skeleton.bones` array.
|
|
584
|
+
* @property {number} [limitation] - Rotation axis.
|
|
585
|
+
* @property {number} [rotationMin] - Rotation minimum limit.
|
|
586
|
+
* @property {number} [rotationMax] - Rotation maximum limit.
|
|
587
|
+
* @property {boolean} [enabled=true] - Whether the link is enabled or not.
|
|
588
|
+
**/
|
|
589
|
+
|
|
590
|
+
|
|
484
591
|
export { CCDIKSolver, CCDIKHelper };
|