@babylonjs/viewer 7.23.1-alpha → 7.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +351 -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-D3ZBYLgC.esm.js +0 -170
  197. package/dist/chunks/EXT_lights_image_based-D3ZBYLgC.esm.js.map +0 -1
  198. package/dist/chunks/EXT_lights_image_based-DyWZGFdC.esm.min.js +0 -2
  199. package/dist/chunks/EXT_lights_image_based-DyWZGFdC.esm.min.js.map +0 -1
  200. package/dist/chunks/EXT_mesh_gpu_instancing-BsSuxC3A.esm.js +0 -86
  201. package/dist/chunks/EXT_mesh_gpu_instancing-BsSuxC3A.esm.js.map +0 -1
  202. package/dist/chunks/EXT_mesh_gpu_instancing-DtTWXKzv.esm.min.js +0 -2
  203. package/dist/chunks/EXT_mesh_gpu_instancing-DtTWXKzv.esm.min.js.map +0 -1
  204. package/dist/chunks/EXT_meshopt_compression-BncKn2rD.esm.js +0 -134
  205. package/dist/chunks/EXT_meshopt_compression-BncKn2rD.esm.js.map +0 -1
  206. package/dist/chunks/EXT_meshopt_compression-CjW8GcrA.esm.min.js +0 -2
  207. package/dist/chunks/EXT_meshopt_compression-CjW8GcrA.esm.min.js.map +0 -1
  208. package/dist/chunks/EXT_texture_avif-DLrVqqUz.esm.min.js +0 -2
  209. package/dist/chunks/EXT_texture_avif-DLrVqqUz.esm.min.js.map +0 -1
  210. package/dist/chunks/EXT_texture_avif-wG4GNQfZ.esm.js +0 -44
  211. package/dist/chunks/EXT_texture_avif-wG4GNQfZ.esm.js.map +0 -1
  212. package/dist/chunks/EXT_texture_webp-BccV6Svg.esm.js +0 -43
  213. package/dist/chunks/EXT_texture_webp-BccV6Svg.esm.js.map +0 -1
  214. package/dist/chunks/EXT_texture_webp-DNAe2ii8.esm.min.js +0 -2
  215. package/dist/chunks/EXT_texture_webp-DNAe2ii8.esm.min.js.map +0 -1
  216. package/dist/chunks/ExtrasAsMetadata-BA0NyQBn.esm.js +0 -64
  217. package/dist/chunks/ExtrasAsMetadata-BA0NyQBn.esm.js.map +0 -1
  218. package/dist/chunks/ExtrasAsMetadata-BN02lRw7.esm.min.js +0 -2
  219. package/dist/chunks/ExtrasAsMetadata-BN02lRw7.esm.min.js.map +0 -1
  220. package/dist/chunks/KHR_animation_pointer-B7mk-XJN.esm.min.js +0 -2
  221. package/dist/chunks/KHR_animation_pointer-B7mk-XJN.esm.min.js.map +0 -1
  222. package/dist/chunks/KHR_animation_pointer-BFFpQV4X.esm.js +0 -343
  223. package/dist/chunks/KHR_animation_pointer-BFFpQV4X.esm.js.map +0 -1
  224. package/dist/chunks/KHR_draco_mesh_compression-7zqRIpZt.esm.js +0 -610
  225. package/dist/chunks/KHR_draco_mesh_compression-7zqRIpZt.esm.js.map +0 -1
  226. package/dist/chunks/KHR_draco_mesh_compression-Bw4rV4ln.esm.min.js +0 -2
  227. package/dist/chunks/KHR_draco_mesh_compression-Bw4rV4ln.esm.min.js.map +0 -1
  228. package/dist/chunks/KHR_interactivity-Bd_6hpGb.esm.js +0 -4033
  229. package/dist/chunks/KHR_interactivity-Bd_6hpGb.esm.js.map +0 -1
  230. package/dist/chunks/KHR_interactivity-DIJyLERv.esm.min.js +0 -2
  231. package/dist/chunks/KHR_interactivity-DIJyLERv.esm.min.js.map +0 -1
  232. package/dist/chunks/KHR_lights_punctual-CFUUYlNK.esm.min.js +0 -2
  233. package/dist/chunks/KHR_lights_punctual-CFUUYlNK.esm.min.js.map +0 -1
  234. package/dist/chunks/KHR_lights_punctual-XL2dnY2h.esm.js +0 -1253
  235. package/dist/chunks/KHR_lights_punctual-XL2dnY2h.esm.js.map +0 -1
  236. package/dist/chunks/KHR_materials_anisotropy-04SftzV0.esm.min.js +0 -2
  237. package/dist/chunks/KHR_materials_anisotropy-04SftzV0.esm.min.js.map +0 -1
  238. package/dist/chunks/KHR_materials_anisotropy-gAd08wDG.esm.js +0 -64
  239. package/dist/chunks/KHR_materials_anisotropy-gAd08wDG.esm.js.map +0 -1
  240. package/dist/chunks/KHR_materials_clearcoat-9GQaVx6k.esm.min.js +0 -2
  241. package/dist/chunks/KHR_materials_clearcoat-9GQaVx6k.esm.min.js.map +0 -1
  242. package/dist/chunks/KHR_materials_clearcoat-Cv_yIIaW.esm.js +0 -96
  243. package/dist/chunks/KHR_materials_clearcoat-Cv_yIIaW.esm.js.map +0 -1
  244. package/dist/chunks/KHR_materials_diffuse_transmission-Dj9EU7q2.esm.js +0 -96
  245. package/dist/chunks/KHR_materials_diffuse_transmission-Dj9EU7q2.esm.js.map +0 -1
  246. package/dist/chunks/KHR_materials_diffuse_transmission-fmv70uuH.esm.min.js +0 -2
  247. package/dist/chunks/KHR_materials_diffuse_transmission-fmv70uuH.esm.min.js.map +0 -1
  248. package/dist/chunks/KHR_materials_dispersion-CCzM2Avp.esm.min.js +0 -2
  249. package/dist/chunks/KHR_materials_dispersion-CCzM2Avp.esm.min.js.map +0 -1
  250. package/dist/chunks/KHR_materials_dispersion-JNxGdAqc.esm.js +0 -63
  251. package/dist/chunks/KHR_materials_dispersion-JNxGdAqc.esm.js.map +0 -1
  252. package/dist/chunks/KHR_materials_emissive_strength-D25-ItKl.esm.min.js +0 -2
  253. package/dist/chunks/KHR_materials_emissive_strength-D25-ItKl.esm.min.js.map +0 -1
  254. package/dist/chunks/KHR_materials_emissive_strength-DlkptyaM.esm.js +0 -55
  255. package/dist/chunks/KHR_materials_emissive_strength-DlkptyaM.esm.js.map +0 -1
  256. package/dist/chunks/KHR_materials_ior-Jqj5Ph_V.esm.min.js +0 -2
  257. package/dist/chunks/KHR_materials_ior-Jqj5Ph_V.esm.min.js.map +0 -1
  258. package/dist/chunks/KHR_materials_ior-KGZBae4Y.esm.js +0 -64
  259. package/dist/chunks/KHR_materials_ior-KGZBae4Y.esm.js.map +0 -1
  260. package/dist/chunks/KHR_materials_iridescence-ByOHUtdO.esm.min.js +0 -2
  261. package/dist/chunks/KHR_materials_iridescence-ByOHUtdO.esm.min.js.map +0 -1
  262. package/dist/chunks/KHR_materials_iridescence-FmAV1QDy.esm.js +0 -72
  263. package/dist/chunks/KHR_materials_iridescence-FmAV1QDy.esm.js.map +0 -1
  264. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BiqCrcmj.esm.min.js +0 -2
  265. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BiqCrcmj.esm.min.js.map +0 -1
  266. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CRnlTYx-.esm.js +0 -81
  267. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CRnlTYx-.esm.js.map +0 -1
  268. package/dist/chunks/KHR_materials_sheen-7li6Dlkh.esm.js +0 -85
  269. package/dist/chunks/KHR_materials_sheen-7li6Dlkh.esm.js.map +0 -1
  270. package/dist/chunks/KHR_materials_sheen-BL2qM8Rp.esm.min.js +0 -2
  271. package/dist/chunks/KHR_materials_sheen-BL2qM8Rp.esm.min.js.map +0 -1
  272. package/dist/chunks/KHR_materials_specular-C2ks7gPC.esm.js +0 -75
  273. package/dist/chunks/KHR_materials_specular-C2ks7gPC.esm.js.map +0 -1
  274. package/dist/chunks/KHR_materials_specular-DCAt3T_l.esm.min.js +0 -2
  275. package/dist/chunks/KHR_materials_specular-DCAt3T_l.esm.min.js.map +0 -1
  276. package/dist/chunks/KHR_materials_transmission-B8w41MT6.esm.min.js +0 -2
  277. package/dist/chunks/KHR_materials_transmission-B8w41MT6.esm.min.js.map +0 -1
  278. package/dist/chunks/KHR_materials_transmission-DRL9BE9q.esm.js +0 -307
  279. package/dist/chunks/KHR_materials_transmission-DRL9BE9q.esm.js.map +0 -1
  280. package/dist/chunks/KHR_materials_unlit-B-il-TRX.esm.min.js +0 -2
  281. package/dist/chunks/KHR_materials_unlit-B-il-TRX.esm.min.js.map +0 -1
  282. package/dist/chunks/KHR_materials_unlit-B44Oqon6.esm.js +0 -74
  283. package/dist/chunks/KHR_materials_unlit-B44Oqon6.esm.js.map +0 -1
  284. package/dist/chunks/KHR_materials_variants-BCdEgpch.esm.js +0 -238
  285. package/dist/chunks/KHR_materials_variants-BCdEgpch.esm.js.map +0 -1
  286. package/dist/chunks/KHR_materials_variants-ClQElTeo.esm.min.js +0 -2
  287. package/dist/chunks/KHR_materials_variants-ClQElTeo.esm.min.js.map +0 -1
  288. package/dist/chunks/KHR_materials_volume-BXv3M95S.esm.min.js +0 -2
  289. package/dist/chunks/KHR_materials_volume-BXv3M95S.esm.min.js.map +0 -1
  290. package/dist/chunks/KHR_materials_volume-BuUrRniE.esm.js +0 -88
  291. package/dist/chunks/KHR_materials_volume-BuUrRniE.esm.js.map +0 -1
  292. package/dist/chunks/KHR_mesh_quantization-WPngIGGs.esm.min.js +0 -2
  293. package/dist/chunks/KHR_mesh_quantization-WPngIGGs.esm.min.js.map +0 -1
  294. package/dist/chunks/KHR_mesh_quantization-p2nyy6Ym.esm.js +0 -26
  295. package/dist/chunks/KHR_mesh_quantization-p2nyy6Ym.esm.js.map +0 -1
  296. package/dist/chunks/KHR_texture_basisu-BHsmOUDV.esm.js +0 -43
  297. package/dist/chunks/KHR_texture_basisu-BHsmOUDV.esm.js.map +0 -1
  298. package/dist/chunks/KHR_texture_basisu-DObdWvzE.esm.min.js +0 -2
  299. package/dist/chunks/KHR_texture_basisu-DObdWvzE.esm.min.js.map +0 -1
  300. package/dist/chunks/KHR_texture_transform-B7NCdTO_.esm.js +0 -63
  301. package/dist/chunks/KHR_texture_transform-B7NCdTO_.esm.js.map +0 -1
  302. package/dist/chunks/KHR_texture_transform-D6Ee6UiP.esm.min.js +0 -2
  303. package/dist/chunks/KHR_texture_transform-D6Ee6UiP.esm.min.js.map +0 -1
  304. package/dist/chunks/KHR_xmp_json_ld-Coh_hfCi.esm.js +0 -51
  305. package/dist/chunks/KHR_xmp_json_ld-Coh_hfCi.esm.js.map +0 -1
  306. package/dist/chunks/KHR_xmp_json_ld-ijOY8DMb.esm.min.js +0 -2
  307. package/dist/chunks/KHR_xmp_json_ld-ijOY8DMb.esm.min.js.map +0 -1
  308. package/dist/chunks/MSFT_audio_emitter-CGjUSgI2.esm.min.js +0 -2
  309. package/dist/chunks/MSFT_audio_emitter-CGjUSgI2.esm.min.js.map +0 -1
  310. package/dist/chunks/MSFT_audio_emitter-fFvTv2YK.esm.js +0 -1600
  311. package/dist/chunks/MSFT_audio_emitter-fFvTv2YK.esm.js.map +0 -1
  312. package/dist/chunks/MSFT_lod-Bql1icOF.esm.js +0 -337
  313. package/dist/chunks/MSFT_lod-Bql1icOF.esm.js.map +0 -1
  314. package/dist/chunks/MSFT_lod-Du_akN0I.esm.min.js +0 -2
  315. package/dist/chunks/MSFT_lod-Du_akN0I.esm.min.js.map +0 -1
  316. package/dist/chunks/MSFT_minecraftMesh-Brch3HUo.esm.min.js +0 -2
  317. package/dist/chunks/MSFT_minecraftMesh-Brch3HUo.esm.min.js.map +0 -1
  318. package/dist/chunks/MSFT_minecraftMesh-jrYC8YE9.esm.js +0 -46
  319. package/dist/chunks/MSFT_minecraftMesh-jrYC8YE9.esm.js.map +0 -1
  320. package/dist/chunks/MSFT_sRGBFactors-Dp3CtJ9B.esm.js +0 -47
  321. package/dist/chunks/MSFT_sRGBFactors-Dp3CtJ9B.esm.js.map +0 -1
  322. package/dist/chunks/MSFT_sRGBFactors-LZM-HF4P.esm.min.js +0 -2
  323. package/dist/chunks/MSFT_sRGBFactors-LZM-HF4P.esm.min.js.map +0 -1
  324. package/dist/chunks/assetContainer-Bo08Fxv3.esm.min.js +0 -2
  325. package/dist/chunks/assetContainer-Bo08Fxv3.esm.min.js.map +0 -1
  326. package/dist/chunks/assetContainer-DVOdWL9b.esm.js +0 -1598
  327. package/dist/chunks/assetContainer-DVOdWL9b.esm.js.map +0 -1
  328. package/dist/chunks/basisTextureLoader-C2Or-Jx_.esm.min.js +0 -2
  329. package/dist/chunks/basisTextureLoader-C2Or-Jx_.esm.min.js.map +0 -1
  330. package/dist/chunks/basisTextureLoader-DiYg6uNN.esm.js +0 -600
  331. package/dist/chunks/basisTextureLoader-DiYg6uNN.esm.js.map +0 -1
  332. package/dist/chunks/ddsTextureLoader-CDlttCBi.esm.js +0 -87
  333. package/dist/chunks/ddsTextureLoader-CDlttCBi.esm.js.map +0 -1
  334. package/dist/chunks/ddsTextureLoader-T_I1TPiz.esm.min.js +0 -2
  335. package/dist/chunks/ddsTextureLoader-T_I1TPiz.esm.min.js.map +0 -1
  336. package/dist/chunks/default.fragment-C8ZCxgTK.esm.js +0 -515
  337. package/dist/chunks/default.fragment-C8ZCxgTK.esm.js.map +0 -1
  338. package/dist/chunks/default.fragment-Conpp30r.esm.js +0 -452
  339. package/dist/chunks/default.fragment-Conpp30r.esm.js.map +0 -1
  340. package/dist/chunks/default.fragment-DTP98j1l.esm.min.js +0 -2
  341. package/dist/chunks/default.fragment-DTP98j1l.esm.min.js.map +0 -1
  342. package/dist/chunks/default.fragment-DjistPBR.esm.min.js +0 -2
  343. package/dist/chunks/default.fragment-DjistPBR.esm.min.js.map +0 -1
  344. package/dist/chunks/default.vertex-BSCjzhXG.esm.js +0 -178
  345. package/dist/chunks/default.vertex-BSCjzhXG.esm.js.map +0 -1
  346. package/dist/chunks/default.vertex-Ba7zxY0T.esm.min.js +0 -2
  347. package/dist/chunks/default.vertex-Ba7zxY0T.esm.min.js.map +0 -1
  348. package/dist/chunks/default.vertex-CPurFhOJ.esm.js +0 -199
  349. package/dist/chunks/default.vertex-CPurFhOJ.esm.js.map +0 -1
  350. package/dist/chunks/default.vertex-D_4jDtBx.esm.min.js +0 -2
  351. package/dist/chunks/default.vertex-D_4jDtBx.esm.min.js.map +0 -1
  352. package/dist/chunks/defaultUboDeclaration-BjT2yBnm.esm.js +0 -15
  353. package/dist/chunks/defaultUboDeclaration-BjT2yBnm.esm.js.map +0 -1
  354. package/dist/chunks/defaultUboDeclaration-BuAk9gJA.esm.min.js +0 -2
  355. package/dist/chunks/defaultUboDeclaration-BuAk9gJA.esm.min.js.map +0 -1
  356. package/dist/chunks/defaultUboDeclaration-CC8YfLoS.esm.min.js +0 -2
  357. package/dist/chunks/defaultUboDeclaration-CC8YfLoS.esm.min.js.map +0 -1
  358. package/dist/chunks/defaultUboDeclaration-ClvuiT6M.esm.js +0 -13
  359. package/dist/chunks/defaultUboDeclaration-ClvuiT6M.esm.js.map +0 -1
  360. package/dist/chunks/envTextureLoader-DuE-52NK.esm.min.js +0 -2
  361. package/dist/chunks/envTextureLoader-DuE-52NK.esm.min.js.map +0 -1
  362. package/dist/chunks/envTextureLoader-ENMUumOz.esm.js +0 -63
  363. package/dist/chunks/envTextureLoader-ENMUumOz.esm.js.map +0 -1
  364. package/dist/chunks/environmentTextureTools-Cw-ZbYYv.esm.js +0 -381
  365. package/dist/chunks/environmentTextureTools-Cw-ZbYYv.esm.js.map +0 -1
  366. package/dist/chunks/environmentTextureTools-mWXMV1Cr.esm.min.js +0 -2
  367. package/dist/chunks/environmentTextureTools-mWXMV1Cr.esm.min.js.map +0 -1
  368. package/dist/chunks/exrTextureLoader-9ioAK1Ph.esm.js +0 -1682
  369. package/dist/chunks/exrTextureLoader-9ioAK1Ph.esm.js.map +0 -1
  370. package/dist/chunks/exrTextureLoader-zc2N62c3.esm.min.js +0 -2
  371. package/dist/chunks/exrTextureLoader-zc2N62c3.esm.min.js.map +0 -1
  372. package/dist/chunks/fogFragment-DLguActo.esm.min.js +0 -2
  373. package/dist/chunks/fogFragment-DLguActo.esm.min.js.map +0 -1
  374. package/dist/chunks/fogFragment-sACeXatv.esm.js +0 -102
  375. package/dist/chunks/fogFragment-sACeXatv.esm.js.map +0 -1
  376. package/dist/chunks/glTFLoader-BuxqXvJ-.esm.min.js +0 -2
  377. package/dist/chunks/glTFLoader-BuxqXvJ-.esm.min.js.map +0 -1
  378. package/dist/chunks/glTFLoader-DB7AOurF.esm.js +0 -7552
  379. package/dist/chunks/glTFLoader-DB7AOurF.esm.js.map +0 -1
  380. package/dist/chunks/glTFLoaderAnimation-BWhMcDgk.esm.min.js +0 -2
  381. package/dist/chunks/glTFLoaderAnimation-BWhMcDgk.esm.min.js.map +0 -1
  382. package/dist/chunks/glTFLoaderAnimation-DK5fvCTY.esm.js +0 -77
  383. package/dist/chunks/glTFLoaderAnimation-DK5fvCTY.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-BMUi3P6Y.esm.js +0 -35
  389. package/dist/chunks/harmonicsFunctions-BMUi3P6Y.esm.js.map +0 -1
  390. package/dist/chunks/harmonicsFunctions-BWj3xZKa.esm.min.js +0 -2
  391. package/dist/chunks/harmonicsFunctions-BWj3xZKa.esm.min.js.map +0 -1
  392. package/dist/chunks/harmonicsFunctions-D9GUclWs.esm.min.js +0 -2
  393. package/dist/chunks/harmonicsFunctions-D9GUclWs.esm.min.js.map +0 -1
  394. package/dist/chunks/harmonicsFunctions-DQngcILt.esm.js +0 -34
  395. package/dist/chunks/harmonicsFunctions-DQngcILt.esm.js.map +0 -1
  396. package/dist/chunks/hdrTextureLoader-3TOTpFyV.esm.min.js +0 -2
  397. package/dist/chunks/hdrTextureLoader-3TOTpFyV.esm.min.js.map +0 -1
  398. package/dist/chunks/hdrTextureLoader-zIHMNTOp.esm.js +0 -252
  399. package/dist/chunks/hdrTextureLoader-zIHMNTOp.esm.js.map +0 -1
  400. package/dist/chunks/helperFunctions-B_yzbgEv.esm.min.js +0 -2
  401. package/dist/chunks/helperFunctions-B_yzbgEv.esm.min.js.map +0 -1
  402. package/dist/chunks/helperFunctions-BjYz-6zr.esm.js +0 -108
  403. package/dist/chunks/helperFunctions-BjYz-6zr.esm.js.map +0 -1
  404. package/dist/chunks/helperFunctions-CXLST6hZ.esm.js +0 -80
  405. package/dist/chunks/helperFunctions-CXLST6hZ.esm.js.map +0 -1
  406. package/dist/chunks/helperFunctions-DTBzTIjJ.esm.min.js +0 -2
  407. package/dist/chunks/helperFunctions-DTBzTIjJ.esm.min.js.map +0 -1
  408. package/dist/chunks/index-CTNAO7X0.esm.js +0 -81630
  409. package/dist/chunks/index-CTNAO7X0.esm.js.map +0 -1
  410. package/dist/chunks/index-DYqHhEAk.esm.min.js +0 -57
  411. package/dist/chunks/index-DYqHhEAk.esm.min.js.map +0 -1
  412. package/dist/chunks/ktxTextureLoader-9AGBpjf1.esm.js +0 -814
  413. package/dist/chunks/ktxTextureLoader-9AGBpjf1.esm.js.map +0 -1
  414. package/dist/chunks/ktxTextureLoader-DbSU4wBV.esm.min.js +0 -2
  415. package/dist/chunks/ktxTextureLoader-DbSU4wBV.esm.min.js.map +0 -1
  416. package/dist/chunks/logDepthDeclaration-BCN89cGc.esm.min.js +0 -2
  417. package/dist/chunks/logDepthDeclaration-BCN89cGc.esm.min.js.map +0 -1
  418. package/dist/chunks/logDepthDeclaration-CZCatKgj.esm.js +0 -42
  419. package/dist/chunks/logDepthDeclaration-CZCatKgj.esm.js.map +0 -1
  420. package/dist/chunks/logDepthDeclaration-_gJVcKC2.esm.js +0 -35
  421. package/dist/chunks/logDepthDeclaration-_gJVcKC2.esm.js.map +0 -1
  422. package/dist/chunks/logDepthDeclaration-cpc5vyCy.esm.min.js +0 -2
  423. package/dist/chunks/logDepthDeclaration-cpc5vyCy.esm.min.js.map +0 -1
  424. package/dist/chunks/logDepthVertex-7sCVTIjr.esm.min.js +0 -2
  425. package/dist/chunks/logDepthVertex-7sCVTIjr.esm.min.js.map +0 -1
  426. package/dist/chunks/logDepthVertex-B09oc-mi.esm.js +0 -77
  427. package/dist/chunks/logDepthVertex-B09oc-mi.esm.js.map +0 -1
  428. package/dist/chunks/logDepthVertex-Bq3-XtSp.esm.min.js +0 -2
  429. package/dist/chunks/logDepthVertex-Bq3-XtSp.esm.min.js.map +0 -1
  430. package/dist/chunks/logDepthVertex-DZoye-59.esm.js +0 -605
  431. package/dist/chunks/logDepthVertex-DZoye-59.esm.js.map +0 -1
  432. package/dist/chunks/mainUVVaryingDeclaration-LHNQQPPQ.esm.js +0 -11
  433. package/dist/chunks/mainUVVaryingDeclaration-LHNQQPPQ.esm.js.map +0 -1
  434. package/dist/chunks/mainUVVaryingDeclaration-wmRFnah8.esm.min.js +0 -2
  435. package/dist/chunks/mainUVVaryingDeclaration-wmRFnah8.esm.min.js.map +0 -1
  436. package/dist/chunks/objFileLoader-BvWwH6aj.esm.js +0 -1280
  437. package/dist/chunks/objFileLoader-BvWwH6aj.esm.js.map +0 -1
  438. package/dist/chunks/objFileLoader-LDP87u1T.esm.min.js +0 -2
  439. package/dist/chunks/objFileLoader-LDP87u1T.esm.min.js.map +0 -1
  440. package/dist/chunks/oitFragment-BAVtrG6V.esm.min.js +0 -2
  441. package/dist/chunks/oitFragment-BAVtrG6V.esm.min.js.map +0 -1
  442. package/dist/chunks/oitFragment-BqzVjWja.esm.js +0 -1210
  443. package/dist/chunks/oitFragment-BqzVjWja.esm.js.map +0 -1
  444. package/dist/chunks/oitFragment-CIelz994.esm.js +0 -1166
  445. package/dist/chunks/oitFragment-CIelz994.esm.js.map +0 -1
  446. package/dist/chunks/oitFragment-P20Uiy73.esm.min.js +0 -2
  447. package/dist/chunks/oitFragment-P20Uiy73.esm.min.js.map +0 -1
  448. package/dist/chunks/pass.fragment-D-67YTNJ.esm.min.js +0 -2
  449. package/dist/chunks/pass.fragment-D-67YTNJ.esm.min.js.map +0 -1
  450. package/dist/chunks/pass.fragment-ke3_LMQY.esm.js +0 -15
  451. package/dist/chunks/pass.fragment-ke3_LMQY.esm.js.map +0 -1
  452. package/dist/chunks/pbr.fragment-3QJykQmh.esm.js +0 -3228
  453. package/dist/chunks/pbr.fragment-3QJykQmh.esm.js.map +0 -1
  454. package/dist/chunks/pbr.fragment-BfhoPEE4.esm.js +0 -3163
  455. package/dist/chunks/pbr.fragment-BfhoPEE4.esm.js.map +0 -1
  456. package/dist/chunks/pbr.fragment-BpCKAJQO.esm.min.js +0 -2
  457. package/dist/chunks/pbr.fragment-BpCKAJQO.esm.min.js.map +0 -1
  458. package/dist/chunks/pbr.fragment-Buc8F3ii.esm.min.js +0 -2
  459. package/dist/chunks/pbr.fragment-Buc8F3ii.esm.min.js.map +0 -1
  460. package/dist/chunks/pbr.vertex-Bwl6238q.esm.min.js +0 -2
  461. package/dist/chunks/pbr.vertex-Bwl6238q.esm.min.js.map +0 -1
  462. package/dist/chunks/pbr.vertex-COtog_7X.esm.js +0 -335
  463. package/dist/chunks/pbr.vertex-COtog_7X.esm.js.map +0 -1
  464. package/dist/chunks/pbr.vertex-CX-ksiMG.esm.min.js +0 -2
  465. package/dist/chunks/pbr.vertex-CX-ksiMG.esm.min.js.map +0 -1
  466. package/dist/chunks/pbr.vertex-WxxbIMZL.esm.js +0 -208
  467. package/dist/chunks/pbr.vertex-WxxbIMZL.esm.js.map +0 -1
  468. package/dist/chunks/postprocess.vertex-6VuephE3.esm.min.js +0 -2
  469. package/dist/chunks/postprocess.vertex-6VuephE3.esm.min.js.map +0 -1
  470. package/dist/chunks/postprocess.vertex-y9rNSbFH.esm.js +0 -20
  471. package/dist/chunks/postprocess.vertex-y9rNSbFH.esm.js.map +0 -1
  472. package/dist/chunks/rawTexture-BjAjz6eU.esm.min.js +0 -2
  473. package/dist/chunks/rawTexture-BjAjz6eU.esm.min.js.map +0 -1
  474. package/dist/chunks/rawTexture-DzCCPFKA.esm.js +0 -562
  475. package/dist/chunks/rawTexture-DzCCPFKA.esm.js.map +0 -1
  476. package/dist/chunks/rgbdDecode.fragment-B2z-Bt71.esm.js +0 -17
  477. package/dist/chunks/rgbdDecode.fragment-B2z-Bt71.esm.js.map +0 -1
  478. package/dist/chunks/rgbdDecode.fragment-CdzoW-6f.esm.min.js +0 -2
  479. package/dist/chunks/rgbdDecode.fragment-CdzoW-6f.esm.min.js.map +0 -1
  480. package/dist/chunks/rgbdDecode.fragment-DrLvcO8Q.esm.js +0 -17
  481. package/dist/chunks/rgbdDecode.fragment-DrLvcO8Q.esm.js.map +0 -1
  482. package/dist/chunks/rgbdDecode.fragment-DuXK_20s.esm.min.js +0 -2
  483. package/dist/chunks/rgbdDecode.fragment-DuXK_20s.esm.min.js.map +0 -1
  484. package/dist/chunks/rgbdEncode.fragment-B8TjBZ9S.esm.js +0 -17
  485. package/dist/chunks/rgbdEncode.fragment-B8TjBZ9S.esm.js.map +0 -1
  486. package/dist/chunks/rgbdEncode.fragment-CGQHcoVr.esm.min.js +0 -2
  487. package/dist/chunks/rgbdEncode.fragment-CGQHcoVr.esm.min.js.map +0 -1
  488. package/dist/chunks/rgbdEncode.fragment-CHPMUGpL.esm.js +0 -17
  489. package/dist/chunks/rgbdEncode.fragment-CHPMUGpL.esm.js.map +0 -1
  490. package/dist/chunks/rgbdEncode.fragment-Ch8KaRMn.esm.min.js +0 -2
  491. package/dist/chunks/rgbdEncode.fragment-Ch8KaRMn.esm.min.js.map +0 -1
  492. package/dist/chunks/splatFileLoader-BOlEs8up.esm.min.js +0 -2
  493. package/dist/chunks/splatFileLoader-BOlEs8up.esm.min.js.map +0 -1
  494. package/dist/chunks/splatFileLoader-bjTdN6CH.esm.js +0 -3137
  495. package/dist/chunks/splatFileLoader-bjTdN6CH.esm.js.map +0 -1
  496. package/dist/chunks/standardMaterial-AtuI8LET.esm.min.js +0 -2
  497. package/dist/chunks/standardMaterial-AtuI8LET.esm.min.js.map +0 -1
  498. package/dist/chunks/standardMaterial-pkPTNFQZ.esm.js +0 -1809
  499. package/dist/chunks/standardMaterial-pkPTNFQZ.esm.js.map +0 -1
  500. package/dist/chunks/stlFileLoader-D_S8zIWi.esm.min.js +0 -2
  501. package/dist/chunks/stlFileLoader-D_S8zIWi.esm.min.js.map +0 -1
  502. package/dist/chunks/stlFileLoader-LAl8UbnA.esm.js +0 -237
  503. package/dist/chunks/stlFileLoader-LAl8UbnA.esm.js.map +0 -1
  504. package/dist/chunks/tgaTextureLoader-6J7hFLap.esm.min.js +0 -2
  505. package/dist/chunks/tgaTextureLoader-6J7hFLap.esm.min.js.map +0 -1
  506. package/dist/chunks/tgaTextureLoader-C9bFUsSu.esm.js +0 -349
  507. package/dist/chunks/tgaTextureLoader-C9bFUsSu.esm.js.map +0 -1
  508. package/dist/chunks/thinInstanceMesh-01jRjs2y.esm.js +0 -314
  509. package/dist/chunks/thinInstanceMesh-01jRjs2y.esm.js.map +0 -1
  510. package/dist/chunks/thinInstanceMesh-BkM6bBqz.esm.min.js +0 -2
  511. package/dist/chunks/thinInstanceMesh-BkM6bBqz.esm.min.js.map +0 -1
  512. package/dist/chunks/vertexColorMixing-BQURABk9.esm.js +0 -528
  513. package/dist/chunks/vertexColorMixing-BQURABk9.esm.js.map +0 -1
  514. package/dist/chunks/vertexColorMixing-DtyijcYJ.esm.min.js +0 -2
  515. package/dist/chunks/vertexColorMixing-DtyijcYJ.esm.min.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,1166 +0,0 @@
