@babylonjs/viewer 7.25.0-alpha → 7.25.0

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 (522) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +192 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +350 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +199 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +27 -17
  158. package/readme.md +21 -35
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +21 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +40 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +675 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/dist/babylon-viewer.esm.js +0 -2
  193. package/dist/babylon-viewer.esm.js.map +0 -1
  194. package/dist/babylon-viewer.esm.min.js +0 -2
  195. package/dist/babylon-viewer.esm.min.js.map +0 -1
  196. package/dist/chunks/EXT_lights_image_based-DC9fPJli.esm.min.js +0 -2
  197. package/dist/chunks/EXT_lights_image_based-DC9fPJli.esm.min.js.map +0 -1
  198. package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js +0 -170
  199. package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js.map +0 -1
  200. package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js +0 -2
  201. package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js.map +0 -1
  202. package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js +0 -86
  203. package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js.map +0 -1
  204. package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js +0 -134
  205. package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js.map +0 -1
  206. package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js +0 -2
  207. package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js.map +0 -1
  208. package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js +0 -44
  209. package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js.map +0 -1
  210. package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js +0 -2
  211. package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js.map +0 -1
  212. package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js +0 -2
  213. package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js.map +0 -1
  214. package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js +0 -43
  215. package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js.map +0 -1
  216. package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js +0 -64
  217. package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js.map +0 -1
  218. package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js +0 -2
  219. package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js.map +0 -1
  220. package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js +0 -343
  221. package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js.map +0 -1
  222. package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js +0 -2
  223. package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js.map +0 -1
  224. package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js +0 -2
  225. package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js.map +0 -1
  226. package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js +0 -610
  227. package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js.map +0 -1
  228. package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js +0 -2
  229. package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js.map +0 -1
  230. package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js +0 -4033
  231. package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js.map +0 -1
  232. package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js +0 -1253
  233. package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js.map +0 -1
  234. package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js +0 -2
  235. package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js.map +0 -1
  236. package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js +0 -64
  237. package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js.map +0 -1
  238. package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js +0 -2
  239. package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js.map +0 -1
  240. package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js +0 -2
  241. package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js.map +0 -1
  242. package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js +0 -96
  243. package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js.map +0 -1
  244. package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js +0 -2
  245. package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js.map +0 -1
  246. package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js +0 -95
  247. package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js.map +0 -1
  248. package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js +0 -2
  249. package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js.map +0 -1
  250. package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js +0 -62
  251. package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js.map +0 -1
  252. package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js +0 -55
  253. package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js.map +0 -1
  254. package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js +0 -2
  255. package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js.map +0 -1
  256. package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js +0 -2
  257. package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js.map +0 -1
  258. package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js +0 -64
  259. package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js.map +0 -1
  260. package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js +0 -2
  261. package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js.map +0 -1
  262. package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js +0 -72
  263. package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js.map +0 -1
  264. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js +0 -2
  265. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js.map +0 -1
  266. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js +0 -81
  267. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js.map +0 -1
  268. package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js +0 -2
  269. package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js.map +0 -1
  270. package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js +0 -85
  271. package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js.map +0 -1
  272. package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js +0 -2
  273. package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js.map +0 -1
  274. package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js +0 -75
  275. package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js.map +0 -1
  276. package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js +0 -306
  277. package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js.map +0 -1
  278. package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js +0 -2
  279. package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js.map +0 -1
  280. package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js +0 -2
  281. package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js.map +0 -1
  282. package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js +0 -74
  283. package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js.map +0 -1
  284. package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js +0 -2
  285. package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js.map +0 -1
  286. package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js +0 -238
  287. package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js.map +0 -1
  288. package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js +0 -2
  289. package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js.map +0 -1
  290. package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js +0 -87
  291. package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js.map +0 -1
  292. package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js +0 -2
  293. package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js.map +0 -1
  294. package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js +0 -26
  295. package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js.map +0 -1
  296. package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js +0 -43
  297. package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js.map +0 -1
  298. package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js +0 -2
  299. package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js.map +0 -1
  300. package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js +0 -63
  301. package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js.map +0 -1
  302. package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js +0 -2
  303. package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js.map +0 -1
  304. package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js +0 -2
  305. package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js.map +0 -1
  306. package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js +0 -51
  307. package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js.map +0 -1
  308. package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js +0 -1608
  309. package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js.map +0 -1
  310. package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js +0 -2
  311. package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js.map +0 -1
  312. package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js +0 -2
  313. package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js.map +0 -1
  314. package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js +0 -337
  315. package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js.map +0 -1
  316. package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js +0 -2
  317. package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js.map +0 -1
  318. package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js +0 -46
  319. package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js.map +0 -1
  320. package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js +0 -47
  321. package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js.map +0 -1
  322. package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js +0 -2
  323. package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js.map +0 -1
  324. package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js +0 -2
  325. package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js.map +0 -1
  326. package/dist/chunks/assetContainer-DEN9e8ap.esm.js +0 -1598
  327. package/dist/chunks/assetContainer-DEN9e8ap.esm.js.map +0 -1
  328. package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js +0 -600
  329. package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js.map +0 -1
  330. package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js +0 -2
  331. package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js.map +0 -1
  332. package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js +0 -2
  333. package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js.map +0 -1
  334. package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js +0 -87
  335. package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js.map +0 -1
  336. package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js +0 -2
  337. package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js.map +0 -1
  338. package/dist/chunks/default.fragment-KU3HcVdD.esm.js +0 -515
  339. package/dist/chunks/default.fragment-KU3HcVdD.esm.js.map +0 -1
  340. package/dist/chunks/default.fragment-YuNZ7QG_.esm.js +0 -456
  341. package/dist/chunks/default.fragment-YuNZ7QG_.esm.js.map +0 -1
  342. package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js +0 -2
  343. package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js.map +0 -1
  344. package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js +0 -2
  345. package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js.map +0 -1
  346. package/dist/chunks/default.vertex-BVid4c1x.esm.js +0 -199
  347. package/dist/chunks/default.vertex-BVid4c1x.esm.js.map +0 -1
  348. package/dist/chunks/default.vertex-DyVCLPqJ.esm.js +0 -178
  349. package/dist/chunks/default.vertex-DyVCLPqJ.esm.js.map +0 -1
  350. package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js +0 -2
  351. package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js.map +0 -1
  352. package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js +0 -2
  353. package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js.map +0 -1
  354. package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js +0 -13
  355. package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js.map +0 -1
  356. package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js +0 -15
  357. package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js.map +0 -1
  358. package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js +0 -2
  359. package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js.map +0 -1
  360. package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js +0 -63
  361. package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js.map +0 -1
  362. package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js +0 -2
  363. package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js.map +0 -1
  364. package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js +0 -2
  365. package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js.map +0 -1
  366. package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js +0 -381
  367. package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js.map +0 -1
  368. package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js +0 -1682
  369. package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js.map +0 -1
  370. package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js +0 -2
  371. package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js.map +0 -1
  372. package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js +0 -2
  373. package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js.map +0 -1
  374. package/dist/chunks/fogFragment-I5stYsjp.esm.js +0 -102
  375. package/dist/chunks/fogFragment-I5stYsjp.esm.js.map +0 -1
  376. package/dist/chunks/glTFLoader-Da2YOCGR.esm.js +0 -7552
  377. package/dist/chunks/glTFLoader-Da2YOCGR.esm.js.map +0 -1
  378. package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js +0 -2
  379. package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js.map +0 -1
  380. package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js +0 -2
  381. package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js.map +0 -1
  382. package/dist/chunks/glTFLoaderAnimation-CbznFn_D.esm.js +0 -77
  383. package/dist/chunks/glTFLoaderAnimation-CbznFn_D.esm.js.map +0 -1
  384. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  385. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  386. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  387. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  388. package/dist/chunks/harmonicsFunctions-BetF_GFT.esm.js +0 -35
  389. package/dist/chunks/harmonicsFunctions-BetF_GFT.esm.js.map +0 -1
  390. package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js +0 -34
  391. package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js.map +0 -1
  392. package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js +0 -2
  393. package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js.map +0 -1
  394. package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js +0 -2
  395. package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js.map +0 -1
  396. package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js +0 -2
  397. package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js.map +0 -1
  398. package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js +0 -252
  399. package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js.map +0 -1
  400. package/dist/chunks/helperFunctions-B7m7R064.esm.js +0 -108
  401. package/dist/chunks/helperFunctions-B7m7R064.esm.js.map +0 -1
  402. package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js +0 -2
  403. package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js.map +0 -1
  404. package/dist/chunks/helperFunctions-CigixUGL.esm.min.js +0 -2
  405. package/dist/chunks/helperFunctions-CigixUGL.esm.min.js.map +0 -1
  406. package/dist/chunks/helperFunctions-D2JAu3Um.esm.js +0 -80
  407. package/dist/chunks/helperFunctions-D2JAu3Um.esm.js.map +0 -1
  408. package/dist/chunks/index-Ba-YQVRw.esm.min.js +0 -57
  409. package/dist/chunks/index-Ba-YQVRw.esm.min.js.map +0 -1
  410. package/dist/chunks/index-DCMXQRx5.esm.js +0 -81652
  411. package/dist/chunks/index-DCMXQRx5.esm.js.map +0 -1
  412. package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js +0 -814
  413. package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js.map +0 -1
  414. package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js +0 -2
  415. package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js.map +0 -1
  416. package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js +0 -42
  417. package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js.map +0 -1
  418. package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js +0 -35
  419. package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js.map +0 -1
  420. package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js +0 -2
  421. package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js.map +0 -1
  422. package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js +0 -2
  423. package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js.map +0 -1
  424. package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js +0 -2
  425. package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js.map +0 -1
  426. package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js +0 -77
  427. package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js.map +0 -1
  428. package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js +0 -2
  429. package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js.map +0 -1
  430. package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js +0 -605
  431. package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js.map +0 -1
  432. package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js +0 -2
  433. package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js.map +0 -1
  434. package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js +0 -11
  435. package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js.map +0 -1
  436. package/dist/chunks/objFileLoader-B1j9OyPi.esm.js +0 -1280
  437. package/dist/chunks/objFileLoader-B1j9OyPi.esm.js.map +0 -1
  438. package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js +0 -2
  439. package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js.map +0 -1
  440. package/dist/chunks/oitFragment-C7OX8yZO.esm.js +0 -1166
  441. package/dist/chunks/oitFragment-C7OX8yZO.esm.js.map +0 -1
  442. package/dist/chunks/oitFragment-CROGuom4.esm.min.js +0 -2
  443. package/dist/chunks/oitFragment-CROGuom4.esm.min.js.map +0 -1
  444. package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js +0 -2
  445. package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js.map +0 -1
  446. package/dist/chunks/oitFragment-QaeREI-l.esm.js +0 -1210
  447. package/dist/chunks/oitFragment-QaeREI-l.esm.js.map +0 -1
  448. package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js +0 -2
  449. package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js.map +0 -1
  450. package/dist/chunks/pass.fragment-DWGZaulM.esm.js +0 -15
  451. package/dist/chunks/pass.fragment-DWGZaulM.esm.js.map +0 -1
  452. package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js +0 -2
  453. package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js.map +0 -1
  454. package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js +0 -3172
  455. package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js.map +0 -1
  456. package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js +0 -3228
  457. package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js.map +0 -1
  458. package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js +0 -2
  459. package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js.map +0 -1
  460. package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js +0 -2
  461. package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js.map +0 -1
  462. package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js +0 -335
  463. package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js.map +0 -1
  464. package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js +0 -2
  465. package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js.map +0 -1
  466. package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js +0 -208
  467. package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js.map +0 -1
  468. package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js +0 -2
  469. package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js.map +0 -1
  470. package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js +0 -20
  471. package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js.map +0 -1
  472. package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js +0 -2
  473. package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js.map +0 -1
  474. package/dist/chunks/rawTexture-DqO-U47x.esm.js +0 -562
  475. package/dist/chunks/rawTexture-DqO-U47x.esm.js.map +0 -1
  476. package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js +0 -17
  477. package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js.map +0 -1
  478. package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js +0 -17
  479. package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js.map +0 -1
  480. package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js +0 -2
  481. package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js.map +0 -1
  482. package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js +0 -2
  483. package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js.map +0 -1
  484. package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js +0 -17
  485. package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js.map +0 -1
  486. package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js +0 -2
  487. package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js.map +0 -1
  488. package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js +0 -17
  489. package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js.map +0 -1
  490. package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js +0 -2
  491. package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js.map +0 -1
  492. package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js +0 -2
  493. package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js.map +0 -1
  494. package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js +0 -3154
  495. package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js.map +0 -1
  496. package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js +0 -2
  497. package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js.map +0 -1
  498. package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js +0 -1809
  499. package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js.map +0 -1
  500. package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js +0 -237
  501. package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js.map +0 -1
  502. package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js +0 -2
  503. package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js.map +0 -1
  504. package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js +0 -349
  505. package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js.map +0 -1
  506. package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js +0 -2
  507. package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js.map +0 -1
  508. package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js +0 -2
  509. package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js.map +0 -1
  510. package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js +0 -314
  511. package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js.map +0 -1
  512. package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js +0 -2
  513. package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js.map +0 -1
  514. package/dist/chunks/vertexColorMixing-Cq9NDkQU.esm.js +0 -528
  515. package/dist/chunks/vertexColorMixing-Cq9NDkQU.esm.js.map +0 -1
  516. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  517. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  518. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  519. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  520. package/lib/index.d.ts +0 -237
  521. package/lib/index.js +0 -871
  522. package/lib/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"pbr.vertex-DmN6aBEn.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/pbr.vertex.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/pbrUboDeclaration\";\nimport \"./ShadersInclude/uvAttributeDeclaration\";\nimport \"./ShadersInclude/mainUVVaryingDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/bonesDeclaration\";\nimport \"./ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"./ShadersInclude/instancesDeclaration\";\nimport \"./ShadersInclude/prePassVertexDeclaration\";\nimport \"./ShadersInclude/samplerVertexDeclaration\";\nimport \"./ShadersInclude/harmonicsFunctions\";\nimport \"./ShadersInclude/bumpVertexDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/lightVxUboDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobalDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobal\";\nimport \"./ShadersInclude/morphTargetsVertex\";\nimport \"./ShadersInclude/instancesVertex\";\nimport \"./ShadersInclude/bonesVertex\";\nimport \"./ShadersInclude/bakedVertexAnimation\";\nimport \"./ShadersInclude/prePassVertex\";\nimport \"./ShadersInclude/uvVariableDeclaration\";\nimport \"./ShadersInclude/samplerVertexImplementation\";\nimport \"./ShadersInclude/bumpVertex\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/shadowsVertex\";\nimport \"./ShadersInclude/vertexColorMixing\";\nimport \"./ShadersInclude/logDepthVertex\";\nconst name = \"pbrVertexShader\";\nconst shader = `#include<pbrUboDeclaration>\n#define CUSTOM_VERTEX_BEGIN\nattribute position: vec3f;\n#ifdef NORMAL\nattribute normal: vec3f;\n#endif\n#ifdef TANGENT\nattribute tangent: vec4f;\n#endif\n#ifdef UV1\nattribute uv: vec2f;\n#endif\n#include<uvAttributeDeclaration>[2..7]\n#include<mainUVVaryingDeclaration>[1..7]\n#ifdef VERTEXCOLOR\nattribute color: vec4f;\n#endif\n#include<helperFunctions>\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\n#include<prePassVertexDeclaration>\n#include<samplerVertexDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\n#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\n#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\n#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\n#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)\n#include<samplerVertexDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)\n#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)\n#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\n#ifdef CLEARCOAT\n#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)\n#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)\n#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)\n#endif\n#ifdef IRIDESCENCE\n#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)\n#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)\n#endif\n#ifdef SHEEN\n#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\n#endif\n#ifdef ANISOTROPIC\n#include<samplerVertexDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)\n#endif\n#ifdef SUBSURFACE\n#include<samplerVertexDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor)\n#endif\nvarying vPositionW: vec3f;\n#if DEBUGMODE>0\nvarying vClipSpacePosition: vec4f;\n#endif\n#ifdef NORMAL\nvarying vNormalW: vec3f;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vEnvironmentIrradiance: vec3f;\n#include<harmonicsFunctions>\n#endif\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vColor: vec4f;\n#endif\n#include<bumpVertexDeclaration>\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<lightVxUboDeclaration>[0..maxSimultaneousLights]\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vPositionUVW: vec3f;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vDirectionW: vec3f;\n#endif\n#include<logDepthDeclaration>\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar positionUpdated: vec3f=vertexInputs.position;\n#ifdef NORMAL\nvar normalUpdated: vec3f=vertexInputs.normal;\n#endif\n#ifdef TANGENT\nvar tangentUpdated: vec4f=vertexInputs.tangent;\n#endif\n#ifdef UV1\nvar uvUpdated: vec2f=vertexInputs.uv;\n#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvertexOutputs.vPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include<instancesVertex>\n#if defined(PREPASS) && (defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED) || defined(PREPASS_VELOCITY_LINEAR))\nvertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);\n#endif\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvar worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPositionW= worldPos.xyz;\n#include<prePassVertex>\n#ifdef NORMAL\nvar normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvar reflectionVector: vec3f= (uniforms.reflectionMatrix* vec4f(vertexOutputs.vNormalW,0)).xyz;\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\nvertexOutputs.vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}\n#else\nvertexOutputs.position=scene.viewProjection*worldPos;\n#endif\n#if DEBUGMODE>0\nvertexOutputs.vClipSpacePosition=vertexOutputs.position;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvertexOutputs.vDirectionW=normalize((finalWorld*vec4f(positionUpdated,0.0)).xyz);\n#endif\n#ifndef UV1\nvar uvUpdated: vec2f= vec2f(0.,0.);\n#endif\n#ifdef MAINUV1\nvertexOutputs.vMainUV1=uvUpdated;\n#endif\n#include<uvVariableDeclaration>[2..7]\n#include<samplerVertexImplementation>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\n#ifdef CLEARCOAT\n#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)\n#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)\n#endif\n#ifdef IRIDESCENCE\n#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)\n#endif\n#ifdef SHEEN\n#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheenRoughness,_INFONAME_,SheenInfos.z)\n#endif\n#ifdef ANISOTROPIC\n#include<samplerVertexImplementation>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)\n#endif\n#ifdef SUBSURFACE\n#include<samplerVertexImplementation>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_MATRIXNAME_,translucencyColor,_INFONAME_,TranslucencyColorInfos.x)\n#endif\n#include<bumpVertex>\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrVertexShaderWGSL = { name, shader };\n//# sourceMappingURL=pbr.vertex.js.map"],"names":[],"mappings":";;;;;;AAAA;AAiCA,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAAC;AACH;AACA,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C;AACY,MAAC,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -1,2 +0,0 @@
