@playdrop/playdrop-cli 0.3.5-build.1 → 0.3.8-build.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.
Files changed (1288) hide show
  1. package/config/client-meta.json +5 -5
  2. package/dist/apps/upload.js +1 -0
  3. package/dist/catalogue.d.ts +7 -0
  4. package/dist/catalogue.js +70 -33
  5. package/dist/commands/create.js +129 -70
  6. package/dist/commands/createRemixContent.d.ts +3 -0
  7. package/dist/commands/createRemixContent.js +310 -0
  8. package/dist/commands/generation.d.ts +0 -1
  9. package/dist/commands/generation.js +0 -18
  10. package/dist/commands/init.js +3 -3
  11. package/dist/commands/upload.js +11 -0
  12. package/dist/index.js +17 -4
  13. package/node_modules/@playdrop/ai-client/dist/index.d.ts +1 -1
  14. package/node_modules/@playdrop/ai-client/dist/index.d.ts.map +1 -1
  15. package/node_modules/@playdrop/ai-client/dist/index.js +1 -1
  16. package/node_modules/@playdrop/api-client/dist/client.d.ts +8 -2
  17. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  18. package/node_modules/@playdrop/api-client/dist/client.js +2 -0
  19. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +3 -2
  20. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  21. package/node_modules/@playdrop/api-client/dist/domains/apps.js +24 -2
  22. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +3 -1
  23. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
  24. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.js +19 -1
  25. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +3 -1
  26. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
  27. package/node_modules/@playdrop/api-client/dist/domains/assets.js +19 -1
  28. package/node_modules/@playdrop/api-client/dist/index.d.ts +3 -0
  29. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  30. package/node_modules/@playdrop/api-client/dist/index.js +9 -0
  31. package/node_modules/@playdrop/config/client-meta.json +5 -5
  32. package/node_modules/@playdrop/types/dist/api.d.ts +22 -1
  33. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  34. package/node_modules/@playdrop/types/dist/asset-pack.d.ts +1 -0
  35. package/node_modules/@playdrop/types/dist/asset-pack.d.ts.map +1 -1
  36. package/node_modules/@playdrop/types/dist/asset.d.ts +27 -0
  37. package/node_modules/@playdrop/types/dist/asset.d.ts.map +1 -1
  38. package/node_modules/@playdrop/types/dist/graph.d.ts +21 -0
  39. package/node_modules/@playdrop/types/dist/graph.d.ts.map +1 -1
  40. package/node_modules/@playdrop/types/dist/graph.js +66 -0
  41. package/node_modules/@playdrop/types/dist/version.d.ts +1 -0
  42. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  43. package/node_modules/@playdrop/vox-three/dist/src/index.d.ts +1 -0
  44. package/node_modules/@playdrop/vox-three/dist/src/index.js +18 -0
  45. package/node_modules/@playdrop/vox-three/dist/src/index.js.map +1 -0
  46. package/node_modules/@playdrop/vox-three/dist/src/vox.d.ts +25 -0
  47. package/node_modules/@playdrop/vox-three/dist/src/vox.js +425 -0
  48. package/node_modules/@playdrop/vox-three/dist/src/vox.js.map +1 -0
  49. package/node_modules/@playdrop/vox-three/dist/test/vox.test.d.ts +1 -0
  50. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js +79 -0
  51. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js.map +1 -0
  52. package/node_modules/@playdrop/vox-three/package.json +25 -0
  53. package/node_modules/three/LICENSE +1 -1
  54. package/node_modules/three/README.md +7 -7
  55. package/node_modules/three/build/three.cjs +49655 -25499
  56. package/node_modules/three/build/three.core.js +58952 -0
  57. package/node_modules/three/build/three.core.min.js +6 -0
  58. package/node_modules/three/build/three.module.js +11162 -45962
  59. package/node_modules/three/build/three.module.min.js +2 -2
  60. package/node_modules/three/build/three.tsl.js +640 -0
  61. package/node_modules/three/build/three.tsl.min.js +6 -0
  62. package/node_modules/three/build/three.webgpu.js +79685 -0
  63. package/node_modules/three/build/three.webgpu.min.js +6 -0
  64. package/node_modules/three/build/three.webgpu.nodes.js +79456 -0
  65. package/node_modules/three/build/three.webgpu.nodes.min.js +6 -0
  66. package/node_modules/three/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  67. package/node_modules/three/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
  68. package/node_modules/three/examples/jsm/Addons.js +8 -18
  69. package/node_modules/three/examples/jsm/animation/AnimationClipCreator.js +59 -7
  70. package/node_modules/three/examples/jsm/animation/CCDIKSolver.js +154 -45
  71. package/node_modules/three/examples/jsm/capabilities/WebGL.js +28 -23
  72. package/node_modules/three/examples/jsm/capabilities/WebGPU.js +19 -17
  73. package/node_modules/three/examples/jsm/controls/ArcballControls.js +636 -324
  74. package/node_modules/three/examples/jsm/controls/DragControls.js +332 -101
  75. package/node_modules/three/examples/jsm/controls/FirstPersonControls.js +291 -169
  76. package/node_modules/three/examples/jsm/controls/FlyControls.js +245 -191
  77. package/node_modules/three/examples/jsm/controls/MapControls.js +43 -9
  78. package/node_modules/three/examples/jsm/controls/OrbitControls.js +1156 -802
  79. package/node_modules/three/examples/jsm/controls/PointerLockControls.js +137 -35
  80. package/node_modules/three/examples/jsm/controls/TrackballControls.js +629 -456
  81. package/node_modules/three/examples/jsm/controls/TransformControls.js +442 -97
  82. package/node_modules/three/examples/jsm/csm/CSM.js +230 -17
  83. package/node_modules/three/examples/jsm/csm/CSMFrustum.js +61 -4
  84. package/node_modules/three/examples/jsm/csm/CSMHelper.js +50 -0
  85. package/node_modules/three/examples/jsm/csm/CSMShader.js +17 -5
  86. package/node_modules/three/examples/jsm/csm/CSMShadowNode.js +599 -0
  87. package/node_modules/three/examples/jsm/curves/CurveExtras.js +303 -31
  88. package/node_modules/three/examples/jsm/curves/NURBSCurve.js +91 -16
  89. package/node_modules/three/examples/jsm/curves/NURBSSurface.js +52 -6
  90. package/node_modules/three/examples/jsm/curves/NURBSUtils.js +102 -112
  91. package/node_modules/three/examples/jsm/curves/NURBSVolume.js +24 -4
  92. package/node_modules/three/examples/jsm/effects/AnaglyphEffect.js +39 -14
  93. package/node_modules/three/examples/jsm/effects/AsciiEffect.js +69 -22
  94. package/node_modules/three/examples/jsm/effects/OutlineEffect.js +61 -111
  95. package/node_modules/three/examples/jsm/effects/ParallaxBarrierEffect.js +48 -12
  96. package/node_modules/three/examples/jsm/effects/StereoEffect.js +37 -1
  97. package/node_modules/three/examples/jsm/environments/DebugEnvironment.js +50 -0
  98. package/node_modules/three/examples/jsm/environments/RoomEnvironment.js +82 -48
  99. package/node_modules/three/examples/jsm/exporters/DRACOExporter.js +59 -15
  100. package/node_modules/three/examples/jsm/exporters/EXRExporter.js +58 -19
  101. package/node_modules/three/examples/jsm/exporters/GLTFExporter.js +460 -174
  102. package/node_modules/three/examples/jsm/exporters/KTX2Exporter.js +80 -25
  103. package/node_modules/three/examples/jsm/exporters/OBJExporter.js +25 -1
  104. package/node_modules/three/examples/jsm/exporters/PLYExporter.js +51 -17
  105. package/node_modules/three/examples/jsm/exporters/STLExporter.js +27 -5
  106. package/node_modules/three/examples/jsm/exporters/USDZExporter.js +783 -268
  107. package/node_modules/three/examples/jsm/geometries/BoxLineGeometry.js +23 -0
  108. package/node_modules/three/examples/jsm/geometries/ConvexGeometry.js +19 -0
  109. package/node_modules/three/examples/jsm/geometries/DecalGeometry.js +94 -30
  110. package/node_modules/three/examples/jsm/geometries/ParametricFunctions.js +100 -0
  111. package/node_modules/three/examples/jsm/geometries/ParametricGeometry.js +38 -5
  112. package/node_modules/three/examples/jsm/geometries/RoundedBoxGeometry.js +68 -7
  113. package/node_modules/three/examples/jsm/geometries/TeapotGeometry.js +23 -38
  114. package/node_modules/three/examples/jsm/geometries/TextGeometry.js +48 -21
  115. package/node_modules/three/examples/jsm/gpgpu/BitonicSort.js +715 -0
  116. package/node_modules/three/examples/jsm/helpers/LightProbeHelper.js +79 -44
  117. package/node_modules/three/examples/jsm/helpers/LightProbeHelperGPU.js +102 -0
  118. package/node_modules/three/examples/jsm/helpers/OctreeHelper.js +36 -0
  119. package/node_modules/three/examples/jsm/helpers/PositionalAudioHelper.js +60 -0
  120. package/node_modules/three/examples/jsm/helpers/RapierHelper.js +59 -0
  121. package/node_modules/three/examples/jsm/helpers/RectAreaLightHelper.js +36 -3
  122. package/node_modules/three/examples/jsm/helpers/TextureHelper.js +28 -0
  123. package/node_modules/three/examples/jsm/helpers/TextureHelperGPU.js +214 -0
  124. package/node_modules/three/examples/jsm/helpers/VertexNormalsHelper.js +61 -2
  125. package/node_modules/three/examples/jsm/helpers/VertexTangentsHelper.js +47 -2
  126. package/node_modules/three/examples/jsm/helpers/ViewHelper.js +192 -65
  127. package/node_modules/three/examples/jsm/inspector/Inspector.js +427 -0
  128. package/node_modules/three/examples/jsm/inspector/RendererInspector.js +415 -0
  129. package/node_modules/three/examples/jsm/inspector/tabs/Console.js +204 -0
  130. package/node_modules/three/examples/jsm/inspector/tabs/Parameters.js +332 -0
  131. package/node_modules/three/examples/jsm/inspector/tabs/Performance.js +268 -0
  132. package/node_modules/three/examples/jsm/inspector/tabs/Viewer.js +166 -0
  133. package/node_modules/three/examples/jsm/inspector/ui/Graph.js +95 -0
  134. package/node_modules/three/examples/jsm/inspector/ui/Item.js +170 -0
  135. package/node_modules/three/examples/jsm/inspector/ui/List.js +75 -0
  136. package/node_modules/three/examples/jsm/inspector/ui/Profiler.js +170 -0
  137. package/node_modules/three/examples/jsm/inspector/ui/Style.js +654 -0
  138. package/node_modules/three/examples/jsm/inspector/ui/Tab.js +46 -0
  139. package/node_modules/three/examples/jsm/inspector/ui/Values.js +423 -0
  140. package/node_modules/three/examples/jsm/inspector/ui/utils.js +56 -0
  141. package/node_modules/three/examples/jsm/interactive/HTMLMesh.js +50 -21
  142. package/node_modules/three/examples/jsm/interactive/InteractiveGroup.js +170 -62
  143. package/node_modules/three/examples/jsm/interactive/SelectionBox.js +106 -9
  144. package/node_modules/three/examples/jsm/interactive/SelectionHelper.js +76 -30
  145. package/node_modules/three/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  146. package/node_modules/three/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  147. package/node_modules/three/examples/jsm/libs/demuxer_mp4.js +109 -0
  148. package/node_modules/three/examples/jsm/libs/draco/README.md +2 -2
  149. package/node_modules/three/examples/jsm/libs/fflate.module.js +694 -496
  150. package/node_modules/three/examples/jsm/libs/ktx-parse.module.js +1 -1
  151. package/node_modules/three/examples/jsm/libs/meshopt_decoder.module.js +75 -58
  152. package/node_modules/three/examples/jsm/libs/motion-controllers.module.js +1 -1
  153. package/node_modules/three/examples/jsm/libs/rhino3dm/rhino3dm.js +1 -8723
  154. package/node_modules/three/examples/jsm/libs/rhino3dm/rhino3dm.module.js +1 -8734
  155. package/node_modules/three/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  156. package/node_modules/three/examples/jsm/libs/tween.module.js +32 -14
  157. package/node_modules/three/examples/jsm/lighting/TiledLighting.js +42 -0
  158. package/node_modules/three/examples/jsm/lights/LightProbeGenerator.js +65 -14
  159. package/node_modules/three/examples/jsm/lights/RectAreaLightTexturesLib.js +127 -0
  160. package/node_modules/three/examples/jsm/lights/RectAreaLightUniformsLib.js +20 -59
  161. package/node_modules/three/examples/jsm/lines/Line2.js +41 -4
  162. package/node_modules/three/examples/jsm/lines/LineGeometry.js +80 -2
  163. package/node_modules/three/examples/jsm/lines/LineMaterial.js +100 -22
  164. package/node_modules/three/examples/jsm/lines/LineSegments2.js +69 -4
  165. package/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js +65 -8
  166. package/node_modules/three/examples/jsm/lines/Wireframe.js +58 -6
  167. package/node_modules/three/examples/jsm/lines/WireframeGeometry2.js +27 -2
  168. package/node_modules/three/examples/jsm/lines/webgpu/Line2.js +46 -0
  169. package/node_modules/three/examples/jsm/lines/webgpu/LineSegments2.js +411 -0
  170. package/node_modules/three/examples/jsm/lines/webgpu/Wireframe.js +86 -0
  171. package/node_modules/three/examples/jsm/loaders/3DMLoader.js +86 -23
  172. package/node_modules/three/examples/jsm/loaders/3MFLoader.js +148 -5
  173. package/node_modules/three/examples/jsm/loaders/AMFLoader.js +32 -12
  174. package/node_modules/three/examples/jsm/loaders/BVHLoader.js +59 -12
  175. package/node_modules/three/examples/jsm/loaders/ColladaLoader.js +51 -12
  176. package/node_modules/three/examples/jsm/loaders/DDSLoader.js +68 -1
  177. package/node_modules/three/examples/jsm/loaders/DRACOLoader.js +149 -23
  178. package/node_modules/three/examples/jsm/loaders/EXRLoader.js +584 -109
  179. package/node_modules/three/examples/jsm/loaders/FBXLoader.js +165 -97
  180. package/node_modules/three/examples/jsm/loaders/FontLoader.js +83 -6
  181. package/node_modules/three/examples/jsm/loaders/GCodeLoader.js +37 -6
  182. package/node_modules/three/examples/jsm/loaders/GLTFLoader.js +337 -108
  183. package/node_modules/three/examples/jsm/loaders/HDRCubeTextureLoader.js +52 -3
  184. package/node_modules/three/examples/jsm/loaders/HDRLoader.js +486 -0
  185. package/node_modules/three/examples/jsm/loaders/IESLoader.js +42 -0
  186. package/node_modules/three/examples/jsm/loaders/KMZLoader.js +33 -0
  187. package/node_modules/three/examples/jsm/loaders/KTX2Loader.js +441 -138
  188. package/node_modules/three/examples/jsm/loaders/KTXLoader.js +31 -10
  189. package/node_modules/three/examples/jsm/loaders/LDrawLoader.js +194 -145
  190. package/node_modules/three/examples/jsm/loaders/LUT3dlLoader.js +47 -25
  191. package/node_modules/three/examples/jsm/loaders/LUTCubeLoader.js +46 -23
  192. package/node_modules/three/examples/jsm/loaders/LUTImageLoader.js +79 -52
  193. package/node_modules/three/examples/jsm/loaders/LWOLoader.js +47 -20
  194. package/node_modules/three/examples/jsm/loaders/LottieLoader.js +54 -1
  195. package/node_modules/three/examples/jsm/loaders/MD2Loader.js +37 -1
  196. package/node_modules/three/examples/jsm/loaders/MDDLoader.js +57 -12
  197. package/node_modules/three/examples/jsm/loaders/MTLLoader.js +61 -35
  198. package/node_modules/three/examples/jsm/loaders/MaterialXLoader.js +291 -39
  199. package/node_modules/three/examples/jsm/loaders/NRRDLoader.js +38 -6
  200. package/node_modules/three/examples/jsm/loaders/OBJLoader.js +54 -4
  201. package/node_modules/three/examples/jsm/loaders/PCDLoader.js +183 -32
  202. package/node_modules/three/examples/jsm/loaders/PDBLoader.js +44 -4
  203. package/node_modules/three/examples/jsm/loaders/PLYLoader.js +78 -44
  204. package/node_modules/three/examples/jsm/loaders/PVRLoader.js +25 -6
  205. package/node_modules/three/examples/jsm/loaders/RGBELoader.js +6 -438
  206. package/node_modules/three/examples/jsm/loaders/STLLoader.js +51 -40
  207. package/node_modules/three/examples/jsm/loaders/SVGLoader.js +118 -24
  208. package/node_modules/three/examples/jsm/loaders/TDSLoader.js +92 -72
  209. package/node_modules/three/examples/jsm/loaders/TGALoader.js +23 -0
  210. package/node_modules/three/examples/jsm/loaders/TIFFLoader.js +23 -0
  211. package/node_modules/three/examples/jsm/loaders/TTFLoader.js +50 -3
  212. package/node_modules/three/examples/jsm/loaders/USDLoader.js +219 -0
  213. package/node_modules/three/examples/jsm/loaders/USDZLoader.js +4 -810
  214. package/node_modules/three/examples/jsm/loaders/UltraHDRLoader.js +630 -0
  215. package/node_modules/three/examples/jsm/loaders/VOXLoader.js +67 -2
  216. package/node_modules/three/examples/jsm/loaders/VRMLLoader.js +57 -21
  217. package/node_modules/three/examples/jsm/loaders/VTKLoader.js +119 -6
  218. package/node_modules/three/examples/jsm/loaders/XYZLoader.js +39 -2
  219. package/node_modules/three/examples/jsm/loaders/lwo/IFFParser.js +81 -78
  220. package/node_modules/three/examples/jsm/loaders/usd/USDAParser.js +741 -0
  221. package/node_modules/three/examples/jsm/loaders/usd/USDCParser.js +17 -0
  222. package/node_modules/three/examples/jsm/materials/LDrawConditionalLineMaterial.js +183 -0
  223. package/node_modules/three/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +154 -0
  224. package/node_modules/three/examples/jsm/materials/MeshGouraudMaterial.js +9 -1
  225. package/node_modules/three/examples/jsm/materials/MeshPostProcessingMaterial.js +25 -2
  226. package/node_modules/three/examples/jsm/materials/WoodNodeMaterial.js +533 -0
  227. package/node_modules/three/examples/jsm/math/Capsule.js +91 -14
  228. package/node_modules/three/examples/jsm/math/ColorConverter.js +22 -0
  229. package/node_modules/three/examples/jsm/math/ColorSpaces.js +147 -0
  230. package/node_modules/three/examples/jsm/math/ConvexHull.js +517 -93
  231. package/node_modules/three/examples/jsm/math/ImprovedNoise.js +32 -15
  232. package/node_modules/three/examples/jsm/math/Lut.js +113 -0
  233. package/node_modules/three/examples/jsm/math/MeshSurfaceSampler.js +78 -13
  234. package/node_modules/three/examples/jsm/math/OBB.js +141 -29
  235. package/node_modules/three/examples/jsm/math/Octree.js +177 -25
  236. package/node_modules/three/examples/jsm/math/SimplexNoise.js +68 -42
  237. package/node_modules/three/examples/jsm/misc/ConvexObjectBreaker.js +45 -25
  238. package/node_modules/three/examples/jsm/misc/GPUComputationRenderer.js +105 -45
  239. package/node_modules/three/examples/jsm/misc/Gyroscope.js +12 -0
  240. package/node_modules/three/examples/jsm/misc/MD2Character.js +117 -2
  241. package/node_modules/three/examples/jsm/misc/MD2CharacterComplex.js +175 -11
  242. package/node_modules/three/examples/jsm/misc/MorphAnimMesh.js +44 -0
  243. package/node_modules/three/examples/jsm/misc/MorphBlendMesh.js +103 -0
  244. package/node_modules/three/examples/jsm/misc/ProgressiveLightMap.js +101 -54
  245. package/node_modules/three/examples/jsm/misc/ProgressiveLightMapGPU.js +322 -0
  246. package/node_modules/three/examples/jsm/misc/RollerCoaster.js +57 -0
  247. package/node_modules/three/examples/jsm/misc/TubePainter.js +437 -40
  248. package/node_modules/three/examples/jsm/misc/Volume.js +123 -75
  249. package/node_modules/three/examples/jsm/misc/VolumeSlice.js +95 -48
  250. package/node_modules/three/examples/jsm/modifiers/CurveModifier.js +77 -47
  251. package/node_modules/three/examples/jsm/modifiers/CurveModifierGPU.js +256 -0
  252. package/node_modules/three/examples/jsm/modifiers/EdgeSplitModifier.js +20 -0
  253. package/node_modules/three/examples/jsm/modifiers/SimplifyModifier.js +26 -11
  254. package/node_modules/three/examples/jsm/modifiers/TessellateModifier.js +35 -2
  255. package/node_modules/three/examples/jsm/objects/GroundedSkybox.js +25 -6
  256. package/node_modules/three/examples/jsm/objects/Lensflare.js +96 -4
  257. package/node_modules/three/examples/jsm/objects/LensflareMesh.js +376 -0
  258. package/node_modules/three/examples/jsm/objects/MarchingCubes.js +90 -5
  259. package/node_modules/three/examples/jsm/objects/Reflector.js +76 -2
  260. package/node_modules/three/examples/jsm/objects/ReflectorForSSRPass.js +41 -0
  261. package/node_modules/three/examples/jsm/objects/Refractor.js +62 -0
  262. package/node_modules/three/examples/jsm/objects/ShadowMesh.js +54 -4
  263. package/node_modules/three/examples/jsm/objects/Sky.js +30 -12
  264. package/node_modules/three/examples/jsm/objects/SkyMesh.js +243 -0
  265. package/node_modules/three/examples/jsm/objects/Water.js +45 -5
  266. package/node_modules/three/examples/jsm/objects/Water2.js +44 -4
  267. package/node_modules/three/examples/jsm/objects/Water2Mesh.js +199 -0
  268. package/node_modules/three/examples/jsm/objects/WaterMesh.js +196 -0
  269. package/node_modules/three/examples/jsm/physics/AmmoPhysics.js +48 -0
  270. package/node_modules/three/examples/jsm/physics/JoltPhysics.js +330 -0
  271. package/node_modules/three/examples/jsm/physics/RapierPhysics.js +231 -19
  272. package/node_modules/three/examples/jsm/postprocessing/AfterimagePass.js +110 -29
  273. package/node_modules/three/examples/jsm/postprocessing/BloomPass.js +128 -26
  274. package/node_modules/three/examples/jsm/postprocessing/BokehPass.js +99 -22
  275. package/node_modules/three/examples/jsm/postprocessing/ClearPass.js +54 -3
  276. package/node_modules/three/examples/jsm/postprocessing/CubeTexturePass.js +82 -21
  277. package/node_modules/three/examples/jsm/postprocessing/DotScreenPass.js +59 -10
  278. package/node_modules/three/examples/jsm/postprocessing/EffectComposer.js +135 -3
  279. package/node_modules/three/examples/jsm/postprocessing/FXAAPass.js +40 -0
  280. package/node_modules/three/examples/jsm/postprocessing/FilmPass.js +54 -5
  281. package/node_modules/three/examples/jsm/postprocessing/GTAOPass.js +202 -57
  282. package/node_modules/three/examples/jsm/postprocessing/GlitchPass.js +86 -37
  283. package/node_modules/three/examples/jsm/postprocessing/HalftonePass.js +65 -10
  284. package/node_modules/three/examples/jsm/postprocessing/LUTPass.js +43 -79
  285. package/node_modules/three/examples/jsm/postprocessing/MaskPass.js +91 -0
  286. package/node_modules/three/examples/jsm/postprocessing/OutlinePass.js +277 -155
  287. package/node_modules/three/examples/jsm/postprocessing/OutputPass.js +58 -14
  288. package/node_modules/three/examples/jsm/postprocessing/Pass.js +100 -4
  289. package/node_modules/three/examples/jsm/postprocessing/RenderPass.js +85 -1
  290. package/node_modules/three/examples/jsm/postprocessing/RenderPixelatedPass.js +124 -45
  291. package/node_modules/three/examples/jsm/postprocessing/RenderTransitionPass.js +267 -0
  292. package/node_modules/three/examples/jsm/postprocessing/SAOPass.js +128 -56
  293. package/node_modules/three/examples/jsm/postprocessing/SMAAPass.js +106 -75
  294. package/node_modules/three/examples/jsm/postprocessing/SSAARenderPass.js +120 -35
  295. package/node_modules/three/examples/jsm/postprocessing/SSAOPass.js +174 -67
  296. package/node_modules/three/examples/jsm/postprocessing/SSRPass.js +268 -53
  297. package/node_modules/three/examples/jsm/postprocessing/SavePass.js +69 -16
  298. package/node_modules/three/examples/jsm/postprocessing/ShaderPass.js +65 -7
  299. package/node_modules/three/examples/jsm/postprocessing/TAARenderPass.js +79 -24
  300. package/node_modules/three/examples/jsm/postprocessing/TexturePass.js +72 -8
  301. package/node_modules/three/examples/jsm/postprocessing/UnrealBloomPass.js +125 -46
  302. package/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +122 -9
  303. package/node_modules/three/examples/jsm/renderers/CSS3DRenderer.js +133 -8
  304. package/node_modules/three/examples/jsm/renderers/Projector.js +20 -2
  305. package/node_modules/three/examples/jsm/renderers/SVGRenderer.js +134 -5
  306. package/node_modules/three/examples/jsm/shaders/ACESFilmicToneMappingShader.js +12 -5
  307. package/node_modules/three/examples/jsm/shaders/AfterimageShader.js +8 -3
  308. package/node_modules/three/examples/jsm/shaders/BasicShader.js +8 -1
  309. package/node_modules/three/examples/jsm/shaders/BleachBypassShader.js +11 -5
  310. package/node_modules/three/examples/jsm/shaders/BlendShader.js +8 -1
  311. package/node_modules/three/examples/jsm/shaders/BokehShader.js +9 -3
  312. package/node_modules/three/examples/jsm/shaders/BokehShader2.js +11 -4
  313. package/node_modules/three/examples/jsm/shaders/BrightnessContrastShader.js +10 -4
  314. package/node_modules/three/examples/jsm/shaders/ColorCorrectionShader.js +8 -1
  315. package/node_modules/three/examples/jsm/shaders/ColorifyShader.js +9 -3
  316. package/node_modules/three/examples/jsm/shaders/ConvolutionShader.js +9 -38
  317. package/node_modules/three/examples/jsm/shaders/CopyShader.js +8 -1
  318. package/node_modules/three/examples/jsm/shaders/DOFMipMapShader.js +10 -3
  319. package/node_modules/three/examples/jsm/shaders/DepthLimitedBlurShader.js +10 -1
  320. package/node_modules/three/examples/jsm/shaders/DigitalGlitch.js +10 -7
  321. package/node_modules/three/examples/jsm/shaders/DotScreenShader.js +8 -3
  322. package/node_modules/three/examples/jsm/shaders/ExposureShader.js +8 -1
  323. package/node_modules/three/examples/jsm/shaders/FXAAShader.js +243 -233
  324. package/node_modules/three/examples/jsm/shaders/FilmShader.js +13 -0
  325. package/node_modules/three/examples/jsm/shaders/FocusShader.js +8 -3
  326. package/node_modules/three/examples/jsm/shaders/FreiChenShader.js +10 -3
  327. package/node_modules/three/examples/jsm/shaders/GTAOShader.js +37 -40
  328. package/node_modules/three/examples/jsm/shaders/GammaCorrectionShader.js +11 -2
  329. package/node_modules/three/examples/jsm/shaders/GodRaysShader.js +20 -8
  330. package/node_modules/three/examples/jsm/shaders/HalftoneShader.js +13 -4
  331. package/node_modules/three/examples/jsm/shaders/HorizontalBlurShader.js +12 -3
  332. package/node_modules/three/examples/jsm/shaders/HorizontalTiltShiftShader.js +9 -2
  333. package/node_modules/three/examples/jsm/shaders/HueSaturationShader.js +10 -3
  334. package/node_modules/three/examples/jsm/shaders/KaleidoShader.js +11 -4
  335. package/node_modules/three/examples/jsm/shaders/LuminosityHighPassShader.js +9 -7
  336. package/node_modules/three/examples/jsm/shaders/LuminosityShader.js +8 -2
  337. package/node_modules/three/examples/jsm/shaders/MirrorShader.js +10 -4
  338. package/node_modules/three/examples/jsm/shaders/NormalMapShader.js +7 -2
  339. package/node_modules/three/examples/jsm/shaders/OutputShader.js +24 -2
  340. package/node_modules/three/examples/jsm/shaders/PoissonDenoiseShader.js +24 -15
  341. package/node_modules/three/examples/jsm/shaders/RGBShiftShader.js +8 -1
  342. package/node_modules/three/examples/jsm/shaders/SAOShader.js +10 -1
  343. package/node_modules/three/examples/jsm/shaders/SMAAShader.js +24 -1
  344. package/node_modules/three/examples/jsm/shaders/SSAOShader.js +26 -5
  345. package/node_modules/three/examples/jsm/shaders/SSRShader.js +26 -1
  346. package/node_modules/three/examples/jsm/shaders/SepiaShader.js +8 -3
  347. package/node_modules/three/examples/jsm/shaders/SobelOperatorShader.js +9 -3
  348. package/node_modules/three/examples/jsm/shaders/SubsurfaceScatteringShader.js +13 -8
  349. package/node_modules/three/examples/jsm/shaders/TechnicolorShader.js +10 -4
  350. package/node_modules/three/examples/jsm/shaders/ToonShader.js +29 -6
  351. package/node_modules/three/examples/jsm/shaders/TriangleBlurShader.js +9 -4
  352. package/node_modules/three/examples/jsm/shaders/UnpackDepthRGBAShader.js +19 -4
  353. package/node_modules/three/examples/jsm/shaders/VelocityShader.js +8 -1
  354. package/node_modules/three/examples/jsm/shaders/VerticalBlurShader.js +9 -2
  355. package/node_modules/three/examples/jsm/shaders/VerticalTiltShiftShader.js +8 -1
  356. package/node_modules/three/examples/jsm/shaders/VignetteShader.js +8 -3
  357. package/node_modules/three/examples/jsm/shaders/VolumeShader.js +11 -2
  358. package/node_modules/three/examples/jsm/shaders/WaterRefractionShader.js +11 -0
  359. package/node_modules/three/examples/jsm/textures/FlakesTexture.js +14 -0
  360. package/node_modules/three/examples/jsm/transpiler/AST.js +392 -31
  361. package/node_modules/three/examples/jsm/transpiler/GLSLDecoder.js +366 -136
  362. package/node_modules/three/examples/jsm/transpiler/Linker.js +327 -0
  363. package/node_modules/three/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
  364. package/node_modules/three/examples/jsm/transpiler/TSLEncoder.js +336 -111
  365. package/node_modules/three/examples/jsm/transpiler/Transpiler.js +50 -1
  366. package/node_modules/three/examples/jsm/transpiler/TranspilerUtils.js +29 -0
  367. package/node_modules/three/examples/jsm/transpiler/WGSLEncoder.js +812 -0
  368. package/node_modules/three/examples/jsm/tsl/display/AfterImageNode.js +244 -0
  369. package/node_modules/three/examples/jsm/tsl/display/AnaglyphPassNode.js +107 -0
  370. package/node_modules/three/examples/jsm/tsl/display/AnamorphicNode.js +282 -0
  371. package/node_modules/three/examples/jsm/tsl/display/BleachBypass.js +33 -0
  372. package/node_modules/three/examples/jsm/tsl/display/BloomNode.js +524 -0
  373. package/node_modules/three/examples/jsm/tsl/display/ChromaticAberrationNode.js +207 -0
  374. package/node_modules/three/examples/jsm/tsl/display/DenoiseNode.js +334 -0
  375. package/node_modules/three/examples/jsm/tsl/display/DepthOfFieldNode.js +554 -0
  376. package/node_modules/three/examples/jsm/tsl/display/DotScreenNode.js +104 -0
  377. package/node_modules/three/examples/jsm/tsl/display/FXAANode.js +365 -0
  378. package/node_modules/three/examples/jsm/tsl/display/FilmNode.js +101 -0
  379. package/node_modules/three/examples/jsm/tsl/display/GTAONode.js +570 -0
  380. package/node_modules/three/examples/jsm/tsl/display/GaussianBlurNode.js +380 -0
  381. package/node_modules/three/examples/jsm/tsl/display/LensflareNode.js +279 -0
  382. package/node_modules/three/examples/jsm/tsl/display/Lut3DNode.js +109 -0
  383. package/node_modules/three/examples/jsm/tsl/display/MotionBlur.js +33 -0
  384. package/node_modules/three/examples/jsm/tsl/display/OutlineNode.js +762 -0
  385. package/node_modules/three/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +89 -0
  386. package/node_modules/three/examples/jsm/tsl/display/PixelationPassNode.js +334 -0
  387. package/node_modules/three/examples/jsm/tsl/display/RGBShiftNode.js +96 -0
  388. package/node_modules/three/examples/jsm/tsl/display/SMAANode.js +768 -0
  389. package/node_modules/three/examples/jsm/tsl/display/SSAAPassNode.js +358 -0
  390. package/node_modules/three/examples/jsm/tsl/display/SSGINode.js +654 -0
  391. package/node_modules/three/examples/jsm/tsl/display/SSRNode.js +656 -0
  392. package/node_modules/three/examples/jsm/tsl/display/SSSNode.js +488 -0
  393. package/node_modules/three/examples/jsm/tsl/display/Sepia.js +24 -0
  394. package/node_modules/three/examples/jsm/tsl/display/SobelOperatorNode.js +168 -0
  395. package/node_modules/three/examples/jsm/tsl/display/StereoCompositePassNode.js +185 -0
  396. package/node_modules/three/examples/jsm/tsl/display/StereoPassNode.js +120 -0
  397. package/node_modules/three/examples/jsm/tsl/display/TRAANode.js +578 -0
  398. package/node_modules/three/examples/jsm/tsl/display/TransitionNode.js +141 -0
  399. package/node_modules/three/examples/jsm/tsl/display/boxBlur.js +65 -0
  400. package/node_modules/three/examples/jsm/tsl/display/hashBlur.js +54 -0
  401. package/node_modules/three/examples/jsm/tsl/lighting/TiledLightsNode.js +442 -0
  402. package/node_modules/three/examples/jsm/tsl/math/Bayer.js +34 -0
  403. package/node_modules/three/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
  404. package/node_modules/three/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
  405. package/node_modules/three/examples/jsm/tsl/utils/Raymarching.js +70 -0
  406. package/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +109 -45
  407. package/node_modules/three/examples/jsm/utils/CameraUtils.js +15 -6
  408. package/node_modules/three/examples/jsm/utils/GeometryCompressionUtils.js +54 -146
  409. package/node_modules/three/examples/jsm/utils/GeometryUtils.js +32 -27
  410. package/node_modules/three/examples/jsm/utils/LDrawUtils.js +13 -4
  411. package/node_modules/three/examples/jsm/utils/SceneOptimizer.js +458 -0
  412. package/node_modules/three/examples/jsm/utils/SceneUtils.js +112 -3
  413. package/node_modules/three/examples/jsm/utils/ShadowMapViewer.js +51 -31
  414. package/node_modules/three/examples/jsm/utils/ShadowMapViewerGPU.js +233 -0
  415. package/node_modules/three/examples/jsm/utils/SkeletonUtils.js +145 -68
  416. package/node_modules/three/examples/jsm/utils/SortUtils.js +23 -8
  417. package/node_modules/three/examples/jsm/utils/UVsDebug.js +12 -4
  418. package/node_modules/three/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +19 -2
  419. package/node_modules/three/examples/jsm/utils/WebGPUTextureUtils.js +81 -0
  420. package/node_modules/three/examples/jsm/utils/WorkerPool.js +67 -2
  421. package/node_modules/three/examples/jsm/webxr/ARButton.js +19 -0
  422. package/node_modules/three/examples/jsm/webxr/OculusHandModel.js +87 -2
  423. package/node_modules/three/examples/jsm/webxr/OculusHandPointerModel.js +148 -22
  424. package/node_modules/three/examples/jsm/webxr/Text2D.js +20 -6
  425. package/node_modules/three/examples/jsm/webxr/VRButton.js +44 -5
  426. package/node_modules/three/examples/jsm/webxr/XRButton.js +23 -1
  427. package/node_modules/three/examples/jsm/webxr/XRControllerModelFactory.js +103 -4
  428. package/node_modules/three/examples/jsm/webxr/XREstimatedLight.js +35 -4
  429. package/node_modules/three/examples/jsm/webxr/XRHandMeshModel.js +37 -0
  430. package/node_modules/three/examples/jsm/webxr/XRHandModelFactory.js +101 -9
  431. package/node_modules/three/examples/jsm/webxr/XRHandPrimitiveModel.js +44 -0
  432. package/node_modules/three/examples/jsm/webxr/XRPlanes.js +18 -0
  433. package/node_modules/three/package.json +25 -20
  434. package/node_modules/three/src/Three.Core.js +185 -0
  435. package/node_modules/three/src/Three.Legacy.js +0 -1
  436. package/node_modules/three/src/Three.TSL.js +633 -0
  437. package/node_modules/three/src/Three.WebGPU.Nodes.js +26 -0
  438. package/node_modules/three/src/Three.WebGPU.js +28 -0
  439. package/node_modules/three/src/Three.js +1 -176
  440. package/node_modules/three/src/animation/AnimationAction.js +262 -30
  441. package/node_modules/three/src/animation/AnimationClip.js +164 -9
  442. package/node_modules/three/src/animation/AnimationMixer.js +99 -15
  443. package/node_modules/three/src/animation/AnimationObjectGroup.js +45 -21
  444. package/node_modules/three/src/animation/AnimationUtils.js +169 -19
  445. package/node_modules/three/src/animation/KeyframeTrack.js +151 -16
  446. package/node_modules/three/src/animation/PropertyBinding.js +91 -16
  447. package/node_modules/three/src/animation/PropertyMixer.js +72 -5
  448. package/node_modules/three/src/animation/tracks/BooleanKeyframeTrack.js +42 -6
  449. package/node_modules/three/src/animation/tracks/ColorKeyframeTrack.js +26 -5
  450. package/node_modules/three/src/animation/tracks/NumberKeyframeTrack.js +26 -2
  451. package/node_modules/three/src/animation/tracks/QuaternionKeyframeTrack.js +31 -3
  452. package/node_modules/three/src/animation/tracks/StringKeyframeTrack.js +42 -2
  453. package/node_modules/three/src/animation/tracks/VectorKeyframeTrack.js +26 -2
  454. package/node_modules/three/src/audio/Audio.js +388 -10
  455. package/node_modules/three/src/audio/AudioAnalyser.js +58 -1
  456. package/node_modules/three/src/audio/AudioContext.js +15 -0
  457. package/node_modules/three/src/audio/AudioListener.js +89 -10
  458. package/node_modules/three/src/audio/PositionalAudio.js +107 -0
  459. package/node_modules/three/src/cameras/ArrayCamera.js +37 -0
  460. package/node_modules/three/src/cameras/Camera.js +61 -0
  461. package/node_modules/three/src/cameras/CubeCamera.js +66 -0
  462. package/node_modules/three/src/cameras/OrthographicCamera.js +110 -1
  463. package/node_modules/three/src/cameras/PerspectiveCamera.js +174 -35
  464. package/node_modules/three/src/cameras/StereoCamera.js +48 -2
  465. package/node_modules/three/src/constants.js +1477 -18
  466. package/node_modules/three/src/core/BufferAttribute.js +417 -23
  467. package/node_modules/three/src/core/BufferGeometry.js +416 -49
  468. package/node_modules/three/src/core/Clock.js +62 -8
  469. package/node_modules/three/src/core/EventDispatcher.js +52 -8
  470. package/node_modules/three/src/core/GLBufferAttribute.js +113 -2
  471. package/node_modules/three/src/core/InstancedBufferAttribute.js +29 -0
  472. package/node_modules/three/src/core/InstancedBufferGeometry.js +20 -0
  473. package/node_modules/three/src/core/InstancedInterleavedBuffer.js +26 -0
  474. package/node_modules/three/src/core/InterleavedBuffer.js +141 -16
  475. package/node_modules/three/src/core/InterleavedBufferAttribute.js +200 -2
  476. package/node_modules/three/src/core/Layers.js +71 -10
  477. package/node_modules/three/src/core/Object3D.js +665 -54
  478. package/node_modules/three/src/core/Raycaster.js +160 -8
  479. package/node_modules/three/src/core/RenderTarget.js +297 -36
  480. package/node_modules/three/src/core/RenderTarget3D.js +48 -0
  481. package/node_modules/three/src/core/Timer.js +184 -0
  482. package/node_modules/three/src/core/Uniform.js +29 -0
  483. package/node_modules/three/src/core/UniformsGroup.js +84 -2
  484. package/node_modules/three/src/extras/Controls.js +120 -0
  485. package/node_modules/three/src/extras/DataUtils.js +50 -9
  486. package/node_modules/three/src/extras/Earcut.js +18 -779
  487. package/node_modules/three/src/extras/ImageUtils.js +22 -14
  488. package/node_modules/three/src/extras/PMREMGenerator.js +329 -64
  489. package/node_modules/three/src/extras/ShapeUtils.js +24 -2
  490. package/node_modules/three/src/extras/TextureUtils.js +293 -0
  491. package/node_modules/three/src/extras/core/Curve.js +156 -55
  492. package/node_modules/three/src/extras/core/CurvePath.js +63 -22
  493. package/node_modules/three/src/extras/core/Interpolations.js +34 -2
  494. package/node_modules/three/src/extras/core/Path.js +134 -1
  495. package/node_modules/three/src/extras/core/Shape.js +66 -3
  496. package/node_modules/three/src/extras/core/ShapePath.js +80 -4
  497. package/node_modules/three/src/extras/curves/ArcCurve.js +22 -0
  498. package/node_modules/three/src/extras/curves/CatmullRomCurve3.js +89 -18
  499. package/node_modules/three/src/extras/curves/CubicBezierCurve.js +67 -0
  500. package/node_modules/three/src/extras/curves/CubicBezierCurve3.js +50 -0
  501. package/node_modules/three/src/extras/curves/EllipseCurve.js +104 -2
  502. package/node_modules/three/src/extras/curves/LineCurve.js +36 -0
  503. package/node_modules/three/src/extras/curves/LineCurve3.js +36 -0
  504. package/node_modules/three/src/extras/curves/QuadraticBezierCurve.js +59 -0
  505. package/node_modules/three/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  506. package/node_modules/three/src/extras/curves/SplineCurve.js +48 -0
  507. package/node_modules/three/src/extras/lib/earcut.js +685 -0
  508. package/node_modules/three/src/geometries/BoxGeometry.js +39 -0
  509. package/node_modules/three/src/geometries/CapsuleGeometry.js +196 -11
  510. package/node_modules/three/src/geometries/CircleGeometry.js +41 -0
  511. package/node_modules/three/src/geometries/ConeGeometry.js +39 -0
  512. package/node_modules/three/src/geometries/CylinderGeometry.js +51 -4
  513. package/node_modules/three/src/geometries/DodecahedronGeometry.js +33 -0
  514. package/node_modules/three/src/geometries/EdgesGeometry.js +30 -2
  515. package/node_modules/three/src/geometries/ExtrudeGeometry.js +146 -50
  516. package/node_modules/three/src/geometries/IcosahedronGeometry.js +33 -0
  517. package/node_modules/three/src/geometries/LatheGeometry.js +44 -3
  518. package/node_modules/three/src/geometries/OctahedronGeometry.js +33 -0
  519. package/node_modules/three/src/geometries/PlaneGeometry.js +35 -0
  520. package/node_modules/three/src/geometries/PolyhedronGeometry.js +29 -0
  521. package/node_modules/three/src/geometries/RingGeometry.js +37 -0
  522. package/node_modules/three/src/geometries/ShapeGeometry.js +38 -0
  523. package/node_modules/three/src/geometries/SphereGeometry.js +38 -0
  524. package/node_modules/three/src/geometries/TetrahedronGeometry.js +33 -0
  525. package/node_modules/three/src/geometries/TorusGeometry.js +36 -0
  526. package/node_modules/three/src/geometries/TorusKnotGeometry.js +39 -0
  527. package/node_modules/three/src/geometries/TubeGeometry.js +50 -0
  528. package/node_modules/three/src/geometries/WireframeGeometry.js +32 -0
  529. package/node_modules/three/src/helpers/ArrowHelper.js +62 -5
  530. package/node_modules/three/src/helpers/AxesHelper.js +28 -0
  531. package/node_modules/three/src/helpers/Box3Helper.js +28 -0
  532. package/node_modules/three/src/helpers/BoxHelper.js +43 -7
  533. package/node_modules/three/src/helpers/CameraHelper.js +100 -27
  534. package/node_modules/three/src/helpers/DirectionalLightHelper.js +52 -0
  535. package/node_modules/three/src/helpers/GridHelper.js +26 -0
  536. package/node_modules/three/src/helpers/HemisphereLightHelper.js +39 -0
  537. package/node_modules/three/src/helpers/PlaneHelper.js +33 -0
  538. package/node_modules/three/src/helpers/PointLightHelper.js +43 -0
  539. package/node_modules/three/src/helpers/PolarGridHelper.js +30 -0
  540. package/node_modules/three/src/helpers/SkeletonHelper.js +73 -7
  541. package/node_modules/three/src/helpers/SpotLightHelper.js +58 -1
  542. package/node_modules/three/src/lights/AmbientLight.js +25 -0
  543. package/node_modules/three/src/lights/DirectionalLight.js +57 -0
  544. package/node_modules/three/src/lights/DirectionalLightShadow.js +15 -0
  545. package/node_modules/three/src/lights/HemisphereLight.js +32 -0
  546. package/node_modules/three/src/lights/Light.js +37 -0
  547. package/node_modules/three/src/lights/LightProbe.js +43 -0
  548. package/node_modules/three/src/lights/LightShadow.js +198 -7
  549. package/node_modules/three/src/lights/PointLight.js +59 -0
  550. package/node_modules/three/src/lights/PointLightShadow.js +22 -1
  551. package/node_modules/three/src/lights/RectAreaLight.js +59 -0
  552. package/node_modules/three/src/lights/SpotLight.js +102 -0
  553. package/node_modules/three/src/lights/SpotLightShadow.js +33 -3
  554. package/node_modules/three/src/lights/webgpu/IESSpotLight.js +46 -0
  555. package/node_modules/three/src/lights/webgpu/ProjectorLight.js +46 -0
  556. package/node_modules/three/src/loaders/AnimationLoader.js +34 -2
  557. package/node_modules/three/src/loaders/AudioLoader.js +34 -2
  558. package/node_modules/three/src/loaders/BufferGeometryLoader.js +38 -13
  559. package/node_modules/three/src/loaders/Cache.js +47 -2
  560. package/node_modules/three/src/loaders/CompressedTextureLoader.js +36 -3
  561. package/node_modules/three/src/loaders/CubeTextureLoader.js +45 -0
  562. package/node_modules/three/src/loaders/DataTextureLoader.js +45 -8
  563. package/node_modules/three/src/loaders/FileLoader.js +90 -6
  564. package/node_modules/three/src/loaders/ImageBitmapLoader.js +108 -11
  565. package/node_modules/three/src/loaders/ImageLoader.js +85 -8
  566. package/node_modules/three/src/loaders/Loader.js +144 -0
  567. package/node_modules/three/src/loaders/LoaderUtils.js +18 -34
  568. package/node_modules/three/src/loaders/LoadingManager.js +187 -0
  569. package/node_modules/three/src/loaders/MaterialLoader.js +70 -4
  570. package/node_modules/three/src/loaders/ObjectLoader.js +146 -30
  571. package/node_modules/three/src/loaders/TextureLoader.js +33 -0
  572. package/node_modules/three/src/loaders/nodes/NodeLoader.js +194 -0
  573. package/node_modules/three/src/loaders/nodes/NodeMaterialLoader.js +108 -0
  574. package/node_modules/three/src/loaders/nodes/NodeObjectLoader.js +151 -0
  575. package/node_modules/three/src/materials/LineBasicMaterial.js +74 -1
  576. package/node_modules/three/src/materials/LineDashedMaterial.js +52 -1
  577. package/node_modules/three/src/materials/Material.js +504 -11
  578. package/node_modules/three/src/materials/MeshBasicMaterial.js +172 -3
  579. package/node_modules/three/src/materials/MeshDepthMaterial.js +94 -0
  580. package/node_modules/three/src/materials/MeshDistanceMaterial.js +76 -0
  581. package/node_modules/three/src/materials/MeshLambertMaterial.js +278 -1
  582. package/node_modules/three/src/materials/MeshMatcapMaterial.js +164 -0
  583. package/node_modules/three/src/materials/MeshNormalMaterial.js +114 -0
  584. package/node_modules/three/src/materials/MeshPhongMaterial.js +293 -1
  585. package/node_modules/three/src/materials/MeshPhysicalMaterial.js +316 -4
  586. package/node_modules/three/src/materials/MeshStandardMaterial.js +304 -3
  587. package/node_modules/three/src/materials/MeshToonMaterial.js +219 -0
  588. package/node_modules/three/src/materials/PointsMaterial.js +89 -0
  589. package/node_modules/three/src/materials/RawShaderMaterial.js +25 -0
  590. package/node_modules/three/src/materials/ShaderMaterial.js +215 -10
  591. package/node_modules/three/src/materials/ShadowMaterial.js +54 -0
  592. package/node_modules/three/src/materials/SpriteMaterial.js +82 -0
  593. package/node_modules/three/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +206 -100
  594. package/node_modules/three/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
  595. package/node_modules/three/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
  596. package/node_modules/three/src/materials/nodes/MeshBasicNodeMaterial.js +134 -0
  597. package/node_modules/three/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
  598. package/node_modules/three/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
  599. package/node_modules/three/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
  600. package/node_modules/three/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
  601. package/node_modules/three/src/materials/nodes/MeshPhysicalNodeMaterial.js +518 -0
  602. package/node_modules/three/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
  603. package/node_modules/three/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
  604. package/node_modules/three/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
  605. package/node_modules/three/src/materials/nodes/NodeMaterial.js +1310 -0
  606. package/node_modules/three/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +7 -2
  607. package/node_modules/three/src/materials/nodes/PointsNodeMaterial.js +211 -0
  608. package/node_modules/three/src/materials/nodes/ShadowNodeMaterial.js +76 -0
  609. package/node_modules/three/src/materials/nodes/SpriteNodeMaterial.js +186 -0
  610. package/node_modules/three/src/materials/nodes/VolumeNodeMaterial.js +81 -0
  611. package/node_modules/three/src/materials/nodes/manager/NodeMaterialObserver.js +613 -0
  612. package/node_modules/three/src/math/Box2.js +181 -4
  613. package/node_modules/three/src/math/Box3.js +277 -6
  614. package/node_modules/three/src/math/Color.js +355 -11
  615. package/node_modules/three/src/math/ColorManagement.js +161 -85
  616. package/node_modules/three/src/math/Cylindrical.js +65 -6
  617. package/node_modules/three/src/math/Euler.js +139 -5
  618. package/node_modules/three/src/math/Frustum.js +108 -9
  619. package/node_modules/three/src/math/FrustumArray.js +258 -0
  620. package/node_modules/three/src/math/Interpolant.js +87 -8
  621. package/node_modules/three/src/math/Line3.js +223 -2
  622. package/node_modules/three/src/math/MathUtils.js +408 -20
  623. package/node_modules/three/src/math/Matrix2.js +124 -0
  624. package/node_modules/three/src/math/Matrix3.js +229 -4
  625. package/node_modules/three/src/math/Matrix4.js +416 -30
  626. package/node_modules/three/src/math/Plane.js +164 -2
  627. package/node_modules/three/src/math/Quaternion.js +345 -86
  628. package/node_modules/three/src/math/Ray.js +162 -0
  629. package/node_modules/three/src/math/Sphere.js +175 -0
  630. package/node_modules/three/src/math/Spherical.js +74 -13
  631. package/node_modules/three/src/math/SphericalHarmonics3.js +112 -14
  632. package/node_modules/three/src/math/Triangle.js +230 -2
  633. package/node_modules/three/src/math/Vector2.js +396 -10
  634. package/node_modules/three/src/math/Vector3.js +557 -20
  635. package/node_modules/three/src/math/Vector4.js +428 -9
  636. package/node_modules/three/src/math/interpolants/CubicInterpolant.js +10 -1
  637. package/node_modules/three/src/math/interpolants/DiscreteInterpolant.js +10 -2
  638. package/node_modules/three/src/math/interpolants/LinearInterpolant.js +13 -0
  639. package/node_modules/three/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  640. package/node_modules/three/src/nodes/Nodes.js +148 -0
  641. package/node_modules/three/src/nodes/TSL.js +173 -0
  642. package/node_modules/three/src/nodes/accessors/AccessorsUtils.js +53 -0
  643. package/node_modules/three/src/nodes/accessors/Arrays.js +68 -0
  644. package/node_modules/three/src/nodes/accessors/BatchNode.js +163 -0
  645. package/node_modules/three/src/nodes/accessors/Bitangent.js +82 -0
  646. package/node_modules/three/src/nodes/accessors/BufferAttributeNode.js +340 -0
  647. package/node_modules/three/src/nodes/accessors/BufferNode.js +101 -0
  648. package/node_modules/three/src/nodes/accessors/BuiltinNode.js +63 -0
  649. package/node_modules/three/src/nodes/accessors/Camera.js +282 -0
  650. package/node_modules/three/src/nodes/accessors/ClippingNode.js +255 -0
  651. package/node_modules/three/src/nodes/accessors/CubeTextureNode.js +190 -0
  652. package/node_modules/three/src/nodes/accessors/InstanceNode.js +244 -0
  653. package/node_modules/three/src/nodes/accessors/InstancedMeshNode.js +50 -0
  654. package/node_modules/three/src/nodes/accessors/Lights.js +139 -0
  655. package/node_modules/three/src/nodes/accessors/MaterialNode.js +775 -0
  656. package/node_modules/three/src/nodes/accessors/MaterialProperties.js +59 -0
  657. package/node_modules/three/src/nodes/accessors/MaterialReferenceNode.js +85 -0
  658. package/node_modules/three/src/nodes/accessors/ModelNode.js +184 -0
  659. package/node_modules/three/src/nodes/accessors/ModelViewProjectionNode.js +13 -0
  660. package/node_modules/three/{examples/jsm → src}/nodes/accessors/MorphNode.js +122 -57
  661. package/node_modules/three/src/nodes/accessors/Normal.js +243 -0
  662. package/node_modules/three/src/nodes/accessors/Object3DNode.js +268 -0
  663. package/node_modules/three/src/nodes/accessors/PointUVNode.js +55 -0
  664. package/node_modules/three/src/nodes/accessors/Position.js +90 -0
  665. package/node_modules/three/src/nodes/accessors/ReferenceBaseNode.js +357 -0
  666. package/node_modules/three/src/nodes/accessors/ReferenceNode.js +424 -0
  667. package/node_modules/three/src/nodes/accessors/ReflectVector.js +36 -0
  668. package/node_modules/three/src/nodes/accessors/RendererReferenceNode.js +79 -0
  669. package/node_modules/three/src/nodes/accessors/SceneNode.js +145 -0
  670. package/node_modules/three/src/nodes/accessors/SkinningNode.js +327 -0
  671. package/node_modules/three/src/nodes/accessors/StorageBufferNode.js +416 -0
  672. package/node_modules/three/src/nodes/accessors/StorageTextureNode.js +264 -0
  673. package/node_modules/three/src/nodes/accessors/Tangent.js +70 -0
  674. package/node_modules/three/src/nodes/accessors/TangentUtils.js +46 -0
  675. package/node_modules/three/src/nodes/accessors/Texture3DNode.js +199 -0
  676. package/node_modules/three/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +28 -30
  677. package/node_modules/three/src/nodes/accessors/TextureNode.js +927 -0
  678. package/node_modules/three/src/nodes/accessors/TextureSizeNode.js +77 -0
  679. package/node_modules/three/src/nodes/accessors/UV.js +11 -0
  680. package/node_modules/three/src/nodes/accessors/UniformArrayNode.js +348 -0
  681. package/node_modules/three/src/nodes/accessors/UserDataNode.js +77 -0
  682. package/node_modules/three/src/nodes/accessors/VelocityNode.js +224 -0
  683. package/node_modules/three/src/nodes/accessors/VertexColorNode.js +110 -0
  684. package/node_modules/three/src/nodes/code/CodeNode.js +181 -0
  685. package/node_modules/three/src/nodes/code/ExpressionNode.js +68 -0
  686. package/node_modules/three/src/nodes/code/FunctionCallNode.js +187 -0
  687. package/node_modules/three/src/nodes/code/FunctionNode.js +183 -0
  688. package/node_modules/three/{examples/jsm → src}/nodes/code/ScriptableNode.js +253 -15
  689. package/node_modules/three/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +95 -9
  690. package/node_modules/three/src/nodes/core/ArrayNode.js +155 -0
  691. package/node_modules/three/src/nodes/core/AssignNode.js +202 -0
  692. package/node_modules/three/src/nodes/core/AttributeNode.js +168 -0
  693. package/node_modules/three/src/nodes/core/BypassNode.js +93 -0
  694. package/node_modules/three/src/nodes/core/ConstNode.js +67 -0
  695. package/node_modules/three/src/nodes/core/ContextNode.js +184 -0
  696. package/node_modules/three/src/nodes/core/IndexNode.js +164 -0
  697. package/node_modules/three/src/nodes/core/InputNode.js +136 -0
  698. package/node_modules/three/src/nodes/core/InspectorNode.js +128 -0
  699. package/node_modules/three/src/nodes/core/IsolateNode.js +133 -0
  700. package/node_modules/three/src/nodes/core/LightingModel.js +77 -0
  701. package/node_modules/three/src/nodes/core/MRTNode.js +150 -0
  702. package/node_modules/three/src/nodes/core/Node.js +1083 -0
  703. package/node_modules/three/src/nodes/core/NodeAttribute.js +53 -0
  704. package/node_modules/three/src/nodes/core/NodeBuilder.js +3081 -0
  705. package/node_modules/three/src/nodes/core/NodeCache.js +75 -0
  706. package/node_modules/three/src/nodes/core/NodeCode.js +46 -0
  707. package/node_modules/three/src/nodes/core/NodeFrame.js +306 -0
  708. package/node_modules/three/src/nodes/core/NodeFunction.js +69 -0
  709. package/node_modules/three/src/nodes/core/NodeFunctionInput.js +61 -0
  710. package/node_modules/three/src/nodes/core/NodeParser.js +23 -0
  711. package/node_modules/three/src/nodes/core/NodeUniform.js +91 -0
  712. package/node_modules/three/src/nodes/core/NodeUtils.js +406 -0
  713. package/node_modules/three/src/nodes/core/NodeVar.js +60 -0
  714. package/node_modules/three/src/nodes/core/NodeVarying.js +63 -0
  715. package/node_modules/three/src/nodes/core/OutputStructNode.js +103 -0
  716. package/node_modules/three/src/nodes/core/ParameterNode.js +94 -0
  717. package/node_modules/three/src/nodes/core/PropertyNode.js +351 -0
  718. package/node_modules/three/src/nodes/core/StackNode.js +377 -0
  719. package/node_modules/three/src/nodes/core/StructNode.js +120 -0
  720. package/node_modules/three/src/nodes/core/StructType.js +13 -0
  721. package/node_modules/three/src/nodes/core/StructTypeNode.js +154 -0
  722. package/node_modules/three/src/nodes/core/SubBuildNode.js +89 -0
  723. package/node_modules/three/src/nodes/core/TempNode.js +88 -0
  724. package/node_modules/three/src/nodes/core/UniformGroupNode.js +137 -0
  725. package/node_modules/three/src/nodes/core/UniformNode.js +243 -0
  726. package/node_modules/three/src/nodes/core/VarNode.js +342 -0
  727. package/node_modules/three/src/nodes/core/VaryingNode.js +227 -0
  728. package/node_modules/three/src/nodes/core/constants.js +68 -0
  729. package/node_modules/three/src/nodes/display/BlendModes.js +235 -0
  730. package/node_modules/three/src/nodes/display/BumpMapNode.js +117 -0
  731. package/node_modules/three/src/nodes/display/ColorAdjustment.js +141 -0
  732. package/node_modules/three/src/nodes/display/ColorSpaceFunctions.js +54 -0
  733. package/node_modules/three/src/nodes/display/ColorSpaceNode.js +164 -0
  734. package/node_modules/three/src/nodes/display/FrontFacingNode.js +102 -0
  735. package/node_modules/three/src/nodes/display/NormalMapNode.js +118 -0
  736. package/node_modules/three/src/nodes/display/PassNode.js +946 -0
  737. package/node_modules/three/src/nodes/display/PosterizeNode.js +65 -0
  738. package/node_modules/three/src/nodes/display/RenderOutputNode.js +150 -0
  739. package/node_modules/three/src/nodes/display/ScreenNode.js +290 -0
  740. package/node_modules/three/src/nodes/display/ToneMappingFunctions.js +242 -0
  741. package/node_modules/three/src/nodes/display/ToneMappingNode.js +147 -0
  742. package/node_modules/three/src/nodes/display/ToonOutlinePassNode.js +191 -0
  743. package/node_modules/three/src/nodes/display/ViewportDepthNode.js +294 -0
  744. package/node_modules/three/src/nodes/display/ViewportDepthTextureNode.js +67 -0
  745. package/node_modules/three/src/nodes/display/ViewportSharedTextureNode.js +73 -0
  746. package/node_modules/three/src/nodes/display/ViewportTextureNode.js +228 -0
  747. package/node_modules/three/src/nodes/fog/Fog.js +114 -0
  748. package/node_modules/three/src/nodes/functions/BSDF/BRDF_GGX.js +55 -0
  749. package/node_modules/three/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
  750. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  751. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +9 -9
  752. package/node_modules/three/src/nodes/functions/BSDF/DFGApprox.js +71 -0
  753. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
  754. package/node_modules/three/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
  755. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  756. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
  757. package/node_modules/three/src/nodes/functions/BSDF/LTC.js +175 -0
  758. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  759. package/node_modules/three/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -4
  760. package/node_modules/three/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
  761. package/node_modules/three/src/nodes/functions/BasicLightingModel.js +100 -0
  762. package/node_modules/three/src/nodes/functions/PhongLightingModel.js +99 -0
  763. package/node_modules/three/src/nodes/functions/PhysicalLightingModel.js +797 -0
  764. package/node_modules/three/src/nodes/functions/ShadowMaskModel.js +58 -0
  765. package/node_modules/three/src/nodes/functions/ToonLightingModel.js +70 -0
  766. package/node_modules/three/src/nodes/functions/VolumetricLightingModel.js +183 -0
  767. package/node_modules/three/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
  768. package/node_modules/three/src/nodes/functions/material/getGeometryRoughness.js +19 -0
  769. package/node_modules/three/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
  770. package/node_modules/three/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
  771. package/node_modules/three/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  772. package/node_modules/three/src/nodes/geometry/RangeNode.js +208 -0
  773. package/node_modules/three/src/nodes/gpgpu/AtomicFunctionNode.js +274 -0
  774. package/node_modules/three/src/nodes/gpgpu/BarrierNode.js +89 -0
  775. package/node_modules/three/src/nodes/gpgpu/ComputeBuiltinNode.js +228 -0
  776. package/node_modules/three/src/nodes/gpgpu/ComputeNode.js +284 -0
  777. package/node_modules/three/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
  778. package/node_modules/three/src/nodes/gpgpu/WorkgroupInfoNode.js +234 -0
  779. package/node_modules/three/src/nodes/lighting/AONode.js +45 -0
  780. package/node_modules/three/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +16 -8
  781. package/node_modules/three/src/nodes/lighting/AnalyticLightNode.js +256 -0
  782. package/node_modules/three/src/nodes/lighting/BasicEnvironmentNode.js +49 -0
  783. package/node_modules/three/src/nodes/lighting/BasicLightMapNode.js +49 -0
  784. package/node_modules/three/src/nodes/lighting/DirectionalLightNode.js +39 -0
  785. package/node_modules/three/src/nodes/lighting/EnvironmentNode.js +153 -0
  786. package/node_modules/three/src/nodes/lighting/HemisphereLightNode.js +87 -0
  787. package/node_modules/three/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +20 -10
  788. package/node_modules/three/src/nodes/lighting/IrradianceNode.js +44 -0
  789. package/node_modules/three/src/nodes/lighting/LightProbeNode.js +73 -0
  790. package/node_modules/three/src/nodes/lighting/LightUtils.js +25 -0
  791. package/node_modules/three/src/nodes/lighting/LightingContextNode.js +115 -0
  792. package/node_modules/three/src/nodes/lighting/LightingNode.js +36 -0
  793. package/node_modules/three/src/nodes/lighting/LightsNode.js +453 -0
  794. package/node_modules/three/src/nodes/lighting/PointLightNode.js +102 -0
  795. package/node_modules/three/src/nodes/lighting/PointShadowNode.js +312 -0
  796. package/node_modules/three/src/nodes/lighting/ProjectorLightNode.js +91 -0
  797. package/node_modules/three/src/nodes/lighting/RectAreaLightNode.js +133 -0
  798. package/node_modules/three/src/nodes/lighting/ShadowBaseNode.js +81 -0
  799. package/node_modules/three/src/nodes/lighting/ShadowFilterNode.js +276 -0
  800. package/node_modules/three/src/nodes/lighting/ShadowNode.js +811 -0
  801. package/node_modules/three/src/nodes/lighting/SpotLightNode.js +168 -0
  802. package/node_modules/three/src/nodes/materialx/MaterialXNodes.js +197 -0
  803. package/node_modules/three/{examples/jsm → src}/nodes/materialx/lib/mx_hsv.js +43 -46
  804. package/node_modules/three/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +625 -564
  805. package/node_modules/three/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
  806. package/node_modules/three/src/nodes/math/BitcastNode.js +156 -0
  807. package/node_modules/three/src/nodes/math/ConditionalNode.js +245 -0
  808. package/node_modules/three/src/nodes/math/Hash.js +21 -0
  809. package/node_modules/three/src/nodes/math/MathNode.js +1167 -0
  810. package/node_modules/three/src/nodes/math/MathUtils.js +54 -0
  811. package/node_modules/three/src/nodes/math/OperatorNode.js +751 -0
  812. package/node_modules/three/{examples/jsm → src}/nodes/math/TriNoise3D.js +34 -34
  813. package/node_modules/three/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +23 -7
  814. package/node_modules/three/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +11 -0
  815. package/node_modules/three/src/nodes/pmrem/PMREMNode.js +397 -0
  816. package/node_modules/three/src/nodes/pmrem/PMREMUtils.js +403 -0
  817. package/node_modules/three/src/nodes/procedural/Checker.js +22 -0
  818. package/node_modules/three/src/nodes/shapes/Shapes.js +33 -0
  819. package/node_modules/three/src/nodes/tsl/TSLBase.js +36 -0
  820. package/node_modules/three/src/nodes/tsl/TSLCore.js +1229 -0
  821. package/node_modules/three/src/nodes/utils/ArrayElementNode.js +77 -0
  822. package/node_modules/three/src/nodes/utils/ConvertNode.js +100 -0
  823. package/node_modules/three/src/nodes/utils/CubeMapNode.js +237 -0
  824. package/node_modules/three/src/nodes/utils/DebugNode.js +83 -0
  825. package/node_modules/three/src/nodes/utils/Discard.js +24 -0
  826. package/node_modules/three/src/nodes/utils/EquirectUV.js +27 -0
  827. package/node_modules/three/src/nodes/utils/EventNode.js +119 -0
  828. package/node_modules/three/src/nodes/utils/FlipNode.js +106 -0
  829. package/node_modules/three/src/nodes/utils/FunctionOverloadingNode.js +170 -0
  830. package/node_modules/three/src/nodes/utils/JoinNode.js +117 -0
  831. package/node_modules/three/src/nodes/utils/LoopNode.js +349 -0
  832. package/node_modules/three/src/nodes/utils/MatcapUV.js +22 -0
  833. package/node_modules/three/src/nodes/utils/MaxMipLevelNode.js +103 -0
  834. package/node_modules/three/src/nodes/utils/MemberNode.js +120 -0
  835. package/node_modules/three/src/nodes/utils/Oscillators.js +41 -0
  836. package/node_modules/three/src/nodes/utils/Packing.js +21 -0
  837. package/node_modules/three/src/nodes/utils/PostProcessingUtils.js +122 -0
  838. package/node_modules/three/src/nodes/utils/RTTNode.js +289 -0
  839. package/node_modules/three/src/nodes/utils/ReflectorNode.js +630 -0
  840. package/node_modules/three/src/nodes/utils/RemapNode.js +125 -0
  841. package/node_modules/three/{examples/jsm → src}/nodes/utils/RotateNode.js +48 -13
  842. package/node_modules/three/src/nodes/utils/SampleNode.js +91 -0
  843. package/node_modules/three/{examples/jsm → src}/nodes/utils/SetNode.js +50 -4
  844. package/node_modules/three/{examples/jsm → src}/nodes/utils/SplitNode.js +73 -6
  845. package/node_modules/three/src/nodes/utils/SpriteSheetUVNode.js +90 -0
  846. package/node_modules/three/src/nodes/utils/SpriteUtils.js +63 -0
  847. package/node_modules/three/src/nodes/utils/StorageArrayElementNode.js +143 -0
  848. package/node_modules/three/src/nodes/utils/Timer.js +26 -0
  849. package/node_modules/three/src/nodes/utils/TriplanarTextures.js +65 -0
  850. package/node_modules/three/src/nodes/utils/UVUtils.js +39 -0
  851. package/node_modules/three/src/nodes/utils/ViewportUtils.js +26 -0
  852. package/node_modules/three/src/objects/BatchedMesh.js +940 -305
  853. package/node_modules/three/src/objects/Bone.js +24 -0
  854. package/node_modules/three/src/objects/ClippingGroup.js +68 -0
  855. package/node_modules/three/src/objects/Group.js +24 -0
  856. package/node_modules/three/src/objects/InstancedMesh.js +182 -1
  857. package/node_modules/three/src/objects/LOD.js +120 -5
  858. package/node_modules/three/src/objects/Line.js +151 -44
  859. package/node_modules/three/src/objects/LineLoop.js +20 -0
  860. package/node_modules/three/src/objects/LineSegments.js +20 -1
  861. package/node_modules/three/src/objects/Mesh.js +91 -24
  862. package/node_modules/three/src/objects/Points.js +62 -0
  863. package/node_modules/three/src/objects/Skeleton.js +111 -5
  864. package/node_modules/three/src/objects/SkinnedMesh.js +102 -6
  865. package/node_modules/three/src/objects/Sprite.js +65 -1
  866. package/node_modules/three/src/renderers/WebGL3DRenderTarget.js +26 -0
  867. package/node_modules/three/src/renderers/WebGLArrayRenderTarget.js +26 -0
  868. package/node_modules/three/src/renderers/WebGLCubeRenderTarget.js +42 -15
  869. package/node_modules/three/src/renderers/WebGLRenderTarget.js +19 -0
  870. package/node_modules/three/src/renderers/WebGLRenderer.js +1222 -318
  871. package/node_modules/three/src/renderers/common/Animation.js +159 -0
  872. package/node_modules/three/{examples/jsm → src}/renderers/common/Attributes.js +45 -2
  873. package/node_modules/three/src/renderers/common/Backend.js +748 -0
  874. package/node_modules/three/src/renderers/common/Background.js +212 -0
  875. package/node_modules/three/src/renderers/common/BindGroup.js +61 -0
  876. package/node_modules/three/src/renderers/common/Binding.js +60 -0
  877. package/node_modules/three/src/renderers/common/Bindings.js +379 -0
  878. package/node_modules/three/src/renderers/common/Buffer.js +87 -0
  879. package/node_modules/three/src/renderers/common/BufferUtils.js +58 -0
  880. package/node_modules/three/src/renderers/common/BundleGroup.js +83 -0
  881. package/node_modules/three/src/renderers/common/CanvasTarget.js +341 -0
  882. package/node_modules/three/src/renderers/common/ChainMap.js +98 -0
  883. package/node_modules/three/src/renderers/common/ClippingContext.js +262 -0
  884. package/node_modules/three/src/renderers/common/Color4.js +77 -0
  885. package/node_modules/three/src/renderers/common/ComputePipeline.js +41 -0
  886. package/node_modules/three/{examples/jsm → src}/renderers/common/Constants.js +2 -1
  887. package/node_modules/three/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +43 -5
  888. package/node_modules/three/src/renderers/common/DataMap.js +90 -0
  889. package/node_modules/three/src/renderers/common/Geometries.js +370 -0
  890. package/node_modules/three/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
  891. package/node_modules/three/src/renderers/common/Info.js +172 -0
  892. package/node_modules/three/src/renderers/common/InspectorBase.js +146 -0
  893. package/node_modules/three/src/renderers/common/Lighting.js +73 -0
  894. package/node_modules/three/src/renderers/common/Pipeline.js +35 -0
  895. package/node_modules/three/{examples/jsm → src}/renderers/common/Pipelines.js +150 -7
  896. package/node_modules/three/src/renderers/common/PostProcessing.js +226 -0
  897. package/node_modules/three/src/renderers/common/ProgrammableStage.js +78 -0
  898. package/node_modules/three/src/renderers/common/QuadMesh.js +112 -0
  899. package/node_modules/three/src/renderers/common/RenderBundle.js +24 -0
  900. package/node_modules/three/src/renderers/common/RenderBundles.js +67 -0
  901. package/node_modules/three/src/renderers/common/RenderContext.js +265 -0
  902. package/node_modules/three/src/renderers/common/RenderContexts.js +116 -0
  903. package/node_modules/three/src/renderers/common/RenderList.js +404 -0
  904. package/node_modules/three/src/renderers/common/RenderLists.js +77 -0
  905. package/node_modules/three/src/renderers/common/RenderObject.js +903 -0
  906. package/node_modules/three/src/renderers/common/RenderObjects.js +202 -0
  907. package/node_modules/three/src/renderers/common/RenderPipeline.js +40 -0
  908. package/node_modules/three/src/renderers/common/Renderer.js +3290 -0
  909. package/node_modules/three/src/renderers/common/RendererUtils.js +200 -0
  910. package/node_modules/three/src/renderers/common/SampledTexture.js +152 -0
  911. package/node_modules/three/src/renderers/common/Sampler.js +165 -0
  912. package/node_modules/three/src/renderers/common/Storage3DTexture.js +100 -0
  913. package/node_modules/three/src/renderers/common/StorageArrayTexture.js +84 -0
  914. package/node_modules/three/src/renderers/common/StorageBuffer.js +41 -0
  915. package/node_modules/three/src/renderers/common/StorageBufferAttribute.js +46 -0
  916. package/node_modules/three/src/renderers/common/StorageInstancedBufferAttribute.js +46 -0
  917. package/node_modules/three/src/renderers/common/StorageTexture.js +86 -0
  918. package/node_modules/three/src/renderers/common/Textures.js +544 -0
  919. package/node_modules/three/src/renderers/common/TimestampQueryPool.js +161 -0
  920. package/node_modules/three/src/renderers/common/Uniform.js +367 -0
  921. package/node_modules/three/src/renderers/common/UniformBuffer.js +34 -0
  922. package/node_modules/three/src/renderers/common/UniformsGroup.js +487 -0
  923. package/node_modules/three/src/renderers/common/XRManager.js +1676 -0
  924. package/node_modules/three/src/renderers/common/XRRenderTarget.js +91 -0
  925. package/node_modules/three/src/renderers/common/extras/PMREMGenerator.js +1034 -0
  926. package/node_modules/three/src/renderers/common/nodes/NodeBuilderState.js +152 -0
  927. package/node_modules/three/src/renderers/common/nodes/NodeLibrary.js +196 -0
  928. package/node_modules/three/src/renderers/common/nodes/NodeSampledTexture.js +140 -0
  929. package/node_modules/three/src/renderers/common/nodes/NodeSampler.js +62 -0
  930. package/node_modules/three/src/renderers/common/nodes/NodeStorageBuffer.js +61 -0
  931. package/node_modules/three/src/renderers/common/nodes/NodeUniform.js +418 -0
  932. package/node_modules/three/src/renderers/common/nodes/NodeUniformBuffer.js +53 -0
  933. package/node_modules/three/src/renderers/common/nodes/NodeUniformsGroup.js +51 -0
  934. package/node_modules/three/src/renderers/common/nodes/Nodes.js +840 -0
  935. package/node_modules/three/src/renderers/shaders/DFGLUTData.js +64 -0
  936. package/node_modules/three/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +31 -1
  937. package/node_modules/three/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
  938. package/node_modules/three/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -1
  939. package/node_modules/three/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +9 -1
  940. package/node_modules/three/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -33
  941. package/node_modules/three/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -22
  942. package/node_modules/three/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
  943. package/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +2 -1
  944. package/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +1 -1
  945. package/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -3
  946. package/node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  947. package/node_modules/three/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +8 -22
  948. package/node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
  949. package/node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +55 -20
  950. package/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
  951. package/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  952. package/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +3 -11
  953. package/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +3 -17
  954. package/node_modules/three/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +3 -3
  955. package/node_modules/three/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +1 -1
  956. package/node_modules/three/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +14 -0
  957. package/node_modules/three/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +3 -14
  958. package/node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +12 -24
  959. package/node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +3 -23
  960. package/node_modules/three/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
  961. package/node_modules/three/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
  962. package/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +59 -36
  963. package/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
  964. package/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
  965. package/node_modules/three/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +33 -2
  966. package/node_modules/three/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  967. package/node_modules/three/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
  968. package/node_modules/three/src/renderers/shaders/ShaderChunk.js +2 -2
  969. package/node_modules/three/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  970. package/node_modules/three/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +3 -2
  971. package/node_modules/three/src/renderers/shaders/ShaderLib/depth.glsl.js +21 -2
  972. package/node_modules/three/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
  973. package/node_modules/three/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
  974. package/node_modules/three/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -0
  975. package/node_modules/three/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
  976. package/node_modules/three/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -0
  977. package/node_modules/three/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -0
  978. package/node_modules/three/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
  979. package/node_modules/three/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +5 -0
  980. package/node_modules/three/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
  981. package/node_modules/three/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
  982. package/node_modules/three/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -0
  983. package/node_modules/three/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  984. package/node_modules/three/src/renderers/shaders/ShaderLib.js +4 -2
  985. package/node_modules/three/src/renderers/shaders/UniformsLib.js +6 -4
  986. package/node_modules/three/src/renderers/shaders/UniformsUtils.js +31 -3
  987. package/node_modules/three/src/renderers/webgl/WebGLAttributes.js +46 -38
  988. package/node_modules/three/src/renderers/webgl/WebGLBackground.js +69 -5
  989. package/node_modules/three/src/renderers/webgl/WebGLBindingStates.js +14 -51
  990. package/node_modules/three/src/renderers/webgl/WebGLBufferRenderer.js +19 -22
  991. package/node_modules/three/src/renderers/webgl/WebGLCapabilities.js +39 -14
  992. package/node_modules/three/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
  993. package/node_modules/three/src/renderers/webgl/WebGLExtensions.js +8 -44
  994. package/node_modules/three/src/renderers/webgl/WebGLGeometries.js +0 -28
  995. package/node_modules/three/src/renderers/webgl/WebGLIndexedBufferRenderer.js +19 -21
  996. package/node_modules/three/src/renderers/webgl/WebGLInfo.js +3 -1
  997. package/node_modules/three/src/renderers/webgl/WebGLLights.js +21 -44
  998. package/node_modules/three/src/renderers/webgl/WebGLMaterials.js +33 -9
  999. package/node_modules/three/src/renderers/webgl/WebGLMorphtargets.js +78 -210
  1000. package/node_modules/three/src/renderers/webgl/WebGLProgram.js +103 -121
  1001. package/node_modules/three/src/renderers/webgl/WebGLPrograms.js +32 -26
  1002. package/node_modules/three/src/renderers/webgl/WebGLProperties.js +7 -0
  1003. package/node_modules/three/src/renderers/webgl/WebGLRenderStates.js +15 -9
  1004. package/node_modules/three/src/renderers/webgl/WebGLShadowMap.js +41 -29
  1005. package/node_modules/three/src/renderers/webgl/WebGLState.js +104 -100
  1006. package/node_modules/three/src/renderers/webgl/WebGLTextures.js +567 -408
  1007. package/node_modules/three/src/renderers/webgl/WebGLUniforms.js +12 -2
  1008. package/node_modules/three/src/renderers/webgl/WebGLUniformsGroups.js +13 -11
  1009. package/node_modules/three/src/renderers/webgl/WebGLUtils.js +11 -81
  1010. package/node_modules/three/src/renderers/webgl-fallback/WebGLBackend.js +2612 -0
  1011. package/node_modules/three/src/renderers/webgl-fallback/WebGLBufferRenderer.js +140 -0
  1012. package/node_modules/three/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +1577 -0
  1013. package/node_modules/three/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +76 -3
  1014. package/node_modules/three/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +64 -0
  1015. package/node_modules/three/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +5 -3
  1016. package/node_modules/three/src/renderers/webgl-fallback/utils/WebGLExtensions.js +83 -0
  1017. package/node_modules/three/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +427 -21
  1018. package/node_modules/three/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +1309 -0
  1019. package/node_modules/three/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +396 -0
  1020. package/node_modules/three/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +72 -43
  1021. package/node_modules/three/src/renderers/webgpu/WebGPUBackend.js +2482 -0
  1022. package/node_modules/three/src/renderers/webgpu/WebGPURenderer.Nodes.js +69 -0
  1023. package/node_modules/three/src/renderers/webgpu/WebGPURenderer.js +106 -0
  1024. package/node_modules/three/src/renderers/webgpu/nodes/BasicNodeLibrary.js +66 -0
  1025. package/node_modules/three/src/renderers/webgpu/nodes/StandardNodeLibrary.js +100 -0
  1026. package/node_modules/three/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +2247 -0
  1027. package/node_modules/three/src/renderers/webgpu/nodes/WGSLNodeFunction.js +187 -0
  1028. package/node_modules/three/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  1029. package/node_modules/three/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +449 -0
  1030. package/node_modules/three/src/renderers/webgpu/utils/WebGPUBindingUtils.js +485 -0
  1031. package/node_modules/three/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +24 -4
  1032. package/node_modules/three/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +289 -72
  1033. package/node_modules/three/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +160 -8
  1034. package/node_modules/three/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1576 -0
  1035. package/node_modules/three/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +310 -0
  1036. package/node_modules/three/src/renderers/webgpu/utils/WebGPUUtils.js +247 -0
  1037. package/node_modules/three/src/renderers/webxr/WebXRController.js +87 -2
  1038. package/node_modules/three/src/renderers/webxr/WebXRDepthSensing.js +63 -13
  1039. package/node_modules/three/src/renderers/webxr/WebXRManager.js +323 -44
  1040. package/node_modules/three/src/scenes/Fog.js +60 -0
  1041. package/node_modules/three/src/scenes/FogExp2.js +51 -0
  1042. package/node_modules/three/src/scenes/Scene.js +103 -1
  1043. package/node_modules/three/src/textures/CanvasTexture.js +28 -0
  1044. package/node_modules/three/src/textures/CompressedArrayTexture.js +71 -0
  1045. package/node_modules/three/src/textures/CompressedCubeTexture.js +29 -0
  1046. package/node_modules/three/src/textures/CompressedTexture.js +64 -6
  1047. package/node_modules/three/src/textures/CubeTexture.js +52 -4
  1048. package/node_modules/three/src/textures/Data3DTexture.js +79 -2
  1049. package/node_modules/three/src/textures/DataArrayTexture.js +107 -0
  1050. package/node_modules/three/src/textures/DataTexture.js +65 -0
  1051. package/node_modules/three/src/textures/DepthTexture.js +59 -13
  1052. package/node_modules/three/src/textures/ExternalTexture.js +56 -0
  1053. package/node_modules/three/src/textures/FramebufferTexture.js +62 -0
  1054. package/node_modules/three/src/textures/Source.js +106 -4
  1055. package/node_modules/three/src/textures/Texture.js +490 -27
  1056. package/node_modules/three/src/textures/VideoFrameTexture.js +72 -0
  1057. package/node_modules/three/src/textures/VideoTexture.js +78 -6
  1058. package/node_modules/three/src/utils.js +128 -3
  1059. package/package.json +3 -2
  1060. package/node_modules/three/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
  1061. package/node_modules/three/examples/jsm/animation/MMDPhysics.js +0 -1406
  1062. package/node_modules/three/examples/jsm/cameras/CinematicCamera.js +0 -208
  1063. package/node_modules/three/examples/jsm/effects/PeppersGhostEffect.js +0 -153
  1064. package/node_modules/three/examples/jsm/exporters/MMDExporter.js +0 -217
  1065. package/node_modules/three/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
  1066. package/node_modules/three/examples/jsm/geometries/ParametricGeometries.js +0 -254
  1067. package/node_modules/three/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  1068. package/node_modules/three/examples/jsm/libs/mmdparser.module.js +0 -11530
  1069. package/node_modules/three/examples/jsm/lights/IESSpotLight.js +0 -25
  1070. package/node_modules/three/examples/jsm/loaders/LogLuvLoader.js +0 -606
  1071. package/node_modules/three/examples/jsm/loaders/MMDLoader.js +0 -2276
  1072. package/node_modules/three/examples/jsm/loaders/RGBMLoader.js +0 -1065
  1073. package/node_modules/three/examples/jsm/loaders/TiltLoader.js +0 -520
  1074. package/node_modules/three/examples/jsm/misc/Timer.js +0 -128
  1075. package/node_modules/three/examples/jsm/nodes/Nodes.js +0 -193
  1076. package/node_modules/three/examples/jsm/nodes/accessors/BitangentNode.js +0 -89
  1077. package/node_modules/three/examples/jsm/nodes/accessors/BufferAttributeNode.js +0 -127
  1078. package/node_modules/three/examples/jsm/nodes/accessors/BufferNode.js +0 -30
  1079. package/node_modules/three/examples/jsm/nodes/accessors/CameraNode.js +0 -119
  1080. package/node_modules/three/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
  1081. package/node_modules/three/examples/jsm/nodes/accessors/InstanceNode.js +0 -71
  1082. package/node_modules/three/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  1083. package/node_modules/three/examples/jsm/nodes/accessors/MaterialNode.js +0 -314
  1084. package/node_modules/three/examples/jsm/nodes/accessors/MaterialReferenceNode.js +0 -51
  1085. package/node_modules/three/examples/jsm/nodes/accessors/ModelNode.js +0 -33
  1086. package/node_modules/three/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +0 -39
  1087. package/node_modules/three/examples/jsm/nodes/accessors/NormalNode.js +0 -96
  1088. package/node_modules/three/examples/jsm/nodes/accessors/Object3DNode.js +0 -150
  1089. package/node_modules/three/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
  1090. package/node_modules/three/examples/jsm/nodes/accessors/PositionNode.js +0 -104
  1091. package/node_modules/three/examples/jsm/nodes/accessors/ReferenceNode.js +0 -102
  1092. package/node_modules/three/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -35
  1093. package/node_modules/three/examples/jsm/nodes/accessors/SceneNode.js +0 -52
  1094. package/node_modules/three/examples/jsm/nodes/accessors/SkinningNode.js +0 -103
  1095. package/node_modules/three/examples/jsm/nodes/accessors/StorageBufferNode.js +0 -54
  1096. package/node_modules/three/examples/jsm/nodes/accessors/TangentNode.js +0 -103
  1097. package/node_modules/three/examples/jsm/nodes/accessors/TextureNode.js +0 -367
  1098. package/node_modules/three/examples/jsm/nodes/accessors/TextureSizeNode.js +0 -35
  1099. package/node_modules/three/examples/jsm/nodes/accessors/TextureStoreNode.js +0 -82
  1100. package/node_modules/three/examples/jsm/nodes/accessors/UVNode.js +0 -47
  1101. package/node_modules/three/examples/jsm/nodes/accessors/UserDataNode.js +0 -29
  1102. package/node_modules/three/examples/jsm/nodes/accessors/VertexColorNode.js +0 -70
  1103. package/node_modules/three/examples/jsm/nodes/code/CodeNode.js +0 -78
  1104. package/node_modules/three/examples/jsm/nodes/code/ExpressionNode.js +0 -37
  1105. package/node_modules/three/examples/jsm/nodes/code/FunctionCallNode.js +0 -96
  1106. package/node_modules/three/examples/jsm/nodes/code/FunctionNode.js +0 -138
  1107. package/node_modules/three/examples/jsm/nodes/core/ArrayUniformNode.js +0 -26
  1108. package/node_modules/three/examples/jsm/nodes/core/AssignNode.js +0 -72
  1109. package/node_modules/three/examples/jsm/nodes/core/AttributeNode.js +0 -108
  1110. package/node_modules/three/examples/jsm/nodes/core/BypassNode.js +0 -45
  1111. package/node_modules/three/examples/jsm/nodes/core/CacheNode.js +0 -49
  1112. package/node_modules/three/examples/jsm/nodes/core/ConstNode.js +0 -32
  1113. package/node_modules/three/examples/jsm/nodes/core/ContextNode.js +0 -61
  1114. package/node_modules/three/examples/jsm/nodes/core/IndexNode.js +0 -66
  1115. package/node_modules/three/examples/jsm/nodes/core/InputNode.js +0 -83
  1116. package/node_modules/three/examples/jsm/nodes/core/LightingModel.js +0 -17
  1117. package/node_modules/three/examples/jsm/nodes/core/Node.js +0 -483
  1118. package/node_modules/three/examples/jsm/nodes/core/NodeAttribute.js +0 -15
  1119. package/node_modules/three/examples/jsm/nodes/core/NodeBuilder.js +0 -1256
  1120. package/node_modules/three/examples/jsm/nodes/core/NodeCache.js +0 -26
  1121. package/node_modules/three/examples/jsm/nodes/core/NodeCode.js +0 -15
  1122. package/node_modules/three/examples/jsm/nodes/core/NodeFrame.js +0 -143
  1123. package/node_modules/three/examples/jsm/nodes/core/NodeFunction.js +0 -22
  1124. package/node_modules/three/examples/jsm/nodes/core/NodeFunctionInput.js +0 -17
  1125. package/node_modules/three/examples/jsm/nodes/core/NodeKeywords.js +0 -80
  1126. package/node_modules/three/examples/jsm/nodes/core/NodeParser.js +0 -11
  1127. package/node_modules/three/examples/jsm/nodes/core/NodeUniform.js +0 -40
  1128. package/node_modules/three/examples/jsm/nodes/core/NodeUtils.js +0 -210
  1129. package/node_modules/three/examples/jsm/nodes/core/NodeVar.js +0 -14
  1130. package/node_modules/three/examples/jsm/nodes/core/NodeVarying.js +0 -17
  1131. package/node_modules/three/examples/jsm/nodes/core/OutputStructNode.js +0 -62
  1132. package/node_modules/three/examples/jsm/nodes/core/ParameterNode.js +0 -33
  1133. package/node_modules/three/examples/jsm/nodes/core/PropertyNode.js +0 -72
  1134. package/node_modules/three/examples/jsm/nodes/core/StackNode.js +0 -89
  1135. package/node_modules/three/examples/jsm/nodes/core/StructTypeNode.js +0 -24
  1136. package/node_modules/three/examples/jsm/nodes/core/TempNode.js +0 -58
  1137. package/node_modules/three/examples/jsm/nodes/core/UniformGroup.js +0 -13
  1138. package/node_modules/three/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
  1139. package/node_modules/three/examples/jsm/nodes/core/UniformNode.js +0 -80
  1140. package/node_modules/three/examples/jsm/nodes/core/VarNode.js +0 -60
  1141. package/node_modules/three/examples/jsm/nodes/core/VaryingNode.js +0 -65
  1142. package/node_modules/three/examples/jsm/nodes/core/constants.js +0 -28
  1143. package/node_modules/three/examples/jsm/nodes/display/AfterImageNode.js +0 -148
  1144. package/node_modules/three/examples/jsm/nodes/display/AnamorphicNode.js +0 -148
  1145. package/node_modules/three/examples/jsm/nodes/display/BlendModeNode.js +0 -99
  1146. package/node_modules/three/examples/jsm/nodes/display/BumpMapNode.js +0 -99
  1147. package/node_modules/three/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
  1148. package/node_modules/three/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
  1149. package/node_modules/three/examples/jsm/nodes/display/FrontFacingNode.js +0 -27
  1150. package/node_modules/three/examples/jsm/nodes/display/GaussianBlurNode.js +0 -190
  1151. package/node_modules/three/examples/jsm/nodes/display/NormalMapNode.js +0 -108
  1152. package/node_modules/three/examples/jsm/nodes/display/PassNode.js +0 -183
  1153. package/node_modules/three/examples/jsm/nodes/display/PosterizeNode.js +0 -32
  1154. package/node_modules/three/examples/jsm/nodes/display/ToneMappingNode.js +0 -184
  1155. package/node_modules/three/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
  1156. package/node_modules/three/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
  1157. package/node_modules/three/examples/jsm/nodes/display/ViewportNode.js +0 -134
  1158. package/node_modules/three/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -31
  1159. package/node_modules/three/examples/jsm/nodes/display/ViewportTextureNode.js +0 -75
  1160. package/node_modules/three/examples/jsm/nodes/fog/FogExp2Node.js +0 -35
  1161. package/node_modules/three/examples/jsm/nodes/fog/FogNode.js +0 -38
  1162. package/node_modules/three/examples/jsm/nodes/fog/FogRangeNode.js +0 -34
  1163. package/node_modules/three/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +0 -40
  1164. package/node_modules/three/examples/jsm/nodes/functions/BSDF/DFGApprox.js +0 -30
  1165. package/node_modules/three/examples/jsm/nodes/functions/PhongLightingModel.js +0 -67
  1166. package/node_modules/three/examples/jsm/nodes/functions/PhysicalLightingModel.js +0 -393
  1167. package/node_modules/three/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
  1168. package/node_modules/three/examples/jsm/nodes/geometry/RangeNode.js +0 -104
  1169. package/node_modules/three/examples/jsm/nodes/gpgpu/ComputeNode.js +0 -85
  1170. package/node_modules/three/examples/jsm/nodes/lighting/AONode.js +0 -27
  1171. package/node_modules/three/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -241
  1172. package/node_modules/three/examples/jsm/nodes/lighting/DirectionalLightNode.js +0 -40
  1173. package/node_modules/three/examples/jsm/nodes/lighting/EnvironmentNode.js +0 -181
  1174. package/node_modules/three/examples/jsm/nodes/lighting/HemisphereLightNode.js +0 -55
  1175. package/node_modules/three/examples/jsm/nodes/lighting/LightNode.js +0 -57
  1176. package/node_modules/three/examples/jsm/nodes/lighting/LightUtils.js +0 -17
  1177. package/node_modules/three/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
  1178. package/node_modules/three/examples/jsm/nodes/lighting/LightingNode.js +0 -21
  1179. package/node_modules/three/examples/jsm/nodes/lighting/LightsNode.js +0 -188
  1180. package/node_modules/three/examples/jsm/nodes/lighting/PointLightNode.js +0 -68
  1181. package/node_modules/three/examples/jsm/nodes/lighting/SpotLightNode.js +0 -89
  1182. package/node_modules/three/examples/jsm/nodes/loaders/NodeLoader.js +0 -108
  1183. package/node_modules/three/examples/jsm/nodes/loaders/NodeMaterialLoader.js +0 -59
  1184. package/node_modules/three/examples/jsm/nodes/loaders/NodeObjectLoader.js +0 -70
  1185. package/node_modules/three/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  1186. package/node_modules/three/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
  1187. package/node_modules/three/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +0 -54
  1188. package/node_modules/three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
  1189. package/node_modules/three/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
  1190. package/node_modules/three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  1191. package/node_modules/three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
  1192. package/node_modules/three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +0 -155
  1193. package/node_modules/three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.js +0 -84
  1194. package/node_modules/three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +0 -80
  1195. package/node_modules/three/examples/jsm/nodes/materials/NodeMaterial.js +0 -570
  1196. package/node_modules/three/examples/jsm/nodes/materials/PointsNodeMaterial.js +0 -39
  1197. package/node_modules/three/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -90
  1198. package/node_modules/three/examples/jsm/nodes/materialx/MaterialXNodes.js +0 -68
  1199. package/node_modules/three/examples/jsm/nodes/math/CondNode.js +0 -86
  1200. package/node_modules/three/examples/jsm/nodes/math/HashNode.js +0 -34
  1201. package/node_modules/three/examples/jsm/nodes/math/MathNode.js +0 -371
  1202. package/node_modules/three/examples/jsm/nodes/math/MathUtils.js +0 -15
  1203. package/node_modules/three/examples/jsm/nodes/math/OperatorNode.js +0 -274
  1204. package/node_modules/three/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
  1205. package/node_modules/three/examples/jsm/nodes/shadernode/ShaderNode.js +0 -634
  1206. package/node_modules/three/examples/jsm/nodes/utils/ArrayElementNode.js +0 -41
  1207. package/node_modules/three/examples/jsm/nodes/utils/ConvertNode.js +0 -65
  1208. package/node_modules/three/examples/jsm/nodes/utils/DiscardNode.js +0 -27
  1209. package/node_modules/three/examples/jsm/nodes/utils/EquirectUVNode.js +0 -33
  1210. package/node_modules/three/examples/jsm/nodes/utils/FunctionOverloadingNode.js +0 -95
  1211. package/node_modules/three/examples/jsm/nodes/utils/JoinNode.js +0 -61
  1212. package/node_modules/three/examples/jsm/nodes/utils/LoopNode.js +0 -198
  1213. package/node_modules/three/examples/jsm/nodes/utils/MatcapUVNode.js +0 -30
  1214. package/node_modules/three/examples/jsm/nodes/utils/MaxMipLevelNode.js +0 -46
  1215. package/node_modules/three/examples/jsm/nodes/utils/OscNode.js +0 -81
  1216. package/node_modules/three/examples/jsm/nodes/utils/PackingNode.js +0 -55
  1217. package/node_modules/three/examples/jsm/nodes/utils/ReflectorNode.js +0 -227
  1218. package/node_modules/three/examples/jsm/nodes/utils/RemapNode.js +0 -42
  1219. package/node_modules/three/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
  1220. package/node_modules/three/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
  1221. package/node_modules/three/examples/jsm/nodes/utils/SpriteSheetUVNode.js +0 -41
  1222. package/node_modules/three/examples/jsm/nodes/utils/TimerNode.js +0 -94
  1223. package/node_modules/three/examples/jsm/nodes/utils/TriplanarTexturesNode.js +0 -62
  1224. package/node_modules/three/examples/jsm/objects/InstancedPoints.js +0 -21
  1225. package/node_modules/three/examples/jsm/objects/QuadMesh.js +0 -66
  1226. package/node_modules/three/examples/jsm/renderers/common/Animation.js +0 -47
  1227. package/node_modules/three/examples/jsm/renderers/common/Backend.js +0 -195
  1228. package/node_modules/three/examples/jsm/renderers/common/Background.js +0 -134
  1229. package/node_modules/three/examples/jsm/renderers/common/Binding.js +0 -25
  1230. package/node_modules/three/examples/jsm/renderers/common/Bindings.js +0 -173
  1231. package/node_modules/three/examples/jsm/renderers/common/Buffer.js +0 -38
  1232. package/node_modules/three/examples/jsm/renderers/common/BufferUtils.js +0 -33
  1233. package/node_modules/three/examples/jsm/renderers/common/ChainMap.js +0 -89
  1234. package/node_modules/three/examples/jsm/renderers/common/Color4.js +0 -37
  1235. package/node_modules/three/examples/jsm/renderers/common/ComputePipeline.js +0 -17
  1236. package/node_modules/three/examples/jsm/renderers/common/DataMap.js +0 -54
  1237. package/node_modules/three/examples/jsm/renderers/common/Geometries.js +0 -215
  1238. package/node_modules/three/examples/jsm/renderers/common/Info.js +0 -107
  1239. package/node_modules/three/examples/jsm/renderers/common/Pipeline.js +0 -13
  1240. package/node_modules/three/examples/jsm/renderers/common/PostProcessing.js +0 -25
  1241. package/node_modules/three/examples/jsm/renderers/common/ProgrammableStage.js +0 -20
  1242. package/node_modules/three/examples/jsm/renderers/common/RenderContext.js +0 -41
  1243. package/node_modules/three/examples/jsm/renderers/common/RenderContexts.js +0 -74
  1244. package/node_modules/three/examples/jsm/renderers/common/RenderList.js +0 -186
  1245. package/node_modules/three/examples/jsm/renderers/common/RenderLists.js +0 -38
  1246. package/node_modules/three/examples/jsm/renderers/common/RenderObject.js +0 -178
  1247. package/node_modules/three/examples/jsm/renderers/common/RenderObjects.js +0 -91
  1248. package/node_modules/three/examples/jsm/renderers/common/RenderPipeline.js +0 -16
  1249. package/node_modules/three/examples/jsm/renderers/common/Renderer.js +0 -1247
  1250. package/node_modules/three/examples/jsm/renderers/common/SampledTexture.js +0 -83
  1251. package/node_modules/three/examples/jsm/renderers/common/Sampler.js +0 -18
  1252. package/node_modules/three/examples/jsm/renderers/common/StorageBuffer.js +0 -17
  1253. package/node_modules/three/examples/jsm/renderers/common/StorageBufferAttribute.js +0 -17
  1254. package/node_modules/three/examples/jsm/renderers/common/StorageTexture.js +0 -20
  1255. package/node_modules/three/examples/jsm/renderers/common/Textures.js +0 -354
  1256. package/node_modules/three/examples/jsm/renderers/common/Uniform.js +0 -140
  1257. package/node_modules/three/examples/jsm/renderers/common/UniformBuffer.js +0 -15
  1258. package/node_modules/three/examples/jsm/renderers/common/UniformsGroup.js +0 -299
  1259. package/node_modules/three/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
  1260. package/node_modules/three/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +0 -49
  1261. package/node_modules/three/examples/jsm/renderers/common/nodes/NodeSampler.js +0 -15
  1262. package/node_modules/three/examples/jsm/renderers/common/nodes/NodeUniform.js +0 -135
  1263. package/node_modules/three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.js +0 -44
  1264. package/node_modules/three/examples/jsm/renderers/common/nodes/Nodes.js +0 -495
  1265. package/node_modules/three/examples/jsm/renderers/webgl/WebGLBackend.js +0 -1362
  1266. package/node_modules/three/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +0 -679
  1267. package/node_modules/three/examples/jsm/renderers/webgl/utils/WebGLCapabilities.js +0 -36
  1268. package/node_modules/three/examples/jsm/renderers/webgl/utils/WebGLExtensions.js +0 -36
  1269. package/node_modules/three/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +0 -647
  1270. package/node_modules/three/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -320
  1271. package/node_modules/three/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +0 -26
  1272. package/node_modules/three/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -794
  1273. package/node_modules/three/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +0 -51
  1274. package/node_modules/three/examples/jsm/renderers/webgpu/WebGPUBackend.js +0 -1321
  1275. package/node_modules/three/examples/jsm/renderers/webgpu/WebGPURenderer.js +0 -53
  1276. package/node_modules/three/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +0 -1103
  1277. package/node_modules/three/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
  1278. package/node_modules/three/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +0 -287
  1279. package/node_modules/three/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +0 -244
  1280. package/node_modules/three/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +0 -1040
  1281. package/node_modules/three/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +0 -93
  1282. package/node_modules/three/examples/jsm/shaders/MMDToonShader.js +0 -134
  1283. package/node_modules/three/examples/jsm/utils/GPUStatsPanel.js +0 -128
  1284. package/node_modules/three/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  1285. package/node_modules/three/src/renderers/WebGL1Renderer.js +0 -7
  1286. package/node_modules/three/src/renderers/WebGLMultipleRenderTargets.js +0 -82
  1287. package/node_modules/three/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
  1288. /package/node_modules/three/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
