three-stdlib 2.15.2 → 2.16.1

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 (1218) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +275 -207
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.js +152 -82
  25. package/controls/OrbitControls.cjs.js +1 -0
  26. package/controls/OrbitControls.js +481 -232
  27. package/controls/PointerLockControls.cjs.js +1 -0
  28. package/controls/PointerLockControls.js +99 -63
  29. package/controls/TrackballControls.cjs.js +1 -0
  30. package/controls/TrackballControls.js +383 -211
  31. package/controls/TransformControls.cjs.js +1 -0
  32. package/controls/TransformControls.js +782 -575
  33. package/controls/experimental/CameraControls.cjs.js +1 -0
  34. package/controls/experimental/CameraControls.js +609 -329
  35. package/csm/CSM.cjs.js +1 -0
  36. package/csm/CSM.js +108 -47
  37. package/csm/CSMFrustum.cjs.js +1 -0
  38. package/csm/CSMFrustum.js +29 -14
  39. package/csm/CSMHelper.cjs.js +1 -0
  40. package/csm/CSMHelper.js +34 -20
  41. package/csm/CSMShader.cjs.js +1 -0
  42. package/csm/CSMShader.js +11 -7
  43. package/curves/CurveExtras.cjs.js +1 -0
  44. package/curves/CurveExtras.js +115 -73
  45. package/curves/NURBSCurve.cjs.js +1 -0
  46. package/curves/NURBSCurve.js +43 -15
  47. package/curves/NURBSSurface.cjs.js +1 -0
  48. package/curves/NURBSSurface.js +27 -11
  49. package/curves/NURBSUtils.cjs.js +1 -0
  50. package/curves/NURBSUtils.js +203 -54
  51. package/custom.d.cjs.js +1 -0
  52. package/{shaders/types.mjs → custom.d.js} +0 -0
  53. package/deprecated/Geometry.cjs.js +1 -0
  54. package/deprecated/Geometry.js +486 -191
  55. package/effects/AnaglyphEffect.cjs.js +1 -0
  56. package/effects/AnaglyphEffect.js +60 -95
  57. package/effects/AsciiEffect.cjs.js +1 -0
  58. package/effects/AsciiEffect.js +110 -80
  59. package/effects/OutlineEffect.cjs.js +1 -0
  60. package/effects/OutlineEffect.js +204 -121
  61. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  62. package/effects/ParallaxBarrierEffect.js +38 -39
  63. package/effects/PeppersGhostEffect.cjs.js +1 -0
  64. package/effects/PeppersGhostEffect.js +68 -19
  65. package/effects/StereoEffect.cjs.js +1 -0
  66. package/effects/StereoEffect.js +16 -12
  67. package/environments/RoomEnvironment.cjs.js +1 -0
  68. package/environments/RoomEnvironment.js +47 -52
  69. package/exporters/ColladaExporter.cjs.js +1 -0
  70. package/exporters/ColladaExporter.js +241 -115
  71. package/exporters/DRACOExporter.cjs.js +1 -0
  72. package/exporters/DRACOExporter.js +121 -67
  73. package/exporters/GLTFExporter.cjs.js +1 -0
  74. package/exporters/GLTFExporter.js +1014 -463
  75. package/exporters/MMDExporter.cjs.js +1 -0
  76. package/exporters/MMDExporter.js +102 -44
  77. package/exporters/OBJExporter.cjs.js +1 -0
  78. package/exporters/OBJExporter.js +140 -78
  79. package/exporters/PLYExporter.cjs.js +1 -0
  80. package/exporters/PLYExporter.js +154 -93
  81. package/exporters/STLExporter.cjs.js +1 -0
  82. package/exporters/STLExporter.js +81 -30
  83. package/exporters/USDZExporter.cjs.js +1 -0
  84. package/exporters/USDZExporter.js +144 -84
  85. package/geometries/BoxLineGeometry.cjs.js +1 -0
  86. package/geometries/BoxLineGeometry.js +14 -7
  87. package/geometries/ConvexGeometry.cjs.js +1 -0
  88. package/geometries/ConvexGeometry.js +23 -14
  89. package/geometries/DecalGeometry.cjs.js +1 -0
  90. package/geometries/DecalGeometry.js +162 -108
  91. package/geometries/LightningStrike.cjs.js +1 -0
  92. package/geometries/LightningStrike.js +294 -101
  93. package/geometries/ParametricGeometries.cjs.js +1 -0
  94. package/geometries/ParametricGeometries.js +76 -26
  95. package/geometries/ParametricGeometry.cjs.js +1 -0
  96. package/geometries/ParametricGeometry.js +48 -24
  97. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  98. package/geometries/RoundedBoxGeometry.js +64 -33
  99. package/geometries/TeapotGeometry.cjs.js +1 -0
  100. package/geometries/TeapotGeometry.js +174 -1434
  101. package/geometries/TextGeometry.cjs.js +1 -0
  102. package/geometries/TextGeometry.js +17 -9
  103. package/helpers/LightProbeHelper.cjs.js +1 -0
  104. package/helpers/LightProbeHelper.js +21 -53
  105. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  106. package/helpers/PositionalAudioHelper.js +30 -23
  107. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  108. package/helpers/RectAreaLightHelper.js +33 -17
  109. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  110. package/helpers/VertexNormalsHelper.js +41 -20
  111. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  112. package/helpers/VertexTangentsHelper.js +36 -18
  113. package/index.cjs.js +1 -0
  114. package/index.js +333 -968
  115. package/interactive/InteractiveGroup.cjs.js +1 -0
  116. package/interactive/InteractiveGroup.d.ts +5 -0
  117. package/interactive/InteractiveGroup.js +87 -0
  118. package/interactive/SelectionBox.cjs.js +1 -0
  119. package/interactive/SelectionBox.js +46 -31
  120. package/interactive/SelectionHelper.cjs.js +1 -0
  121. package/interactive/SelectionHelper.js +21 -16
  122. package/libs/MeshoptDecoder.cjs.js +1 -0
  123. package/libs/MeshoptDecoder.js +58 -147
  124. package/libs/MotionControllers.cjs.js +1 -0
  125. package/libs/MotionControllers.js +208 -66
  126. package/lights/LightProbeGenerator.cjs.js +1 -0
  127. package/lights/LightProbeGenerator.js +96 -40
  128. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  129. package/lights/RectAreaLightUniformsLib.js +9 -32842
  130. package/lines/Line2.cjs.js +1 -0
  131. package/lines/Line2.js +12 -9
  132. package/lines/LineGeometry.cjs.js +1 -0
  133. package/lines/LineGeometry.js +19 -7
  134. package/lines/LineMaterial.cjs.js +1 -0
  135. package/lines/LineMaterial.js +89 -51
  136. package/lines/LineSegments2.cjs.js +1 -0
  137. package/lines/LineSegments2.js +165 -56
  138. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  139. package/lines/LineSegmentsGeometry.js +71 -29
  140. package/lines/Wireframe.cjs.js +1 -0
  141. package/lines/Wireframe.js +29 -15
  142. package/lines/WireframeGeometry2.cjs.js +1 -0
  143. package/lines/WireframeGeometry2.js +9 -8
  144. package/loaders/3DMLoader.cjs.js +1 -0
  145. package/loaders/3DMLoader.js +469 -234
  146. package/loaders/3MFLoader.cjs.js +1 -0
  147. package/loaders/3MFLoader.js +555 -340
  148. package/loaders/AMFLoader.cjs.js +1 -0
  149. package/loaders/AMFLoader.js +219 -114
  150. package/loaders/AssimpLoader.cjs.js +1 -0
  151. package/loaders/AssimpLoader.js +725 -328
  152. package/loaders/BVHLoader.cjs.js +1 -0
  153. package/loaders/BVHLoader.js +200 -94
  154. package/loaders/BasisTextureLoader.cjs.js +1 -0
  155. package/loaders/BasisTextureLoader.js +357 -229
  156. package/loaders/ColladaLoader.cjs.js +1 -0
  157. package/loaders/ColladaLoader.js +1522 -932
  158. package/loaders/DDSLoader.cjs.js +1 -0
  159. package/loaders/DDSLoader.js +108 -42
  160. package/loaders/DRACOLoader.cjs.js +1 -0
  161. package/loaders/DRACOLoader.js +210 -103
  162. package/loaders/EXRLoader.cjs.js +1 -0
  163. package/loaders/EXRLoader.js +809 -461
  164. package/loaders/FBXLoader.cjs.js +1 -0
  165. package/loaders/FBXLoader.js +1397 -842
  166. package/loaders/FontLoader.cjs.js +1 -0
  167. package/loaders/FontLoader.js +66 -33
  168. package/loaders/GCodeLoader.cjs.js +1 -0
  169. package/loaders/GCodeLoader.js +111 -63
  170. package/loaders/GLTFLoader.cjs.js +1 -0
  171. package/loaders/GLTFLoader.js +1484 -771
  172. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  173. package/loaders/HDRCubeTextureLoader.js +50 -45
  174. package/loaders/KMZLoader.cjs.js +1 -0
  175. package/loaders/KMZLoader.js +55 -42
  176. package/loaders/KTX2Loader.cjs.js +1 -0
  177. package/loaders/KTX2Loader.js +362 -229
  178. package/loaders/KTXLoader.cjs.js +1 -0
  179. package/loaders/KTXLoader.js +99 -37
  180. package/loaders/LDrawLoader.cjs.js +1 -0
  181. package/loaders/LDrawLoader.js +746 -313
  182. package/loaders/LUT3dlLoader.cjs.js +1 -0
  183. package/loaders/LUT3dlLoader.js +62 -50
  184. package/loaders/LUTCubeLoader.cjs.js +1 -0
  185. package/loaders/LUTCubeLoader.js +56 -45
  186. package/loaders/LWOLoader.cjs.js +1 -0
  187. package/loaders/LWOLoader.js +339 -227
  188. package/loaders/LottieLoader.cjs.js +1 -0
  189. package/loaders/LottieLoader.js +38 -36
  190. package/loaders/MD2Loader.cjs.js +1 -0
  191. package/loaders/MD2Loader.js +91 -248
  192. package/loaders/MDDLoader.cjs.js +1 -0
  193. package/loaders/MDDLoader.js +45 -25
  194. package/loaders/MMDLoader.cjs.js +1 -0
  195. package/loaders/MMDLoader.js +795 -359
  196. package/loaders/MTLLoader.cjs.js +1 -0
  197. package/loaders/MTLLoader.js +201 -91
  198. package/loaders/NRRDLoader.cjs.js +1 -0
  199. package/loaders/NRRDLoader.js +263 -182
  200. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  201. package/loaders/NodeMaterialLoader.js +14 -121
  202. package/loaders/OBJLoader.cjs.js +1 -0
  203. package/loaders/OBJLoader.js +283 -161
  204. package/loaders/PCDLoader.cjs.js +1 -0
  205. package/loaders/PCDLoader.js +164 -145
  206. package/loaders/PDBLoader.cjs.js +1 -0
  207. package/loaders/PDBLoader.js +63 -45
  208. package/loaders/PLYLoader.cjs.js +1 -0
  209. package/loaders/PLYLoader.js +203 -106
  210. package/loaders/PRWMLoader.cjs.js +1 -0
  211. package/loaders/PRWMLoader.js +110 -73
  212. package/loaders/PVRLoader.cjs.js +1 -0
  213. package/loaders/PVRLoader.js +93 -32
  214. package/loaders/RGBELoader.cjs.js +1 -0
  215. package/loaders/RGBELoader.js +233 -96
  216. package/loaders/RGBMLoader.cjs.js +1 -0
  217. package/loaders/RGBMLoader.js +514 -344
  218. package/loaders/STLLoader.cjs.js +1 -0
  219. package/loaders/STLLoader.js +165 -59
  220. package/loaders/SVGLoader.cjs.js +1 -0
  221. package/loaders/SVGLoader.js +851 -481
  222. package/loaders/TDSLoader.cjs.js +1 -0
  223. package/loaders/TDSLoader.js +527 -137
  224. package/loaders/TGALoader.cjs.js +1 -0
  225. package/loaders/TGALoader.js +205 -94
  226. package/loaders/TTFLoader.cjs.js +1 -0
  227. package/loaders/TTFLoader.js +79 -58
  228. package/loaders/TiltLoader.cjs.js +1 -0
  229. package/loaders/TiltLoader.js +167 -129
  230. package/loaders/VOXLoader.cjs.js +1 -0
  231. package/loaders/VOXLoader.js +84 -320
  232. package/loaders/VRMLLoader.cjs.js +1 -0
  233. package/loaders/VRMLLoader.js +1268 -786
  234. package/loaders/VRMLoader.cjs.js +1 -0
  235. package/loaders/VRMLoader.js +31 -23
  236. package/loaders/VTKLoader.cjs.js +1 -0
  237. package/loaders/VTKLoader.js +407 -219
  238. package/loaders/XLoader.cjs.js +1 -0
  239. package/loaders/XLoader.js +1259 -1083
  240. package/loaders/XYZLoader.cjs.js +1 -0
  241. package/loaders/XYZLoader.js +34 -28
  242. package/loaders/lwo/IFFParser.cjs.js +1 -0
  243. package/loaders/lwo/IFFParser.js +492 -238
  244. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  245. package/loaders/lwo/LWO2Parser.js +279 -176
  246. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  247. package/loaders/lwo/LWO3Parser.js +247 -160
  248. package/math/Capsule.cjs.js +1 -0
  249. package/math/Capsule.js +43 -56
  250. package/math/ColorConverter.cjs.js +1 -0
  251. package/math/ColorConverter.js +32 -18
  252. package/math/ConvexHull.cjs.js +1 -0
  253. package/math/ConvexHull.js +357 -97
  254. package/math/ImprovedNoise.cjs.js +1 -0
  255. package/math/ImprovedNoise.js +32 -282
  256. package/math/Lut.cjs.js +1 -0
  257. package/math/Lut.js +35 -51
  258. package/math/MeshSurfaceSampler.cjs.js +1 -0
  259. package/math/MeshSurfaceSampler.js +68 -25
  260. package/math/OBB.cjs.js +1 -0
  261. package/math/OBB.js +152 -91
  262. package/math/Octree.cjs.js +1 -0
  263. package/math/Octree.js +139 -76
  264. package/math/SimplexNoise.cjs.js +1 -0
  265. package/math/SimplexNoise.js +238 -217
  266. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  267. package/misc/ConvexObjectBreaker.js +185 -79
  268. package/misc/GPUComputationRenderer.cjs.js +1 -0
  269. package/misc/GPUComputationRenderer.js +194 -69
  270. package/misc/Gyroscope.cjs.js +1 -0
  271. package/misc/Gyroscope.js +22 -16
  272. package/misc/MD2Character.cjs.js +1 -0
  273. package/misc/MD2Character.js +74 -52
  274. package/misc/MD2CharacterComplex.cjs.js +1 -0
  275. package/misc/MD2CharacterComplex.js +163 -112
  276. package/misc/MorphAnimMesh.cjs.js +1 -0
  277. package/misc/MorphAnimMesh.js +28 -20
  278. package/misc/MorphBlendMesh.cjs.js +1 -0
  279. package/misc/MorphBlendMesh.js +69 -45
  280. package/misc/ProgressiveLightmap.cjs.js +1 -0
  281. package/misc/ProgressiveLightmap.js +187 -70
  282. package/misc/RollerCoaster.cjs.js +1 -0
  283. package/misc/RollerCoaster.js +135 -106
  284. package/misc/TubePainter.cjs.js +1 -0
  285. package/misc/TubePainter.js +92 -74
  286. package/misc/Volume.cjs.js +1 -0
  287. package/misc/Volume.js +270 -108
  288. package/misc/VolumeSlice.cjs.js +1 -0
  289. package/misc/VolumeSlice.js +122 -34
  290. package/misc/WebGL.cjs.js +1 -0
  291. package/misc/WebGL.js +34 -37
  292. package/modifiers/CurveModifier.cjs.js +1 -0
  293. package/modifiers/CurveModifier.js +151 -46
  294. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  295. package/modifiers/EdgeSplitModifier.js +90 -46
  296. package/modifiers/SimplifyModifier.cjs.js +1 -0
  297. package/modifiers/SimplifyModifier.js +202 -77
  298. package/modifiers/TessellateModifier.cjs.js +1 -0
  299. package/modifiers/TessellateModifier.js +90 -65
  300. package/nodes/Nodes.cjs.js +1 -0
  301. package/nodes/Nodes.js +140 -274
  302. package/nodes/ShaderNode.cjs.js +1 -0
  303. package/nodes/ShaderNode.js +196 -296
  304. package/nodes/accessors/BufferNode.cjs.js +1 -0
  305. package/nodes/accessors/BufferNode.js +8 -4
  306. package/nodes/accessors/CameraNode.cjs.js +1 -0
  307. package/nodes/accessors/CameraNode.js +25 -20
  308. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  309. package/nodes/accessors/CubeTextureNode.js +26 -14
  310. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  311. package/nodes/accessors/MaterialNode.js +53 -43
  312. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  313. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  314. package/nodes/accessors/ModelNode.cjs.js +1 -0
  315. package/nodes/accessors/ModelNode.js +5 -3
  316. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  317. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  318. package/nodes/accessors/NormalNode.cjs.js +1 -0
  319. package/nodes/accessors/NormalNode.js +39 -40
  320. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  321. package/nodes/accessors/Object3DNode.js +50 -40
  322. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  323. package/nodes/accessors/PointUVNode.js +9 -5
  324. package/nodes/accessors/PositionNode.cjs.js +1 -0
  325. package/nodes/accessors/PositionNode.js +41 -42
  326. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  327. package/nodes/accessors/ReferenceNode.js +17 -10
  328. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  329. package/nodes/accessors/ReflectNode.js +26 -23
  330. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  331. package/nodes/accessors/SkinningNode.js +48 -46
  332. package/nodes/accessors/TextureNode.cjs.js +1 -0
  333. package/nodes/accessors/TextureNode.js +29 -14
  334. package/nodes/accessors/UVNode.cjs.js +1 -0
  335. package/nodes/accessors/UVNode.js +11 -5
  336. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  337. package/nodes/core/ArrayUniformNode.js +7 -3
  338. package/nodes/core/AttributeNode.cjs.js +1 -0
  339. package/nodes/core/AttributeNode.js +12 -5
  340. package/nodes/core/BypassNode.cjs.js +1 -0
  341. package/nodes/core/BypassNode.js +12 -5
  342. package/nodes/core/CodeNode.cjs.js +1 -0
  343. package/nodes/core/CodeNode.js +12 -4
  344. package/nodes/core/ConstNode.cjs.js +1 -0
  345. package/nodes/core/ConstNode.js +7 -3
  346. package/nodes/core/ContextNode.cjs.js +1 -0
  347. package/nodes/core/ContextNode.js +8 -3
  348. package/nodes/core/ExpressionNode.cjs.js +1 -0
  349. package/nodes/core/ExpressionNode.js +9 -5
  350. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  351. package/nodes/core/FunctionCallNode.js +15 -6
  352. package/nodes/core/FunctionNode.cjs.js +1 -0
  353. package/nodes/core/FunctionNode.js +25 -10
  354. package/nodes/core/InputNode.cjs.js +1 -0
  355. package/nodes/core/InputNode.js +23 -12
  356. package/nodes/core/Node.cjs.js +1 -0
  357. package/nodes/core/Node.js +75 -35
  358. package/nodes/core/NodeAttribute.cjs.js +1 -0
  359. package/nodes/core/NodeAttribute.js +4 -2
  360. package/nodes/core/NodeBuilder.cjs.js +1 -0
  361. package/nodes/core/NodeBuilder.js +224 -110
  362. package/nodes/core/NodeCode.cjs.js +1 -0
  363. package/nodes/core/NodeCode.js +7 -4
  364. package/nodes/core/NodeFrame.cjs.js +1 -0
  365. package/nodes/core/NodeFrame.js +12 -9
  366. package/nodes/core/NodeFunction.cjs.js +1 -0
  367. package/nodes/core/NodeFunction.js +17 -0
  368. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  369. package/nodes/core/NodeFunctionInput.js +5 -3
  370. package/nodes/core/NodeKeywords.cjs.js +1 -0
  371. package/nodes/core/NodeKeywords.js +16 -5
  372. package/nodes/core/NodeParser.cjs.js +1 -0
  373. package/nodes/core/NodeParser.js +8 -0
  374. package/nodes/core/NodeUniform.cjs.js +1 -0
  375. package/nodes/core/NodeUniform.js +7 -3
  376. package/nodes/core/NodeUtils.cjs.js +1 -0
  377. package/nodes/core/NodeUtils.js +43 -39
  378. package/nodes/core/NodeVar.cjs.js +1 -0
  379. package/nodes/core/NodeVar.js +4 -2
  380. package/nodes/core/NodeVary.cjs.js +1 -0
  381. package/nodes/core/NodeVary.js +4 -2
  382. package/nodes/core/PropertyNode.cjs.js +1 -0
  383. package/nodes/core/PropertyNode.js +10 -4
  384. package/nodes/core/TempNode.cjs.js +1 -0
  385. package/nodes/core/TempNode.js +11 -5
  386. package/nodes/core/UniformNode.cjs.js +1 -0
  387. package/nodes/core/UniformNode.js +10 -4
  388. package/nodes/core/VarNode.cjs.js +1 -0
  389. package/nodes/core/VarNode.js +11 -3
  390. package/nodes/core/VaryNode.cjs.js +1 -0
  391. package/nodes/core/VaryNode.js +15 -6
  392. package/nodes/core/constants.cjs.js +1 -0
  393. package/nodes/core/constants.js +7 -20
  394. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  395. package/nodes/display/ColorSpaceNode.js +38 -34
  396. package/nodes/display/NormalMapNode.cjs.js +1 -0
  397. package/nodes/display/NormalMapNode.js +53 -35
  398. package/nodes/fog/FogNode.cjs.js +1 -0
  399. package/nodes/fog/FogNode.js +9 -5
  400. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  401. package/nodes/fog/FogRangeNode.js +9 -5
  402. package/nodes/functions/BSDFs.cjs.js +1 -0
  403. package/nodes/functions/BSDFs.js +118 -61
  404. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  405. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  406. package/nodes/lights/LightContextNode.cjs.js +1 -0
  407. package/nodes/lights/LightContextNode.js +23 -14
  408. package/nodes/lights/LightNode.cjs.js +1 -0
  409. package/nodes/lights/LightNode.js +31 -27
  410. package/nodes/lights/LightsNode.cjs.js +1 -0
  411. package/nodes/lights/LightsNode.js +28 -9
  412. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  413. package/nodes/loaders/NodeLoader.js +42 -27
  414. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  415. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  416. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  417. package/nodes/loaders/NodeObjectLoader.js +19 -9
  418. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  419. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  420. package/nodes/materials/Materials.cjs.js +1 -0
  421. package/nodes/materials/Materials.js +17 -14
  422. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  423. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  424. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  425. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  426. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  427. package/nodes/materials/NodeMaterial.js +36 -20
  428. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  429. package/nodes/materials/PointsNodeMaterial.js +10 -5
  430. package/nodes/math/CondNode.cjs.js +1 -0
  431. package/nodes/math/CondNode.js +23 -11
  432. package/nodes/math/MathNode.cjs.js +1 -0
  433. package/nodes/math/MathNode.js +142 -98
  434. package/nodes/math/OperatorNode.cjs.js +1 -0
  435. package/nodes/math/OperatorNode.js +46 -24
  436. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  437. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  438. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  439. package/nodes/parsers/GLSLNodeParser.js +13 -0
  440. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  441. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  442. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  443. package/nodes/parsers/WGSLNodeParser.js +13 -0
  444. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  445. package/nodes/procedural/CheckerNode.js +19 -13
  446. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  447. package/nodes/utils/ArrayElementNode.js +8 -4
  448. package/nodes/utils/ConvertNode.cjs.js +1 -0
  449. package/nodes/utils/ConvertNode.js +8 -3
  450. package/nodes/utils/JoinNode.cjs.js +1 -0
  451. package/nodes/utils/JoinNode.js +11 -7
  452. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  453. package/nodes/utils/MatcapUVNode.js +11 -8
  454. package/nodes/utils/OscNode.cjs.js +1 -0
  455. package/nodes/utils/OscNode.js +33 -27
  456. package/nodes/utils/SplitNode.cjs.js +1 -0
  457. package/nodes/utils/SplitNode.js +20 -6
  458. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  459. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  460. package/nodes/utils/TimerNode.cjs.js +1 -0
  461. package/nodes/utils/TimerNode.js +24 -20
  462. package/objects/GroundProjectedEnv.cjs.js +1 -0
  463. package/objects/GroundProjectedEnv.js +37 -22
  464. package/objects/Lensflare.cjs.js +1 -0
  465. package/objects/Lensflare.js +156 -86
  466. package/objects/LightningStorm.cjs.js +1 -0
  467. package/objects/LightningStorm.js +102 -38
  468. package/objects/MarchingCubes.cjs.js +1 -0
  469. package/objects/MarchingCubes.js +303 -150
  470. package/objects/Reflector.cjs.js +1 -0
  471. package/objects/Reflector.js +72 -50
  472. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  473. package/objects/ReflectorForSSRPass.js +131 -80
  474. package/objects/ReflectorRTT.cjs.js +1 -0
  475. package/objects/ReflectorRTT.js +7 -6
  476. package/objects/Refractor.cjs.js +1 -0
  477. package/objects/Refractor.js +106 -64
  478. package/objects/ShadowMesh.cjs.js +1 -0
  479. package/objects/ShadowMesh.js +17 -8
  480. package/objects/Sky.cjs.js +1 -0
  481. package/objects/Sky.js +80 -119
  482. package/objects/Water.cjs.js +1 -0
  483. package/objects/Water.js +127 -83
  484. package/objects/Water2.cjs.js +1 -0
  485. package/objects/Water2.js +108 -72
  486. package/offscreen/jank.cjs.js +1 -0
  487. package/offscreen/jank.js +14 -10
  488. package/offscreen/offscreen.cjs.js +1 -0
  489. package/offscreen/offscreen.js +5 -4
  490. package/offscreen/scene.cjs.js +1 -0
  491. package/offscreen/scene.js +48 -45
  492. package/package.json +3 -3
  493. package/physics/AmmoPhysics.cjs.js +1 -0
  494. package/physics/AmmoPhysics.js +71 -30
  495. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  496. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  497. package/postprocessing/AfterimagePass.cjs.js +1 -0
  498. package/postprocessing/AfterimagePass.js +49 -28
  499. package/postprocessing/BloomPass.cjs.js +1 -0
  500. package/postprocessing/BloomPass.js +69 -43
  501. package/postprocessing/BokehPass.cjs.js +1 -0
  502. package/postprocessing/BokehPass.js +69 -39
  503. package/postprocessing/ClearPass.cjs.js +1 -0
  504. package/postprocessing/ClearPass.js +25 -10
  505. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  506. package/postprocessing/CubeTexturePass.js +27 -28
  507. package/postprocessing/DotScreenPass.cjs.js +1 -0
  508. package/postprocessing/DotScreenPass.js +32 -24
  509. package/postprocessing/EffectComposer.cjs.js +1 -0
  510. package/postprocessing/EffectComposer.js +86 -39
  511. package/postprocessing/FilmPass.cjs.js +1 -0
  512. package/postprocessing/FilmPass.js +30 -25
  513. package/postprocessing/GlitchPass.cjs.js +1 -0
  514. package/postprocessing/GlitchPass.js +61 -38
  515. package/postprocessing/HalftonePass.cjs.js +1 -0
  516. package/postprocessing/HalftonePass.js +39 -19
  517. package/postprocessing/LUTPass.cjs.js +1 -0
  518. package/postprocessing/LUTPass.js +38 -13
  519. package/postprocessing/MaskPass.cjs.js +1 -0
  520. package/postprocessing/MaskPass.js +38 -19
  521. package/postprocessing/OutlinePass.cjs.js +1 -0
  522. package/postprocessing/OutlinePass.js +277 -135
  523. package/postprocessing/Pass.cjs.js +1 -0
  524. package/postprocessing/Pass.js +44 -20
  525. package/postprocessing/RenderPass.cjs.js +1 -0
  526. package/postprocessing/RenderPass.js +36 -13
  527. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  528. package/postprocessing/RenderPixelatedPass.js +58 -44
  529. package/postprocessing/SAOPass.cjs.js +1 -0
  530. package/postprocessing/SAOPass.js +189 -154
  531. package/postprocessing/SMAAPass.cjs.js +1 -0
  532. package/postprocessing/SMAAPass.js +84 -64
  533. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  534. package/postprocessing/SSAARenderPass.js +69 -121
  535. package/postprocessing/SSAOPass.cjs.js +1 -0
  536. package/postprocessing/SSAOPass.js +172 -123
  537. package/postprocessing/SSRPass.cjs.js +1 -0
  538. package/postprocessing/SSRPass.js +280 -211
  539. package/postprocessing/SavePass.cjs.js +1 -0
  540. package/postprocessing/SavePass.js +25 -20
  541. package/postprocessing/ShaderPass.cjs.js +1 -0
  542. package/postprocessing/ShaderPass.js +30 -14
  543. package/postprocessing/TAARenderPass.cjs.js +1 -0
  544. package/postprocessing/TAARenderPass.js +61 -42
  545. package/postprocessing/TexturePass.cjs.js +1 -0
  546. package/postprocessing/TexturePass.js +22 -21
  547. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  548. package/postprocessing/UnrealBloomPass.js +213 -105
  549. package/renderers/CSS2DRenderer.cjs.js +1 -0
  550. package/renderers/CSS2DRenderer.js +56 -44
  551. package/renderers/CSS3DRenderer.cjs.js +1 -0
  552. package/renderers/CSS3DRenderer.js +86 -53
  553. package/renderers/Projector.cjs.js +1 -0
  554. package/renderers/Projector.js +274 -107
  555. package/renderers/SVGRenderer.cjs.js +1 -0
  556. package/renderers/SVGRenderer.js +182 -72
  557. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  558. package/renderers/nodes/accessors/CameraNode.js +40 -29
  559. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  560. package/renderers/nodes/accessors/ModelNode.js +37 -28
  561. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  563. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  564. package/renderers/nodes/accessors/NormalNode.js +45 -35
  565. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  566. package/renderers/nodes/accessors/PositionNode.js +19 -18
  567. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  568. package/renderers/nodes/accessors/UVNode.js +10 -5
  569. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  570. package/renderers/nodes/core/AttributeNode.js +14 -5
  571. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  572. package/renderers/nodes/core/InputNode.js +14 -4
  573. package/renderers/nodes/core/Node.cjs.js +1 -0
  574. package/renderers/nodes/core/Node.js +17 -7
  575. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  576. package/renderers/nodes/core/NodeAttribute.js +6 -3
  577. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  578. package/renderers/nodes/core/NodeBuilder.js +154 -87
  579. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  580. package/renderers/nodes/core/NodeFrame.js +12 -9
  581. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  582. package/renderers/nodes/core/NodeSlot.js +3 -2
  583. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  584. package/renderers/nodes/core/NodeUniform.js +9 -4
  585. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  586. package/renderers/nodes/core/NodeVary.js +7 -4
  587. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  588. package/renderers/nodes/core/VaryNode.js +12 -6
  589. package/renderers/nodes/core/constants.cjs.js +1 -0
  590. package/renderers/nodes/core/constants.js +13 -16
  591. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  592. package/renderers/nodes/inputs/ColorNode.js +11 -5
  593. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  594. package/renderers/nodes/inputs/FloatNode.js +11 -5
  595. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  596. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  597. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  598. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  599. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  600. package/renderers/nodes/inputs/TextureNode.js +15 -7
  601. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  602. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  603. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  604. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  605. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  606. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  607. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  608. package/renderers/nodes/math/MathNode.js +30 -20
  609. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  610. package/renderers/nodes/math/OperatorNode.js +20 -4
  611. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  612. package/renderers/nodes/utils/SwitchNode.js +9 -4
  613. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  614. package/renderers/nodes/utils/TimerNode.js +10 -5
  615. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  616. package/renderers/webgpu/WebGPU.js +16 -14
  617. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  618. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  619. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  620. package/renderers/webgpu/WebGPUBackground.js +30 -13
  621. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  622. package/renderers/webgpu/WebGPUBinding.js +7 -4
  623. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  624. package/renderers/webgpu/WebGPUBindings.js +57 -21
  625. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  626. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  627. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  628. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  629. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  630. package/renderers/webgpu/WebGPUInfo.js +8 -3
  631. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  632. package/renderers/webgpu/WebGPUObjects.js +10 -5
  633. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  634. package/renderers/webgpu/WebGPUProperties.js +11 -5
  635. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  636. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  637. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  638. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  639. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  640. package/renderers/webgpu/WebGPURenderer.js +262 -124
  641. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  642. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  643. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  644. package/renderers/webgpu/WebGPUSampler.js +12 -7
  645. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  646. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  647. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  648. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  649. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  650. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  651. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  652. package/renderers/webgpu/WebGPUTextures.js +333 -186
  653. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  654. package/renderers/webgpu/WebGPUUniform.js +51 -25
  655. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  656. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  657. package/renderers/webgpu/constants.cjs.js +1 -0
  658. package/renderers/webgpu/constants.js +181 -190
  659. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  660. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  661. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  663. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  665. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  667. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  668. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  669. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  670. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  671. package/shaders/AfterimageShader.cjs.js +1 -0
  672. package/shaders/AfterimageShader.js +18 -28
  673. package/shaders/BasicShader.cjs.js +1 -0
  674. package/shaders/BasicShader.js +7 -9
  675. package/shaders/BleachBypassShader.cjs.js +1 -0
  676. package/shaders/BleachBypassShader.js +15 -31
  677. package/shaders/BlendShader.cjs.js +1 -0
  678. package/shaders/BlendShader.js +19 -26
  679. package/shaders/BokehShader.cjs.js +1 -0
  680. package/shaders/BokehShader.js +36 -98
  681. package/shaders/BokehShader2.cjs.js +1 -0
  682. package/shaders/BokehShader2.js +90 -261
  683. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  684. package/shaders/BrightnessContrastShader.js +19 -28
  685. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  686. package/shaders/ColorCorrectionShader.js +22 -26
  687. package/shaders/ColorifyShader.cjs.js +1 -0
  688. package/shaders/ColorifyShader.js +16 -24
  689. package/shaders/ConvolutionShader.cjs.js +1 -0
  690. package/shaders/ConvolutionShader.js +36 -40
  691. package/shaders/CopyShader.cjs.js +1 -0
  692. package/shaders/CopyShader.js +13 -21
  693. package/shaders/DOFMipMapShader.cjs.js +1 -0
  694. package/shaders/DOFMipMapShader.js +21 -28
  695. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  696. package/shaders/DepthLimitedBlurShader.js +40 -85
  697. package/shaders/DigitalGlitch.cjs.js +1 -0
  698. package/shaders/DigitalGlitch.js +46 -74
  699. package/shaders/DotScreenShader.cjs.js +1 -0
  700. package/shaders/DotScreenShader.js +27 -35
  701. package/shaders/FXAAShader.cjs.js +1 -0
  702. package/shaders/FXAAShader.js +19 -1094
  703. package/shaders/FilmShader.cjs.js +1 -0
  704. package/shaders/FilmShader.js +52 -38
  705. package/shaders/FocusShader.cjs.js +1 -0
  706. package/shaders/FocusShader.js +24 -51
  707. package/shaders/FreiChenShader.cjs.js +1 -0
  708. package/shaders/FreiChenShader.js +24 -57
  709. package/shaders/FresnelShader.cjs.js +1 -0
  710. package/shaders/FresnelShader.js +22 -43
  711. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  712. package/shaders/GammaCorrectionShader.js +11 -19
  713. package/shaders/GodRaysShader.cjs.js +1 -0
  714. package/shaders/GodRaysShader.js +94 -103
  715. package/shaders/HalftoneShader.cjs.js +1 -0
  716. package/shaders/HalftoneShader.js +65 -208
  717. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  718. package/shaders/HorizontalBlurShader.js +23 -7
  719. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  720. package/shaders/HorizontalTiltShiftShader.js +21 -33
  721. package/shaders/HueSaturationShader.cjs.js +1 -0
  722. package/shaders/HueSaturationShader.js +21 -37
  723. package/shaders/KaleidoShader.cjs.js +1 -0
  724. package/shaders/KaleidoShader.js +22 -30
  725. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  726. package/shaders/LuminosityHighPassShader.js +27 -33
  727. package/shaders/LuminosityShader.cjs.js +1 -0
  728. package/shaders/LuminosityShader.js +11 -21
  729. package/shaders/MirrorShader.cjs.js +1 -0
  730. package/shaders/MirrorShader.js +16 -31
  731. package/shaders/NormalMapShader.cjs.js +1 -0
  732. package/shaders/NormalMapShader.js +23 -27
  733. package/shaders/ParallaxShader.cjs.js +1 -0
  734. package/shaders/ParallaxShader.js +48 -107
  735. package/shaders/PixelShader.cjs.js +1 -0
  736. package/shaders/PixelShader.js +16 -24
  737. package/shaders/RGBShiftShader.cjs.js +1 -0
  738. package/shaders/RGBShiftShader.js +22 -26
  739. package/shaders/SAOShader.cjs.js +1 -0
  740. package/shaders/SAOShader.js +48 -132
  741. package/shaders/SMAAShader.cjs.js +1 -0
  742. package/shaders/SMAAShader.js +135 -256
  743. package/shaders/SSAOShader.cjs.js +1 -0
  744. package/shaders/SSAOShader.js +81 -153
  745. package/shaders/SSRShader.cjs.js +1 -0
  746. package/shaders/SSRShader.js +87 -32
  747. package/shaders/SepiaShader.cjs.js +1 -0
  748. package/shaders/SepiaShader.js +15 -25
  749. package/shaders/SobelOperatorShader.cjs.js +1 -0
  750. package/shaders/SobelOperatorShader.js +29 -40
  751. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  752. package/shaders/SubsurfaceScatteringShader.js +39 -53
  753. package/shaders/TechnicolorShader.cjs.js +1 -0
  754. package/shaders/TechnicolorShader.js +13 -20
  755. package/shaders/ToneMapShader.cjs.js +1 -0
  756. package/shaders/ToneMapShader.js +28 -44
  757. package/shaders/ToonShader.cjs.js +1 -0
  758. package/shaders/ToonShader.js +96 -172
  759. package/shaders/TriangleBlurShader.cjs.js +1 -0
  760. package/shaders/TriangleBlurShader.js +23 -32
  761. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  762. package/shaders/UnpackDepthRGBAShader.js +14 -22
  763. package/shaders/VerticalBlurShader.cjs.js +1 -0
  764. package/shaders/VerticalBlurShader.js +23 -7
  765. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  766. package/shaders/VerticalTiltShiftShader.js +21 -33
  767. package/shaders/VignetteShader.cjs.js +1 -0
  768. package/shaders/VignetteShader.js +28 -24
  769. package/shaders/VolumeShader.cjs.js +1 -0
  770. package/shaders/VolumeShader.js +77 -174
  771. package/shaders/WaterRefractionShader.cjs.js +1 -0
  772. package/shaders/WaterRefractionShader.js +6 -38
  773. package/shaders/types.cjs.js +1 -0
  774. package/shaders/types.js +1 -1
  775. package/textures/FlakesTexture.cjs.js +1 -0
  776. package/textures/FlakesTexture.js +10 -8
  777. package/types/helpers.cjs.js +1 -0
  778. package/types/helpers.js +2 -3
  779. package/types/shared.cjs.js +1 -0
  780. package/types/shared.js +1 -0
  781. package/types/utils.cjs.js +1 -0
  782. package/types/utils.js +1 -0
  783. package/utils/BufferGeometryUtils.cjs.js +1 -0
  784. package/utils/BufferGeometryUtils.js +325 -251
  785. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  786. package/utils/GeometryCompressionUtils.js +239 -241
  787. package/utils/GeometryUtils.cjs.js +1 -0
  788. package/utils/GeometryUtils.js +94 -41
  789. package/utils/LDrawUtils.cjs.js +1 -0
  790. package/utils/LDrawUtils.d.ts +5 -0
  791. package/utils/LDrawUtils.js +144 -0
  792. package/utils/RoughnessMipmapper.cjs.js +1 -0
  793. package/utils/RoughnessMipmapper.js +82 -38
  794. package/utils/SceneUtils.cjs.js +1 -0
  795. package/utils/SceneUtils.js +20 -15
  796. package/utils/ShadowMapViewer.cjs.js +1 -0
  797. package/utils/ShadowMapViewer.js +95 -49
  798. package/utils/SkeletonUtils.cjs.js +1 -0
  799. package/utils/SkeletonUtils.js +165 -74
  800. package/utils/UVsDebug.cjs.js +1 -0
  801. package/utils/UVsDebug.js +62 -32
  802. package/utils/WorkerPool.cjs.js +1 -0
  803. package/utils/WorkerPool.js +33 -13
  804. package/webxr/ARButton.cjs.js +1 -0
  805. package/webxr/ARButton.js +98 -72
  806. package/webxr/OculusHandModel.cjs.js +1 -0
  807. package/webxr/OculusHandModel.js +37 -18
  808. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  809. package/webxr/OculusHandPointerModel.js +80 -58
  810. package/webxr/Text2D.cjs.js +1 -0
  811. package/webxr/Text2D.js +19 -37
  812. package/webxr/VRButton.cjs.js +1 -0
  813. package/webxr/VRButton.js +90 -59
  814. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  815. package/webxr/XRControllerModelFactory.js +116 -58
  816. package/webxr/XREstimatedLight.cjs.js +1 -0
  817. package/webxr/XREstimatedLight.js +66 -39
  818. package/webxr/XRHandMeshModel.cjs.js +1 -0
  819. package/webxr/XRHandMeshModel.js +29 -40
  820. package/webxr/XRHandModelFactory.cjs.js +1 -0
  821. package/webxr/XRHandModelFactory.js +31 -28
  822. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  823. package/webxr/XRHandPrimitiveModel.js +27 -41
  824. package/animation/AnimationClipCreator.mjs +0 -57
  825. package/animation/CCDIKSolver.mjs +0 -234
  826. package/animation/MMDAnimationHelper.mjs +0 -514
  827. package/animation/MMDPhysics.mjs +0 -769
  828. package/cameras/CinematicCamera.mjs +0 -129
  829. package/controls/ArcballControls.mjs +0 -1737
  830. package/controls/DeviceOrientationControls.mjs +0 -74
  831. package/controls/DragControls.mjs +0 -172
  832. package/controls/FirstPersonControls.mjs +0 -220
  833. package/controls/FlyControls.mjs +0 -239
  834. package/controls/OrbitControls.mjs +0 -731
  835. package/controls/PointerLockControls.mjs +0 -88
  836. package/controls/TrackballControls.mjs +0 -481
  837. package/controls/TransformControls.mjs +0 -1068
  838. package/controls/experimental/CameraControls.mjs +0 -673
  839. package/csm/CSM.mjs +0 -244
  840. package/csm/CSMFrustum.mjs +0 -75
  841. package/csm/CSMHelper.mjs +0 -114
  842. package/csm/CSMShader.mjs +0 -251
  843. package/curves/CurveExtras.mjs +0 -224
  844. package/curves/NURBSCurve.mjs +0 -35
  845. package/curves/NURBSSurface.mjs +0 -28
  846. package/curves/NURBSUtils.mjs +0 -226
  847. package/deprecated/Geometry.mjs +0 -966
  848. package/effects/AnaglyphEffect.mjs +0 -120
  849. package/effects/AsciiEffect.mjs +0 -173
  850. package/effects/OutlineEffect.mjs +0 -295
  851. package/effects/ParallaxBarrierEffect.mjs +0 -64
  852. package/effects/PeppersGhostEffect.mjs +0 -85
  853. package/effects/StereoEffect.mjs +0 -32
  854. package/environments/RoomEnvironment.mjs +0 -78
  855. package/exporters/ColladaExporter.mjs +0 -299
  856. package/exporters/DRACOExporter.mjs +0 -132
  857. package/exporters/GLTFExporter.mjs +0 -1381
  858. package/exporters/MMDExporter.mjs +0 -102
  859. package/exporters/OBJExporter.mjs +0 -166
  860. package/exporters/PLYExporter.mjs +0 -278
  861. package/exporters/STLExporter.mjs +0 -129
  862. package/exporters/USDZExporter.mjs +0 -328
  863. package/geometries/BoxLineGeometry.mjs +0 -45
  864. package/geometries/ConvexGeometry.mjs +0 -29
  865. package/geometries/DecalGeometry.mjs +0 -184
  866. package/geometries/LightningStrike.mjs +0 -547
  867. package/geometries/ParametricGeometries.mjs +0 -129
  868. package/geometries/ParametricGeometry.mjs +0 -63
  869. package/geometries/RoundedBoxGeometry.mjs +0 -91
  870. package/geometries/TeapotGeometry.mjs +0 -1557
  871. package/geometries/TextGeometry.mjs +0 -23
  872. package/helpers/LightProbeHelper.mjs +0 -72
  873. package/helpers/PositionalAudioHelper.mjs +0 -68
  874. package/helpers/RectAreaLightHelper.mjs +0 -44
  875. package/helpers/VertexNormalsHelper.mjs +0 -54
  876. package/helpers/VertexTangentsHelper.mjs +0 -45
  877. package/index.mjs +0 -968
  878. package/interactive/SelectionBox.mjs +0 -137
  879. package/interactive/SelectionHelper.mjs +0 -54
  880. package/libs/MeshoptDecoder.mjs +0 -210
  881. package/libs/MotionControllers.mjs +0 -261
  882. package/lights/LightProbeGenerator.mjs +0 -145
  883. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  884. package/lines/Line2.mjs +0 -13
  885. package/lines/LineGeometry.mjs +0 -44
  886. package/lines/LineMaterial.mjs +0 -539
  887. package/lines/LineSegments2.mjs +0 -202
  888. package/lines/LineSegmentsGeometry.mjs +0 -124
  889. package/lines/Wireframe.mjs +0 -31
  890. package/lines/WireframeGeometry2.mjs +0 -13
  891. package/loaders/3DMLoader.mjs +0 -802
  892. package/loaders/3MFLoader.mjs +0 -837
  893. package/loaders/AMFLoader.mjs +0 -284
  894. package/loaders/AssimpLoader.mjs +0 -1396
  895. package/loaders/BVHLoader.mjs +0 -207
  896. package/loaders/BasisTextureLoader.mjs +0 -474
  897. package/loaders/ColladaLoader.mjs +0 -2403
  898. package/loaders/DDSLoader.mjs +0 -148
  899. package/loaders/DRACOLoader.mjs +0 -340
  900. package/loaders/EXRLoader.mjs +0 -1351
  901. package/loaders/FBXLoader.mjs +0 -2362
  902. package/loaders/FontLoader.mjs +0 -111
  903. package/loaders/GCodeLoader.mjs +0 -141
  904. package/loaders/GLTFLoader.mjs +0 -2316
  905. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  906. package/loaders/KMZLoader.mjs +0 -75
  907. package/loaders/KTX2Loader.mjs +0 -427
  908. package/loaders/KTXLoader.mjs +0 -87
  909. package/loaders/LDrawLoader.mjs +0 -1409
  910. package/loaders/LUT3dlLoader.mjs +0 -100
  911. package/loaders/LUTCubeLoader.mjs +0 -104
  912. package/loaders/LWOLoader.mjs +0 -625
  913. package/loaders/LottieLoader.mjs +0 -47
  914. package/loaders/MD2Loader.mjs +0 -359
  915. package/loaders/MDDLoader.mjs +0 -58
  916. package/loaders/MMDLoader.mjs +0 -998
  917. package/loaders/MTLLoader.mjs +0 -280
  918. package/loaders/NRRDLoader.mjs +0 -401
  919. package/loaders/NodeMaterialLoader.mjs +0 -146
  920. package/loaders/OBJLoader.mjs +0 -487
  921. package/loaders/PCDLoader.mjs +0 -248
  922. package/loaders/PDBLoader.mjs +0 -246
  923. package/loaders/PLYLoader.mjs +0 -317
  924. package/loaders/PRWMLoader.mjs +0 -160
  925. package/loaders/PVRLoader.mjs +0 -131
  926. package/loaders/RGBELoader.mjs +0 -244
  927. package/loaders/RGBMLoader.mjs +0 -998
  928. package/loaders/STLLoader.mjs +0 -190
  929. package/loaders/SVGLoader.mjs +0 -1709
  930. package/loaders/TDSLoader.mjs +0 -480
  931. package/loaders/TGALoader.mjs +0 -285
  932. package/loaders/TTFLoader.mjs +0 -131
  933. package/loaders/TiltLoader.mjs +0 -373
  934. package/loaders/VOXLoader.mjs +0 -431
  935. package/loaders/VRMLLoader.mjs +0 -2093
  936. package/loaders/VRMLoader.mjs +0 -38
  937. package/loaders/VTKLoader.mjs +0 -646
  938. package/loaders/XLoader.mjs +0 -1258
  939. package/loaders/XYZLoader.mjs +0 -60
  940. package/loaders/lwo/IFFParser.mjs +0 -697
  941. package/loaders/lwo/LWO2Parser.mjs +0 -327
  942. package/loaders/lwo/LWO3Parser.mjs +0 -298
  943. package/math/Capsule.mjs +0 -100
  944. package/math/ColorConverter.mjs +0 -51
  945. package/math/ConvexHull.mjs +0 -574
  946. package/math/ImprovedNoise.mjs +0 -302
  947. package/math/Lut.mjs +0 -135
  948. package/math/MeshSurfaceSampler.mjs +0 -107
  949. package/math/OBB.mjs +0 -235
  950. package/math/Octree.mjs +0 -278
  951. package/math/SimplexNoise.mjs +0 -425
  952. package/misc/ConvexObjectBreaker.mjs +0 -292
  953. package/misc/GPUComputationRenderer.mjs +0 -171
  954. package/misc/Gyroscope.mjs +0 -35
  955. package/misc/MD2Character.mjs +0 -162
  956. package/misc/MD2CharacterComplex.mjs +0 -328
  957. package/misc/MorphAnimMesh.mjs +0 -40
  958. package/misc/MorphBlendMesh.mjs +0 -179
  959. package/misc/ProgressiveLightmap.mjs +0 -166
  960. package/misc/RollerCoaster.mjs +0 -346
  961. package/misc/TubePainter.mjs +0 -123
  962. package/misc/Volume.mjs +0 -244
  963. package/misc/VolumeSlice.mjs +0 -106
  964. package/misc/WebGL.mjs +0 -74
  965. package/modifiers/CurveModifier.mjs +0 -182
  966. package/modifiers/EdgeSplitModifier.mjs +0 -162
  967. package/modifiers/SimplifyModifier.mjs +0 -282
  968. package/modifiers/TessellateModifier.mjs +0 -206
  969. package/nodes/Nodes.mjs +0 -400
  970. package/nodes/ShaderNode.mjs +0 -408
  971. package/nodes/accessors/BufferNode.mjs +0 -15
  972. package/nodes/accessors/CameraNode.mjs +0 -44
  973. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  974. package/nodes/accessors/MaterialNode.mjs +0 -71
  975. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  976. package/nodes/accessors/ModelNode.mjs +0 -9
  977. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  978. package/nodes/accessors/NormalNode.mjs +0 -62
  979. package/nodes/accessors/Object3DNode.mjs +0 -76
  980. package/nodes/accessors/PointUVNode.mjs +0 -13
  981. package/nodes/accessors/PositionNode.mjs +0 -65
  982. package/nodes/accessors/ReferenceNode.mjs +0 -37
  983. package/nodes/accessors/ReflectNode.mjs +0 -43
  984. package/nodes/accessors/SkinningNode.mjs +0 -58
  985. package/nodes/accessors/TextureNode.mjs +0 -54
  986. package/nodes/accessors/UVNode.mjs +0 -23
  987. package/nodes/core/ArrayUniformNode.mjs +0 -14
  988. package/nodes/core/AttributeNode.mjs +0 -30
  989. package/nodes/core/BypassNode.mjs +0 -22
  990. package/nodes/core/CodeNode.mjs +0 -28
  991. package/nodes/core/ConstNode.mjs +0 -14
  992. package/nodes/core/ContextNode.mjs +0 -22
  993. package/nodes/core/ExpressionNode.mjs +0 -19
  994. package/nodes/core/FunctionCallNode.mjs +0 -37
  995. package/nodes/core/FunctionNode.mjs +0 -56
  996. package/nodes/core/InputNode.mjs +0 -38
  997. package/nodes/core/Node.mjs +0 -139
  998. package/nodes/core/NodeAttribute.mjs +0 -10
  999. package/nodes/core/NodeBuilder.mjs +0 -395
  1000. package/nodes/core/NodeCode.mjs +0 -11
  1001. package/nodes/core/NodeFrame.mjs +0 -35
  1002. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1003. package/nodes/core/NodeKeywords.mjs +0 -44
  1004. package/nodes/core/NodeUniform.mjs +0 -18
  1005. package/nodes/core/NodeUtils.mjs +0 -57
  1006. package/nodes/core/NodeVar.mjs +0 -10
  1007. package/nodes/core/NodeVary.mjs +0 -10
  1008. package/nodes/core/PropertyNode.mjs +0 -21
  1009. package/nodes/core/TempNode.mjs +0 -25
  1010. package/nodes/core/UniformNode.mjs +0 -23
  1011. package/nodes/core/VarNode.mjs +0 -31
  1012. package/nodes/core/VaryNode.mjs +0 -30
  1013. package/nodes/core/constants.mjs +0 -24
  1014. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1015. package/nodes/display/NormalMapNode.mjs +0 -54
  1016. package/nodes/fog/FogNode.mjs +0 -15
  1017. package/nodes/fog/FogRangeNode.mjs +0 -17
  1018. package/nodes/functions/BSDFs.mjs +0 -64
  1019. package/nodes/lights/LightContextNode.mjs +0 -35
  1020. package/nodes/lights/LightNode.mjs +0 -58
  1021. package/nodes/lights/LightsNode.mjs +0 -59
  1022. package/nodes/loaders/NodeLoader.mjs +0 -66
  1023. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1024. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1025. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1026. package/nodes/materials/Materials.mjs +0 -28
  1027. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1028. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1029. package/nodes/materials/NodeMaterial.mjs +0 -64
  1030. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1031. package/nodes/math/CondNode.mjs +0 -38
  1032. package/nodes/math/MathNode.mjs +0 -163
  1033. package/nodes/math/OperatorNode.mjs +0 -103
  1034. package/nodes/procedural/CheckerNode.mjs +0 -21
  1035. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1036. package/nodes/utils/ConvertNode.mjs +0 -25
  1037. package/nodes/utils/JoinNode.mjs +0 -26
  1038. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1039. package/nodes/utils/OscNode.mjs +0 -50
  1040. package/nodes/utils/SplitNode.mjs +0 -45
  1041. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1042. package/nodes/utils/TimerNode.mjs +0 -44
  1043. package/objects/GroundProjectedEnv.mjs +0 -130
  1044. package/objects/Lensflare.mjs +0 -262
  1045. package/objects/LightningStorm.mjs +0 -110
  1046. package/objects/MarchingCubes.mjs +0 -457
  1047. package/objects/Reflector.mjs +0 -166
  1048. package/objects/ReflectorForSSRPass.mjs +0 -247
  1049. package/objects/ReflectorRTT.mjs +0 -10
  1050. package/objects/Refractor.mjs +0 -178
  1051. package/objects/ShadowMesh.mjs +0 -41
  1052. package/objects/Sky.mjs +0 -124
  1053. package/objects/Water.mjs +0 -235
  1054. package/objects/Water2.mjs +0 -252
  1055. package/offscreen/jank.mjs +0 -27
  1056. package/offscreen/offscreen.mjs +0 -5
  1057. package/offscreen/scene.mjs +0 -52
  1058. package/physics/AmmoPhysics.mjs +0 -165
  1059. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1060. package/postprocessing/AfterimagePass.mjs +0 -55
  1061. package/postprocessing/BloomPass.mjs +0 -90
  1062. package/postprocessing/BokehPass.mjs +0 -76
  1063. package/postprocessing/ClearPass.mjs +0 -27
  1064. package/postprocessing/CubeTexturePass.mjs +0 -49
  1065. package/postprocessing/DotScreenPass.mjs +0 -40
  1066. package/postprocessing/EffectComposer.mjs +0 -139
  1067. package/postprocessing/FilmPass.mjs +0 -42
  1068. package/postprocessing/GlitchPass.mjs +0 -75
  1069. package/postprocessing/HalftonePass.mjs +0 -44
  1070. package/postprocessing/LUTPass.mjs +0 -136
  1071. package/postprocessing/MaskPass.mjs +0 -60
  1072. package/postprocessing/OutlinePass.mjs +0 -438
  1073. package/postprocessing/Pass.mjs +0 -37
  1074. package/postprocessing/RenderPass.mjs +0 -48
  1075. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1076. package/postprocessing/SAOPass.mjs +0 -282
  1077. package/postprocessing/SMAAPass.mjs +0 -112
  1078. package/postprocessing/SSAARenderPass.mjs +0 -170
  1079. package/postprocessing/SSAOPass.mjs +0 -265
  1080. package/postprocessing/SSRPass.mjs +0 -432
  1081. package/postprocessing/SavePass.mjs +0 -37
  1082. package/postprocessing/ShaderPass.mjs +0 -39
  1083. package/postprocessing/TAARenderPass.mjs +0 -88
  1084. package/postprocessing/TexturePass.mjs +0 -39
  1085. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1086. package/renderers/CSS2DRenderer.mjs +0 -112
  1087. package/renderers/CSS3DRenderer.mjs +0 -133
  1088. package/renderers/Projector.mjs +0 -511
  1089. package/renderers/SVGRenderer.mjs +0 -306
  1090. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1091. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1092. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1093. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1094. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1095. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1096. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1097. package/renderers/nodes/core/InputNode.mjs +0 -31
  1098. package/renderers/nodes/core/Node.mjs +0 -34
  1099. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1100. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1101. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1102. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1103. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1104. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1105. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1106. package/renderers/nodes/core/constants.mjs +0 -22
  1107. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1108. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1110. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1112. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1113. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1114. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1115. package/renderers/nodes/math/MathNode.mjs +0 -55
  1116. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1117. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1118. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1119. package/renderers/webgpu/WebGPU.mjs +0 -24
  1120. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1121. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1122. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1123. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1124. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1125. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1126. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1127. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1128. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1129. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1130. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1131. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1132. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1133. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1134. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1136. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1137. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1138. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1139. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1140. package/renderers/webgpu/constants.mjs +0 -230
  1141. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1142. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1143. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1145. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1146. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1147. package/shaders/AfterimageShader.mjs +0 -32
  1148. package/shaders/BasicShader.mjs +0 -12
  1149. package/shaders/BleachBypassShader.mjs +0 -35
  1150. package/shaders/BlendShader.mjs +0 -30
  1151. package/shaders/BokehShader.mjs +0 -106
  1152. package/shaders/BokehShader2.mjs +0 -269
  1153. package/shaders/BrightnessContrastShader.mjs +0 -32
  1154. package/shaders/ColorCorrectionShader.mjs +0 -30
  1155. package/shaders/ColorifyShader.mjs +0 -28
  1156. package/shaders/ConvolutionShader.mjs +0 -55
  1157. package/shaders/CopyShader.mjs +0 -25
  1158. package/shaders/DOFMipMapShader.mjs +0 -32
  1159. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1160. package/shaders/DigitalGlitch.mjs +0 -78
  1161. package/shaders/DotScreenShader.mjs +0 -39
  1162. package/shaders/FXAAShader.mjs +0 -1098
  1163. package/shaders/FilmShader.mjs +0 -42
  1164. package/shaders/FocusShader.mjs +0 -55
  1165. package/shaders/FreiChenShader.mjs +0 -61
  1166. package/shaders/FresnelShader.mjs +0 -47
  1167. package/shaders/GammaCorrectionShader.mjs +0 -23
  1168. package/shaders/GodRaysShader.mjs +0 -146
  1169. package/shaders/HalftoneShader.mjs +0 -212
  1170. package/shaders/HorizontalBlurShader.mjs +0 -43
  1171. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1172. package/shaders/HueSaturationShader.mjs +0 -41
  1173. package/shaders/KaleidoShader.mjs +0 -34
  1174. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1175. package/shaders/LuminosityShader.mjs +0 -25
  1176. package/shaders/MirrorShader.mjs +0 -35
  1177. package/shaders/NormalMapShader.mjs +0 -31
  1178. package/shaders/ParallaxShader.mjs +0 -113
  1179. package/shaders/PixelShader.mjs +0 -28
  1180. package/shaders/RGBShiftShader.mjs +0 -30
  1181. package/shaders/SAOShader.mjs +0 -144
  1182. package/shaders/SMAAShader.mjs +0 -272
  1183. package/shaders/SSAOShader.mjs +0 -172
  1184. package/shaders/SSRShader.mjs +0 -324
  1185. package/shaders/SepiaShader.mjs +0 -29
  1186. package/shaders/SobelOperatorShader.mjs +0 -44
  1187. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1188. package/shaders/TechnicolorShader.mjs +0 -24
  1189. package/shaders/ToneMapShader.mjs +0 -48
  1190. package/shaders/ToonShader.mjs +0 -188
  1191. package/shaders/TriangleBlurShader.mjs +0 -36
  1192. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1193. package/shaders/VerticalBlurShader.mjs +0 -44
  1194. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1195. package/shaders/VignetteShader.mjs +0 -28
  1196. package/shaders/VolumeShader.mjs +0 -178
  1197. package/shaders/WaterRefractionShader.mjs +0 -57
  1198. package/textures/FlakesTexture.mjs +0 -30
  1199. package/types/helpers.mjs +0 -4
  1200. package/utils/BufferGeometryUtils.mjs +0 -570
  1201. package/utils/GeometryCompressionUtils.mjs +0 -547
  1202. package/utils/GeometryUtils.mjs +0 -108
  1203. package/utils/RoughnessMipmapper.mjs +0 -213
  1204. package/utils/SceneUtils.mjs +0 -36
  1205. package/utils/ShadowMapViewer.mjs +0 -114
  1206. package/utils/SkeletonUtils.mjs +0 -292
  1207. package/utils/UVsDebug.mjs +0 -85
  1208. package/utils/WorkerPool.mjs +0 -62
  1209. package/webxr/ARButton.mjs +0 -119
  1210. package/webxr/OculusHandModel.mjs +0 -71
  1211. package/webxr/OculusHandPointerModel.mjs +0 -207
  1212. package/webxr/Text2D.mjs +0 -31
  1213. package/webxr/VRButton.mjs +0 -105
  1214. package/webxr/XRControllerModelFactory.mjs +0 -146
  1215. package/webxr/XREstimatedLight.mjs +0 -126
  1216. package/webxr/XRHandMeshModel.mjs +0 -73
  1217. package/webxr/XRHandModelFactory.mjs +0 -61
  1218. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,1381 +0,0 @@