1
- import { S as ShaderStore } from './index-CTNAO7X0.esm.js';
2
-
3
- // Do not edit.
4
- const name$j = "prePassDeclaration";
5
- const shader$j = `#ifdef PREPASS
6
- #ifdef PREPASS_LOCAL_POSITION
7
- varying vPosition : vec3f;
8
- #endif
9
- #ifdef PREPASS_DEPTH
10
- varying vViewPos: vec3f;
11
- #endif
12
- #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
13
- varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
14
- #endif
15
- #endif
16
- `;
17
- // Sideeffect
18
- ShaderStore.IncludesShadersStoreWGSL[name$j] = shader$j;
19
-
20
- // Do not edit.
21
- const name$i = "oitDeclaration";
22
- const shader$i = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
23
- #define MAX_DEPTH 99999.0
24
- var oitDepthSamplerSampler: sampler;var oitDepthSampler: texture_2d<f32>;var oitFrontColorSamplerSampler: sampler;var oitFrontColorSampler: texture_2d<f32>;
25
- #endif
26
- `;
27
- // Sideeffect
28
- ShaderStore.IncludesShadersStoreWGSL[name$i] = shader$i;
29
-
30
- // Do not edit.
31
- const name$h = "lightUboDeclaration";
32
- const shader$h = `#ifdef LIGHT{X}
33
- struct Light{X}
34
- {vLightData: vec4f,
35
- vLightDiffuse: vec4f,
36
- vLightSpecular: vec4f,
37
- #ifdef SPOTLIGHT{X}
38
- vLightDirection: vec4f,
39
- vLightFalloff: vec4f,
40
- #elif defined(POINTLIGHT{X})
41
- vLightFalloff: vec4f,
42
- #elif defined(HEMILIGHT{X})
43
- vLightGround: vec3f,
44
- #endif
45
- shadowsInfo: vec4f,
46
- depthValues: vec2f} ;var<uniform> light{X} : Light{X};
47
- #ifdef PROJECTEDLIGHTTEXTURE{X}
48
- uniform textureProjectionMatrix{X}: mat4x4f;var projectionLightTexture{X}Sampler: sampler;var projectionLightTexture{X}: texture_2d<f32>;
49
- #endif
50
- #ifdef SHADOW{X}
51
- #ifdef SHADOWCSM{X}
52
- uniform lightMatrix{X}: array<mat4x4f,SHADOWCSMNUM_CASCADES{X}>;uniform viewFrustumZ{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform frustumLengths{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform cascadeBlendFactor{X}: f32;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;var<private> vPositionFromLight{X}: array<vec4f,4>;var<private> vDepthMetric{X} : array<f32,4>;
53
- #if defined(SHADOWPCSS{X})
54
- var shadowTexture{X}Sampler: sampler_comparison;
55
- var shadowTexture{X}: texture_depth_2d_array;var depthTexture{X}Sampler: sampler;var depthTexture{X}: texture_2d_array<f32>;uniform lightSizeUVCorrection{X}: array<vec2f,SHADOWCSMNUM_CASCADES{X}>;uniform depthCorrection{X}: array<f32,SHADOWCSMNUM_CASCADES{X}>;uniform penumbraDarkness{X}: f32;
56
- #elif defined(SHADOWPCF{X})
57
- var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d_array;
58
- #else
59
- var shadowTexture{X}Sampler: sampler;
60
- var shadowTexture{X}: texture_2d_array<f32>;
61
- #endif
62
- #ifdef SHADOWCSMDEBUG{X}
63
- const vCascadeColorsMultiplier{X}: array<vec3f,8>=array<vec3f,8>
64
- (
65
- vec3f ( 1.5,0.0,0.0 ),
66
- vec3f ( 0.0,1.5,0.0 ),
67
- vec3f ( 0.0,0.0,5.5 ),
68
- vec3f ( 1.5,0.0,5.5 ),
69
- vec3f ( 1.5,1.5,0.0 ),
70
- vec3f ( 1.0,1.0,1.0 ),
71
- vec3f ( 0.0,1.0,5.5 ),
72
- vec3f ( 0.5,3.5,0.75 )
73
- );
74
- #endif
75
- #elif defined(SHADOWCUBE{X})
76
- var shadowTexture{X}Sampler: sampler;var shadowTexture{X}: texture_cube<f32>;
77
- #else
78
- varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;
79
- #if defined(SHADOWPCSS{X})
80
- var shadowTexture{X}Sampler: sampler_comparison;
81
- var shadowTexture{X}: texture_depth_2d;var depthTexture{X}Sampler: sampler;
82
- var depthTexture{X}: texture_2d<f32>;
83
- #elif defined(SHADOWPCF{X})
84
- var shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d;
85
- #else
86
- var shadowTexture{X}Sampler: sampler;
87
- var shadowTexture{X}: texture_2d<f32>;
88
- #endif
89
- uniform lightMatrix{X}: mat4x4f;
90
- #endif
91
- #endif
92
- #endif
93
- `;
94
- // Sideeffect
95
- ShaderStore.IncludesShadersStoreWGSL[name$h] = shader$h;
96
-
97
- // Do not edit.
98
- const name$g = "samplerFragmentDeclaration";
99
- const shader$g = `#ifdef _DEFINENAME_
100
- #if _DEFINENAME_DIRECTUV==1
101
- #define v_VARYINGNAME_UV vMainUV1
102
- #elif _DEFINENAME_DIRECTUV==2
103
- #define v_VARYINGNAME_UV vMainUV2
104
- #elif _DEFINENAME_DIRECTUV==3
105
- #define v_VARYINGNAME_UV vMainUV3
106
- #elif _DEFINENAME_DIRECTUV==4
107
- #define v_VARYINGNAME_UV vMainUV4
108
- #elif _DEFINENAME_DIRECTUV==5
109
- #define v_VARYINGNAME_UV vMainUV5
110
- #elif _DEFINENAME_DIRECTUV==6
111
- #define v_VARYINGNAME_UV vMainUV6
112
- #else
113
- varying v_VARYINGNAME_UV: vec2f;
114
- #endif
115
- var _SAMPLERNAME_SamplerSampler: sampler;var _SAMPLERNAME_Sampler: texture_2d<f32>;
116
- #endif
117
- `;
118
- // Sideeffect
119
- ShaderStore.IncludesShadersStoreWGSL[name$g] = shader$g;
120
-
121
- // Do not edit.
122
- const name$f = "imageProcessingDeclaration";
123
- const shader$f = `#ifdef EXPOSURE
124
- uniform exposureLinear: f32;
125
- #endif
126
- #ifdef CONTRAST
127
- uniform contrast: f32;
128
- #endif
129
- #if defined(VIGNETTE) || defined(DITHER)
130
- uniform vInverseScreenSize: vec2f;
131
- #endif
132
- #ifdef VIGNETTE
133
- uniform vignetteSettings1: vec4f;uniform vignetteSettings2: vec4f;
134
- #endif
135
- #ifdef COLORCURVES
136
- uniform vCameraColorCurveNegative: vec4f;uniform vCameraColorCurveNeutral: vec4f;uniform vCameraColorCurvePositive: vec4f;
137
- #endif
138
- #ifdef COLORGRADING
139
- #ifdef COLORGRADING3D
140
- var txColorTransformSampler: sampler;var txColorTransform: texture_3d<f32>;
141
- #else
142
- var txColorTransformSampler: sampler;var txColorTransform: texture_2d<f32>;
143
- #endif
144
- uniform colorTransformSettings: vec4f;
145
- #endif
146
- #ifdef DITHER
147
- uniform ditherIntensity: f32;
148
- #endif
149
- `;
150
- // Sideeffect
151
- ShaderStore.IncludesShadersStoreWGSL[name$f] = shader$f;
152
-
153
- // Do not edit.
154
- const name$e = "clipPlaneFragmentDeclaration";
155
- const shader$e = `#ifdef CLIPPLANE
156
- varying fClipDistance: f32;
157
- #endif
158
- #ifdef CLIPPLANE2
159
- varying fClipDistance2: f32;
160
- #endif
161
- #ifdef CLIPPLANE3
162
- varying fClipDistance3: f32;
163
- #endif
164
- #ifdef CLIPPLANE4
165
- varying fClipDistance4: f32;
166
- #endif
167
- #ifdef CLIPPLANE5
168
- varying fClipDistance5: f32;
169
- #endif
170
- #ifdef CLIPPLANE6
171
- varying fClipDistance6: f32;
172
- #endif
173
- `;
174
- // Sideeffect
175
- ShaderStore.IncludesShadersStoreWGSL[name$e] = shader$e;
176
-
177
- // Do not edit.
178
- const name$d = "fogFragmentDeclaration";
179
- const shader$d = `#ifdef FOG
180
- #define FOGMODE_NONE 0.
181
- #define FOGMODE_EXP 1.
182
- #define FOGMODE_EXP2 2.
183
- #define FOGMODE_LINEAR 3.
184
- const E=2.71828;uniform vFogInfos: vec4f;uniform vFogColor: vec3f;varying vFogDistance: vec3f;fn CalcFogFactor()->f32
185
- {var fogCoeff: f32=1.0;var fogStart: f32=uniforms.vFogInfos.y;var fogEnd: f32=uniforms.vFogInfos.z;var fogDensity: f32=uniforms.vFogInfos.w;var fogDistance: f32=length(fragmentInputs.vFogDistance);if (FOGMODE_LINEAR==uniforms.vFogInfos.x)
186
- {fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}
187
- else if (FOGMODE_EXP==uniforms.vFogInfos.x)
188
- {fogCoeff=1.0/pow(E,fogDistance*fogDensity);}
189
- else if (FOGMODE_EXP2==uniforms.vFogInfos.x)
190
- {fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}
191
- return clamp(fogCoeff,0.0,1.0);}
192
- #endif
193
- `;
194
- // Sideeffect
195
- ShaderStore.IncludesShadersStoreWGSL[name$d] = shader$d;
196
-
197
- // Do not edit.
198
- const name$c = "imageProcessingFunctions";
199
- const shader$c = `#if TONEMAPPING==3
200
- const PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peak<PBRNeutralStartCompression) {return result;}
201
- var d: f32=1.-PBRNeutralStartCompression;var newPeak: f32=1.-d*d/(peak+d-PBRNeutralStartCompression);result*=newPeak/peak;var g: f32=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(result,newPeak* vec3f(1,1,1),g);}
202
- #endif
203
- #if TONEMAPPING==2
204
- const ACESInputMat: mat3x3f= mat3x3f(
205
- vec3f(0.59719,0.07600,0.02840),
206
- vec3f(0.35458,0.90834,0.13383),
207
- vec3f(0.04823,0.01566,0.83777)
208
- );const ACESOutputMat: mat3x3f= mat3x3f(
209
- vec3f( 1.60475,-0.10208,-0.00327),
210
- vec3f(-0.53108, 1.10813,-0.07276),
211
- vec3f(-0.07367,-0.00605, 1.07602)
212
- );fn RRTAndODTFit(v: vec3f)->vec3f
213
- {var a: vec3f=v*(v+0.0245786)-0.000090537;var b: vec3f=v*(0.983729*v+0.4329510)+0.238081;return a/b;}
214
- fn ACESFitted(color: vec3f)->vec3f
215
- {var output=ACESInputMat*color;output=RRTAndODTFit(output);output=ACESOutputMat*output;output=saturateVec3(output);return output;}
216
- #endif
217
- #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS
218
- fn applyImageProcessing(result: vec4f)->vec4f {
219
- #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART
220
- var rgb=result.rgb;;
221
- #ifdef EXPOSURE
222
- rgb*=uniforms.exposureLinear;
223
- #endif
224
- #ifdef VIGNETTE
225
- var viewportXY: vec2f=fragmentInputs.position.xy*uniforms.vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;var vignetteXY1: vec3f= vec3f(viewportXY*uniforms.vignetteSettings1.xy+uniforms.vignetteSettings1.zw,1.0);var vignetteTerm: f32=dot(vignetteXY1,vignetteXY1);var vignette: f32=pow(vignetteTerm,uniforms.vignetteSettings2.w);var vignetteColor: vec3f=uniforms.vignetteSettings2.rgb;
226
- #ifdef VIGNETTEBLENDMODEMULTIPLY
227
- var vignetteColorMultiplier: vec3f=mix(vignetteColor, vec3f(1,1,1),vignette);rgb*=vignetteColorMultiplier;
228
- #endif
229
- #ifdef VIGNETTEBLENDMODEOPAQUE
230
- rgb=mix(vignetteColor,rgb,vignette);
231
- #endif
232
- #endif
233
- #if TONEMAPPING==3
234
- rgb=PBRNeutralToneMapping(rgb);
235
- #elif TONEMAPPING==2
236
- rgb=ACESFitted(rgb);
237
- #elif TONEMAPPING==1
238
- const tonemappingCalibration: f32=1.590579;rgb=1.0-exp2(-tonemappingCalibration*rgb);
239
- #endif
240
- rgb=toGammaSpaceVec3(rgb);rgb=saturateVec3(rgb);
241
- #ifdef CONTRAST
242
- var resultHighContrast: vec3f=rgb*rgb*(3.0-2.0*rgb);if (uniforms.contrast<1.0) {rgb=mix( vec3f(0.5,0.5,0.5),rgb,uniforms.contrast);} else {rgb=mix(rgb,resultHighContrast,uniforms.contrast-1.0);}
243
- #endif
244
- #ifdef COLORGRADING
245
- var colorTransformInput: vec3f=rgb*uniforms.colorTransformSettings.xxx+uniforms.colorTransformSettings.yyy;
246
- #ifdef COLORGRADING3D
247
- var colorTransformOutput: vec3f=textureSample(txColorTransform,txColorTransformSampler,colorTransformInput).rgb;
248
- #else
249
- var colorTransformOutput: vec3f=textureSample(txColorTransform,txColorTransformSampler,colorTransformInput,uniforms.colorTransformSettings.yz).rgb;
250
- #endif
251
- rgb=mix(rgb,colorTransformOutput,uniforms.colorTransformSettings.www);
252
- #endif
253
- #ifdef COLORCURVES
254
- var luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,luma*-3.0+1.5), vec2f(0.0), vec2f(1.0));var colorCurve: vec4f=uniforms.vCameraColorCurveNeutral+curveMix.x*uniforms.vCameraColorCurvePositive-curveMix.y*uniforms.vCameraColorCurveNegative;rgb*=colorCurve.rgb;rgb=mix( vec3f(luma),rgb,colorCurve.a);
255
- #endif
256
- #ifdef DITHER
257
- var rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturateVec3(rgb+ vec3f(dither));
258
- #endif
259
- #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND
260
- return vec4f(rgb,result.a);}`;
261
- // Sideeffect
262
- ShaderStore.IncludesShadersStoreWGSL[name$c] = shader$c;
263
-
264
- // Do not edit.
265
- const name$b = "shadowsFragmentFunctions";
266
- const shader$b = `#ifdef SHADOWS
267
- #ifndef SHADOWFLOAT
268
- fn unpack(color: vec4f)->f32
269
- {const bit_shift: vec4f= vec4f(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}
270
- #endif
271
- fn computeFallOff(value: f32,clipSpace: vec2f,frustumEdgeFalloff: f32)->f32
272
- {var mask: f32=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}
273
- fn computeShadowCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthValues: vec2f)->f32
274
- {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
275
- #ifndef SHADOWFLOAT
276
- var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
277
- #else
278
- var shadow: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
279
- #endif
280
- return select(darkness,1.0,depth>shadow);}
281
- fn computeShadowWithPoissonSamplingCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,depthValues: vec2f)->f32
282
- {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;var visibility: f32=1.;var poissonDisk: array<vec3f,4>;poissonDisk[0]= vec3f(-1.0,1.0,-1.0);poissonDisk[1]= vec3f(1.0,-1.0,-1.0);poissonDisk[2]= vec3f(-1.0,-1.0,-1.0);poissonDisk[3]= vec3f(1.0,-1.0,1.0);
283
- #ifndef SHADOWFLOAT
284
- if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth) {visibility-=0.25;};if (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth) {visibility-=0.25;};
285
- #else
286
- if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth) {visibility-=0.25;};if (textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth) {visibility-=0.25;};
287
- #endif
288
- return min(1.0,visibility+darkness);}
289
- fn computeShadowWithESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
290
- {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
291
- #ifndef SHADOWFLOAT
292
- var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
293
- #else
294
- var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
295
- #endif
296
- var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}
297
- fn computeShadowWithCloseESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32
298
- {var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;
299
- #ifndef SHADOWFLOAT
300
- var shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));
301
- #else
302
- var shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;
303
- #endif
304
- var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}
305
- fn computeShadowCSM(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d_array<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
306
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
307
- #ifndef SHADOWFLOAT
308
- var shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,uv,layer));
309
- #else
310
- var shadow: f32=textureSample(shadowTexture,shadowSampler,uv,layer).x;
311
- #endif
312
- return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}
313
- fn computeShadow(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32
314
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
315
- {return 1.0;}
316
- else
317
- {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
318
- #ifndef SHADOWFLOAT
319
- var shadow: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
320
- #else
321
- var shadow: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
322
- #endif
323
- return select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}}
324
- fn computeShadowWithPoissonSampling(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,mapSize: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
325
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
326
- {return 1.0;}
327
- else
328
- {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);var visibility: f32=1.;var poissonDisk: array<vec2f,4>;poissonDisk[0]= vec2f(-0.94201624,-0.39906216);poissonDisk[1]= vec2f(0.94558609,-0.76890725);poissonDisk[2]= vec2f(-0.094184101,-0.92938870);poissonDisk[3]= vec2f(0.34495938,0.29387760);
329
- #ifndef SHADOWFLOAT
330
- if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
331
- if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
332
- if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
333
- if (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth) {visibility-=0.25;}
334
- #else
335
- if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
336
- if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
337
- if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
338
- if (textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth) {visibility-=0.25;}
339
- #endif
340
- return computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);}}
341
- fn computeShadowWithESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
342
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
343
- {return 1.0;}
344
- else
345
- {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
346
- #ifndef SHADOWFLOAT
347
- var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
348
- #else
349
- var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
350
- #endif
351
- var esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
352
- fn computeShadowWithCloseESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d<f32>,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32
353
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)
354
- {return 1.0;}
355
- else
356
- {var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);
357
- #ifndef SHADOWFLOAT
358
- var shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));
359
- #else
360
- var shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;
361
- #endif
362
- var esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}
363
- fn getZInClip(clipSpace: vec3f,uvDepth: vec3f)->f32
364
- {
365
- #ifdef IS_NDC_HALF_ZRANGE
366
- return clipSpace.z;
367
- #else
368
- return uvDepth.z;
369
- #endif
370
- }
371
- const GREATEST_LESS_THAN_ONE: f32=0.99999994;
372
- #define DISABLE_UNIFORMITY_ANALYSIS
373
- fn computeShadowWithCSMPCF1(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
374
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var shadow: f32=textureSampleCompare(shadowTexture,shadowSampler,uvDepth.xy,layer,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
375
- fn computeShadowWithCSMPCF3(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
376
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
377
- uv+=0.5;
378
- var st: vec2f=fract(uv);
379
- var base_uv: vec2f=floor(uv)-0.5;
380
- base_uv*=shadowMapSizeAndInverse.y;
381
- var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
382
- fn computeShadowWithCSMPCF5(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
383
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
384
- uv+=0.5;
385
- var st: vec2f=fract(uv);
386
- var base_uv: vec2f=floor(uv)-0.5;
387
- base_uv*=shadowMapSizeAndInverse.y;
388
- var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),layer,uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),layer,uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),layer,uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),layer,uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}
389
- fn computeShadowWithPCF1(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32
390
- {if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
391
- else
392
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var shadow: f32=textureSampleCompareLevel(shadowTexture,shadowSampler,uvDepth.xy,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
393
- fn computeShadowWithPCF3(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
394
- {if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
395
- else
396
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
397
- uv+=0.5;
398
- var st: vec2f=fract(uv);
399
- var base_uv: vec2f=floor(uv)-0.5;
400
- base_uv*=shadowMapSizeAndInverse.y;
401
- var uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
402
- fn computeShadowWithPCF5(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32
403
- {if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}
404
- else
405
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x;
406
- uv+=0.5;
407
- var st: vec2f=fract(uv);
408
- var base_uv: vec2f=floor(uv)-0.5;
409
- base_uv*=shadowMapSizeAndInverse.y;
410
- var uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}
411
- const PoissonSamplers32: array<vec3f,64>=array<vec3f,64> (
412
- vec3f(0.06407013,0.05409927,0.),
413
- vec3f(0.7366577,0.5789394,0.),
414
- vec3f(-0.6270542,-0.5320278,0.),
415
- vec3f(-0.4096107,0.8411095,0.),
416
- vec3f(0.6849564,-0.4990818,0.),
417
- vec3f(-0.874181,-0.04579735,0.),
418
- vec3f(0.9989998,0.0009880066,0.),
419
- vec3f(-0.004920578,-0.9151649,0.),
420
- vec3f(0.1805763,0.9747483,0.),
421
- vec3f(-0.2138451,0.2635818,0.),
422
- vec3f(0.109845,0.3884785,0.),
423
- vec3f(0.06876755,-0.3581074,0.),
424
- vec3f(0.374073,-0.7661266,0.),
425
- vec3f(0.3079132,-0.1216763,0.),
426
- vec3f(-0.3794335,-0.8271583,0.),
427
- vec3f(-0.203878,-0.07715034,0.),
428
- vec3f(0.5912697,0.1469799,0.),
429
- vec3f(-0.88069,0.3031784,0.),
430
- vec3f(0.5040108,0.8283722,0.),
431
- vec3f(-0.5844124,0.5494877,0.),
432
- vec3f(0.6017799,-0.1726654,0.),
433
- vec3f(-0.5554981,0.1559997,0.),
434
- vec3f(-0.3016369,-0.3900928,0.),
435
- vec3f(-0.5550632,-0.1723762,0.),
436
- vec3f(0.925029,0.2995041,0.),
437
- vec3f(-0.2473137,0.5538505,0.),
438
- vec3f(0.9183037,-0.2862392,0.),
439
- vec3f(0.2469421,0.6718712,0.),
440
- vec3f(0.3916397,-0.4328209,0.),
441
- vec3f(-0.03576927,-0.6220032,0.),
442
- vec3f(-0.04661255,0.7995201,0.),
443
- vec3f(0.4402924,0.3640312,0.),
444
- vec3f(0.),
445
- vec3f(0.),
446
- vec3f(0.),
447
- vec3f(0.),
448
- vec3f(0.),
449
- vec3f(0.),
450
- vec3f(0.),
451
- vec3f(0.),
452
- vec3f(0.),
453
- vec3f(0.),
454
- vec3f(0.),
455
- vec3f(0.),
456
- vec3f(0.),
457
- vec3f(0.),
458
- vec3f(0.),
459
- vec3f(0.),
460
- vec3f(0.),
461
- vec3f(0.),
462
- vec3f(0.),
463
- vec3f(0.),
464
- vec3f(0.),
465
- vec3f(0.),
466
- vec3f(0.),
467
- vec3f(0.),
468
- vec3f(0.),
469
- vec3f(0.),
470
- vec3f(0.),
471
- vec3f(0.),
472
- vec3f(0.),
473
- vec3f(0.),
474
- vec3f(0.),
475
- vec3f(0.)
476
- );const PoissonSamplers64: array<vec3f,64>=array<vec3f,64> (
477
- vec3f(-0.613392,0.617481,0.),
478
- vec3f(0.170019,-0.040254,0.),
479
- vec3f(-0.299417,0.791925,0.),
480
- vec3f(0.645680,0.493210,0.),
481
- vec3f(-0.651784,0.717887,0.),
482
- vec3f(0.421003,0.027070,0.),
483
- vec3f(-0.817194,-0.271096,0.),
484
- vec3f(-0.705374,-0.668203,0.),
485
- vec3f(0.977050,-0.108615,0.),
486
- vec3f(0.063326,0.142369,0.),
487
- vec3f(0.203528,0.214331,0.),
488
- vec3f(-0.667531,0.326090,0.),
489
- vec3f(-0.098422,-0.295755,0.),
490
- vec3f(-0.885922,0.215369,0.),
491
- vec3f(0.566637,0.605213,0.),
492
- vec3f(0.039766,-0.396100,0.),
493
- vec3f(0.751946,0.453352,0.),
494
- vec3f(0.078707,-0.715323,0.),
495
- vec3f(-0.075838,-0.529344,0.),
496
- vec3f(0.724479,-0.580798,0.),
497
- vec3f(0.222999,-0.215125,0.),
498
- vec3f(-0.467574,-0.405438,0.),
499
- vec3f(-0.248268,-0.814753,0.),
500
- vec3f(0.354411,-0.887570,0.),
501
- vec3f(0.175817,0.382366,0.),
502
- vec3f(0.487472,-0.063082,0.),
503
- vec3f(-0.084078,0.898312,0.),
504
- vec3f(0.488876,-0.783441,0.),
505
- vec3f(0.470016,0.217933,0.),
506
- vec3f(-0.696890,-0.549791,0.),
507
- vec3f(-0.149693,0.605762,0.),
508
- vec3f(0.034211,0.979980,0.),
509
- vec3f(0.503098,-0.308878,0.),
510
- vec3f(-0.016205,-0.872921,0.),
511
- vec3f(0.385784,-0.393902,0.),
512
- vec3f(-0.146886,-0.859249,0.),
513
- vec3f(0.643361,0.164098,0.),
514
- vec3f(0.634388,-0.049471,0.),
515
- vec3f(-0.688894,0.007843,0.),
516
- vec3f(0.464034,-0.188818,0.),
517
- vec3f(-0.440840,0.137486,0.),
518
- vec3f(0.364483,0.511704,0.),
519
- vec3f(0.034028,0.325968,0.),
520
- vec3f(0.099094,-0.308023,0.),
521
- vec3f(0.693960,-0.366253,0.),
522
- vec3f(0.678884,-0.204688,0.),
523
- vec3f(0.001801,0.780328,0.),
524
- vec3f(0.145177,-0.898984,0.),
525
- vec3f(0.062655,-0.611866,0.),
526
- vec3f(0.315226,-0.604297,0.),
527
- vec3f(-0.780145,0.486251,0.),
528
- vec3f(-0.371868,0.882138,0.),
529
- vec3f(0.200476,0.494430,0.),
530
- vec3f(-0.494552,-0.711051,0.),
531
- vec3f(0.612476,0.705252,0.),
532
- vec3f(-0.578845,-0.768792,0.),
533
- vec3f(-0.772454,-0.090976,0.),
534
- vec3f(0.504440,0.372295,0.),
535
- vec3f(0.155736,0.065157,0.),
536
- vec3f(0.391522,0.849605,0.),
537
- vec3f(-0.620106,-0.328104,0.),
538
- vec3f(0.789239,-0.419965,0.),
539
- vec3f(-0.545396,0.538133,0.),
540
- vec3f(-0.178564,-0.596057,0.)
541
- );fn computeShadowWithCSMPCSS(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
542
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uvDepthLayer: vec4f= vec4f(uvDepth.x,uvDepth.y,f32(layer),uvDepth.z);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;for (var i: i32=0; i<searchTapCount; i ++) {blockerDepth=textureSample(depthTexture,depthSampler, uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
543
- var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);var filterRadius: vec4f= vec4f(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {var offset: vec4f= vec4f(poissonSamplers[i],0.);offset= vec4f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);let coords=uvDepthLayer+offset*filterRadius;shadow+=textureSampleCompare(shadowTexture,shadowSampler,coords.xy,i32(coords.z),coords.w);}
544
- shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));shadow=mix(darkness,1.,shadow);return select(computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff),1.0,numBlocker<1.0);}
545
- fn computeShadowWithPCSS(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array<vec3f,64>)->f32
546
- {var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;var exitCondition: bool=depthMetric>1.0 || depthMetric<0.0;for (var i: i32=0; i<searchTapCount; i ++) {if (exitCondition) {break;}
547
- blockerDepth=textureSampleLevel(depthTexture,depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0).r;numBlocker+=select(0.,1.,blockerDepth<depthMetric);sumBlockerDepth+=select(0.,blockerDepth,blockerDepth<depthMetric);}
548
- exitCondition=exitCondition || numBlocker<1.0;var avgBlockerDepth: f32=sumBlockerDepth/numBlocker;var AAOffset: f32=shadowMapSizeInverse*10.;var penumbraRatio: f32=((depthMetric-avgBlockerDepth)+AAOffset);var filterRadius: f32=penumbraRatio*lightSizeUV*shadowMapSizeInverse;var random: f32=getRand(vPositionFromLight.xy);var rotationAngle: f32=random*3.1415926;var rotationVector: vec2f= vec2f(cos(rotationAngle),sin(rotationAngle));var shadow: f32=0.;for (var i: i32=0; i<pcfTapCount; i++) {if (exitCondition) {break;}
549
- var offset: vec3f=poissonSamplers[i];offset= vec3f(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);let coords=uvDepth+offset*filterRadius;shadow+=textureSampleCompareLevel(shadowTexture,shadowSampler,coords.xy,coords.z);}
550
- shadow/= f32(pcfTapCount);shadow=mix(shadow,1.,depthMetric-avgBlockerDepth);shadow=mix(darkness,1.,shadow);return select(computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff),1.0,exitCondition);}
551
- fn computeShadowWithPCSS16(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
552
- {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}
553
- fn computeShadowWithPCSS32(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
554
- {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}
555
- fn computeShadowWithPCSS64(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32
556
- {return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}
557
- fn computeShadowWithCSMPCSS16(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
558
- {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
559
- fn computeShadowWithCSMPCSS32(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
560
- {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
561
- fn computeShadowWithCSMPCSS64(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
562
- {return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
563
- #endif
564
- `;
565
- // Sideeffect
566
- ShaderStore.IncludesShadersStoreWGSL[name$b] = shader$b;
567
-
568
- // Do not edit.
569
- const name$a = "bumpFragmentMainFunctions";
570
- const shader$a = `#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
571
- #if defined(TANGENT) && defined(NORMAL)
572
- varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
573
- #endif
574
- #ifdef OBJECTSPACE_NORMALMAP
575
- uniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f
576
- {var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0];
577
- var a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0];
578
- var a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(
579
- (a11*b11-a12*b10+a13*b09)/det,
580
- (a02*b10-a01*b11-a03*b09)/det,
581
- (a31*b05-a32*b04+a33*b03)/det,
582
- (a22*b04-a21*b05-a23*b03)/det,
583
- (a12*b08-a10*b11-a13*b07)/det,
584
- (a00*b11-a02*b08+a03*b07)/det,
585
- (a32*b02-a30*b05-a33*b01)/det,
586
- (a20*b05-a22*b02+a23*b01)/det,
587
- (a10*b10-a11*b08+a13*b06)/det,
588
- (a01*b08-a00*b10-a03*b06)/det,
589
- (a30*b04-a31*b02+a33*b00)/det,
590
- (a21*b02-a20*b04-a23*b00)/det,
591
- (a11*b07-a10*b09-a12*b06)/det,
592
- (a00*b09-a01*b07+a02*b06)/det,
593
- (a31*b01-a30*b03-a32*b00)/det,
594
- (a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
595
- mi[0][1],mi[1][1],mi[2][1],mi[3][1],
596
- mi[0][2],mi[1][2],mi[2][2],mi[3][2],
597
- mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
598
- #endif
599
- fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
600
- {var output=normal;
601
- #ifdef NORMALXYSCALE
602
- output=normalize(output* vec3f(scale,scale,1.0));
603
- #endif
604
- return normalize(cotangentFrame*output);}
605
- fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
606
- {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
607
- fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
608
- {var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}
609
- #endif
610
- `;
611
- // Sideeffect
612
- ShaderStore.IncludesShadersStoreWGSL[name$a] = shader$a;
613
-
614
- // Do not edit.
615
- const name$9 = "bumpFragmentFunctions";
616
- const shader$9 = `#if defined(BUMP)
617
- #include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
618
- #endif
619
- #if defined(DETAIL)
620
- #include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
621
- #endif
622
- #if defined(BUMP) && defined(PARALLAX)
623
- const minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)
624
- {currSampledHeight=textureSample(bumpSampler,bumpSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)
625
- {}
626
- else if (currSampledHeight>currRayHeight)
627
- {var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
628
- else
629
- {currRayHeight-=stepSize;vLastOffset=vCurrOffset;
630
- #ifdef PARALLAX_RHS
631
- vCurrOffset-=stepSize*vMaxOffset;
632
- #else
633
- vCurrOffset+=stepSize*vMaxOffset;
634
- #endif
635
- lastSampledHeight=currSampledHeight;}}
636
- return vCurrOffset;}
637
- fn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f
638
- {var height: f32=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;
639
- #ifdef PARALLAX_RHS
640
- return texCoordOffset;
641
- #else
642
- return -texCoordOffset;
643
- #endif
644
- }
645
- #endif
646
- `;
647
- // Sideeffect
648
- ShaderStore.IncludesShadersStoreWGSL[name$9] = shader$9;
649
-
650
- // Do not edit.
651
- const name$8 = "reflectionFunction";
652
- const shader$8 = `fn computeFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
653
- {var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0); }
654
- fn computeMirroredFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
655
- {var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(1.0-s,t,0); }
656
- fn computeEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
657
- {var cameraToVertex: vec3f=normalize(worldPos.xyz-eyePosition);var r: vec3f=normalize(reflect(cameraToVertex,worldNormal));r= (reflectionMatrix* vec4f(r,0)).xyz;var lon: f32=atan2(r.z,r.x);var lat: f32=acos(r.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0);}
658
- fn computeSphericalCoords(worldPos: vec4f,worldNormal: vec3f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
659
- {var viewDir: vec3f=normalize((view*worldPos).xyz);var viewNormal: vec3f=normalize((view* vec4f(worldNormal,0.0)).xyz);var r: vec3f=reflect(viewDir,viewNormal);r= (reflectionMatrix* vec4f(r,0)).xyz;r.z=r.z-1.0;var m: f32=2.0*length(r);return vec3f(r.x/m+0.5,1.0-r.y/m-0.5,0);}
660
- fn computePlanarCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
661
- {var viewDir: vec3f=worldPos.xyz-eyePosition;var coords: vec3f=normalize(reflect(viewDir,worldNormal));return (reflectionMatrix* vec4f(coords,1)).xyz;}
662
- fn computeCubicCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
663
- {var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords= (reflectionMatrix* vec4f(coords,0)).xyz;
664
- #ifdef INVERTCUBICMAP
665
- coords.y*=-1.0;
666
- #endif
667
- return coords;}
668
- fn computeCubicLocalCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f,reflectionSize: vec3f,reflectionPosition: vec3f)->vec3f
669
- {var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=(reflectionMatrix* vec4f(coords,0)).xyz;
670
- #ifdef INVERTCUBICMAP
671
- coords.y*=-1.0;
672
- #endif
673
- return coords;}
674
- fn computeProjectionCoords(worldPos: vec4f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
675
- {return (reflectionMatrix*(view*worldPos)).xyz;}
676
- fn computeSkyBoxCoords(positionW: vec3f,reflectionMatrix: mat4x4f)->vec3f
677
- {return (reflectionMatrix* vec4f(positionW,1.)).xyz;}
678
- #ifdef REFLECTION
679
- fn computeReflectionCoords(worldPos: vec4f,worldNormal: vec3f)->vec3f
680
- {
681
- #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
682
- var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
683
- #endif
684
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
685
- var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
686
- #endif
687
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR
688
- return computeEquirectangularCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
689
- #endif
690
- #ifdef REFLECTIONMAP_SPHERICAL
691
- return computeSphericalCoords(worldPos,worldNormal,scene.view,uniforms.reflectionMatrix);
692
- #endif
693
- #ifdef REFLECTIONMAP_PLANAR
694
- return computePlanarCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
695
- #endif
696
- #ifdef REFLECTIONMAP_CUBIC
697
- #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
698
- return computeCubicLocalCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix,uniforms.vReflectionSize,uniforms.vReflectionPosition);
699
- #else
700
- return computeCubicCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
701
- #endif
702
- #endif
703
- #ifdef REFLECTIONMAP_PROJECTION
704
- return computeProjectionCoords(worldPos,scene.view,uniforms.reflectionMatrix);
705
- #endif
706
- #ifndef REFLECTIONMAP_CUBIC
707
- #ifdef REFLECTIONMAP_SKYBOX
708
- return computeSkyBoxCoords(fragmentInputs.vPositionUVW,uniforms.reflectionMatrix);
709
- #endif
710
- #endif
711
- #ifdef REFLECTIONMAP_EXPLICIT
712
- return vec3f(0,0,0);
713
- #endif
714
- }
715
- #endif
716
- `;
717
- // Sideeffect
718
- ShaderStore.IncludesShadersStoreWGSL[name$8] = shader$8;
719
-
720
- // Do not edit.
721
- const name$7 = "decalFragment";
722
- const shader$7 = `#ifdef DECAL
723
- var decalTempColor=decalColor.rgb;var decalTempAlpha=decalColor.a;
724
- #ifdef GAMMADECAL
725
- decalTempColor=toLinearSpaceVec3(decalColor.rgb);
726
- #endif
727
- #ifdef DECAL_SMOOTHALPHA
728
- decalTempAlpha=decalColor.a*decalColor.a;
729
- #endif
730
- surfaceAlbedo=mix(surfaceAlbedo.rgb,decalTempColor,decalTempAlpha);
731
- #endif
732
- `;
733
- // Sideeffect
734
- ShaderStore.IncludesShadersStoreWGSL[name$7] = shader$7;
735
-
736
- // Do not edit.
737
- const name$6 = "clipPlaneFragment";
738
- const shader$6 = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
739
- if (false) {}
740
- #endif
741
- #ifdef CLIPPLANE
742
- else if (fragmentInputs.fClipDistance>0.0)
743
- {discard;}
744
- #endif
745
- #ifdef CLIPPLANE2
746
- else if (fragmentInputs.fClipDistance2>0.0)
747
- {discard;}
748
- #endif
749
- #ifdef CLIPPLANE3
750
- else if (fragmentInputs.fClipDistance3>0.0)
751
- {discard;}
752
- #endif
753
- #ifdef CLIPPLANE4
754
- else if (fragmentInputs.fClipDistance4>0.0)
755
- {discard;}
756
- #endif
757
- #ifdef CLIPPLANE5
758
- else if (fragmentInputs.fClipDistance5>0.0)
759
- {discard;}
760
- #endif
761
- #ifdef CLIPPLANE6
762
- else if (fragmentInputs.fClipDistance6>0.0)
763
- {discard;}
764
- #endif
765
- `;
766
- // Sideeffect
767
- ShaderStore.IncludesShadersStoreWGSL[name$6] = shader$6;
768
-
769
- // Do not edit.
770
- const name$5 = "bumpFragment";
771
- const shader$5 = `var uvOffset: vec2f= vec2f(0.0,0.0);
772
- #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
773
- #ifdef NORMALXYSCALE
774
- var normalScale: f32=1.0;
775
- #elif defined(BUMP)
776
- var normalScale: f32=uniforms.vBumpInfos.y;
777
- #else
778
- var normalScale: f32=1.0;
779
- #endif
780
- #if defined(TANGENT) && defined(NORMAL)
781
- var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
782
- #elif defined(BUMP)
783
- var TBNUV: vec2f=select(-fragmentInputs.vBumpUV,fragmentInputs.vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
784
- #else
785
- var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
786
- #endif
787
- #elif defined(ANISOTROPIC)
788
- #if defined(TANGENT) && defined(NORMAL)
789
- var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
790
- #else
791
- var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
792
- #endif
793
- #endif
794
- #ifdef PARALLAX
795
- var invTBN: mat3x3f=transposeMat3(TBN);
796
- #ifdef PARALLAXOCCLUSION
797
- uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,fragmentInputs.vBumpUV,uniforms.vBumpInfos.z);
798
- #else
799
- uvOffset=parallaxOffset(invTBN*viewDirectionW,uniforms.vBumpInfos.z);
800
- #endif
801
- #endif
802
- #ifdef DETAIL
803
- var detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);
804
- #endif
805
- #ifdef BUMP
806
- #ifdef OBJECTSPACE_NORMALMAP
807
- #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
808
- normalW=normalize(textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);
809
- #elif !defined(DETAIL)
810
- normalW=perturbNormal(TBN,textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz,uniforms.vBumpInfos.y);
811
- #else
812
- var bumpNormal: vec3f=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz*2.0-1.0;
813
- #if DETAIL_NORMALBLENDMETHOD==0
814
- detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
815
- #elif DETAIL_NORMALBLENDMETHOD==1
816
- detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);bumpNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
817
- #endif
818
- normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vBumpInfos.y);
819
- #endif
820
- #elif defined(DETAIL)
821
- detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
822
- #endif
823
- `;
824
- // Sideeffect
825
- ShaderStore.IncludesShadersStoreWGSL[name$5] = shader$5;
826
-
827
- // Do not edit.
828
- const name$4 = "depthPrePass";
829
- const shader$4 = `#ifdef DEPTHPREPASS
830
- fragmentOutputs.color= vec4f(0.,0.,0.,1.0);return fragmentOutputs;
831
- #endif
832
- `;
833
- // Sideeffect
834
- ShaderStore.IncludesShadersStoreWGSL[name$4] = shader$4;
835
-
836
- // Do not edit.
837
- const name$3 = "lightFragment";
838
- const shader$3 = `#ifdef LIGHT{X}
839
- #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
840
- #else
841
- var diffuse{X}: vec4f=light{X}.vLightDiffuse;
842
- #define CUSTOM_LIGHT{X}_COLOR
843
- #ifdef PBR
844
- #ifdef SPOTLIGHT{X}
845
- preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,input.vPositionW);
846
- #elif defined(POINTLIGHT{X})
847
- preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,input.vPositionW);
848
- #elif defined(HEMILIGHT{X})
849
- preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
850
- #elif defined(DIRLIGHT{X})
851
- preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
852
- #endif
853
- preInfo.NdotV=NdotV;
854
- #ifdef SPOTLIGHT{X}
855
- #ifdef LIGHT_FALLOFF_GLTF{X}
856
- preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
857
- #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
858
- preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
859
- #elif defined(LIGHT_FALLOFF_STANDARD{X})
860
- preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
861
- #else
862
- preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
863
- #endif
864
- #elif defined(POINTLIGHT{X})
865
- #ifdef LIGHT_FALLOFF_GLTF{X}
866
- preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
867
- #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
868
- preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
869
- #elif defined(LIGHT_FALLOFF_STANDARD{X})
870
- preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
871
- #else
872
- preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
873
- #endif
874
- #else
875
- preInfo.attenuation=1.0;
876
- #endif
877
- #ifdef HEMILIGHT{X}
878
- preInfo.roughness=roughness;
879
- #else
880
- preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
881
- #endif
882
- #ifdef IRIDESCENCE
883
- preInfo.iridescenceIntensity=iridescenceIntensity;
884
- #endif
885
- #ifdef HEMILIGHT{X}
886
- info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
887
- #elif defined(SS_TRANSLUCENCY)
888
- info.diffuse=computeDiffuseAndTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
889
- #else
890
- info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
891
- #endif
892
- #ifdef SPECULARTERM
893
- #ifdef ANISOTROPIC
894
- info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
895
- #else
896
- info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
897
- #endif
898
- #endif
899
- #ifdef SHEEN
900
- #ifdef SHEEN_LINKWITHALBEDO
901
- preInfo.roughness=sheenOut.sheenIntensity;
902
- #else
903
- #ifdef HEMILIGHT{X}
904
- preInfo.roughness=sheenOut.sheenRoughness;
905
- #else
906
- preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
907
- #endif
908
- #endif
909
- info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
910
- #endif
911
- #ifdef CLEARCOAT
912
- #ifdef HEMILIGHT{X}
913
- preInfo.roughness=clearcoatOut.clearCoatRoughness;
914
- #else
915
- preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
916
- #endif
917
- info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
918
- #ifdef CLEARCOAT_TINT
919
- absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
920
- #ifdef SPECULARTERM
921
- info.specular*=absorption;
922
- #endif
923
- #endif
924
- info.diffuse*=info.clearCoat.w;
925
- #ifdef SPECULARTERM
926
- info.specular*=info.clearCoat.w;
927
- #endif
928
- #ifdef SHEEN
929
- info.sheen*=info.clearCoat.w;
930
- #endif
931
- #endif
932
- #else
933
- #ifdef SPOTLIGHT{X}
934
- info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
935
- #elif defined(HEMILIGHT{X})
936
- info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
937
- #elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
938
- info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
939
- #endif
940
- #endif
941
- #ifdef PROJECTEDLIGHTTEXTURE{X}
942
- info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},input.vPositionW);
943
- #endif
944
- #endif
945
- #ifdef SHADOW{X}
946
- #ifdef SHADOWCSMDEBUG{X}
947
- var shadowDebug{X}: vec3f;
948
- #endif
949
- #ifdef SHADOWCSM{X}
950
- #ifdef SHADOWCSMUSESHADOWMAXZ{X}
951
- var index{X}: i32=-1;
952
- #else
953
- var index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;
954
- #endif
955
- var diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i<SHADOWCSMNUM_CASCADES{X}; i++)
956
- {
957
- #ifdef SHADOWCSM_RIGHTHANDED{X}
958
- diff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;
959
- #else
960
- diff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;
961
- #endif
962
- if (diff{X}>=0.) {index{X}=i;break;}}
963
- #ifdef SHADOWCSMUSESHADOWMAXZ{X}
964
- if (index{X}>=0)
965
- #endif
966
- {
967
- #if defined(SHADOWPCF{X})
968
- #if defined(SHADOWLOWQUALITY{X})
969
- shadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
970
- #elif defined(SHADOWMEDIUMQUALITY{X})
971
- shadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
972
- #else
973
- shadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
974
- #endif
975
- #elif defined(SHADOWPCSS{X})
976
- #if defined(SHADOWLOWQUALITY{X})
977
- shadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
978
- #elif defined(SHADOWMEDIUMQUALITY{X})
979
- shadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
980
- #else
981
- shadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
982
- #endif
983
- #else
984
- shadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
985
- #endif
986
- #ifdef SHADOWCSMDEBUG{X}
987
- shadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];
988
- #endif
989
- #ifndef SHADOWCSMNOBLEND{X}
990
- var frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
991
- {index{X}+=1;var nextShadow: f32=0.;
992
- #if defined(SHADOWPCF{X})
993
- #if defined(SHADOWLOWQUALITY{X})
994
- nextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
995
- #elif defined(SHADOWMEDIUMQUALITY{X})
996
- nextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
997
- #else
998
- nextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
999
- #endif
1000
- #elif defined(SHADOWPCSS{X})
1001
- #if defined(SHADOWLOWQUALITY{X})
1002
- nextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
1003
- #elif defined(SHADOWMEDIUMQUALITY{X})
1004
- nextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
1005
- #else
1006
- nextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
1007
- #endif
1008
- #else
1009
- nextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1010
- #endif
1011
- shadow=mix(nextShadow,shadow,diffRatio);
1012
- #ifdef SHADOWCSMDEBUG{X}
1013
- shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
1014
- #endif
1015
- }
1016
- #endif
1017
- }
1018
- #elif defined(SHADOWCLOSEESM{X})
1019
- #if defined(SHADOWCUBE{X})
1020
- shadow=computeShadowWithCloseESMCube(input.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
1021
- #else
1022
- shadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
1023
- #endif
1024
- #elif defined(SHADOWESM{X})
1025
- #if defined(SHADOWCUBE{X})
1026
- shadow=computeShadowWithESMCube(input.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
1027
- #else
1028
- shadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
1029
- #endif
1030
- #elif defined(SHADOWPOISSON{X})
1031
- #if defined(SHADOWCUBE{X})
1032
- shadow=computeShadowWithPoissonSamplingCube(input.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
1033
- #else
1034
- shadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1035
- #endif
1036
- #elif defined(SHADOWPCF{X})
1037
- #if defined(SHADOWLOWQUALITY{X})
1038
- shadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1039
- #elif defined(SHADOWMEDIUMQUALITY{X})
1040
- shadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1041
- #else
1042
- shadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1043
- #endif
1044
- #elif defined(SHADOWPCSS{X})
1045
- #if defined(SHADOWLOWQUALITY{X})
1046
- shadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1047
- #elif defined(SHADOWMEDIUMQUALITY{X})
1048
- shadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1049
- #else
1050
- shadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1051
- #endif
1052
- #else
1053
- #if defined(SHADOWCUBE{X})
1054
- shadow=computeShadowCube(input.vPositionW,light{X}.vLightData.xyz,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);
1055
- #else
1056
- shadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1057
- #endif
1058
- #endif
1059
- #ifdef SHADOWONLY
1060
- #ifndef SHADOWINUSE
1061
- #define SHADOWINUSE
1062
- #endif
1063
- globalShadow+=shadow;shadowLightCount+=1.0;
1064
- #endif
1065
- #else
1066
- shadow=1.;
1067
- #endif
1068
- aggShadow+=shadow;numLights+=1.0;
1069
- #ifndef SHADOWONLY
1070
- #ifdef CUSTOMUSERLIGHTING
1071
- diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
1072
- #ifdef SPECULARTERM
1073
- specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
1074
- #endif
1075
- #elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
1076
- diffuseBase+=lightmapColor.rgb*shadow;
1077
- #ifdef SPECULARTERM
1078
- #ifndef LIGHTMAPNOSPECULAR{X}
1079
- specularBase+=info.specular*shadow*lightmapColor.rgb;
1080
- #endif
1081
- #endif
1082
- #ifdef CLEARCOAT
1083
- #ifndef LIGHTMAPNOSPECULAR{X}
1084
- clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
1085
- #endif
1086
- #endif
1087
- #ifdef SHEEN
1088
- #ifndef LIGHTMAPNOSPECULAR{X}
1089
- sheenBase+=info.sheen.rgb*shadow;
1090
- #endif
1091
- #endif
1092
- #else
1093
- #ifdef SHADOWCSMDEBUG{X}
1094
- diffuseBase+=info.diffuse*shadowDebug{X};
1095
- #else
1096
- diffuseBase+=info.diffuse*shadow;
1097
- #endif
1098
- #ifdef SPECULARTERM
1099
- specularBase+=info.specular*shadow;
1100
- #endif
1101
- #ifdef CLEARCOAT
1102
- clearCoatBase+=info.clearCoat.rgb*shadow;
1103
- #endif
1104
- #ifdef SHEEN
1105
- sheenBase+=info.sheen.rgb*shadow;
1106
- #endif
1107
- #endif
1108
- #endif
1109
- #endif
1110
- `;
1111
- // Sideeffect
1112
- ShaderStore.IncludesShadersStoreWGSL[name$3] = shader$3;
1113
-
1114
- // Do not edit.
1115
- const name$2 = "logDepthFragment";
1116
- const shader$2 = `#ifdef LOGARITHMICDEPTH
1117
- fragmentOutputs.fragDepth=log2(fragmentInputs.vFragmentDepth)*uniforms.logarithmicDepthConstant*0.5;
1118
- #endif
1119
- `;
1120
- // Sideeffect
1121
- ShaderStore.IncludesShadersStoreWGSL[name$2] = shader$2;
1122
-
1123
- // Do not edit.
1124
- const name$1 = "fogFragment";
1125
- const shader$1 = `#ifdef FOG
1126
- var fog: f32=CalcFogFactor();
1127
- #ifdef PBR
1128
- fog=toLinearSpace(fog);
1129
- #endif
1130
- color= vec4f(mix(uniforms.vFogColor,color.rgb,fog),color.a);
1131
- #endif
1132
- `;
1133
- // Sideeffect
1134
- ShaderStore.IncludesShadersStoreWGSL[name$1] = shader$1;
1135
-
1136
- // Do not edit.
1137
- const name = "oitFragment";
1138
- const shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
1139
- var fragDepth: f32=fragmentInputs.position.z;
1140
- #ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
1141
- var halfFloat: i32=packHalf2x16( vec2f(fragDepth));var full: vec2f=unpackHalf2x16(halfFloat);fragDepth=full.x;
1142
- #endif
1143
- var fragCoord: vec2i=vec2i(fragmentInputs.position.xy);var lastDepth: vec2f=textureLoad(oitDepthSampler,fragCoord,0).rg;var lastFrontColor: vec4f=textureLoad(oitFrontColorSampler,fragCoord,0);fragmentOutputs.depth=vec2f(-MAX_DEPTH);fragmentOutputs.frontColor=lastFrontColor;fragmentOutputs.backColor= vec4f(0.0);
1144
- #ifdef USE_REVERSE_DEPTHBUFFER
1145
- var furthestDepth: f32=-lastDepth.x;var nearestDepth: f32=lastDepth.y;
1146
- #else
1147
- var nearestDepth: f32=-lastDepth.x;var furthestDepth: f32=lastDepth.y;
1148
- #endif
1149
- var alphaMultiplier: f32=1.0-lastFrontColor.a;
1150
- #ifdef USE_REVERSE_DEPTHBUFFER
1151
- if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
1152
- #else
1153
- if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
1154
- #endif
1155
- return fragmentOutputs;}
1156
- #ifdef USE_REVERSE_DEPTHBUFFER
1157
- if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
1158
- #else
1159
- if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
1160
- #endif
1161
- fragmentOutputs.depth=vec2f(-fragDepth,fragDepth);return fragmentOutputs;}
1162
- #endif
1163
- `;
1164
- // Sideeffect
1165
- ShaderStore.IncludesShadersStoreWGSL[name] = shader;
1166
- //# sourceMappingURL=oitFragment-CIelz994.esm.js.map