1
- import{S as e}from"./index-Ba-YQVRw.esm.min.js";const n="postprocessVertexShader",t="attribute position: vec2<f32>;uniform scale: vec2<f32>;varying vUV: vec2<f32>;const madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n";e.ShadersStoreWGSL[n]=t;const s={name:n,shader:t};export{s as postprocessVertexShaderWGSL};
2
- //# sourceMappingURL=postprocess.vertex-C1KLVO46.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postprocess.vertex-C1KLVO46.esm.min.js","sources":["../../../../../dev/core/dist/ShadersWGSL/postprocess.vertex.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nconst name = \"postprocessVertexShader\";\nconst shader = `attribute position: vec2<f32>;uniform scale: vec2<f32>;varying vUV: vec2<f32>;const madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const postprocessVertexShaderWGSL = { name, shader };\n//# sourceMappingURL=postprocess.vertex.js.map"],"names":["name","shader","ShaderStore","ShadersStoreWGSL","postprocessVertexShaderWGSL"],"mappings":"gDAEA,MAAMA,EAAO,0BACPC,EAAS,8YAUfC,EAAYC,iBAAiBH,GAAQC,EAEzB,MAACG,EAA8B,CAAEJ,OAAMC"}
@@ -1,20 +0,0 @@
1
- import { S as ShaderStore } from './index-DCMXQRx5.esm.js';
2
-
3
- // Do not edit.
4
- const name = "postprocessVertexShader";
5
- const shader = `attribute position: vec2<f32>;uniform scale: vec2<f32>;varying vUV: vec2<f32>;const madd=vec2(0.5,0.5);
6
- #define CUSTOM_VERTEX_DEFINITIONS
7
- @vertex
8
- fn main(input : VertexInputs)->FragmentInputs {
9
- #define CUSTOM_VERTEX_MAIN_BEGIN
10
- vertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);
11
- #define CUSTOM_VERTEX_MAIN_END
12
- }
13
- `;
14
- // Sideeffect
15
- ShaderStore.ShadersStoreWGSL[name] = shader;
16
- /** @internal */
17
- const postprocessVertexShaderWGSL = { name, shader };
18
-
19
- export { postprocessVertexShaderWGSL };
20
- //# sourceMappingURL=postprocess.vertex-bRjFMMTw.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postprocess.vertex-bRjFMMTw.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/postprocess.vertex.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nconst name = \"postprocessVertexShader\";\nconst shader = `attribute position: vec2<f32>;uniform scale: vec2<f32>;varying vUV: vec2<f32>;const madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const postprocessVertexShaderWGSL = { name, shader };\n//# sourceMappingURL=postprocess.vertex.js.map"],"names":[],"mappings":";;AAAA;AAEA,MAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF;AACA,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C;AACY,MAAC,2BAA2B,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -1,2 +0,0 @@
1
- import{aV as e,u as t,aW as i,L as r,aX as T,T as s}from"./index-Ba-YQVRw.esm.min.js";function _(e,i,r,T){let s,_=1;T===t.TEXTURETYPE_FLOAT?s=new Float32Array(i*r*4):T===t.TEXTURETYPE_HALF_FLOAT?(s=new Uint16Array(i*r*4),_=15360):s=T===t.TEXTURETYPE_UNSIGNED_INTEGER?new Uint32Array(i*r*4):new Uint8Array(i*r*4);for(let t=0;t<i;t++)for(let T=0;T<r;T++){const r=3*(T*i+t),a=4*(T*i+t);s[a+0]=e[r+0],s[a+1]=e[r+1],s[a+2]=e[r+2],s[a+3]=_}return s}function a(e){return function(r,T,s,_,a,E,n,h,l=null,o=t.TEXTURETYPE_UNSIGNED_INT){const R=e?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,u=new i(this,e?10:11);u.baseWidth=T,u.baseHeight=s,u.baseDepth=_,u.width=T,u.height=s,u.depth=_,u.format=a,u.type=o,u.generateMipMaps=E,u.samplingMode=h,e?u.is3D=!0:u.is2DArray=!0,this._doNotHandleContextLost||(u._bufferView=r),e?this.updateRawTexture3D(u,r,a,n,l,o):this.updateRawTexture2DArray(u,r,a,n,l,o),this._bindTextureDirectly(R,u,!0);const g=this._getSamplingParameters(h,E);return this._gl.texParameteri(R,this._gl.TEXTURE_MAG_FILTER,g.mag),this._gl.texParameteri(R,this._gl.TEXTURE_MIN_FILTER,g.min),E&&this._gl.generateMipmap(R),this._bindTextureDirectly(R,null),this._internalTexturesCache.push(u),u}}function E(e){return function(i,r,T,s,_=null,a=t.TEXTURETYPE_UNSIGNED_INT){const E=e?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,n=this._getWebGLTextureType(a),h=this._getInternalFormat(T),l=this._getRGBABufferInternalSizedFormat(a,T);this._bindTextureDirectly(E,i,!0),this._unpackFlipY(void 0===s||!!s),this._doNotHandleContextLost||(i._bufferView=r,i.format=T,i.invertY=s,i._compression=_),i.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),_&&r?this._gl.compressedTexImage3D(E,0,this.getCaps().s3tc[_],i.width,i.height,i.depth,0,r):this._gl.texImage3D(E,0,l,i.width,i.height,i.depth,0,h,n,r),i.generateMipMaps&&this._gl.generateMipmap(E),this._bindTextureDirectly(E,null),i.isReady=!0}}e.prototype.updateRawTexture=function(e,i,r,T,s=null,_=t.TEXTURETYPE_UNSIGNED_INT,a=!1){if(!e)return;const E=this._getRGBABufferInternalSizedFormat(_,r,a),n=this._getInternalFormat(r),h=this._getWebGLTextureType(_);this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),this._unpackFlipY(void 0===T||!!T),this._doNotHandleContextLost||(e._bufferView=i,e.format=r,e.type=_,e.invertY=T,e._compression=s),e.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),s&&i?this._gl.compressedTexImage2D(this._gl.TEXTURE_2D,0,this.getCaps().s3tc[s],e.width,e.height,0,i):this._gl.texImage2D(this._gl.TEXTURE_2D,0,E,e.width,e.height,0,n,h,i),e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),e.isReady=!0},e.prototype.createRawTexture=function(e,r,T,s,_,a,E,n=null,h=t.TEXTURETYPE_UNSIGNED_INT,l=0,o=!1){const R=new i(this,3);R.baseWidth=r,R.baseHeight=T,R.width=r,R.height=T,R.format=s,R.generateMipMaps=_,R.samplingMode=E,R.invertY=a,R._compression=n,R.type=h,R._useSRGBBuffer=this._getUseSRGBBuffer(o,!_),this._doNotHandleContextLost||(R._bufferView=e),this.updateRawTexture(R,e,s,a,n,h,R._useSRGBBuffer),this._bindTextureDirectly(this._gl.TEXTURE_2D,R,!0);const u=this._getSamplingParameters(E,_);return this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,u.mag),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,u.min),_&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._internalTexturesCache.push(R),R},e.prototype.createRawCubeTexture=function(e,s,_,a,E,n,h,l=null){const o=this._gl,R=new i(this,8);R.isCube=!0,R.format=_,R.type=a,this._doNotHandleContextLost||(R._bufferViewArray=e);const u=this._getWebGLTextureType(a);let g=this._getInternalFormat(_);g===o.RGB&&(g=o.RGBA),u!==o.FLOAT||this._caps.textureFloatLinearFiltering?u!==this._gl.HALF_FLOAT_OES||this._caps.textureHalfFloatLinearFiltering?u!==o.FLOAT||this._caps.textureFloatRender?u!==o.HALF_FLOAT||this._caps.colorBufferFloat||(E=!1,r.Warn("Render to half float textures is not supported. Mipmap generation forced to false.")):(E=!1,r.Warn("Render to float textures is not supported. Mipmap generation forced to false.")):(E=!1,h=t.TEXTURE_NEAREST_SAMPLINGMODE,r.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):(E=!1,h=t.TEXTURE_NEAREST_SAMPLINGMODE,r.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively."));const p=s,A=p;R.width=p,R.height=A,R.invertY=n,R._compression=l;if(!this.needPOTTextures||T(R.width)&&T(R.height)||(E=!1),e)this.updateRawCubeTexture(R,e,_,a,n,l);else{const e=this._getRGBABufferInternalSizedFormat(a),t=0;this._bindTextureDirectly(o.TEXTURE_CUBE_MAP,R,!0);for(let i=0;i<6;i++)l?o.compressedTexImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+i,t,this.getCaps().s3tc[l],R.width,R.height,0,void 0):o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+i,t,e,R.width,R.height,0,g,u,null);this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)}this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,R,!0),e&&E&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);const d=this._getSamplingParameters(h,E);return o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_MAG_FILTER,d.mag),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_MIN_FILTER,d.min),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),this._bindTextureDirectly(o.TEXTURE_CUBE_MAP,null),R.generateMipMaps=E,R.samplingMode=h,R.isReady=!0,R},e.prototype.updateRawCubeTexture=function(e,t,i,r,s,a=null,E=0){e._bufferViewArray=t,e.format=i,e.type=r,e.invertY=s,e._compression=a;const n=this._gl,h=this._getWebGLTextureType(r);let l=this._getInternalFormat(i);const o=this._getRGBABufferInternalSizedFormat(r);let R=!1;l===n.RGB&&(l=n.RGBA,R=!0),this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,e,!0),this._unpackFlipY(void 0===s||!!s),e.width%4!=0&&n.pixelStorei(n.UNPACK_ALIGNMENT,1);for(let i=0;i<6;i++){let T=t[i];a?n.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+i,E,this.getCaps().s3tc[a],e.width,e.height,0,T):(R&&(T=_(T,e.width,e.height,r)),n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+i,E,o,e.width,e.height,0,l,h,T))}(!this.needPOTTextures||T(e.width)&&T(e.height))&&e.generateMipMaps&&0===E&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),e.isReady=!0},e.prototype.createRawCubeTextureFromUrl=function(e,i,r,T,s,a,E,n,h=null,l=null,o=t.TEXTURE_TRILINEAR_SAMPLINGMODE,R=!1){const u=this._gl,g=this.createRawCubeTexture(null,r,T,s,!a,R,o,null);i?.addPendingData(g),g.url=e,g.isReady=!1,this._internalTexturesCache.push(g);const p=e=>{const t=g.width,r=E(e);if(r){if(n){const e=this._getWebGLTextureType(s);let i=this._getInternalFormat(T);const a=this._getRGBABufferInternalSizedFormat(s);let E=!1;i===u.RGB&&(i=u.RGBA,E=!0),this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,g,!0),this._unpackFlipY(!1);const h=n(r);for(let r=0;r<h.length;r++){const T=t>>r;for(let t=0;t<6;t++){let n=h[r][t];E&&(n=_(n,T,T,s)),u.texImage2D(t,r,a,T,T,0,i,e,n)}}this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,null)}else this.updateRawCubeTexture(g,r,T,s,R);g.isReady=!0,i?.removePendingData(g),g.onLoadedObservable.notifyObservers(g),g.onLoadedObservable.clear(),h&&h()}};return this._loadFile(e,(e=>{p(e)}),void 0,i?.offlineProvider,!0,((e,t)=>{i?.removePendingData(g),l&&e&&l(e.status+" "+e.statusText,t)})),g},e.prototype.createRawTexture2DArray=a(!1),e.prototype.createRawTexture3D=a(!0),e.prototype.updateRawTexture2DArray=E(!1),e.prototype.updateRawTexture3D=E(!0);class n extends s{constructor(e,i,r,T,_,a=!0,E=!1,n=t.TEXTURE_TRILINEAR_SAMPLINGMODE,h=t.TEXTURETYPE_UNSIGNED_INT,l,o){super(null,_,!a,E,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,l),this.format=T,this._engine&&(this._engine._caps.textureFloatLinearFiltering||h!==t.TEXTURETYPE_FLOAT||(n=t.TEXTURE_NEAREST_SAMPLINGMODE),this._engine._caps.textureHalfFloatLinearFiltering||h!==t.TEXTURETYPE_HALF_FLOAT||(n=t.TEXTURE_NEAREST_SAMPLINGMODE),this._texture=this._engine.createRawTexture(e,i,r,T,a,E,n,null,h,l??0,o??!1),this.wrapU=s.CLAMP_ADDRESSMODE,this.wrapV=s.CLAMP_ADDRESSMODE)}update(e){this._getEngine().updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type,this._texture._useSRGBBuffer)}clone(){if(!this._texture)return super.clone();const e=new n(null,this.getSize().width,this.getSize().height,this.format,this.getScene(),this._texture.generateMipMaps,this._invertY,this.samplingMode,this._texture.type,this._texture._creationFlags,this._useSRGBBuffer);return e._texture=this._texture,this._texture.incrementReferences(),e}static CreateLuminanceTexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE){return new n(e,i,r,t.TEXTUREFORMAT_LUMINANCE,T,s,_,a)}static CreateLuminanceAlphaTexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE){return new n(e,i,r,t.TEXTUREFORMAT_LUMINANCE_ALPHA,T,s,_,a)}static CreateAlphaTexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE){return new n(e,i,r,t.TEXTUREFORMAT_ALPHA,T,s,_,a)}static CreateRGBTexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE,E=t.TEXTURETYPE_UNSIGNED_INT,h=0,l=!1){return new n(e,i,r,t.TEXTUREFORMAT_RGB,T,s,_,a,E,h,l)}static CreateRGBATexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE,E=t.TEXTURETYPE_UNSIGNED_INT,h=0,l=!1){return new n(e,i,r,t.TEXTUREFORMAT_RGBA,T,s,_,a,E,h,l)}static CreateRGBAStorageTexture(e,i,r,T,s=!0,_=!1,a=t.TEXTURE_TRILINEAR_SAMPLINGMODE,E=t.TEXTURETYPE_UNSIGNED_INT,h=!1){return new n(e,i,r,t.TEXTUREFORMAT_RGBA,T,s,_,a,E,t.TEXTURE_CREATIONFLAG_STORAGE,h)}static CreateRTexture(e,i,r,T,_=!0,a=!1,E=s.TRILINEAR_SAMPLINGMODE,h=t.TEXTURETYPE_FLOAT){return new n(e,i,r,t.TEXTUREFORMAT_R,T,_,a,E,h)}static CreateRStorageTexture(e,i,r,T,_=!0,a=!1,E=s.TRILINEAR_SAMPLINGMODE,h=t.TEXTURETYPE_FLOAT){return new n(e,i,r,t.TEXTUREFORMAT_R,T,_,a,E,h,t.TEXTURE_CREATIONFLAG_STORAGE)}}export{n as R};
2
- //# sourceMappingURL=rawTexture-CnRJFGS0.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rawTexture-CnRJFGS0.esm.min.js","sources":["../../../../../dev/core/dist/Engines/Extensions/engine.rawTexture.js","../../../../../dev/core/dist/Materials/Textures/rawTexture.js"],"sourcesContent":["import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { IsExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype.updateRawTexture = function (texture, data, format, invertY, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_INT, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n // Babylon's internalSizedFomat but gl's texImage2D internalFormat\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type, format, useSRGBBuffer);\n // Babylon's internalFormat but gl's texImage2D format\n const internalFormat = this._getInternalFormat(format);\n const textureType = this._getWebGLTextureType(type);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[compression], texture.width, texture.height, 0, data);\n }\n else {\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_INT, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ncreationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._compression = compression;\n texture.type = type;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this.updateRawTexture(texture, data, format, invertY, compression, type, texture._useSRGBBuffer);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression = null) {\n const gl = this._gl;\n const texture = new InternalTexture(this, 8 /* InternalTextureSource.CubeRaw */);\n texture.isCube = true;\n texture.format = format;\n texture.type = type;\n if (!this._doNotHandleContextLost) {\n texture._bufferViewArray = data;\n }\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n }\n // Mipmap generation needs a sized internal format that is both color-renderable and texture-filterable\n if (textureType === gl.FLOAT && !this._caps.textureFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === this._gl.HALF_FLOAT_OES && !this._caps.textureHalfFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === gl.FLOAT && !this._caps.textureFloatRender) {\n generateMipMaps = false;\n Logger.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\");\n }\n else if (textureType === gl.HALF_FLOAT && !this._caps.colorBufferFloat) {\n generateMipMaps = false;\n Logger.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\");\n }\n const width = size;\n const height = width;\n texture.width = width;\n texture.height = height;\n texture.invertY = invertY;\n texture._compression = compression;\n // Double check on POT to generate Mips.\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (!isPot) {\n generateMipMaps = false;\n }\n // Upload data if needed. The texture won't be ready until then.\n if (data) {\n this.updateRawCubeTexture(texture, data, format, type, invertY, compression);\n }\n else {\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n const level = 0;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, undefined);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, null);\n }\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n // Filters\n if (data && generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.isReady = true;\n return texture;\n};\nThinEngine.prototype.updateRawCubeTexture = function (texture, data, format, type, invertY, compression = null, level = 0) {\n texture._bufferViewArray = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (texture.width % 4 !== 0) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n // Data are known to be in +X +Y +Z -X -Y -Z\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let faceData = data[faceIndex];\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, faceData);\n }\n else {\n if (needConversion) {\n faceData = _convertRGBtoRGBATextureData(faceData, texture.width, texture.height, type);\n }\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, faceData);\n }\n }\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (isPot && texture.generateMipMaps && level === 0) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawCubeTextureFromUrl = function (url, scene, size, format, type, noMipmap, callback, mipmapGenerator, onLoad = null, onError = null, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, invertY = false) {\n const gl = this._gl;\n const texture = this.createRawCubeTexture(null, size, format, type, !noMipmap, invertY, samplingMode, null);\n scene?.addPendingData(texture);\n texture.url = url;\n texture.isReady = false;\n this._internalTexturesCache.push(texture);\n const onerror = (request, exception) => {\n scene?.removePendingData(texture);\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n const internalCallback = (data) => {\n const width = texture.width;\n const faceDataArrays = callback(data);\n if (!faceDataArrays) {\n return;\n }\n if (mipmapGenerator) {\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const mipData = mipmapGenerator(faceDataArrays);\n for (let level = 0; level < mipData.length; level++) {\n const mipSize = width >> level;\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let mipFaceData = mipData[level][faceIndex];\n if (needConversion) {\n mipFaceData = _convertRGBtoRGBATextureData(mipFaceData, mipSize, mipSize, type);\n }\n gl.texImage2D(faceIndex, level, internalSizedFomat, mipSize, mipSize, 0, internalFormat, textureType, mipFaceData);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this.updateRawCubeTexture(texture, faceDataArrays, format, type, invertY);\n }\n texture.isReady = true;\n // this.resetTextureCache();\n scene?.removePendingData(texture);\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n };\n this._loadFile(url, (data) => {\n internalCallback(data);\n }, undefined, scene?.offlineProvider, true, onerror);\n return texture;\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _convertRGBtoRGBATextureData(rgbData, width, height, textureType) {\n // Create new RGBA data container.\n let rgbaData;\n let val1 = 1;\n if (textureType === Constants.TEXTURETYPE_FLOAT) {\n rgbaData = new Float32Array(width * height * 4);\n }\n else if (textureType === Constants.TEXTURETYPE_HALF_FLOAT) {\n rgbaData = new Uint16Array(width * height * 4);\n val1 = 15360; // 15360 is the encoding of 1 in half float\n }\n else if (textureType === Constants.TEXTURETYPE_UNSIGNED_INTEGER) {\n rgbaData = new Uint32Array(width * height * 4);\n }\n else {\n rgbaData = new Uint8Array(width * height * 4);\n }\n // Convert each pixel.\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const index = (y * width + x) * 3;\n const newIndex = (y * width + x) * 4;\n // Map Old Value to new value.\n rgbaData[newIndex + 0] = rgbData[index + 0];\n rgbaData[newIndex + 1] = rgbData[index + 1];\n rgbaData[newIndex + 2] = rgbData[index + 2];\n // Add fully opaque alpha channel.\n rgbaData[newIndex + 3] = val1;\n }\n }\n return rgbaData;\n}\n/**\n * Create a function for createRawTexture3D/createRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeCreateRawTextureFunction(is3D) {\n return function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const source = is3D ? 10 /* InternalTextureSource.Raw3D */ : 11 /* InternalTextureSource.Raw2DArray */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n if (is3D) {\n texture.is3D = true;\n }\n else {\n texture.is2DArray = true;\n }\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n if (is3D) {\n this.updateRawTexture3D(texture, data, format, invertY, compression, textureType);\n }\n else {\n this.updateRawTexture2DArray(texture, data, format, invertY, compression, textureType);\n }\n this._bindTextureDirectly(target, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(target, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(target, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(texture);\n return texture;\n };\n}\nThinEngine.prototype.createRawTexture2DArray = _makeCreateRawTextureFunction(false);\nThinEngine.prototype.createRawTexture3D = _makeCreateRawTextureFunction(true);\n/**\n * Create a function for updateRawTexture3D/updateRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeUpdateRawTextureFunction(is3D) {\n return function (texture, data, format, invertY, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const internalType = this._getWebGLTextureType(textureType);\n const internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(textureType, format);\n this._bindTextureDirectly(target, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage3D(target, 0, this.getCaps().s3tc[compression], texture.width, texture.height, texture.depth, 0, data);\n }\n else {\n this._gl.texImage3D(target, 0, internalSizedFomat, texture.width, texture.height, texture.depth, 0, internalFormat, internalType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n // this.resetTextureCache();\n texture.isReady = true;\n };\n}\nThinEngine.prototype.updateRawTexture2DArray = _makeUpdateRawTextureFunction(false);\nThinEngine.prototype.updateRawTexture3D = _makeUpdateRawTextureFunction(true);\n//# sourceMappingURL=engine.rawTexture.js.map","import { Texture } from \"./texture\";\nimport { Constants } from \"../../Engines/constants\";\nimport \"../../Engines/Extensions/engine.rawTexture\";\n/**\n * Raw texture can help creating a texture directly from an array of data.\n * This can be super useful if you either get the data from an uncompressed source or\n * if you wish to create your texture pixel by pixel.\n */\nexport class RawTexture extends Texture {\n /**\n * Instantiates a new RawTexture.\n * Raw texture can help creating a texture directly from an array of data.\n * This can be super useful if you either get the data from an uncompressed source or\n * if you wish to create your texture pixel by pixel.\n * @param data define the array of data to use to create the texture (null to create an empty texture)\n * @param width define the width of the texture\n * @param height define the height of the texture\n * @param format define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps define whether mip maps should be generated or not\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n */\n constructor(data, width, height, \n /**\n * Define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\n */\n format, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags, useSRGBBuffer) {\n super(null, sceneOrEngine, !generateMipMaps, invertY, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, creationFlags);\n this.format = format;\n if (!this._engine) {\n return;\n }\n if (!this._engine._caps.textureFloatLinearFiltering && type === Constants.TEXTURETYPE_FLOAT) {\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n if (!this._engine._caps.textureHalfFloatLinearFiltering && type === Constants.TEXTURETYPE_HALF_FLOAT) {\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n this._texture = this._engine.createRawTexture(data, width, height, format, generateMipMaps, invertY, samplingMode, null, type, creationFlags ?? 0, useSRGBBuffer ?? false);\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\n }\n /**\n * Updates the texture underlying data.\n * @param data Define the new data of the texture\n */\n update(data) {\n this._getEngine().updateRawTexture(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type, this._texture._useSRGBBuffer);\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n if (!this._texture) {\n return super.clone();\n }\n const rawTexture = new RawTexture(null, this.getSize().width, this.getSize().height, this.format, this.getScene(), this._texture.generateMipMaps, this._invertY, this.samplingMode, this._texture.type, this._texture._creationFlags, this._useSRGBBuffer);\n rawTexture._texture = this._texture;\n this._texture.incrementReferences();\n return rawTexture;\n }\n /**\n * Creates a luminance texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance texture\n */\n static CreateLuminanceTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates a luminance alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance alpha texture\n */\n static CreateLuminanceAlphaTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates an alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the alpha texture\n */\n static CreateAlphaTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates a RGB texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGB alpha texture\n */\n static CreateRGBTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags = 0, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGB, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\n }\n /**\n * Creates a RGBA texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBATexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags = 0, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\n }\n /**\n * Creates a RGBA storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBAStorageTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE, useSRGBBuffer);\n }\n /**\n * Creates a R texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_FLOAT) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type);\n }\n /**\n * Creates a R storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRStorageTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_FLOAT) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE);\n }\n}\n//# sourceMappingURL=rawTexture.js.map"],"names":["_convertRGBtoRGBATextureData","rgbData","width","height","textureType","rgbaData","val1","Constants","TEXTURETYPE_FLOAT","Float32Array","TEXTURETYPE_HALF_FLOAT","Uint16Array","TEXTURETYPE_UNSIGNED_INTEGER","Uint32Array","Uint8Array","x","y","index","newIndex","_makeCreateRawTextureFunction","is3D","data","depth","format","generateMipMaps","invertY","samplingMode","compression","TEXTURETYPE_UNSIGNED_INT","target","this","_gl","TEXTURE_3D","TEXTURE_2D_ARRAY","texture","InternalTexture","baseWidth","baseHeight","baseDepth","type","is2DArray","_doNotHandleContextLost","_bufferView","updateRawTexture3D","updateRawTexture2DArray","_bindTextureDirectly","filters","_getSamplingParameters","texParameteri","TEXTURE_MAG_FILTER","mag","TEXTURE_MIN_FILTER","min","generateMipmap","_internalTexturesCache","push","_makeUpdateRawTextureFunction","internalType","_getWebGLTextureType","internalFormat","_getInternalFormat","internalSizedFomat","_getRGBABufferInternalSizedFormat","_unpackFlipY","undefined","_compression","pixelStorei","UNPACK_ALIGNMENT","compressedTexImage3D","getCaps","s3tc","texImage3D","isReady","ThinEngine","prototype","updateRawTexture","useSRGBBuffer","TEXTURE_2D","compressedTexImage2D","texImage2D","createRawTexture","creationFlags","_useSRGBBuffer","_getUseSRGBBuffer","createRawCubeTexture","size","gl","isCube","_bufferViewArray","RGB","RGBA","FLOAT","_caps","textureFloatLinearFiltering","HALF_FLOAT_OES","textureHalfFloatLinearFiltering","textureFloatRender","HALF_FLOAT","colorBufferFloat","Logger","Warn","TEXTURE_NEAREST_SAMPLINGMODE","needPOTTextures","IsExponentOfTwo","updateRawCubeTexture","level","TEXTURE_CUBE_MAP","faceIndex","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","needConversion","faceData","createRawCubeTextureFromUrl","url","scene","noMipmap","callback","mipmapGenerator","onLoad","onError","TEXTURE_TRILINEAR_SAMPLINGMODE","addPendingData","internalCallback","faceDataArrays","mipData","length","mipSize","mipFaceData","removePendingData","onLoadedObservable","notifyObservers","clear","_loadFile","offlineProvider","request","exception","status","statusText","createRawTexture2DArray","createRawTexture3D","RawTexture","Texture","constructor","sceneOrEngine","super","_engine","_texture","wrapU","CLAMP_ADDRESSMODE","wrapV","update","_getEngine","clone","rawTexture","getSize","getScene","_invertY","_creationFlags","incrementReferences","CreateLuminanceTexture","TEXTUREFORMAT_LUMINANCE","CreateLuminanceAlphaTexture","TEXTUREFORMAT_LUMINANCE_ALPHA","CreateAlphaTexture","TEXTUREFORMAT_ALPHA","CreateRGBTexture","TEXTUREFORMAT_RGB","CreateRGBATexture","TEXTUREFORMAT_RGBA","CreateRGBAStorageTexture","TEXTURE_CREATIONFLAG_STORAGE","CreateRTexture","TRILINEAR_SAMPLINGMODE","TEXTUREFORMAT_R","CreateRStorageTexture"],"mappings":"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"}