1
- import { PropertyBinding, InterpolateLinear, NearestFilter, NearestMipmapNearestFilter, NearestMipmapLinearFilter, LinearFilter, LinearMipmapNearestFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, RepeatWrapping, MirroredRepeatWrapping, Vector3, RGBAFormat, ShaderMaterial, MeshStandardMaterial, MeshBasicMaterial, MeshPhysicalMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshToonMaterial, MeshLambertMaterial, DoubleSide, LineSegments, LineLoop, Line, Points, MeshDepthMaterial, InterleavedBufferAttribute, BufferAttribute, Object3D, Material, OrthographicCamera, PerspectiveCamera, MathUtils, InterpolateDiscrete, SkinnedMesh, Matrix4, Mesh, Camera, Scene, DirectionalLight, PointLight, SpotLight } from "three";
2
- class GLTFExporter {
3
- constructor() {
4
- this.pluginCallbacks = [];
5
- this.register(function(writer) {
6
- return new GLTFLightExtension(writer);
7
- });
8
- this.register(function(writer) {
9
- return new GLTFMaterialsUnlitExtension(writer);
10
- });
11
- this.register(function(writer) {
12
- return new GLTFMaterialsPBRSpecularGlossiness(writer);
13
- });
14
- this.register(function(writer) {
15
- return new GLTFMaterialsTransmissionExtension(writer);
16
- });
17
- this.register(function(writer) {
18
- return new GLTFMaterialsVolumeExtension(writer);
19
- });
20
- }
21
- register(callback) {
22
- if (this.pluginCallbacks.indexOf(callback) === -1) {
23
- this.pluginCallbacks.push(callback);
24
- }
25
- return this;
26
- }
27
- unregister(callback) {
28
- if (this.pluginCallbacks.indexOf(callback) !== -1) {
29
- this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(callback), 1);
30
- }
31
- return this;
32
- }
33
- parse(input, onDone, options) {
34
- const writer = new GLTFWriter();
35
- const plugins = [];
36
- for (let i = 0, il = this.pluginCallbacks.length; i < il; i++) {
37
- plugins.push(this.pluginCallbacks[i](writer));
38
- }
39
- writer.setPlugins(plugins);
40
- writer.write(input, onDone, options);
41
- }
42
- }
43
- GLTFExporter.Utils = {
44
- insertKeyframe: function(track, time) {
45
- const tolerance = 1e-3;
46
- const valueSize = track.getValueSize();
47
- const times = new track.TimeBufferType(track.times.length + 1);
48
- const values = new track.ValueBufferType(track.values.length + valueSize);
49
- const interpolant = track.createInterpolant(new track.ValueBufferType(valueSize));
50
- let index;
51
- if (track.times.length === 0) {
52
- times[0] = time;
53
- for (let i = 0; i < valueSize; i++) {
54
- values[i] = 0;
55
- }
56
- index = 0;
57
- } else if (time < track.times[0]) {
58
- if (Math.abs(track.times[0] - time) < tolerance)
59
- return 0;
60
- times[0] = time;
61
- times.set(track.times, 1);
62
- values.set(interpolant.evaluate(time), 0);
63
- values.set(track.values, valueSize);
64
- index = 0;
65
- } else if (time > track.times[track.times.length - 1]) {
66
- if (Math.abs(track.times[track.times.length - 1] - time) < tolerance) {
67
- return track.times.length - 1;
68
- }
69
- times[times.length - 1] = time;
70
- times.set(track.times, 0);
71
- values.set(track.values, 0);
72
- values.set(interpolant.evaluate(time), track.values.length);
73
- index = times.length - 1;
74
- } else {
75
- for (let i = 0; i < track.times.length; i++) {
76
- if (Math.abs(track.times[i] - time) < tolerance)
77
- return i;
78
- if (track.times[i] < time && track.times[i + 1] > time) {
79
- times.set(track.times.slice(0, i + 1), 0);
80
- times[i + 1] = time;
81
- times.set(track.times.slice(i + 1), i + 2);
82
- values.set(track.values.slice(0, (i + 1) * valueSize), 0);
83
- values.set(interpolant.evaluate(time), (i + 1) * valueSize);
84
- values.set(track.values.slice((i + 1) * valueSize), (i + 2) * valueSize);
85
- index = i + 1;
86
- break;
87
- }
88
- }
89
- }
90
- track.times = times;
91
- track.values = values;
92
- return index;
93
- },
94
- mergeMorphTargetTracks: function(clip, root) {
95
- const tracks = [];
96
- const mergedTracks = {};
97
- const sourceTracks = clip.tracks;
98
- for (let i = 0; i < sourceTracks.length; ++i) {
99
- let sourceTrack = sourceTracks[i];
100
- const sourceTrackBinding = PropertyBinding.parseTrackName(sourceTrack.name);
101
- const sourceTrackNode = PropertyBinding.findNode(root, sourceTrackBinding.nodeName);
102
- if (sourceTrackBinding.propertyName !== "morphTargetInfluences" || sourceTrackBinding.propertyIndex === void 0) {
103
- tracks.push(sourceTrack);
104
- continue;
105
- }
106
- if (sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodDiscrete && sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodLinear) {
107
- if (sourceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {
108
- throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");
109
- }
110
- console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead.");
111
- sourceTrack = sourceTrack.clone();
112
- sourceTrack.setInterpolation(InterpolateLinear);
113
- }
114
- const targetCount = sourceTrackNode.morphTargetInfluences.length;
115
- const targetIndex = sourceTrackNode.morphTargetDictionary[sourceTrackBinding.propertyIndex];
116
- if (targetIndex === void 0) {
117
- throw new Error("THREE.GLTFExporter: Morph target name not found: " + sourceTrackBinding.propertyIndex);
118
- }
119
- let mergedTrack;
120
- if (mergedTracks[sourceTrackNode.uuid] === void 0) {
121
- mergedTrack = sourceTrack.clone();
122
- const values = new mergedTrack.ValueBufferType(targetCount * mergedTrack.times.length);
123
- for (let j = 0; j < mergedTrack.times.length; j++) {
124
- values[j * targetCount + targetIndex] = mergedTrack.values[j];
125
- }
126
- mergedTrack.name = (sourceTrackBinding.nodeName || "") + ".morphTargetInfluences";
127
- mergedTrack.values = values;
128
- mergedTracks[sourceTrackNode.uuid] = mergedTrack;
129
- tracks.push(mergedTrack);
130
- continue;
131
- }
132
- const sourceInterpolant = sourceTrack.createInterpolant(new sourceTrack.ValueBufferType(1));
133
- mergedTrack = mergedTracks[sourceTrackNode.uuid];
134
- for (let j = 0; j < mergedTrack.times.length; j++) {
135
- mergedTrack.values[j * targetCount + targetIndex] = sourceInterpolant.evaluate(mergedTrack.times[j]);
136
- }
137
- for (let j = 0; j < sourceTrack.times.length; j++) {
138
- const keyframeIndex = this.insertKeyframe(mergedTrack, sourceTrack.times[j]);
139
- mergedTrack.values[keyframeIndex * targetCount + targetIndex] = sourceTrack.values[j];
140
- }
141
- }
142
- clip.tracks = tracks;
143
- return clip;
144
- }
145
- };
146
- const WEBGL_CONSTANTS = {
147
- POINTS: 0,
148
- LINES: 1,
149
- LINE_LOOP: 2,
150
- LINE_STRIP: 3,
151
- TRIANGLES: 4,
152
- TRIANGLE_STRIP: 5,
153
- TRIANGLE_FAN: 6,
154
- UNSIGNED_BYTE: 5121,
155
- UNSIGNED_SHORT: 5123,
156
- FLOAT: 5126,
157
- UNSIGNED_INT: 5125,
158
- ARRAY_BUFFER: 34962,
159
- ELEMENT_ARRAY_BUFFER: 34963,
160
- NEAREST: 9728,
161
- LINEAR: 9729,
162
- NEAREST_MIPMAP_NEAREST: 9984,
163
- LINEAR_MIPMAP_NEAREST: 9985,
164
- NEAREST_MIPMAP_LINEAR: 9986,
165
- LINEAR_MIPMAP_LINEAR: 9987,
166
- CLAMP_TO_EDGE: 33071,
167
- MIRRORED_REPEAT: 33648,
168
- REPEAT: 10497
169
- };
170
- const THREE_TO_WEBGL = {};
171
- THREE_TO_WEBGL[NearestFilter] = WEBGL_CONSTANTS.NEAREST;
172
- THREE_TO_WEBGL[NearestMipmapNearestFilter] = WEBGL_CONSTANTS.NEAREST_MIPMAP_NEAREST;
173
- THREE_TO_WEBGL[NearestMipmapLinearFilter] = WEBGL_CONSTANTS.NEAREST_MIPMAP_LINEAR;
174
- THREE_TO_WEBGL[LinearFilter] = WEBGL_CONSTANTS.LINEAR;
175
- THREE_TO_WEBGL[LinearMipmapNearestFilter] = WEBGL_CONSTANTS.LINEAR_MIPMAP_NEAREST;
176
- THREE_TO_WEBGL[LinearMipmapLinearFilter] = WEBGL_CONSTANTS.LINEAR_MIPMAP_LINEAR;
177
- THREE_TO_WEBGL[ClampToEdgeWrapping] = WEBGL_CONSTANTS.CLAMP_TO_EDGE;
178
- THREE_TO_WEBGL[RepeatWrapping] = WEBGL_CONSTANTS.REPEAT;
179
- THREE_TO_WEBGL[MirroredRepeatWrapping] = WEBGL_CONSTANTS.MIRRORED_REPEAT;
180
- const PATH_PROPERTIES = {
181
- scale: "scale",
182
- position: "translation",
183
- quaternion: "rotation",
184
- morphTargetInfluences: "weights"
185
- };
186
- const GLB_HEADER_BYTES = 12;
187
- const GLB_HEADER_MAGIC = 1179937895;
188
- const GLB_VERSION = 2;
189
- const GLB_CHUNK_PREFIX_BYTES = 8;
190
- const GLB_CHUNK_TYPE_JSON = 1313821514;
191
- const GLB_CHUNK_TYPE_BIN = 5130562;
192
- class GLTFWriter {
193
- constructor() {
194
- this.plugins = [];
195
- this.options = {};
196
- this.pending = [];
197
- this.buffers = [];
198
- this.byteOffset = 0;
199
- this.nodeMap = /* @__PURE__ */ new Map();
200
- this.skins = [];
201
- this.extensionsUsed = {};
202
- this.uids = /* @__PURE__ */ new Map();
203
- this.uid = 0;
204
- this.json = {
205
- asset: {
206
- version: "2.0",
207
- generator: "THREE.GLTFExporter"
208
- }
209
- };
210
- this.cache = {
211
- meshes: /* @__PURE__ */ new Map(),
212
- attributes: /* @__PURE__ */ new Map(),
213
- attributesNormalized: /* @__PURE__ */ new Map(),
214
- materials: /* @__PURE__ */ new Map(),
215
- textures: /* @__PURE__ */ new Map(),
216
- images: /* @__PURE__ */ new Map()
217
- };
218
- this.cachedCanvas = null;
219
- }
220
- setPlugins(plugins) {
221
- this.plugins = plugins;
222
- }
223
- write(input, onDone, options) {
224
- this.options = Object.assign(
225
- {},
226
- {
227
- binary: false,
228
- trs: false,
229
- onlyVisible: true,
230
- truncateDrawRange: true,
231
- embedImages: true,
232
- maxTextureSize: Infinity,
233
- animations: [],
234
- includeCustomExtensions: false
235
- },
236
- options
237
- );
238
- if (this.options.animations !== void 0 && this.options.animations.length > 0) {
239
- this.options.trs = true;
240
- }
241
- this.processInput(input);
242
- const writer = this;
243
- Promise.all(this.pending).then(() => {
244
- const buffers = writer.buffers;
245
- const json = writer.json;
246
- const options2 = writer.options;
247
- const extensionsUsed = writer.extensionsUsed;
248
- const blob = new Blob(buffers, { type: "application/octet-stream" });
249
- const extensionsUsedList = Object.keys(extensionsUsed);
250
- if (extensionsUsedList.length > 0)
251
- json.extensionsUsed = extensionsUsedList;
252
- if (json.buffers && json.buffers.length > 0)
253
- json.buffers[0].byteLength = blob.size;
254
- if (options2.binary) {
255
- const reader = new window.FileReader();
256
- reader.readAsArrayBuffer(blob);
257
- reader.onloadend = () => {
258
- if (reader.result !== null && typeof reader.result !== "string") {
259
- const binaryChunk = this.getPaddedArrayBuffer(reader.result);
260
- const binaryChunkPrefix = new DataView(new ArrayBuffer(GLB_CHUNK_PREFIX_BYTES));
261
- binaryChunkPrefix.setUint32(0, binaryChunk.byteLength, true);
262
- binaryChunkPrefix.setUint32(4, GLB_CHUNK_TYPE_BIN, true);
263
- const jsonChunk = this.getPaddedArrayBuffer(this.stringToArrayBuffer(JSON.stringify(json)), 32);
264
- const jsonChunkPrefix = new DataView(new ArrayBuffer(GLB_CHUNK_PREFIX_BYTES));
265
- jsonChunkPrefix.setUint32(0, jsonChunk.byteLength, true);
266
- jsonChunkPrefix.setUint32(4, GLB_CHUNK_TYPE_JSON, true);
267
- const header = new ArrayBuffer(GLB_HEADER_BYTES);
268
- const headerView = new DataView(header);
269
- headerView.setUint32(0, GLB_HEADER_MAGIC, true);
270
- headerView.setUint32(4, GLB_VERSION, true);
271
- const totalByteLength = GLB_HEADER_BYTES + jsonChunkPrefix.byteLength + jsonChunk.byteLength + binaryChunkPrefix.byteLength + binaryChunk.byteLength;
272
- headerView.setUint32(8, totalByteLength, true);
273
- const glbBlob = new Blob([header, jsonChunkPrefix, jsonChunk, binaryChunkPrefix, binaryChunk], {
274
- type: "application/octet-stream"
275
- });
276
- const glbReader = new window.FileReader();
277
- glbReader.readAsArrayBuffer(glbBlob);
278
- glbReader.onloadend = function() {
279
- if (glbReader.result !== null && typeof glbReader.result !== "string") {
280
- onDone(glbReader.result);
281
- }
282
- };
283
- }
284
- };
285
- } else {
286
- if (json.buffers && json.buffers.length > 0) {
287
- const reader = new window.FileReader();
288
- reader.readAsDataURL(blob);
289
- reader.onloadend = function() {
290
- const base64data = reader.result;
291
- if (json.buffers !== void 0 && base64data !== null) {
292
- json.buffers[0].uri = base64data;
293
- onDone(json);
294
- }
295
- };
296
- } else {
297
- onDone(json);
298
- }
299
- }
300
- });
301
- }
302
- serializeUserData(object, objectDef) {
303
- if (Object.keys(object.userData).length === 0)
304
- return;
305
- const options = this.options;
306
- const extensionsUsed = this.extensionsUsed;
307
- try {
308
- const json = JSON.parse(JSON.stringify(object.userData));
309
- if (options.includeCustomExtensions && json.gltfExtensions) {
310
- if (objectDef.extensions === void 0)
311
- objectDef.extensions = {};
312
- for (const extensionName in json.gltfExtensions) {
313
- objectDef.extensions[extensionName] = json.gltfExtensions[extensionName];
314
- extensionsUsed[extensionName] = true;
315
- }
316
- delete json.gltfExtensions;
317
- }
318
- if (Object.keys(json).length > 0)
319
- objectDef.extras = json;
320
- } catch (error) {
321
- if (error instanceof Error) {
322
- console.warn(
323
- "THREE.GLTFExporter: userData of '" + object.name + "' won't be serialized because of JSON.stringify error - " + error.message
324
- );
325
- }
326
- }
327
- }
328
- getUID(object) {
329
- if (!this.uids.has(object))
330
- this.uids.set(object, this.uid++);
331
- return this.uids.get(object);
332
- }
333
- isNormalizedNormalAttribute(normal) {
334
- const cache = this.cache;
335
- if (cache.attributesNormalized.has(normal))
336
- return false;
337
- const v = new Vector3();
338
- for (let i = 0, il = normal.count; i < il; i++) {
339
- if (Math.abs(v.fromBufferAttribute(normal, i).length() - 1) > 5e-4)
340
- return false;
341
- }
342
- return true;
343
- }
344
- createNormalizedNormalAttribute(normal) {
345
- const cache = this.cache;
346
- if (cache.attributesNormalized.has(normal))
347
- return cache.attributesNormalized.get(normal);
348
- const attribute = normal.clone();
349
- const v = new Vector3();
350
- for (let i = 0, il = attribute.count; i < il; i++) {
351
- v.fromBufferAttribute(attribute, i);
352
- if (v.x === 0 && v.y === 0 && v.z === 0) {
353
- v.setX(1);
354
- } else {
355
- v.normalize();
356
- }
357
- attribute.setXYZ(i, v.x, v.y, v.z);
358
- }
359
- cache.attributesNormalized.set(normal, attribute);
360
- return attribute;
361
- }
362
- applyTextureTransform(mapDef, texture) {
363
- let didTransform = false;
364
- const transformDef = {};
365
- if (texture.offset.x !== 0 || texture.offset.y !== 0) {
366
- transformDef.offset = texture.offset.toArray();
367
- didTransform = true;
368
- }
369
- if (texture.rotation !== 0) {
370
- transformDef.rotation = texture.rotation;
371
- didTransform = true;
372
- }
373
- if (texture.repeat.x !== 1 || texture.repeat.y !== 1) {
374
- transformDef.scale = texture.repeat.toArray();
375
- didTransform = true;
376
- }
377
- if (didTransform) {
378
- mapDef.extensions = mapDef.extensions || {};
379
- mapDef.extensions["KHR_texture_transform"] = transformDef;
380
- this.extensionsUsed["KHR_texture_transform"] = true;
381
- }
382
- }
383
- processBuffer(buffer) {
384
- const json = this.json;
385
- const buffers = this.buffers;
386
- if (!json.buffers)
387
- json.buffers = [{ byteLength: 0 }];
388
- buffers.push(buffer);
389
- return 0;
390
- }
391
- processBufferView(attribute, componentType, start, count, target) {
392
- const json = this.json;
393
- if (!json.bufferViews)
394
- json.bufferViews = [];
395
- let componentSize;
396
- if (componentType === WEBGL_CONSTANTS.UNSIGNED_BYTE) {
397
- componentSize = 1;
398
- } else if (componentType === WEBGL_CONSTANTS.UNSIGNED_SHORT) {
399
- componentSize = 2;
400
- } else {
401
- componentSize = 4;
402
- }
403
- const byteLength = this.getPaddedBufferSize(count * attribute.itemSize * componentSize);
404
- const dataView = new DataView(new ArrayBuffer(byteLength));
405
- let offset = 0;
406
- for (let i = start; i < start + count; i++) {
407
- for (let a = 0; a < attribute.itemSize; a++) {
408
- let value;
409
- if (attribute.itemSize > 4) {
410
- value = attribute.array[i * attribute.itemSize + a];
411
- } else {
412
- if (a === 0)
413
- value = attribute.getX(i);
414
- else if (a === 1)
415
- value = attribute.getY(i);
416
- else if (a === 2)
417
- value = attribute.getZ(i);
418
- else if (a === 3)
419
- value = attribute.getW(i);
420
- }
421
- if (value !== void 0) {
422
- if (componentType === WEBGL_CONSTANTS.FLOAT) {
423
- dataView.setFloat32(offset, value, true);
424
- } else if (componentType === WEBGL_CONSTANTS.UNSIGNED_INT) {
425
- dataView.setUint32(offset, value, true);
426
- } else if (componentType === WEBGL_CONSTANTS.UNSIGNED_SHORT) {
427
- dataView.setUint16(offset, value, true);
428
- } else if (componentType === WEBGL_CONSTANTS.UNSIGNED_BYTE) {
429
- dataView.setUint8(offset, value);
430
- }
431
- }
432
- offset += componentSize;
433
- }
434
- }
435
- const bufferViewDef = {
436
- buffer: this.processBuffer(dataView.buffer),
437
- byteOffset: this.byteOffset,
438
- byteLength
439
- };
440
- if (target !== void 0)
441
- bufferViewDef.target = target;
442
- if (target === WEBGL_CONSTANTS.ARRAY_BUFFER) {
443
- bufferViewDef.byteStride = attribute.itemSize * componentSize;
444
- }
445
- this.byteOffset += byteLength;
446
- json.bufferViews.push(bufferViewDef);
447
- const output = {
448
- id: json.bufferViews.length - 1,
449
- byteLength: 0
450
- };
451
- return output;
452
- }
453
- processBufferViewImage(blob) {
454
- const writer = this;
455
- const json = writer.json;
456
- if (!json.bufferViews)
457
- json.bufferViews = [];
458
- return new Promise((resolve) => {
459
- const reader = new window.FileReader();
460
- reader.readAsArrayBuffer(blob);
461
- reader.onloadend = () => {
462
- if (reader.result !== null && typeof reader.result !== "string" && json.bufferViews !== void 0) {
463
- const buffer = this.getPaddedArrayBuffer(reader.result);
464
- const bufferViewDef = {
465
- buffer: writer.processBuffer(buffer),
466
- byteOffset: writer.byteOffset,
467
- byteLength: buffer.byteLength
468
- };
469
- writer.byteOffset += buffer.byteLength;
470
- resolve(json.bufferViews.push(bufferViewDef) - 1);
471
- }
472
- };
473
- });
474
- }
475
- processAccessor(attribute, geometry, start, count) {
476
- const options = this.options;
477
- const json = this.json;
478
- const types = {
479
- 1: "SCALAR",
480
- 2: "VEC2",
481
- 3: "VEC3",
482
- 4: "VEC4",
483
- 16: "MAT4"
484
- };
485
- let componentType;
486
- if (attribute.array.constructor === Float32Array) {
487
- componentType = WEBGL_CONSTANTS.FLOAT;
488
- } else if (attribute.array.constructor === Uint32Array) {
489
- componentType = WEBGL_CONSTANTS.UNSIGNED_INT;
490
- } else if (attribute.array.constructor === Uint16Array) {
491
- componentType = WEBGL_CONSTANTS.UNSIGNED_SHORT;
492
- } else if (attribute.array.constructor === Uint8Array) {
493
- componentType = WEBGL_CONSTANTS.UNSIGNED_BYTE;
494
- } else {
495
- throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type.");
496
- }
497
- if (start === void 0)
498
- start = 0;
499
- if (count === void 0)
500
- count = attribute.count;
501
- if (options.truncateDrawRange && geometry !== void 0 && geometry.index === null) {
502
- const end = start + count;
503
- const end2 = geometry.drawRange.count === Infinity ? attribute.count : geometry.drawRange.start + geometry.drawRange.count;
504
- start = Math.max(start, geometry.drawRange.start);
505
- count = Math.min(end, end2) - start;
506
- if (count < 0)
507
- count = 0;
508
- }
509
- if (count === 0)
510
- return null;
511
- const minMax = this.getMinMax(attribute, start, count);
512
- let bufferViewTarget;
513
- if (geometry !== void 0) {
514
- bufferViewTarget = attribute === geometry.index ? WEBGL_CONSTANTS.ELEMENT_ARRAY_BUFFER : WEBGL_CONSTANTS.ARRAY_BUFFER;
515
- }
516
- if (bufferViewTarget !== void 0) {
517
- const bufferView = this.processBufferView(attribute, componentType, start, count, bufferViewTarget);
518
- const accessorDef = {
519
- bufferView: bufferView.id,
520
- byteOffset: bufferView.byteOffset,
521
- componentType,
522
- count,
523
- max: minMax.max,
524
- min: minMax.min,
525
- type: types[attribute.itemSize]
526
- };
527
- if (attribute.normalized)
528
- accessorDef.normalized = true;
529
- if (!json.accessors)
530
- json.accessors = [];
531
- return json.accessors.push(accessorDef) - 1;
532
- }
533
- }
534
- processImage(image, format, flipY) {
535
- const writer = this;
536
- const cache = writer.cache;
537
- const json = writer.json;
538
- const options = writer.options;
539
- const pending = writer.pending;
540
- if (!cache.images.has(image))
541
- cache.images.set(image, {});
542
- const cachedImages = cache.images.get(image);
543
- const mimeType = format === RGBAFormat ? "image/png" : "image/jpeg";
544
- const key = mimeType + ":flipY/" + flipY.toString();
545
- if (cachedImages !== void 0 && cachedImages[key] !== void 0)
546
- return cachedImages[key];
547
- if (!json.images)
548
- json.images = [];
549
- const imageDef = { mimeType };
550
- if (options.embedImages && options.maxTextureSize !== void 0) {
551
- const canvas = this.cachedCanvas = this.cachedCanvas || document.createElement("canvas");
552
- canvas.width = Math.min(image.width, options.maxTextureSize);
553
- canvas.height = Math.min(image.height, options.maxTextureSize);
554
- const ctx = canvas.getContext("2d");
555
- if (flipY) {
556
- ctx == null ? void 0 : ctx.translate(0, canvas.height);
557
- ctx == null ? void 0 : ctx.scale(1, -1);
558
- }
559
- if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== "undefined" && image instanceof HTMLCanvasElement || typeof OffscreenCanvas !== "undefined" && image instanceof OffscreenCanvas || typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap) {
560
- ctx == null ? void 0 : ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
561
- } else {
562
- if (format !== RGBAFormat) {
563
- console.error("GLTFExporter: Only RGBA format is supported.");
564
- }
565
- if (image.width > options.maxTextureSize || image.height > options.maxTextureSize) {
566
- console.warn("GLTFExporter: Image size is bigger than maxTextureSize", image);
567
- }
568
- const data = new Uint8ClampedArray(image.height * image.width * 4);
569
- if (image instanceof ImageData) {
570
- for (let i = 0; i < data.length; i += 4) {
571
- data[i + 0] = image.data[i + 0];
572
- data[i + 1] = image.data[i + 1];
573
- data[i + 2] = image.data[i + 2];
574
- data[i + 3] = image.data[i + 3];
575
- }
576
- }
577
- ctx == null ? void 0 : ctx.putImageData(new ImageData(data, image.width, image.height), 0, 0);
578
- }
579
- if (options.binary) {
580
- pending.push(
581
- new Promise(function(resolve) {
582
- canvas.toBlob(function(blob) {
583
- if (blob !== null) {
584
- writer.processBufferViewImage(blob).then(function(bufferViewIndex) {
585
- imageDef.bufferView = bufferViewIndex;
586
- resolve();
587
- });
588
- }
589
- }, mimeType);
590
- })
591
- );
592
- } else {
593
- imageDef.uri = canvas.toDataURL(mimeType);
594
- }
595
- } else if (image instanceof Image) {
596
- imageDef.uri = image.src;
597
- }
598
- const index = json.images.push(imageDef) - 1;
599
- if (cachedImages !== void 0)
600
- cachedImages[key] = index;
601
- return index;
602
- }
603
- processSampler(map) {
604
- const json = this.json;
605
- if (!json.samplers)
606
- json.samplers = [];
607
- const samplerDef = {
608
- magFilter: THREE_TO_WEBGL[map.magFilter],
609
- minFilter: THREE_TO_WEBGL[map.minFilter],
610
- wrapS: THREE_TO_WEBGL[map.wrapS],
611
- wrapT: THREE_TO_WEBGL[map.wrapT]
612
- };
613
- return json.samplers.push(samplerDef) - 1;
614
- }
615
- processTexture(map) {
616
- const cache = this.cache;
617
- const json = this.json;
618
- if (cache.textures.has(map))
619
- return cache.textures.get(map);
620
- if (!json.textures)
621
- json.textures = [];
622
- const textureDef = {
623
- sampler: this.processSampler(map),
624
- source: this.processImage(map.image, map.format, map.flipY)
625
- };
626
- if (map.name)
627
- textureDef.name = map.name;
628
- this._invokeAll(function(ext) {
629
- ext.writeTexture && ext.writeTexture(map, textureDef);
630
- });
631
- const index = json.textures.push(textureDef) - 1;
632
- cache.textures.set(map, index);
633
- return index;
634
- }
635
- processMaterial(material) {
636
- const cache = this.cache;
637
- const json = this.json;
638
- if (cache.materials.has(material))
639
- return cache.materials.get(material);
640
- if (material instanceof ShaderMaterial && material.isShaderMaterial) {
641
- console.warn("GLTFExporter: THREE.ShaderMaterial not supported.");
642
- return null;
643
- }
644
- if (!json.materials)
645
- json.materials = [];
646
- const materialDef = { pbrMetallicRoughness: {} };
647
- if (!(material instanceof MeshStandardMaterial && material.isMeshStandardMaterial && material instanceof MeshBasicMaterial && material.isMeshBasicMaterial)) {
648
- console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");
649
- }
650
- if (material instanceof MeshStandardMaterial || material instanceof MeshPhysicalMaterial) {
651
- const color = material.color.toArray().concat([material.opacity]);
652
- if (!this.equalArray(color, [1, 1, 1, 1])) {
653
- materialDef.pbrMetallicRoughness.baseColorFactor = color;
654
- }
655
- }
656
- if (material instanceof MeshStandardMaterial && material.isMeshStandardMaterial) {
657
- materialDef.pbrMetallicRoughness.metallicFactor = material.metalness;
658
- materialDef.pbrMetallicRoughness.roughnessFactor = material.roughness;
659
- } else {
660
- materialDef.pbrMetallicRoughness.metallicFactor = 0.5;
661
- materialDef.pbrMetallicRoughness.roughnessFactor = 0.5;
662
- }
663
- if (material instanceof MeshStandardMaterial && material.metalnessMap || material instanceof MeshStandardMaterial && material.roughnessMap) {
664
- if (material.metalnessMap === material.roughnessMap && material.metalnessMap !== null) {
665
- const metalRoughMapDef = { index: this.processTexture(material.metalnessMap) };
666
- this.applyTextureTransform(metalRoughMapDef, material.metalnessMap);
667
- materialDef.pbrMetallicRoughness.metallicRoughnessTexture = metalRoughMapDef;
668
- } else {
669
- console.warn(
670
- "THREE.GLTFExporter: Ignoring metalnessMap and roughnessMap because they are not the same Texture."
671
- );
672
- }
673
- }
674
- if ((material instanceof MeshStandardMaterial || material instanceof MeshPhysicalMaterial) && material.map) {
675
- const baseColorMapDef = { index: this.processTexture(material.map) };
676
- this.applyTextureTransform(baseColorMapDef, material.map);
677
- materialDef.pbrMetallicRoughness.baseColorTexture = baseColorMapDef;
678
- }
679
- if ((material instanceof MeshStandardMaterial || material instanceof MeshPhysicalMaterial) && material.emissive) {
680
- const emissive = material.emissive.clone().multiplyScalar(material.emissiveIntensity);
681
- const maxEmissiveComponent = Math.max(emissive.r, emissive.g, emissive.b);
682
- if (maxEmissiveComponent > 1) {
683
- emissive.multiplyScalar(1 / maxEmissiveComponent);
684
- console.warn("THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited");
685
- }
686
- if (maxEmissiveComponent > 0) {
687
- materialDef.emissiveFactor = emissive.toArray();
688
- }
689
- if (material.emissiveMap) {
690
- const emissiveMapDef = { index: this.processTexture(material.emissiveMap) };
691
- this.applyTextureTransform(emissiveMapDef, material.emissiveMap);
692
- materialDef.emissiveTexture = emissiveMapDef;
693
- }
694
- }
695
- if ((material instanceof MeshMatcapMaterial || material instanceof MeshNormalMaterial || material instanceof MeshPhongMaterial || material instanceof MeshStandardMaterial || material instanceof MeshToonMaterial) && material.normalMap) {
696
- const normalMapDef = { index: this.processTexture(material.normalMap) };
697
- if (material.normalScale && material.normalScale.x !== 1) {
698
- normalMapDef.scale = material.normalScale.x;
699
- }
700
- this.applyTextureTransform(normalMapDef, material.normalMap);
701
- materialDef.normalTexture = normalMapDef;
702
- }
703
- if ((material instanceof MeshBasicMaterial || material instanceof MeshLambertMaterial || material instanceof MeshPhongMaterial || material instanceof MeshStandardMaterial || material instanceof MeshToonMaterial) && material.aoMap) {
704
- const occlusionMapDef = {
705
- index: this.processTexture(material.aoMap),
706
- texCoord: 1
707
- };
708
- if (material.aoMapIntensity !== 1) {
709
- occlusionMapDef.strength = material.aoMapIntensity;
710
- }
711
- this.applyTextureTransform(occlusionMapDef, material.aoMap);
712
- materialDef.occlusionTexture = occlusionMapDef;
713
- }
714
- if (material.transparent) {
715
- materialDef.alphaMode = "BLEND";
716
- } else {
717
- if (material.alphaTest > 0) {
718
- materialDef.alphaMode = "MASK";
719
- materialDef.alphaCutoff = material.alphaTest;
720
- }
721
- }
722
- if (material.side === DoubleSide)
723
- materialDef.doubleSided = true;
724
- if (material.name !== "")
725
- materialDef.name = material.name;
726
- this.serializeUserData(material, materialDef);
727
- this._invokeAll(function(ext) {
728
- ext.writeMaterial && ext.writeMaterial(material, materialDef);
729
- });
730
- const index = json.materials.push(materialDef) - 1;
731
- cache.materials.set(material, index);
732
- return index;
733
- }
734
- processMesh(mesh) {
735
- const cache = this.cache;
736
- const json = this.json;
737
- const meshCacheKeyParts = [mesh.geometry.uuid];
738
- if (Array.isArray(mesh.material)) {
739
- for (let i = 0, l = mesh.material.length; i < l; i++) {
740
- meshCacheKeyParts.push(mesh.material[i].uuid);
741
- }
742
- } else {
743
- meshCacheKeyParts.push(mesh.material.uuid);
744
- }
745
- const meshCacheKey = meshCacheKeyParts.join(":");
746
- if (cache.meshes.has(meshCacheKey))
747
- return cache.meshes.get(meshCacheKey);
748
- const geometry = mesh.geometry;
749
- let mode;
750
- if (mesh instanceof LineSegments && mesh.isLineSegments) {
751
- mode = WEBGL_CONSTANTS.LINES;
752
- } else if (mesh instanceof LineLoop && mesh.isLineLoop) {
753
- mode = WEBGL_CONSTANTS.LINE_LOOP;
754
- } else if (mesh instanceof Line && mesh.isLine) {
755
- mode = WEBGL_CONSTANTS.LINE_STRIP;
756
- } else if (mesh instanceof Points && mesh.isPoints) {
757
- mode = WEBGL_CONSTANTS.POINTS;
758
- } else {
759
- mode = (mesh.material instanceof MeshBasicMaterial || mesh.material instanceof MeshDepthMaterial || mesh.material instanceof MeshLambertMaterial || mesh.material instanceof MeshNormalMaterial || mesh.material instanceof MeshPhongMaterial || mesh.material instanceof MeshStandardMaterial || mesh.material instanceof MeshToonMaterial || mesh.material instanceof ShaderMaterial) && mesh.material.wireframe ? WEBGL_CONSTANTS.LINES : WEBGL_CONSTANTS.TRIANGLES;
760
- }
761
- if (!geometry.isBufferGeometry) {
762
- throw new Error("THREE.GLTFExporter: Geometry is not of type THREE.BufferGeometry.");
763
- }
764
- const meshDef = {};
765
- const attributes = {};
766
- const primitives = [];
767
- const targets = [];
768
- const nameConversion = {
769
- uv: "TEXCOORD_0",
770
- uv2: "TEXCOORD_1",
771
- color: "COLOR_0",
772
- skinWeight: "WEIGHTS_0",
773
- skinIndex: "JOINTS_0"
774
- };
775
- const originalNormal = geometry.getAttribute("normal");
776
- if (originalNormal !== void 0 && !(originalNormal instanceof InterleavedBufferAttribute) && !this.isNormalizedNormalAttribute(originalNormal)) {
777
- console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.");
778
- geometry.setAttribute("normal", this.createNormalizedNormalAttribute(originalNormal));
779
- }
780
- let modifiedAttribute = null;
781
- for (let attributeName in geometry.attributes) {
782
- if (attributeName.substr(0, 5) === "morph")
783
- continue;
784
- const attribute = geometry.attributes[attributeName];
785
- attributeName = nameConversion[attributeName] || attributeName.toUpperCase();
786
- const validVertexAttributes = /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/;
787
- if (!validVertexAttributes.test(attributeName))
788
- attributeName = "_" + attributeName;
789
- if (cache.attributes.has(this.getUID(attribute))) {
790
- attributes[attributeName] = cache.attributes.get(this.getUID(attribute));
791
- continue;
792
- }
793
- modifiedAttribute = null;
794
- const array = attribute.array;
795
- if (attributeName === "JOINTS_0" && !(array instanceof Uint16Array) && !(array instanceof Uint8Array)) {
796
- console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.');
797
- modifiedAttribute = new BufferAttribute(new Uint16Array(array), attribute.itemSize, attribute.normalized);
798
- }
799
- const accessor = modifiedAttribute !== null && this.processAccessor(modifiedAttribute || attribute, geometry);
800
- if (accessor) {
801
- attributes[attributeName] = accessor;
802
- cache.attributes.set(this.getUID(attribute), accessor);
803
- }
804
- }
805
- if (originalNormal !== void 0)
806
- geometry.setAttribute("normal", originalNormal);
807
- if (Object.keys(attributes).length === 0)
808
- return null;
809
- if (mesh.morphTargetInfluences !== void 0 && mesh.morphTargetInfluences.length > 0) {
810
- const weights = [];
811
- const targetNames = [];
812
- const reverseDictionary = {};
813
- if (mesh.morphTargetDictionary !== void 0) {
814
- for (const key in mesh.morphTargetDictionary) {
815
- reverseDictionary[mesh.morphTargetDictionary[key]] = key;
816
- }
817
- }
818
- for (let i = 0; i < mesh.morphTargetInfluences.length; ++i) {
819
- const target = {};
820
- let warned = false;
821
- for (const attributeName in geometry.morphAttributes) {
822
- if (attributeName !== "position" && attributeName !== "normal") {
823
- if (!warned) {
824
- console.warn("GLTFExporter: Only POSITION and NORMAL morph are supported.");
825
- warned = true;
826
- }
827
- continue;
828
- }
829
- const attribute = geometry.morphAttributes[attributeName][i];
830
- const gltfAttributeName = attributeName.toUpperCase();
831
- const baseAttribute = geometry.attributes[attributeName];
832
- if (cache.attributes.has(this.getUID(attribute))) {
833
- target[gltfAttributeName] = cache.attributes.get(this.getUID(attribute));
834
- continue;
835
- }
836
- const relativeAttribute = attribute.clone();
837
- if (!geometry.morphTargetsRelative) {
838
- for (let j = 0, jl = attribute.count; j < jl; j++) {
839
- relativeAttribute.setXYZ(
840
- j,
841
- attribute.getX(j) - baseAttribute.getX(j),
842
- attribute.getY(j) - baseAttribute.getY(j),
843
- attribute.getZ(j) - baseAttribute.getZ(j)
844
- );
845
- }
846
- }
847
- const accessor = this.processAccessor(relativeAttribute, geometry);
848
- if (accessor != void 0) {
849
- target[gltfAttributeName] = accessor;
850
- }
851
- cache.attributes.set(this.getUID(baseAttribute), target[gltfAttributeName]);
852
- }
853
- targets.push(target);
854
- weights.push(mesh.morphTargetInfluences[i]);
855
- if (mesh.morphTargetDictionary !== void 0)
856
- targetNames.push(reverseDictionary[i]);
857
- }
858
- meshDef.weights = weights;
859
- if (targetNames.length > 0) {
860
- meshDef.extras = {};
861
- meshDef.extras.targetNames = targetNames;
862
- }
863
- }
864
- const isMultiMaterial = Array.isArray(mesh.material);
865
- if (isMultiMaterial && geometry.groups.length === 0)
866
- return null;
867
- const materials = isMultiMaterial ? mesh.material : [mesh.material];
868
- const groups = isMultiMaterial ? geometry.groups : [{ materialIndex: 0, start: void 0, count: void 0 }];
869
- for (let i = 0, il = groups.length; i < il; i++) {
870
- const primitive = {
871
- mode,
872
- attributes
873
- };
874
- if (geometry instanceof Object3D || geometry instanceof Material) {
875
- this.serializeUserData(geometry, primitive);
876
- }
877
- if (targets.length > 0)
878
- primitive.targets = targets;
879
- if (geometry.index !== null) {
880
- let cacheKey = this.getUID(geometry.index);
881
- if (groups[i].start !== void 0 || groups[i].count !== void 0) {
882
- cacheKey += `:${groups[i].start}:${groups[i].count}`;
883
- }
884
- if (cache.attributes.has(cacheKey)) {
885
- primitive.indices = cache.attributes.get(cacheKey);
886
- } else {
887
- primitive.indices = this.processAccessor(geometry.index, geometry, groups[i].start, groups[i].count);
888
- cache.attributes.set(cacheKey, primitive.indices);
889
- }
890
- if (primitive.indices === null)
891
- delete primitive.indices;
892
- }
893
- const materialIndex = groups[i].materialIndex;
894
- if (materialIndex !== void 0 && Array.isArray(materials)) {
895
- const targetMaterials = materials[materialIndex];
896
- if (!Array.isArray(targetMaterials)) {
897
- const material = this.processMaterial(targetMaterials);
898
- if (material !== null)
899
- primitive.material = material;
900
- primitives.push(primitive);
901
- }
902
- }
903
- }
904
- meshDef.primitives = primitives;
905
- if (!json.meshes)
906
- json.meshes = [];
907
- this._invokeAll(function(ext) {
908
- ext.writeMesh && ext.writeMesh(mesh, meshDef);
909
- });
910
- const index = json.meshes.push(meshDef) - 1;
911
- cache.meshes.set(meshCacheKey, index);
912
- return index;
913
- }
914
- processCamera(camera) {
915
- const json = this.json;
916
- if (!json.cameras)
917
- json.cameras = [];
918
- const isOrtho = camera instanceof OrthographicCamera && camera.isOrthographicCamera;
919
- const cameraDef = {
920
- type: isOrtho ? "orthographic" : "perspective"
921
- };
922
- if (camera instanceof OrthographicCamera && isOrtho) {
923
- cameraDef.orthographic = {
924
- xmag: camera.right * 2,
925
- ymag: camera.top * 2,
926
- zfar: camera.far <= 0 ? 1e-3 : camera.far,
927
- znear: camera.near < 0 ? 0 : camera.near
928
- };
929
- } else if (camera instanceof PerspectiveCamera) {
930
- cameraDef.perspective = {
931
- aspectRatio: camera.aspect,
932
- yfov: MathUtils.degToRad(camera.fov),
933
- zfar: camera.far <= 0 ? 1e-3 : camera.far,
934
- znear: camera.near < 0 ? 0 : camera.near
935
- };
936
- }
937
- if (camera.name !== "")
938
- cameraDef.name = camera.type;
939
- return json.cameras.push(cameraDef) - 1;
940
- }
941
- processAnimation(clip, root) {
942
- const json = this.json;
943
- const nodeMap = this.nodeMap;
944
- if (!json.animations)
945
- json.animations = [];
946
- clip = GLTFExporter.Utils.mergeMorphTargetTracks(clip.clone(), root);
947
- const tracks = clip.tracks;
948
- const channels = [];
949
- const samplers = [];
950
- for (let i = 0; i < tracks.length; ++i) {
951
- const track = tracks[i];
952
- const trackBinding = PropertyBinding.parseTrackName(track.name);
953
- let trackNode = PropertyBinding.findNode(root, trackBinding.nodeName);
954
- const trackProperty = PATH_PROPERTIES[trackBinding.propertyName];
955
- if (trackBinding.objectName === "bones") {
956
- if (trackNode.isSkinnedMesh) {
957
- trackNode = trackNode.skeleton.getBoneByName(trackBinding.objectIndex);
958
- } else {
959
- trackNode = void 0;
960
- }
961
- }
962
- if (!trackNode || !trackProperty) {
963
- console.warn('THREE.GLTFExporter: Could not export animation track "%s".', track.name);
964
- return null;
965
- }
966
- const inputItemSize = 1;
967
- let outputItemSize = track.values.length / track.times.length;
968
- if (trackProperty === PATH_PROPERTIES.morphTargetInfluences) {
969
- outputItemSize /= trackNode.morphTargetInfluences.length;
970
- }
971
- let interpolation;
972
- if (track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {
973
- interpolation = "CUBICSPLINE";
974
- outputItemSize /= 3;
975
- } else if (track.getInterpolation() === InterpolateDiscrete) {
976
- interpolation = "STEP";
977
- } else {
978
- interpolation = "LINEAR";
979
- }
980
- samplers.push({
981
- input: this.processAccessor(new BufferAttribute(track.times, inputItemSize)),
982
- output: this.processAccessor(new BufferAttribute(track.values, outputItemSize)),
983
- interpolation
984
- });
985
- channels.push({
986
- sampler: samplers.length - 1,
987
- target: {
988
- node: nodeMap.get(trackNode),
989
- path: trackProperty
990
- }
991
- });
992
- }
993
- json.animations.push({
994
- name: clip.name || "clip_" + json.animations.length,
995
- samplers,
996
- channels
997
- });
998
- return json.animations.length - 1;
999
- }
1000
- processSkin(object) {
1001
- const json = this.json;
1002
- const nodeMap = this.nodeMap;
1003
- if (json.nodes !== void 0 && object instanceof SkinnedMesh) {
1004
- const node = json.nodes[nodeMap.get(object)];
1005
- const skeleton = object.skeleton;
1006
- if (skeleton === void 0)
1007
- return null;
1008
- const rootJoint = object.skeleton.bones[0];
1009
- if (rootJoint === void 0)
1010
- return null;
1011
- const joints = [];
1012
- const inverseBindMatrices = new Float32Array(skeleton.bones.length * 16);
1013
- const temporaryBoneInverse = new Matrix4();
1014
- for (let i = 0; i < skeleton.bones.length; ++i) {
1015
- joints.push(nodeMap.get(skeleton.bones[i]));
1016
- temporaryBoneInverse.copy(skeleton.boneInverses[i]);
1017
- temporaryBoneInverse.multiply(object.bindMatrix).toArray(inverseBindMatrices, i * 16);
1018
- }
1019
- if (json.skins === void 0)
1020
- json.skins = [];
1021
- json.skins.push({
1022
- inverseBindMatrices: this.processAccessor(new BufferAttribute(inverseBindMatrices, 16)),
1023
- joints,
1024
- skeleton: nodeMap.get(rootJoint)
1025
- });
1026
- const skinIndex = node.skin = json.skins.length - 1;
1027
- return skinIndex;
1028
- } else {
1029
- return null;
1030
- }
1031
- }
1032
- processNode(object) {
1033
- const json = this.json;
1034
- const options = this.options;
1035
- const nodeMap = this.nodeMap;
1036
- if (!json.nodes)
1037
- json.nodes = [];
1038
- const nodeDef = {};
1039
- if (options.trs) {
1040
- const rotation = object.quaternion.toArray();
1041
- const position = object.position.toArray();
1042
- const scale = object.scale.toArray();
1043
- if (!this.equalArray(rotation, [0, 0, 0, 1])) {
1044
- nodeDef.rotation = rotation;
1045
- }
1046
- if (!this.equalArray(position, [0, 0, 0])) {
1047
- nodeDef.translation = position;
1048
- }
1049
- if (!this.equalArray(scale, [1, 1, 1])) {
1050
- nodeDef.scale = scale;
1051
- }
1052
- } else {
1053
- if (object.matrixAutoUpdate) {
1054
- object.updateMatrix();
1055
- }
1056
- if (!this.isIdentityMatrix(object.matrix)) {
1057
- nodeDef.matrix = object.matrix.elements;
1058
- }
1059
- }
1060
- if (object.name !== "")
1061
- nodeDef.name = String(object.name);
1062
- this.serializeUserData(object, nodeDef);
1063
- if ((object instanceof Mesh && object.isMesh || object instanceof Line && object.isLine || object instanceof Points && object.isPoints) && object instanceof Mesh) {
1064
- const meshIndex = this.processMesh(object);
1065
- if (meshIndex !== null)
1066
- nodeDef.mesh = meshIndex;
1067
- } else if (object instanceof Camera && object.isCamera) {
1068
- nodeDef.camera = this.processCamera(object);
1069
- }
1070
- if (object instanceof SkinnedMesh && object.isSkinnedMesh)
1071
- this.skins.push(object);
1072
- if (object.children.length > 0) {
1073
- const children = [];
1074
- for (let i = 0, l = object.children.length; i < l; i++) {
1075
- const child = object.children[i];
1076
- if (child.visible || !options.onlyVisible) {
1077
- const nodeIndex2 = this.processNode(child);
1078
- if (nodeIndex2 !== null)
1079
- children.push(nodeIndex2);
1080
- }
1081
- }
1082
- if (children.length > 0)
1083
- nodeDef.children = children;
1084
- }
1085
- this._invokeAll(function(ext) {
1086
- ext.writeNode && ext.writeNode(object, nodeDef);
1087
- });
1088
- const nodeIndex = json.nodes.push(nodeDef) - 1;
1089
- nodeMap.set(object, nodeIndex);
1090
- return nodeIndex;
1091
- }
1092
- processScene(scene) {
1093
- const json = this.json;
1094
- const options = this.options;
1095
- if (!json.scenes) {
1096
- json.scenes = [];
1097
- json.scene = 0;
1098
- }
1099
- const sceneDef = {};
1100
- if (scene.name !== "")
1101
- sceneDef.name = scene.name;
1102
- json.scenes.push(sceneDef);
1103
- const nodes = [];
1104
- for (let i = 0, l = scene.children.length; i < l; i++) {
1105
- const child = scene.children[i];
1106
- if (child.visible || !options.onlyVisible) {
1107
- const nodeIndex = this.processNode(child);
1108
- if (nodeIndex !== null)
1109
- nodes.push(nodeIndex);
1110
- }
1111
- }
1112
- if (nodes.length > 0)
1113
- sceneDef.nodes = nodes;
1114
- this.serializeUserData(scene, sceneDef);
1115
- }
1116
- processObjects(objects) {
1117
- const scene = new Scene();
1118
- scene.name = "AuxScene";
1119
- for (let i = 0; i < objects.length; i++) {
1120
- scene.children.push(objects[i]);
1121
- }
1122
- this.processScene(scene);
1123
- }
1124
- processInput(input) {
1125
- const options = this.options;
1126
- input = input instanceof Array ? input : [input];
1127
- this._invokeAll(function(ext) {
1128
- ext.beforeParse && ext.beforeParse(input);
1129
- });
1130
- const objectsWithoutScene = [];
1131
- for (let i = 0; i < input.length; i++) {
1132
- const inputScene = input[i];
1133
- if (inputScene instanceof Scene) {
1134
- this.processScene(inputScene);
1135
- } else {
1136
- objectsWithoutScene.push(input[i]);
1137
- }
1138
- }
1139
- if (objectsWithoutScene.length > 0)
1140
- this.processObjects(objectsWithoutScene);
1141
- for (let i = 0; i < this.skins.length; ++i) {
1142
- this.processSkin(this.skins[i]);
1143
- }
1144
- for (let i = 0; options.animations !== void 0 && i < options.animations.length; ++i) {
1145
- this.processAnimation(options.animations[i], input[0]);
1146
- }
1147
- this._invokeAll(function(ext) {
1148
- ext.afterParse && ext.afterParse(input);
1149
- });
1150
- }
1151
- _invokeAll(func) {
1152
- for (let i = 0, il = this.plugins.length; i < il; i++) {
1153
- func(this.plugins[i]);
1154
- }
1155
- }
1156
- equalArray(array1, array2) {
1157
- return array1.length === array2.length && array1.every(function(element, index) {
1158
- return element === array2[index];
1159
- });
1160
- }
1161
- stringToArrayBuffer(text) {
1162
- if (window.TextEncoder !== void 0) {
1163
- return new TextEncoder().encode(text).buffer;
1164
- }
1165
- const array = new Uint8Array(new ArrayBuffer(text.length));
1166
- for (let i = 0, il = text.length; i < il; i++) {
1167
- const value = text.charCodeAt(i);
1168
- array[i] = value > 255 ? 32 : value;
1169
- }
1170
- return array.buffer;
1171
- }
1172
- isIdentityMatrix(matrix) {
1173
- return this.equalArray(matrix.elements, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
1174
- }
1175
- getMinMax(attribute, start, count) {
1176
- const output = {
1177
- min: new Array(attribute.itemSize).fill(Number.POSITIVE_INFINITY),
1178
- max: new Array(attribute.itemSize).fill(Number.NEGATIVE_INFINITY)
1179
- };
1180
- for (let i = start; i < start + count; i++) {
1181
- for (let a = 0; a < attribute.itemSize; a++) {
1182
- let value;
1183
- if (attribute.itemSize > 4) {
1184
- value = attribute.array[i * attribute.itemSize + a];
1185
- } else {
1186
- if (a === 0)
1187
- value = attribute.getX(i);
1188
- else if (a === 1)
1189
- value = attribute.getY(i);
1190
- else if (a === 2)
1191
- value = attribute.getZ(i);
1192
- else if (a === 3)
1193
- value = attribute.getW(i);
1194
- }
1195
- if (value !== void 0) {
1196
- output.min[a] = Math.min(output.min[a], value);
1197
- output.max[a] = Math.max(output.max[a], value);
1198
- }
1199
- }
1200
- }
1201
- return output;
1202
- }
1203
- getPaddedBufferSize(bufferSize) {
1204
- return Math.ceil(bufferSize / 4) * 4;
1205
- }
1206
- getPaddedArrayBuffer(arrayBuffer, paddingByte = 0) {
1207
- const paddedLength = this.getPaddedBufferSize(arrayBuffer.byteLength);
1208
- if (paddedLength !== arrayBuffer.byteLength) {
1209
- const array = new Uint8Array(paddedLength);
1210
- array.set(new Uint8Array(arrayBuffer));
1211
- if (paddingByte !== 0) {
1212
- for (let i = arrayBuffer.byteLength; i < paddedLength; i++) {
1213
- array[i] = paddingByte;
1214
- }
1215
- }
1216
- return array.buffer;
1217
- }
1218
- return arrayBuffer;
1219
- }
1220
- }
1221
- class GLTFLightExtension {
1222
- constructor(writer) {
1223
- this.writer = writer;
1224
- this.name = "KHR_lights_punctual";
1225
- }
1226
- writeNode(light, nodeDef) {
1227
- if (!light.isLight)
1228
- return;
1229
- if (!(light instanceof DirectionalLight && light.isDirectionalLight) && !(light instanceof PointLight && light.isPointLight) && !(light instanceof SpotLight && light.isSpotLight)) {
1230
- console.warn("THREE.GLTFExporter: Only directional, point, and spot lights are supported.", light);
1231
- return;
1232
- }
1233
- const writer = this.writer;
1234
- const json = writer.json;
1235
- const extensionsUsed = writer.extensionsUsed;
1236
- const lightDef = {};
1237
- if (light.name)
1238
- lightDef.name = light.name;
1239
- lightDef.color = light.color.toArray();
1240
- lightDef.intensity = light.intensity;
1241
- if (light instanceof DirectionalLight && light.isDirectionalLight) {
1242
- lightDef.type = "directional";
1243
- } else if (light instanceof PointLight && light.isPointLight) {
1244
- lightDef.type = "point";
1245
- if (light.distance > 0)
1246
- lightDef.range = light.distance;
1247
- } else if (light instanceof SpotLight && light.isSpotLight) {
1248
- lightDef.type = "spot";
1249
- if (light.distance > 0)
1250
- lightDef.range = light.distance;
1251
- lightDef.spot = {};
1252
- lightDef.spot.innerConeAngle = (light.penumbra - 1) * light.angle * -1;
1253
- lightDef.spot.outerConeAngle = light.angle;
1254
- }
1255
- if (!(light instanceof DirectionalLight) && light.decay !== void 0 && light.decay !== 2) {
1256
- console.warn(
1257
- "THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."
1258
- );
1259
- }
1260
- if (!(light instanceof PointLight) && light.target && (light.target.parent !== light || light.target.position.x !== 0 || light.target.position.y !== 0 || light.target.position.z !== -1)) {
1261
- console.warn(
1262
- "THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."
1263
- );
1264
- }
1265
- if (!extensionsUsed[this.name]) {
1266
- json.extensions = json.extensions || {};
1267
- json.extensions[this.name] = { lights: [] };
1268
- extensionsUsed[this.name] = true;
1269
- }
1270
- if (json.extensions !== void 0) {
1271
- const lights = json.extensions[this.name].lights;
1272
- lights.push(lightDef);
1273
- nodeDef.extensions = nodeDef.extensions || {};
1274
- nodeDef.extensions[this.name] = { light: lights.length - 1 };
1275
- }
1276
- }
1277
- }
1278
- class GLTFMaterialsUnlitExtension {
1279
- constructor(writer) {
1280
- this.writer = writer;
1281
- this.name = "KHR_materials_unlit";
1282
- }
1283
- writeMaterial(material, materialDef) {
1284
- if (!(material instanceof MeshBasicMaterial && material.isMeshBasicMaterial)) {
1285
- return;
1286
- }
1287
- const writer = this.writer;
1288
- const extensionsUsed = writer.extensionsUsed;
1289
- materialDef.extensions = materialDef.extensions || {};
1290
- materialDef.extensions[this.name] = {};
1291
- extensionsUsed[this.name] = true;
1292
- materialDef.pbrMetallicRoughness.metallicFactor = 0;
1293
- materialDef.pbrMetallicRoughness.roughnessFactor = 0.9;
1294
- }
1295
- }
1296
- class GLTFMaterialsPBRSpecularGlossiness {
1297
- constructor(writer) {
1298
- this.writer = writer;
1299
- this.name = "KHR_materials_pbrSpecularGlossiness";
1300
- }
1301
- writeMaterial(material, materialDef) {
1302
- if (!material.isGLTFSpecularGlossinessMaterial)
1303
- return;
1304
- const writer = this.writer;
1305
- const extensionsUsed = writer.extensionsUsed;
1306
- const extensionDef = {};
1307
- if (materialDef.pbrMetallicRoughness.baseColorFactor) {
1308
- extensionDef.diffuseFactor = materialDef.pbrMetallicRoughness.baseColorFactor;
1309
- }
1310
- if (material instanceof MeshPhongMaterial) {
1311
- const specularFactor = [1, 1, 1];
1312
- material.specular.toArray(specularFactor, 0);
1313
- extensionDef.specularFactor = specularFactor;
1314
- extensionDef.glossinessFactor = material.glossiness;
1315
- }
1316
- if (materialDef.pbrMetallicRoughness.baseColorTexture) {
1317
- extensionDef.diffuseTexture = materialDef.pbrMetallicRoughness.baseColorTexture;
1318
- }
1319
- if ((material instanceof MeshBasicMaterial || material instanceof MeshLambertMaterial || material instanceof MeshPhongMaterial) && material.specularMap) {
1320
- const specularMapDef = { index: writer.processTexture(material.specularMap) };
1321
- writer.applyTextureTransform(specularMapDef, material.specularMap);
1322
- extensionDef.specularGlossinessTexture = specularMapDef;
1323
- }
1324
- materialDef.extensions = materialDef.extensions || {};
1325
- materialDef.extensions[this.name] = extensionDef;
1326
- extensionsUsed[this.name] = true;
1327
- }
1328
- }
1329
- class GLTFMaterialsTransmissionExtension {
1330
- constructor(writer) {
1331
- this.writer = writer;
1332
- this.name = "KHR_materials_transmission";
1333
- }
1334
- writeMaterial(material, materialDef) {
1335
- if (!(material instanceof MeshPhysicalMaterial && material.isMeshPhysicalMaterial) || material.transmission === 0) {
1336
- return;
1337
- }
1338
- const writer = this.writer;
1339
- const extensionsUsed = writer.extensionsUsed;
1340
- const extensionDef = {};
1341
- extensionDef.transmissionFactor = material.transmission;
1342
- if (material.transmissionMap) {
1343
- const transmissionMapDef = { index: writer.processTexture(material.transmissionMap) };
1344
- writer.applyTextureTransform(transmissionMapDef, material.transmissionMap);
1345
- extensionDef.transmissionTexture = transmissionMapDef;
1346
- }
1347
- materialDef.extensions = materialDef.extensions || {};
1348
- materialDef.extensions[this.name] = extensionDef;
1349
- extensionsUsed[this.name] = true;
1350
- }
1351
- }
1352
- class GLTFMaterialsVolumeExtension {
1353
- constructor(writer) {
1354
- this.writer = writer;
1355
- this.name = "KHR_materials_volume";
1356
- }
1357
- writeMaterial(material, materialDef) {
1358
- if (!(material instanceof MeshPhysicalMaterial && material.isMeshPhysicalMaterial) || material.thickness === 0) {
1359
- return;
1360
- }
1361
- const writer = this.writer;
1362
- const extensionsUsed = writer.extensionsUsed;
1363
- const extensionDef = {};
1364
- extensionDef.thickness = material.thickness;
1365
- if (material.thicknessMap) {
1366
- const thicknessMapDef = {
1367
- index: writer.processTexture(material.thicknessMap)
1368
- };
1369
- writer.applyTextureTransform(thicknessMapDef, material.thicknessMap);
1370
- extensionDef.thicknessTexture = thicknessMapDef;
1371
- }
1372
- extensionDef.attenuationDistance = material.attenuationDistance;
1373
- extensionDef.attenuationColor = material.attenuationTint.toArray();
1374
- materialDef.extensions = materialDef.extensions || {};
1375
- materialDef.extensions[this.name] = extensionDef;
1376
- extensionsUsed[this.name] = true;
1377
- }
1378
- }
1379
- export {
1380
- GLTFExporter
1381
- };