three-stdlib 2.35.4 → 2.35.5

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 (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +17 -20
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +17 -20
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +715 -722
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +716 -723
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +1 -2
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +2 -3
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +1 -2
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +2 -3
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +1 -2
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +2 -3
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +122 -133
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +21 -23
  68. package/exporters/DRACOExporter.js +122 -133
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +167 -170
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +167 -170
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +515 -524
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +515 -524
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +1 -2
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +2 -3
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +435 -441
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +435 -441
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +1 -2
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +2 -3
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +374 -377
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +374 -377
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +4 -5
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +5 -6
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +43 -46
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +43 -46
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1688 -1694
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1688 -1694
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +50 -53
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +50 -53
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +268 -271
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +269 -272
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +1 -2
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +2 -3
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +206 -209
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +206 -209
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +146 -154
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +146 -154
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +180 -183
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +180 -183
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +161 -164
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +161 -164
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +32 -35
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +6 -100
  258. package/objects/Sky.js +32 -35
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +1 -2
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +2 -3
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +140 -143
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +140 -143
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +264 -267
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +264 -267
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +250 -253
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +250 -253
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +376 -379
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +376 -379
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +202 -205
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +202 -205
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +46 -71
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +46 -71
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +22 -41
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +22 -41
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +6 -20
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +6 -20
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +26 -46
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +26 -46
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +19 -33
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +19 -33
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +90 -117
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +90 -117
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +232 -333
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +232 -333
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +22 -38
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +22 -38
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +21 -35
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +21 -35
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +19 -34
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +19 -34
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +24 -43
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +24 -43
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +16 -30
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +16 -30
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +21 -38
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +21 -38
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +69 -98
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +69 -98
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +59 -70
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +59 -70
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +28 -49
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +28 -49
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1089 -1098
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1089 -1098
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +29 -57
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +29 -57
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +43 -70
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +43 -70
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +53 -74
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +53 -74
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +35 -55
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +35 -55
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +19 -33
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +19 -33
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +116 -193
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +116 -193
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +192 -270
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +192 -270
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +27 -43
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +27 -43
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +31 -47
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +31 -47
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +24 -37
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +24 -37
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +24 -43
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +24 -43
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +17 -34
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +17 -34
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +26 -39
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +26 -39
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +21 -36
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +21 -36
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +97 -147
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +97 -147
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +18 -31
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +18 -31
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +20 -33
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +20 -33
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +117 -154
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +117 -154
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +270 -358
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +270 -358
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +142 -236
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +142 -236
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +20 -36
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +20 -36
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +37 -64
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +37 -64
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +16 -29
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +16 -29
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +35 -55
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +35 -55
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +165 -275
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +165 -275
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +27 -50
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +27 -50
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +17 -32
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +17 -32
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +27 -43
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +27 -43
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +27 -43
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +27 -43
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +213 -264
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +213 -264
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +35 -63
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +35 -63
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +1 -2
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +2 -3
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +106 -109
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +3 -4
  500. package/webxr/ARButton.js +106 -109
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +95 -98
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +5 -6
  509. package/webxr/VRButton.js +95 -98
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -21,405 +21,402 @@ const SRGBColorSpace = "srgb";
21
21
  const _taskCache = /* @__PURE__ */ new WeakMap();
22
22
  let _activeLoaders = 0;
23
23
  let _zstd;
24
- const KTX2Loader = /* @__PURE__ */ (() => {
25
- const _KTX2Loader = class extends Loader {
26
- constructor(manager) {
27
- super(manager);
28
- this.transcoderPath = "";
29
- this.transcoderBinary = null;
30
- this.transcoderPending = null;
31
- this.workerPool = new WorkerPool();
32
- this.workerSourceURL = "";
33
- this.workerConfig = null;
34
- if (typeof MSC_TRANSCODER !== "undefined") {
24
+ const _KTX2Loader = class extends Loader {
25
+ constructor(manager) {
26
+ super(manager);
27
+ this.transcoderPath = "";
28
+ this.transcoderBinary = null;
29
+ this.transcoderPending = null;
30
+ this.workerPool = new WorkerPool();
31
+ this.workerSourceURL = "";
32
+ this.workerConfig = null;
33
+ if (typeof MSC_TRANSCODER !== "undefined") {
34
+ console.warn(
35
+ 'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
36
+ );
37
+ }
38
+ }
39
+ setTranscoderPath(path) {
40
+ this.transcoderPath = path;
41
+ return this;
42
+ }
43
+ setWorkerLimit(num) {
44
+ this.workerPool.setWorkerLimit(num);
45
+ return this;
46
+ }
47
+ detectSupport(renderer) {
48
+ this.workerConfig = {
49
+ astcSupported: renderer.extensions.has("WEBGL_compressed_texture_astc"),
50
+ etc1Supported: renderer.extensions.has("WEBGL_compressed_texture_etc1"),
51
+ etc2Supported: renderer.extensions.has("WEBGL_compressed_texture_etc"),
52
+ dxtSupported: renderer.extensions.has("WEBGL_compressed_texture_s3tc"),
53
+ bptcSupported: renderer.extensions.has("EXT_texture_compression_bptc"),
54
+ pvrtcSupported: renderer.extensions.has("WEBGL_compressed_texture_pvrtc") || renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")
55
+ };
56
+ if (renderer.capabilities.isWebGL2) {
57
+ this.workerConfig.etc1Supported = false;
58
+ }
59
+ return this;
60
+ }
61
+ init() {
62
+ if (!this.transcoderPending) {
63
+ const jsLoader = new FileLoader(this.manager);
64
+ jsLoader.setPath(this.transcoderPath);
65
+ jsLoader.setWithCredentials(this.withCredentials);
66
+ const jsContent = jsLoader.loadAsync("basis_transcoder.js");
67
+ const binaryLoader = new FileLoader(this.manager);
68
+ binaryLoader.setPath(this.transcoderPath);
69
+ binaryLoader.setResponseType("arraybuffer");
70
+ binaryLoader.setWithCredentials(this.withCredentials);
71
+ const binaryContent = binaryLoader.loadAsync("basis_transcoder.wasm");
72
+ this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent2, binaryContent2]) => {
73
+ const fn = _KTX2Loader.BasisWorker.toString();
74
+ const body = [
75
+ "/* constants */",
76
+ "let _EngineFormat = " + JSON.stringify(_KTX2Loader.EngineFormat),
77
+ "let _TranscoderFormat = " + JSON.stringify(_KTX2Loader.TranscoderFormat),
78
+ "let _BasisFormat = " + JSON.stringify(_KTX2Loader.BasisFormat),
79
+ "/* basis_transcoder.js */",
80
+ jsContent2,
81
+ "/* worker */",
82
+ fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
83
+ ].join("\n");
84
+ this.workerSourceURL = URL.createObjectURL(new Blob([body]));
85
+ this.transcoderBinary = binaryContent2;
86
+ this.workerPool.setWorkerCreator(() => {
87
+ const worker = new Worker(this.workerSourceURL);
88
+ const transcoderBinary = this.transcoderBinary.slice(0);
89
+ worker.postMessage({ type: "init", config: this.workerConfig, transcoderBinary }, [transcoderBinary]);
90
+ return worker;
91
+ });
92
+ });
93
+ if (_activeLoaders > 0) {
35
94
  console.warn(
36
- 'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
95
+ "THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
37
96
  );
38
97
  }
98
+ _activeLoaders++;
39
99
  }
40
- setTranscoderPath(path) {
41
- this.transcoderPath = path;
42
- return this;
43
- }
44
- setWorkerLimit(num) {
45
- this.workerPool.setWorkerLimit(num);
46
- return this;
47
- }
48
- detectSupport(renderer) {
49
- this.workerConfig = {
50
- astcSupported: renderer.extensions.has("WEBGL_compressed_texture_astc"),
51
- etc1Supported: renderer.extensions.has("WEBGL_compressed_texture_etc1"),
52
- etc2Supported: renderer.extensions.has("WEBGL_compressed_texture_etc"),
53
- dxtSupported: renderer.extensions.has("WEBGL_compressed_texture_s3tc"),
54
- bptcSupported: renderer.extensions.has("EXT_texture_compression_bptc"),
55
- pvrtcSupported: renderer.extensions.has("WEBGL_compressed_texture_pvrtc") || renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")
56
- };
57
- if (renderer.capabilities.isWebGL2) {
58
- this.workerConfig.etc1Supported = false;
59
- }
60
- return this;
100
+ return this.transcoderPending;
101
+ }
102
+ load(url, onLoad, onProgress, onError) {
103
+ if (this.workerConfig === null) {
104
+ throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
61
105
  }
62
- init() {
63
- if (!this.transcoderPending) {
64
- const jsLoader = new FileLoader(this.manager);
65
- jsLoader.setPath(this.transcoderPath);
66
- jsLoader.setWithCredentials(this.withCredentials);
67
- const jsContent = jsLoader.loadAsync("basis_transcoder.js");
68
- const binaryLoader = new FileLoader(this.manager);
69
- binaryLoader.setPath(this.transcoderPath);
70
- binaryLoader.setResponseType("arraybuffer");
71
- binaryLoader.setWithCredentials(this.withCredentials);
72
- const binaryContent = binaryLoader.loadAsync("basis_transcoder.wasm");
73
- this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent2, binaryContent2]) => {
74
- const fn = _KTX2Loader.BasisWorker.toString();
75
- const body = [
76
- "/* constants */",
77
- "let _EngineFormat = " + JSON.stringify(_KTX2Loader.EngineFormat),
78
- "let _TranscoderFormat = " + JSON.stringify(_KTX2Loader.TranscoderFormat),
79
- "let _BasisFormat = " + JSON.stringify(_KTX2Loader.BasisFormat),
80
- "/* basis_transcoder.js */",
81
- jsContent2,
82
- "/* worker */",
83
- fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
84
- ].join("\n");
85
- this.workerSourceURL = URL.createObjectURL(new Blob([body]));
86
- this.transcoderBinary = binaryContent2;
87
- this.workerPool.setWorkerCreator(() => {
88
- const worker = new Worker(this.workerSourceURL);
89
- const transcoderBinary = this.transcoderBinary.slice(0);
90
- worker.postMessage({ type: "init", config: this.workerConfig, transcoderBinary }, [transcoderBinary]);
91
- return worker;
92
- });
93
- });
94
- if (_activeLoaders > 0) {
95
- console.warn(
96
- "THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
97
- );
106
+ const loader = new FileLoader(this.manager);
107
+ loader.setResponseType("arraybuffer");
108
+ loader.setWithCredentials(this.withCredentials);
109
+ loader.load(
110
+ url,
111
+ (buffer) => {
112
+ if (_taskCache.has(buffer)) {
113
+ const cachedTask = _taskCache.get(buffer);
114
+ return cachedTask.promise.then(onLoad).catch(onError);
98
115
  }
99
- _activeLoaders++;
100
- }
101
- return this.transcoderPending;
116
+ this._createTexture(buffer).then((texture) => onLoad ? onLoad(texture) : null).catch(onError);
117
+ },
118
+ onProgress,
119
+ onError
120
+ );
121
+ }
122
+ _createTextureFrom(transcodeResult, container) {
123
+ const { faces, width, height, format, type, error, dfdFlags } = transcodeResult;
124
+ if (type === "error")
125
+ return Promise.reject(error);
126
+ let texture;
127
+ if (container.faceCount === 6) {
128
+ texture = new CompressedCubeTexture(faces, format, UnsignedByteType);
129
+ } else {
130
+ const mipmaps = faces[0].mipmaps;
131
+ texture = container.layerCount > 1 ? new CompressedArrayTexture(mipmaps, width, height, container.layerCount, format, UnsignedByteType) : new CompressedTexture(mipmaps, width, height, format, UnsignedByteType);
102
132
  }
103
- load(url, onLoad, onProgress, onError) {
104
- if (this.workerConfig === null) {
105
- throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
106
- }
107
- const loader = new FileLoader(this.manager);
108
- loader.setResponseType("arraybuffer");
109
- loader.setWithCredentials(this.withCredentials);
110
- loader.load(
111
- url,
112
- (buffer) => {
113
- if (_taskCache.has(buffer)) {
114
- const cachedTask = _taskCache.get(buffer);
115
- return cachedTask.promise.then(onLoad).catch(onError);
133
+ texture.minFilter = faces[0].mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter;
134
+ texture.magFilter = LinearFilter;
135
+ texture.generateMipmaps = false;
136
+ texture.needsUpdate = true;
137
+ const colorSpace = parseColorSpace(container);
138
+ if ("colorSpace" in texture)
139
+ texture.colorSpace = colorSpace;
140
+ else
141
+ texture.encoding = colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;
142
+ texture.premultiplyAlpha = !!(dfdFlags & KHR_DF_FLAG_ALPHA_PREMULTIPLIED);
143
+ return texture;
144
+ }
145
+ /**
146
+ * @param {ArrayBuffer} buffer
147
+ * @param {object?} config
148
+ * @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
149
+ */
150
+ async _createTexture(buffer, config = {}) {
151
+ const container = read(new Uint8Array(buffer));
152
+ if (container.vkFormat !== VK_FORMAT_UNDEFINED) {
153
+ return createRawTexture(container);
154
+ }
155
+ const taskConfig = config;
156
+ const texturePending = this.init().then(() => {
157
+ return this.workerPool.postMessage({ type: "transcode", buffer, taskConfig }, [buffer]);
158
+ }).then((e) => this._createTextureFrom(e.data, container));
159
+ _taskCache.set(buffer, { promise: texturePending });
160
+ return texturePending;
161
+ }
162
+ dispose() {
163
+ this.workerPool.dispose();
164
+ if (this.workerSourceURL)
165
+ URL.revokeObjectURL(this.workerSourceURL);
166
+ _activeLoaders--;
167
+ return this;
168
+ }
169
+ };
170
+ let KTX2Loader = _KTX2Loader;
171
+ /* CONSTANTS */
172
+ __publicField(KTX2Loader, "BasisFormat", {
173
+ ETC1S: 0,
174
+ UASTC_4x4: 1
175
+ });
176
+ __publicField(KTX2Loader, "TranscoderFormat", {
177
+ ETC1: 0,
178
+ ETC2: 1,
179
+ BC1: 2,
180
+ BC3: 3,
181
+ BC4: 4,
182
+ BC5: 5,
183
+ BC7_M6_OPAQUE_ONLY: 6,
184
+ BC7_M5: 7,
185
+ PVRTC1_4_RGB: 8,
186
+ PVRTC1_4_RGBA: 9,
187
+ ASTC_4x4: 10,
188
+ ATC_RGB: 11,
189
+ ATC_RGBA_INTERPOLATED_ALPHA: 12,
190
+ RGBA32: 13,
191
+ RGB565: 14,
192
+ BGR565: 15,
193
+ RGBA4444: 16
194
+ });
195
+ __publicField(KTX2Loader, "EngineFormat", {
196
+ RGBAFormat,
197
+ RGBA_ASTC_4x4_Format,
198
+ RGBA_BPTC_Format,
199
+ RGBA_ETC2_EAC_Format,
200
+ RGBA_PVRTC_4BPPV1_Format,
201
+ RGBA_S3TC_DXT5_Format,
202
+ RGB_ETC1_Format,
203
+ RGB_ETC2_Format,
204
+ RGB_PVRTC_4BPPV1_Format,
205
+ RGB_S3TC_DXT1_Format
206
+ });
207
+ /* WEB WORKER */
208
+ __publicField(KTX2Loader, "BasisWorker", function() {
209
+ let config;
210
+ let transcoderPending;
211
+ let BasisModule;
212
+ const EngineFormat = _EngineFormat;
213
+ const TranscoderFormat = _TranscoderFormat;
214
+ const BasisFormat = _BasisFormat;
215
+ self.addEventListener("message", function(e) {
216
+ const message = e.data;
217
+ switch (message.type) {
218
+ case "init":
219
+ config = message.config;
220
+ init(message.transcoderBinary);
221
+ break;
222
+ case "transcode":
223
+ transcoderPending.then(() => {
224
+ try {
225
+ const { faces, buffers, width, height, hasAlpha, format, dfdFlags } = transcode(message.buffer);
226
+ self.postMessage(
227
+ { type: "transcode", id: message.id, faces, width, height, hasAlpha, format, dfdFlags },
228
+ buffers
229
+ );
230
+ } catch (error) {
231
+ console.error(error);
232
+ self.postMessage({ type: "error", id: message.id, error: error.message });
116
233
  }
117
- this._createTexture(buffer).then((texture) => onLoad ? onLoad(texture) : null).catch(onError);
118
- },
119
- onProgress,
120
- onError
121
- );
234
+ });
235
+ break;
122
236
  }
123
- _createTextureFrom(transcodeResult, container) {
124
- const { faces, width, height, format, type, error, dfdFlags } = transcodeResult;
125
- if (type === "error")
126
- return Promise.reject(error);
127
- let texture;
128
- if (container.faceCount === 6) {
129
- texture = new CompressedCubeTexture(faces, format, UnsignedByteType);
130
- } else {
131
- const mipmaps = faces[0].mipmaps;
132
- texture = container.layerCount > 1 ? new CompressedArrayTexture(mipmaps, width, height, container.layerCount, format, UnsignedByteType) : new CompressedTexture(mipmaps, width, height, format, UnsignedByteType);
237
+ });
238
+ function init(wasmBinary) {
239
+ transcoderPending = new Promise((resolve) => {
240
+ BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
241
+ BASIS(BasisModule);
242
+ }).then(() => {
243
+ BasisModule.initializeBasis();
244
+ if (BasisModule.KTX2File === void 0) {
245
+ console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
133
246
  }
134
- texture.minFilter = faces[0].mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter;
135
- texture.magFilter = LinearFilter;
136
- texture.generateMipmaps = false;
137
- texture.needsUpdate = true;
138
- const colorSpace = parseColorSpace(container);
139
- if ("colorSpace" in texture)
140
- texture.colorSpace = colorSpace;
141
- else
142
- texture.encoding = colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;
143
- texture.premultiplyAlpha = !!(dfdFlags & KHR_DF_FLAG_ALPHA_PREMULTIPLIED);
144
- return texture;
247
+ });
248
+ }
249
+ function transcode(buffer) {
250
+ const ktx2File = new BasisModule.KTX2File(new Uint8Array(buffer));
251
+ function cleanup() {
252
+ ktx2File.close();
253
+ ktx2File.delete();
145
254
  }
146
- /**
147
- * @param {ArrayBuffer} buffer
148
- * @param {object?} config
149
- * @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
150
- */
151
- async _createTexture(buffer, config = {}) {
152
- const container = read(new Uint8Array(buffer));
153
- if (container.vkFormat !== VK_FORMAT_UNDEFINED) {
154
- return createRawTexture(container);
155
- }
156
- const taskConfig = config;
157
- const texturePending = this.init().then(() => {
158
- return this.workerPool.postMessage({ type: "transcode", buffer, taskConfig }, [buffer]);
159
- }).then((e) => this._createTextureFrom(e.data, container));
160
- _taskCache.set(buffer, { promise: texturePending });
161
- return texturePending;
255
+ if (!ktx2File.isValid()) {
256
+ cleanup();
257
+ throw new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
162
258
  }
163
- dispose() {
164
- this.workerPool.dispose();
165
- if (this.workerSourceURL)
166
- URL.revokeObjectURL(this.workerSourceURL);
167
- _activeLoaders--;
168
- return this;
259
+ const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;
260
+ const width = ktx2File.getWidth();
261
+ const height = ktx2File.getHeight();
262
+ const layerCount = ktx2File.getLayers() || 1;
263
+ const levelCount = ktx2File.getLevels();
264
+ const faceCount = ktx2File.getFaces();
265
+ const hasAlpha = ktx2File.getHasAlpha();
266
+ const dfdFlags = ktx2File.getDFDFlags();
267
+ const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha);
268
+ if (!width || !height || !levelCount) {
269
+ cleanup();
270
+ throw new Error("THREE.KTX2Loader: Invalid texture");
169
271
  }
170
- };
171
- let KTX2Loader2 = _KTX2Loader;
172
- /* CONSTANTS */
173
- __publicField(KTX2Loader2, "BasisFormat", {
174
- ETC1S: 0,
175
- UASTC_4x4: 1
176
- });
177
- __publicField(KTX2Loader2, "TranscoderFormat", {
178
- ETC1: 0,
179
- ETC2: 1,
180
- BC1: 2,
181
- BC3: 3,
182
- BC4: 4,
183
- BC5: 5,
184
- BC7_M6_OPAQUE_ONLY: 6,
185
- BC7_M5: 7,
186
- PVRTC1_4_RGB: 8,
187
- PVRTC1_4_RGBA: 9,
188
- ASTC_4x4: 10,
189
- ATC_RGB: 11,
190
- ATC_RGBA_INTERPOLATED_ALPHA: 12,
191
- RGBA32: 13,
192
- RGB565: 14,
193
- BGR565: 15,
194
- RGBA4444: 16
195
- });
196
- __publicField(KTX2Loader2, "EngineFormat", {
197
- RGBAFormat,
198
- RGBA_ASTC_4x4_Format,
199
- RGBA_BPTC_Format,
200
- RGBA_ETC2_EAC_Format,
201
- RGBA_PVRTC_4BPPV1_Format,
202
- RGBA_S3TC_DXT5_Format,
203
- RGB_ETC1_Format,
204
- RGB_ETC2_Format,
205
- RGB_PVRTC_4BPPV1_Format,
206
- RGB_S3TC_DXT1_Format
207
- });
208
- /* WEB WORKER */
209
- __publicField(KTX2Loader2, "BasisWorker", function() {
210
- let config;
211
- let transcoderPending;
212
- let BasisModule;
213
- const EngineFormat = _EngineFormat;
214
- const TranscoderFormat = _TranscoderFormat;
215
- const BasisFormat = _BasisFormat;
216
- self.addEventListener("message", function(e) {
217
- const message = e.data;
218
- switch (message.type) {
219
- case "init":
220
- config = message.config;
221
- init(message.transcoderBinary);
222
- break;
223
- case "transcode":
224
- transcoderPending.then(() => {
225
- try {
226
- const { faces, buffers, width, height, hasAlpha, format, dfdFlags } = transcode(message.buffer);
227
- self.postMessage(
228
- { type: "transcode", id: message.id, faces, width, height, hasAlpha, format, dfdFlags },
229
- buffers
230
- );
231
- } catch (error) {
232
- console.error(error);
233
- self.postMessage({ type: "error", id: message.id, error: error.message });
234
- }
235
- });
236
- break;
237
- }
238
- });
239
- function init(wasmBinary) {
240
- transcoderPending = new Promise((resolve) => {
241
- BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
242
- BASIS(BasisModule);
243
- }).then(() => {
244
- BasisModule.initializeBasis();
245
- if (BasisModule.KTX2File === void 0) {
246
- console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
247
- }
248
- });
272
+ if (!ktx2File.startTranscoding()) {
273
+ cleanup();
274
+ throw new Error("THREE.KTX2Loader: .startTranscoding failed");
249
275
  }
250
- function transcode(buffer) {
251
- const ktx2File = new BasisModule.KTX2File(new Uint8Array(buffer));
252
- function cleanup() {
253
- ktx2File.close();
254
- ktx2File.delete();
255
- }
256
- if (!ktx2File.isValid()) {
257
- cleanup();
258
- throw new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
259
- }
260
- const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;
261
- const width = ktx2File.getWidth();
262
- const height = ktx2File.getHeight();
263
- const layerCount = ktx2File.getLayers() || 1;
264
- const levelCount = ktx2File.getLevels();
265
- const faceCount = ktx2File.getFaces();
266
- const hasAlpha = ktx2File.getHasAlpha();
267
- const dfdFlags = ktx2File.getDFDFlags();
268
- const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha);
269
- if (!width || !height || !levelCount) {
270
- cleanup();
271
- throw new Error("THREE.KTX2Loader: Invalid texture");
272
- }
273
- if (!ktx2File.startTranscoding()) {
274
- cleanup();
275
- throw new Error("THREE.KTX2Loader: .startTranscoding failed");
276
- }
277
- const faces = [];
278
- const buffers = [];
279
- for (let face = 0; face < faceCount; face++) {
280
- const mipmaps = [];
281
- for (let mip = 0; mip < levelCount; mip++) {
282
- const layerMips = [];
283
- let mipWidth, mipHeight;
284
- for (let layer = 0; layer < layerCount; layer++) {
285
- const levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
286
- if (face === 0 && mip === 0 && layer === 0 && (levelInfo.origWidth % 4 !== 0 || levelInfo.origHeight % 4 !== 0)) {
287
- console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions.");
288
- }
289
- if (levelCount > 1) {
290
- mipWidth = levelInfo.origWidth;
291
- mipHeight = levelInfo.origHeight;
292
- } else {
293
- mipWidth = levelInfo.width;
294
- mipHeight = levelInfo.height;
295
- }
296
- const dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, transcoderFormat));
297
- const status = ktx2File.transcodeImage(dst, mip, layer, face, transcoderFormat, 0, -1, -1);
298
- if (!status) {
299
- cleanup();
300
- throw new Error("THREE.KTX2Loader: .transcodeImage failed.");
301
- }
302
- layerMips.push(dst);
276
+ const faces = [];
277
+ const buffers = [];
278
+ for (let face = 0; face < faceCount; face++) {
279
+ const mipmaps = [];
280
+ for (let mip = 0; mip < levelCount; mip++) {
281
+ const layerMips = [];
282
+ let mipWidth, mipHeight;
283
+ for (let layer = 0; layer < layerCount; layer++) {
284
+ const levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
285
+ if (face === 0 && mip === 0 && layer === 0 && (levelInfo.origWidth % 4 !== 0 || levelInfo.origHeight % 4 !== 0)) {
286
+ console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions.");
287
+ }
288
+ if (levelCount > 1) {
289
+ mipWidth = levelInfo.origWidth;
290
+ mipHeight = levelInfo.origHeight;
291
+ } else {
292
+ mipWidth = levelInfo.width;
293
+ mipHeight = levelInfo.height;
294
+ }
295
+ const dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, transcoderFormat));
296
+ const status = ktx2File.transcodeImage(dst, mip, layer, face, transcoderFormat, 0, -1, -1);
297
+ if (!status) {
298
+ cleanup();
299
+ throw new Error("THREE.KTX2Loader: .transcodeImage failed.");
303
300
  }
304
- const mipData = concat(layerMips);
305
- mipmaps.push({ data: mipData, width: mipWidth, height: mipHeight });
306
- buffers.push(mipData.buffer);
301
+ layerMips.push(dst);
307
302
  }
308
- faces.push({ mipmaps, width, height, format: engineFormat });
303
+ const mipData = concat(layerMips);
304
+ mipmaps.push({ data: mipData, width: mipWidth, height: mipHeight });
305
+ buffers.push(mipData.buffer);
309
306
  }
310
- cleanup();
311
- return { faces, buffers, width, height, hasAlpha, format: engineFormat, dfdFlags };
307
+ faces.push({ mipmaps, width, height, format: engineFormat });
312
308
  }
313
- const FORMAT_OPTIONS = [
314
- {
315
- if: "astcSupported",
316
- basisFormat: [BasisFormat.UASTC_4x4],
317
- transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],
318
- engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],
319
- priorityETC1S: Infinity,
320
- priorityUASTC: 1,
321
- needsPowerOfTwo: false
322
- },
323
- {
324
- if: "bptcSupported",
325
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
326
- transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],
327
- engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],
328
- priorityETC1S: 3,
329
- priorityUASTC: 2,
330
- needsPowerOfTwo: false
331
- },
332
- {
333
- if: "dxtSupported",
334
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
335
- transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],
336
- engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],
337
- priorityETC1S: 4,
338
- priorityUASTC: 5,
339
- needsPowerOfTwo: false
340
- },
341
- {
342
- if: "etc2Supported",
343
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
344
- transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],
345
- engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],
346
- priorityETC1S: 1,
347
- priorityUASTC: 3,
348
- needsPowerOfTwo: false
349
- },
350
- {
351
- if: "etc1Supported",
352
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
353
- transcoderFormat: [TranscoderFormat.ETC1],
354
- engineFormat: [EngineFormat.RGB_ETC1_Format],
355
- priorityETC1S: 2,
356
- priorityUASTC: 4,
357
- needsPowerOfTwo: false
358
- },
359
- {
360
- if: "pvrtcSupported",
361
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
362
- transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],
363
- engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],
364
- priorityETC1S: 5,
365
- priorityUASTC: 6,
366
- needsPowerOfTwo: true
367
- }
368
- ];
369
- const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
370
- return a.priorityETC1S - b.priorityETC1S;
371
- });
372
- const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
373
- return a.priorityUASTC - b.priorityUASTC;
374
- });
375
- function getTranscoderFormat(basisFormat, width, height, hasAlpha) {
376
- let transcoderFormat;
377
- let engineFormat;
378
- const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;
379
- for (let i = 0; i < options.length; i++) {
380
- const opt = options[i];
381
- if (!config[opt.if])
382
- continue;
383
- if (!opt.basisFormat.includes(basisFormat))
384
- continue;
385
- if (hasAlpha && opt.transcoderFormat.length < 2)
386
- continue;
387
- if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height)))
388
- continue;
389
- transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0];
390
- engineFormat = opt.engineFormat[hasAlpha ? 1 : 0];
391
- return { transcoderFormat, engineFormat };
392
- }
393
- console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.");
394
- transcoderFormat = TranscoderFormat.RGBA32;
395
- engineFormat = EngineFormat.RGBAFormat;
309
+ cleanup();
310
+ return { faces, buffers, width, height, hasAlpha, format: engineFormat, dfdFlags };
311
+ }
312
+ const FORMAT_OPTIONS = [
313
+ {
314
+ if: "astcSupported",
315
+ basisFormat: [BasisFormat.UASTC_4x4],
316
+ transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],
317
+ engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],
318
+ priorityETC1S: Infinity,
319
+ priorityUASTC: 1,
320
+ needsPowerOfTwo: false
321
+ },
322
+ {
323
+ if: "bptcSupported",
324
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
325
+ transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],
326
+ engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],
327
+ priorityETC1S: 3,
328
+ priorityUASTC: 2,
329
+ needsPowerOfTwo: false
330
+ },
331
+ {
332
+ if: "dxtSupported",
333
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
334
+ transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],
335
+ engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],
336
+ priorityETC1S: 4,
337
+ priorityUASTC: 5,
338
+ needsPowerOfTwo: false
339
+ },
340
+ {
341
+ if: "etc2Supported",
342
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
343
+ transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],
344
+ engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],
345
+ priorityETC1S: 1,
346
+ priorityUASTC: 3,
347
+ needsPowerOfTwo: false
348
+ },
349
+ {
350
+ if: "etc1Supported",
351
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
352
+ transcoderFormat: [TranscoderFormat.ETC1],
353
+ engineFormat: [EngineFormat.RGB_ETC1_Format],
354
+ priorityETC1S: 2,
355
+ priorityUASTC: 4,
356
+ needsPowerOfTwo: false
357
+ },
358
+ {
359
+ if: "pvrtcSupported",
360
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
361
+ transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],
362
+ engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],
363
+ priorityETC1S: 5,
364
+ priorityUASTC: 6,
365
+ needsPowerOfTwo: true
366
+ }
367
+ ];
368
+ const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
369
+ return a.priorityETC1S - b.priorityETC1S;
370
+ });
371
+ const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
372
+ return a.priorityUASTC - b.priorityUASTC;
373
+ });
374
+ function getTranscoderFormat(basisFormat, width, height, hasAlpha) {
375
+ let transcoderFormat;
376
+ let engineFormat;
377
+ const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;
378
+ for (let i = 0; i < options.length; i++) {
379
+ const opt = options[i];
380
+ if (!config[opt.if])
381
+ continue;
382
+ if (!opt.basisFormat.includes(basisFormat))
383
+ continue;
384
+ if (hasAlpha && opt.transcoderFormat.length < 2)
385
+ continue;
386
+ if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height)))
387
+ continue;
388
+ transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0];
389
+ engineFormat = opt.engineFormat[hasAlpha ? 1 : 0];
396
390
  return { transcoderFormat, engineFormat };
