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
@@ -23,405 +23,402 @@ const SRGBColorSpace = "srgb";
23
23
  const _taskCache = /* @__PURE__ */ new WeakMap();
24
24
  let _activeLoaders = 0;
25
25
  let _zstd;
26
- const KTX2Loader = /* @__PURE__ */ (() => {
27
- const _KTX2Loader = class extends THREE.Loader {
28
- constructor(manager) {
29
- super(manager);
30
- this.transcoderPath = "";
31
- this.transcoderBinary = null;
32
- this.transcoderPending = null;
33
- this.workerPool = new WorkerPool.WorkerPool();
34
- this.workerSourceURL = "";
35
- this.workerConfig = null;
36
- if (typeof MSC_TRANSCODER !== "undefined") {
26
+ const _KTX2Loader = class extends THREE.Loader {
27
+ constructor(manager) {
28
+ super(manager);
29
+ this.transcoderPath = "";
30
+ this.transcoderBinary = null;
31
+ this.transcoderPending = null;
32
+ this.workerPool = new WorkerPool.WorkerPool();
33
+ this.workerSourceURL = "";
34
+ this.workerConfig = null;
35
+ if (typeof MSC_TRANSCODER !== "undefined") {
36
+ console.warn(
37
+ 'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
38
+ );
39
+ }
40
+ }
41
+ setTranscoderPath(path) {
42
+ this.transcoderPath = path;
43
+ return this;
44
+ }
45
+ setWorkerLimit(num) {
46
+ this.workerPool.setWorkerLimit(num);
47
+ return this;
48
+ }
49
+ detectSupport(renderer) {
50
+ this.workerConfig = {
51
+ astcSupported: renderer.extensions.has("WEBGL_compressed_texture_astc"),
52
+ etc1Supported: renderer.extensions.has("WEBGL_compressed_texture_etc1"),
53
+ etc2Supported: renderer.extensions.has("WEBGL_compressed_texture_etc"),
54
+ dxtSupported: renderer.extensions.has("WEBGL_compressed_texture_s3tc"),
55
+ bptcSupported: renderer.extensions.has("EXT_texture_compression_bptc"),
56
+ pvrtcSupported: renderer.extensions.has("WEBGL_compressed_texture_pvrtc") || renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")
57
+ };
58
+ if (renderer.capabilities.isWebGL2) {
59
+ this.workerConfig.etc1Supported = false;
60
+ }
61
+ return this;
62
+ }
63
+ init() {
64
+ if (!this.transcoderPending) {
65
+ const jsLoader = new THREE.FileLoader(this.manager);
66
+ jsLoader.setPath(this.transcoderPath);
67
+ jsLoader.setWithCredentials(this.withCredentials);
68
+ const jsContent = jsLoader.loadAsync("basis_transcoder.js");
69
+ const binaryLoader = new THREE.FileLoader(this.manager);
70
+ binaryLoader.setPath(this.transcoderPath);
71
+ binaryLoader.setResponseType("arraybuffer");
72
+ binaryLoader.setWithCredentials(this.withCredentials);
73
+ const binaryContent = binaryLoader.loadAsync("basis_transcoder.wasm");
74
+ this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent2, binaryContent2]) => {
75
+ const fn = _KTX2Loader.BasisWorker.toString();
76
+ const body = [
77
+ "/* constants */",
78
+ "let _EngineFormat = " + JSON.stringify(_KTX2Loader.EngineFormat),
79
+ "let _TranscoderFormat = " + JSON.stringify(_KTX2Loader.TranscoderFormat),
80
+ "let _BasisFormat = " + JSON.stringify(_KTX2Loader.BasisFormat),
81
+ "/* basis_transcoder.js */",
82
+ jsContent2,
83
+ "/* worker */",
84
+ fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
85
+ ].join("\n");
86
+ this.workerSourceURL = URL.createObjectURL(new Blob([body]));
87
+ this.transcoderBinary = binaryContent2;
88
+ this.workerPool.setWorkerCreator(() => {
89
+ const worker = new Worker(this.workerSourceURL);
90
+ const transcoderBinary = this.transcoderBinary.slice(0);
91
+ worker.postMessage({ type: "init", config: this.workerConfig, transcoderBinary }, [transcoderBinary]);
92
+ return worker;
93
+ });
94
+ });
95
+ if (_activeLoaders > 0) {
37
96
  console.warn(
38
- 'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
97
+ "THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
39
98
  );
40
99
  }
100
+ _activeLoaders++;
41
101
  }
42
- setTranscoderPath(path) {
43
- this.transcoderPath = path;
44
- return this;
45
- }
46
- setWorkerLimit(num) {
47
- this.workerPool.setWorkerLimit(num);
48
- return this;
49
- }
50
- detectSupport(renderer) {
51
- this.workerConfig = {
52
- astcSupported: renderer.extensions.has("WEBGL_compressed_texture_astc"),
53
- etc1Supported: renderer.extensions.has("WEBGL_compressed_texture_etc1"),
54
- etc2Supported: renderer.extensions.has("WEBGL_compressed_texture_etc"),
55
- dxtSupported: renderer.extensions.has("WEBGL_compressed_texture_s3tc"),
56
- bptcSupported: renderer.extensions.has("EXT_texture_compression_bptc"),
57
- pvrtcSupported: renderer.extensions.has("WEBGL_compressed_texture_pvrtc") || renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")
58
- };
59
- if (renderer.capabilities.isWebGL2) {
60
- this.workerConfig.etc1Supported = false;
61
- }
62
- return this;
102
+ return this.transcoderPending;
103
+ }
104
+ load(url, onLoad, onProgress, onError) {
105
+ if (this.workerConfig === null) {
106
+ throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
63
107
  }
64
- init() {
65
- if (!this.transcoderPending) {
66
- const jsLoader = new THREE.FileLoader(this.manager);
67
- jsLoader.setPath(this.transcoderPath);
68
- jsLoader.setWithCredentials(this.withCredentials);
69
- const jsContent = jsLoader.loadAsync("basis_transcoder.js");
70
- const binaryLoader = new THREE.FileLoader(this.manager);
71
- binaryLoader.setPath(this.transcoderPath);
72
- binaryLoader.setResponseType("arraybuffer");
73
- binaryLoader.setWithCredentials(this.withCredentials);
74
- const binaryContent = binaryLoader.loadAsync("basis_transcoder.wasm");
75
- this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent2, binaryContent2]) => {
76
- const fn = _KTX2Loader.BasisWorker.toString();
77
- const body = [
78
- "/* constants */",
79
- "let _EngineFormat = " + JSON.stringify(_KTX2Loader.EngineFormat),
80
- "let _TranscoderFormat = " + JSON.stringify(_KTX2Loader.TranscoderFormat),
81
- "let _BasisFormat = " + JSON.stringify(_KTX2Loader.BasisFormat),
82
- "/* basis_transcoder.js */",
83
- jsContent2,
84
- "/* worker */",
85
- fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
86
- ].join("\n");
87
- this.workerSourceURL = URL.createObjectURL(new Blob([body]));
88
- this.transcoderBinary = binaryContent2;
89
- this.workerPool.setWorkerCreator(() => {
90
- const worker = new Worker(this.workerSourceURL);
91
- const transcoderBinary = this.transcoderBinary.slice(0);
92
- worker.postMessage({ type: "init", config: this.workerConfig, transcoderBinary }, [transcoderBinary]);
93
- return worker;
94
- });
95
- });
96
- if (_activeLoaders > 0) {
97
- console.warn(
98
- "THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
99
- );
108
+ const loader = new THREE.FileLoader(this.manager);
109
+ loader.setResponseType("arraybuffer");
110
+ loader.setWithCredentials(this.withCredentials);
111
+ loader.load(
112
+ url,
113
+ (buffer) => {
114
+ if (_taskCache.has(buffer)) {
115
+ const cachedTask = _taskCache.get(buffer);
116
+ return cachedTask.promise.then(onLoad).catch(onError);
100
117
  }
101
- _activeLoaders++;
102
- }
103
- return this.transcoderPending;
118
+ this._createTexture(buffer).then((texture) => onLoad ? onLoad(texture) : null).catch(onError);
119
+ },
120
+ onProgress,
121
+ onError
122
+ );
123
+ }
124
+ _createTextureFrom(transcodeResult, container) {
125
+ const { faces, width, height, format, type, error, dfdFlags } = transcodeResult;
126
+ if (type === "error")
127
+ return Promise.reject(error);
128
+ let texture;
129
+ if (container.faceCount === 6) {
130
+ texture = new CompressedCubeTexture.CompressedCubeTexture(faces, format, THREE.UnsignedByteType);
131
+ } else {
132
+ const mipmaps = faces[0].mipmaps;
133
+ texture = container.layerCount > 1 ? new CompressedArrayTexture.CompressedArrayTexture(mipmaps, width, height, container.layerCount, format, THREE.UnsignedByteType) : new THREE.CompressedTexture(mipmaps, width, height, format, THREE.UnsignedByteType);
104
134
  }
105
- load(url, onLoad, onProgress, onError) {
106
- if (this.workerConfig === null) {
107
- throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
108
- }
109
- const loader = new THREE.FileLoader(this.manager);
110
- loader.setResponseType("arraybuffer");
111
- loader.setWithCredentials(this.withCredentials);
112
- loader.load(
113
- url,
114
- (buffer) => {
115
- if (_taskCache.has(buffer)) {
116
- const cachedTask = _taskCache.get(buffer);
117
- return cachedTask.promise.then(onLoad).catch(onError);
135
+ texture.minFilter = faces[0].mipmaps.length === 1 ? THREE.LinearFilter : THREE.LinearMipmapLinearFilter;
136
+ texture.magFilter = THREE.LinearFilter;
137
+ texture.generateMipmaps = false;
138
+ texture.needsUpdate = true;
139
+ const colorSpace = parseColorSpace(container);
140
+ if ("colorSpace" in texture)
141
+ texture.colorSpace = colorSpace;
142
+ else
143
+ texture.encoding = colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;
144
+ texture.premultiplyAlpha = !!(dfdFlags & ktxParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED);
145
+ return texture;
146
+ }
147
+ /**
148
+ * @param {ArrayBuffer} buffer
149
+ * @param {object?} config
150
+ * @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
151
+ */
152
+ async _createTexture(buffer, config = {}) {
153
+ const container = ktxParse.read(new Uint8Array(buffer));
154
+ if (container.vkFormat !== ktxParse.VK_FORMAT_UNDEFINED) {
155
+ return createRawTexture(container);
156
+ }
157
+ const taskConfig = config;
158
+ const texturePending = this.init().then(() => {
159
+ return this.workerPool.postMessage({ type: "transcode", buffer, taskConfig }, [buffer]);
160
+ }).then((e) => this._createTextureFrom(e.data, container));
161
+ _taskCache.set(buffer, { promise: texturePending });
162
+ return texturePending;
163
+ }
164
+ dispose() {
165
+ this.workerPool.dispose();
166
+ if (this.workerSourceURL)
167
+ URL.revokeObjectURL(this.workerSourceURL);
168
+ _activeLoaders--;
169
+ return this;
170
+ }
171
+ };
172
+ let KTX2Loader = _KTX2Loader;
173
+ /* CONSTANTS */
174
+ __publicField(KTX2Loader, "BasisFormat", {
175
+ ETC1S: 0,
176
+ UASTC_4x4: 1
177
+ });
178
+ __publicField(KTX2Loader, "TranscoderFormat", {
179
+ ETC1: 0,
180
+ ETC2: 1,
181
+ BC1: 2,
182
+ BC3: 3,
183
+ BC4: 4,
184
+ BC5: 5,
185
+ BC7_M6_OPAQUE_ONLY: 6,
186
+ BC7_M5: 7,
187
+ PVRTC1_4_RGB: 8,
188
+ PVRTC1_4_RGBA: 9,
189
+ ASTC_4x4: 10,
190
+ ATC_RGB: 11,
191
+ ATC_RGBA_INTERPOLATED_ALPHA: 12,
192
+ RGBA32: 13,
193
+ RGB565: 14,
194
+ BGR565: 15,
195
+ RGBA4444: 16
196
+ });
197
+ __publicField(KTX2Loader, "EngineFormat", {
198
+ RGBAFormat: THREE.RGBAFormat,
199
+ RGBA_ASTC_4x4_Format: THREE.RGBA_ASTC_4x4_Format,
200
+ RGBA_BPTC_Format: THREE.RGBA_BPTC_Format,
201
+ RGBA_ETC2_EAC_Format: THREE.RGBA_ETC2_EAC_Format,
202
+ RGBA_PVRTC_4BPPV1_Format: THREE.RGBA_PVRTC_4BPPV1_Format,
203
+ RGBA_S3TC_DXT5_Format: THREE.RGBA_S3TC_DXT5_Format,
204
+ RGB_ETC1_Format: THREE.RGB_ETC1_Format,
205
+ RGB_ETC2_Format: THREE.RGB_ETC2_Format,
206
+ RGB_PVRTC_4BPPV1_Format: THREE.RGB_PVRTC_4BPPV1_Format,
207
+ RGB_S3TC_DXT1_Format: THREE.RGB_S3TC_DXT1_Format
208
+ });
209
+ /* WEB WORKER */
210
+ __publicField(KTX2Loader, "BasisWorker", function() {
211
+ let config;
212
+ let transcoderPending;
213
+ let BasisModule;
214
+ const EngineFormat = _EngineFormat;
215
+ const TranscoderFormat = _TranscoderFormat;
216
+ const BasisFormat = _BasisFormat;
217
+ self.addEventListener("message", function(e) {
218
+ const message = e.data;
219
+ switch (message.type) {
220
+ case "init":
221
+ config = message.config;
222
+ init(message.transcoderBinary);
223
+ break;
224
+ case "transcode":
225
+ transcoderPending.then(() => {
226
+ try {
227
+ const { faces, buffers, width, height, hasAlpha, format, dfdFlags } = transcode(message.buffer);
228
+ self.postMessage(
229
+ { type: "transcode", id: message.id, faces, width, height, hasAlpha, format, dfdFlags },
230
+ buffers
231
+ );
232
+ } catch (error) {
233
+ console.error(error);
234
+ self.postMessage({ type: "error", id: message.id, error: error.message });
118
235
  }
119
- this._createTexture(buffer).then((texture) => onLoad ? onLoad(texture) : null).catch(onError);
120
- },
121
- onProgress,
122
- onError
123
- );
236
+ });
237
+ break;
124
238
  }
125
- _createTextureFrom(transcodeResult, container) {
126
- const { faces, width, height, format, type, error, dfdFlags } = transcodeResult;
127
- if (type === "error")
128
- return Promise.reject(error);
129
- let texture;
130
- if (container.faceCount === 6) {
131
- texture = new CompressedCubeTexture.CompressedCubeTexture(faces, format, THREE.UnsignedByteType);
132
- } else {
133
- const mipmaps = faces[0].mipmaps;
134
- texture = container.layerCount > 1 ? new CompressedArrayTexture.CompressedArrayTexture(mipmaps, width, height, container.layerCount, format, THREE.UnsignedByteType) : new THREE.CompressedTexture(mipmaps, width, height, format, THREE.UnsignedByteType);
239
+ });
240
+ function init(wasmBinary) {
241
+ transcoderPending = new Promise((resolve) => {
242
+ BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
243
+ BASIS(BasisModule);
244
+ }).then(() => {
245
+ BasisModule.initializeBasis();
246
+ if (BasisModule.KTX2File === void 0) {
247
+ console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
135
248
  }
136
- texture.minFilter = faces[0].mipmaps.length === 1 ? THREE.LinearFilter : THREE.LinearMipmapLinearFilter;
137
- texture.magFilter = THREE.LinearFilter;
138
- texture.generateMipmaps = false;
139
- texture.needsUpdate = true;
140
- const colorSpace = parseColorSpace(container);
141
- if ("colorSpace" in texture)
142
- texture.colorSpace = colorSpace;
143
- else
144
- texture.encoding = colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;
145
- texture.premultiplyAlpha = !!(dfdFlags & ktxParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED);
146
- return texture;
249
+ });
250
+ }
251
+ function transcode(buffer) {
252
+ const ktx2File = new BasisModule.KTX2File(new Uint8Array(buffer));
253
+ function cleanup() {
254
+ ktx2File.close();
255
+ ktx2File.delete();
147
256
  }
148
- /**
149
- * @param {ArrayBuffer} buffer
150
- * @param {object?} config
151
- * @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
152
- */
153
- async _createTexture(buffer, config = {}) {
154
- const container = ktxParse.read(new Uint8Array(buffer));
155
- if (container.vkFormat !== ktxParse.VK_FORMAT_UNDEFINED) {
156
- return createRawTexture(container);
157
- }
158
- const taskConfig = config;
159
- const texturePending = this.init().then(() => {
160
- return this.workerPool.postMessage({ type: "transcode", buffer, taskConfig }, [buffer]);
161
- }).then((e) => this._createTextureFrom(e.data, container));
162
- _taskCache.set(buffer, { promise: texturePending });
163
- return texturePending;
257
+ if (!ktx2File.isValid()) {
258
+ cleanup();
259
+ throw new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
164
260
  }
165
- dispose() {
166
- this.workerPool.dispose();
167
- if (this.workerSourceURL)
168
- URL.revokeObjectURL(this.workerSourceURL);
169
- _activeLoaders--;
170
- return this;
261
+ const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;
262
+ const width = ktx2File.getWidth();
263
+ const height = ktx2File.getHeight();
264
+ const layerCount = ktx2File.getLayers() || 1;
265
+ const levelCount = ktx2File.getLevels();
266
+ const faceCount = ktx2File.getFaces();
267
+ const hasAlpha = ktx2File.getHasAlpha();
268
+ const dfdFlags = ktx2File.getDFDFlags();
269
+ const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha);
270
+ if (!width || !height || !levelCount) {
271
+ cleanup();
272
+ throw new Error("THREE.KTX2Loader: Invalid texture");
171
273
  }
172
- };
173
- let KTX2Loader2 = _KTX2Loader;
174
- /* CONSTANTS */
175
- __publicField(KTX2Loader2, "BasisFormat", {
176
- ETC1S: 0,
177
- UASTC_4x4: 1
178
- });
179
- __publicField(KTX2Loader2, "TranscoderFormat", {
180
- ETC1: 0,
181
- ETC2: 1,
182
- BC1: 2,
183
- BC3: 3,
184
- BC4: 4,
185
- BC5: 5,
186
- BC7_M6_OPAQUE_ONLY: 6,
187
- BC7_M5: 7,
188
- PVRTC1_4_RGB: 8,
189
- PVRTC1_4_RGBA: 9,
190
- ASTC_4x4: 10,
191
- ATC_RGB: 11,
192
- ATC_RGBA_INTERPOLATED_ALPHA: 12,
193
- RGBA32: 13,
194
- RGB565: 14,
195
- BGR565: 15,
196
- RGBA4444: 16
197
- });
198
- __publicField(KTX2Loader2, "EngineFormat", {
199
- RGBAFormat: THREE.RGBAFormat,
200
- RGBA_ASTC_4x4_Format: THREE.RGBA_ASTC_4x4_Format,
201
- RGBA_BPTC_Format: THREE.RGBA_BPTC_Format,
202
- RGBA_ETC2_EAC_Format: THREE.RGBA_ETC2_EAC_Format,
203
- RGBA_PVRTC_4BPPV1_Format: THREE.RGBA_PVRTC_4BPPV1_Format,
204
- RGBA_S3TC_DXT5_Format: THREE.RGBA_S3TC_DXT5_Format,
205
- RGB_ETC1_Format: THREE.RGB_ETC1_Format,
206
- RGB_ETC2_Format: THREE.RGB_ETC2_Format,
207
- RGB_PVRTC_4BPPV1_Format: THREE.RGB_PVRTC_4BPPV1_Format,
208
- RGB_S3TC_DXT1_Format: THREE.RGB_S3TC_DXT1_Format
209
- });
210
- /* WEB WORKER */
211
- __publicField(KTX2Loader2, "BasisWorker", function() {
212
- let config;
213
- let transcoderPending;
214
- let BasisModule;
215
- const EngineFormat = _EngineFormat;
216
- const TranscoderFormat = _TranscoderFormat;
217
- const BasisFormat = _BasisFormat;
218
- self.addEventListener("message", function(e) {
219
- const message = e.data;
220
- switch (message.type) {
221
- case "init":
222
- config = message.config;
223
- init(message.transcoderBinary);
224
- break;
225
- case "transcode":
226
- transcoderPending.then(() => {
227
- try {
228
- const { faces, buffers, width, height, hasAlpha, format, dfdFlags } = transcode(message.buffer);
229
- self.postMessage(
230
- { type: "transcode", id: message.id, faces, width, height, hasAlpha, format, dfdFlags },
231
- buffers
232
- );
233
- } catch (error) {
234
- console.error(error);
235
- self.postMessage({ type: "error", id: message.id, error: error.message });
236
- }
237
- });
238
- break;
239
- }
240
- });
241
- function init(wasmBinary) {
242
- transcoderPending = new Promise((resolve) => {
243
- BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
244
- BASIS(BasisModule);
245
- }).then(() => {
246
- BasisModule.initializeBasis();
247
- if (BasisModule.KTX2File === void 0) {
248
- console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
249
- }
250
- });
274
+ if (!ktx2File.startTranscoding()) {
275
+ cleanup();
276
+ throw new Error("THREE.KTX2Loader: .startTranscoding failed");
251
277
  }
252
- function transcode(buffer) {
253
- const ktx2File = new BasisModule.KTX2File(new Uint8Array(buffer));
254
- function cleanup() {
255
- ktx2File.close();
256
- ktx2File.delete();
257
- }
258
- if (!ktx2File.isValid()) {
259
- cleanup();
260
- throw new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
261
- }
262
- const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;
263
- const width = ktx2File.getWidth();
264
- const height = ktx2File.getHeight();
265
- const layerCount = ktx2File.getLayers() || 1;
266
- const levelCount = ktx2File.getLevels();
267
- const faceCount = ktx2File.getFaces();
268
- const hasAlpha = ktx2File.getHasAlpha();
269
- const dfdFlags = ktx2File.getDFDFlags();
270
- const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha);
271
- if (!width || !height || !levelCount) {
272
- cleanup();
273
- throw new Error("THREE.KTX2Loader: Invalid texture");
274
- }
275
- if (!ktx2File.startTranscoding()) {
276
- cleanup();
277
- throw new Error("THREE.KTX2Loader: .startTranscoding failed");
278
- }
279
- const faces = [];
280
- const buffers = [];
281
- for (let face = 0; face < faceCount; face++) {
282
- const mipmaps = [];
283
- for (let mip = 0; mip < levelCount; mip++) {
284
- const layerMips = [];
285
- let mipWidth, mipHeight;
286
- for (let layer = 0; layer < layerCount; layer++) {
287
- const levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
288
- if (face === 0 && mip === 0 && layer === 0 && (levelInfo.origWidth % 4 !== 0 || levelInfo.origHeight % 4 !== 0)) {
289
- console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions.");
290
- }
291
- if (levelCount > 1) {
292
- mipWidth = levelInfo.origWidth;
293
- mipHeight = levelInfo.origHeight;
294
- } else {
295
- mipWidth = levelInfo.width;
296
- mipHeight = levelInfo.height;
297
- }
298
- const dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, transcoderFormat));
299
- const status = ktx2File.transcodeImage(dst, mip, layer, face, transcoderFormat, 0, -1, -1);
300
- if (!status) {
301
- cleanup();
302
- throw new Error("THREE.KTX2Loader: .transcodeImage failed.");
303
- }
304
- layerMips.push(dst);
278
+ const faces = [];
279
+ const buffers = [];
280
+ for (let face = 0; face < faceCount; face++) {
281
+ const mipmaps = [];
282
+ for (let mip = 0; mip < levelCount; mip++) {
283
+ const layerMips = [];
284
+ let mipWidth, mipHeight;
285
+ for (let layer = 0; layer < layerCount; layer++) {
286
+ const levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
287
+ if (face === 0 && mip === 0 && layer === 0 && (levelInfo.origWidth % 4 !== 0 || levelInfo.origHeight % 4 !== 0)) {
288
+ console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions.");
289
+ }
290
+ if (levelCount > 1) {
291
+ mipWidth = levelInfo.origWidth;
292
+ mipHeight = levelInfo.origHeight;
293
+ } else {
294
+ mipWidth = levelInfo.width;
295
+ mipHeight = levelInfo.height;
296
+ }
297
+ const dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, transcoderFormat));
298
+ const status = ktx2File.transcodeImage(dst, mip, layer, face, transcoderFormat, 0, -1, -1);
299
+ if (!status) {
300
+ cleanup();
301
+ throw new Error("THREE.KTX2Loader: .transcodeImage failed.");
305
302
  }
306
- const mipData = concat(layerMips);
307
- mipmaps.push({ data: mipData, width: mipWidth, height: mipHeight });
308
- buffers.push(mipData.buffer);
303
+ layerMips.push(dst);
309
304
  }
310
- faces.push({ mipmaps, width, height, format: engineFormat });
305
+ const mipData = concat(layerMips);
306
+ mipmaps.push({ data: mipData, width: mipWidth, height: mipHeight });
307
+ buffers.push(mipData.buffer);
311
308
  }
312
- cleanup();
313
- return { faces, buffers, width, height, hasAlpha, format: engineFormat, dfdFlags };
309
+ faces.push({ mipmaps, width, height, format: engineFormat });
314
310
  }
315
- const FORMAT_OPTIONS = [
316
- {
317
- if: "astcSupported",
318
- basisFormat: [BasisFormat.UASTC_4x4],
319
- transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],
320
- engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],
321
- priorityETC1S: Infinity,
322
- priorityUASTC: 1,
323
- needsPowerOfTwo: false
324
- },
325
- {
326
- if: "bptcSupported",
327
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
328
- transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],
329
- engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],
330
- priorityETC1S: 3,
331
- priorityUASTC: 2,
332
- needsPowerOfTwo: false
333
- },
334
- {
335
- if: "dxtSupported",
336
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
337
- transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],
338
- engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],
339
- priorityETC1S: 4,
340
- priorityUASTC: 5,
341
- needsPowerOfTwo: false
342
- },
343
- {
344
- if: "etc2Supported",
345
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
346
- transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],
347
- engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],
348
- priorityETC1S: 1,
349
- priorityUASTC: 3,
350
- needsPowerOfTwo: false
351
- },
352
- {
353
- if: "etc1Supported",
354
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
355
- transcoderFormat: [TranscoderFormat.ETC1],
356
- engineFormat: [EngineFormat.RGB_ETC1_Format],
357
- priorityETC1S: 2,
358
- priorityUASTC: 4,
359
- needsPowerOfTwo: false
360
- },
361
- {
362
- if: "pvrtcSupported",
363
- basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
364
- transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],
365
- engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],
366
- priorityETC1S: 5,
367
- priorityUASTC: 6,
368
- needsPowerOfTwo: true
369
- }
370
- ];
371
- const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
372
- return a.priorityETC1S - b.priorityETC1S;
373
- });
374
- const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
375
- return a.priorityUASTC - b.priorityUASTC;
376
- });
377
- function getTranscoderFormat(basisFormat, width, height, hasAlpha) {
378
- let transcoderFormat;
379
- let engineFormat;
380
- const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;
381
- for (let i = 0; i < options.length; i++) {
382
- const opt = options[i];
383
- if (!config[opt.if])
384
- continue;
385
- if (!opt.basisFormat.includes(basisFormat))
386
- continue;
387
- if (hasAlpha && opt.transcoderFormat.length < 2)
388
- continue;
389
- if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height)))
390
- continue;
391
- transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0];
392
- engineFormat = opt.engineFormat[hasAlpha ? 1 : 0];
393
- return { transcoderFormat, engineFormat };
394
- }
395
- console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.");
396
- transcoderFormat = TranscoderFormat.RGBA32;
397
- engineFormat = EngineFormat.RGBAFormat;
311
+ cleanup();
312
+ return { faces, buffers, width, height, hasAlpha, format: engineFormat, dfdFlags };
313
+ }
314
+ const FORMAT_OPTIONS = [
315
+ {
316
+ if: "astcSupported",
317
+ basisFormat: [BasisFormat.UASTC_4x4],
318
+ transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],
319
+ engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],
320
+ priorityETC1S: Infinity,
321
+ priorityUASTC: 1,
322
+ needsPowerOfTwo: false
323
+ },
324
+ {
325
+ if: "bptcSupported",
326
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
327
+ transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],
328
+ engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],
329
+ priorityETC1S: 3,
330
+ priorityUASTC: 2,
331
+ needsPowerOfTwo: false
332
+ },
333
+ {
334
+ if: "dxtSupported",
335
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
336
+ transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],
337
+ engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],
338
+ priorityETC1S: 4,
339
+ priorityUASTC: 5,
340
+ needsPowerOfTwo: false
341
+ },
342
+ {
343
+ if: "etc2Supported",
344
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
345
+ transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],
346
+ engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],
347
+ priorityETC1S: 1,
348
+ priorityUASTC: 3,
349
+ needsPowerOfTwo: false
350
+ },
351
+ {
352
+ if: "etc1Supported",
353
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
354
+ transcoderFormat: [TranscoderFormat.ETC1],
355
+ engineFormat: [EngineFormat.RGB_ETC1_Format],
356
+ priorityETC1S: 2,
357
+ priorityUASTC: 4,
358
+ needsPowerOfTwo: false
359
+ },
360
+ {
361
+ if: "pvrtcSupported",
362
+ basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],
363
+ transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],
364
+ engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],
365
+ priorityETC1S: 5,
366
+ priorityUASTC: 6,
367
+ needsPowerOfTwo: true
368
+ }
369
+ ];
370
+ const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
371
+ return a.priorityETC1S - b.priorityETC1S;
372
+ });
373
+ const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function(a, b) {
374
+ return a.priorityUASTC - b.priorityUASTC;
375
+ });
376
+ function getTranscoderFormat(basisFormat, width, height, hasAlpha) {
377
+ let transcoderFormat;
378
+ let engineFormat;
379
+ const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;
380
+ for (let i = 0; i < options.length; i++) {
381
+ const opt = options[i];
382
+ if (!config[opt.if])
383
+ continue;
384
+ if (!opt.basisFormat.includes(basisFormat))
385
+ continue;
386
+ if (hasAlpha && opt.transcoderFormat.length < 2)
387
+ continue;
388
+ if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height)))
389
+ continue;
390
+ transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0];
391
+ engineFormat = opt.engineFormat[hasAlpha ? 1 : 0];
398
392
  return { transcoderFormat, engineFormat };
