@babylonjs/viewer 7.27.2 → 7.27.3-alpha

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 (587) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_image_based-Ygf4Ve6D.esm.js +172 -0
  7. package/dist/chunks/EXT_lights_image_based-Ygf4Ve6D.esm.js.map +1 -0
  8. package/dist/chunks/EXT_lights_image_based-aZgj5lRS.esm.min.js +2 -0
  9. package/dist/chunks/EXT_lights_image_based-aZgj5lRS.esm.min.js.map +1 -0
  10. package/dist/chunks/EXT_mesh_gpu_instancing-CLnpX1XX.esm.min.js +2 -0
  11. package/dist/chunks/EXT_mesh_gpu_instancing-CLnpX1XX.esm.min.js.map +1 -0
  12. package/dist/chunks/EXT_mesh_gpu_instancing-DNNLBNJD.esm.js +86 -0
  13. package/dist/chunks/EXT_mesh_gpu_instancing-DNNLBNJD.esm.js.map +1 -0
  14. package/dist/chunks/EXT_meshopt_compression-CDgY0yqt.esm.js +134 -0
  15. package/dist/chunks/EXT_meshopt_compression-CDgY0yqt.esm.js.map +1 -0
  16. package/dist/chunks/EXT_meshopt_compression-D7fFCYZZ.esm.min.js +2 -0
  17. package/dist/chunks/EXT_meshopt_compression-D7fFCYZZ.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_texture_avif-CKViN1K5.esm.js +44 -0
  19. package/dist/chunks/EXT_texture_avif-CKViN1K5.esm.js.map +1 -0
  20. package/dist/chunks/EXT_texture_avif-DixidFAT.esm.min.js +2 -0
  21. package/dist/chunks/EXT_texture_avif-DixidFAT.esm.min.js.map +1 -0
  22. package/dist/chunks/EXT_texture_webp-8TIjfk7F.esm.min.js +2 -0
  23. package/dist/chunks/EXT_texture_webp-8TIjfk7F.esm.min.js.map +1 -0
  24. package/dist/chunks/EXT_texture_webp-WHKcm2rJ.esm.js +43 -0
  25. package/dist/chunks/EXT_texture_webp-WHKcm2rJ.esm.js.map +1 -0
  26. package/dist/chunks/ExtrasAsMetadata-qz55vCnu.esm.min.js +2 -0
  27. package/dist/chunks/ExtrasAsMetadata-qz55vCnu.esm.min.js.map +1 -0
  28. package/dist/chunks/ExtrasAsMetadata-uNoOr-f7.esm.js +64 -0
  29. package/dist/chunks/ExtrasAsMetadata-uNoOr-f7.esm.js.map +1 -0
  30. package/dist/chunks/KHR_animation_pointer-Dzof_6Sa.esm.min.js +2 -0
  31. package/dist/chunks/KHR_animation_pointer-Dzof_6Sa.esm.min.js.map +1 -0
  32. package/dist/chunks/KHR_animation_pointer-lcvkJ14B.esm.js +343 -0
  33. package/dist/chunks/KHR_animation_pointer-lcvkJ14B.esm.js.map +1 -0
  34. package/dist/chunks/KHR_draco_mesh_compression-DPuBeXqI.esm.min.js +2 -0
  35. package/dist/chunks/KHR_draco_mesh_compression-DPuBeXqI.esm.min.js.map +1 -0
  36. package/dist/chunks/KHR_draco_mesh_compression-DfZ7T94l.esm.js +610 -0
  37. package/dist/chunks/KHR_draco_mesh_compression-DfZ7T94l.esm.js.map +1 -0
  38. package/dist/chunks/KHR_interactivity-CGWEHMj7.esm.js +4033 -0
  39. package/dist/chunks/KHR_interactivity-CGWEHMj7.esm.js.map +1 -0
  40. package/dist/chunks/KHR_interactivity-zFBtjDpF.esm.min.js +2 -0
  41. package/dist/chunks/KHR_interactivity-zFBtjDpF.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_lights_punctual-D9a7fWsv.esm.min.js +2 -0
  43. package/dist/chunks/KHR_lights_punctual-D9a7fWsv.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_lights_punctual-DcNThlQv.esm.js +1253 -0
  45. package/dist/chunks/KHR_lights_punctual-DcNThlQv.esm.js.map +1 -0
  46. package/dist/chunks/KHR_materials_anisotropy-CYEooloh.esm.js +64 -0
  47. package/dist/chunks/KHR_materials_anisotropy-CYEooloh.esm.js.map +1 -0
  48. package/dist/chunks/KHR_materials_anisotropy-CntgB2dg.esm.min.js +2 -0
  49. package/dist/chunks/KHR_materials_anisotropy-CntgB2dg.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_clearcoat-Dj4cp2I3.esm.js +96 -0
  51. package/dist/chunks/KHR_materials_clearcoat-Dj4cp2I3.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_clearcoat-pjZQfpxT.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_clearcoat-pjZQfpxT.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_diffuse_transmission-CdquLCQ1.esm.js +97 -0
  55. package/dist/chunks/KHR_materials_diffuse_transmission-CdquLCQ1.esm.js.map +1 -0
  56. package/dist/chunks/KHR_materials_diffuse_transmission-Cw4pzSbK.esm.min.js +2 -0
  57. package/dist/chunks/KHR_materials_diffuse_transmission-Cw4pzSbK.esm.min.js.map +1 -0
  58. package/dist/chunks/KHR_materials_dispersion-B-lnOwLh.esm.js +62 -0
  59. package/dist/chunks/KHR_materials_dispersion-B-lnOwLh.esm.js.map +1 -0
  60. package/dist/chunks/KHR_materials_dispersion-CTCYvLde.esm.min.js +2 -0
  61. package/dist/chunks/KHR_materials_dispersion-CTCYvLde.esm.min.js.map +1 -0
  62. package/dist/chunks/KHR_materials_emissive_strength-CctNsiUs.esm.min.js +2 -0
  63. package/dist/chunks/KHR_materials_emissive_strength-CctNsiUs.esm.min.js.map +1 -0
  64. package/dist/chunks/KHR_materials_emissive_strength-ysB9iNJe.esm.js +55 -0
  65. package/dist/chunks/KHR_materials_emissive_strength-ysB9iNJe.esm.js.map +1 -0
  66. package/dist/chunks/KHR_materials_ior-BkR1ysuW.esm.min.js +2 -0
  67. package/dist/chunks/KHR_materials_ior-BkR1ysuW.esm.min.js.map +1 -0
  68. package/dist/chunks/KHR_materials_ior-Doqepxmq.esm.js +64 -0
  69. package/dist/chunks/KHR_materials_ior-Doqepxmq.esm.js.map +1 -0
  70. package/dist/chunks/KHR_materials_iridescence-CHpYLMd0.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_iridescence-CHpYLMd0.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_iridescence-pugw8izD.esm.js +72 -0
  73. package/dist/chunks/KHR_materials_iridescence-pugw8izD.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9Vxmtog7.esm.js +81 -0
  75. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9Vxmtog7.esm.js.map +1 -0
  76. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-ClzKCEUH.esm.min.js +2 -0
  77. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-ClzKCEUH.esm.min.js.map +1 -0
  78. package/dist/chunks/KHR_materials_sheen-Cb2GejUe.esm.js +85 -0
  79. package/dist/chunks/KHR_materials_sheen-Cb2GejUe.esm.js.map +1 -0
  80. package/dist/chunks/KHR_materials_sheen-ozFjYHiJ.esm.min.js +2 -0
  81. package/dist/chunks/KHR_materials_sheen-ozFjYHiJ.esm.min.js.map +1 -0
  82. package/dist/chunks/KHR_materials_specular-B3JFPowx.esm.js +75 -0
  83. package/dist/chunks/KHR_materials_specular-B3JFPowx.esm.js.map +1 -0
  84. package/dist/chunks/KHR_materials_specular-CWeE9DzG.esm.min.js +2 -0
  85. package/dist/chunks/KHR_materials_specular-CWeE9DzG.esm.min.js.map +1 -0
  86. package/dist/chunks/KHR_materials_transmission-BfzyObgX.esm.js +307 -0
  87. package/dist/chunks/KHR_materials_transmission-BfzyObgX.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_transmission-Ye6uaejW.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_transmission-Ye6uaejW.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_unlit-B5Is72ED.esm.min.js +2 -0
  91. package/dist/chunks/KHR_materials_unlit-B5Is72ED.esm.min.js.map +1 -0
  92. package/dist/chunks/KHR_materials_unlit-BC0vEvbj.esm.js +74 -0
  93. package/dist/chunks/KHR_materials_unlit-BC0vEvbj.esm.js.map +1 -0
  94. package/dist/chunks/KHR_materials_variants-DGE8rFOL.esm.js +238 -0
  95. package/dist/chunks/KHR_materials_variants-DGE8rFOL.esm.js.map +1 -0
  96. package/dist/chunks/KHR_materials_variants-DTf-LiNj.esm.min.js +2 -0
  97. package/dist/chunks/KHR_materials_variants-DTf-LiNj.esm.min.js.map +1 -0
  98. package/dist/chunks/KHR_materials_volume-BS8cOCRE.esm.js +87 -0
  99. package/dist/chunks/KHR_materials_volume-BS8cOCRE.esm.js.map +1 -0
  100. package/dist/chunks/KHR_materials_volume-CYuL15du.esm.min.js +2 -0
  101. package/dist/chunks/KHR_materials_volume-CYuL15du.esm.min.js.map +1 -0
  102. package/dist/chunks/KHR_mesh_quantization-BrwUFNds.esm.js +26 -0
  103. package/dist/chunks/KHR_mesh_quantization-BrwUFNds.esm.js.map +1 -0
  104. package/dist/chunks/KHR_mesh_quantization-By2LdaRV.esm.min.js +2 -0
  105. package/dist/chunks/KHR_mesh_quantization-By2LdaRV.esm.min.js.map +1 -0
  106. package/dist/chunks/KHR_texture_basisu-Bk28e0ni.esm.min.js +2 -0
  107. package/dist/chunks/KHR_texture_basisu-Bk28e0ni.esm.min.js.map +1 -0
  108. package/dist/chunks/KHR_texture_basisu-CGRgjN8r.esm.js +43 -0
  109. package/dist/chunks/KHR_texture_basisu-CGRgjN8r.esm.js.map +1 -0
  110. package/dist/chunks/KHR_texture_transform-DSaILA4W.esm.js +63 -0
  111. package/dist/chunks/KHR_texture_transform-DSaILA4W.esm.js.map +1 -0
  112. package/dist/chunks/KHR_texture_transform-Dasq4SAC.esm.min.js +2 -0
  113. package/dist/chunks/KHR_texture_transform-Dasq4SAC.esm.min.js.map +1 -0
  114. package/dist/chunks/KHR_xmp_json_ld-A2CnOVQ_.esm.min.js +2 -0
  115. package/dist/chunks/KHR_xmp_json_ld-A2CnOVQ_.esm.min.js.map +1 -0
  116. package/dist/chunks/KHR_xmp_json_ld-DZOs1Tn7.esm.js +51 -0
  117. package/dist/chunks/KHR_xmp_json_ld-DZOs1Tn7.esm.js.map +1 -0
  118. package/dist/chunks/MSFT_audio_emitter-Cl_mYa_q.esm.min.js +2 -0
  119. package/dist/chunks/MSFT_audio_emitter-Cl_mYa_q.esm.min.js.map +1 -0
  120. package/dist/chunks/MSFT_audio_emitter-D8OS1PWo.esm.js +2207 -0
  121. package/dist/chunks/MSFT_audio_emitter-D8OS1PWo.esm.js.map +1 -0
  122. package/dist/chunks/MSFT_lod-BaXwpvgc.esm.min.js +2 -0
  123. package/dist/chunks/MSFT_lod-BaXwpvgc.esm.min.js.map +1 -0
  124. package/dist/chunks/MSFT_lod-lJZg3bm6.esm.js +337 -0
  125. package/dist/chunks/MSFT_lod-lJZg3bm6.esm.js.map +1 -0
  126. package/dist/chunks/MSFT_minecraftMesh-DPsFg0KM.esm.min.js +2 -0
  127. package/dist/chunks/MSFT_minecraftMesh-DPsFg0KM.esm.min.js.map +1 -0
  128. package/dist/chunks/MSFT_minecraftMesh-DvBs1Jwy.esm.js +46 -0
  129. package/dist/chunks/MSFT_minecraftMesh-DvBs1Jwy.esm.js.map +1 -0
  130. package/dist/chunks/MSFT_sRGBFactors-B9-KnAwj.esm.js +47 -0
  131. package/dist/chunks/MSFT_sRGBFactors-B9-KnAwj.esm.js.map +1 -0
  132. package/dist/chunks/MSFT_sRGBFactors-Db7ZXsPI.esm.min.js +2 -0
  133. package/dist/chunks/MSFT_sRGBFactors-Db7ZXsPI.esm.min.js.map +1 -0
  134. package/dist/chunks/animationGroup-B1oPqs33.esm.js +2479 -0
  135. package/dist/chunks/animationGroup-B1oPqs33.esm.js.map +1 -0
  136. package/dist/chunks/animationGroup-DFHOhO5V.esm.min.js +2 -0
  137. package/dist/chunks/animationGroup-DFHOhO5V.esm.min.js.map +1 -0
  138. package/dist/chunks/assetContainer-Dg1QbxRd.esm.min.js +2 -0
  139. package/dist/chunks/assetContainer-Dg1QbxRd.esm.min.js.map +1 -0
  140. package/dist/chunks/assetContainer-MxMg-sp3.esm.js +1720 -0
  141. package/dist/chunks/assetContainer-MxMg-sp3.esm.js.map +1 -0
  142. package/dist/chunks/audioEngine-DuOtCD-T.esm.js +305 -0
  143. package/dist/chunks/audioEngine-DuOtCD-T.esm.js.map +1 -0
  144. package/dist/chunks/audioEngine-PZkzKVve.esm.min.js +2 -0
  145. package/dist/chunks/audioEngine-PZkzKVve.esm.min.js.map +1 -0
  146. package/dist/chunks/bakedVertexAnimation-BKixdc-O.esm.js +119 -0
  147. package/dist/chunks/bakedVertexAnimation-BKixdc-O.esm.js.map +1 -0
  148. package/dist/chunks/bakedVertexAnimation-CVyTi-o9.esm.min.js +2 -0
  149. package/dist/chunks/bakedVertexAnimation-CVyTi-o9.esm.min.js.map +1 -0
  150. package/dist/chunks/basisTextureLoader-BAYJCOf3.esm.min.js +2 -0
  151. package/dist/chunks/basisTextureLoader-BAYJCOf3.esm.min.js.map +1 -0
  152. package/dist/chunks/basisTextureLoader-Dv6fpeks.esm.js +600 -0
  153. package/dist/chunks/basisTextureLoader-Dv6fpeks.esm.js.map +1 -0
  154. package/dist/chunks/dds-A809lttS.esm.js +540 -0
  155. package/dist/chunks/dds-A809lttS.esm.js.map +1 -0
  156. package/dist/chunks/dds-C1Le3FXM.esm.min.js +2 -0
  157. package/dist/chunks/dds-C1Le3FXM.esm.min.js.map +1 -0
  158. package/dist/chunks/ddsTextureLoader-BHWp4kKo.esm.js +88 -0
  159. package/dist/chunks/ddsTextureLoader-BHWp4kKo.esm.js.map +1 -0
  160. package/dist/chunks/ddsTextureLoader-DBix2sUk.esm.min.js +2 -0
  161. package/dist/chunks/ddsTextureLoader-DBix2sUk.esm.min.js.map +1 -0
  162. package/dist/chunks/decalFragment-B244ARUe.esm.min.js +2 -0
  163. package/dist/chunks/decalFragment-B244ARUe.esm.min.js.map +1 -0
  164. package/dist/chunks/decalFragment-DrWcKj4G.esm.js +18 -0
  165. package/dist/chunks/decalFragment-DrWcKj4G.esm.js.map +1 -0
  166. package/dist/chunks/default.fragment-BBWl_Nk9.esm.min.js +2 -0
  167. package/dist/chunks/default.fragment-BBWl_Nk9.esm.min.js.map +1 -0
  168. package/dist/chunks/default.fragment-C2oy9mM3.esm.min.js +2 -0
  169. package/dist/chunks/default.fragment-C2oy9mM3.esm.min.js.map +1 -0
  170. package/dist/chunks/default.fragment-Dm7K4II5.esm.js +449 -0
  171. package/dist/chunks/default.fragment-Dm7K4II5.esm.js.map +1 -0
  172. package/dist/chunks/default.fragment-oGTMg7mF.esm.js +515 -0
  173. package/dist/chunks/default.fragment-oGTMg7mF.esm.js.map +1 -0
  174. package/dist/chunks/default.vertex-BBvbssIy.esm.js +180 -0
  175. package/dist/chunks/default.vertex-BBvbssIy.esm.js.map +1 -0
  176. package/dist/chunks/default.vertex-EBX2mmsC.esm.min.js +2 -0
  177. package/dist/chunks/default.vertex-EBX2mmsC.esm.min.js.map +1 -0
  178. package/dist/chunks/default.vertex-M90-09le.esm.min.js +2 -0
  179. package/dist/chunks/default.vertex-M90-09le.esm.min.js.map +1 -0
  180. package/dist/chunks/default.vertex-fETlDBid.esm.js +199 -0
  181. package/dist/chunks/default.vertex-fETlDBid.esm.js.map +1 -0
  182. package/dist/chunks/defaultUboDeclaration-BgptXziZ.esm.js +13 -0
  183. package/dist/chunks/defaultUboDeclaration-BgptXziZ.esm.js.map +1 -0
  184. package/dist/chunks/defaultUboDeclaration-C9z6HhL0.esm.js +15 -0
  185. package/dist/chunks/defaultUboDeclaration-C9z6HhL0.esm.js.map +1 -0
  186. package/dist/chunks/defaultUboDeclaration-CKjaCHTr.esm.min.js +2 -0
  187. package/dist/chunks/defaultUboDeclaration-CKjaCHTr.esm.min.js.map +1 -0
  188. package/dist/chunks/defaultUboDeclaration-DWqfSK6k.esm.min.js +2 -0
  189. package/dist/chunks/defaultUboDeclaration-DWqfSK6k.esm.min.js.map +1 -0
  190. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  191. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  192. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  193. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  194. package/dist/chunks/dumpTools-BlDyPX53.esm.js +401 -0
  195. package/dist/chunks/dumpTools-BlDyPX53.esm.js.map +1 -0
  196. package/dist/chunks/dumpTools-CQV4uT1J.esm.min.js +2 -0
  197. package/dist/chunks/dumpTools-CQV4uT1J.esm.min.js.map +1 -0
  198. package/dist/chunks/engine--aYhwp2N.esm.min.js +2 -0
  199. package/dist/chunks/engine--aYhwp2N.esm.min.js.map +1 -0
  200. package/dist/chunks/engine-LGpBpXDb.esm.js +2174 -0
  201. package/dist/chunks/engine-LGpBpXDb.esm.js.map +1 -0
  202. package/dist/chunks/engine.common-BGhVKqsM.esm.js +1088 -0
  203. package/dist/chunks/engine.common-BGhVKqsM.esm.js.map +1 -0
  204. package/dist/chunks/engine.common-DSJsp8kE.esm.min.js +2 -0
  205. package/dist/chunks/engine.common-DSJsp8kE.esm.min.js.map +1 -0
  206. package/dist/chunks/envTextureLoader-BWACBI7q.esm.js +65 -0
  207. package/dist/chunks/envTextureLoader-BWACBI7q.esm.js.map +1 -0
  208. package/dist/chunks/envTextureLoader-COieWhmh.esm.min.js +2 -0
  209. package/dist/chunks/envTextureLoader-COieWhmh.esm.min.js.map +1 -0
  210. package/dist/chunks/environmentTextureTools-B34IF0Wu.esm.js +382 -0
  211. package/dist/chunks/environmentTextureTools-B34IF0Wu.esm.js.map +1 -0
  212. package/dist/chunks/environmentTextureTools-CMNXRt-X.esm.min.js +2 -0
  213. package/dist/chunks/environmentTextureTools-CMNXRt-X.esm.min.js.map +1 -0
  214. package/dist/chunks/exrTextureLoader-NS4TiorD.esm.min.js +2 -0
  215. package/dist/chunks/exrTextureLoader-NS4TiorD.esm.min.js.map +1 -0
  216. package/dist/chunks/exrTextureLoader-SkKsm_kE.esm.js +1682 -0
  217. package/dist/chunks/exrTextureLoader-SkKsm_kE.esm.js.map +1 -0
  218. package/dist/chunks/fogFragment-LT8zYkLA.esm.min.js +2 -0
  219. package/dist/chunks/fogFragment-LT8zYkLA.esm.min.js.map +1 -0
  220. package/dist/chunks/fogFragment-U1Pc06dI.esm.js +102 -0
  221. package/dist/chunks/fogFragment-U1Pc06dI.esm.js.map +1 -0
  222. package/dist/chunks/fresnelFunction-8LQw3KF2.esm.min.js +2 -0
  223. package/dist/chunks/fresnelFunction-8LQw3KF2.esm.min.js.map +1 -0
  224. package/dist/chunks/fresnelFunction-t7n57Vdh.esm.js +12 -0
  225. package/dist/chunks/fresnelFunction-t7n57Vdh.esm.js.map +1 -0
  226. package/dist/chunks/glTFLoader-DbbHaBqn.esm.js +7563 -0
  227. package/dist/chunks/glTFLoader-DbbHaBqn.esm.js.map +1 -0
  228. package/dist/chunks/glTFLoader-DzS5evvi.esm.min.js +2 -0
  229. package/dist/chunks/glTFLoader-DzS5evvi.esm.min.js.map +1 -0
  230. package/dist/chunks/glTFLoaderAnimation-0Poh5xlZ.esm.min.js +2 -0
  231. package/dist/chunks/glTFLoaderAnimation-0Poh5xlZ.esm.min.js.map +1 -0
  232. package/dist/chunks/glTFLoaderAnimation-CSLbRDfZ.esm.js +77 -0
  233. package/dist/chunks/glTFLoaderAnimation-CSLbRDfZ.esm.js.map +1 -0
  234. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  235. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  236. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  237. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  238. package/dist/chunks/harmonicsFunctions-C2lm51MF.esm.min.js +2 -0
  239. package/dist/chunks/harmonicsFunctions-C2lm51MF.esm.min.js.map +1 -0
  240. package/dist/chunks/harmonicsFunctions-CVKERnoD.esm.js +34 -0
  241. package/dist/chunks/harmonicsFunctions-CVKERnoD.esm.js.map +1 -0
  242. package/dist/chunks/harmonicsFunctions-CeQbmg1x.esm.min.js +2 -0
  243. package/dist/chunks/harmonicsFunctions-CeQbmg1x.esm.min.js.map +1 -0
  244. package/dist/chunks/harmonicsFunctions-DUlyAl4T.esm.js +35 -0
  245. package/dist/chunks/harmonicsFunctions-DUlyAl4T.esm.js.map +1 -0
  246. package/dist/chunks/hdrTextureLoader-CG4Foz5m.esm.min.js +2 -0
  247. package/dist/chunks/hdrTextureLoader-CG4Foz5m.esm.min.js.map +1 -0
  248. package/dist/chunks/hdrTextureLoader-D39QMxFP.esm.js +252 -0
  249. package/dist/chunks/hdrTextureLoader-D39QMxFP.esm.js.map +1 -0
  250. package/dist/chunks/helperFunctions-0IKgjSdY.esm.min.js +2 -0
  251. package/dist/chunks/helperFunctions-0IKgjSdY.esm.min.js.map +1 -0
  252. package/dist/chunks/helperFunctions-BN9iVPlY.esm.min.js +2 -0
  253. package/dist/chunks/helperFunctions-BN9iVPlY.esm.min.js.map +1 -0
  254. package/dist/chunks/helperFunctions-BXQuFBdR.esm.js +108 -0
  255. package/dist/chunks/helperFunctions-BXQuFBdR.esm.js.map +1 -0
  256. package/dist/chunks/helperFunctions-D-M9OKG7.esm.js +80 -0
  257. package/dist/chunks/helperFunctions-D-M9OKG7.esm.js.map +1 -0
  258. package/dist/chunks/index-CmxfKF36.esm.js +71426 -0
  259. package/dist/chunks/index-CmxfKF36.esm.js.map +1 -0
  260. package/dist/chunks/index-D26y1EtY.esm.min.js +57 -0
  261. package/dist/chunks/index-D26y1EtY.esm.min.js.map +1 -0
  262. package/dist/chunks/ktxTextureLoader-BAvR2hyc.esm.min.js +2 -0
  263. package/dist/chunks/ktxTextureLoader-BAvR2hyc.esm.min.js.map +1 -0
  264. package/dist/chunks/ktxTextureLoader-Bfh49LMF.esm.js +814 -0
  265. package/dist/chunks/ktxTextureLoader-Bfh49LMF.esm.js.map +1 -0
  266. package/dist/chunks/logDepthDeclaration-D1bDUT11.esm.min.js +2 -0
  267. package/dist/chunks/logDepthDeclaration-D1bDUT11.esm.min.js.map +1 -0
  268. package/dist/chunks/logDepthDeclaration-DEuA-X0_.esm.js +20 -0
  269. package/dist/chunks/logDepthDeclaration-DEuA-X0_.esm.js.map +1 -0
  270. package/dist/chunks/logDepthDeclaration-Df7xMOV6.esm.js +35 -0
  271. package/dist/chunks/logDepthDeclaration-Df7xMOV6.esm.js.map +1 -0
  272. package/dist/chunks/logDepthDeclaration-hu2SIiR_.esm.min.js +2 -0
  273. package/dist/chunks/logDepthDeclaration-hu2SIiR_.esm.min.js.map +1 -0
  274. package/dist/chunks/logDepthVertex-B7IBqULl.esm.js +77 -0
  275. package/dist/chunks/logDepthVertex-B7IBqULl.esm.js.map +1 -0
  276. package/dist/chunks/logDepthVertex-C0wI9SMm.esm.js +488 -0
  277. package/dist/chunks/logDepthVertex-C0wI9SMm.esm.js.map +1 -0
  278. package/dist/chunks/logDepthVertex-CVD3Mf3L.esm.min.js +2 -0
  279. package/dist/chunks/logDepthVertex-CVD3Mf3L.esm.min.js.map +1 -0
  280. package/dist/chunks/logDepthVertex-DJB2NHRC.esm.min.js +2 -0
  281. package/dist/chunks/logDepthVertex-DJB2NHRC.esm.min.js.map +1 -0
  282. package/dist/chunks/mainUVVaryingDeclaration-CvKBnwI6.esm.min.js +2 -0
  283. package/dist/chunks/mainUVVaryingDeclaration-CvKBnwI6.esm.min.js.map +1 -0
  284. package/dist/chunks/mainUVVaryingDeclaration-DfbCqCAG.esm.js +11 -0
  285. package/dist/chunks/mainUVVaryingDeclaration-DfbCqCAG.esm.js.map +1 -0
  286. package/dist/chunks/meshUboDeclaration-CEddmeXN.esm.min.js +2 -0
  287. package/dist/chunks/meshUboDeclaration-CEddmeXN.esm.min.js.map +1 -0
  288. package/dist/chunks/meshUboDeclaration-CosMwf63.esm.js +24 -0
  289. package/dist/chunks/meshUboDeclaration-CosMwf63.esm.js.map +1 -0
  290. package/dist/chunks/objFileLoader-CFfBtBXK.esm.js +1338 -0
  291. package/dist/chunks/objFileLoader-CFfBtBXK.esm.js.map +1 -0
  292. package/dist/chunks/objFileLoader-CLLtmN75.esm.min.js +2 -0
  293. package/dist/chunks/objFileLoader-CLLtmN75.esm.min.js.map +1 -0
  294. package/dist/chunks/oitFragment-BPxzkgmy.esm.js +1150 -0
  295. package/dist/chunks/oitFragment-BPxzkgmy.esm.js.map +1 -0
  296. package/dist/chunks/oitFragment-CKyYKk_V.esm.js +1210 -0
  297. package/dist/chunks/oitFragment-CKyYKk_V.esm.js.map +1 -0
  298. package/dist/chunks/oitFragment-D__F_mwd.esm.min.js +2 -0
  299. package/dist/chunks/oitFragment-D__F_mwd.esm.min.js.map +1 -0
  300. package/dist/chunks/oitFragment-d1nZ2t4K.esm.min.js +2 -0
  301. package/dist/chunks/oitFragment-d1nZ2t4K.esm.min.js.map +1 -0
  302. package/dist/chunks/pass.fragment-BNxucekE.esm.js +15 -0
  303. package/dist/chunks/pass.fragment-BNxucekE.esm.js.map +1 -0
  304. package/dist/chunks/pass.fragment-BPWOV-np.esm.min.js +2 -0
  305. package/dist/chunks/pass.fragment-BPWOV-np.esm.min.js.map +1 -0
  306. package/dist/chunks/pass.fragment-BT7Wkeay.esm.js +15 -0
  307. package/dist/chunks/pass.fragment-BT7Wkeay.esm.js.map +1 -0
  308. package/dist/chunks/pass.fragment-LRSSF8o-.esm.min.js +2 -0
  309. package/dist/chunks/pass.fragment-LRSSF8o-.esm.min.js.map +1 -0
  310. package/dist/chunks/pbr.fragment-B-1FVaiM.esm.min.js +2 -0
  311. package/dist/chunks/pbr.fragment-B-1FVaiM.esm.min.js.map +1 -0
  312. package/dist/chunks/pbr.fragment-Cnob4F0w.esm.js +3165 -0
  313. package/dist/chunks/pbr.fragment-Cnob4F0w.esm.js.map +1 -0
  314. package/dist/chunks/pbr.fragment-DKP5BPM5.esm.min.js +2 -0
  315. package/dist/chunks/pbr.fragment-DKP5BPM5.esm.min.js.map +1 -0
  316. package/dist/chunks/pbr.fragment-dkGgJBhW.esm.js +3219 -0
  317. package/dist/chunks/pbr.fragment-dkGgJBhW.esm.js.map +1 -0
  318. package/dist/chunks/pbr.vertex-BkhVZoqd.esm.min.js +2 -0
  319. package/dist/chunks/pbr.vertex-BkhVZoqd.esm.min.js.map +1 -0
  320. package/dist/chunks/pbr.vertex-CDl2_yqv.esm.min.js +2 -0
  321. package/dist/chunks/pbr.vertex-CDl2_yqv.esm.min.js.map +1 -0
  322. package/dist/chunks/pbr.vertex-D0xvyV6H.esm.js +335 -0
  323. package/dist/chunks/pbr.vertex-D0xvyV6H.esm.js.map +1 -0
  324. package/dist/chunks/pbr.vertex-Dj0oqlUE.esm.js +210 -0
  325. package/dist/chunks/pbr.vertex-Dj0oqlUE.esm.js.map +1 -0
  326. package/dist/chunks/postprocess.vertex-DDpCNC2k.esm.min.js +2 -0
  327. package/dist/chunks/postprocess.vertex-DDpCNC2k.esm.min.js.map +1 -0
  328. package/dist/chunks/postprocess.vertex-GjsTEgwN.esm.js +18 -0
  329. package/dist/chunks/postprocess.vertex-GjsTEgwN.esm.js.map +1 -0
  330. package/dist/chunks/postprocess.vertex-KKSOfy8-.esm.js +20 -0
  331. package/dist/chunks/postprocess.vertex-KKSOfy8-.esm.js.map +1 -0
  332. package/dist/chunks/postprocess.vertex-VHyB8mOY.esm.min.js +2 -0
  333. package/dist/chunks/postprocess.vertex-VHyB8mOY.esm.min.js.map +1 -0
  334. package/dist/chunks/rawTexture-7josWE_E.esm.min.js +2 -0
  335. package/dist/chunks/rawTexture-7josWE_E.esm.min.js.map +1 -0
  336. package/dist/chunks/rawTexture-D3RGn_Y3.esm.js +191 -0
  337. package/dist/chunks/rawTexture-D3RGn_Y3.esm.js.map +1 -0
  338. package/dist/chunks/rgbdDecode.fragment-BtUJN13h.esm.min.js +2 -0
  339. package/dist/chunks/rgbdDecode.fragment-BtUJN13h.esm.min.js.map +1 -0
  340. package/dist/chunks/rgbdDecode.fragment-BtdqfTWQ.esm.min.js +2 -0
  341. package/dist/chunks/rgbdDecode.fragment-BtdqfTWQ.esm.min.js.map +1 -0
  342. package/dist/chunks/rgbdDecode.fragment-CLNFajlp.esm.js +17 -0
  343. package/dist/chunks/rgbdDecode.fragment-CLNFajlp.esm.js.map +1 -0
  344. package/dist/chunks/rgbdDecode.fragment-DMB5yPRL.esm.js +17 -0
  345. package/dist/chunks/rgbdDecode.fragment-DMB5yPRL.esm.js.map +1 -0
  346. package/dist/chunks/rgbdEncode.fragment-BnOVA4HW.esm.min.js +2 -0
  347. package/dist/chunks/rgbdEncode.fragment-BnOVA4HW.esm.min.js.map +1 -0
  348. package/dist/chunks/rgbdEncode.fragment-CSJcTm4k.esm.min.js +2 -0
  349. package/dist/chunks/rgbdEncode.fragment-CSJcTm4k.esm.min.js.map +1 -0
  350. package/dist/chunks/rgbdEncode.fragment-DHzrld7f.esm.js +17 -0
  351. package/dist/chunks/rgbdEncode.fragment-DHzrld7f.esm.js.map +1 -0
  352. package/dist/chunks/rgbdEncode.fragment-DZI2P9CT.esm.js +17 -0
  353. package/dist/chunks/rgbdEncode.fragment-DZI2P9CT.esm.js.map +1 -0
  354. package/dist/chunks/splatFileLoader-CJ9hkIU9.esm.js +3344 -0
  355. package/dist/chunks/splatFileLoader-CJ9hkIU9.esm.js.map +1 -0
  356. package/dist/chunks/splatFileLoader-D3Xuf1wd.esm.min.js +2 -0
  357. package/dist/chunks/splatFileLoader-D3Xuf1wd.esm.min.js.map +1 -0
  358. package/dist/chunks/standardMaterial-B97i8ObR.esm.min.js +2 -0
  359. package/dist/chunks/standardMaterial-B97i8ObR.esm.min.js.map +1 -0
  360. package/dist/chunks/standardMaterial-Dcm3xcYZ.esm.js +1809 -0
  361. package/dist/chunks/standardMaterial-Dcm3xcYZ.esm.js.map +1 -0
  362. package/dist/chunks/stlFileLoader-BSakO34j.esm.min.js +2 -0
  363. package/dist/chunks/stlFileLoader-BSakO34j.esm.min.js.map +1 -0
  364. package/dist/chunks/stlFileLoader-Ces0qL5y.esm.js +238 -0
  365. package/dist/chunks/stlFileLoader-Ces0qL5y.esm.js.map +1 -0
  366. package/dist/chunks/tgaTextureLoader-CP2ER_7M.esm.min.js +2 -0
  367. package/dist/chunks/tgaTextureLoader-CP2ER_7M.esm.min.js.map +1 -0
  368. package/dist/chunks/tgaTextureLoader-Ctm-sK7q.esm.js +349 -0
  369. package/dist/chunks/tgaTextureLoader-Ctm-sK7q.esm.js.map +1 -0
  370. package/dist/chunks/thinEngine--tZshyei.esm.min.js +2 -0
  371. package/dist/chunks/thinEngine--tZshyei.esm.min.js.map +1 -0
  372. package/dist/chunks/thinEngine-CSZs3Ke9.esm.js +3721 -0
  373. package/dist/chunks/thinEngine-CSZs3Ke9.esm.js.map +1 -0
  374. package/dist/chunks/thinInstanceMesh-DkrLzadP.esm.js +314 -0
  375. package/dist/chunks/thinInstanceMesh-DkrLzadP.esm.js.map +1 -0
  376. package/dist/chunks/thinInstanceMesh-lJhTtbGF.esm.min.js +2 -0
  377. package/dist/chunks/thinInstanceMesh-lJhTtbGF.esm.min.js.map +1 -0
  378. package/dist/chunks/vertexColorMixing-BxbZ0s-J.esm.js +528 -0
  379. package/dist/chunks/vertexColorMixing-BxbZ0s-J.esm.js.map +1 -0
  380. package/dist/chunks/vertexColorMixing-hZMijwrN.esm.min.js +2 -0
  381. package/dist/chunks/vertexColorMixing-hZMijwrN.esm.min.js.map +1 -0
  382. package/dist/chunks/webgpuEngine-4asfvMRb.esm.js +11173 -0
  383. package/dist/chunks/webgpuEngine-4asfvMRb.esm.js.map +1 -0
  384. package/dist/chunks/webgpuEngine-DVdq-XT7.esm.min.js +2 -0
  385. package/dist/chunks/webgpuEngine-DVdq-XT7.esm.min.js.map +1 -0
  386. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  387. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  388. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  389. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  390. package/docs/ViewerDefault.jpg +0 -0
  391. package/docs/ViewerParts.jpg +0 -0
  392. package/docs/ViewerSlots.jpg +0 -0
  393. package/docs/ViewerStyled.jpg +0 -0
  394. package/lib/index.d.ts +287 -0
  395. package/lib/index.js +1020 -0
  396. package/lib/index.js.map +1 -0
  397. package/package.json +18 -27
  398. package/readme.md +145 -21
  399. package/configuration/configuration.d.ts +0 -107
  400. package/configuration/configuration.js +0 -16
  401. package/configuration/configuration.js.map +0 -1
  402. package/configuration/configurationCompatibility.d.ts +0 -8
  403. package/configuration/configurationCompatibility.js +0 -66
  404. package/configuration/configurationCompatibility.js.map +0 -1
  405. package/configuration/configurationContainer.d.ts +0 -10
  406. package/configuration/configurationContainer.js +0 -10
  407. package/configuration/configurationContainer.js.map +0 -1
  408. package/configuration/globals.d.ts +0 -6
  409. package/configuration/globals.js +0 -18
  410. package/configuration/globals.js.map +0 -1
  411. package/configuration/index.d.ts +0 -2
  412. package/configuration/index.js +0 -4
  413. package/configuration/index.js.map +0 -1
  414. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  415. package/configuration/interfaces/cameraConfiguration.js +0 -2
  416. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  417. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  418. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  419. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  420. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  421. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  422. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  423. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  424. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  425. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  426. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  427. package/configuration/interfaces/groundConfiguration.js +0 -2
  428. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  429. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  430. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  431. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  432. package/configuration/interfaces/index.d.ts +0 -15
  433. package/configuration/interfaces/index.js +0 -16
  434. package/configuration/interfaces/index.js.map +0 -1
  435. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  436. package/configuration/interfaces/lightConfiguration.js +0 -2
  437. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  438. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  439. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  440. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  441. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  442. package/configuration/interfaces/modelConfiguration.js +0 -2
  443. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  444. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  445. package/configuration/interfaces/observersConfiguration.js +0 -2
  446. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  447. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  448. package/configuration/interfaces/sceneConfiguration.js +0 -2
  449. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  450. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  451. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  452. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  453. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  454. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  455. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  456. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  457. package/configuration/interfaces/templateConfiguration.js +0 -2
  458. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  459. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  460. package/configuration/interfaces/vrConfiguration.js +0 -2
  461. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  462. package/configuration/loader.d.ts +0 -4
  463. package/configuration/loader.js +0 -17
  464. package/configuration/loader.js.map +0 -1
  465. package/configuration/mappers.d.ts +0 -43
  466. package/configuration/mappers.js +0 -192
  467. package/configuration/mappers.js.map +0 -1
  468. package/configuration/renderOnlyLoader.d.ts +0 -33
  469. package/configuration/renderOnlyLoader.js +0 -162
  470. package/configuration/renderOnlyLoader.js.map +0 -1
  471. package/configuration/types/default.d.ts +0 -6
  472. package/configuration/types/default.js +0 -121
  473. package/configuration/types/default.js.map +0 -1
  474. package/configuration/types/environmentMap.d.ts +0 -5
  475. package/configuration/types/environmentMap.js +0 -14
  476. package/configuration/types/environmentMap.js.map +0 -1
  477. package/configuration/types/extended.d.ts +0 -6
  478. package/configuration/types/extended.js +0 -317
  479. package/configuration/types/extended.js.map +0 -1
  480. package/configuration/types/index.d.ts +0 -14
  481. package/configuration/types/index.js +0 -51
  482. package/configuration/types/index.js.map +0 -1
  483. package/configuration/types/minimal.d.ts +0 -6
  484. package/configuration/types/minimal.js +0 -43
  485. package/configuration/types/minimal.js.map +0 -1
  486. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  487. package/configuration/types/renderOnlyDefault.js +0 -31
  488. package/configuration/types/renderOnlyDefault.js.map +0 -1
  489. package/configuration/types/shadowLight.d.ts +0 -9
  490. package/configuration/types/shadowLight.js +0 -64
  491. package/configuration/types/shadowLight.js.map +0 -1
  492. package/helper/index.d.ts +0 -29
  493. package/helper/index.js +0 -66
  494. package/helper/index.js.map +0 -1
  495. package/index.d.ts +0 -30
  496. package/index.js +0 -46
  497. package/index.js.map +0 -1
  498. package/initializer.d.ts +0 -11
  499. package/initializer.js +0 -35
  500. package/initializer.js.map +0 -1
  501. package/interfaces.d.ts +0 -5
  502. package/interfaces.js +0 -7
  503. package/interfaces.js.map +0 -1
  504. package/labs/environmentSerializer.d.ts +0 -126
  505. package/labs/environmentSerializer.js +0 -191
  506. package/labs/environmentSerializer.js.map +0 -1
  507. package/labs/texture.d.ts +0 -183
  508. package/labs/texture.js +0 -350
  509. package/labs/texture.js.map +0 -1
  510. package/labs/viewerLabs.d.ts +0 -51
  511. package/labs/viewerLabs.js +0 -134
  512. package/labs/viewerLabs.js.map +0 -1
  513. package/loader/modelLoader.d.ts +0 -56
  514. package/loader/modelLoader.js +0 -199
  515. package/loader/modelLoader.js.map +0 -1
  516. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  517. package/loader/plugins/applyMaterialConfig.js +0 -16
  518. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  519. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  520. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  521. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  522. package/loader/plugins/index.d.ts +0 -19
  523. package/loader/plugins/index.js +0 -44
  524. package/loader/plugins/index.js.map +0 -1
  525. package/loader/plugins/loaderPlugin.d.ts +0 -24
  526. package/loader/plugins/loaderPlugin.js +0 -2
  527. package/loader/plugins/loaderPlugin.js.map +0 -1
  528. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  529. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  530. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  531. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  532. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  533. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  534. package/managers/observablesManager.d.ts +0 -66
  535. package/managers/observablesManager.js +0 -35
  536. package/managers/observablesManager.js.map +0 -1
  537. package/managers/sceneManager.d.ts +0 -245
  538. package/managers/sceneManager.js +0 -1375
  539. package/managers/sceneManager.js.map +0 -1
  540. package/managers/telemetryManager.d.ts +0 -78
  541. package/managers/telemetryManager.js +0 -117
  542. package/managers/telemetryManager.js.map +0 -1
  543. package/model/modelAnimation.d.ts +0 -215
  544. package/model/modelAnimation.js +0 -237
  545. package/model/modelAnimation.js.map +0 -1
  546. package/model/viewerModel.d.ts +0 -233
  547. package/model/viewerModel.js +0 -673
  548. package/model/viewerModel.js.map +0 -1
  549. package/optimizer/custom/extended.d.ts +0 -13
  550. package/optimizer/custom/extended.js +0 -101
  551. package/optimizer/custom/extended.js.map +0 -1
  552. package/optimizer/custom/index.d.ts +0 -9
  553. package/optimizer/custom/index.js +0 -26
  554. package/optimizer/custom/index.js.map +0 -1
  555. package/renderOnlyIndex.d.ts +0 -11
  556. package/renderOnlyIndex.js +0 -18
  557. package/renderOnlyIndex.js.map +0 -1
  558. package/templating/eventManager.d.ts +0 -35
  559. package/templating/eventManager.js +0 -66
  560. package/templating/eventManager.js.map +0 -1
  561. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  562. package/templating/plugins/hdButtonPlugin.js +0 -21
  563. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  564. package/templating/plugins/printButton.d.ts +0 -9
  565. package/templating/plugins/printButton.js +0 -40
  566. package/templating/plugins/printButton.js.map +0 -1
  567. package/templating/templateManager.d.ts +0 -197
  568. package/templating/templateManager.js +0 -561
  569. package/templating/templateManager.js.map +0 -1
  570. package/templating/viewerTemplatePlugin.d.ts +0 -21
  571. package/templating/viewerTemplatePlugin.js +0 -69
  572. package/templating/viewerTemplatePlugin.js.map +0 -1
  573. package/viewer/defaultViewer.d.ts +0 -130
  574. package/viewer/defaultViewer.js +0 -672
  575. package/viewer/defaultViewer.js.map +0 -1
  576. package/viewer/renderOnlyViewer.d.ts +0 -9
  577. package/viewer/renderOnlyViewer.js +0 -46
  578. package/viewer/renderOnlyViewer.js.map +0 -1
  579. package/viewer/viewer.d.ts +0 -258
  580. package/viewer/viewer.js +0 -783
  581. package/viewer/viewer.js.map +0 -1
  582. package/viewer/viewerManager.d.ts +0 -58
  583. package/viewer/viewerManager.js +0 -91
  584. package/viewer/viewerManager.js.map +0 -1
  585. package/viewer/viewerWithTemplate.d.ts +0 -9
  586. package/viewer/viewerWithTemplate.js +0 -20
  587. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,1150 @@
