@zephyr3d/scene 0.9.5 → 0.9.7

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 (621) hide show
  1. package/dist/animation/joint_dynamics/controller.js +92 -32
  2. package/dist/animation/joint_dynamics/controller.js.map +1 -1
  3. package/dist/animation/joint_dynamics/convex_collider.js +320 -0
  4. package/dist/animation/joint_dynamics/convex_collider.js.map +1 -0
  5. package/dist/animation/joint_dynamics/joint_dynamics_system.js +57 -19
  6. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
  7. package/dist/animation/joint_dynamics/solver.js +71 -27
  8. package/dist/animation/joint_dynamics/solver.js.map +1 -1
  9. package/dist/animation/joint_dynamics_modifier.js +21 -20
  10. package/dist/animation/joint_dynamics_modifier.js.map +1 -1
  11. package/dist/animation/skeleton.js +7 -10
  12. package/dist/animation/skeleton.js.map +1 -1
  13. package/dist/app/engine.js +134 -140
  14. package/dist/app/engine.js.map +1 -1
  15. package/dist/app/scriptregistry.js +47 -16
  16. package/dist/app/scriptregistry.js.map +1 -1
  17. package/dist/asset/assetmanager.js +3 -1
  18. package/dist/asset/assetmanager.js.map +1 -1
  19. package/dist/asset/model.js +346 -7
  20. package/dist/asset/model.js.map +1 -1
  21. package/dist/avatar/wardrobe.js +20 -16
  22. package/dist/avatar/wardrobe.js.map +1 -1
  23. package/dist/camera/camera.js +416 -210
  24. package/dist/camera/camera.js.map +1 -1
  25. package/dist/index.d.ts +1350 -621
  26. package/dist/index.js +6 -11
  27. package/dist/index.js.map +1 -1
  28. package/dist/material/blinn.js +1 -1
  29. package/dist/material/blinn.js.map +1 -1
  30. package/dist/material/lambert.js +1 -1
  31. package/dist/material/lambert.js.map +1 -1
  32. package/dist/material/material.js +23 -1
  33. package/dist/material/material.js.map +1 -1
  34. package/dist/material/meshmaterial.js +178 -23
  35. package/dist/material/meshmaterial.js.map +1 -1
  36. package/dist/material/mixins/albedocolor.js +4 -4
  37. package/dist/material/mixins/albedocolor.js.map +1 -1
  38. package/dist/material/mixins/lightmodel/blinnphong.js +2 -1
  39. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  40. package/dist/material/mixins/lightmodel/lambert.js +2 -1
  41. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  42. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +63 -16
  43. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  44. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +105 -32
  45. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  46. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +16 -6
  47. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  48. package/dist/material/mixins/lit.js +1 -1
  49. package/dist/material/mixins/lit.js.map +1 -1
  50. package/dist/material/mixins/pbr/common.js +276 -65
  51. package/dist/material/mixins/pbr/common.js.map +1 -1
  52. package/dist/material/mixins/texture.js +3 -3
  53. package/dist/material/mixins/texture.js.map +1 -1
  54. package/dist/material/mixins/vertexcolor.js +2 -2
  55. package/dist/material/mixins/vertexcolor.js.map +1 -1
  56. package/dist/material/msdf_text.js +3 -3
  57. package/dist/material/msdf_text.js.map +1 -1
  58. package/dist/material/mtoon.js +574 -0
  59. package/dist/material/mtoon.js.map +1 -0
  60. package/dist/material/pbrblueprint.js +499 -336
  61. package/dist/material/pbrblueprint.js.map +1 -1
  62. package/dist/material/pbrmr.js +118 -100
  63. package/dist/material/pbrmr.js.map +1 -1
  64. package/dist/material/pbrsg.js +1 -1
  65. package/dist/material/pbrsg.js.map +1 -1
  66. package/dist/material/shader/helper.js +324 -294
  67. package/dist/material/shader/helper.js.map +1 -1
  68. package/dist/material/subsurfaceprofile.js +812 -0
  69. package/dist/material/subsurfaceprofile.js.map +1 -0
  70. package/dist/material/unlit.js +1 -1
  71. package/dist/material/unlit.js.map +1 -1
  72. package/dist/posteffect/compositor.js +46 -11
  73. package/dist/posteffect/compositor.js.map +1 -1
  74. package/dist/posteffect/ssr.js +422 -96
  75. package/dist/posteffect/ssr.js.map +1 -1
  76. package/dist/posteffect/sss.js +1053 -0
  77. package/dist/posteffect/sss.js.map +1 -0
  78. package/dist/posteffect/taa.js +61 -60
  79. package/dist/posteffect/taa.js.map +1 -1
  80. package/dist/render/abuffer_oit.js +63 -12
  81. package/dist/render/abuffer_oit.js.map +1 -1
  82. package/dist/render/cluster_light.js +6 -5
  83. package/dist/render/cluster_light.js.map +1 -1
  84. package/dist/render/drawable.js +1 -5
  85. package/dist/render/drawable.js.map +1 -1
  86. package/dist/render/drawable_mixin.js +2 -1
  87. package/dist/render/drawable_mixin.js.map +1 -1
  88. package/dist/render/fbm_wavegenerator.js +2 -1
  89. package/dist/render/fbm_wavegenerator.js.map +1 -1
  90. package/dist/render/gerstner_wavegenerator.js +2 -1
  91. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  92. package/dist/render/globalbindgroup_allocator.js +2 -1
  93. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  94. package/dist/render/lightpass.js +110 -23
  95. package/dist/render/lightpass.js.map +1 -1
  96. package/dist/render/render_queue.js +51 -8
  97. package/dist/render/render_queue.js.map +1 -1
  98. package/dist/render/renderer.js +80 -66
  99. package/dist/render/renderer.js.map +1 -1
  100. package/dist/render/rendergraph/device_pool_allocator.js +8 -0
  101. package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
  102. package/dist/render/rendergraph/forward_plus_builder.js +481 -95
  103. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  104. package/dist/render/rendergraph/history_resource_manager.js +55 -0
  105. package/dist/render/rendergraph/history_resource_manager.js.map +1 -1
  106. package/dist/render/rendergraph/history_resources.js +3 -1
  107. package/dist/render/rendergraph/history_resources.js.map +1 -1
  108. package/dist/render/rendergraph/types.js.map +1 -1
  109. package/dist/render/renderpass.js +10 -4
  110. package/dist/render/renderpass.js.map +1 -1
  111. package/dist/render/sky.js +31 -1
  112. package/dist/render/sky.js.map +1 -1
  113. package/dist/render/weightedblended_oit.js +23 -5
  114. package/dist/render/weightedblended_oit.js.map +1 -1
  115. package/dist/scene/basesprite.js +4 -2
  116. package/dist/scene/basesprite.js.map +1 -1
  117. package/dist/scene/batchgroup.js +3 -1
  118. package/dist/scene/batchgroup.js.map +1 -1
  119. package/dist/scene/environment.js +11 -1
  120. package/dist/scene/environment.js.map +1 -1
  121. package/dist/scene/light.js +21 -3
  122. package/dist/scene/light.js.map +1 -1
  123. package/dist/scene/mesh.js +29 -14
  124. package/dist/scene/mesh.js.map +1 -1
  125. package/dist/scene/meshdrawable.js +6 -0
  126. package/dist/scene/meshdrawable.js.map +1 -1
  127. package/dist/scene/msdftext.js +5 -2
  128. package/dist/scene/msdftext.js.map +1 -1
  129. package/dist/scene/msdftextsprite.js +5 -3
  130. package/dist/scene/msdftextsprite.js.map +1 -1
  131. package/dist/scene/particlesys.js +3 -1
  132. package/dist/scene/particlesys.js.map +1 -1
  133. package/dist/scene/scene.js +6 -5
  134. package/dist/scene/scene.js.map +1 -1
  135. package/dist/scene/terrain-cm/grass.js +4 -2
  136. package/dist/scene/terrain-cm/grass.js.map +1 -1
  137. package/dist/scene/terrain-cm/grassmaterial.js +2 -1
  138. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  139. package/dist/scene/terrain-cm/terrain-cm.js +4 -2
  140. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  141. package/dist/scene/water.js +4 -2
  142. package/dist/scene/water.js.map +1 -1
  143. package/dist/shaders/shadow.js +26 -393
  144. package/dist/shaders/shadow.js.map +1 -1
  145. package/dist/shadow/esm.js +112 -12
  146. package/dist/shadow/esm.js.map +1 -1
  147. package/dist/shadow/pcf_opt.js +2 -2
  148. package/dist/shadow/pcf_opt.js.map +1 -1
  149. package/dist/shadow/pcf_pd.js +19 -10
  150. package/dist/shadow/pcf_pd.js.map +1 -1
  151. package/dist/shadow/shader.js +58 -7
  152. package/dist/shadow/shader.js.map +1 -1
  153. package/dist/shadow/shadow_impl.js +6 -0
  154. package/dist/shadow/shadow_impl.js.map +1 -1
  155. package/dist/shadow/shadow_region.js +229 -0
  156. package/dist/shadow/shadow_region.js.map +1 -0
  157. package/dist/shadow/shadowmapper.js +67 -59
  158. package/dist/shadow/shadowmapper.js.map +1 -1
  159. package/dist/shadow/vsm.js +45 -19
  160. package/dist/shadow/vsm.js.map +1 -1
  161. package/dist/text/font/cff_font.js +890 -0
  162. package/dist/text/font/cff_font.js.map +1 -0
  163. package/dist/text/font/font_asset.js +17 -3
  164. package/dist/text/font/font_asset.js.map +1 -1
  165. package/dist/utility/blueprint/common/constants.js +8 -8
  166. package/dist/utility/blueprint/common/constants.js.map +1 -1
  167. package/dist/utility/blueprint/material/pbr.js +31 -4
  168. package/dist/utility/blueprint/material/pbr.js.map +1 -1
  169. package/dist/utility/blueprint/material/texture.js +1 -17
  170. package/dist/utility/blueprint/material/texture.js.map +1 -1
  171. package/dist/utility/serialization/manager.js +327 -359
  172. package/dist/utility/serialization/manager.js.map +1 -1
  173. package/dist/utility/serialization/scene/animation.js +5 -2
  174. package/dist/utility/serialization/scene/animation.js.map +1 -1
  175. package/dist/utility/serialization/scene/batch.js +4 -1
  176. package/dist/utility/serialization/scene/batch.js.map +1 -1
  177. package/dist/utility/serialization/scene/camera.js +249 -54
  178. package/dist/utility/serialization/scene/camera.js.map +1 -1
  179. package/dist/utility/serialization/scene/common.js +37 -1
  180. package/dist/utility/serialization/scene/common.js.map +1 -1
  181. package/dist/utility/serialization/scene/light.js +42 -3
  182. package/dist/utility/serialization/scene/light.js.map +1 -1
  183. package/dist/utility/serialization/scene/material.js +1112 -646
  184. package/dist/utility/serialization/scene/material.js.map +1 -1
  185. package/dist/utility/serialization/scene/mesh.js +7 -4
  186. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  187. package/dist/utility/serialization/scene/node.js +31 -12
  188. package/dist/utility/serialization/scene/node.js.map +1 -1
  189. package/dist/utility/serialization/scene/particle.js +4 -1
  190. package/dist/utility/serialization/scene/particle.js.map +1 -1
  191. package/dist/utility/serialization/scene/primitive.js +3 -1
  192. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  193. package/dist/utility/serialization/scene/scene.js +18 -0
  194. package/dist/utility/serialization/scene/scene.js.map +1 -1
  195. package/dist/utility/serialization/scene/sprite.js +6 -3
  196. package/dist/utility/serialization/scene/sprite.js.map +1 -1
  197. package/dist/utility/serialization/scene/terrain.js +5 -2
  198. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  199. package/dist/utility/serialization/scene/text.js +3 -1
  200. package/dist/utility/serialization/scene/text.js.map +1 -1
  201. package/dist/utility/serialization/scene/water.js +4 -1
  202. package/dist/utility/serialization/scene/water.js.map +1 -1
  203. package/dist/utility/textures/ltcdata.js +6 -0
  204. package/dist/utility/textures/ltcdata.js.map +1 -0
  205. package/dist/utility/textures/ltclut.js +61 -0
  206. package/dist/utility/textures/ltclut.js.map +1 -0
  207. package/dist/values.js +9 -1
  208. package/dist/values.js.map +1 -1
  209. package/package.json +3 -3
  210. package/dist/animation/ik/ik_chain_builder.js +0 -68
  211. package/dist/animation/ik/ik_chain_builder.js.map +0 -1
  212. package/dist/animation/ik/ik_pole_constraint.js +0 -123
  213. package/dist/animation/ik/ik_pole_constraint.js.map +0 -1
  214. package/dist/animation/ik/ik_track.js +0 -96
  215. package/dist/animation/ik/ik_track.js.map +0 -1
  216. package/dist/animation/ik_postprocessor.js +0 -71
  217. package/dist/animation/ik_postprocessor.js.map +0 -1
  218. package/dist/animation/joint_dynamics/math.js +0 -16
  219. package/dist/animation/joint_dynamics/math.js.map +0 -1
  220. package/dist/animation/manual_transform_processor.js +0 -156
  221. package/dist/animation/manual_transform_processor.js.map +0 -1
  222. package/dist/animation/skeleton_postprocessor.js +0 -50
  223. package/dist/animation/skeleton_postprocessor.js.map +0 -1
  224. package/dist/animation/spring2/collision.js +0 -469
  225. package/dist/animation/spring2/collision.js.map +0 -1
  226. package/dist/animation/spring2/constraints.js +0 -329
  227. package/dist/animation/spring2/constraints.js.map +0 -1
  228. package/dist/animation/spring2/controller.js +0 -434
  229. package/dist/animation/spring2/controller.js.map +0 -1
  230. package/dist/animation/spring2/math.js +0 -16
  231. package/dist/animation/spring2/math.js.map +0 -1
  232. package/dist/animation/spring2/solver.js +0 -624
  233. package/dist/animation/spring2/solver.js.map +0 -1
  234. package/dist/animation/spring2/spring_system.js +0 -118
  235. package/dist/animation/spring2/spring_system.js.map +0 -1
  236. package/dist/animation/spring2/types.js +0 -19
  237. package/dist/animation/spring2/types.js.map +0 -1
  238. package/dist/animation/spring_postprocessor.js +0 -54
  239. package/dist/animation/spring_postprocessor.js.map +0 -1
  240. package/dist/asset/loaders/gltf/gltf_loader.js +0 -1276
  241. package/dist/asset/loaders/gltf/gltf_loader.js.map +0 -1
  242. package/dist/asset/loaders/gltf/helpers.js +0 -331
  243. package/dist/asset/loaders/gltf/helpers.js.map +0 -1
  244. package/dist/material/sprite3d.js +0 -301
  245. package/dist/material/sprite3d.js.map +0 -1
  246. package/dist/material/sprite3d_std.js +0 -116
  247. package/dist/material/sprite3d_std.js.map +0 -1
  248. package/dist/material/sprite3dblueprint.js +0 -235
  249. package/dist/material/sprite3dblueprint.js.map +0 -1
  250. package/dist/material/sprite_sdf.js +0 -106
  251. package/dist/material/sprite_sdf.js.map +0 -1
  252. package/dist/material/terrainmaterial.js +0 -368
  253. package/dist/material/terrainmaterial.js.map +0 -1
  254. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
  255. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
  256. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
  257. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
  258. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
  259. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
  260. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
  261. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
  262. package/dist/render/deferredlightpass.js +0 -510
  263. package/dist/render/deferredlightpass.js.map +0 -1
  264. package/dist/render/deferredshadowlightpass.js +0 -428
  265. package/dist/render/deferredshadowlightpass.js.map +0 -1
  266. package/dist/render/gbufferpass.js +0 -50
  267. package/dist/render/gbufferpass.js.map +0 -1
  268. package/dist/scene/sdftextsprite.js +0 -322
  269. package/dist/scene/sdftextsprite.js.map +0 -1
  270. package/dist/scene/sprite3d.js +0 -18
  271. package/dist/scene/sprite3d.js.map +0 -1
  272. package/dist/scene/terrain/grass.js +0 -280
  273. package/dist/scene/terrain/grass.js.map +0 -1
  274. package/dist/scene/terrain/heightfield.js +0 -475
  275. package/dist/scene/terrain/heightfield.js.map +0 -1
  276. package/dist/scene/terrain/patch.js +0 -532
  277. package/dist/scene/terrain/patch.js.map +0 -1
  278. package/dist/scene/terrain/quadtree.js +0 -461
  279. package/dist/scene/terrain/quadtree.js.map +0 -1
  280. package/dist/scene/terrain/terrain.js +0 -231
  281. package/dist/scene/terrain/terrain.js.map +0 -1
  282. package/dist/src/animation/animation.js +0 -127
  283. package/dist/src/animation/animation.js.map +0 -1
  284. package/dist/src/animation/animationset.js +0 -255
  285. package/dist/src/animation/animationset.js.map +0 -1
  286. package/dist/src/animation/animationtrack.js +0 -34
  287. package/dist/src/animation/animationtrack.js.map +0 -1
  288. package/dist/src/animation/eulerrotationtrack.js +0 -52
  289. package/dist/src/animation/eulerrotationtrack.js.map +0 -1
  290. package/dist/src/animation/morphtarget.js +0 -93
  291. package/dist/src/animation/morphtarget.js.map +0 -1
  292. package/dist/src/animation/morphtrack.js +0 -70
  293. package/dist/src/animation/morphtrack.js.map +0 -1
  294. package/dist/src/animation/proptrack.js +0 -161
  295. package/dist/src/animation/proptrack.js.map +0 -1
  296. package/dist/src/animation/rotationtrack.js +0 -51
  297. package/dist/src/animation/rotationtrack.js.map +0 -1
  298. package/dist/src/animation/scaletrack.js +0 -50
  299. package/dist/src/animation/scaletrack.js.map +0 -1
  300. package/dist/src/animation/skeleton.js +0 -204
  301. package/dist/src/animation/skeleton.js.map +0 -1
  302. package/dist/src/animation/translationtrack.js +0 -50
  303. package/dist/src/animation/translationtrack.js.map +0 -1
  304. package/dist/src/app/app.js +0 -129
  305. package/dist/src/app/app.js.map +0 -1
  306. package/dist/src/app/inputmgr.js +0 -267
  307. package/dist/src/app/inputmgr.js.map +0 -1
  308. package/dist/src/asset/assetmanager.js +0 -404
  309. package/dist/src/asset/assetmanager.js.map +0 -1
  310. package/dist/src/asset/builtin.js +0 -337
  311. package/dist/src/asset/builtin.js.map +0 -1
  312. package/dist/src/asset/loaders/dds/dds.js +0 -470
  313. package/dist/src/asset/loaders/dds/dds.js.map +0 -1
  314. package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
  315. package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
  316. package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
  317. package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
  318. package/dist/src/asset/loaders/gltf/helpers.js +0 -327
  319. package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
  320. package/dist/src/asset/loaders/hdr/hdr.js +0 -180
  321. package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
  322. package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
  323. package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
  324. package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
  325. package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
  326. package/dist/src/asset/loaders/loader.js +0 -45
  327. package/dist/src/asset/loaders/loader.js.map +0 -1
  328. package/dist/src/asset/model.js +0 -414
  329. package/dist/src/asset/model.js.map +0 -1
  330. package/dist/src/blitter/bilateralblur.js +0 -221
  331. package/dist/src/blitter/bilateralblur.js.map +0 -1
  332. package/dist/src/blitter/blitter.js +0 -390
  333. package/dist/src/blitter/blitter.js.map +0 -1
  334. package/dist/src/blitter/box.js +0 -118
  335. package/dist/src/blitter/box.js.map +0 -1
  336. package/dist/src/blitter/copy.js +0 -22
  337. package/dist/src/blitter/copy.js.map +0 -1
  338. package/dist/src/blitter/gaussianblur.js +0 -228
  339. package/dist/src/blitter/gaussianblur.js.map +0 -1
  340. package/dist/src/camera/base.js +0 -92
  341. package/dist/src/camera/base.js.map +0 -1
  342. package/dist/src/camera/camera.js +0 -1005
  343. package/dist/src/camera/camera.js.map +0 -1
  344. package/dist/src/camera/fps.js +0 -238
  345. package/dist/src/camera/fps.js.map +0 -1
  346. package/dist/src/camera/orbit.js +0 -245
  347. package/dist/src/camera/orbit.js.map +0 -1
  348. package/dist/src/camera/orthocamera.js +0 -167
  349. package/dist/src/camera/orthocamera.js.map +0 -1
  350. package/dist/src/camera/perspectivecamera.js +0 -141
  351. package/dist/src/camera/perspectivecamera.js.map +0 -1
  352. package/dist/src/index.js +0 -120
  353. package/dist/src/index.js.map +0 -1
  354. package/dist/src/material/blinn.js +0 -81
  355. package/dist/src/material/blinn.js.map +0 -1
  356. package/dist/src/material/grassmaterial.js +0 -113
  357. package/dist/src/material/grassmaterial.js.map +0 -1
  358. package/dist/src/material/lambert.js +0 -92
  359. package/dist/src/material/lambert.js.map +0 -1
  360. package/dist/src/material/material.js +0 -301
  361. package/dist/src/material/material.js.map +0 -1
  362. package/dist/src/material/meshmaterial.js +0 -704
  363. package/dist/src/material/meshmaterial.js.map +0 -1
  364. package/dist/src/material/mixins/albedocolor.js +0 -76
  365. package/dist/src/material/mixins/albedocolor.js.map +0 -1
  366. package/dist/src/material/mixins/foliage.js +0 -47
  367. package/dist/src/material/mixins/foliage.js.map +0 -1
  368. package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
  369. package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
  370. package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
  371. package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
  372. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
  373. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
  374. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
  375. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
  376. package/dist/src/material/mixins/lit.js +0 -476
  377. package/dist/src/material/mixins/lit.js.map +0 -1
  378. package/dist/src/material/mixins/pbr/common.js +0 -918
  379. package/dist/src/material/mixins/pbr/common.js.map +0 -1
  380. package/dist/src/material/mixins/texture.js +0 -172
  381. package/dist/src/material/mixins/texture.js.map +0 -1
  382. package/dist/src/material/mixins/vertexcolor.js +0 -56
  383. package/dist/src/material/mixins/vertexcolor.js.map +0 -1
  384. package/dist/src/material/particle.js +0 -178
  385. package/dist/src/material/particle.js.map +0 -1
  386. package/dist/src/material/pbrmr.js +0 -97
  387. package/dist/src/material/pbrmr.js.map +0 -1
  388. package/dist/src/material/pbrsg.js +0 -97
  389. package/dist/src/material/pbrsg.js.map +0 -1
  390. package/dist/src/material/shader/helper.js +0 -1209
  391. package/dist/src/material/shader/helper.js.map +0 -1
  392. package/dist/src/material/terrain-cm.js +0 -606
  393. package/dist/src/material/terrain-cm.js.map +0 -1
  394. package/dist/src/material/terrainmaterial.js +0 -375
  395. package/dist/src/material/terrainmaterial.js.map +0 -1
  396. package/dist/src/material/unlit.js +0 -41
  397. package/dist/src/material/unlit.js.map +0 -1
  398. package/dist/src/material/water.js +0 -417
  399. package/dist/src/material/water.js.map +0 -1
  400. package/dist/src/posteffect/bloom.js +0 -361
  401. package/dist/src/posteffect/bloom.js.map +0 -1
  402. package/dist/src/posteffect/compositor.js +0 -226
  403. package/dist/src/posteffect/compositor.js.map +0 -1
  404. package/dist/src/posteffect/fxaa.js +0 -273
  405. package/dist/src/posteffect/fxaa.js.map +0 -1
  406. package/dist/src/posteffect/grayscale.js +0 -69
  407. package/dist/src/posteffect/grayscale.js.map +0 -1
  408. package/dist/src/posteffect/motionblur.js +0 -96
  409. package/dist/src/posteffect/motionblur.js.map +0 -1
  410. package/dist/src/posteffect/posteffect.js +0 -126
  411. package/dist/src/posteffect/posteffect.js.map +0 -1
  412. package/dist/src/posteffect/sao.js +0 -324
  413. package/dist/src/posteffect/sao.js.map +0 -1
  414. package/dist/src/posteffect/ssr.js +0 -489
  415. package/dist/src/posteffect/ssr.js.map +0 -1
  416. package/dist/src/posteffect/taa.js +0 -172
  417. package/dist/src/posteffect/taa.js.map +0 -1
  418. package/dist/src/posteffect/tonemap.js +0 -94
  419. package/dist/src/posteffect/tonemap.js.map +0 -1
  420. package/dist/src/render/abuffer_oit.js +0 -361
  421. package/dist/src/render/abuffer_oit.js.map +0 -1
  422. package/dist/src/render/clipmap.js +0 -851
  423. package/dist/src/render/clipmap.js.map +0 -1
  424. package/dist/src/render/cluster_light.js +0 -333
  425. package/dist/src/render/cluster_light.js.map +0 -1
  426. package/dist/src/render/cull_visitor.js +0 -187
  427. package/dist/src/render/cull_visitor.js.map +0 -1
  428. package/dist/src/render/depthpass.js +0 -68
  429. package/dist/src/render/depthpass.js.map +0 -1
  430. package/dist/src/render/drawable_mixin.js +0 -227
  431. package/dist/src/render/drawable_mixin.js.map +0 -1
  432. package/dist/src/render/envlight.js +0 -463
  433. package/dist/src/render/envlight.js.map +0 -1
  434. package/dist/src/render/fbm_wavegenerator.js +0 -251
  435. package/dist/src/render/fbm_wavegenerator.js.map +0 -1
  436. package/dist/src/render/fft_wavegenerator.js +0 -1006
  437. package/dist/src/render/fft_wavegenerator.js.map +0 -1
  438. package/dist/src/render/fullscreenquad.js +0 -38
  439. package/dist/src/render/fullscreenquad.js.map +0 -1
  440. package/dist/src/render/gerstner_wavegenerator.js +0 -314
  441. package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
  442. package/dist/src/render/globalbindgroup_allocator.js +0 -60
  443. package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
  444. package/dist/src/render/hzb.js +0 -273
  445. package/dist/src/render/hzb.js.map +0 -1
  446. package/dist/src/render/lightpass.js +0 -172
  447. package/dist/src/render/lightpass.js.map +0 -1
  448. package/dist/src/render/objectcolorpass.js +0 -51
  449. package/dist/src/render/objectcolorpass.js.map +0 -1
  450. package/dist/src/render/primitive.js +0 -364
  451. package/dist/src/render/primitive.js.map +0 -1
  452. package/dist/src/render/render_queue.js +0 -467
  453. package/dist/src/render/render_queue.js.map +0 -1
  454. package/dist/src/render/renderbundle_wrapper.js +0 -152
  455. package/dist/src/render/renderbundle_wrapper.js.map +0 -1
  456. package/dist/src/render/renderer.js +0 -455
  457. package/dist/src/render/renderer.js.map +0 -1
  458. package/dist/src/render/renderpass.js +0 -200
  459. package/dist/src/render/renderpass.js.map +0 -1
  460. package/dist/src/render/shadowmap_pass.js +0 -56
  461. package/dist/src/render/shadowmap_pass.js.map +0 -1
  462. package/dist/src/render/sky.js +0 -1103
  463. package/dist/src/render/sky.js.map +0 -1
  464. package/dist/src/render/weightedblended_oit.js +0 -168
  465. package/dist/src/render/weightedblended_oit.js.map +0 -1
  466. package/dist/src/scene/batchgroup.js +0 -162
  467. package/dist/src/scene/batchgroup.js.map +0 -1
  468. package/dist/src/scene/environment.js +0 -209
  469. package/dist/src/scene/environment.js.map +0 -1
  470. package/dist/src/scene/graph_node.js +0 -72
  471. package/dist/src/scene/graph_node.js.map +0 -1
  472. package/dist/src/scene/light.js +0 -416
  473. package/dist/src/scene/light.js.map +0 -1
  474. package/dist/src/scene/mesh.js +0 -341
  475. package/dist/src/scene/mesh.js.map +0 -1
  476. package/dist/src/scene/octree.js +0 -649
  477. package/dist/src/scene/octree.js.map +0 -1
  478. package/dist/src/scene/particlesys.js +0 -738
  479. package/dist/src/scene/particlesys.js.map +0 -1
  480. package/dist/src/scene/raycast_visitor.js +0 -103
  481. package/dist/src/scene/raycast_visitor.js.map +0 -1
  482. package/dist/src/scene/scene.js +0 -284
  483. package/dist/src/scene/scene.js.map +0 -1
  484. package/dist/src/scene/scene_node.js +0 -732
  485. package/dist/src/scene/scene_node.js.map +0 -1
  486. package/dist/src/scene/terrain/grass.js +0 -278
  487. package/dist/src/scene/terrain/grass.js.map +0 -1
  488. package/dist/src/scene/terrain/heightfield.js +0 -475
  489. package/dist/src/scene/terrain/heightfield.js.map +0 -1
  490. package/dist/src/scene/terrain/patch.js +0 -530
  491. package/dist/src/scene/terrain/patch.js.map +0 -1
  492. package/dist/src/scene/terrain/quadtree.js +0 -461
  493. package/dist/src/scene/terrain/quadtree.js.map +0 -1
  494. package/dist/src/scene/terrain/terrain.js +0 -246
  495. package/dist/src/scene/terrain/terrain.js.map +0 -1
  496. package/dist/src/scene/terrain-cm/grass.js +0 -594
  497. package/dist/src/scene/terrain-cm/grass.js.map +0 -1
  498. package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
  499. package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
  500. package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
  501. package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
  502. package/dist/src/scene/water.js +0 -374
  503. package/dist/src/scene/water.js.map +0 -1
  504. package/dist/src/shaders/atmosphere.js +0 -957
  505. package/dist/src/shaders/atmosphere.js.map +0 -1
  506. package/dist/src/shaders/fog.js +0 -112
  507. package/dist/src/shaders/fog.js.map +0 -1
  508. package/dist/src/shaders/misc.js +0 -266
  509. package/dist/src/shaders/misc.js.map +0 -1
  510. package/dist/src/shaders/noise.js +0 -222
  511. package/dist/src/shaders/noise.js.map +0 -1
  512. package/dist/src/shaders/pbr.js +0 -51
  513. package/dist/src/shaders/pbr.js.map +0 -1
  514. package/dist/src/shaders/shadow.js +0 -636
  515. package/dist/src/shaders/shadow.js.map +0 -1
  516. package/dist/src/shaders/ssr.js +0 -490
  517. package/dist/src/shaders/ssr.js.map +0 -1
  518. package/dist/src/shaders/temporal.js +0 -215
  519. package/dist/src/shaders/temporal.js.map +0 -1
  520. package/dist/src/shaders/water.js +0 -756
  521. package/dist/src/shaders/water.js.map +0 -1
  522. package/dist/src/shadow/esm.js +0 -237
  523. package/dist/src/shadow/esm.js.map +0 -1
  524. package/dist/src/shadow/pcf_opt.js +0 -181
  525. package/dist/src/shadow/pcf_opt.js.map +0 -1
  526. package/dist/src/shadow/pcf_pd.js +0 -189
  527. package/dist/src/shadow/pcf_pd.js.map +0 -1
  528. package/dist/src/shadow/shader.js +0 -37
  529. package/dist/src/shadow/shader.js.map +0 -1
  530. package/dist/src/shadow/shadow_impl.js +0 -15
  531. package/dist/src/shadow/shadow_impl.js.map +0 -1
  532. package/dist/src/shadow/shadowmapper.js +0 -790
  533. package/dist/src/shadow/shadowmapper.js.map +0 -1
  534. package/dist/src/shadow/ssm.js +0 -159
  535. package/dist/src/shadow/ssm.js.map +0 -1
  536. package/dist/src/shadow/vsm.js +0 -297
  537. package/dist/src/shadow/vsm.js.map +0 -1
  538. package/dist/src/shapes/box.js +0 -386
  539. package/dist/src/shapes/box.js.map +0 -1
  540. package/dist/src/shapes/cylinder.js +0 -125
  541. package/dist/src/shapes/cylinder.js.map +0 -1
  542. package/dist/src/shapes/plane.js +0 -88
  543. package/dist/src/shapes/plane.js.map +0 -1
  544. package/dist/src/shapes/shape.js +0 -87
  545. package/dist/src/shapes/shape.js.map +0 -1
  546. package/dist/src/shapes/sphere.js +0 -114
  547. package/dist/src/shapes/sphere.js.map +0 -1
  548. package/dist/src/shapes/tetrahedron.js +0 -188
  549. package/dist/src/shapes/tetrahedron.js.map +0 -1
  550. package/dist/src/shapes/torus.js +0 -111
  551. package/dist/src/shapes/torus.js.map +0 -1
  552. package/dist/src/utility/aabbtree.js +0 -400
  553. package/dist/src/utility/aabbtree.js.map +0 -1
  554. package/dist/src/utility/bounding_volume.js +0 -29
  555. package/dist/src/utility/bounding_volume.js.map +0 -1
  556. package/dist/src/utility/debug.js +0 -28
  557. package/dist/src/utility/debug.js.map +0 -1
  558. package/dist/src/utility/draco/decoder.js +0 -116
  559. package/dist/src/utility/draco/decoder.js.map +0 -1
  560. package/dist/src/utility/misc.js +0 -105
  561. package/dist/src/utility/misc.js.map +0 -1
  562. package/dist/src/utility/panorama.js +0 -163
  563. package/dist/src/utility/panorama.js.map +0 -1
  564. package/dist/src/utility/pmrem.js +0 -354
  565. package/dist/src/utility/pmrem.js.map +0 -1
  566. package/dist/src/utility/rendermipmap.js +0 -115
  567. package/dist/src/utility/rendermipmap.js.map +0 -1
  568. package/dist/src/utility/serialization/json.js +0 -402
  569. package/dist/src/utility/serialization/json.js.map +0 -1
  570. package/dist/src/utility/serialization/manager.js +0 -623
  571. package/dist/src/utility/serialization/manager.js.map +0 -1
  572. package/dist/src/utility/serialization/scene/animation.js +0 -248
  573. package/dist/src/utility/serialization/scene/animation.js.map +0 -1
  574. package/dist/src/utility/serialization/scene/batch.js +0 -59
  575. package/dist/src/utility/serialization/scene/batch.js.map +0 -1
  576. package/dist/src/utility/serialization/scene/camera.js +0 -790
  577. package/dist/src/utility/serialization/scene/camera.js.map +0 -1
  578. package/dist/src/utility/serialization/scene/common.js +0 -222
  579. package/dist/src/utility/serialization/scene/common.js.map +0 -1
  580. package/dist/src/utility/serialization/scene/light.js +0 -575
  581. package/dist/src/utility/serialization/scene/light.js.map +0 -1
  582. package/dist/src/utility/serialization/scene/material.js +0 -1111
  583. package/dist/src/utility/serialization/scene/material.js.map +0 -1
  584. package/dist/src/utility/serialization/scene/mesh.js +0 -148
  585. package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
  586. package/dist/src/utility/serialization/scene/misc.js +0 -39
  587. package/dist/src/utility/serialization/scene/misc.js.map +0 -1
  588. package/dist/src/utility/serialization/scene/node.js +0 -451
  589. package/dist/src/utility/serialization/scene/node.js.map +0 -1
  590. package/dist/src/utility/serialization/scene/particle.js +0 -425
  591. package/dist/src/utility/serialization/scene/particle.js.map +0 -1
  592. package/dist/src/utility/serialization/scene/primitive.js +0 -692
  593. package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
  594. package/dist/src/utility/serialization/scene/scene.js +0 -704
  595. package/dist/src/utility/serialization/scene/scene.js.map +0 -1
  596. package/dist/src/utility/serialization/scene/terrain.js +0 -488
  597. package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
  598. package/dist/src/utility/serialization/scene/water.js +0 -465
  599. package/dist/src/utility/serialization/scene/water.js.map +0 -1
  600. package/dist/src/utility/shprojector.js +0 -297
  601. package/dist/src/utility/shprojector.js.map +0 -1
  602. package/dist/src/utility/textures/ggxlut.js +0 -213
  603. package/dist/src/utility/textures/ggxlut.js.map +0 -1
  604. package/dist/src/utility/textures/gradientnoise.js +0 -62
  605. package/dist/src/utility/textures/gradientnoise.js.map +0 -1
  606. package/dist/src/utility/textures/randomnoise.js +0 -41
  607. package/dist/src/utility/textures/randomnoise.js.map +0 -1
  608. package/dist/src/values.js +0 -162
  609. package/dist/src/values.js.map +0 -1
  610. package/dist/utility/blueprint/material/common.js +0 -7
  611. package/dist/utility/blueprint/material/common.js.map +0 -1
  612. package/dist/utility/serialization/blueprint/constants.js +0 -255
  613. package/dist/utility/serialization/blueprint/constants.js.map +0 -1
  614. package/dist/utility/serialization/blueprint/material/constants.js +0 -203
  615. package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
  616. package/dist/utility/serialization/blueprint/material/texture.js +0 -165
  617. package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
  618. package/dist/utility/serialization/scene/cloth_script.js +0 -834
  619. package/dist/utility/serialization/scene/cloth_script.js.map +0 -1
  620. package/dist/utility/serialization/scene/spring_script.js +0 -596
  621. package/dist/utility/serialization/scene/spring_script.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/asset/loaders/gltf/helpers.ts"],"sourcesContent":["import type { Accessor, AccessorSparse } from './gltf';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\nimport type { GLTFContent } from './gltf_loader';\r\n\r\n/** @internal */\r\nexport const enum ComponentType {\r\n UNKNOWN = 0,\r\n BYTE = 5120, // GL.BYTE\r\n UBYTE = 5121, // GL.UNSIGNED_BYTE\r\n SHORT = 5122, // GL.SHORT\r\n USHORT = 5123, // GL.UNSIGNED_SHORT\r\n INT = 5124, // GL.INT\r\n UINT = 5125, // GL.UNSIGNED_INT\r\n FLOAT = 5126 // GL.FLOAT\r\n}\r\n\r\n/** @internal */\r\nexport type GLTFComponentType = 'SCALAR' | 'VEC2' | 'VEC3' | 'VEC4' | 'MAT2' | 'MAT3' | 'MAT4';\r\n\r\n/** @internal */\r\nexport class GLTFAccessor {\r\n bufferView: number;\r\n byteOffset: number;\r\n componentType: ComponentType;\r\n normalized: boolean;\r\n count: number;\r\n type: GLTFComponentType;\r\n max: number[];\r\n min: number[];\r\n sparse: AccessorSparse;\r\n name: string;\r\n private _typedView: TypedArray;\r\n private _filteredView: TypedArray;\r\n private _normalizedFilteredView: TypedArray;\r\n private _normalizedTypedView: TypedArray;\r\n constructor(accessorInfo: Accessor) {\r\n this.bufferView = accessorInfo.bufferView;\r\n this.byteOffset = accessorInfo.byteOffset ?? 0;\r\n this.componentType = accessorInfo.componentType;\r\n this.normalized = !!accessorInfo.normalized;\r\n this.count = accessorInfo.count;\r\n this.type = accessorInfo.type;\r\n this.max = accessorInfo.max;\r\n this.min = accessorInfo.min;\r\n this.sparse = accessorInfo.sparse;\r\n this.name = accessorInfo.name;\r\n this._typedView = null;\r\n this._filteredView = null;\r\n this._normalizedFilteredView = null;\r\n this._normalizedTypedView = null;\r\n }\r\n getTypedView(gltf: GLTFContent) {\r\n if (this._typedView) {\r\n return this._typedView;\r\n }\r\n\r\n if (this.bufferView !== undefined) {\r\n const bufferView = gltf.bufferViews[this.bufferView];\r\n const buffer = gltf._loadedBuffers[bufferView.buffer];\r\n const byteOffset = this.byteOffset + (bufferView.byteOffset ?? 0);\r\n\r\n const componentSize = this.getComponentSize(this.componentType);\r\n const componentCount = this.getComponentCount(this.type);\r\n\r\n let arrayLength = 0;\r\n if (bufferView.byteStride !== undefined && bufferView.byteStride !== 0) {\r\n if (componentSize !== 0) {\r\n arrayLength = (bufferView.byteStride / componentSize) * (this.count - 1) + componentCount;\r\n } else {\r\n console.warn(\"Invalid component type in accessor '\" + (this.name ? this.name : '') + \"'\");\r\n }\r\n } else {\r\n arrayLength = this.count * componentCount;\r\n }\r\n\r\n if (arrayLength * componentSize > buffer.byteLength - byteOffset) {\r\n arrayLength = (buffer.byteLength - byteOffset) / componentSize;\r\n console.warn(\"Count in accessor '\" + (this.name ? this.name : '') + \"' is too large.\");\r\n }\r\n\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n this._typedView = new Int8Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.UBYTE:\r\n this._typedView = new Uint8Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.SHORT:\r\n this._typedView = new Int16Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n this._typedView = new Uint16Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.INT:\r\n this._typedView = new Int32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n this._typedView = new Uint32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.FLOAT:\r\n this._typedView = new Float32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n }\r\n } else if (this.sparse !== undefined) {\r\n this._typedView = this.createView();\r\n }\r\n\r\n if (!this._typedView) {\r\n console.warn('Failed to convert buffer view to typed view!: ' + this.bufferView);\r\n } else if (this.sparse !== undefined) {\r\n this.applySparse(gltf, this._typedView);\r\n }\r\n\r\n return this._typedView;\r\n }\r\n\r\n // getNormalizedTypedView provides an alternative view to the accessors data,\r\n // where quantized data is already normalized. This is useful if the data is not passed\r\n // to vertexAttribPointer but used immediately (like e.g. animations)\r\n getNormalizedTypedView(gltf: GLTFContent) {\r\n if (this._normalizedTypedView) {\r\n return this._normalizedTypedView;\r\n }\r\n\r\n const typedView = this.getTypedView(gltf);\r\n this._normalizedTypedView = this.normalized\r\n ? GLTFAccessor.dequantize(typedView, this.componentType)\r\n : typedView;\r\n return this._normalizedTypedView;\r\n }\r\n\r\n // getDeinterlacedView provides a view to the accessors data in form of\r\n // a TypedArray. In contrast to getTypedView, getDeinterlacedView deinterlaces\r\n // data, i.e. stripping padding and unrelated components from the array. It then\r\n // only contains the data of the accessor\r\n getDeinterlacedView(gltf: GLTFContent) {\r\n if (this._filteredView) {\r\n return this._filteredView;\r\n }\r\n\r\n const componentSize = this.getComponentSize(this.componentType);\r\n const componentCount = this.getComponentCount(this.type);\r\n const arrayLength = this.count * componentCount;\r\n\r\n let func = 'getFloat32';\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n this._filteredView = new Int8Array(arrayLength);\r\n func = 'getInt8';\r\n break;\r\n case ComponentType.UBYTE:\r\n this._filteredView = new Uint8Array(arrayLength);\r\n func = 'getUint8';\r\n break;\r\n case ComponentType.SHORT:\r\n this._filteredView = new Int16Array(arrayLength);\r\n func = 'getInt16';\r\n break;\r\n case ComponentType.USHORT:\r\n this._filteredView = new Uint16Array(arrayLength);\r\n func = 'getUint16';\r\n break;\r\n case ComponentType.INT:\r\n this._filteredView = new Int32Array(arrayLength);\r\n func = 'getInt32';\r\n break;\r\n case ComponentType.UINT:\r\n this._filteredView = new Uint32Array(arrayLength);\r\n func = 'getUint32';\r\n break;\r\n case ComponentType.FLOAT:\r\n this._filteredView = new Float32Array(arrayLength);\r\n func = 'getFloat32';\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (this.bufferView !== undefined) {\r\n const bufferView = gltf.bufferViews[this.bufferView];\r\n const buffer = gltf._loadedBuffers[bufferView.buffer];\r\n const byteOffset = this.byteOffset + (bufferView.byteOffset ?? 0);\r\n const stride =\r\n bufferView.byteStride !== undefined && bufferView.byteStride !== 0\r\n ? bufferView.byteStride\r\n : componentCount * componentSize;\r\n const dataView = new DataView(buffer, byteOffset, this.count * stride);\r\n for (let i = 0; i < arrayLength; ++i) {\r\n const offset = Math.floor(i / componentCount) * stride + (i % componentCount) * componentSize;\r\n this._filteredView[i] = dataView[func](offset, true);\r\n }\r\n } else if (this.sparse !== undefined) {\r\n this._filteredView = this.createView();\r\n }\r\n\r\n if (this.sparse !== undefined) {\r\n this.applySparse(gltf, this._filteredView);\r\n }\r\n\r\n return this._filteredView;\r\n }\r\n\r\n createView() {\r\n const size = this.count * this.getComponentCount(this.type);\r\n if (this.componentType == ComponentType.BYTE) {\r\n return new Int8Array(size);\r\n }\r\n if (this.componentType == ComponentType.UBYTE) {\r\n return new Uint8Array(size);\r\n }\r\n if (this.componentType == ComponentType.SHORT) {\r\n return new Int16Array(size);\r\n }\r\n if (this.componentType == ComponentType.USHORT) {\r\n return new Uint16Array(size);\r\n }\r\n if (this.componentType == ComponentType.INT) {\r\n return new Int32Array(size);\r\n }\r\n if (this.componentType == ComponentType.UINT) {\r\n return new Uint32Array(size);\r\n }\r\n if (this.componentType == ComponentType.FLOAT) {\r\n return new Float32Array(size);\r\n }\r\n return undefined;\r\n }\r\n\r\n // getNormalizedDeinterlacedView provides an alternative view to the accessors data,\r\n // where quantized data is already normalized. This is useful if the data is not passed\r\n // to vertexAttribPointer but used immediately (like e.g. animations)\r\n getNormalizedDeinterlacedView(gltf: GLTFContent) {\r\n if (this._normalizedFilteredView) {\r\n return this._normalizedFilteredView;\r\n }\r\n\r\n const filteredView = this.getDeinterlacedView(gltf);\r\n this._normalizedFilteredView = this.normalized\r\n ? GLTFAccessor.dequantize(filteredView, this.componentType)\r\n : filteredView;\r\n return this._normalizedFilteredView;\r\n }\r\n\r\n applySparse(gltf: GLTFContent, view: TypedArray) {\r\n // Gather indices.\r\n\r\n const indicesBufferView = gltf.bufferViews[this.sparse.indices.bufferView];\r\n const indicesBuffer = gltf._loadedBuffers[indicesBufferView.buffer];\r\n const indicesByteOffset = this.sparse.indices.byteOffset + (indicesBufferView.byteOffset ?? 0);\r\n\r\n const indicesComponentSize = this.getComponentSize(this.sparse.indices.componentType);\r\n let indicesComponentCount = 1;\r\n\r\n if (indicesBufferView.byteStride !== undefined && indicesBufferView.byteStride !== 0) {\r\n indicesComponentCount = indicesBufferView.byteStride / indicesComponentSize;\r\n }\r\n\r\n const indicesArrayLength = this.sparse.count * indicesComponentCount;\r\n\r\n let indicesTypedView;\r\n switch (this.sparse.indices.componentType) {\r\n case ComponentType.UBYTE:\r\n indicesTypedView = new Uint8Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n indicesTypedView = new Uint16Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n indicesTypedView = new Uint32Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n }\r\n\r\n // Gather values.\r\n\r\n const valuesBufferView = gltf.bufferViews[this.sparse.values.bufferView];\r\n const valuesBuffer = gltf._loadedBuffers[valuesBufferView.buffer];\r\n const valuesByteOffset = this.sparse.values.byteOffset + (valuesBufferView.byteOffset ?? 0);\r\n\r\n const valuesComponentSize = this.getComponentSize(this.componentType);\r\n let valuesComponentCount = this.getComponentCount(this.type);\r\n\r\n if (valuesBufferView.byteStride !== undefined && valuesBufferView.byteStride !== 0) {\r\n valuesComponentCount = valuesBufferView.byteStride / valuesComponentSize;\r\n }\r\n\r\n const valuesArrayLength = this.sparse.count * valuesComponentCount;\r\n\r\n let valuesTypedView: TypedArray;\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n valuesTypedView = new Int8Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.UBYTE:\r\n valuesTypedView = new Uint8Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.SHORT:\r\n valuesTypedView = new Int16Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n valuesTypedView = new Uint16Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.INT:\r\n valuesTypedView = new Int32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n valuesTypedView = new Uint32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.FLOAT:\r\n valuesTypedView = new Float32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n }\r\n\r\n // Overwrite values.\r\n\r\n for (let i = 0; i < this.sparse.count; ++i) {\r\n for (let k = 0; k < valuesComponentCount; ++k) {\r\n view[indicesTypedView[i] * valuesComponentCount + k] = valuesTypedView[i * valuesComponentCount + k];\r\n }\r\n }\r\n }\r\n\r\n // dequantize can be used to perform the normalization from WebGL2 vertexAttribPointer explicitly\r\n static dequantize(typedArray: TypedArray, componentType: ComponentType) {\r\n switch (componentType) {\r\n case ComponentType.BYTE:\r\n return new Float32Array(typedArray).map((c) => Math.max(c / 127.0, -1.0));\r\n case ComponentType.UBYTE:\r\n return new Float32Array(typedArray).map((c) => c / 255.0);\r\n case ComponentType.SHORT:\r\n return new Float32Array(typedArray).map((c) => Math.max(c / 32767.0, -1.0));\r\n case ComponentType.USHORT:\r\n return new Float32Array(typedArray).map((c) => c / 65535.0);\r\n default:\r\n return typedArray;\r\n }\r\n }\r\n\r\n getComponentCount(type: GLTFComponentType) {\r\n switch (type) {\r\n case 'SCALAR':\r\n return 1;\r\n case 'VEC2':\r\n return 2;\r\n case 'VEC3':\r\n return 3;\r\n case 'VEC4':\r\n return 4;\r\n case 'MAT2':\r\n return 4;\r\n case 'MAT3':\r\n return 9;\r\n case 'MAT4':\r\n return 16;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n getComponentSize(componentType: ComponentType) {\r\n switch (componentType) {\r\n case ComponentType.BYTE:\r\n case ComponentType.UBYTE:\r\n return 1;\r\n case ComponentType.SHORT:\r\n case ComponentType.USHORT:\r\n return 2;\r\n case ComponentType.INT:\r\n case ComponentType.UINT:\r\n case ComponentType.FLOAT:\r\n return 4;\r\n default:\r\n return 0;\r\n }\r\n }\r\n}\r\n"],"names":["ComponentType","GLTFAccessor","bufferView","byteOffset","componentType","normalized","count","type","max","min","sparse","name","_typedView","_filteredView","_normalizedFilteredView","_normalizedTypedView","accessorInfo","getTypedView","gltf","undefined","bufferViews","buffer","_loadedBuffers","componentSize","getComponentSize","componentCount","getComponentCount","arrayLength","byteStride","console","warn","byteLength","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","createView","applySparse","getNormalizedTypedView","typedView","dequantize","getDeinterlacedView","func","stride","dataView","DataView","i","offset","Math","floor","size","getNormalizedDeinterlacedView","filteredView","view","indicesBufferView","indices","indicesBuffer","indicesByteOffset","indicesComponentSize","indicesComponentCount","indicesArrayLength","indicesTypedView","valuesBufferView","values","valuesBuffer","valuesByteOffset","valuesComponentSize","valuesComponentCount","valuesArrayLength","valuesTypedView","k","typedArray","map","c"],"mappings":"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"}
@@ -1,180 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { floatToHalf, packFloat3 } from '@zephyr3d/base';
3
- import { Application } from '../../../app/app.js';
4
-
5
- const _f16one = floatToHalf(1);
6
- /**
7
- * The HDR texture loader
8
- * @internal
9
- */ class HDRLoader extends AbstractTextureLoader {
10
- supportMIMEType(mimeType) {
11
- return mimeType === 'image/hdr' || mimeType === 'image/x-hdr' || mimeType === 'image/vnd.radiance';
12
- }
13
- async load(mimeType, data, srgb, samplerOptions, texture) {
14
- let format;
15
- for (const fmt of [
16
- 'rg11b10uf',
17
- 'rgba16f',
18
- 'rgba32f',
19
- 'rgba8unorm'
20
- ]){
21
- const info = Application.instance.device.getDeviceCaps().textureCaps.getTextureFormatInfo(fmt);
22
- if (info && info.filterable && info.renderable) {
23
- format = fmt;
24
- break;
25
- }
26
- }
27
- const arrayBuffer = data instanceof ArrayBuffer ? data : data.buffer;
28
- const offset = data instanceof ArrayBuffer ? 0 : data.byteOffset;
29
- const textureData = await this.loadHDR(new Uint8Array(arrayBuffer, offset), format);
30
- const options = {
31
- texture: texture,
32
- samplerOptions
33
- };
34
- const tex = Application.instance.device.createTexture2D(format, textureData.width, textureData.height, options);
35
- tex.update(textureData.dataFloat, 0, 0, textureData.width, textureData.height);
36
- return tex;
37
- }
38
- _rgbeToFloat32(buffer) {
39
- const length = buffer.byteLength >> 2;
40
- const result = new Float32Array(length * 4);
41
- for(let i = 0; i < length; i++){
42
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
43
- result[i * 4] = buffer[i * 4] * s;
44
- result[i * 4 + 1] = buffer[i * 4 + 1] * s;
45
- result[i * 4 + 2] = buffer[i * 4 + 2] * s;
46
- result[i * 4 + 3] = 1;
47
- }
48
- return result;
49
- }
50
- _rgbeToFloat16(buffer) {
51
- const length = buffer.byteLength >> 2;
52
- const result = new Uint16Array(length * 4);
53
- for(let i = 0; i < length; i++){
54
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
55
- result[i * 4 + 0] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4] * s, 65504)));
56
- result[i * 4 + 1] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 1] * s, 65504)));
57
- result[i * 4 + 2] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 2] * s, 65504)));
58
- result[i * 4 + 3] = _f16one;
59
- }
60
- return result;
61
- }
62
- _rgbeToR11G11B10(buffer) {
63
- const length = buffer.byteLength >> 2;
64
- const result = new Uint32Array(length);
65
- for(let i = 0; i < length; i++){
66
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
67
- const r = buffer[i * 4] * s;
68
- const g = buffer[i * 4 + 1] * s;
69
- const b = buffer[i * 4 + 2] * s;
70
- result[i] = packFloat3(r, g, b);
71
- }
72
- return result;
73
- }
74
- /*
75
- Decode: rgb = pow(6 * rgbm.rgb * rgbm.a, 2.2);
76
- */ _rgbeToRGBM(buffer) {
77
- const length = buffer.byteLength >> 2;
78
- const result = new Uint8Array(length * 4);
79
- for(let i = 0; i < length; i++){
80
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
81
- const r = Math.pow(buffer[i * 4] * s, 1 / 2.2);
82
- const g = Math.pow(buffer[i * 4 + 1] * s, 1 / 2.2);
83
- const b = Math.pow(buffer[i * 4 + 2] * s, 1 / 2.2);
84
- const rgbMax = Math.max(r, g, b);
85
- const M = Math.ceil(255 * rgbMax / 6) / 255;
86
- const t = M * 6;
87
- result[i * 4] = Math.ceil(255 * r / t);
88
- result[i * 4 + 1] = Math.ceil(255 * g / t);
89
- result[i * 4 + 2] = Math.ceil(255 * b / t);
90
- result[i * 4 + 3] = Math.ceil(255 * Math.min(M, 1));
91
- }
92
- return result;
93
- }
94
- async loadHDR(buffer, dstFormat) {
95
- let header = '';
96
- let pos = 0;
97
- const d8 = buffer;
98
- let format = undefined;
99
- // read header.
100
- while(!header.match(/\n\n[^\n]+\n/g)){
101
- header += String.fromCodePoint(d8[pos++]);
102
- }
103
- // check format.
104
- format = header.match(/FORMAT=(.*)$/m);
105
- if (format.length < 2) {
106
- return undefined;
107
- }
108
- format = format[1];
109
- if (format != '32-bit_rle_rgbe') {
110
- console.warn('unknown format : ' + format);
111
- return null;
112
- }
113
- // parse resolution
114
- let rez = header.split(/\n/).reverse();
115
- if (rez.length < 2) {
116
- return undefined;
117
- }
118
- rez = rez[1].split(' ');
119
- if (rez.length < 4) {
120
- return undefined;
121
- }
122
- const width = Number(rez[3]) * 1, height = Number(rez[1]) * 1;
123
- // Create image.
124
- const img = new Uint8Array(width * height * 4);
125
- let ipos = 0;
126
- // Read all scanlines
127
- for(let j = 0; j < height; j++){
128
- const scanline = [];
129
- let rgbe = d8.slice(pos, pos += 4);
130
- const isNewRLE = rgbe[0] == 2 && rgbe[1] == 2 && rgbe[2] == (width >> 8 & 0xff) && rgbe[3] == (width & 0xff);
131
- if (isNewRLE && width >= 8 && width < 32768) {
132
- for(let i = 0; i < 4; i++){
133
- let ptr = i * width;
134
- const ptr_end = (i + 1) * width;
135
- let buf = undefined;
136
- let count = undefined;
137
- while(ptr < ptr_end){
138
- buf = d8.slice(pos, pos += 2);
139
- if (buf[0] > 128) {
140
- count = buf[0] - 128;
141
- while(count-- > 0){
142
- scanline[ptr++] = buf[1];
143
- }
144
- } else {
145
- count = buf[0] - 1;
146
- scanline[ptr++] = buf[1];
147
- while(count-- > 0){
148
- scanline[ptr++] = d8[pos++];
149
- }
150
- }
151
- }
152
- }
153
- for(let i = 0; i < width; i++){
154
- img[ipos++] = scanline[i + 0 * width];
155
- img[ipos++] = scanline[i + 1 * width];
156
- img[ipos++] = scanline[i + 2 * width];
157
- img[ipos++] = scanline[i + 3 * width];
158
- }
159
- } else {
160
- pos -= 4;
161
- for(let i = 0; i < width; i++){
162
- rgbe = d8.slice(pos, pos += 4);
163
- img[ipos++] = rgbe[0];
164
- img[ipos++] = rgbe[1];
165
- img[ipos++] = rgbe[2];
166
- img[ipos++] = rgbe[3];
167
- }
168
- }
169
- }
170
- const imageFloatBuffer = dstFormat === 'rgba32f' ? this._rgbeToFloat32(img) : dstFormat === 'rgba16f' ? this._rgbeToFloat16(img) : dstFormat === 'rg11b10uf' ? this._rgbeToR11G11B10(img) : this._rgbeToRGBM(img);
171
- return {
172
- dataFloat: imageFloatBuffer,
173
- width: width,
174
- height: height
175
- };
176
- }
177
- }
178
-
179
- export { HDRLoader };
180
- //# sourceMappingURL=hdr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hdr.js","sources":["../../../../../src/asset/loaders/hdr/hdr.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\nimport type { TypedArray } from '@zephyr3d/base';\nimport { floatToHalf, packFloat3 } from '@zephyr3d/base';\nimport { Application } from '../../../app';\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions, TextureFormat } from '@zephyr3d/device';\n\nconst _f16one = floatToHalf(1);\n/**\n * The HDR texture loader\n * @internal\n */\nexport class HDRLoader extends AbstractTextureLoader {\n supportMIMEType(mimeType: string): boolean {\n return mimeType === 'image/hdr' || mimeType === 'image/x-hdr' || mimeType === 'image/vnd.radiance';\n }\n async load(\n mimeType: string,\n data: ArrayBuffer | TypedArray,\n srgb: boolean,\n samplerOptions?: SamplerOptions,\n texture?: BaseTexture\n ): Promise<BaseTexture> {\n let format: TextureFormat;\n for (const fmt of ['rg11b10uf', 'rgba16f', 'rgba32f', 'rgba8unorm'] as const) {\n const info = Application.instance.device.getDeviceCaps().textureCaps.getTextureFormatInfo(fmt);\n if (info && info.filterable && info.renderable) {\n format = fmt;\n break;\n }\n }\n const arrayBuffer = data instanceof ArrayBuffer ? data : data.buffer;\n const offset = data instanceof ArrayBuffer ? 0 : data.byteOffset;\n const textureData = await this.loadHDR(new Uint8Array(arrayBuffer, offset), format);\n const options: TextureCreationOptions = {\n texture: texture,\n samplerOptions\n };\n const tex = Application.instance.device.createTexture2D(\n format,\n textureData.width,\n textureData.height,\n options\n );\n tex.update(textureData.dataFloat, 0, 0, textureData.width, textureData.height);\n return tex;\n }\n private _rgbeToFloat32(buffer: Uint8Array<ArrayBuffer>): Float32Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Float32Array(length * 4);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n\n result[i * 4] = buffer[i * 4] * s;\n result[i * 4 + 1] = buffer[i * 4 + 1] * s;\n result[i * 4 + 2] = buffer[i * 4 + 2] * s;\n result[i * 4 + 3] = 1;\n }\n return result;\n }\n private _rgbeToFloat16(buffer: Uint8Array<ArrayBuffer>): Uint16Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint16Array(length * 4);\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n result[i * 4 + 0] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4] * s, 65504)));\n result[i * 4 + 1] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 1] * s, 65504)));\n result[i * 4 + 2] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 2] * s, 65504)));\n result[i * 4 + 3] = _f16one;\n }\n return result;\n }\n private _rgbeToR11G11B10(buffer: Uint8Array<ArrayBuffer>): Uint32Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint32Array(length);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n const r = buffer[i * 4] * s;\n const g = buffer[i * 4 + 1] * s;\n const b = buffer[i * 4 + 2] * s;\n result[i] = packFloat3(r, g, b);\n }\n return result;\n }\n /*\n Decode: rgb = pow(6 * rgbm.rgb * rgbm.a, 2.2);\n */\n private _rgbeToRGBM(buffer: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint8Array(length * 4);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n const r = Math.pow(buffer[i * 4] * s, 1 / 2.2);\n const g = Math.pow(buffer[i * 4 + 1] * s, 1 / 2.2);\n const b = Math.pow(buffer[i * 4 + 2] * s, 1 / 2.2);\n const rgbMax = Math.max(r, g, b);\n const M = Math.ceil((255 * rgbMax) / 6) / 255;\n const t = M * 6;\n result[i * 4] = Math.ceil((255 * r) / t);\n result[i * 4 + 1] = Math.ceil((255 * g) / t);\n result[i * 4 + 2] = Math.ceil((255 * b) / t);\n result[i * 4 + 3] = Math.ceil(255 * Math.min(M, 1));\n }\n return result;\n }\n private async loadHDR(buffer: Uint8Array<ArrayBuffer>, dstFormat: TextureFormat) {\n let header = '';\n let pos = 0;\n const d8 = buffer;\n let format = undefined;\n // read header.\n while (!header.match(/\\n\\n[^\\n]+\\n/g)) {\n header += String.fromCodePoint(d8[pos++]);\n }\n // check format.\n format = header.match(/FORMAT=(.*)$/m);\n if (format.length < 2) {\n return undefined;\n }\n format = format[1];\n if (format != '32-bit_rle_rgbe') {\n console.warn('unknown format : ' + format);\n return null;\n }\n // parse resolution\n let rez = header.split(/\\n/).reverse();\n if (rez.length < 2) {\n return undefined;\n }\n rez = rez[1].split(' ');\n if (rez.length < 4) {\n return undefined;\n }\n const width = Number(rez[3]) * 1,\n height = Number(rez[1]) * 1;\n // Create image.\n const img = new Uint8Array(width * height * 4);\n let ipos = 0;\n // Read all scanlines\n for (let j = 0; j < height; j++) {\n const scanline = [];\n\n let rgbe = d8.slice(pos, (pos += 4));\n const isNewRLE =\n rgbe[0] == 2 && rgbe[1] == 2 && rgbe[2] == ((width >> 8) & 0xff) && rgbe[3] == (width & 0xff);\n\n if (isNewRLE && width >= 8 && width < 32768) {\n for (let i = 0; i < 4; i++) {\n let ptr = i * width;\n const ptr_end = (i + 1) * width;\n let buf = undefined;\n let count = undefined;\n while (ptr < ptr_end) {\n buf = d8.slice(pos, (pos += 2));\n if (buf[0] > 128) {\n count = buf[0] - 128;\n while (count-- > 0) {\n scanline[ptr++] = buf[1];\n }\n } else {\n count = buf[0] - 1;\n scanline[ptr++] = buf[1];\n while (count-- > 0) {\n scanline[ptr++] = d8[pos++];\n }\n }\n }\n }\n\n for (let i = 0; i < width; i++) {\n img[ipos++] = scanline[i + 0 * width];\n img[ipos++] = scanline[i + 1 * width];\n img[ipos++] = scanline[i + 2 * width];\n img[ipos++] = scanline[i + 3 * width];\n }\n } else {\n pos -= 4;\n\n for (let i = 0; i < width; i++) {\n rgbe = d8.slice(pos, (pos += 4));\n\n img[ipos++] = rgbe[0];\n img[ipos++] = rgbe[1];\n img[ipos++] = rgbe[2];\n img[ipos++] = rgbe[3];\n }\n }\n }\n\n const imageFloatBuffer =\n dstFormat === 'rgba32f'\n ? this._rgbeToFloat32(img)\n : dstFormat === 'rgba16f'\n ? this._rgbeToFloat16(img)\n : dstFormat === 'rg11b10uf'\n ? this._rgbeToR11G11B10(img)\n : this._rgbeToRGBM(img);\n\n return {\n dataFloat: imageFloatBuffer,\n width: width,\n height: height\n };\n }\n}\n"],"names":["_f16one","floatToHalf","HDRLoader","AbstractTextureLoader","supportMIMEType","mimeType","load","data","srgb","samplerOptions","texture","format","fmt","info","Application","instance","device","getDeviceCaps","textureCaps","getTextureFormatInfo","filterable","renderable","arrayBuffer","ArrayBuffer","buffer","offset","byteOffset","textureData","loadHDR","Uint8Array","options","tex","createTexture2D","width","height","update","dataFloat","_rgbeToFloat32","length","byteLength","result","Float32Array","i","s","Math","pow","_rgbeToFloat16","Uint16Array","max","min","_rgbeToR11G11B10","Uint32Array","r","g","b","packFloat3","_rgbeToRGBM","rgbMax","M","ceil","t","dstFormat","header","pos","d8","undefined","match","String","fromCodePoint","console","warn","rez","split","reverse","Number","img","ipos","j","scanline","rgbe","slice","isNewRLE","ptr","ptr_end","buf","count","imageFloatBuffer"],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { Application } from '../../../app/app.js';
3
-
4
- /**
5
- * TGA image loader
6
- * @internal
7
- */ class TGALoader extends AbstractTextureLoader {
8
- supportMIMEType(mimeType) {
9
- return mimeType === 'image/tga' || mimeType === 'image/x-tga';
10
- }
11
- parseTGA(content, sRGB, noMipmap, texture) {
12
- const arrayBuffer = content instanceof ArrayBuffer ? content : content.buffer;
13
- const offset = content instanceof ArrayBuffer ? 0 : content.byteOffset;
14
- const dataView = new DataView(arrayBuffer, offset);
15
- const p = [
16
- 0,
17
- 0,
18
- 0,
19
- 0
20
- ];
21
- do {
22
- let skip = 0;
23
- const idLength = dataView.getUint8(0);
24
- skip += idLength;
25
- const colorMapType = dataView.getUint8(1);
26
- if (colorMapType !== 0 && colorMapType !== 1) {
27
- break;
28
- }
29
- const dataTypeCode = dataView.getUint8(2);
30
- if (dataTypeCode !== 2 && dataTypeCode !== 10) {
31
- break;
32
- }
33
- const colorMapLength = dataView.getUint16(5, true);
34
- skip += colorMapLength * colorMapType;
35
- const width = dataView.getUint16(12, true);
36
- const height = dataView.getUint16(14, true);
37
- const bpp = dataView.getUint8(16);
38
- if (bpp !== 16 && bpp !== 24 && bpp !== 32) {
39
- break;
40
- }
41
- let dataOffset = 18 + skip;
42
- const bytesPerPixel = bpp / 8;
43
- const pixels = new Uint8Array(width * height * 4);
44
- let n = 0;
45
- while(n < width * height){
46
- if (dataTypeCode === 2) {
47
- for(let i = 0; i < bytesPerPixel; i++){
48
- p[i] = dataView.getUint8(dataOffset++);
49
- }
50
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
51
- n++;
52
- } else {
53
- const t = dataView.getUint8(dataOffset++);
54
- for(let i = 0; i < bytesPerPixel; i++){
55
- p[i] = dataView.getUint8(dataOffset++);
56
- }
57
- const j = t & 0x7f;
58
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
59
- n++;
60
- if (t & 0x80) {
61
- for(let i = 0; i < j; i++){
62
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
63
- n++;
64
- }
65
- } else {
66
- for(let i = 0; i < j; i++){
67
- for(let k = 0; k < bytesPerPixel; k++){
68
- p[i] = dataView.getUint8(dataOffset++);
69
- }
70
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
71
- n++;
72
- }
73
- }
74
- }
75
- }
76
- const opt = {
77
- texture
78
- };
79
- if (noMipmap) {
80
- opt.samplerOptions = {
81
- mipFilter: 'none'
82
- };
83
- }
84
- const tex = Application.instance.device.createTexture2D(sRGB ? 'rgba8unorm-srgb' : 'rgba8unorm', width, height, opt);
85
- tex.update(pixels, 0, 0, width, height);
86
- return tex;
87
- }while (false)
88
- throw new Error(`Unsupported TGA file format`);
89
- }
90
- mergeBytes(dest, offset, pixel, numBytes) {
91
- if (numBytes === 4) {
92
- dest[offset + 0] = pixel[2];
93
- dest[offset + 1] = pixel[1];
94
- dest[offset + 2] = pixel[0];
95
- dest[offset + 3] = pixel[3];
96
- } else if (numBytes === 3) {
97
- dest[offset + 0] = pixel[2];
98
- dest[offset + 1] = pixel[1];
99
- dest[offset + 2] = pixel[0];
100
- dest[offset + 3] = 255;
101
- } else if (numBytes === 2) {
102
- dest[offset + 0] = (pixel[1] & 0x7c) << 1;
103
- dest[offset + 1] = (pixel[1] & 0x03) << 6 | (pixel[0] & 0xe0) >> 2;
104
- dest[offset + 2] = (pixel[0] & 0x1f) << 3;
105
- dest[offset + 3] = pixel[1] & 0x80;
106
- }
107
- }
108
- async load(mimeType, data, srgb, samplerOptions, texture) {
109
- return new Promise((resolve)=>{
110
- resolve(this.parseTGA(data, srgb, samplerOptions?.mipFilter === 'none', texture));
111
- });
112
- }
113
- }
114
-
115
- export { TGALoader };
116
- //# sourceMappingURL=tga_Loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tga_Loader.js","sources":["../../../../../src/asset/loaders/image/tga_Loader.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\nimport { Application } from '../../../app/app';\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions } from '@zephyr3d/device';\nimport type { TypedArray } from '@zephyr3d/base';\n\n/**\n * TGA image loader\n * @internal\n */\nexport class TGALoader extends AbstractTextureLoader {\n supportMIMEType(mimeType: string): boolean {\n return mimeType === 'image/tga' || mimeType === 'image/x-tga';\n }\n private parseTGA(\n content: ArrayBuffer | TypedArray,\n sRGB: boolean,\n noMipmap: boolean,\n texture: BaseTexture\n ) {\n const arrayBuffer = content instanceof ArrayBuffer ? content : content.buffer;\n const offset = content instanceof ArrayBuffer ? 0 : content.byteOffset;\n const dataView = new DataView(arrayBuffer, offset);\n const p: number[] = [0, 0, 0, 0];\n do {\n let skip = 0;\n const idLength = dataView.getUint8(0);\n skip += idLength;\n const colorMapType = dataView.getUint8(1);\n if (colorMapType !== 0 && colorMapType !== 1) {\n break;\n }\n const dataTypeCode = dataView.getUint8(2);\n if (dataTypeCode !== 2 && dataTypeCode !== 10) {\n break;\n }\n const colorMapLength = dataView.getUint16(5, true);\n skip += colorMapLength * colorMapType;\n const width = dataView.getUint16(12, true);\n const height = dataView.getUint16(14, true);\n const bpp = dataView.getUint8(16);\n if (bpp !== 16 && bpp !== 24 && bpp !== 32) {\n break;\n }\n let dataOffset = 18 + skip;\n const bytesPerPixel = bpp / 8;\n const pixels = new Uint8Array(width * height * 4);\n let n = 0;\n while (n < width * height) {\n if (dataTypeCode === 2) {\n for (let i = 0; i < bytesPerPixel; i++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n } else {\n const t = dataView.getUint8(dataOffset++);\n for (let i = 0; i < bytesPerPixel; i++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n const j = t & 0x7f;\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n if (t & 0x80) {\n for (let i = 0; i < j; i++) {\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n }\n } else {\n for (let i = 0; i < j; i++) {\n for (let k = 0; k < bytesPerPixel; k++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n }\n }\n }\n }\n const opt: TextureCreationOptions = { texture };\n if (noMipmap) {\n opt.samplerOptions = { mipFilter: 'none' };\n }\n const tex = Application.instance.device.createTexture2D(\n sRGB ? 'rgba8unorm-srgb' : 'rgba8unorm',\n width,\n height,\n opt\n );\n tex.update(pixels, 0, 0, width, height);\n return tex;\n } while (false);\n throw new Error(`Unsupported TGA file format`);\n }\n private mergeBytes(dest: Uint8Array<ArrayBuffer>, offset: number, pixel: number[], numBytes: number) {\n if (numBytes === 4) {\n dest[offset + 0] = pixel[2];\n dest[offset + 1] = pixel[1];\n dest[offset + 2] = pixel[0];\n dest[offset + 3] = pixel[3];\n } else if (numBytes === 3) {\n dest[offset + 0] = pixel[2];\n dest[offset + 1] = pixel[1];\n dest[offset + 2] = pixel[0];\n dest[offset + 3] = 255;\n } else if (numBytes === 2) {\n dest[offset + 0] = (pixel[1] & 0x7c) << 1;\n dest[offset + 1] = ((pixel[1] & 0x03) << 6) | ((pixel[0] & 0xe0) >> 2);\n dest[offset + 2] = (pixel[0] & 0x1f) << 3;\n dest[offset + 3] = pixel[1] & 0x80;\n }\n }\n async load(\n mimeType: string,\n data: ArrayBuffer | TypedArray,\n srgb: boolean,\n samplerOptions?: SamplerOptions,\n texture?: BaseTexture\n ): Promise<BaseTexture> {\n return new Promise<BaseTexture>((resolve) => {\n resolve(this.parseTGA(data, srgb, samplerOptions?.mipFilter === 'none', texture));\n });\n }\n}\n"],"names":["TGALoader","AbstractTextureLoader","supportMIMEType","mimeType","parseTGA","content","sRGB","noMipmap","texture","arrayBuffer","ArrayBuffer","buffer","offset","byteOffset","dataView","DataView","p","skip","idLength","getUint8","colorMapType","dataTypeCode","colorMapLength","getUint16","width","height","bpp","dataOffset","bytesPerPixel","pixels","Uint8Array","n","i","mergeBytes","t","j","k","opt","samplerOptions","mipFilter","tex","Application","instance","device","createTexture2D","update","Error","dest","pixel","numBytes","load","data","srgb","Promise","resolve"],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { Application } from '../../../app/app.js';
3
-
4
- /**
5
- * Web image loader
6
- * @internal
7
- */ class WebImageLoader extends AbstractTextureLoader {
8
- supportMIMEType(mimeType) {
9
- return mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png';
10
- }
11
- async load(mimeType, data, srgb, samplerOptions, texture) {
12
- return new Promise((resolve, reject)=>{
13
- if (!mimeType) {
14
- reject('unknown image file type');
15
- }
16
- const src = URL.createObjectURL(new Blob([
17
- data
18
- ], {
19
- type: mimeType
20
- }));
21
- const img = document.createElement('img');
22
- img.src = src;
23
- img.onload = function() {
24
- createImageBitmap(img, {
25
- premultiplyAlpha: 'none'
26
- }).then((bm)=>{
27
- const options = {
28
- texture: texture,
29
- samplerOptions
30
- };
31
- const tex = Application.instance.device.createTexture2DFromImage(bm, srgb, options);
32
- if (tex) {
33
- resolve(tex);
34
- } else {
35
- reject('create texture from image element failed');
36
- }
37
- }).catch(()=>{
38
- const cvs = document.createElement('canvas');
39
- cvs.width = img.width;
40
- cvs.height = img.height;
41
- const ctx = cvs.getContext('2d');
42
- ctx.drawImage(img, 0, 0);
43
- const options = {
44
- texture: texture,
45
- samplerOptions
46
- };
47
- const tex = Application.instance.device.createTexture2DFromImage(cvs, srgb, options);
48
- if (tex) {
49
- resolve(tex);
50
- } else {
51
- reject('create texture from image element failed');
52
- }
53
- });
54
- };
55
- img.onerror = (err)=>{
56
- reject(err);
57
- };
58
- });
59
- }
60
- }
61
-
62
- export { WebImageLoader };
63
- //# sourceMappingURL=webimage_loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webimage_loader.js","sources":["../../../../../src/asset/loaders/image/webimage_loader.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\r\nimport { Application } from '../../../app';\r\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions } from '@zephyr3d/device';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\n\r\n/**\r\n * Web image loader\r\n * @internal\r\n */\r\nexport class WebImageLoader extends AbstractTextureLoader {\r\n supportMIMEType(mimeType: string): boolean {\r\n return mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png';\r\n }\r\n async load(\r\n mimeType: string,\r\n data: ArrayBuffer | TypedArray,\r\n srgb: boolean,\r\n samplerOptions?: SamplerOptions,\r\n texture?: BaseTexture\r\n ): Promise<BaseTexture> {\r\n return new Promise<BaseTexture>((resolve, reject) => {\r\n if (!mimeType) {\r\n reject('unknown image file type');\r\n }\r\n const src = URL.createObjectURL(new Blob([data], { type: mimeType }));\r\n const img = document.createElement('img');\r\n img.src = src;\r\n img.onload = function () {\r\n createImageBitmap(img, {\r\n premultiplyAlpha: 'none'\r\n })\r\n .then((bm) => {\r\n const options: TextureCreationOptions = {\r\n texture: texture,\r\n samplerOptions\r\n };\r\n const tex = Application.instance.device.createTexture2DFromImage(bm, srgb, options);\r\n if (tex) {\r\n resolve(tex);\r\n } else {\r\n reject('create texture from image element failed');\r\n }\r\n })\r\n .catch(() => {\r\n const cvs = document.createElement('canvas');\r\n cvs.width = img.width;\r\n cvs.height = img.height;\r\n const ctx = cvs.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n const options: TextureCreationOptions = {\r\n texture: texture,\r\n samplerOptions\r\n };\r\n const tex = Application.instance.device.createTexture2DFromImage(cvs, srgb, options);\r\n if (tex) {\r\n resolve(tex);\r\n } else {\r\n reject('create texture from image element failed');\r\n }\r\n });\r\n };\r\n img.onerror = (err) => {\r\n reject(err);\r\n };\r\n });\r\n }\r\n}\r\n"],"names":["WebImageLoader","AbstractTextureLoader","supportMIMEType","mimeType","load","data","srgb","samplerOptions","texture","Promise","resolve","reject","src","URL","createObjectURL","Blob","type","img","document","createElement","onload","createImageBitmap","premultiplyAlpha","then","bm","options","tex","Application","instance","device","createTexture2DFromImage","catch","cvs","width","height","ctx","getContext","drawImage","onerror","err"],"mappings":";;;AAKA;;;IAIO,MAAMA,cAAuBC,SAAAA,qBAAAA,CAAAA;AAClCC,IAAAA,eAAAA,CAAgBC,QAAgB,EAAW;AACzC,QAAA,OAAOA,QAAa,KAAA,WAAA,IAAeA,QAAa,KAAA,YAAA,IAAgBA,QAAa,KAAA,WAAA;AAC/E;IACA,MAAMC,IAAAA,CACJD,QAAgB,EAChBE,IAA8B,EAC9BC,IAAa,EACbC,cAA+B,EAC/BC,OAAqB,EACC;QACtB,OAAO,IAAIC,OAAqB,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;AACxC,YAAA,IAAI,CAACR,QAAU,EAAA;gBACbQ,MAAO,CAAA,yBAAA,CAAA;AACT;AACA,YAAA,MAAMC,GAAMC,GAAAA,GAAAA,CAAIC,eAAe,CAAC,IAAIC,IAAK,CAAA;AAACV,gBAAAA;aAAK,EAAE;gBAAEW,IAAMb,EAAAA;AAAS,aAAA,CAAA,CAAA;YAClE,MAAMc,GAAAA,GAAMC,QAASC,CAAAA,aAAa,CAAC,KAAA,CAAA;AACnCF,YAAAA,GAAAA,CAAIL,GAAG,GAAGA,GAAAA;AACVK,YAAAA,GAAAA,CAAIG,MAAM,GAAG,WAAA;AACXC,gBAAAA,iBAAAA,CAAkBJ,GAAK,EAAA;oBACrBK,gBAAkB,EAAA;iBAEjBC,CAAAA,CAAAA,IAAI,CAAC,CAACC,EAAAA,GAAAA;AACL,oBAAA,MAAMC,OAAkC,GAAA;wBACtCjB,OAASA,EAAAA,OAAAA;AACTD,wBAAAA;AACF,qBAAA;oBACA,MAAMmB,GAAAA,GAAMC,YAAYC,QAAQ,CAACC,MAAM,CAACC,wBAAwB,CAACN,EAAAA,EAAIlB,IAAMmB,EAAAA,OAAAA,CAAAA;AAC3E,oBAAA,IAAIC,GAAK,EAAA;wBACPhB,OAAQgB,CAAAA,GAAAA,CAAAA;qBACH,MAAA;wBACLf,MAAO,CAAA,0CAAA,CAAA;AACT;AACF,iBAAA,CAAA,CACCoB,KAAK,CAAC,IAAA;oBACL,MAAMC,GAAAA,GAAMd,QAASC,CAAAA,aAAa,CAAC,QAAA,CAAA;oBACnCa,GAAIC,CAAAA,KAAK,GAAGhB,GAAAA,CAAIgB,KAAK;oBACrBD,GAAIE,CAAAA,MAAM,GAAGjB,GAAAA,CAAIiB,MAAM;oBACvB,MAAMC,GAAAA,GAAMH,GAAII,CAAAA,UAAU,CAAC,IAAA,CAAA;oBAC3BD,GAAIE,CAAAA,SAAS,CAACpB,GAAAA,EAAK,CAAG,EAAA,CAAA,CAAA;AACtB,oBAAA,MAAMQ,OAAkC,GAAA;wBACtCjB,OAASA,EAAAA,OAAAA;AACTD,wBAAAA;AACF,qBAAA;oBACA,MAAMmB,GAAAA,GAAMC,YAAYC,QAAQ,CAACC,MAAM,CAACC,wBAAwB,CAACE,GAAAA,EAAK1B,IAAMmB,EAAAA,OAAAA,CAAAA;AAC5E,oBAAA,IAAIC,GAAK,EAAA;wBACPhB,OAAQgB,CAAAA,GAAAA,CAAAA;qBACH,MAAA;wBACLf,MAAO,CAAA,0CAAA,CAAA;AACT;AACF,iBAAA,CAAA;AACJ,aAAA;YACAM,GAAIqB,CAAAA,OAAO,GAAG,CAACC,GAAAA,GAAAA;gBACb5B,MAAO4B,CAAAA,GAAAA,CAAAA;AACT,aAAA;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -1,45 +0,0 @@
1
- /**
2
- * Base interface for any kind loaders
3
- * @public
4
- */ class LoaderBase {
5
- /** @internal */ _urlResolver;
6
- /**
7
- * Creates an instance of LoaderBase
8
- */ constructor(){
9
- this._urlResolver = null;
10
- }
11
- /**
12
- * URL resolver for the loader
13
- */ get urlResolver() {
14
- return this._urlResolver;
15
- }
16
- set urlResolver(resolver) {
17
- this._urlResolver = resolver;
18
- }
19
- /**
20
- * Sends a GET request
21
- * @param url - The URL to get
22
- * @param headers - The headers for the request
23
- * @param crossOrigin - crossOrigin property for the request
24
- * @returns Response of the request
25
- */ async request(url, headers = {}, crossOrigin = 'anonymous') {
26
- url = this._urlResolver ? this._urlResolver(url) : null;
27
- return url ? fetch(url, {
28
- credentials: crossOrigin === 'anonymous' ? 'same-origin' : 'include',
29
- headers: headers
30
- }) : null;
31
- }
32
- }
33
- /**
34
- * Base class for any kind of texture loaders
35
- * @public
36
- */ class AbstractTextureLoader extends LoaderBase {
37
- }
38
- /**
39
- * Base class for any kind of model loaders
40
- * @public
41
- */ class AbstractModelLoader extends LoaderBase {
42
- }
43
-
44
- export { AbstractModelLoader, AbstractTextureLoader, LoaderBase };
45
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sources":["../../../../src/asset/loaders/loader.ts"],"sourcesContent":["import type { BaseTexture, SamplerOptions } from '@zephyr3d/device';\r\nimport type { AssetManager } from '../assetmanager';\r\nimport type { SharedModel } from '../model';\r\nimport type { DecoderModule } from 'draco3d';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\n\r\n/**\r\n * Base interface for any kind loaders\r\n * @public\r\n */\r\nexport class LoaderBase {\r\n /** @internal */\r\n protected _urlResolver: (url: string) => string;\r\n /**\r\n * Creates an instance of LoaderBase\r\n */\r\n constructor() {\r\n this._urlResolver = null;\r\n }\r\n /**\r\n * URL resolver for the loader\r\n */\r\n get urlResolver(): (url: string) => string {\r\n return this._urlResolver;\r\n }\r\n set urlResolver(resolver: (url: string) => string) {\r\n this._urlResolver = resolver;\r\n }\r\n /**\r\n * Sends a GET request\r\n * @param url - The URL to get\r\n * @param headers - The headers for the request\r\n * @param crossOrigin - crossOrigin property for the request\r\n * @returns Response of the request\r\n */\r\n async request(\r\n url: string,\r\n headers: Record<string, string> = {},\r\n crossOrigin = 'anonymous'\r\n ): Promise<Response> {\r\n url = this._urlResolver ? this._urlResolver(url) : null;\r\n return url\r\n ? fetch(url, {\r\n credentials: crossOrigin === 'anonymous' ? 'same-origin' : 'include',\r\n headers: headers\r\n })\r\n : null;\r\n }\r\n}\r\n/**\r\n * Base class for any kind of texture loaders\r\n * @public\r\n */\r\nexport abstract class AbstractTextureLoader extends LoaderBase {\r\n /**\r\n * Tests whether the loader supports loading a texture with given MIME type.\r\n * @param mimeType - The MIME type to test\r\n * @returns true if it supports\r\n */\r\n abstract supportMIMEType(mimeType: string): boolean;\r\n /**\r\n * Loads a texture\r\n * @param assetManager - The instance of AssetManager\r\n * @param url - The request URL\r\n * @param mimeType - MIME type for the texture image data\r\n * @param data - The texture image data\r\n * @param srgb - true if the texture is of sRGB format\r\n * @param samplerOptions - Sampler options of the texture\r\n * @param texture - if not null, this is a texture restore operation\r\n * @returns The loaded texture\r\n */\r\n abstract load(\r\n mimeType: string,\r\n data: ArrayBuffer | TypedArray,\r\n srgb: boolean,\r\n samplerOptions?: SamplerOptions,\r\n texture?: BaseTexture\r\n ): Promise<BaseTexture>;\r\n}\r\n\r\n/**\r\n * Base class for any kind of model loaders\r\n * @public\r\n */\r\nexport abstract class AbstractModelLoader extends LoaderBase {\r\n /**\r\n * Tests whether the loader supports loading a model with given MIME type.\r\n * @param mimeType - The MIME type to test\r\n * @returns true if it supports\r\n */\r\n abstract supportMIMEType(mimeType: string): boolean;\r\n /**\r\n * Loads a model\r\n * @param assetManager - The instance of AssetManager\r\n * @param url - The request URL\r\n * @param mimeType - MIME type for the model data\r\n * @param data - The model data\r\n * @returns The loaded model\r\n */\r\n abstract load(\r\n assetManager: AssetManager,\r\n url: string,\r\n mimeType: string,\r\n data: Blob,\r\n dracoDecoderModule?: DecoderModule\r\n ): Promise<SharedModel>;\r\n}\r\n"],"names":["LoaderBase","_urlResolver","urlResolver","resolver","request","url","headers","crossOrigin","fetch","credentials","AbstractTextureLoader","AbstractModelLoader"],"mappings":"AAMA;;;AAGC,IACM,MAAMA,UAAAA,CAAAA;qBAEX,YAAgD;AAChD;;AAEC,MACD,WAAc,EAAA;QACZ,IAAI,CAACC,YAAY,GAAG,IAAA;AACtB;AACA;;AAEC,MACD,IAAIC,WAAuC,GAAA;QACzC,OAAO,IAAI,CAACD,YAAY;AAC1B;IACA,IAAIC,WAAAA,CAAYC,QAAiC,EAAE;QACjD,IAAI,CAACF,YAAY,GAAGE,QAAAA;AACtB;AACA;;;;;;MAOA,MAAMC,OACJC,CAAAA,GAAW,EACXC,OAAAA,GAAkC,EAAE,EACpCC,WAAc,GAAA,WAAW,EACN;QACnBF,GAAM,GAAA,IAAI,CAACJ,YAAY,GAAG,IAAI,CAACA,YAAY,CAACI,GAAO,CAAA,GAAA,IAAA;QACnD,OAAOA,GAAAA,GACHG,MAAMH,GAAK,EAAA;YACTI,WAAaF,EAAAA,WAAAA,KAAgB,cAAc,aAAgB,GAAA,SAAA;YAC3DD,OAASA,EAAAA;SAEX,CAAA,GAAA,IAAA;AACN;AACF;AACA;;;IAIO,MAAeI,qBAA8BV,SAAAA,UAAAA,CAAAA;AAyBpD;AAEA;;;IAIO,MAAeW,mBAA4BX,SAAAA,UAAAA,CAAAA;AAsBlD;;;;"}