399
393
  }
400
- function isPowerOfTwo(value) {
401
- if (value <= 2)
402
- return true;
403
- return (value & value - 1) === 0 && value !== 0;
394
+ console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.");
395
+ transcoderFormat = TranscoderFormat.RGBA32;
396
+ engineFormat = EngineFormat.RGBAFormat;
397
+ return { transcoderFormat, engineFormat };
398
+ }
399
+ function isPowerOfTwo(value) {
400
+ if (value <= 2)
401
+ return true;
402
+ return (value & value - 1) === 0 && value !== 0;
403
+ }
404
+ function concat(arrays) {
405
+ if (arrays.length === 1)
406
+ return arrays[0];
407
+ let totalByteLength = 0;
408
+ for (let i = 0; i < arrays.length; i++) {
409
+ const array = arrays[i];
410
+ totalByteLength += array.byteLength;
404
411
  }
405
- function concat(arrays) {
406
- if (arrays.length === 1)
407
- return arrays[0];
408
- let totalByteLength = 0;
409
- for (let i = 0; i < arrays.length; i++) {
410
- const array = arrays[i];
411
- totalByteLength += array.byteLength;
412
- }
413
- const result = new Uint8Array(totalByteLength);
414
- let byteOffset = 0;
415
- for (let i = 0; i < arrays.length; i++) {
416
- const array = arrays[i];
417
- result.set(array, byteOffset);
418
- byteOffset += array.byteLength;
419
- }
420
- return result;
412
+ const result = new Uint8Array(totalByteLength);
413
+ let byteOffset = 0;
414
+ for (let i = 0; i < arrays.length; i++) {
415
+ const array = arrays[i];
416
+ result.set(array, byteOffset);
417
+ byteOffset += array.byteLength;
421
418
  }
422
- });
423
- return KTX2Loader2;
424
- })();
419
+ return result;
420
+ }
421
+ });
425
422
  const UNCOMPRESSED_FORMATS = /* @__PURE__ */ new Set([THREE.RGBAFormat, THREE.RGFormat, THREE.RedFormat]);
426
423
  const FORMAT_MAP = {
427
424
  [ktxParse.VK_FORMAT_R32G32B32A32_SFLOAT]: THREE.RGBAFormat,