397
391
  }
398
- function isPowerOfTwo(value) {
399
- if (value <= 2)
400
- return true;
401
- return (value & value - 1) === 0 && value !== 0;
392
+ console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.");
393
+ transcoderFormat = TranscoderFormat.RGBA32;
394
+ engineFormat = EngineFormat.RGBAFormat;
395
+ return { transcoderFormat, engineFormat };
396
+ }
397
+ function isPowerOfTwo(value) {
398
+ if (value <= 2)
399
+ return true;
400
+ return (value & value - 1) === 0 && value !== 0;
401
+ }
402
+ function concat(arrays) {
403
+ if (arrays.length === 1)
404
+ return arrays[0];
405
+ let totalByteLength = 0;
406
+ for (let i = 0; i < arrays.length; i++) {
407
+ const array = arrays[i];
408
+ totalByteLength += array.byteLength;
402
409
  }
403
- function concat(arrays) {
404
- if (arrays.length === 1)
405
- return arrays[0];
406
- let totalByteLength = 0;
407
- for (let i = 0; i < arrays.length; i++) {
408
- const array = arrays[i];
409
- totalByteLength += array.byteLength;
410
- }
411
- const result = new Uint8Array(totalByteLength);
412
- let byteOffset = 0;
413
- for (let i = 0; i < arrays.length; i++) {
414
- const array = arrays[i];
415
- result.set(array, byteOffset);
416
- byteOffset += array.byteLength;
417
- }
418
- return result;
410
+ const result = new Uint8Array(totalByteLength);
411
+ let byteOffset = 0;
412
+ for (let i = 0; i < arrays.length; i++) {
413
+ const array = arrays[i];
414
+ result.set(array, byteOffset);
415
+ byteOffset += array.byteLength;
419
416
  }
420
- });
421
- return KTX2Loader2;
422
- })();
417
+ return result;
418
+ }
419
+ });
423
420
  const UNCOMPRESSED_FORMATS = /* @__PURE__ */ new Set([RGBAFormat, RGFormat, RedFormat]);
424
421
  const FORMAT_MAP = {
425
422
  [VK_FORMAT_R32G32B32A32_SFLOAT]: RGBAFormat,