@@ -24,9 +24,9 @@ import {
24
24
  CompressedTexture,
25
25
  Vector3,
26
26
  Quaternion,
27
+ REVISION,
28
+ ImageUtils
27
29
  } from 'three';
28
- import { decompress } from './../utils/TextureUtils.js';
29
-
30
30
 
31
31
  /**
32
32
  * The KHR_mesh_quantization extension allows these extra attribute component types
@@ -62,11 +62,59 @@ const KHR_mesh_quantization_ExtraAttrTypes = {
62
62
  ],
63
63
  };
64
64
 
65
-
65
+ /**
66
+ * An exporter for `glTF` 2.0.
67
+ *
68
+ * glTF (GL Transmission Format) is an [open format specification](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0)
69
+ * for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf)
70
+ * or binary (.glb) format. External files store textures (.jpg, .png) and additional binary
71
+ * data (.bin). A glTF asset may deliver one or more scenes, including meshes, materials,
72
+ * textures, skins, skeletons, morph targets, animations, lights, and/or cameras.
73
+ *
74
+ * GLTFExporter supports the [glTF 2.0 extensions](https://github.com/KhronosGroup/glTF/tree/master/extensions/):
75
+ *
76
+ * - KHR_lights_punctual
77
+ * - KHR_materials_clearcoat
78
+ * - KHR_materials_dispersion
79
+ * - KHR_materials_emissive_strength
80
+ * - KHR_materials_ior
81
+ * - KHR_materials_iridescence
82
+ * - KHR_materials_specular
83
+ * - KHR_materials_sheen
84
+ * - KHR_materials_transmission
85
+ * - KHR_materials_unlit
86
+ * - KHR_materials_volume
87
+ * - KHR_mesh_quantization
88
+ * - KHR_texture_transform
89
+ * - EXT_materials_bump
90
+ * - EXT_mesh_gpu_instancing
91
+ *
92
+ * The following glTF 2.0 extension is supported by an external user plugin:
93
+ *
94
+ * - [KHR_materials_variants](https://github.com/takahirox/three-gltf-extensions)
95
+ *
96
+ * ```js
97
+ * const exporter = new GLTFExporter();
98
+ * const data = await exporter.parseAsync( scene, options );
99
+ * ```
100
+ *
101
+ * @three_import import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
102
+ */
66
103
  class GLTFExporter {
67
104
 
105
+ /**
106
+ * Constructs a new glTF exporter.
107
+ */
68
108
  constructor() {
69
109
 
110
+ /**
111
+ * A reference to a texture utils module.
112
+ *
113
+ * @type {?(WebGLTextureUtils|WebGPUTextureUtils)}
114
+ * @default null
115
+ */
116
+ this.textureUtils = null;
117
+
70
118
  this.pluginCallbacks = [];
71
119
 
72
120
  this.register( function ( writer ) {
@@ -111,6 +159,12 @@ class GLTFExporter {
111
159
 
112
160
  } );
113
161
 
162
+ this.register( function ( writer ) {
163
+
164
+ return new GLTFMaterialsDispersionExtension( writer );
165
+
166
+ } );
167
+
114
168
  this.register( function ( writer ) {
115
169
 
116
170
  return new GLTFMaterialsIridescenceExtension( writer );
@@ -149,6 +203,14 @@ class GLTFExporter {
149
203
 
150
204
  }
151
205
 
206
+ /**
207
+ * Registers a plugin callback. This API is internally used to implement the various
208
+ * glTF extensions but can also used by third-party code to add additional logic
209
+ * to the exporter.
210
+ *
211
+ * @param {function(writer:GLTFWriter)} callback - The callback function to register.
212
+ * @return {GLTFExporter} A reference to this exporter.
213
+ */
152
214
  register( callback ) {
153
215
 
154
216
  if ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {
@@ -161,6 +223,12 @@ class GLTFExporter {
161
223
 
162
224
  }
163
225
 
226
+ /**
227
+ * Unregisters a plugin callback.
228
+ *
229
+ * @param {Function} callback - The callback function to unregister.
230
+ * @return {GLTFExporter} A reference to this exporter.
231
+ */
164
232
  unregister( callback ) {
165
233
 
166
234
  if ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {
@@ -174,11 +242,29 @@ class GLTFExporter {
174
242
  }
175
243
 
176
244
  /**
177
- * Parse scenes and generate GLTF output
178
- * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes
179
- * @param {Function} onDone Callback on completed
180
- * @param {Function} onError Callback on errors
181
- * @param {Object} options options
245
+ * Sets the texture utils for this exporter. Only relevant when compressed textures have to be exported.
246
+ *
247
+ * Depending on whether you use {@link WebGLRenderer} or {@link WebGPURenderer}, you must inject the
248
+ * corresponding texture utils {@link WebGLTextureUtils} or {@link WebGPUTextureUtils}.
249
+ *
250
+ * @param {WebGLTextureUtils|WebGPUTextureUtils} utils - The texture utils.
251
+ * @return {GLTFExporter} A reference to this exporter.
252
+ */
253
+ setTextureUtils( utils ) {
254
+
255
+ this.textureUtils = utils;
256
+
257
+ return this;
258
+
259
+ }
260
+
261
+ /**
262
+ * Parses the given scenes and generates the glTF output.
263
+ *
264
+ * @param {Scene|Array<Scene>} input - A scene or an array of scenes.
265
+ * @param {GLTFExporter~OnDone} onDone - A callback function that is executed when the export has finished.
266
+ * @param {GLTFExporter~OnError} onError - A callback function that is executed when an error happens.
267
+ * @param {GLTFExporter~Options} options - options
182
268
  */
183
269
  parse( input, onDone, onError, options ) {
184
270
 
@@ -192,10 +278,18 @@ class GLTFExporter {
192
278
  }
193
279
 
194
280
  writer.setPlugins( plugins );
195
- writer.write( input, onDone, options ).catch( onError );
281
+ writer.setTextureUtils( this.textureUtils );
282
+ writer.writeAsync( input, onDone, options ).catch( onError );
196
283
 
197
284
  }
198
285
 
286
+ /**
287
+ * Async version of {@link GLTFExporter#parse}.
288
+ *
289
+ * @param {Scene|Array<Scene>} input - A scene or an array of scenes.
290
+ * @param {GLTFExporter~Options} options - options.
291
+ * @return {Promise<ArrayBuffer|string>} A Promise that resolved with the exported glTF data.
292
+ */
199
293
  parseAsync( input, options ) {
200
294
 
201
295
  const scope = this;
@@ -287,9 +381,11 @@ const GLB_CHUNK_TYPE_BIN = 0x004E4942;
287
381
 
288
382
  /**
289
383
  * Compare two arrays
290
- * @param {Array} array1 Array 1 to compare
291
- * @param {Array} array2 Array 2 to compare
292
- * @return {Boolean} Returns true if both arrays are equal
384
+ *
385
+ * @private
386
+ * @param {Array} array1 Array 1 to compare
387
+ * @param {Array} array2 Array 2 to compare
388
+ * @return {boolean} Returns true if both arrays are equal
293
389
  */
294
390
  function equalArray( array1, array2 ) {
295
391
 
@@ -303,7 +399,9 @@ function equalArray( array1, array2 ) {
303
399
 
304
400
  /**
305
401
  * Converts a string to an ArrayBuffer.
306
- * @param {string} text
402
+ *
403
+ * @private
404
+ * @param {string} text
307
405
  * @return {ArrayBuffer}
308
406
  */
309
407
  function stringToArrayBuffer( text ) {
@@ -315,8 +413,9 @@ function stringToArrayBuffer( text ) {
315
413
  /**
316
414
  * Is identity matrix
317
415
  *
416
+ * @private
318
417
  * @param {Matrix4} matrix
319
- * @returns {Boolean} Returns true, if parameter is identity matrix
418
+ * @returns {boolean} Returns true, if parameter is identity matrix
320
419
  */
321
420
  function isIdentityMatrix( matrix ) {
322
421
 
@@ -326,9 +425,11 @@ function isIdentityMatrix( matrix ) {
326
425
 
327
426
  /**
328
427
  * Get the min and max vectors from the given attribute
329
- * @param {BufferAttribute} attribute Attribute to find the min/max in range from start to start + count
330
- * @param {Integer} start
331
- * @param {Integer} count
428
+ *
429
+ * @private
430
+ * @param {BufferAttribute} attribute Attribute to find the min/max in range from start to start + count
431
+ * @param {number} start Start index
432
+ * @param {number} count Range to cover
332
433
  * @return {Object} Object containing the `min` and `max` values (As an array of attribute.itemSize components)
333
434
  */
334
435
  function getMinMax( attribute, start, count ) {
@@ -382,8 +483,9 @@ function getMinMax( attribute, start, count ) {
382
483
  * Get the required size + padding for a buffer, rounded to the next 4-byte boundary.
383
484
  * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#data-alignment
384
485
  *
385
- * @param {Integer} bufferSize The size the original buffer.
386
- * @returns {Integer} new buffer size with required padding.
486
+ * @private
487
+ * @param {number} bufferSize The size the original buffer. Should be an integer.
488
+ * @returns {number} new buffer size with required padding as an integer.
387
489
  *
388
490
  */
389
491
  function getPaddedBufferSize( bufferSize ) {
@@ -395,8 +497,9 @@ function getPaddedBufferSize( bufferSize ) {
395
497
  /**
396
498
  * Returns a buffer aligned to 4-byte boundary.
397
499
  *
500
+ * @private
398
501
  * @param {ArrayBuffer} arrayBuffer Buffer to pad
399
- * @param {Integer} paddingByte (Optional)
502
+ * @param {number} [paddingByte=0] Should be an integer
400
503
  * @returns {ArrayBuffer} The same buffer if it's already aligned to 4-byte boundary or a new buffer
401
504
  */
402
505
  function getPaddedArrayBuffer( arrayBuffer, paddingByte = 0 ) {
@@ -440,37 +543,43 @@ function getCanvas() {
440
543
 
441
544
  function getToBlobPromise( canvas, mimeType ) {
442
545
 
443
- if ( canvas.toBlob !== undefined ) {
546
+ if ( typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas ) {
444
547
 
445
- return new Promise( ( resolve ) => canvas.toBlob( resolve, mimeType ) );
548
+ let quality;
446
549
 
447
- }
550
+ // Blink's implementation of convertToBlob seems to default to a quality level of 100%
551
+ // Use the Blink default quality levels of toBlob instead so that file sizes are comparable.
552
+ if ( mimeType === 'image/jpeg' ) {
448
553
 
449
- let quality;
554
+ quality = 0.92;
450
555
 
451
- // Blink's implementation of convertToBlob seems to default to a quality level of 100%
452
- // Use the Blink default quality levels of toBlob instead so that file sizes are comparable.
453
- if ( mimeType === 'image/jpeg' ) {
556
+ } else if ( mimeType === 'image/webp' ) {
454
557
 
455
- quality = 0.92;
558
+ quality = 0.8;
456
559
 
457
- } else if ( mimeType === 'image/webp' ) {
560
+ }
458
561
 
459
- quality = 0.8;
562
+ return canvas.convertToBlob( {
460
563
 
461
- }
564
+ type: mimeType,
565
+ quality: quality
462
566
 
463
- return canvas.convertToBlob( {
567
+ } );
464
568
 
465
- type: mimeType,
466
- quality: quality
569
+ } else {
467
570
 
468
- } );
571
+ // HTMLCanvasElement code path
572
+
573
+ return new Promise( ( resolve ) => canvas.toBlob( resolve, mimeType ) );
574
+
575
+ }
469
576
 
470
577
  }
471
578
 
472
579
  /**
473
580
  * Writer
581
+ *
582
+ * @private
474
583
  */
475
584
  class GLTFWriter {
476
585
 
@@ -496,7 +605,7 @@ class GLTFWriter {
496
605
  this.json = {
497
606
  asset: {
498
607
  version: '2.0',
499
- generator: 'THREE.GLTFExporter'
608
+ generator: 'THREE.GLTFExporter r' + REVISION
500
609
  }
501
610
  };
502
611
 
@@ -509,6 +618,8 @@ class GLTFWriter {
509
618
  images: new Map()
510
619
  };
511
620
 
621
+ this.textureUtils = null;
622
+
512
623
  }
513
624
 
514
625
  setPlugins( plugins ) {
@@ -517,13 +628,20 @@ class GLTFWriter {
517
628
 
518
629
  }
519
630
 
631
+ setTextureUtils( utils ) {
632
+
633
+ this.textureUtils = utils;
634
+
635
+ }
636
+
520
637
  /**
521
638
  * Parse scenes and generate GLTF output
522
- * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes
523
- * @param {Function} onDone Callback on completed
524
- * @param {Object} options options
639
+ *
640
+ * @param {Scene|Array<Scene>} input Scene or Array of THREE.Scenes
641
+ * @param {Function} onDone Callback on completed
642
+ * @param {Object} options options
525
643
  */
526
- async write( input, onDone, options = {} ) {
644
+ async writeAsync( input, onDone, options = {} ) {
527
645
 
528
646
  this.options = Object.assign( {
529
647
  // default options
@@ -542,7 +660,7 @@ class GLTFWriter {
542
660
 
543
661
  }
544
662
 
545
- this.processInput( input );
663
+ await this.processInputAsync( input );
546
664
 
547
665
  await Promise.all( this.pending );
548
666
 
@@ -643,7 +761,7 @@ class GLTFWriter {
643
761
  /**
644
762
  * Serializes a userData.
645
763
  *
646
- * @param {THREE.Object3D|THREE.Material} object
764
+ * @param {THREE.Object3D|THREE.Material|THREE.BufferGeometry|THREE.AnimationClip} object
647
765
  * @param {Object} objectDef
648
766
  */
649
767
  serializeUserData( object, objectDef ) {
@@ -685,8 +803,10 @@ class GLTFWriter {
685
803
 
686
804
  /**
687
805
  * Returns ids for buffer attributes.
688
- * @param {Object} object
689
- * @return {Integer}
806
+ *
807
+ * @param {Object} attribute
808
+ * @param {boolean} [isRelativeCopy=false]
809
+ * @return {number} An integer
690
810
  */
691
811
  getUID( attribute, isRelativeCopy = false ) {
692
812
 
@@ -711,7 +831,7 @@ class GLTFWriter {
711
831
  * Checks if normal attribute values are normalized.
712
832
  *
713
833
  * @param {BufferAttribute} normal
714
- * @returns {Boolean}
834
+ * @returns {boolean}
715
835
  */
716
836
  isNormalizedNormalAttribute( normal ) {
717
837
 
@@ -816,7 +936,7 @@ class GLTFWriter {
816
936
 
817
937
  }
818
938
 
819
- buildMetalRoughTexture( metalnessMap, roughnessMap ) {
939
+ async buildMetalRoughTextureAsync( metalnessMap, roughnessMap ) {
820
940
 
821
941
  if ( metalnessMap === roughnessMap ) return metalnessMap;
822
942
 
@@ -840,17 +960,15 @@ class GLTFWriter {
840
960
 
841
961
  }
842
962
 
843
- console.warn( 'THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures.' );
844
-
845
963
  if ( metalnessMap instanceof CompressedTexture ) {
846
964
 
847
- metalnessMap = decompress( metalnessMap );
965
+ metalnessMap = await this.decompressTextureAsync( metalnessMap );
848
966
 
849
967
  }
850
968
 
851
969
  if ( roughnessMap instanceof CompressedTexture ) {
852
970
 
853
- roughnessMap = decompress( roughnessMap );
971
+ roughnessMap = await this.decompressTextureAsync( roughnessMap );
854
972
 
855
973
  }
856
974
 
@@ -864,7 +982,9 @@ class GLTFWriter {
864
982
  canvas.width = width;
865
983
  canvas.height = height;
866
984
 
867
- const context = canvas.getContext( '2d' );
985
+ const context = canvas.getContext( '2d', {
986
+ willReadFrequently: true,
987
+ } );
868
988
  context.fillStyle = '#00ffff';
869
989
  context.fillRect( 0, 0, width, height );
870
990
 
@@ -918,14 +1038,29 @@ class GLTFWriter {
918
1038
 
919
1039
  }
920
1040
 
1041
+ console.warn( 'THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures.' );
1042
+
921
1043
  return texture;
922
1044
 
923
1045
  }
924
1046
 
1047
+
1048
+ async decompressTextureAsync( texture, maxTextureSize = Infinity ) {
1049
+
1050
+ if ( this.textureUtils === null ) {
1051
+
1052
+ throw new Error( 'THREE.GLTFExporter: setTextureUtils() must be called to process compressed textures.' );
1053
+
1054
+ }
1055
+
1056
+ return await this.textureUtils.decompress( texture, maxTextureSize );
1057
+
1058
+ }
1059
+
925
1060
  /**
926
1061
  * Process a buffer to append to the default one.
927
- * @param {ArrayBuffer} buffer
928
- * @return {Integer}
1062
+ * @param {ArrayBuffer} buffer
1063
+ * @return {0}
929
1064
  */
930
1065
  processBuffer( buffer ) {
931
1066
 
@@ -943,11 +1078,11 @@ class GLTFWriter {
943
1078
 
944
1079
  /**
945
1080
  * Process and generate a BufferView
946
- * @param {BufferAttribute} attribute
947
- * @param {number} componentType
948
- * @param {number} start
949
- * @param {number} count
950
- * @param {number} target (Optional) Target usage of the BufferView
1081
+ * @param {BufferAttribute} attribute
1082
+ * @param {number} componentType
1083
+ * @param {number} start
1084
+ * @param {number} count
1085
+ * @param {number} [target] Target usage of the BufferView
951
1086
  * @return {Object}
952
1087
  */
953
1088
  processBufferView( attribute, componentType, start, count, target ) {
@@ -982,7 +1117,17 @@ class GLTFWriter {
982
1117
 
983
1118
  }
984
1119
 
985
- const byteLength = getPaddedBufferSize( count * attribute.itemSize * componentSize );
1120
+ let byteStride = attribute.itemSize * componentSize;
1121
+
1122
+ if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
1123
+
1124
+ // Each element of a vertex attribute MUST be aligned to 4-byte boundaries
1125
+ // inside a bufferView
1126
+ byteStride = Math.ceil( byteStride / 4 ) * 4;
1127
+
1128
+ }
1129
+
1130
+ const byteLength = getPaddedBufferSize( count * byteStride );
986
1131
  const dataView = new DataView( new ArrayBuffer( byteLength ) );
987
1132
  let offset = 0;
988
1133
 
@@ -1047,6 +1192,12 @@ class GLTFWriter {
1047
1192
 
1048
1193
  }
1049
1194
 
1195
+ if ( ( offset % byteStride ) !== 0 ) {
1196
+
1197
+ offset += byteStride - ( offset % byteStride );
1198
+
1199
+ }
1200
+
1050
1201
  }
1051
1202
 
1052
1203
  const bufferViewDef = {
@@ -1062,7 +1213,7 @@ class GLTFWriter {
1062
1213
  if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
1063
1214
 
1064
1215
  // Only define byteStride for vertex attributes.
1065
- bufferViewDef.byteStride = attribute.itemSize * componentSize;
1216
+ bufferViewDef.byteStride = byteStride;
1066
1217
 
1067
1218
  }
1068
1219
 
@@ -1085,7 +1236,7 @@ class GLTFWriter {
1085
1236
  /**
1086
1237
  * Process and generate a BufferView from an image Blob.
1087
1238
  * @param {Blob} blob
1088
- * @return {Promise<Integer>}
1239
+ * @return {Promise<number>} An integer
1089
1240
  */
1090
1241
  processBufferViewImage( blob ) {
1091
1242
 
@@ -1119,11 +1270,11 @@ class GLTFWriter {
1119
1270
 
1120
1271
  /**
1121
1272
  * Process attribute to generate an accessor
1122
- * @param {BufferAttribute} attribute Attribute to process
1123
- * @param {THREE.BufferGeometry} geometry (Optional) Geometry used for truncated draw range
1124
- * @param {Integer} start (Optional)
1125
- * @param {Integer} count (Optional)
1126
- * @return {Integer|null} Index of the processed accessor on the "accessors" array
1273
+ * @param {BufferAttribute} attribute Attribute to process
1274
+ * @param {?BufferGeometry} [geometry] Geometry used for truncated draw range
1275
+ * @param {number} [start=0]
1276
+ * @param {number} [count=Infinity]
1277
+ * @return {?number} Index of the processed accessor on the "accessors" array
1127
1278
  */
1128
1279
  processAccessor( attribute, geometry, start, count ) {
1129
1280
 
@@ -1217,11 +1368,11 @@ class GLTFWriter {
1217
1368
 
1218
1369
  /**
1219
1370
  * Process image
1220
- * @param {Image} image to process
1221
- * @param {Integer} format of the image (RGBAFormat)
1222
- * @param {Boolean} flipY before writing out the image
1223
- * @param {String} mimeType export format
1224
- * @return {Integer} Index of the processed texture in the "images" array
1371
+ * @param {Image} image to process
1372
+ * @param {number} format Identifier of the format (RGBAFormat)
1373
+ * @param {boolean} flipY before writing out the image
1374
+ * @param {string} mimeType export format
1375
+ * @return {number} Index of the processed texture in the "images" array
1225
1376
  */
1226
1377
  processImage( image, format, flipY, mimeType = 'image/png' ) {
1227
1378
 
@@ -1250,7 +1401,9 @@ class GLTFWriter {
1250
1401
  canvas.width = Math.min( image.width, options.maxTextureSize );
1251
1402
  canvas.height = Math.min( image.height, options.maxTextureSize );
1252
1403
 
1253
- const ctx = canvas.getContext( '2d' );
1404
+ const ctx = canvas.getContext( '2d', {
1405
+ willReadFrequently: true,
1406
+ } );
1254
1407
 
1255
1408
  if ( flipY === true ) {
1256
1409
 
@@ -1288,7 +1441,18 @@ class GLTFWriter {
1288
1441
 
1289
1442
  } else {
1290
1443
 
1291
- ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
1444
+ if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
1445
+ ( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
1446
+ ( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||
1447
+ ( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ) {
1448
+
1449
+ ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
1450
+
1451
+ } else {
1452
+
1453
+ throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.' );
1454
+
1455
+ }
1292
1456
 
1293
1457
  }
1294
1458
 
@@ -1308,25 +1472,7 @@ class GLTFWriter {
1308
1472
 
1309
1473
  } else {
1310
1474
 
1311
- if ( canvas.toDataURL !== undefined ) {
1312
-
1313
- imageDef.uri = canvas.toDataURL( mimeType );
1314
-
1315
- } else {
1316
-
1317
- pending.push(
1318
-
1319
- getToBlobPromise( canvas, mimeType )
1320
- .then( blob => new FileReader().readAsDataURL( blob ) )
1321
- .then( dataURL => {
1322
-
1323
- imageDef.uri = dataURL;
1324
-
1325
- } )
1326
-
1327
- );
1328
-
1329
- }
1475
+ imageDef.uri = ImageUtils.getDataURL( canvas, mimeType );
1330
1476
 
1331
1477
  }
1332
1478
 
@@ -1344,8 +1490,8 @@ class GLTFWriter {
1344
1490
 
1345
1491
  /**
1346
1492
  * Process sampler
1347
- * @param {Texture} map Texture to process
1348
- * @return {Integer} Index of the processed texture in the "samplers" array
1493
+ * @param {Texture} map Texture to process
1494
+ * @return {number} Index of the processed texture in the "samplers" array
1349
1495
  */
1350
1496
  processSampler( map ) {
1351
1497
 
@@ -1366,10 +1512,10 @@ class GLTFWriter {
1366
1512
 
1367
1513
  /**
1368
1514
  * Process texture
1369
- * @param {Texture} map Map to process
1370
- * @return {Integer} Index of the processed texture in the "textures" array
1515
+ * @param {Texture} map Map to process
1516
+ * @return {Promise<number>} Index of the processed texture in the "textures" array
1371
1517
  */
1372
- processTexture( map ) {
1518
+ async processTextureAsync( map ) {
1373
1519
 
1374
1520
  const writer = this;
1375
1521
  const options = writer.options;
@@ -1383,7 +1529,7 @@ class GLTFWriter {
1383
1529
  // make non-readable textures (e.g. CompressedTexture) readable by blitting them into a new texture
1384
1530
  if ( map instanceof CompressedTexture ) {
1385
1531
 
1386
- map = decompress( map, options.maxTextureSize );
1532
+ map = await this.decompressTextureAsync( map, options.maxTextureSize );
1387
1533
 
1388
1534
  }
1389
1535
 
@@ -1398,9 +1544,9 @@ class GLTFWriter {
1398
1544
 
1399
1545
  if ( map.name ) textureDef.name = map.name;
1400
1546
 
1401
- this._invokeAll( function ( ext ) {
1547
+ await this._invokeAllAsync( async function ( ext ) {
1402
1548
 
1403
- ext.writeTexture && ext.writeTexture( map, textureDef );
1549
+ ext.writeTexture && await ext.writeTexture( map, textureDef );
1404
1550
 
1405
1551
  } );
1406
1552
 
@@ -1412,10 +1558,10 @@ class GLTFWriter {
1412
1558
 
1413
1559
  /**
1414
1560
  * Process material
1415
- * @param {THREE.Material} material Material to process
1416
- * @return {Integer|null} Index of the processed material in the "materials" array
1561
+ * @param {THREE.Material} material Material to process
1562
+ * @return {Promise<?number>} Index of the processed material in the "materials" array
1417
1563
  */
1418
- processMaterial( material ) {
1564
+ async processMaterialAsync( material ) {
1419
1565
 
1420
1566
  const cache = this.cache;
1421
1567
  const json = this.json;
@@ -1456,19 +1602,19 @@ class GLTFWriter {
1456
1602
 
1457
1603
  } else {
1458
1604
 
1459
- materialDef.pbrMetallicRoughness.metallicFactor = 0.5;
1460
- materialDef.pbrMetallicRoughness.roughnessFactor = 0.5;
1605
+ materialDef.pbrMetallicRoughness.metallicFactor = 0;
1606
+ materialDef.pbrMetallicRoughness.roughnessFactor = 1;
1461
1607
 
1462
1608
  }
1463
1609
 
1464
1610
  // pbrMetallicRoughness.metallicRoughnessTexture
1465
1611
  if ( material.metalnessMap || material.roughnessMap ) {
1466
1612
 
1467
- const metalRoughTexture = this.buildMetalRoughTexture( material.metalnessMap, material.roughnessMap );
1613
+ const metalRoughTexture = await this.buildMetalRoughTextureAsync( material.metalnessMap, material.roughnessMap );
1468
1614
 
1469
1615
  const metalRoughMapDef = {
1470
- index: this.processTexture( metalRoughTexture ),
1471
- channel: metalRoughTexture.channel
1616
+ index: await this.processTextureAsync( metalRoughTexture ),
1617
+ texCoord: metalRoughTexture.channel
1472
1618
  };
1473
1619
  this.applyTextureTransform( metalRoughMapDef, metalRoughTexture );
1474
1620
  materialDef.pbrMetallicRoughness.metallicRoughnessTexture = metalRoughMapDef;
@@ -1479,7 +1625,7 @@ class GLTFWriter {
1479
1625
  if ( material.map ) {
1480
1626
 
1481
1627
  const baseColorMapDef = {
1482
- index: this.processTexture( material.map ),
1628
+ index: await this.processTextureAsync( material.map ),
1483
1629
  texCoord: material.map.channel
1484
1630
  };
1485
1631
  this.applyTextureTransform( baseColorMapDef, material.map );
@@ -1502,7 +1648,7 @@ class GLTFWriter {
1502
1648
  if ( material.emissiveMap ) {
1503
1649
 
1504
1650
  const emissiveMapDef = {
1505
- index: this.processTexture( material.emissiveMap ),
1651
+ index: await this.processTextureAsync( material.emissiveMap ),
1506
1652
  texCoord: material.emissiveMap.channel
1507
1653
  };
1508
1654
  this.applyTextureTransform( emissiveMapDef, material.emissiveMap );
@@ -1516,7 +1662,7 @@ class GLTFWriter {
1516
1662
  if ( material.normalMap ) {
1517
1663
 
1518
1664
  const normalMapDef = {
1519
- index: this.processTexture( material.normalMap ),
1665
+ index: await this.processTextureAsync( material.normalMap ),
1520
1666
  texCoord: material.normalMap.channel
1521
1667
  };
1522
1668
 
@@ -1537,7 +1683,7 @@ class GLTFWriter {
1537
1683
  if ( material.aoMap ) {
1538
1684
 
1539
1685
  const occlusionMapDef = {
1540
- index: this.processTexture( material.aoMap ),
1686
+ index: await this.processTextureAsync( material.aoMap ),
1541
1687
  texCoord: material.aoMap.channel
1542
1688
  };
1543
1689
 
@@ -1574,9 +1720,9 @@ class GLTFWriter {
1574
1720
 
1575
1721
  this.serializeUserData( material, materialDef );
1576
1722
 
1577
- this._invokeAll( function ( ext ) {
1723
+ await this._invokeAllAsync( async function ( ext ) {
1578
1724
 
1579
- ext.writeMaterial && ext.writeMaterial( material, materialDef );
1725
+ ext.writeMaterialAsync && await ext.writeMaterialAsync( material, materialDef );
1580
1726
 
1581
1727
  } );
1582
1728
 
@@ -1588,10 +1734,10 @@ class GLTFWriter {
1588
1734
 
1589
1735
  /**
1590
1736
  * Process mesh
1591
- * @param {THREE.Mesh} mesh Mesh to process
1592
- * @return {Integer|null} Index of the processed mesh in the "meshes" array
1737
+ * @param {THREE.Mesh} mesh Mesh to process
1738
+ * @return {Promise<?number>} Index of the processed mesh in the "meshes" array
1593
1739
  */
1594
- processMesh( mesh ) {
1740
+ async processMeshAsync( mesh ) {
1595
1741
 
1596
1742
  const cache = this.cache;
1597
1743
  const json = this.json;
@@ -1695,7 +1841,9 @@ class GLTFWriter {
1695
1841
 
1696
1842
  }
1697
1843
 
1698
- // JOINTS_0 must be UNSIGNED_BYTE or UNSIGNED_SHORT.
1844
+ // Enforce glTF vertex attribute requirements:
1845
+ // - JOINTS_0 must be UNSIGNED_BYTE or UNSIGNED_SHORT
1846
+ // - Only custom attributes may be INT or UNSIGNED_INT
1699
1847
  modifiedAttribute = null;
1700
1848
  const array = attribute.array;
1701
1849
 
@@ -1706,6 +1854,11 @@ class GLTFWriter {
1706
1854
  console.warn( 'GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.' );
1707
1855
  modifiedAttribute = new BufferAttribute( new Uint16Array( array ), attribute.itemSize, attribute.normalized );
1708
1856
 
1857
+ } else if ( ( array instanceof Uint32Array || array instanceof Int32Array ) && ! attributeName.startsWith( '_' ) ) {
1858
+
1859
+ console.warn( `GLTFExporter: Attribute "${ attributeName }" converted to type FLOAT.` );
1860
+ modifiedAttribute = GLTFExporter.Utils.toFloat32BufferAttribute( attribute );
1861
+
1709
1862
  }
1710
1863
 
1711
1864
  const accessor = this.processAccessor( modifiedAttribute || attribute, geometry );
@@ -1892,7 +2045,7 @@ class GLTFWriter {
1892
2045
 
1893
2046
  }
1894
2047
 
1895
- const material = this.processMaterial( materials[ groups[ i ].materialIndex ] );
2048
+ const material = await this.processMaterialAsync( materials[ groups[ i ].materialIndex ] );
1896
2049
 
1897
2050
  if ( material !== null ) primitive.material = material;
1898
2051
 
@@ -1910,7 +2063,7 @@ class GLTFWriter {
1910
2063
 
1911
2064
  if ( ! json.meshes ) json.meshes = [];
1912
2065
 
1913
- this._invokeAll( function ( ext ) {
2066
+ await this._invokeAllAsync( function ( ext ) {
1914
2067
 
1915
2068
  ext.writeMesh && ext.writeMesh( mesh, meshDef );
1916
2069
 
@@ -1986,8 +2139,8 @@ class GLTFWriter {
1986
2139
 
1987
2140
  /**
1988
2141
  * Process camera
1989
- * @param {THREE.Camera} camera Camera to process
1990
- * @return {Integer} Index of the processed mesh in the "camera" array
2142
+ * @param {THREE.Camera} camera Camera to process
2143
+ * @return {number} Index of the processed mesh in the "camera" array
1991
2144
  */
1992
2145
  processCamera( camera ) {
1993
2146
 
@@ -2036,7 +2189,7 @@ class GLTFWriter {
2036
2189
  *
2037
2190
  * @param {THREE.AnimationClip} clip
2038
2191
  * @param {THREE.Object3D} root
2039
- * @return {number|null}
2192
+ * @return {?number}
2040
2193
  */
2041
2194
  processAnimation( clip, root ) {
2042
2195
 
@@ -2075,7 +2228,7 @@ class GLTFWriter {
2075
2228
  if ( ! trackNode || ! trackProperty ) {
2076
2229
 
2077
2230
  console.warn( 'THREE.GLTFExporter: Could not export animation track "%s".', track.name );
2078
- return null;
2231
+ continue;
2079
2232
 
2080
2233
  }
2081
2234
 
@@ -2130,11 +2283,15 @@ class GLTFWriter {
2130
2283
 
2131
2284
  }
2132
2285
 
2133
- json.animations.push( {
2286
+ const animationDef = {
2134
2287
  name: clip.name || 'clip_' + json.animations.length,
2135
2288
  samplers: samplers,
2136
2289
  channels: channels
2137
- } );
2290
+ };
2291
+
2292
+ this.serializeUserData( clip, animationDef );
2293
+
2294
+ json.animations.push( animationDef );
2138
2295
 
2139
2296
  return json.animations.length - 1;
2140
2297
 
@@ -2142,7 +2299,7 @@ class GLTFWriter {
2142
2299
 
2143
2300
  /**
2144
2301
  * @param {THREE.Object3D} object
2145
- * @return {number|null}
2302
+ * @return {?number}
2146
2303
  */
2147
2304
  processSkin( object ) {
2148
2305
 
@@ -2187,10 +2344,10 @@ class GLTFWriter {
2187
2344
 
2188
2345
  /**
2189
2346
  * Process Object3D node
2190
- * @param {THREE.Object3D} node Object3D to processNode
2191
- * @return {Integer} Index of the node in the nodes list
2347
+ * @param {THREE.Object3D} object Object3D to processNodeAsync
2348
+ * @return {Promise<number>} Index of the node in the nodes list
2192
2349
  */
2193
- processNode( object ) {
2350
+ async processNodeAsync( object ) {
2194
2351
 
2195
2352
  const json = this.json;
2196
2353
  const options = this.options;
@@ -2247,7 +2404,7 @@ class GLTFWriter {
2247
2404
 
2248
2405
  if ( object.isMesh || object.isLine || object.isPoints ) {
2249
2406
 
2250
- const meshIndex = this.processMesh( object );
2407
+ const meshIndex = await this.processMeshAsync( object );
2251
2408
 
2252
2409
  if ( meshIndex !== null ) nodeDef.mesh = meshIndex;
2253
2410
 
@@ -2259,6 +2416,9 @@ class GLTFWriter {
2259
2416
 
2260
2417
  if ( object.isSkinnedMesh ) this.skins.push( object );
2261
2418
 
2419
+ const nodeIndex = json.nodes.push( nodeDef ) - 1;
2420
+ nodeMap.set( object, nodeIndex );
2421
+
2262
2422
  if ( object.children.length > 0 ) {
2263
2423
 
2264
2424
  const children = [];
@@ -2269,9 +2429,9 @@ class GLTFWriter {
2269
2429
 
2270
2430
  if ( child.visible || options.onlyVisible === false ) {
2271
2431
 
2272
- const nodeIndex = this.processNode( child );
2432
+ const childNodeIndex = await this.processNodeAsync( child );
2273
2433
 
2274
- if ( nodeIndex !== null ) children.push( nodeIndex );
2434
+ if ( childNodeIndex !== null ) children.push( childNodeIndex );
2275
2435
 
2276
2436
  }
2277
2437
 
@@ -2281,23 +2441,21 @@ class GLTFWriter {
2281
2441
 
2282
2442
  }
2283
2443
 
2284
- this._invokeAll( function ( ext ) {
2444
+ await this._invokeAllAsync( function ( ext ) {
2285
2445
 
2286
2446
  ext.writeNode && ext.writeNode( object, nodeDef );
2287
2447
 
2288
2448
  } );
2289
2449
 
2290
- const nodeIndex = json.nodes.push( nodeDef ) - 1;
2291
- nodeMap.set( object, nodeIndex );
2292
2450
  return nodeIndex;
2293
2451
 
2294
2452
  }
2295
2453
 
2296
2454
  /**
2297
2455
  * Process Scene
2298
- * @param {Scene} node Scene to process
2456
+ * @param {Scene} scene Scene to process
2299
2457
  */
2300
- processScene( scene ) {
2458
+ async processSceneAsync( scene ) {
2301
2459
 
2302
2460
  const json = this.json;
2303
2461
  const options = this.options;
@@ -2323,7 +2481,7 @@ class GLTFWriter {
2323
2481
 
2324
2482
  if ( child.visible || options.onlyVisible === false ) {
2325
2483
 
2326
- const nodeIndex = this.processNode( child );
2484
+ const nodeIndex = await this.processNodeAsync( child );
2327
2485
 
2328
2486
  if ( nodeIndex !== null ) nodes.push( nodeIndex );
2329
2487
 
@@ -2339,9 +2497,9 @@ class GLTFWriter {
2339
2497
 
2340
2498
  /**
2341
2499
  * Creates a Scene to hold a list of objects and parse it
2342
- * @param {Array} objects List of objects to process
2500
+ * @param {Array<THREE.Object3D>} objects List of objects to process
2343
2501
  */
2344
- processObjects( objects ) {
2502
+ async processObjectsAsync( objects ) {
2345
2503
 
2346
2504
  const scene = new Scene();
2347
2505
  scene.name = 'AuxScene';
@@ -2354,20 +2512,20 @@ class GLTFWriter {
2354
2512
 
2355
2513
  }
2356
2514
 
2357
- this.processScene( scene );
2515
+ await this.processSceneAsync( scene );
2358
2516
 
2359
2517
  }
2360
2518
 
2361
2519
  /**
2362
2520
  * @param {THREE.Object3D|Array<THREE.Object3D>} input
2363
2521
  */
2364
- processInput( input ) {
2522
+ async processInputAsync( input ) {
2365
2523
 
2366
2524
  const options = this.options;
2367
2525
 
2368
2526
  input = input instanceof Array ? input : [ input ];
2369
2527
 
2370
- this._invokeAll( function ( ext ) {
2528
+ await this._invokeAllAsync( function ( ext ) {
2371
2529
 
2372
2530
  ext.beforeParse && ext.beforeParse( input );
2373
2531
 
@@ -2379,7 +2537,7 @@ class GLTFWriter {
2379
2537
 
2380
2538
  if ( input[ i ] instanceof Scene ) {
2381
2539
 
2382
- this.processScene( input[ i ] );
2540
+ await this.processSceneAsync( input[ i ] );
2383
2541
 
2384
2542
  } else {
2385
2543
 
@@ -2389,7 +2547,11 @@ class GLTFWriter {
2389
2547
 
2390
2548
  }
2391
2549
 
2392
- if ( objectsWithoutScene.length > 0 ) this.processObjects( objectsWithoutScene );
2550
+ if ( objectsWithoutScene.length > 0 ) {
2551
+
2552
+ await this.processObjectsAsync( objectsWithoutScene );
2553
+
2554
+ }
2393
2555
 
2394
2556
  for ( let i = 0; i < this.skins.length; ++ i ) {
2395
2557
 
@@ -2403,7 +2565,7 @@ class GLTFWriter {
2403
2565
 
2404
2566
  }
2405
2567
 
2406
- this._invokeAll( function ( ext ) {
2568
+ await this._invokeAllAsync( function ( ext ) {
2407
2569
 
2408
2570
  ext.afterParse && ext.afterParse( input );
2409
2571
 
@@ -2411,11 +2573,11 @@ class GLTFWriter {
2411
2573
 
2412
2574
  }
2413
2575
 
2414
- _invokeAll( func ) {
2576
+ async _invokeAllAsync( func ) {
2415
2577
 
2416
2578
  for ( let i = 0, il = this.plugins.length; i < il; i ++ ) {
2417
2579
 
2418
- func( this.plugins[ i ] );
2580
+ await func( this.plugins[ i ] );
2419
2581
 
2420
2582
  }
2421
2583
 
@@ -2427,6 +2589,8 @@ class GLTFWriter {
2427
2589
  * Punctual Lights Extension
2428
2590
  *
2429
2591
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual
2592
+ *
2593
+ * @private
2430
2594
  */
2431
2595
  class GLTFLightExtension {
2432
2596
 
@@ -2522,6 +2686,8 @@ class GLTFLightExtension {
2522
2686
  * Unlit Materials Extension
2523
2687
  *
2524
2688
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit
2689
+ *
2690
+ * @private
2525
2691
  */
2526
2692
  class GLTFMaterialsUnlitExtension {
2527
2693
 
@@ -2532,7 +2698,7 @@ class GLTFMaterialsUnlitExtension {
2532
2698
 
2533
2699
  }
2534
2700
 
2535
- writeMaterial( material, materialDef ) {
2701
+ async writeMaterialAsync( material, materialDef ) {
2536
2702
 
2537
2703
  if ( ! material.isMeshBasicMaterial ) return;
2538
2704
 
@@ -2555,6 +2721,8 @@ class GLTFMaterialsUnlitExtension {
2555
2721
  * Clearcoat Materials Extension
2556
2722
  *
2557
2723
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat
2724
+ *
2725
+ * @private
2558
2726
  */
2559
2727
  class GLTFMaterialsClearcoatExtension {
2560
2728
 
@@ -2565,7 +2733,7 @@ class GLTFMaterialsClearcoatExtension {
2565
2733
 
2566
2734
  }
2567
2735
 
2568
- writeMaterial( material, materialDef ) {
2736
+ async writeMaterialAsync( material, materialDef ) {
2569
2737
 
2570
2738
  if ( ! material.isMeshPhysicalMaterial || material.clearcoat === 0 ) return;
2571
2739
 
@@ -2579,7 +2747,7 @@ class GLTFMaterialsClearcoatExtension {
2579
2747
  if ( material.clearcoatMap ) {
2580
2748
 
2581
2749
  const clearcoatMapDef = {
2582
- index: writer.processTexture( material.clearcoatMap ),
2750
+ index: await writer.processTextureAsync( material.clearcoatMap ),
2583
2751
  texCoord: material.clearcoatMap.channel
2584
2752
  };
2585
2753
  writer.applyTextureTransform( clearcoatMapDef, material.clearcoatMap );
@@ -2592,7 +2760,7 @@ class GLTFMaterialsClearcoatExtension {
2592
2760
  if ( material.clearcoatRoughnessMap ) {
2593
2761
 
2594
2762
  const clearcoatRoughnessMapDef = {
2595
- index: writer.processTexture( material.clearcoatRoughnessMap ),
2763
+ index: await writer.processTextureAsync( material.clearcoatRoughnessMap ),
2596
2764
  texCoord: material.clearcoatRoughnessMap.channel
2597
2765
  };
2598
2766
  writer.applyTextureTransform( clearcoatRoughnessMapDef, material.clearcoatRoughnessMap );
@@ -2603,9 +2771,12 @@ class GLTFMaterialsClearcoatExtension {
2603
2771
  if ( material.clearcoatNormalMap ) {
2604
2772
 
2605
2773
  const clearcoatNormalMapDef = {
2606
- index: writer.processTexture( material.clearcoatNormalMap ),
2774
+ index: await writer.processTextureAsync( material.clearcoatNormalMap ),
2607
2775
  texCoord: material.clearcoatNormalMap.channel
2608
2776
  };
2777
+
2778
+ if ( material.clearcoatNormalScale.x !== 1 ) clearcoatNormalMapDef.scale = material.clearcoatNormalScale.x;
2779
+
2609
2780
  writer.applyTextureTransform( clearcoatNormalMapDef, material.clearcoatNormalMap );
2610
2781
  extensionDef.clearcoatNormalTexture = clearcoatNormalMapDef;
2611
2782
 
@@ -2621,10 +2792,48 @@ class GLTFMaterialsClearcoatExtension {
2621
2792
 
2622
2793
  }
2623
2794
 
2795
+ /**
2796
+ * Materials dispersion Extension
2797
+ *
2798
+ * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_dispersion
2799
+ *
2800
+ * @private
2801
+ */
2802
+ class GLTFMaterialsDispersionExtension {
2803
+
2804
+ constructor( writer ) {
2805
+
2806
+ this.writer = writer;
2807
+ this.name = 'KHR_materials_dispersion';
2808
+
2809
+ }
2810
+
2811
+ async writeMaterialAsync( material, materialDef ) {
2812
+
2813
+ if ( ! material.isMeshPhysicalMaterial || material.dispersion === 0 ) return;
2814
+
2815
+ const writer = this.writer;
2816
+ const extensionsUsed = writer.extensionsUsed;
2817
+
2818
+ const extensionDef = {};
2819
+
2820
+ extensionDef.dispersion = material.dispersion;
2821
+
2822
+ materialDef.extensions = materialDef.extensions || {};
2823
+ materialDef.extensions[ this.name ] = extensionDef;
2824
+
2825
+ extensionsUsed[ this.name ] = true;
2826
+
2827
+ }
2828
+
2829
+ }
2830
+
2624
2831
  /**
2625
2832
  * Iridescence Materials Extension
2626
2833
  *
2627
2834
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence
2835
+ *
2836
+ * @private
2628
2837
  */
2629
2838
  class GLTFMaterialsIridescenceExtension {
2630
2839
 
@@ -2635,7 +2844,7 @@ class GLTFMaterialsIridescenceExtension {
2635
2844
 
2636
2845
  }
2637
2846
 
2638
- writeMaterial( material, materialDef ) {
2847
+ async writeMaterialAsync( material, materialDef ) {
2639
2848
 
2640
2849
  if ( ! material.isMeshPhysicalMaterial || material.iridescence === 0 ) return;
2641
2850
 
@@ -2649,7 +2858,7 @@ class GLTFMaterialsIridescenceExtension {
2649
2858
  if ( material.iridescenceMap ) {
2650
2859
 
2651
2860
  const iridescenceMapDef = {
2652
- index: writer.processTexture( material.iridescenceMap ),
2861
+ index: await writer.processTextureAsync( material.iridescenceMap ),
2653
2862
  texCoord: material.iridescenceMap.channel
2654
2863
  };
2655
2864
  writer.applyTextureTransform( iridescenceMapDef, material.iridescenceMap );
@@ -2664,7 +2873,7 @@ class GLTFMaterialsIridescenceExtension {
2664
2873
  if ( material.iridescenceThicknessMap ) {
2665
2874
 
2666
2875
  const iridescenceThicknessMapDef = {
2667
- index: writer.processTexture( material.iridescenceThicknessMap ),
2876
+ index: await writer.processTextureAsync( material.iridescenceThicknessMap ),
2668
2877
  texCoord: material.iridescenceThicknessMap.channel
2669
2878
  };
2670
2879
  writer.applyTextureTransform( iridescenceThicknessMapDef, material.iridescenceThicknessMap );
@@ -2685,6 +2894,8 @@ class GLTFMaterialsIridescenceExtension {
2685
2894
  * Transmission Materials Extension
2686
2895
  *
2687
2896
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission
2897
+ *
2898
+ * @private
2688
2899
  */
2689
2900
  class GLTFMaterialsTransmissionExtension {
2690
2901
 
@@ -2695,7 +2906,7 @@ class GLTFMaterialsTransmissionExtension {
2695
2906
 
2696
2907
  }
2697
2908
 
2698
- writeMaterial( material, materialDef ) {
2909
+ async writeMaterialAsync( material, materialDef ) {
2699
2910
 
2700
2911
  if ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return;
2701
2912
 
@@ -2709,7 +2920,7 @@ class GLTFMaterialsTransmissionExtension {
2709
2920
  if ( material.transmissionMap ) {
2710
2921
 
2711
2922
  const transmissionMapDef = {
2712
- index: writer.processTexture( material.transmissionMap ),
2923
+ index: await writer.processTextureAsync( material.transmissionMap ),
2713
2924
  texCoord: material.transmissionMap.channel
2714
2925
  };
2715
2926
  writer.applyTextureTransform( transmissionMapDef, material.transmissionMap );
@@ -2730,6 +2941,8 @@ class GLTFMaterialsTransmissionExtension {
2730
2941
  * Materials Volume Extension
2731
2942
  *
2732
2943
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume
2944
+ *
2945
+ * @private
2733
2946
  */
2734
2947
  class GLTFMaterialsVolumeExtension {
2735
2948
 
@@ -2740,7 +2953,7 @@ class GLTFMaterialsVolumeExtension {
2740
2953
 
2741
2954
  }
2742
2955
 
2743
- writeMaterial( material, materialDef ) {
2956
+ async writeMaterialAsync( material, materialDef ) {
2744
2957
 
2745
2958
  if ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return;
2746
2959
 
@@ -2754,7 +2967,7 @@ class GLTFMaterialsVolumeExtension {
2754
2967
  if ( material.thicknessMap ) {
2755
2968
 
2756
2969
  const thicknessMapDef = {
2757
- index: writer.processTexture( material.thicknessMap ),
2970
+ index: await writer.processTextureAsync( material.thicknessMap ),
2758
2971
  texCoord: material.thicknessMap.channel
2759
2972
  };
2760
2973
  writer.applyTextureTransform( thicknessMapDef, material.thicknessMap );
@@ -2762,7 +2975,12 @@ class GLTFMaterialsVolumeExtension {
2762
2975
 
2763
2976
  }
2764
2977
 
2765
- extensionDef.attenuationDistance = material.attenuationDistance;
2978
+ if ( material.attenuationDistance !== Infinity ) {
2979
+
2980
+ extensionDef.attenuationDistance = material.attenuationDistance;
2981
+
2982
+ }
2983
+
2766
2984
  extensionDef.attenuationColor = material.attenuationColor.toArray();
2767
2985
 
2768
2986
  materialDef.extensions = materialDef.extensions || {};
@@ -2778,6 +2996,8 @@ class GLTFMaterialsVolumeExtension {
2778
2996
  * Materials ior Extension
2779
2997
  *
2780
2998
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior
2999
+ *
3000
+ * @private
2781
3001
  */
2782
3002
  class GLTFMaterialsIorExtension {
2783
3003
 
@@ -2788,7 +3008,7 @@ class GLTFMaterialsIorExtension {
2788
3008
 
2789
3009
  }
2790
3010
 
2791
- writeMaterial( material, materialDef ) {
3011
+ async writeMaterialAsync( material, materialDef ) {
2792
3012
 
2793
3013
  if ( ! material.isMeshPhysicalMaterial || material.ior === 1.5 ) return;
2794
3014
 
@@ -2812,6 +3032,8 @@ class GLTFMaterialsIorExtension {
2812
3032
  * Materials specular Extension
2813
3033
  *
2814
3034
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular
3035
+ *
3036
+ * @private
2815
3037
  */
2816
3038
  class GLTFMaterialsSpecularExtension {
2817
3039
 
@@ -2822,7 +3044,7 @@ class GLTFMaterialsSpecularExtension {
2822
3044
 
2823
3045
  }
2824
3046
 
2825
- writeMaterial( material, materialDef ) {
3047
+ async writeMaterialAsync( material, materialDef ) {
2826
3048
 
2827
3049
  if ( ! material.isMeshPhysicalMaterial || ( material.specularIntensity === 1.0 &&
2828
3050
  material.specularColor.equals( DEFAULT_SPECULAR_COLOR ) &&
@@ -2836,7 +3058,7 @@ class GLTFMaterialsSpecularExtension {
2836
3058
  if ( material.specularIntensityMap ) {
2837
3059
 
2838
3060
  const specularIntensityMapDef = {
2839
- index: writer.processTexture( material.specularIntensityMap ),
3061
+ index: await writer.processTextureAsync( material.specularIntensityMap ),
2840
3062
  texCoord: material.specularIntensityMap.channel
2841
3063
  };
2842
3064
  writer.applyTextureTransform( specularIntensityMapDef, material.specularIntensityMap );
@@ -2847,7 +3069,7 @@ class GLTFMaterialsSpecularExtension {
2847
3069
  if ( material.specularColorMap ) {
2848
3070
 
2849
3071
  const specularColorMapDef = {
2850
- index: writer.processTexture( material.specularColorMap ),
3072
+ index: await writer.processTextureAsync( material.specularColorMap ),
2851
3073
  texCoord: material.specularColorMap.channel
2852
3074
  };
2853
3075
  writer.applyTextureTransform( specularColorMapDef, material.specularColorMap );
@@ -2871,6 +3093,8 @@ class GLTFMaterialsSpecularExtension {
2871
3093
  * Sheen Materials Extension
2872
3094
  *
2873
3095
  * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen
3096
+ *
3097
+ * @private
2874
3098
  */
2875
3099
  class GLTFMaterialsSheenExtension {
2876
3100
 
@@ -2881,7 +3105,7 @@ class GLTFMaterialsSheenExtension {
2881
3105
 
2882
3106
  }
2883
3107
 
2884
- writeMaterial( material, materialDef ) {
3108
+ async writeMaterialAsync( material, materialDef ) {
2885
3109
 
2886
3110
  if ( ! material.isMeshPhysicalMaterial || material.sheen == 0.0 ) return;
2887
3111
 
@@ -2893,7 +3117,7 @@ class GLTFMaterialsSheenExtension {
2893
3117
  if ( material.sheenRoughnessMap ) {
2894
3118
 
2895
3119
  const sheenRoughnessMapDef = {
2896
- index: writer.processTexture( material.sheenRoughnessMap ),
3120
+ index: await writer.processTextureAsync( material.sheenRoughnessMap ),
2897
3121
  texCoord: material.sheenRoughnessMap.channel
2898
3122
  };
2899
3123
  writer.applyTextureTransform( sheenRoughnessMapDef, material.sheenRoughnessMap );
@@ -2904,7 +3128,7 @@ class GLTFMaterialsSheenExtension {
2904
3128
  if ( material.sheenColorMap ) {
2905
3129
 
2906
3130
  const sheenColorMapDef = {
2907
- index: writer.processTexture( material.sheenColorMap ),
3131
+ index: await writer.processTextureAsync( material.sheenColorMap ),
2908
3132
  texCoord: material.sheenColorMap.channel
2909
3133
  };
2910
3134
  writer.applyTextureTransform( sheenColorMapDef, material.sheenColorMap );
@@ -2928,6 +3152,8 @@ class GLTFMaterialsSheenExtension {
2928
3152
  * Anisotropy Materials Extension
2929
3153
  *
2930
3154
  * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_anisotropy
3155
+ *
3156
+ * @private
2931
3157
  */
2932
3158
  class GLTFMaterialsAnisotropyExtension {
2933
3159
 
@@ -2938,7 +3164,7 @@ class GLTFMaterialsAnisotropyExtension {
2938
3164
 
2939
3165
  }
2940
3166
 
2941
- writeMaterial( material, materialDef ) {
3167
+ async writeMaterialAsync( material, materialDef ) {
2942
3168
 
2943
3169
  if ( ! material.isMeshPhysicalMaterial || material.anisotropy == 0.0 ) return;
2944
3170
 
@@ -2949,7 +3175,7 @@ class GLTFMaterialsAnisotropyExtension {
2949
3175
 
2950
3176
  if ( material.anisotropyMap ) {
2951
3177
 
2952
- const anisotropyMapDef = { index: writer.processTexture( material.anisotropyMap ) };
3178
+ const anisotropyMapDef = { index: await writer.processTextureAsync( material.anisotropyMap ) };
2953
3179
  writer.applyTextureTransform( anisotropyMapDef, material.anisotropyMap );
2954
3180
  extensionDef.anisotropyTexture = anisotropyMapDef;
2955
3181
 
@@ -2971,6 +3197,8 @@ class GLTFMaterialsAnisotropyExtension {
2971
3197
  * Materials Emissive Strength Extension
2972
3198
  *
2973
3199
  * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md
3200
+ *
3201
+ * @private
2974
3202
  */
2975
3203
  class GLTFMaterialsEmissiveStrengthExtension {
2976
3204
 
@@ -2981,7 +3209,7 @@ class GLTFMaterialsEmissiveStrengthExtension {
2981
3209
 
2982
3210
  }
2983
3211
 
2984
- writeMaterial( material, materialDef ) {
3212
+ async writeMaterialAsync( material, materialDef ) {
2985
3213
 
2986
3214
  if ( ! material.isMeshStandardMaterial || material.emissiveIntensity === 1.0 ) return;
2987
3215
 
@@ -3006,6 +3234,8 @@ class GLTFMaterialsEmissiveStrengthExtension {
3006
3234
  * Materials bump Extension
3007
3235
  *
3008
3236
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_materials_bump
3237
+ *
3238
+ * @private
3009
3239
  */
3010
3240
  class GLTFMaterialsBumpExtension {
3011
3241
 
@@ -3016,7 +3246,7 @@ class GLTFMaterialsBumpExtension {
3016
3246
 
3017
3247
  }
3018
3248
 
3019
- writeMaterial( material, materialDef ) {
3249
+ async writeMaterialAsync( material, materialDef ) {
3020
3250
 
3021
3251
  if ( ! material.isMeshStandardMaterial || (
3022
3252
  material.bumpScale === 1 &&
@@ -3030,7 +3260,7 @@ class GLTFMaterialsBumpExtension {
3030
3260
  if ( material.bumpMap ) {
3031
3261
 
3032
3262
  const bumpMapDef = {
3033
- index: writer.processTexture( material.bumpMap ),
3263
+ index: await writer.processTextureAsync( material.bumpMap ),
3034
3264
  texCoord: material.bumpMap.channel
3035
3265
  };
3036
3266
  writer.applyTextureTransform( bumpMapDef, material.bumpMap );
@@ -3053,6 +3283,8 @@ class GLTFMaterialsBumpExtension {
3053
3283
  * GPU Instancing Extension
3054
3284
  *
3055
3285
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing
3286
+ *
3287
+ * @private
3056
3288
  */
3057
3289
  class GLTFMeshGpuInstancing {
3058
3290
 
@@ -3112,6 +3344,8 @@ class GLTFMeshGpuInstancing {
3112
3344
 
3113
3345
  /**
3114
3346
  * Static utility functions
3347
+ *
3348
+ * @private
3115
3349
  */
3116
3350
  GLTFExporter.Utils = {
3117
3351
 
@@ -3302,8 +3536,60 @@ GLTFExporter.Utils = {
3302
3536
 
3303
3537
  return clip;
3304
3538
 
3539
+ },
3540
+
3541
+ toFloat32BufferAttribute: function ( srcAttribute ) {
3542
+
3543
+ const dstAttribute = new BufferAttribute( new Float32Array( srcAttribute.count * srcAttribute.itemSize ), srcAttribute.itemSize, false );
3544
+
3545
+ if ( ! srcAttribute.normalized && ! srcAttribute.isInterleavedBufferAttribute ) {
3546
+
3547
+ dstAttribute.array.set( srcAttribute.array );
3548
+
3549
+ return dstAttribute;
3550
+
3551
+ }
3552
+
3553
+ for ( let i = 0, il = srcAttribute.count; i < il; i ++ ) {
3554
+
3555
+ for ( let j = 0; j < srcAttribute.itemSize; j ++ ) {
3556
+
3557
+ dstAttribute.setComponent( i, j, srcAttribute.getComponent( i, j ) );
3558
+
3559
+ }
3560
+
3561
+ }
3562
+
3563
+ return dstAttribute;
3564
+
3305
3565
  }
3306
3566
 
3307
3567
  };
3308
3568
 
3569
+ /**
3570
+ * Export options of `GLTFExporter`.
3571
+ *
3572
+ * @typedef {Object} GLTFExporter~Options
3573
+ * @property {boolean} [trs=false] - Export position, rotation and scale instead of matrix per node.
3574
+ * @property {boolean} [onlyVisible=true] - Export only visible 3D objects.
3575
+ * @property {boolean} [binary=false] - Export in binary (.glb) format, returning an ArrayBuffer.
3576
+ * @property {number} [maxTextureSize=Infinity] - Restricts the image maximum size (both width and height) to the given value.
3577
+ * @property {Array<AnimationClip>} [animations=[]] - List of animations to be included in the export.
3578
+ * @property {boolean} [includeCustomExtensions=false] - Export custom glTF extensions defined on an object's `userData.gltfExtensions` property.
3579
+ **/
3580
+
3581
+ /**
3582
+ * onDone callback of `GLTFExporter`.
3583
+ *
3584
+ * @callback GLTFExporter~OnDone
3585
+ * @param {ArrayBuffer|string} result - The generated .gltf (JSON) or .glb (binary).
3586
+ */
3587
+
3588
+ /**
3589
+ * onError callback of `GLTFExporter`.
3590
+ *
3591
+ * @callback GLTFExporter~OnError
3592
+ * @param {Error} error - The error object.
3593
+ */
3594
+
3309
3595
  export { GLTFExporter };