1
+ import { i as ShaderStore } from './index-CmxfKF36.esm.js';
2
+
3
+ // Do not edit.
4
+ const name$i = "prePassDeclaration";
5
+ const shader$i = `#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$i] = shader$i;
19
+
20
+ // Do not edit.
21
+ const name$h = "oitDeclaration";
22
+ const shader$h = `#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$h] = shader$h;
29
+
30
+ // Do not edit.
31
+ const name$g = "lightUboDeclaration";
32
+ const shader$g = `#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$g] = shader$g;
96
+
97
+ // Do not edit.
98
+ const name$f = "samplerFragmentDeclaration";
99
+ const shader$f = `#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$f] = shader$f;
120
+
121
+ // Do not edit.
122
+ const name$e = "imageProcessingDeclaration";
123
+ const shader$e = `#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$e] = shader$e;
152
+
153
+ // Do not edit.
154
+ const name$d = "clipPlaneFragmentDeclaration";
155
+ const shader$d = `#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$d] = shader$d;
176
+
177
+ // Do not edit.
178
+ const name$c = "fogFragmentDeclaration";
179
+ const shader$c = `#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$c] = shader$c;
196
+
197
+ // Do not edit.
198
+ const name$b = "imageProcessingFunctions";
199
+ const shader$b = `#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$b] = shader$b;
263
+
264
+ // Do not edit.
265
+ const name$a = "shadowsFragmentFunctions";
266
+ const shader$a = `#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$a] = shader$a;
567
+
568
+ // Do not edit.
569
+ const name$9 = "bumpFragmentMainFunctions";
570
+ const shader$9 = `#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$9] = shader$9;
613
+
614
+ // Do not edit.
615
+ const name$8 = "bumpFragmentFunctions";
616
+ const shader$8 = `#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$8] = shader$8;
649
+
650
+ // Do not edit.
651
+ const name$7 = "reflectionFunction";
652
+ const shader$7 = `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$7] = shader$7;
719
+
720
+ // Do not edit.
721
+ const name$6 = "clipPlaneFragment";
722
+ const shader$6 = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
723
+ if (false) {}
724
+ #endif
725
+ #ifdef CLIPPLANE
726
+ else if (fragmentInputs.fClipDistance>0.0)
727
+ {discard;}
728
+ #endif
729
+ #ifdef CLIPPLANE2
730
+ else if (fragmentInputs.fClipDistance2>0.0)
731
+ {discard;}
732
+ #endif
733
+ #ifdef CLIPPLANE3
734
+ else if (fragmentInputs.fClipDistance3>0.0)
735
+ {discard;}
736
+ #endif
737
+ #ifdef CLIPPLANE4
738
+ else if (fragmentInputs.fClipDistance4>0.0)
739
+ {discard;}
740
+ #endif
741
+ #ifdef CLIPPLANE5
742
+ else if (fragmentInputs.fClipDistance5>0.0)
743
+ {discard;}
744
+ #endif
745
+ #ifdef CLIPPLANE6
746
+ else if (fragmentInputs.fClipDistance6>0.0)
747
+ {discard;}
748
+ #endif
749
+ `;
750
+ // Sideeffect
751
+ ShaderStore.IncludesShadersStoreWGSL[name$6] = shader$6;
752
+
753
+ // Do not edit.
754
+ const name$5 = "bumpFragment";
755
+ const shader$5 = `var uvOffset: vec2f= vec2f(0.0,0.0);
756
+ #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
757
+ #ifdef NORMALXYSCALE
758
+ var normalScale: f32=1.0;
759
+ #elif defined(BUMP)
760
+ var normalScale: f32=uniforms.vBumpInfos.y;
761
+ #else
762
+ var normalScale: f32=1.0;
763
+ #endif
764
+ #if defined(TANGENT) && defined(NORMAL)
765
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
766
+ #elif defined(BUMP)
767
+ var TBNUV: vec2f=select(-fragmentInputs.vBumpUV,fragmentInputs.vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
768
+ #else
769
+ var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
770
+ #endif
771
+ #elif defined(ANISOTROPIC)
772
+ #if defined(TANGENT) && defined(NORMAL)
773
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
774
+ #else
775
+ var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
776
+ #endif
777
+ #endif
778
+ #ifdef PARALLAX
779
+ var invTBN: mat3x3f=transposeMat3(TBN);
780
+ #ifdef PARALLAXOCCLUSION
781
+ uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,fragmentInputs.vBumpUV,uniforms.vBumpInfos.z);
782
+ #else
783
+ uvOffset=parallaxOffset(invTBN*viewDirectionW,uniforms.vBumpInfos.z);
784
+ #endif
785
+ #endif
786
+ #ifdef DETAIL
787
+ 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);
788
+ #endif
789
+ #ifdef BUMP
790
+ #ifdef OBJECTSPACE_NORMALMAP
791
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
792
+ 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);
793
+ #elif !defined(DETAIL)
794
+ normalW=perturbNormal(TBN,textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz,uniforms.vBumpInfos.y);
795
+ #else
796
+ var bumpNormal: vec3f=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz*2.0-1.0;
797
+ #if DETAIL_NORMALBLENDMETHOD==0
798
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
799
+ #elif DETAIL_NORMALBLENDMETHOD==1
800
+ 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;
801
+ #endif
802
+ normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vBumpInfos.y);
803
+ #endif
804
+ #elif defined(DETAIL)
805
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
806
+ #endif
807
+ `;
808
+ // Sideeffect
809
+ ShaderStore.IncludesShadersStoreWGSL[name$5] = shader$5;
810
+
811
+ // Do not edit.
812
+ const name$4 = "depthPrePass";
813
+ const shader$4 = `#ifdef DEPTHPREPASS
814
+ fragmentOutputs.color= vec4f(0.,0.,0.,1.0);return fragmentOutputs;
815
+ #endif
816
+ `;
817
+ // Sideeffect
818
+ ShaderStore.IncludesShadersStoreWGSL[name$4] = shader$4;
819
+
820
+ // Do not edit.
821
+ const name$3 = "lightFragment";
822
+ const shader$3 = `#ifdef LIGHT{X}
823
+ #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
824
+ #else
825
+ var diffuse{X}: vec4f=light{X}.vLightDiffuse;
826
+ #define CUSTOM_LIGHT{X}_COLOR
827
+ #ifdef PBR
828
+ #ifdef SPOTLIGHT{X}
829
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
830
+ #elif defined(POINTLIGHT{X})
831
+ preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
832
+ #elif defined(HEMILIGHT{X})
833
+ preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
834
+ #elif defined(DIRLIGHT{X})
835
+ preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
836
+ #endif
837
+ preInfo.NdotV=NdotV;
838
+ #ifdef SPOTLIGHT{X}
839
+ #ifdef LIGHT_FALLOFF_GLTF{X}
840
+ 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);
841
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
842
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
843
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
844
+ 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);
845
+ #else
846
+ 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);
847
+ #endif
848
+ #elif defined(POINTLIGHT{X})
849
+ #ifdef LIGHT_FALLOFF_GLTF{X}
850
+ preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
851
+ #elif defined(LIGHT_FALLOFF_PHYSICAL{X})
852
+ preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
853
+ #elif defined(LIGHT_FALLOFF_STANDARD{X})
854
+ preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
855
+ #else
856
+ preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
857
+ #endif
858
+ #else
859
+ preInfo.attenuation=1.0;
860
+ #endif
861
+ #ifdef HEMILIGHT{X}
862
+ preInfo.roughness=roughness;
863
+ #else
864
+ preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
865
+ #endif
866
+ #ifdef IRIDESCENCE
867
+ preInfo.iridescenceIntensity=iridescenceIntensity;
868
+ #endif
869
+ #ifdef HEMILIGHT{X}
870
+ info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
871
+ #elif defined(SS_TRANSLUCENCY)
872
+ info.diffuse=computeDiffuseAndTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
873
+ #else
874
+ info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
875
+ #endif
876
+ #ifdef SPECULARTERM
877
+ #ifdef ANISOTROPIC
878
+ info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
879
+ #else
880
+ info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
881
+ #endif
882
+ #endif
883
+ #ifdef SHEEN
884
+ #ifdef SHEEN_LINKWITHALBEDO
885
+ preInfo.roughness=sheenOut.sheenIntensity;
886
+ #else
887
+ #ifdef HEMILIGHT{X}
888
+ preInfo.roughness=sheenOut.sheenRoughness;
889
+ #else
890
+ preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
891
+ #endif
892
+ #endif
893
+ info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
894
+ #endif
895
+ #ifdef CLEARCOAT
896
+ #ifdef HEMILIGHT{X}
897
+ preInfo.roughness=clearcoatOut.clearCoatRoughness;
898
+ #else
899
+ preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
900
+ #endif
901
+ info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
902
+ #ifdef CLEARCOAT_TINT
903
+ absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
904
+ #ifdef SPECULARTERM
905
+ info.specular*=absorption;
906
+ #endif
907
+ #endif
908
+ info.diffuse*=info.clearCoat.w;
909
+ #ifdef SPECULARTERM
910
+ info.specular*=info.clearCoat.w;
911
+ #endif
912
+ #ifdef SHEEN
913
+ info.sheen*=info.clearCoat.w;
914
+ #endif
915
+ #endif
916
+ #else
917
+ #ifdef SPOTLIGHT{X}
918
+ info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
919
+ #elif defined(HEMILIGHT{X})
920
+ info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
921
+ #elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
922
+ info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
923
+ #endif
924
+ #endif
925
+ #ifdef PROJECTEDLIGHTTEXTURE{X}
926
+ info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},fragmentInputs.vPositionW);
927
+ #endif
928
+ #endif
929
+ #ifdef SHADOW{X}
930
+ #ifdef SHADOWCSMDEBUG{X}
931
+ var shadowDebug{X}: vec3f;
932
+ #endif
933
+ #ifdef SHADOWCSM{X}
934
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
935
+ var index{X}: i32=-1;
936
+ #else
937
+ var index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;
938
+ #endif
939
+ 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++)
940
+ {
941
+ #ifdef SHADOWCSM_RIGHTHANDED{X}
942
+ diff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;
943
+ #else
944
+ diff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;
945
+ #endif
946
+ if (diff{X}>=0.) {index{X}=i;break;}}
947
+ #ifdef SHADOWCSMUSESHADOWMAXZ{X}
948
+ if (index{X}>=0)
949
+ #endif
950
+ {
951
+ #if defined(SHADOWPCF{X})
952
+ #if defined(SHADOWLOWQUALITY{X})
953
+ 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);
954
+ #elif defined(SHADOWMEDIUMQUALITY{X})
955
+ 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);
956
+ #else
957
+ 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);
958
+ #endif
959
+ #elif defined(SHADOWPCSS{X})
960
+ #if defined(SHADOWLOWQUALITY{X})
961
+ 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});
962
+ #elif defined(SHADOWMEDIUMQUALITY{X})
963
+ 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});
964
+ #else
965
+ 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});
966
+ #endif
967
+ #else
968
+ 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);
969
+ #endif
970
+ #ifdef SHADOWCSMDEBUG{X}
971
+ shadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];
972
+ #endif
973
+ #ifndef SHADOWCSMNOBLEND{X}
974
+ 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.)
975
+ {index{X}+=1;var nextShadow: f32=0.;
976
+ #if defined(SHADOWPCF{X})
977
+ #if defined(SHADOWLOWQUALITY{X})
978
+ nextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
979
+ #elif defined(SHADOWMEDIUMQUALITY{X})
980
+ 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);
981
+ #else
982
+ 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);
983
+ #endif
984
+ #elif defined(SHADOWPCSS{X})
985
+ #if defined(SHADOWLOWQUALITY{X})
986
+ 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});
987
+ #elif defined(SHADOWMEDIUMQUALITY{X})
988
+ 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});
989
+ #else
990
+ 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});
991
+ #endif
992
+ #else
993
+ 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);
994
+ #endif
995
+ shadow=mix(nextShadow,shadow,diffRatio);
996
+ #ifdef SHADOWCSMDEBUG{X}
997
+ shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
998
+ #endif
999
+ }
1000
+ #endif
1001
+ }
1002
+ #elif defined(SHADOWCLOSEESM{X})
1003
+ #if defined(SHADOWCUBE{X})
1004
+ shadow=computeShadowWithCloseESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
1005
+ #else
1006
+ 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);
1007
+ #endif
1008
+ #elif defined(SHADOWESM{X})
1009
+ #if defined(SHADOWCUBE{X})
1010
+ shadow=computeShadowWithESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
1011
+ #else
1012
+ 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);
1013
+ #endif
1014
+ #elif defined(SHADOWPOISSON{X})
1015
+ #if defined(SHADOWCUBE{X})
1016
+ shadow=computeShadowWithPoissonSamplingCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
1017
+ #else
1018
+ 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);
1019
+ #endif
1020
+ #elif defined(SHADOWPCF{X})
1021
+ #if defined(SHADOWLOWQUALITY{X})
1022
+ shadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1023
+ #elif defined(SHADOWMEDIUMQUALITY{X})
1024
+ 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);
1025
+ #else
1026
+ 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);
1027
+ #endif
1028
+ #elif defined(SHADOWPCSS{X})
1029
+ #if defined(SHADOWLOWQUALITY{X})
1030
+ 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);
1031
+ #elif defined(SHADOWMEDIUMQUALITY{X})
1032
+ 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);
1033
+ #else
1034
+ 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);
1035
+ #endif
1036
+ #else
1037
+ #if defined(SHADOWCUBE{X})
1038
+ shadow=computeShadowCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);
1039
+ #else
1040
+ shadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
1041
+ #endif
1042
+ #endif
1043
+ #ifdef SHADOWONLY
1044
+ #ifndef SHADOWINUSE
1045
+ #define SHADOWINUSE
1046
+ #endif
1047
+ globalShadow+=shadow;shadowLightCount+=1.0;
1048
+ #endif
1049
+ #else
1050
+ shadow=1.;
1051
+ #endif
1052
+ aggShadow+=shadow;numLights+=1.0;
1053
+ #ifndef SHADOWONLY
1054
+ #ifdef CUSTOMUSERLIGHTING
1055
+ diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
1056
+ #ifdef SPECULARTERM
1057
+ specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
1058
+ #endif
1059
+ #elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
1060
+ diffuseBase+=lightmapColor.rgb*shadow;
1061
+ #ifdef SPECULARTERM
1062
+ #ifndef LIGHTMAPNOSPECULAR{X}
1063
+ specularBase+=info.specular*shadow*lightmapColor.rgb;
1064
+ #endif
1065
+ #endif
1066
+ #ifdef CLEARCOAT
1067
+ #ifndef LIGHTMAPNOSPECULAR{X}
1068
+ clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
1069
+ #endif
1070
+ #endif
1071
+ #ifdef SHEEN
1072
+ #ifndef LIGHTMAPNOSPECULAR{X}
1073
+ sheenBase+=info.sheen.rgb*shadow;
1074
+ #endif
1075
+ #endif
1076
+ #else
1077
+ #ifdef SHADOWCSMDEBUG{X}
1078
+ diffuseBase+=info.diffuse*shadowDebug{X};
1079
+ #else
1080
+ diffuseBase+=info.diffuse*shadow;
1081
+ #endif
1082
+ #ifdef SPECULARTERM
1083
+ specularBase+=info.specular*shadow;
1084
+ #endif
1085
+ #ifdef CLEARCOAT
1086
+ clearCoatBase+=info.clearCoat.rgb*shadow;
1087
+ #endif
1088
+ #ifdef SHEEN
1089
+ sheenBase+=info.sheen.rgb*shadow;
1090
+ #endif
1091
+ #endif
1092
+ #endif
1093
+ #endif
1094
+ `;
1095
+ // Sideeffect
1096
+ ShaderStore.IncludesShadersStoreWGSL[name$3] = shader$3;
1097
+
1098
+ // Do not edit.
1099
+ const name$2 = "logDepthFragment";
1100
+ const shader$2 = `#ifdef LOGARITHMICDEPTH
1101
+ fragmentOutputs.fragDepth=log2(fragmentInputs.vFragmentDepth)*uniforms.logarithmicDepthConstant*0.5;
1102
+ #endif
1103
+ `;
1104
+ // Sideeffect
1105
+ ShaderStore.IncludesShadersStoreWGSL[name$2] = shader$2;
1106
+
1107
+ // Do not edit.
1108
+ const name$1 = "fogFragment";
1109
+ const shader$1 = `#ifdef FOG
1110
+ var fog: f32=CalcFogFactor();
1111
+ #ifdef PBR
1112
+ fog=toLinearSpace(fog);
1113
+ #endif
1114
+ color= vec4f(mix(uniforms.vFogColor,color.rgb,fog),color.a);
1115
+ #endif
1116
+ `;
1117
+ // Sideeffect
1118
+ ShaderStore.IncludesShadersStoreWGSL[name$1] = shader$1;
1119
+
1120
+ // Do not edit.
1121
+ const name = "oitFragment";
1122
+ const shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
1123
+ var fragDepth: f32=fragmentInputs.position.z;
1124
+ #ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
1125
+ var halfFloat: i32=packHalf2x16( vec2f(fragDepth));var full: vec2f=unpackHalf2x16(halfFloat);fragDepth=full.x;
1126
+ #endif
1127
+ 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);
1128
+ #ifdef USE_REVERSE_DEPTHBUFFER
1129
+ var furthestDepth: f32=-lastDepth.x;var nearestDepth: f32=lastDepth.y;
1130
+ #else
1131
+ var nearestDepth: f32=-lastDepth.x;var furthestDepth: f32=lastDepth.y;
1132
+ #endif
1133
+ var alphaMultiplier: f32=1.0-lastFrontColor.a;
1134
+ #ifdef USE_REVERSE_DEPTHBUFFER
1135
+ if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
1136
+ #else
1137
+ if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
1138
+ #endif
1139
+ return fragmentOutputs;}
1140
+ #ifdef USE_REVERSE_DEPTHBUFFER
1141
+ if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
1142
+ #else
1143
+ if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
1144
+ #endif
1145
+ fragmentOutputs.depth=vec2f(-fragDepth,fragDepth);return fragmentOutputs;}
1146
+ #endif
1147
+ `;
1148
+ // Sideeffect
1149
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
1150
+ //# sourceMappingURL=oitFragment-BPxzkgmy.esm.js.map