@uptimizr/dashboard 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +19 -5
  3. package/out/__next._full.txt +11 -11
  4. package/out/__next._tree.txt +2 -2
  5. package/out/_next/static/chunks/{3kalvwsf11-ss.js → 0-_j1khfoib6l.js} +119 -115
  6. package/out/_next/static/chunks/{0-tzsd_n-ywom.js → 005bbq_px7lke.js} +2 -2
  7. package/out/_next/static/chunks/00fbhtmui-yxg.js +1 -0
  8. package/out/_next/static/chunks/017pn-pen381_.js +1 -0
  9. package/out/_next/static/chunks/01vov6inx1zzt.js +1 -0
  10. package/out/_next/static/chunks/{3d76e_yd8l_0x.js → 02qk_wmkf9at-.js} +211 -211
  11. package/out/_next/static/chunks/03bd5plut08tg.js +1 -0
  12. package/out/_next/static/chunks/03dwfqmo73w_z.js +1 -0
  13. package/out/_next/static/chunks/03sn4419dam-h.js +5 -0
  14. package/out/_next/static/chunks/05ere0-228syf.js +1 -0
  15. package/out/_next/static/chunks/{2g_1ov-0j2kwd.js → 05h8u5lrypn5m.js} +1 -1
  16. package/out/_next/static/chunks/05s0t-besbvu1.css +3 -0
  17. package/out/_next/static/chunks/{3go-mst7n3udd.js → 05v-nubi896jg.js} +1 -1
  18. package/out/_next/static/chunks/05z79zh625ezu.js +1 -0
  19. package/out/_next/static/chunks/{1t2exh89lnazc.js → 060iult6f68_e.js} +504 -571
  20. package/out/_next/static/chunks/08lvtnv7b1cxp.js +1 -0
  21. package/out/_next/static/chunks/0_v2luu_qmeid.js +1 -0
  22. package/out/_next/static/chunks/0ai0zgbgjqb92.js +1 -0
  23. package/out/_next/static/chunks/0boov9mwycanf.js +1 -0
  24. package/out/_next/static/chunks/{0av6n_6q6kzo3.js → 0btmk0wmekl02.js} +2 -2
  25. package/out/_next/static/chunks/0d8x8m2x6ca_m.js +1 -0
  26. package/out/_next/static/chunks/0dmrdrwtd093b.js +1 -0
  27. package/out/_next/static/chunks/0e1jfrmioeuws.js +1 -0
  28. package/out/_next/static/chunks/0e7nlxmneb2j_.js +1 -0
  29. package/out/_next/static/chunks/0es97pusfxupl.js +1 -0
  30. package/out/_next/static/chunks/{05uqfgf-hh-p5.js → 0fd-0i1yt23kz.js} +1 -1
  31. package/out/_next/static/chunks/0fxdyvb1w23d1.js +1 -0
  32. package/out/_next/static/chunks/0fxhc24djjcgq.js +1 -0
  33. package/out/_next/static/chunks/0gf-ztg86zd80.js +1 -0
  34. package/out/_next/static/chunks/{380ivzcfb4o_3.js → 0grasqqf5dw7r.js} +2 -2
  35. package/out/_next/static/chunks/{0okbyggxe6mx5.js → 0hajwk2yd-rwr.js} +1 -1
  36. package/out/_next/static/chunks/0hk1wg7h4araz.js +1 -0
  37. package/out/_next/static/chunks/{1vmpltnr0cyos.js → 0j74ipw4fps-n.js} +1 -1
  38. package/out/_next/static/chunks/{03zip1uidm6x9.js → 0kj-vckdn7t5p.js} +1 -1
  39. package/out/_next/static/chunks/0lbs5xdyjuzuo.js +1 -0
  40. package/out/_next/static/chunks/0lep3_bqwfuin.js +1 -0
  41. package/out/_next/static/chunks/0mp0jh1gj7290.js +1 -0
  42. package/out/_next/static/chunks/0ngpoj2g5i4kz.js +1 -0
  43. package/out/_next/static/chunks/0nhljhguceh66.js +1 -0
  44. package/out/_next/static/chunks/0p6z73afb9dj2.js +1 -0
  45. package/out/_next/static/chunks/0p9zfmidzqkps.js +1 -0
  46. package/out/_next/static/chunks/0q75860p8u_ii.js +1 -0
  47. package/out/_next/static/chunks/{0-0hui1_v3h8b.js → 0rracz73p38mo.js} +26 -23
  48. package/out/_next/static/chunks/{3z4suna4kq4j5.js → 0sw-8gxbg4x0l.js} +568 -569
  49. package/out/_next/static/chunks/0sx-6rf3eteqn.js +1 -0
  50. package/out/_next/static/chunks/0thw099xk3_0p.js +3 -0
  51. package/out/_next/static/chunks/0u85f0dhb4i8e.js +1 -0
  52. package/out/_next/static/chunks/0uk7kigzm4vi2.js +31 -0
  53. package/out/_next/static/chunks/0ulufxnsrou61.js +1 -0
  54. package/out/_next/static/chunks/0xa9dyg6ezzyd.js +2 -0
  55. package/out/_next/static/chunks/0xvrfvur0p534.js +1 -0
  56. package/out/_next/static/chunks/{35aagg46wp139.js → 0ybs1u66q26su.js} +1 -1
  57. package/out/_next/static/chunks/0ydfhk-p6zvm0.js +1 -0
  58. package/out/_next/static/chunks/{29gv2swsp7tzu.js → 0z004fn14pbcu.js} +1 -1
  59. package/out/_next/static/chunks/{2z9mdtudj8crz.js → 0z9erbl3llr_b.js} +226 -224
  60. package/out/_next/static/chunks/0zcsxvcvog9ue.js +1 -0
  61. package/out/_next/static/chunks/0zqgq0lwtz9tn.js +1 -0
  62. package/out/_next/static/chunks/1-ogak5u00kwa.js +1 -0
  63. package/out/_next/static/chunks/{1ng-fqh2_n984.js → 10_5p5-xf2aoo.js} +1 -1
  64. package/out/_next/static/chunks/118qlrzdwpfmo.js +1 -0
  65. package/out/_next/static/chunks/11km5p4gd0ut4.js +1 -0
  66. package/out/_next/static/chunks/120rl4l29q9xs.js +1 -0
  67. package/out/_next/static/chunks/{1ho02fc091nj2.js → 129m5i93ltoym.js} +1 -1
  68. package/out/_next/static/chunks/12n73o884lyyl.js +1 -0
  69. package/out/_next/static/chunks/{3n-7bcmfbh299.js → 13zcn4lv0qj76.js} +11 -11
  70. package/out/_next/static/chunks/15jlgfcaeaki9.js +1 -0
  71. package/out/_next/static/chunks/{1ux1rpe-n1mai.js → 15o4_2t-l3rj5.js} +1 -1
  72. package/out/_next/static/chunks/{00o9hr_3hd0r8.js → 175st2ogkg_1o.js} +1 -1
  73. package/out/_next/static/chunks/19rsodtu91ja_.js +1 -0
  74. package/out/_next/static/chunks/1a2ouhup611bz.js +1 -0
  75. package/out/_next/static/chunks/{1solqr18og2ot.js → 1by60_b14x-3o.js} +1 -1
  76. package/out/_next/static/chunks/1cyq7i39885sl.js +1 -0
  77. package/out/_next/static/chunks/1d9it6yocgt54.js +1 -0
  78. package/out/_next/static/chunks/1dp1s1t-y7gal.js +1 -0
  79. package/out/_next/static/chunks/1dr7gh6xgypl8.js +1 -0
  80. package/out/_next/static/chunks/{32vaw89wdwv5_.js → 1dt30s_sp8415.js} +1 -1
  81. package/out/_next/static/chunks/{1t7nl8rx7mabd.js → 1e8_jl2cxd3rp.js} +576 -576
  82. package/out/_next/static/chunks/1f1rek_fxk3of.js +1 -0
  83. package/out/_next/static/chunks/1f2mna0k5efeq.js +1 -0
  84. package/out/_next/static/chunks/1gfz3sxwkkg3d.js +1 -0
  85. package/out/_next/static/chunks/1gr35qeguuws0.js +1 -0
  86. package/out/_next/static/chunks/{0g2wngc6oe7fd.js → 1gttu-n9am66k.js} +255 -253
  87. package/out/_next/static/chunks/1imi0xwi9hd99.js +1 -0
  88. package/out/_next/static/chunks/1ka5v5zu0cstt.js +1 -0
  89. package/out/_next/static/chunks/{17aahvhpls1l7.js → 1l_3oidssbhns.js} +298 -231
  90. package/out/_next/static/chunks/1m9zc5gm-327d.js +112 -0
  91. package/out/_next/static/chunks/1n9nhz-6azcp3.js +3 -0
  92. package/out/_next/static/chunks/1ncqwe81t_9_x.js +1 -0
  93. package/out/_next/static/chunks/1nix_lulkpklo.js +1 -0
  94. package/out/_next/static/chunks/{141tngxsk32hq.js → 1ntqovuz2c217.js} +1 -1
  95. package/out/_next/static/chunks/1pgs-98tfkq9_.js +1 -0
  96. package/out/_next/static/chunks/1q2z0aeopo8t8.js +1 -0
  97. package/out/_next/static/chunks/{2zpn7010iqgsy.js → 1q4lkgxfnqnew.js} +1 -1
  98. package/out/_next/static/chunks/{2khh_pmm224k5.js → 1qg1l7t00nyib.js} +97 -300
  99. package/out/_next/static/chunks/{1qxhgauuomthl.js → 1rcdimhu0qhlu.js} +407 -407
  100. package/out/_next/static/chunks/1rlfg62jxqj3z.js +1 -0
  101. package/out/_next/static/chunks/1ses023uud001.js +1 -0
  102. package/out/_next/static/chunks/1t5oynmttpfsw.js +1 -0
  103. package/out/_next/static/chunks/{25gf6xn9u1c57.js → 1t9i20i5-f8ze.js} +1 -1
  104. package/out/_next/static/chunks/{2h5nvlgky7fpa.js → 1tgj55b305g4h.js} +1 -1
  105. package/out/_next/static/chunks/{255knovck7pv2.js → 1u8snlm6a7uhi.js} +4 -4
  106. package/out/_next/static/chunks/{04_3ri5emyfcu.js → 1ug4k-1zhr63a.js} +1 -1
  107. package/out/_next/static/chunks/{3-_08i4_7yhno.js → 1uh9zgsy69g92.js} +1 -1
  108. package/out/_next/static/chunks/1vrpzlif-z_p0.js +1 -0
  109. package/out/_next/static/chunks/1vurgl6oz2qey.js +17 -0
  110. package/out/_next/static/chunks/1w-qc09n9ijtq.js +1 -0
  111. package/out/_next/static/chunks/1ycqxcht6x54p.js +1 -0
  112. package/out/_next/static/chunks/{2zyjw8g4tiu51.js → 1zj4307ugq0qz.js} +1 -1
  113. package/out/_next/static/chunks/{425epvuw3yy-n.js → 1zkd8v-qka--j.js} +169 -174
  114. package/out/_next/static/chunks/1zm52cjrfrq7c.js +1 -0
  115. package/out/_next/static/chunks/{267q_eg-c6f6m.js → 1zm6eo861i3c8.js} +1 -1
  116. package/out/_next/static/chunks/{1e_-_7biavwmb.js → 1zp9363yfhpom.js} +1 -1
  117. package/out/_next/static/chunks/1zt1xxovnjhkm.js +1 -0
  118. package/out/_next/static/chunks/2-3hk_db5fpok.js +1 -0
  119. package/out/_next/static/chunks/2-bv9a_0zgw1f.js +1 -0
  120. package/out/_next/static/chunks/209sxygecny37.js +1 -0
  121. package/out/_next/static/chunks/{1ccn725by19i1.js → 216uiih3_vdfd.js} +1 -1
  122. package/out/_next/static/chunks/21kfpd_bityxt.js +1 -0
  123. package/out/_next/static/chunks/22yqh0zlo_vwr.js +1 -0
  124. package/out/_next/static/chunks/24ecas0m9tao7.js +3 -0
  125. package/out/_next/static/chunks/24pq9210rng3f.js +1 -0
  126. package/out/_next/static/chunks/{0zf26k6juhlzo.js → 267prao6fyt22.js} +23 -20
  127. package/out/_next/static/chunks/26skkagvj1z96.js +1 -0
  128. package/out/_next/static/chunks/26y9sv8_-ykxf.js +1 -0
  129. package/out/_next/static/chunks/2701xfv_07wz_.js +1 -0
  130. package/out/_next/static/chunks/{1x99m91nt1m3b.js → 271333m8y3k0e.js} +1 -1
  131. package/out/_next/static/chunks/29rkmguzky-bp.js +1 -0
  132. package/out/_next/static/chunks/{077eo-0dhbxz-.js → 2a07so920b6aa.js} +1 -1
  133. package/out/_next/static/chunks/2a2oy8ryz2tsk.js +1 -0
  134. package/out/_next/static/chunks/2ao-3jzz7yw3p.js +532 -0
  135. package/out/_next/static/chunks/2apihn9ra2ufp.js +1 -0
  136. package/out/_next/static/chunks/2apnpj0-fs9ks.js +1 -0
  137. package/out/_next/static/chunks/2b481pitl4k85.js +1 -0
  138. package/out/_next/static/chunks/2bettxaqt3d2p.js +1 -0
  139. package/out/_next/static/chunks/{1fyh50hjt7hi_.js → 2c721vfva711t.js} +1 -1
  140. package/out/_next/static/chunks/{442e2l3jzxd-_.js → 2d2kl_m64j9cb.js} +1 -1
  141. package/out/_next/static/chunks/2droqjmvmgj13.js +1 -0
  142. package/out/_next/static/chunks/2dxbvwbbgpzoq.js +1 -0
  143. package/out/_next/static/chunks/2eqbsut829r5l.js +1 -0
  144. package/out/_next/static/chunks/2f3_mzxjh3gso.js +1 -0
  145. package/out/_next/static/chunks/2fsde0jwi5qtt.js +1 -0
  146. package/out/_next/static/chunks/2h249uvhh2sij.js +114 -0
  147. package/out/_next/static/chunks/{1gvdmbr65lpud.js → 2izok2otbk8-2.js} +505 -505
  148. package/out/_next/static/chunks/{0yvevihll7sz-.js → 2j120dkh7q3uf.js} +1 -1
  149. package/out/_next/static/chunks/2j2ynchpqh34-.js +1 -0
  150. package/out/_next/static/chunks/2kj6pzs_wap1v.js +1 -0
  151. package/out/_next/static/chunks/{2-p206i_ihx09.js → 2kok6zedeeltw.js} +1 -1
  152. package/out/_next/static/chunks/2lnj9jruy4nrv.js +1 -0
  153. package/out/_next/static/chunks/{41yy4p3-rtyz1.js → 2lsvk7xcfkarc.js} +1 -1
  154. package/out/_next/static/chunks/2n-pveub8b_5t.js +1 -0
  155. package/out/_next/static/chunks/{00xc-0pj7on2s.js → 2n3xu_wbvtj7h.js} +29 -29
  156. package/out/_next/static/chunks/{1oljzgz5jistn.js → 2of8q0kaeqpf0.js} +1 -1
  157. package/out/_next/static/chunks/2ofwtw6p08sfz.js +1 -0
  158. package/out/_next/static/chunks/2phl5ta4iim7l.js +12 -0
  159. package/out/_next/static/chunks/2q6l-xdqzgmpf.js +1 -0
  160. package/out/_next/static/chunks/2q8yg63br2jc9.js +1 -0
  161. package/out/_next/static/chunks/2r5qgieqldcd9.js +1 -0
  162. package/out/_next/static/chunks/2r7y401cvjc1s.js +1 -0
  163. package/out/_next/static/chunks/{22ja7c3gk0_ko.js → 2r96kyeehsji9.js} +1 -1
  164. package/out/_next/static/chunks/{3gyyjsot8mdav.js → 2rmc6ru7mc-kg.js} +1 -1
  165. package/out/_next/static/chunks/{1ephzzweysylq.js → 2s6kpclh6ie7o.js} +901 -973
  166. package/out/_next/static/chunks/{0vso09vdz38sr.js → 2sys9nj8lo3uk.js} +1 -1
  167. package/out/_next/static/chunks/{0w-hm7g7trtjg.js → 2tc3e-iqv71y_.js} +1 -1
  168. package/out/_next/static/chunks/2uo6vm7mfgrbf.js +1 -0
  169. package/out/_next/static/chunks/2urx6fow8c8c9.js +505 -0
  170. package/out/_next/static/chunks/2w2k1gveljyb7.js +1 -0
  171. package/out/_next/static/chunks/{22rl_arnzs-ve.js → 2w99knknr5i8c.js} +1 -1
  172. package/out/_next/static/chunks/2w_ptlw-ad8-9.js +4 -0
  173. package/out/_next/static/chunks/2ws1s9d52ayv8.js +1 -0
  174. package/out/_next/static/chunks/2x7enks3ydgai.js +1 -0
  175. package/out/_next/static/chunks/{2e46-2ubc90do.js → 2y8i7_nxm4r05.js} +5 -5
  176. package/out/_next/static/chunks/2ydub0t01728d.js +1 -0
  177. package/out/_next/static/chunks/{309f81l5ucsb_.js → 2z_iab7ozohhq.js} +60 -60
  178. package/out/_next/static/chunks/3-m_vzabs1uez.js +1 -0
  179. package/out/_next/static/chunks/{0t89-lfct-7m6.js → 302qk2fjdrthp.js} +5 -5
  180. package/out/_next/static/chunks/30bhz7czzs4mf.js +1 -0
  181. package/out/_next/static/chunks/{0tn-9w46cwydp.js → 30n4y_uu8chbh.js} +515 -514
  182. package/out/_next/static/chunks/{2-hdejef-mpka.js → 32_c4mbb6j1l6.js} +372 -169
  183. package/out/_next/static/chunks/33hp-khdfohdq.js +1 -0
  184. package/out/_next/static/chunks/{28ndw4nsw2t_4.js → 33i36o_l69sm5.js} +1 -1
  185. package/out/_next/static/chunks/3527r3jo5fj3i.js +1 -0
  186. package/out/_next/static/chunks/355dg8yaa94hr.js +1 -0
  187. package/out/_next/static/chunks/{11p92pnn5el0v.js → 35ntbr_c-yx44.js} +1 -1
  188. package/out/_next/static/chunks/{2rjfrjhp4kjev.js → 35sne1llxnc-m.js} +57 -57
  189. package/out/_next/static/chunks/36enkx1skkv2-.js +4 -0
  190. package/out/_next/static/chunks/{3-x7522okdy-7.js → 3772oce1n3t_g.js} +1 -1
  191. package/out/_next/static/chunks/{1rb8wewjbdisv.js → 37cnbm5ft1mqf.js} +1 -1
  192. package/out/_next/static/chunks/38xdo3cifphut.js +1 -0
  193. package/out/_next/static/chunks/{1tt1bbry-4f-6.js → 3_dgblylldcgb.js} +1 -1
  194. package/out/_next/static/chunks/3beawo-qwuk8k.js +1 -0
  195. package/out/_next/static/chunks/3cj_6sl9kr3e9.js +1 -0
  196. package/out/_next/static/chunks/3d-i_skta_wes.js +1 -0
  197. package/out/_next/static/chunks/3df_l2we755bb.js +1 -0
  198. package/out/_next/static/chunks/{43hwl25uke0l_.js → 3eve5y7fpzx2h.js} +1 -1
  199. package/out/_next/static/chunks/3ewgyb4y19w-3.js +1 -0
  200. package/out/_next/static/chunks/3f3789eh18_oy.js +1 -0
  201. package/out/_next/static/chunks/{1n_gxvu31aofy.js → 3f8qelpscqfym.js} +2 -2
  202. package/out/_next/static/chunks/3g3-e9m1en45q.js +1 -0
  203. package/out/_next/static/chunks/{0uxdbfa8gv6tk.js → 3h6akt2uu05ku.js} +29 -29
  204. package/out/_next/static/chunks/{3w4qettzp7khe.js → 3huu0tqmxwowu.js} +523 -522
  205. package/out/_next/static/chunks/3i239y-1hbkm-.js +1 -0
  206. package/out/_next/static/chunks/{1qsut_e3msg0l.js → 3ipx7xbxchsq9.js} +1 -1
  207. package/out/_next/static/chunks/{2ftp5xmq_w23j.js → 3j9xvdz55bi4p.js} +345 -345
  208. package/out/_next/static/chunks/3kp8qmhoi24oz.js +1 -0
  209. package/out/_next/static/chunks/3ksq69yq-40_r.js +1 -0
  210. package/out/_next/static/chunks/{2x83vs8ns4pww.js → 3njwfothmmg7u.js} +3 -3
  211. package/out/_next/static/chunks/{0bj_310rugcn1.js → 3oqxl46ukaojj.js} +11 -11
  212. package/out/_next/static/chunks/{1upkv4ltuh3s5.js → 3qn6r8-0u6dij.js} +352 -352
  213. package/out/_next/static/chunks/3qye1lytea2i8.js +1 -0
  214. package/out/_next/static/chunks/3rlp9yr75liz7.js +1 -0
  215. package/out/_next/static/chunks/{2i82rmjta9ijs.js → 3sa_hlx3konc7.js} +1 -1
  216. package/out/_next/static/chunks/3tyo643l62h3m.js +1 -0
  217. package/out/_next/static/chunks/3tz2tpqa9uvwm.js +1 -0
  218. package/out/_next/static/chunks/{2pbgsq7vvtk8_.js → 3utpc-fc6_y0f.js} +1 -1
  219. package/out/_next/static/chunks/3v-0c2aj6c0on.js +1 -0
  220. package/out/_next/static/chunks/3v6nxa28rxngq.js +1 -0
  221. package/out/_next/static/chunks/{1og49_atcksim.js → 3vbamaoiuk9yj.js} +1 -1
  222. package/out/_next/static/chunks/3vv99btjc-mky.js +1 -0
  223. package/out/_next/static/chunks/{1nqojcig-0m3c.js → 3w59kt5ztyvoq.js} +1 -1
  224. package/out/_next/static/chunks/3x02lxdo28u9i.js +1 -0
  225. package/out/_next/static/chunks/3xl-op0hwxytg.js +272 -0
  226. package/out/_next/static/chunks/3ydnxyc4rvad_.js +1 -0
  227. package/out/_next/static/chunks/3ylg4gfetwgxw.js +1 -0
  228. package/out/_next/static/chunks/{1-4v8oivkgnyl.js → 3zdtteq-r2fs5.js} +3 -3
  229. package/out/_next/static/chunks/3zkwt0gybqtgm.js +1 -0
  230. package/out/_next/static/chunks/{0wq_9f98weoe3.js → 3zs7l4362msjd.js} +1 -1
  231. package/out/_next/static/chunks/40etabvml_71y.js +1 -0
  232. package/out/_next/static/chunks/417jkzz0slv9m.js +1 -0
  233. package/out/_next/static/chunks/41b5gpyqbj58m.js +338 -0
  234. package/out/_next/static/chunks/41u2-5jayyajf.js +22 -0
  235. package/out/_next/static/chunks/42gcpy51w7lk1.js +1 -0
  236. package/out/_next/static/chunks/{1ph0tfo-4hl-f.js → 42ymanq326mo7.js} +1 -1
  237. package/out/_next/static/chunks/{3w_umk1xtj6to.js → 43fp64xnfy646.js} +1 -1
  238. package/out/_next/static/chunks/43v4y2gu5z9_h.js +1 -0
  239. package/out/_next/static/chunks/44cer242u-f8v.js +1 -0
  240. package/out/_next/static/chunks/{1ozi46t8jajqh.js → 44zi0gl0a6a8w.js} +1 -1
  241. package/out/_next/static/chunks/turbopack-0n2o5_bkskckx.js +1 -0
  242. package/out/_not-found/__next._full.txt +12 -12
  243. package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
  244. package/out/_not-found/__next._tree.txt +2 -2
  245. package/out/_not-found.html +1 -1
  246. package/out/_not-found.txt +12 -12
  247. package/out/index.html +1 -1
  248. package/out/index.txt +11 -11
  249. package/package.json +15 -15
  250. package/out/__next._head.txt +0 -6
  251. package/out/__next._index.txt +0 -5
  252. package/out/_next/static/chunks/00g5suuoa-_wn.js +0 -1
  253. package/out/_next/static/chunks/01fh3_bncbe5u.js +0 -1
  254. package/out/_next/static/chunks/01urdkl1j8o6l.js +0 -1
  255. package/out/_next/static/chunks/026vw95s88gsy.js +0 -1
  256. package/out/_next/static/chunks/02eui3ctddbd2.js +0 -1
  257. package/out/_next/static/chunks/04c4nksb5y9r-.js +0 -1
  258. package/out/_next/static/chunks/04g-l-_b4payc.js +0 -1
  259. package/out/_next/static/chunks/04j9pexbmysdy.js +0 -1
  260. package/out/_next/static/chunks/055baac5e-c2o.js +0 -1
  261. package/out/_next/static/chunks/05bdni_jrobq1.js +0 -1
  262. package/out/_next/static/chunks/05o0tb8l_htmw.js +0 -1
  263. package/out/_next/static/chunks/07z6p262h5hgl.js +0 -1
  264. package/out/_next/static/chunks/08m_4cihfmik8.js +0 -1
  265. package/out/_next/static/chunks/08obqw64faj8j.js +0 -1
  266. package/out/_next/static/chunks/099ilz3dmm1jw.js +0 -1
  267. package/out/_next/static/chunks/09ppu_k464q-n.js +0 -1
  268. package/out/_next/static/chunks/0bgcaf2x51kms.js +0 -1
  269. package/out/_next/static/chunks/0c5d3qn2mb3ew.js +0 -1
  270. package/out/_next/static/chunks/0dck67in84de0.js +0 -1
  271. package/out/_next/static/chunks/0dg4wxz-6u5lo.js +0 -1
  272. package/out/_next/static/chunks/0dva036n8ab62.js +0 -1
  273. package/out/_next/static/chunks/0erga_bzezbza.js +0 -1
  274. package/out/_next/static/chunks/0f0-i105odxqd.js +0 -1
  275. package/out/_next/static/chunks/0gyeqz9pagssf.js +0 -1
  276. package/out/_next/static/chunks/0i82k-t0fbn8f.js +0 -1
  277. package/out/_next/static/chunks/0kzw45f61wm3j.js +0 -1
  278. package/out/_next/static/chunks/0l8bfa2xewq69.js +0 -1
  279. package/out/_next/static/chunks/0n-zml1gn0o1u.js +0 -1
  280. package/out/_next/static/chunks/0n92hec_jb_-_.js +0 -1
  281. package/out/_next/static/chunks/0pv2wirx45e1m.js +0 -1
  282. package/out/_next/static/chunks/0qxd_8t3nca36.js +0 -1
  283. package/out/_next/static/chunks/0s1jghzw8jufz.js +0 -1
  284. package/out/_next/static/chunks/0s84ekz_f9ngx.js +0 -1
  285. package/out/_next/static/chunks/0ti58h622yo-_.js +0 -2
  286. package/out/_next/static/chunks/0u8yr4k1y6m2t.js +0 -1
  287. package/out/_next/static/chunks/0ubxyut5rr600.js +0 -1
  288. package/out/_next/static/chunks/0wbw9h7rsis2r.js +0 -1
  289. package/out/_next/static/chunks/0y4e49hpuucdi.js +0 -1
  290. package/out/_next/static/chunks/1-b44873bjsdw.js +0 -1
  291. package/out/_next/static/chunks/1-c3a1vnl8v1q.js +0 -1
  292. package/out/_next/static/chunks/1-xf86jgea22y.js +0 -1
  293. package/out/_next/static/chunks/10b0qqdnb_nox.js +0 -1
  294. package/out/_next/static/chunks/12kdmh0h_mboy.js +0 -1
  295. package/out/_next/static/chunks/14ijcpo72av4r.js +0 -1
  296. package/out/_next/static/chunks/16hdip1drt8o-.js +0 -1
  297. package/out/_next/static/chunks/18txc1wwwu9f9.js +0 -1
  298. package/out/_next/static/chunks/18wa83g0qfh-b.js +0 -1
  299. package/out/_next/static/chunks/19dp8nr4uygg2.js +0 -5
  300. package/out/_next/static/chunks/1_8acnu6_-qe-.js +0 -1
  301. package/out/_next/static/chunks/1__nujzr9e352.js +0 -3
  302. package/out/_next/static/chunks/1bmyq1b0by7ug.js +0 -1
  303. package/out/_next/static/chunks/1d1tpj9nm1nhf.js +0 -1
  304. package/out/_next/static/chunks/1dfwa563iciz3.js +0 -1
  305. package/out/_next/static/chunks/1di5enkavl9vx.js +0 -4
  306. package/out/_next/static/chunks/1fwsjnd1y-lx_.js +0 -1
  307. package/out/_next/static/chunks/1gaexq_suxai0.js +0 -1
  308. package/out/_next/static/chunks/1gnggc6370ji-.js +0 -1
  309. package/out/_next/static/chunks/1gtj_l5ame5mw.js +0 -1
  310. package/out/_next/static/chunks/1hsvckd0sgdgr.js +0 -1
  311. package/out/_next/static/chunks/1i4f3n_2_3ery.js +0 -1
  312. package/out/_next/static/chunks/1j7e3qpjuj89a.js +0 -1
  313. package/out/_next/static/chunks/1mrvp94tietcv.js +0 -1
  314. package/out/_next/static/chunks/1mvadj46owrck.js +0 -1
  315. package/out/_next/static/chunks/1nasz7q3tvb53.js +0 -1
  316. package/out/_next/static/chunks/1o3ggu95lfu6i.js +0 -1
  317. package/out/_next/static/chunks/1qjsgebn9m-0l.js +0 -1
  318. package/out/_next/static/chunks/1rr74xxjtckyv.js +0 -1
  319. package/out/_next/static/chunks/1uu55ejvi7q5u.js +0 -1
  320. package/out/_next/static/chunks/1xbzxfeq9789f.js +0 -1
  321. package/out/_next/static/chunks/1ybiu-rkt50_1.js +0 -1
  322. package/out/_next/static/chunks/20qelrstvz9_n.js +0 -1
  323. package/out/_next/static/chunks/21at65obnoo8z.js +0 -1
  324. package/out/_next/static/chunks/21ko5mxfderw0.js +0 -1
  325. package/out/_next/static/chunks/21muzwu43o8xg.js +0 -1
  326. package/out/_next/static/chunks/23d-hvrwpixpm.js +0 -1
  327. package/out/_next/static/chunks/2569rrrffvm2w.js +0 -31
  328. package/out/_next/static/chunks/29o74k0d6hkdf.js +0 -1
  329. package/out/_next/static/chunks/2bm95r0011asw.js +0 -1
  330. package/out/_next/static/chunks/2btabnibkm0db.js +0 -1
  331. package/out/_next/static/chunks/2c--awgkdcikq.js +0 -1
  332. package/out/_next/static/chunks/2c2dspoukng-5.js +0 -1
  333. package/out/_next/static/chunks/2ep7mjbaoeou0.js +0 -1
  334. package/out/_next/static/chunks/2ezgqm7atphi6.js +0 -1
  335. package/out/_next/static/chunks/2gfjzq_vjea4w.js +0 -1
  336. package/out/_next/static/chunks/2h5hase6ewoyc.js +0 -1
  337. package/out/_next/static/chunks/2hghi41nhdww2.css +0 -3
  338. package/out/_next/static/chunks/2ies66gmou203.js +0 -1
  339. package/out/_next/static/chunks/2jenu2eek9viz.js +0 -1
  340. package/out/_next/static/chunks/2luaj_cf5f19-.js +0 -1
  341. package/out/_next/static/chunks/2mgmvz66gh5ub.js +0 -1
  342. package/out/_next/static/chunks/2nwlqtv3vrzcv.js +0 -1
  343. package/out/_next/static/chunks/2o8k8x5zcepfy.js +0 -1
  344. package/out/_next/static/chunks/2pcdnd4nzcw4c.js +0 -1
  345. package/out/_next/static/chunks/2q0rz76kj6h5z.js +0 -1
  346. package/out/_next/static/chunks/2si5cg3hl5dtf.js +0 -4
  347. package/out/_next/static/chunks/2uhrhq35bki6u.js +0 -1
  348. package/out/_next/static/chunks/2wi7y3sfqyqdo.js +0 -3
  349. package/out/_next/static/chunks/2ymtumj-hfrjo.js +0 -1
  350. package/out/_next/static/chunks/2zdzgmacaoor9.js +0 -1
  351. package/out/_next/static/chunks/3-irhmtm1q5qw.js +0 -1
  352. package/out/_next/static/chunks/3-k74vn9exnb6.js +0 -1
  353. package/out/_next/static/chunks/31ei992g8gqz9.js +0 -1
  354. package/out/_next/static/chunks/34845aqksy1dl.js +0 -3
  355. package/out/_next/static/chunks/34y7nx6qmat06.js +0 -1
  356. package/out/_next/static/chunks/36rqw8h6ildpl.js +0 -1
  357. package/out/_next/static/chunks/3a_khw6q6pyh1.js +0 -1
  358. package/out/_next/static/chunks/3c_31f20z4jrl.js +0 -1
  359. package/out/_next/static/chunks/3ckp70rgr63u9.js +0 -1
  360. package/out/_next/static/chunks/3ed24zmt8qfys.js +0 -1
  361. package/out/_next/static/chunks/3ez20hi1mxw0w.js +0 -1
  362. package/out/_next/static/chunks/3fdx-rnos5ft-.js +0 -1
  363. package/out/_next/static/chunks/3fgfbxxb-j_bn.js +0 -4
  364. package/out/_next/static/chunks/3k-gz8qf-mj-p.js +0 -1
  365. package/out/_next/static/chunks/3lehc5pujwhsz.js +0 -1
  366. package/out/_next/static/chunks/3m0ytnc241yfz.js +0 -1
  367. package/out/_next/static/chunks/3mpe7c3iyxn5h.js +0 -1
  368. package/out/_next/static/chunks/3mvaub8qjdyuc.js +0 -1
  369. package/out/_next/static/chunks/3nw7u4bie0-g6.js +0 -1
  370. package/out/_next/static/chunks/3qatb38-tk_gd.js +0 -1
  371. package/out/_next/static/chunks/3tdcdi_utmoy_.js +0 -1
  372. package/out/_next/static/chunks/3tdzweqszru4y.js +0 -1
  373. package/out/_next/static/chunks/3tt_ir_va6262.js +0 -1
  374. package/out/_next/static/chunks/3y_51bmdnc0ey.js +0 -1
  375. package/out/_next/static/chunks/3yr66ufoli71t.js +0 -1
  376. package/out/_next/static/chunks/41qxc142snm22.js +0 -1
  377. package/out/_next/static/chunks/43qmngblcab8f.js +0 -1
  378. package/out/_next/static/chunks/turbopack-3r8yn0j92tqw_.js +0 -1
  379. package/out/_not-found/__next._head.txt +0 -6
  380. package/out/_not-found/__next._index.txt +0 -5
  381. package/out/_not-found/__next._not-found.txt +0 -5
  382. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_buildManifest.js +0 -0
  383. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_clientMiddlewareManifest.js +0 -0
  384. /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_ssgManifest.js +0 -0
@@ -1,400 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39780,83958,e=>{"use strict";var t=e.i(37875);let i="clipPlaneFragmentDeclaration",o=`#ifdef CLIPPLANE
2
- varying float fClipDistance;
3
- #endif
4
- #ifdef CLIPPLANE2
5
- varying float fClipDistance2;
6
- #endif
7
- #ifdef CLIPPLANE3
8
- varying float fClipDistance3;
9
- #endif
10
- #ifdef CLIPPLANE4
11
- varying float fClipDistance4;
12
- #endif
13
- #ifdef CLIPPLANE5
14
- varying float fClipDistance5;
15
- #endif
16
- #ifdef CLIPPLANE6
17
- varying float fClipDistance6;
18
- #endif
19
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["clipPlaneFragmentDeclaration",0,{name:i,shader:o}],39780);let a="clipPlaneFragment",r=`#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
20
- if (false) {}
21
- #endif
22
- #ifdef CLIPPLANE
23
- else if (fClipDistance>0.0)
24
- {discard;}
25
- #endif
26
- #ifdef CLIPPLANE2
27
- else if (fClipDistance2>0.0)
28
- {discard;}
29
- #endif
30
- #ifdef CLIPPLANE3
31
- else if (fClipDistance3>0.0)
32
- {discard;}
33
- #endif
34
- #ifdef CLIPPLANE4
35
- else if (fClipDistance4>0.0)
36
- {discard;}
37
- #endif
38
- #ifdef CLIPPLANE5
39
- else if (fClipDistance5>0.0)
40
- {discard;}
41
- #endif
42
- #ifdef CLIPPLANE6
43
- else if (fClipDistance6>0.0)
44
- {discard;}
45
- #endif
46
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["clipPlaneFragment",0,{name:a,shader:r}],83958)},3107,51464,e=>{"use strict";var t=e.i(37875);let i="fogFragmentDeclaration",o=`#ifdef FOG
47
- #define FOGMODE_NONE 0.
48
- #define FOGMODE_EXP 1.
49
- #define FOGMODE_EXP2 2.
50
- #define FOGMODE_LINEAR 3.
51
- #define E 2.71828
52
- uniform vec4 vFogInfos;uniform vec3 vFogColor;varying vec3 vFogDistance;float CalcFogFactor()
53
- {float fogCoeff=1.0;float fogStart=vFogInfos.y;float fogEnd=vFogInfos.z;float fogDensity=vFogInfos.w;float fogDistance=length(vFogDistance);if (FOGMODE_LINEAR==vFogInfos.x)
54
- {fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}
55
- else if (FOGMODE_EXP==vFogInfos.x)
56
- {fogCoeff=1.0/pow(E,fogDistance*fogDensity);}
57
- else if (FOGMODE_EXP2==vFogInfos.x)
58
- {fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}
59
- return clamp(fogCoeff,0.0,1.0);}
60
- #endif
61
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["fogFragmentDeclaration",0,{name:i,shader:o}],3107);let a="fogFragment",r=`#ifdef FOG
62
- float fog=CalcFogFactor();
63
- #ifdef PBR
64
- fog=toLinearSpace(fog);
65
- #endif
66
- color.rgb=mix(vFogColor,color.rgb,fog);
67
- #endif
68
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["fogFragment",0,{name:a,shader:r}],51464)},87027,e=>{"use strict";var t=e.i(37875);let i="helperFunctions",o=`const float PI=3.1415926535897932384626433832795;const float TWO_PI=6.283185307179586;const float HALF_PI=1.5707963267948966;const float RECIPROCAL_PI=0.3183098861837907;const float RECIPROCAL_PI2=0.15915494309189535;const float RECIPROCAL_PI4=0.07957747154594767;const float HALF_MIN=5.96046448e-08;
69
- const float LinearEncodePowerApprox=2.2;const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);const float Epsilon=0.0000001;
70
- #define saturate(x) clamp(x,0.0,1.0)
71
- #define absEps(x) abs(x)+Epsilon
72
- #define maxEps(x) max(x,Epsilon)
73
- #define saturateEps(x) clamp(x,Epsilon,1.0)
74
- mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
75
- vec3(i0.x,i1.x,i2.x),
76
- vec3(i0.y,i1.y,i2.y),
77
- vec3(i0.z,i1.z,i2.z)
78
- );return outMatrix;}
79
- mat3 inverseMat3(mat3 inMatrix) {float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),
80
- b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
81
- b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
82
- #if USE_EXACT_SRGB_CONVERSIONS
83
- vec3 toLinearSpaceExact(vec3 color)
84
- {vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
85
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
86
- return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
87
- #else
88
- return
89
- vec3(
90
- color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
91
- color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
92
- color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
93
- #endif
94
- }
95
- vec3 toGammaSpaceExact(vec3 color)
96
- {vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
97
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
98
- return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
99
- #else
100
- return
101
- vec3(
102
- color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
103
- color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
104
- color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
105
- #endif
106
- }
107
- #endif
108
- float toLinearSpace(float color)
109
- {
110
- #if USE_EXACT_SRGB_CONVERSIONS
111
- float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
112
- #else
113
- return pow(color,LinearEncodePowerApprox);
114
- #endif
115
- }
116
- vec3 toLinearSpace(vec3 color)
117
- {
118
- #if USE_EXACT_SRGB_CONVERSIONS
119
- return toLinearSpaceExact(color);
120
- #else
121
- return pow(color,vec3(LinearEncodePowerApprox));
122
- #endif
123
- }
124
- vec4 toLinearSpace(vec4 color)
125
- {
126
- #if USE_EXACT_SRGB_CONVERSIONS
127
- return vec4(toLinearSpaceExact(color.rgb),color.a);
128
- #else
129
- return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
130
- #endif
131
- }
132
- float toGammaSpace(float color)
133
- {
134
- #if USE_EXACT_SRGB_CONVERSIONS
135
- float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
136
- #else
137
- return pow(color,GammaEncodePowerApprox);
138
- #endif
139
- }
140
- vec3 toGammaSpace(vec3 color)
141
- {
142
- #if USE_EXACT_SRGB_CONVERSIONS
143
- return toGammaSpaceExact(color);
144
- #else
145
- return pow(color,vec3(GammaEncodePowerApprox));
146
- #endif
147
- }
148
- vec4 toGammaSpace(vec4 color)
149
- {
150
- #if USE_EXACT_SRGB_CONVERSIONS
151
- return vec4(toGammaSpaceExact(color.rgb),color.a);
152
- #else
153
- return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
154
- #endif
155
- }
156
- float square(float value)
157
- {return value*value;}
158
- vec3 square(vec3 value)
159
- {return value*value;}
160
- float pow5(float value) {float sq=value*value;return sq*sq*value;}
161
- vec3 double_refract(vec3 I,vec3 N,float eta) {vec3 Tfront=refract(I,N,1.0/eta);vec3 Nback=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
162
- float getLuminanceUnclamped(vec3 color)
163
- {return dot(color,LuminanceEncodeApprox);}
164
- float getLuminance(vec3 color)
165
- {return saturate(getLuminanceUnclamped(color));}
166
- float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
167
- float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
168
- const float rgbdMaxRange=255.;vec4 toRGBD(vec3 color) {float maxRGB=maxEps(max(color.r,max(color.g,color.b)));float D =max(rgbdMaxRange/maxRGB,1.);D =saturate(floor(D)/255.);vec3 rgb=color.rgb*D;rgb=toGammaSpace(rgb);return vec4(saturate(rgb),D);}
169
- vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
170
- vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {vec3 invOrigVec=vec3(1.)/origVec;vec3 halfSize=cubeSize*0.5;vec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;vec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;vec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);float distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);vec3 intersectPositionWS=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
171
- vec3 equirectangularToCubemapDirection(vec2 uv) {float longitude=uv.x*TWO_PI-PI;float latitude=HALF_PI-uv.y*PI;vec3 direction;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
172
- float sqrtClamped(float value) {return sqrt(max(value,0.));}
173
- float avg(vec3 value) {return dot(value,vec3(0.333333333));}
174
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
175
- uint extractBits(uint value,int offset,int width) {return (value>>offset) & ((1u<<width)-1u);}
176
- int onlyBitPosition(uint value) {return (floatBitsToInt(float(value))>>23)-0x7f;}
177
- vec3 singleScatterToMultiScatterAlbedo(vec3 rho_ss) {vec3 s=sqrt(max(vec3(1.0)-rho_ss,vec3(0.0)));return (vec3(1.0)-s)*(vec3(1.0)-vec3(0.139)*s)/(vec3(1.0)+vec3(1.17)*s);}
178
- vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return 1.0-s*s;}
179
- vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms,float aniso) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return (1.0-s*s)/maxEps(1.0-aniso*s*s);}
180
- float min3(vec3 v) {return min(v.x,min(v.y,v.z));}
181
- float max3(vec3 v) {return max(v.x,max(v.y,v.z));}
182
- float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
183
- vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
184
- uint2float(rstate*2447445414u));}
185
- #endif
186
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["helperFunctions",0,{name:i,shader:o}])},23044,e=>{"use strict";var t=e.i(37875);let i="sceneUboDeclaration",o=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
187
- #ifdef MULTIVIEW
188
- mat4 viewProjectionR;
189
- #endif
190
- mat4 view;mat4 projection;vec4 vEyePosition;mat4 inverseProjection;};
191
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["sceneUboDeclaration",0,{name:i,shader:o}])},64010,46349,85394,e=>{"use strict";var t=e.i(37875);let i="meshUboDeclaration",o=`#ifdef WEBGL2
192
- uniform mat4 world;uniform float visibility;
193
- #else
194
- layout(std140,column_major) uniform;uniform Mesh
195
- {mat4 world;float visibility;};
196
- #endif
197
- #define WORLD_UBO
198
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["meshUboDeclaration",0,{name:i,shader:o}],64010);let a="mainUVVaryingDeclaration",r=`#ifdef MAINUV{X}
199
- varying vec2 vMainUV{X};
200
- #endif
201
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["mainUVVaryingDeclaration",0,{name:a,shader:r}],46349);let n="logDepthDeclaration",l=`#ifdef LOGARITHMICDEPTH
202
- uniform float logarithmicDepthConstant;varying float vFragmentDepth;
203
- #endif
204
- `;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["logDepthDeclaration",0,{name:n,shader:l}],85394)},98932,e=>{"use strict";var t=e.i(37875);let i="harmonicsFunctions",o=`#ifdef USESPHERICALFROMREFLECTIONMAP
205
- #ifdef SPHERICAL_HARMONICS
206
- vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
207
- + vSphericalL1_1*(normal.y)
208
- + vSphericalL10*(normal.z)
209
- + vSphericalL11*(normal.x)
210
- + vSphericalL2_2*(normal.y*normal.x)
211
- + vSphericalL2_1*(normal.y*normal.z)
212
- + vSphericalL20*((3.0*normal.z*normal.z)-1.0)
213
- + vSphericalL21*(normal.z*normal.x)
214
- + vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
215
- #else
216
- vec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}
217
- #endif
218
- #endif
219
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["harmonicsFunctions",0,{name:i,shader:o}])},85916,e=>{"use strict";var t=e.i(37875);let i="pbrBRDFFunctions",o=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
220
- #define BRDF_DIFFUSE_MODEL_EON 0
221
- #define BRDF_DIFFUSE_MODEL_BURLEY 1
222
- #define BRDF_DIFFUSE_MODEL_LAMBERT 2
223
- #define BRDF_DIFFUSE_MODEL_LEGACY 3
224
- #define DIELECTRIC_SPECULAR_MODEL_GLTF 0
225
- #define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
226
- #define CONDUCTOR_SPECULAR_MODEL_GLTF 0
227
- #define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
228
- #if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
229
- #ifdef MS_BRDF_ENERGY_CONSERVATION
230
- vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
231
- #endif
232
- #if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
233
- #define F82_COS_THETA_MAX 0.142857143
234
- #define F82_ONE_MINUS_CTM_POW5 0.462664366
235
- #define F82_ONE_MINUS_CTM_POW6 0.396569457
236
- #define F82_B_DENOMINATOR_RECIP 17.6512785
237
- #define BRDF_Z_SCALE 16.0
238
- vec3 getF82Specular(float NdotV,vec3 F0,vec3 edgeTint,float roughness) {vec3 white_minus_F0=vec3(1.0)-F0;vec3 b=(F0+white_minus_F0*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;float cos_theta=max(roughness,NdotV);float one_minus_cos_theta=1.0-cos_theta;vec3 offset_from_F0=(white_minus_F0-b*cos_theta*one_minus_cos_theta)*pow(one_minus_cos_theta,5.0);return clamp(F0+offset_from_F0,0.0,1.0);}
239
- vec3 getF82B(vec3 F0,vec3 edgeTint) {return (F0+(vec3(1.0)-F0)*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;}
240
- vec3 getF82DirectionalAlbedo(vec3 F0,vec3 F90,vec3 b,vec3 environmentBrdf) {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
241
- vec3 getF82AverageFresnel(vec3 F0,vec3 b) {return F0+(vec3(1.0)-F0)/21.0-b/126.0;}
242
- #endif
243
- #ifdef FUZZENVIRONMENTBRDF
244
- vec3 getFuzzBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(perceptualRoughness,NdotV);vec4 brdfLookup=texture2D(environmentFuzzBrdfSampler,UV);const vec2 RiRange=vec2(0.0,0.75);const vec2 ARange =vec2(0.005,0.88);const vec2 BRange =vec2(-0.18,0.002);brdfLookup.r=mix(ARange.x, ARange.y, brdfLookup.r);brdfLookup.g=mix(BRange.x, BRange.y, brdfLookup.g);brdfLookup.b=mix(RiRange.x,RiRange.y,brdfLookup.b);return brdfLookup.rgb;}
245
- #endif
246
- #ifdef ENVIRONMENTBRDF
247
- vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
248
- #ifdef ENVIRONMENTBRDF_RGBD
249
- brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
250
- #endif
251
- return brdfLookup.rgb;}
252
- vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
253
- #ifdef BRDF_V_HEIGHT_CORRELATED
254
- vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
255
- #else
256
- vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
257
- #endif
258
- return reflectance;}
259
- vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
260
- #ifdef BRDF_V_HEIGHT_CORRELATED
261
- vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
262
- #else
263
- vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
264
- #endif
265
- return reflectance;}
266
- #endif
267
- /* NOT USED
268
- #if defined(SHEEN) && defined(SHEEN_SOFTER)
269
- float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
270
- {float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
271
- #endif
272
- */
273
- #if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
274
- vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
275
- {float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
276
- #endif
277
- #if defined(SHEEN) && defined(ENVIRONMENTBRDF)
278
- /**
279
- * The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
280
- * The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
281
- */
282
- vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
283
- #endif
284
- vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
285
- {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
286
- float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
287
- {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
288
- #ifdef CLEARCOAT
289
- vec3 getR0RemappedForClearCoat(vec3 f0) {
290
- #ifdef CLEARCOAT_DEFAULTIOR
291
- #ifdef MOBILE
292
- return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
293
- #else
294
- return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
295
- #endif
296
- #else
297
- vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
298
- #endif
299
- }
300
- #endif
301
- #ifdef IRIDESCENCE
302
- const mat3 XYZ_TO_REC709=mat3(
303
- 3.2404542,-0.9692660, 0.0556434,
304
- -1.5371385, 1.8760108,-0.2040259,
305
- -0.4985314, 0.0415560, 1.0572252
306
- );vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
307
- vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
308
- float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
309
- vec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}
310
- vec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
311
- float cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));
312
- vec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);float maxR1=max(R1.r,max(R1.g,R1.b));if (maxR1<1e-6) {return max(vec3(R12),vec3(0.0));}
313
- vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)
314
- {Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
315
- return max(I,vec3(0.0));}
316
- #endif
317
- float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
318
- {float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
319
- #ifdef SHEEN
320
- float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
321
- {float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
322
- #endif
323
- #ifdef ANISOTROPIC
324
- float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
325
- #endif
326
- #ifdef BRDF_V_HEIGHT_CORRELATED
327
- float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
328
- #ifdef MOBILE
329
- float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
330
- #else
331
- float a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
332
- #endif
333
- }
334
- #else
335
- float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
336
- {
337
- #ifdef MOBILE
338
- return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
339
- #else
340
- float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
341
- #endif
342
- }
343
- float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
344
- {float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
345
- #endif
346
- #ifdef ANISOTROPIC
347
- float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}
348
- #endif
349
- #ifdef CLEARCOAT
350
- float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
351
- #endif
352
- #ifdef SHEEN
353
- float visibility_Ashikhmin(float NdotL,float NdotV)
354
- {return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
355
- /* NOT USED
356
- #ifdef SHEEN_SOFTER
357
- float l(float x,float alphaG)
358
- {float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
359
- float lambdaSheen(float cosTheta,float alphaG)
360
- {return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
361
- float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
362
- {float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
363
- #endif
364
- */
365
- #endif
366
- float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =
367
- (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
368
- (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
369
- const float constant1_FON=0.5-2.0/(3.0*PI);const float constant2_FON=2.0/3.0-28.0/(15.0*PI);float E_FON_approx(float mu,float roughness)
370
- {float sigma=roughness;
371
- float mucomp=1.0-mu;float mucomp2=mucomp*mucomp;const mat2 Gcoeffs=mat2(0.0571085289,-0.332181442,
372
- 0.491881867,0.0714429953);float GoverPi=dot(Gcoeffs*vec2(mucomp,mucomp2),vec2(1.0,mucomp2));return (1.0+sigma*GoverPi)/(1.0+constant1_FON*sigma);}
373
- vec3 diffuseBRDF_EON(vec3 albedo,float roughness,float NdotL,float NdotV,float LdotV)
374
- {vec3 rho=albedo;float sigma=roughness;
375
- float mu_i=NdotL;
376
- float mu_o=NdotV;
377
- float s=LdotV-mu_i*mu_o;
378
- float sovertF=s>0.0 ? s/max(mu_i,mu_o) : s;
379
- float AF=1.0/(1.0+constant1_FON*sigma);
380
- vec3 f_ss=(rho*RECIPROCAL_PI)*AF*(1.0+sigma*sovertF);
381
- float EFo=E_FON_approx(mu_o,sigma);
382
- float EFi=E_FON_approx(mu_i,sigma);
383
- float avgEF=AF*(1.0+constant2_FON*sigma);
384
- vec3 rho_ms=(rho*rho)*avgEF/(vec3(1.0)-rho*(1.0-avgEF));const float eps=1.0e-7;vec3 f_ms=(rho_ms*RECIPROCAL_PI)*max(eps,1.0-EFo)
385
- * max(eps,1.0-EFi)
386
- / max(eps,1.0-avgEF);return (f_ss+f_ms);}
387
- #ifdef SS_TRANSLUCENCY
388
- vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
389
- float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
390
- #endif
391
- #endif
392
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrBRDFFunctions",0,{name:i,shader:o}])},11692,e=>{"use strict";var t=e.i(37875);e.i(23044),e.i(64010);let i="pbrUboDeclaration",o=`layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec4 cameraInfo;vec4 vTextureRepetitionHexTilingParams;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;
393
- #define ADDITIONAL_UBO_DECLARATION
394
- };
395
- #include<sceneUboDeclaration>
396
- #include<meshUboDeclaration>
397
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrUboDeclaration",0,{name:i,shader:o}])},33053,73525,31814,e=>{"use strict";var t=e.i(37875);let i="bumpFragmentMainFunctions",o=`#ifndef TEXRD_DEFINED
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,58961,94389,3127,e=>{"use strict";var t=e.i(2342);let i="bumpFragmentMainFunctions",o=`#ifndef TEXRD_DEFINED
398
2
  #define TEXRD(s,uv) texture2D(s,uv)
399
3
  #define TEXRD_DEFINED
400
4
  #endif
@@ -459,7 +63,7 @@ vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
459
63
  mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
460
64
  {vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}
461
65
  #endif
462
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["bumpFragmentMainFunctions",0,{name:i,shader:o}],33053),e.i(32172);let a="bumpFragmentFunctions",r=`#if defined(BUMP)
66
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["bumpFragmentMainFunctions",0,{name:i,shader:o}],58961),e.i(28758);let a="bumpFragmentFunctions",r=`#if defined(BUMP)
463
67
  #include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
464
68
  #endif
465
69
  #if defined(DETAIL)
@@ -485,82 +89,215 @@ vec2 parallaxOffset(vec3 viewDir,float heightScale)
485
89
  #ifdef PARALLAX_RHS
486
90
  return texCoordOffset;
487
91
  #else
488
- return -texCoordOffset;
92
+ return -texCoordOffset;
93
+ #endif
94
+ }
95
+ #endif
96
+ `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["bumpFragmentFunctions",0,{name:a,shader:r}],94389);let n="bumpFragment",l=`vec2 uvOffset=vec2(0.0,0.0);
97
+ #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
98
+ #ifdef NORMALXYSCALE
99
+ float normalScale=1.0;
100
+ #elif defined(BUMP)
101
+ float normalScale=vBumpInfos.y;
102
+ #else
103
+ float normalScale=1.0;
104
+ #endif
105
+ #if defined(TANGENT) && defined(NORMAL)
106
+ mat3 TBN=vTBN;
107
+ #elif defined(BUMP)
108
+ vec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
109
+ #else
110
+ vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
111
+ #endif
112
+ #elif defined(ANISOTROPIC)
113
+ #if defined(TANGENT) && defined(NORMAL)
114
+ mat3 TBN=vTBN;
115
+ #else
116
+ vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
117
+ #endif
118
+ #endif
119
+ #ifdef PARALLAX
120
+ mat3 invTBN=transposeMat3(TBN);
121
+ #ifdef PARALLAXOCCLUSION
122
+ uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);
123
+ #else
124
+ uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
125
+ #endif
126
+ #endif
127
+ #ifdef DETAIL
128
+ vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
129
+ #endif
130
+ #ifdef BUMP
131
+ #ifdef OBJECTSPACE_NORMALMAP
132
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
133
+ normalW=normalize(TEXRD(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
134
+ #elif !defined(DETAIL)
135
+ normalW=perturbNormal(TBN,TEXRD(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);
136
+ #else
137
+ vec3 bumpNormal=TEXRD(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
138
+ #if DETAIL_NORMALBLENDMETHOD==0
139
+ detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
140
+ #elif DETAIL_NORMALBLENDMETHOD==1
141
+ detailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
142
+ #endif
143
+ normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
144
+ #endif
145
+ #elif defined(DETAIL)
146
+ detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
147
+ #endif
148
+ `;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["bumpFragment",0,{name:n,shader:l}],3127)},16774,e=>{"use strict";var t=e.i(2342);let i="clusteredLightingFunctions",o=`struct ClusteredLight {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;vec4 vLightDirection;vec4 vLightFalloff;};
149
+ #define inline
150
+ ClusteredLight getClusteredLight(sampler2D lightDataTexture,int index) {return ClusteredLight(
151
+ texelFetch(lightDataTexture,ivec2(0,index),0),
152
+ texelFetch(lightDataTexture,ivec2(1,index),0),
153
+ texelFetch(lightDataTexture,ivec2(2,index),0),
154
+ texelFetch(lightDataTexture,ivec2(3,index),0),
155
+ texelFetch(lightDataTexture,ivec2(4,index),0)
156
+ );}
157
+ int getClusteredSliceIndex(vec2 sliceData,float viewDepth) {return int(log(viewDepth)*sliceData.x+sliceData.y);}
158
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["clusteredLightingFunctions",0,{name:i,shader:o}])},2218,e=>{"use strict";var t=e.i(2342);let i="decalFragment",o=`#ifdef DECAL
159
+ #ifdef GAMMADECAL
160
+ decalColor.rgb=toLinearSpace(decalColor.rgb);
161
+ #endif
162
+ #ifdef DECAL_SMOOTHALPHA
163
+ decalColor.a*=decalColor.a;
164
+ #endif
165
+ surfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);
166
+ #endif
167
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["decalFragment",0,{name:i,shader:o}])},8500,e=>{"use strict";var t=e.i(2342);let i="harmonicsFunctions",o=`#ifdef USESPHERICALFROMREFLECTIONMAP
168
+ #ifdef SPHERICAL_HARMONICS
169
+ vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
170
+ + vSphericalL1_1*(normal.y)
171
+ + vSphericalL10*(normal.z)
172
+ + vSphericalL11*(normal.x)
173
+ + vSphericalL2_2*(normal.y*normal.x)
174
+ + vSphericalL2_1*(normal.y*normal.z)
175
+ + vSphericalL20*((3.0*normal.z*normal.z)-1.0)
176
+ + vSphericalL21*(normal.z*normal.x)
177
+ + vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
178
+ #else
179
+ vec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}
180
+ #endif
181
+ #endif
182
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["harmonicsFunctions",0,{name:i,shader:o}])},62308,e=>{"use strict";var t=e.i(2342);let i="helperFunctions",o=`const float PI=3.1415926535897932384626433832795;const float TWO_PI=6.283185307179586;const float HALF_PI=1.5707963267948966;const float RECIPROCAL_PI=0.3183098861837907;const float RECIPROCAL_PI2=0.15915494309189535;const float RECIPROCAL_PI4=0.07957747154594767;const float HALF_MIN=5.96046448e-08;
183
+ const float LinearEncodePowerApprox=2.2;const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);const float Epsilon=0.0000001;
184
+ #define saturate(x) clamp(x,0.0,1.0)
185
+ #define absEps(x) abs(x)+Epsilon
186
+ #define maxEps(x) max(x,Epsilon)
187
+ #define saturateEps(x) clamp(x,Epsilon,1.0)
188
+ mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
189
+ vec3(i0.x,i1.x,i2.x),
190
+ vec3(i0.y,i1.y,i2.y),
191
+ vec3(i0.z,i1.z,i2.z)
192
+ );return outMatrix;}
193
+ mat3 inverseMat3(mat3 inMatrix) {float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),
194
+ b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
195
+ b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
196
+ #if USE_EXACT_SRGB_CONVERSIONS
197
+ vec3 toLinearSpaceExact(vec3 color)
198
+ {vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
199
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
200
+ return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
201
+ #else
202
+ return
203
+ vec3(
204
+ color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
205
+ color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
206
+ color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
207
+ #endif
208
+ }
209
+ vec3 toGammaSpaceExact(vec3 color)
210
+ {vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
211
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
212
+ return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
213
+ #else
214
+ return
215
+ vec3(
216
+ color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
217
+ color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
218
+ color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
489
219
  #endif
490
220
  }
491
221
  #endif
492
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["bumpFragmentFunctions",0,{name:a,shader:r}],73525);let n="bumpFragment",l=`vec2 uvOffset=vec2(0.0,0.0);
493
- #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
494
- #ifdef NORMALXYSCALE
495
- float normalScale=1.0;
496
- #elif defined(BUMP)
497
- float normalScale=vBumpInfos.y;
222
+ float toLinearSpace(float color)
223
+ {
224
+ #if USE_EXACT_SRGB_CONVERSIONS
225
+ float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
498
226
  #else
499
- float normalScale=1.0;
227
+ return pow(color,LinearEncodePowerApprox);
500
228
  #endif
501
- #if defined(TANGENT) && defined(NORMAL)
502
- mat3 TBN=vTBN;
503
- #elif defined(BUMP)
504
- vec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
229
+ }
230
+ vec3 toLinearSpace(vec3 color)
231
+ {
232
+ #if USE_EXACT_SRGB_CONVERSIONS
233
+ return toLinearSpaceExact(color);
505
234
  #else
506
- vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
235
+ return pow(color,vec3(LinearEncodePowerApprox));
507
236
  #endif
508
- #elif defined(ANISOTROPIC)
509
- #if defined(TANGENT) && defined(NORMAL)
510
- mat3 TBN=vTBN;
237
+ }
238
+ vec4 toLinearSpace(vec4 color)
239
+ {
240
+ #if USE_EXACT_SRGB_CONVERSIONS
241
+ return vec4(toLinearSpaceExact(color.rgb),color.a);
511
242
  #else
512
- vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
513
- #endif
243
+ return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
514
244
  #endif
515
- #ifdef PARALLAX
516
- mat3 invTBN=transposeMat3(TBN);
517
- #ifdef PARALLAXOCCLUSION
518
- uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);
245
+ }
246
+ float toGammaSpace(float color)
247
+ {
248
+ #if USE_EXACT_SRGB_CONVERSIONS
249
+ float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
519
250
  #else
520
- uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
521
- #endif
522
- #endif
523
- #ifdef DETAIL
524
- vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
251
+ return pow(color,GammaEncodePowerApprox);
525
252
  #endif
526
- #ifdef BUMP
527
- #ifdef OBJECTSPACE_NORMALMAP
528
- #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
529
- normalW=normalize(TEXRD(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
530
- #elif !defined(DETAIL)
531
- normalW=perturbNormal(TBN,TEXRD(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);
253
+ }
254
+ vec3 toGammaSpace(vec3 color)
255
+ {
256
+ #if USE_EXACT_SRGB_CONVERSIONS
257
+ return toGammaSpaceExact(color);
532
258
  #else
533
- vec3 bumpNormal=TEXRD(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
534
- #if DETAIL_NORMALBLENDMETHOD==0
535
- detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
536
- #elif DETAIL_NORMALBLENDMETHOD==1
537
- detailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
538
- #endif
539
- normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
540
- #endif
541
- #elif defined(DETAIL)
542
- detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
543
- #endif
544
- `;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["bumpFragment",0,{name:n,shader:l}],31814)},582,e=>{"use strict";var t=e.i(37875);let i="decalFragment",o=`#ifdef DECAL
545
- #ifdef GAMMADECAL
546
- decalColor.rgb=toLinearSpace(decalColor.rgb);
259
+ return pow(color,vec3(GammaEncodePowerApprox));
547
260
  #endif
548
- #ifdef DECAL_SMOOTHALPHA
549
- decalColor.a*=decalColor.a;
261
+ }
262
+ vec4 toGammaSpace(vec4 color)
263
+ {
264
+ #if USE_EXACT_SRGB_CONVERSIONS
265
+ return vec4(toGammaSpaceExact(color.rgb),color.a);
266
+ #else
267
+ return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
550
268
  #endif
551
- surfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);
269
+ }
270
+ float square(float value)
271
+ {return value*value;}
272
+ vec3 square(vec3 value)
273
+ {return value*value;}
274
+ float pow5(float value) {float sq=value*value;return sq*sq*value;}
275
+ vec3 double_refract(vec3 I,vec3 N,float eta) {vec3 Tfront=refract(I,N,1.0/eta);vec3 Nback=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
276
+ float getLuminanceUnclamped(vec3 color)
277
+ {return dot(color,LuminanceEncodeApprox);}
278
+ float getLuminance(vec3 color)
279
+ {return saturate(getLuminanceUnclamped(color));}
280
+ float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
281
+ float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
282
+ const float rgbdMaxRange=255.;vec4 toRGBD(vec3 color) {float maxRGB=maxEps(max(color.r,max(color.g,color.b)));float D =max(rgbdMaxRange/maxRGB,1.);D =saturate(floor(D)/255.);vec3 rgb=color.rgb*D;rgb=toGammaSpace(rgb);return vec4(saturate(rgb),D);}
283
+ vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
284
+ vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {vec3 invOrigVec=vec3(1.)/origVec;vec3 halfSize=cubeSize*0.5;vec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;vec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;vec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);float distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);vec3 intersectPositionWS=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
285
+ vec3 equirectangularToCubemapDirection(vec2 uv) {float longitude=uv.x*TWO_PI-PI;float latitude=HALF_PI-uv.y*PI;vec3 direction;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
286
+ float sqrtClamped(float value) {return sqrt(max(value,0.));}
287
+ float avg(vec3 value) {return dot(value,vec3(0.333333333));}
288
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
289
+ uint extractBits(uint value,int offset,int width) {return (value>>offset) & ((1u<<width)-1u);}
290
+ int onlyBitPosition(uint value) {return (floatBitsToInt(float(value))>>23)-0x7f;}
291
+ vec3 singleScatterToMultiScatterAlbedo(vec3 rho_ss) {vec3 s=sqrt(max(vec3(1.0)-rho_ss,vec3(0.0)));return (vec3(1.0)-s)*(vec3(1.0)-vec3(0.139)*s)/(vec3(1.0)+vec3(1.17)*s);}
292
+ vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return 1.0-s*s;}
293
+ vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms,float aniso) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return (1.0-s*s)/maxEps(1.0-aniso*s*s);}
294
+ float min3(vec3 v) {return min(v.x,min(v.y,v.z));}
295
+ float max3(vec3 v) {return max(v.x,max(v.y,v.z));}
296
+ float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
297
+ vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
298
+ uint2float(rstate*2447445414u));}
552
299
  #endif
553
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["decalFragment",0,{name:i,shader:o}])},53868,e=>{"use strict";var t=e.i(37875);let i="clusteredLightingFunctions",o=`struct ClusteredLight {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;vec4 vLightDirection;vec4 vLightFalloff;};
554
- #define inline
555
- ClusteredLight getClusteredLight(sampler2D lightDataTexture,int index) {return ClusteredLight(
556
- texelFetch(lightDataTexture,ivec2(0,index),0),
557
- texelFetch(lightDataTexture,ivec2(1,index),0),
558
- texelFetch(lightDataTexture,ivec2(2,index),0),
559
- texelFetch(lightDataTexture,ivec2(3,index),0),
560
- texelFetch(lightDataTexture,ivec2(4,index),0)
561
- );}
562
- int getClusteredSliceIndex(vec2 sliceData,float viewDepth) {return int(log(viewDepth)*sliceData.x+sliceData.y);}
563
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["clusteredLightingFunctions",0,{name:i,shader:o}])},11989,e=>{"use strict";var t=e.i(37875);let i="lightFragment",o=`#ifdef LIGHT{X}
300
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["helperFunctions",0,{name:i,shader:o}])},63236,e=>{"use strict";var t=e.i(2342);let i="lightFragment",o=`#ifdef LIGHT{X}
564
301
  #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
565
302
  #else
566
303
  vec4 diffuse{X}=light{X}.vLightDiffuse;
@@ -938,133 +675,193 @@ sheenBase+=info.sheen.rgb*shadow;
938
675
  #endif
939
676
  #endif
940
677
  #endif
941
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["lightFragment",0,{name:i,shader:o}])},32172,33165,e=>{"use strict";var t=e.i(37875);let i="samplerFragmentDeclaration",o=`#ifdef _DEFINENAME_
942
- #if _DEFINENAME_DIRECTUV==1
943
- #define v_VARYINGNAME_UV vMainUV1
944
- #elif _DEFINENAME_DIRECTUV==2
945
- #define v_VARYINGNAME_UV vMainUV2
946
- #elif _DEFINENAME_DIRECTUV==3
947
- #define v_VARYINGNAME_UV vMainUV3
948
- #elif _DEFINENAME_DIRECTUV==4
949
- #define v_VARYINGNAME_UV vMainUV4
950
- #elif _DEFINENAME_DIRECTUV==5
951
- #define v_VARYINGNAME_UV vMainUV5
952
- #elif _DEFINENAME_DIRECTUV==6
953
- #define v_VARYINGNAME_UV vMainUV6
678
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["lightFragment",0,{name:i,shader:o}])},80790,e=>{"use strict";var t=e.i(2342);let i="logDepthDeclaration",o=`#ifdef LOGARITHMICDEPTH
679
+ uniform float logarithmicDepthConstant;varying float vFragmentDepth;
680
+ #endif
681
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["logDepthDeclaration",0,{name:i,shader:o}])},65225,e=>{"use strict";var t=e.i(2342);let i="mainUVVaryingDeclaration",o=`#ifdef MAINUV{X}
682
+ varying vec2 vMainUV{X};
683
+ #endif
684
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["mainUVVaryingDeclaration",0,{name:i,shader:o}])},49676,e=>{"use strict";var t=e.i(2342);let i="meshUboDeclaration",o=`#ifdef WEBGL2
685
+ uniform mat4 world;uniform float visibility;
954
686
  #else
955
- varying vec2 v_VARYINGNAME_UV;
687
+ layout(std140,column_major) uniform;uniform Mesh
688
+ {mat4 world;float visibility;};
956
689
  #endif
957
- uniform sampler2D _SAMPLERNAME_Sampler;
690
+ #define WORLD_UBO
691
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["meshUboDeclaration",0,{name:i,shader:o}])},74701,e=>{"use strict";var t=e.i(2342);let i="pbrBRDFFunctions",o=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
692
+ #define BRDF_DIFFUSE_MODEL_EON 0
693
+ #define BRDF_DIFFUSE_MODEL_BURLEY 1
694
+ #define BRDF_DIFFUSE_MODEL_LAMBERT 2
695
+ #define BRDF_DIFFUSE_MODEL_LEGACY 3
696
+ #define DIELECTRIC_SPECULAR_MODEL_GLTF 0
697
+ #define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
698
+ #define CONDUCTOR_SPECULAR_MODEL_GLTF 0
699
+ #define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
700
+ #if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
701
+ #ifdef MS_BRDF_ENERGY_CONSERVATION
702
+ vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
958
703
  #endif
959
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["samplerFragmentDeclaration",0,{name:i,shader:o}],32172);let a="reflectionFunction",r=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
960
- {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); }
961
- vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
962
- {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); }
963
- vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
964
- {vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);}
965
- vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
966
- {vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);}
967
- vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
968
- {vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
969
- vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
970
- {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
971
- #ifdef INVERTCUBICMAP
972
- coords.y*=-1.0;
704
+ #if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
705
+ #define F82_COS_THETA_MAX 0.142857143
706
+ #define F82_ONE_MINUS_CTM_POW5 0.462664366
707
+ #define F82_ONE_MINUS_CTM_POW6 0.396569457
708
+ #define F82_B_DENOMINATOR_RECIP 17.6512785
709
+ #define BRDF_Z_SCALE 16.0
710
+ vec3 getF82Specular(float NdotV,vec3 F0,vec3 edgeTint,float roughness) {vec3 white_minus_F0=vec3(1.0)-F0;vec3 b=(F0+white_minus_F0*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;float cos_theta=max(roughness,NdotV);float one_minus_cos_theta=1.0-cos_theta;vec3 offset_from_F0=(white_minus_F0-b*cos_theta*one_minus_cos_theta)*pow(one_minus_cos_theta,5.0);return clamp(F0+offset_from_F0,0.0,1.0);}
711
+ vec3 getF82B(vec3 F0,vec3 edgeTint) {return (F0+(vec3(1.0)-F0)*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;}
712
+ vec3 getF82DirectionalAlbedo(vec3 F0,vec3 F90,vec3 b,vec3 environmentBrdf) {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
713
+ vec3 getF82AverageFresnel(vec3 F0,vec3 b) {return F0+(vec3(1.0)-F0)/21.0-b/126.0;}
973
714
  #endif
974
- return coords;}
975
- vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
976
- {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
977
- #ifdef INVERTCUBICMAP
978
- coords.y*=-1.0;
715
+ #ifdef FUZZENVIRONMENTBRDF
716
+ vec3 getFuzzBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(perceptualRoughness,NdotV);vec4 brdfLookup=texture2D(environmentFuzzBrdfSampler,UV);const vec2 RiRange=vec2(0.0,0.75);const vec2 ARange =vec2(0.005,0.88);const vec2 BRange =vec2(-0.18,0.002);brdfLookup.r=mix(ARange.x, ARange.y, brdfLookup.r);brdfLookup.g=mix(BRange.x, BRange.y, brdfLookup.g);brdfLookup.b=mix(RiRange.x,RiRange.y,brdfLookup.b);return brdfLookup.rgb;}
979
717
  #endif
980
- return coords;}
981
- vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
982
- {return vec3(reflectionMatrix*(view*worldPos));}
983
- vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
984
- {return vec3(reflectionMatrix*vec4(positionW,1.));}
985
- #ifdef REFLECTION
986
- vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
987
- {
988
- #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
989
- vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
718
+ #ifdef ENVIRONMENTBRDF
719
+ vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
720
+ #ifdef ENVIRONMENTBRDF_RGBD
721
+ brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
990
722
  #endif
991
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
992
- vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
723
+ return brdfLookup.rgb;}
724
+ vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
725
+ #ifdef BRDF_V_HEIGHT_CORRELATED
726
+ vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
727
+ #else
728
+ vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
993
729
  #endif
994
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR
995
- return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
730
+ return reflectance;}
731
+ vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
732
+ #ifdef BRDF_V_HEIGHT_CORRELATED
733
+ vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
734
+ #else
735
+ vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
996
736
  #endif
997
- #ifdef REFLECTIONMAP_SPHERICAL
998
- return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
737
+ return reflectance;}
999
738
  #endif
1000
- #ifdef REFLECTIONMAP_PLANAR
1001
- return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
739
+ /* NOT USED
740
+ #if defined(SHEEN) && defined(SHEEN_SOFTER)
741
+ float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
742
+ {float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
1002
743
  #endif
1003
- #ifdef REFLECTIONMAP_CUBIC
1004
- #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
1005
- return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);
744
+ */
745
+ #if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
746
+ vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
747
+ {float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
748
+ #endif
749
+ #if defined(SHEEN) && defined(ENVIRONMENTBRDF)
750
+ /**
751
+ * The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
752
+ * The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
753
+ */
754
+ vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
755
+ #endif
756
+ vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
757
+ {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
758
+ float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
759
+ {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
760
+ #ifdef CLEARCOAT
761
+ vec3 getR0RemappedForClearCoat(vec3 f0) {
762
+ #ifdef CLEARCOAT_DEFAULTIOR
763
+ #ifdef MOBILE
764
+ return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
1006
765
  #else
1007
- return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
766
+ return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
1008
767
  #endif
768
+ #else
769
+ vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
1009
770
  #endif
1010
- #ifdef REFLECTIONMAP_PROJECTION
1011
- return computeProjectionCoords(worldPos,view,reflectionMatrix);
771
+ }
1012
772
  #endif
1013
- #ifdef REFLECTIONMAP_SKYBOX
1014
- return computeSkyBoxCoords(vPositionUVW,reflectionMatrix);
773
+ #ifdef IRIDESCENCE
774
+ const mat3 XYZ_TO_REC709=mat3(
775
+ 3.2404542,-0.9692660, 0.0556434,
776
+ -1.5371385, 1.8760108,-0.2040259,
777
+ -0.4985314, 0.0415560, 1.0572252
778
+ );vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
779
+ vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
780
+ float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
781
+ vec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}
782
+ vec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
783
+ float cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));
784
+ vec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);float maxR1=max(R1.r,max(R1.g,R1.b));if (maxR1<1e-6) {return max(vec3(R12),vec3(0.0));}
785
+ vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)
786
+ {Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
787
+ return max(I,vec3(0.0));}
1015
788
  #endif
1016
- #ifdef REFLECTIONMAP_EXPLICIT
1017
- return vec3(0,0,0);
789
+ float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
790
+ {float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
791
+ #ifdef SHEEN
792
+ float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
793
+ {float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
1018
794
  #endif
1019
- }
795
+ #ifdef ANISOTROPIC
796
+ float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
1020
797
  #endif
1021
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["reflectionFunction",0,{name:a,shader:r}],33165)},82784,91468,e=>{"use strict";var t=e.i(37875);let i="pbrFragmentReflectionDeclaration",o=`#ifdef REFLECTION
1022
- #ifdef REFLECTIONMAP_3D
1023
- #define sampleReflection(s,c) textureCube(s,c)
1024
- uniform samplerCube reflectionSampler;
1025
- #ifdef LODBASEDMICROSFURACE
1026
- #define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)
798
+ #ifdef BRDF_V_HEIGHT_CORRELATED
799
+ float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
800
+ #ifdef MOBILE
801
+ float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
1027
802
  #else
1028
- uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
1029
- #endif
1030
- #ifdef USEIRRADIANCEMAP
1031
- uniform samplerCube irradianceSampler;
803
+ float a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
1032
804
  #endif
805
+ }
1033
806
  #else
1034
- #define sampleReflection(s,c) texture2D(s,c)
1035
- uniform sampler2D reflectionSampler;
1036
- #ifdef LODBASEDMICROSFURACE
1037
- #define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
1038
- #else
1039
- uniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;
1040
- #endif
1041
- #ifdef USEIRRADIANCEMAP
1042
- uniform sampler2D irradianceSampler;
1043
- #endif
1044
- #endif
1045
- #ifdef REFLECTIONMAP_SKYBOX
1046
- varying vec3 vPositionUVW;
807
+ float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
808
+ {
809
+ #ifdef MOBILE
810
+ return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
1047
811
  #else
1048
- #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
1049
- varying vec3 vDirectionW;
812
+ float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
1050
813
  #endif
814
+ }
815
+ float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
816
+ {float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
1051
817
  #endif
818
+ #ifdef ANISOTROPIC
819
+ float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}
1052
820
  #endif
1053
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentReflectionDeclaration",0,{name:i,shader:o}],82784);let a="pbrIBLFunctions",r=`#if defined(REFLECTION) || defined(SS_REFRACTION)
1054
- float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}
1055
- float getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {float lod=log2(cubeMapDimensionPixels)*roughness;return lod;}
821
+ #ifdef CLEARCOAT
822
+ float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
1056
823
  #endif
1057
- #if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
1058
- float environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {float temp=NdotVUnclamped+ambientOcclusion;return saturate(square(temp)-1.0+ambientOcclusion);}
824
+ #ifdef SHEEN
825
+ float visibility_Ashikhmin(float NdotL,float NdotV)
826
+ {return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
827
+ /* NOT USED
828
+ #ifdef SHEEN_SOFTER
829
+ float l(float x,float alphaG)
830
+ {float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
831
+ float lambdaSheen(float cosTheta,float alphaG)
832
+ {return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
833
+ float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
834
+ {float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
1059
835
  #endif
1060
- #if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
1061
- float environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {vec3 reflection=reflect(view,normal);float temp=saturate(1.0+1.1*dot(reflection,geometricNormal));return square(temp);}
836
+ */
1062
837
  #endif
1063
- #if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
1064
- #define UNPACK_LOD(x) (1.0-x)*255.0
1065
- float getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {float microsurfaceAverageSlope=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}
838
+ float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =
839
+ (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
840
+ (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
841
+ const float constant1_FON=0.5-2.0/(3.0*PI);const float constant2_FON=2.0/3.0-28.0/(15.0*PI);float E_FON_approx(float mu,float roughness)
842
+ {float sigma=roughness;
843
+ float mucomp=1.0-mu;float mucomp2=mucomp*mucomp;const mat2 Gcoeffs=mat2(0.0571085289,-0.332181442,
844
+ 0.491881867,0.0714429953);float GoverPi=dot(Gcoeffs*vec2(mucomp,mucomp2),vec2(1.0,mucomp2));return (1.0+sigma*GoverPi)/(1.0+constant1_FON*sigma);}
845
+ vec3 diffuseBRDF_EON(vec3 albedo,float roughness,float NdotL,float NdotV,float LdotV)
846
+ {vec3 rho=albedo;float sigma=roughness;
847
+ float mu_i=NdotL;
848
+ float mu_o=NdotV;
849
+ float s=LdotV-mu_i*mu_o;
850
+ float sovertF=s>0.0 ? s/max(mu_i,mu_o) : s;
851
+ float AF=1.0/(1.0+constant1_FON*sigma);
852
+ vec3 f_ss=(rho*RECIPROCAL_PI)*AF*(1.0+sigma*sovertF);
853
+ float EFo=E_FON_approx(mu_o,sigma);
854
+ float EFi=E_FON_approx(mu_i,sigma);
855
+ float avgEF=AF*(1.0+constant2_FON*sigma);
856
+ vec3 rho_ms=(rho*rho)*avgEF/(vec3(1.0)-rho*(1.0-avgEF));const float eps=1.0e-7;vec3 f_ms=(rho_ms*RECIPROCAL_PI)*max(eps,1.0-EFo)
857
+ * max(eps,1.0-EFi)
858
+ / max(eps,1.0-avgEF);return (f_ss+f_ms);}
859
+ #ifdef SS_TRANSLUCENCY
860
+ vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
861
+ float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
1066
862
  #endif
1067
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["pbrIBLFunctions",0,{name:a,shader:r}],91468)},91138,79587,43899,16687,79671,47939,46960,73088,79795,2834,14253,e=>{"use strict";var t=e.i(37875);e.i(46349);let i="pbrFragmentExtraDeclaration",o=`varying vec3 vPositionW;
863
+ #endif
864
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrBRDFFunctions",0,{name:i,shader:o}])},22488,70541,85374,26122,38385,25181,38416,54398,53804,22806,73400,e=>{"use strict";var t=e.i(2342);e.i(65225);let i="pbrFragmentExtraDeclaration",o=`varying vec3 vPositionW;
1068
865
  #if DEBUGMODE>0
1069
866
  varying vec4 vClipSpacePosition;
1070
867
  #endif
@@ -1081,15 +878,15 @@ varying vec4 vColor;
1081
878
  #if defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0
1082
879
  varying float vViewDepth;
1083
880
  #endif
1084
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentExtraDeclaration",0,{name:i,shader:o}],91138);let a="subSurfaceScatteringFunctions",r=`bool testLightingForSSS(float diffusionProfile)
1085
- {return diffusionProfile<1.;}`;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["subSurfaceScatteringFunctions",0,{name:a,shader:r}],79587);let n="importanceSampling",l=`vec3 hemisphereCosSample(vec2 u) {float phi=2.*PI*u.x;float cosTheta2=1.-u.y;float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
881
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentExtraDeclaration",0,{name:i,shader:o}],22488);let a="subSurfaceScatteringFunctions",r=`bool testLightingForSSS(float diffusionProfile)
882
+ {return diffusionProfile<1.;}`;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["subSurfaceScatteringFunctions",0,{name:a,shader:r}],70541);let n="importanceSampling",l=`vec3 hemisphereCosSample(vec2 u) {float phi=2.*PI*u.x;float cosTheta2=1.-u.y;float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
1086
883
  vec3 hemisphereImportanceSampleDggx(vec2 u,float a) {float phi=2.*PI*u.x;float cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}
1087
884
  vec3 hemisphereImportanceSampleDggxAnisotropic(vec2 Xi,float alphaTangent,float alphaBitangent)
1088
885
  {alphaTangent=max(alphaTangent,0.0001);alphaBitangent=max(alphaBitangent,0.0001);float phi=atan(alphaBitangent/alphaTangent*tan(2.0*3.14159265*Xi.x));if (Xi.x>0.5) phi+=3.14159265;
1089
886
  float cosPhi=cos(phi);float sinPhi=sin(phi);float alpha2=(cosPhi*cosPhi)/(alphaTangent*alphaTangent) +
1090
887
  (sinPhi*sinPhi)/(alphaBitangent*alphaBitangent);float tanTheta2=Xi.y/(1.0-Xi.y)/alpha2;float cosTheta=1.0/sqrt(1.0+tanTheta2);float sinTheta=sqrt(max(0.0,1.0-cosTheta*cosTheta));return vec3(sinTheta*cosPhi,sinTheta*sinPhi,cosTheta);}
1091
888
  vec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) {
1092
- float phi=2.*PI*u.x;float sinTheta=pow(u.y,a/(2.*a+1.));float cosTheta=sqrt(1.-sinTheta*sinTheta);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}`;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["importanceSampling",0,{name:n,shader:l}],43899);let f="pbrHelperFunctions",s=`#define MINIMUMVARIANCE 0.0005
889
+ float phi=2.*PI*u.x;float sinTheta=pow(u.y,a/(2.*a+1.));float cosTheta=sqrt(1.-sinTheta*sinTheta);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}`;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["importanceSampling",0,{name:n,shader:l}],85374);let f="pbrHelperFunctions",c=`#define MINIMUMVARIANCE 0.0005
1093
890
  #ifndef TEXRD_DEFINED
1094
891
  #define TEXRD(s,uv) texture2D(s,uv)
1095
892
  #define TEXRD_DEFINED
@@ -1128,7 +925,7 @@ clearCoatIntensity);return clearCoatAbsorption;}
1128
925
  float computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)
1129
926
  {const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}
1130
927
  #endif
1131
- `;t.ShaderStore.IncludesShadersStore[f]||(t.ShaderStore.IncludesShadersStore[f]=s),e.s(["pbrHelperFunctions",0,{name:f,shader:s}],16687),e.i(56090);let c="pbrDirectLightingSetupFunctions",d=`struct preLightingInfo
928
+ `;t.ShaderStore.IncludesShadersStore[f]||(t.ShaderStore.IncludesShadersStore[f]=c),e.s(["pbrHelperFunctions",0,{name:f,shader:c}],26122),e.i(83457);let s="pbrDirectLightingSetupFunctions",d=`struct preLightingInfo
1132
929
  {vec3 lightOffset;float lightDistanceSquared;float lightDistance;float attenuation;vec3 L;vec3 H;float NdotV;float NdotLUnclamped;float NdotL;float VdotH;float LdotV;float roughness;float diffuseRoughness;vec3 surfaceAlbedo;
1133
930
  #ifdef IRIDESCENCE
1134
931
  float iridescenceIntensity;
@@ -1161,7 +958,7 @@ result.areaLightFresnel=data.Fresnel;result.areaLightSpecular=data.Specular;
1161
958
  #endif
1162
959
  result.areaLightDiffuse=data.Diffuse;result.LdotV=0.;result.roughness=0.;result.diffuseRoughness=0.;result.surfaceAlbedo=vec3(0.);return result;}
1163
960
  #endif
1164
- `;t.ShaderStore.IncludesShadersStore[c]||(t.ShaderStore.IncludesShadersStore[c]=d),e.s(["pbrDirectLightingSetupFunctions",0,{name:c,shader:d}],79671);let u="pbrDirectLightingFalloffFunctions",h=`float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)
961
+ `;t.ShaderStore.IncludesShadersStore[s]||(t.ShaderStore.IncludesShadersStore[s]=d),e.s(["pbrDirectLightingSetupFunctions",0,{name:s,shader:d}],38385);let u="pbrDirectLightingFalloffFunctions",h=`float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)
1165
962
  {return max(0.,1.0-length(lightOffset)/range);}
1166
963
  float computeDistanceLightFalloff_Physical(float lightDistanceSquared)
1167
964
  {return 1.0/maxEps(lightDistanceSquared);}
@@ -1197,7 +994,7 @@ return computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenter
1197
994
  #else
1198
995
  return computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);
1199
996
  #endif
1200
- }`;t.ShaderStore.IncludesShadersStore[u]||(t.ShaderStore.IncludesShadersStore[u]=h),e.s(["pbrDirectLightingFalloffFunctions",0,{name:u,shader:h}],47939);let g="hdrFilteringFunctions",v=`#if NUM_SAMPLES
997
+ }`;t.ShaderStore.IncludesShadersStore[u]||(t.ShaderStore.IncludesShadersStore[u]=h),e.s(["pbrDirectLightingFalloffFunctions",0,{name:u,shader:h}],25181);let g="hdrFilteringFunctions",v=`#if NUM_SAMPLES
1201
998
  #if NUM_SAMPLES>0
1202
999
  #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
1203
1000
  float radicalInverse_VdC(uint bits)
@@ -1323,13 +1120,13 @@ vec2 noiseInput,
1323
1120
  bool isRefraction,
1324
1121
  float ior
1325
1122
  )
1326
- {vec3 V=inputView;vec3 N=inputNormal;vec3 T=inputTangent;vec3 B=inputBitangent;vec3 result=vec3(0.);float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float clampedAlphaT=max(alphaTangent,MINIMUMVARIANCE);float clampedAlphaB=max(alphaBitangent,MINIMUMVARIANCE);float effectiveDim=dim0*sqrt(clampedAlphaT*clampedAlphaB);float omegaP=(4.*PI)/(6.*effectiveDim*effectiveDim);const float noiseScale=clamp(log2(float(NUM_SAMPLES))/12.0f,0.0f,1.0f);float weight=0.;
1123
+ {vec3 V=inputView;vec3 N=inputNormal;vec3 T=inputTangent;vec3 B=inputBitangent;vec3 result=vec3(0.);float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float clampedAlphaT=max(alphaTangent,MINIMUMVARIANCE);float clampedAlphaB=max(alphaBitangent,MINIMUMVARIANCE);float effectiveDim=dim0*sqrt(clampedAlphaT*clampedAlphaB);float omegaP=(4.*PI)/(6.*effectiveDim*effectiveDim);const float noiseScale=clamp(log2(float(NUM_SAMPLES))/12.0,0.0,1.0);float weight=0.;
1327
1124
  #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
1328
1125
  for(uint i=0u; i<NUM_SAMPLES; ++i)
1329
1126
  #else
1330
1127
  for(int i=0; i<NUM_SAMPLES; ++i)
1331
1128
  #endif
1332
- {vec2 Xi=hammersley(i,NUM_SAMPLES);Xi=fract(Xi+noiseInput*mix(0.5f,0.015f,noiseScale));
1129
+ {vec2 Xi=hammersley(i,NUM_SAMPLES);Xi=fract(Xi+noiseInput*mix(0.5,0.015,noiseScale));
1333
1130
  vec3 H_tangent=hemisphereImportanceSampleDggxAnisotropic(Xi,clampedAlphaT,clampedAlphaB);vec3 H=normalize(H_tangent.x*T+H_tangent.y*B+H_tangent.z*N);vec3 L;if (isRefraction) {L=refract(-V,H,1.0/ior);} else {L=reflect(-V,H);}
1334
1131
  float NoH=max(dot(N,H),0.001);float VoH=max(dot(V,H),0.001);float NoL=max(dot(N,L),0.001);if (NoL>0.) {float pdf_inversed=4./normalDistributionFunction_BurleyGGX_Anisotropic(
1335
1132
  H_tangent.z,H_tangent.x,H_tangent.y,vec2(clampedAlphaT,clampedAlphaB)
@@ -1342,7 +1139,7 @@ result=result/weight;return result;}
1342
1139
  #endif
1343
1140
  #endif
1344
1141
  #endif
1345
- `;t.ShaderStore.IncludesShadersStore[g]||(t.ShaderStore.IncludesShadersStore[g]=v),e.s(["hdrFilteringFunctions",0,{name:g,shader:v}],46960);let m="pbrDirectLightingFunctions",p=`#define CLEARCOATREFLECTANCE90 1.0
1142
+ `;t.ShaderStore.IncludesShadersStore[g]||(t.ShaderStore.IncludesShadersStore[g]=v),e.s(["hdrFilteringFunctions",0,{name:g,shader:v}],38416);let m="pbrDirectLightingFunctions",p=`#define CLEARCOATREFLECTANCE90 1.0
1346
1143
  struct lightingInfo
1347
1144
  {vec3 diffuse;
1348
1145
  #ifdef SS_TRANSLUCENCY
@@ -1448,7 +1245,7 @@ float visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);
1448
1245
  float visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */
1449
1246
  float sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}
1450
1247
  #endif
1451
- `;t.ShaderStore.IncludesShadersStore[m]||(t.ShaderStore.IncludesShadersStore[m]=p),e.s(["pbrDirectLightingFunctions",0,{name:m,shader:p}],73088);let S="pbrBlockNormalGeometric",E=`vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
1248
+ `;t.ShaderStore.IncludesShadersStore[m]||(t.ShaderStore.IncludesShadersStore[m]=p),e.s(["pbrDirectLightingFunctions",0,{name:m,shader:p}],54398);let S="pbrBlockNormalGeometric",E=`vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
1452
1249
  #ifdef NORMAL
1453
1250
  vec3 normalW=normalize(vNormalW);
1454
1251
  #else
@@ -1458,7 +1255,7 @@ vec3 geometricNormalW=normalW;
1458
1255
  #if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
1459
1256
  geometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW;
1460
1257
  #endif
1461
- `;t.ShaderStore.IncludesShadersStore[S]||(t.ShaderStore.IncludesShadersStore[S]=E),e.s(["pbrBlockNormalGeometric",0,{name:S,shader:E}],79795);let L="pbrBlockImageProcessing",I=`#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)
1258
+ `;t.ShaderStore.IncludesShadersStore[S]||(t.ShaderStore.IncludesShadersStore[S]=E),e.s(["pbrBlockNormalGeometric",0,{name:S,shader:E}],53804);let L="pbrBlockImageProcessing",I=`#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)
1462
1259
  #if !defined(SKIPFINALCOLORCLAMP)
1463
1260
  finalColor.rgb=clamp(finalColor.rgb,0.,30.0);
1464
1261
  #endif
@@ -1469,7 +1266,7 @@ finalColor.a*=visibility;
1469
1266
  #ifdef PREMULTIPLYALPHA
1470
1267
  finalColor.rgb*=finalColor.a;
1471
1268
  #endif
1472
- `;t.ShaderStore.IncludesShadersStore[L]||(t.ShaderStore.IncludesShadersStore[L]=I),e.s(["pbrBlockImageProcessing",0,{name:L,shader:I}],2834);let D="pbrDebug",C=`#if DEBUGMODE>0
1269
+ `;t.ShaderStore.IncludesShadersStore[L]||(t.ShaderStore.IncludesShadersStore[L]=I),e.s(["pbrBlockImageProcessing",0,{name:L,shader:I}],22806);let D="pbrDebug",A=`#if DEBUGMODE>0
1473
1270
  if (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {
1474
1271
  #if DEBUGMODE==1
1475
1272
  gl_FragColor.rgb=vPositionW.rgb;
@@ -1653,4 +1450,140 @@ return;
1653
1450
  #endif
1654
1451
  }
1655
1452
  #endif
1656
- `;t.ShaderStore.IncludesShadersStore[D]||(t.ShaderStore.IncludesShadersStore[D]=C),e.s(["pbrDebug",0,{name:D,shader:C}],14253)}]);
1453
+ `;t.ShaderStore.IncludesShadersStore[D]||(t.ShaderStore.IncludesShadersStore[D]=A),e.s(["pbrDebug",0,{name:D,shader:A}],73400)},22577,43894,e=>{"use strict";var t=e.i(2342);let i="pbrFragmentReflectionDeclaration",o=`#ifdef REFLECTION
1454
+ #ifdef REFLECTIONMAP_3D
1455
+ #define sampleReflection(s,c) textureCube(s,c)
1456
+ uniform samplerCube reflectionSampler;
1457
+ #ifdef LODBASEDMICROSFURACE
1458
+ #define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)
1459
+ #else
1460
+ uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
1461
+ #endif
1462
+ #ifdef USEIRRADIANCEMAP
1463
+ uniform samplerCube irradianceSampler;
1464
+ #endif
1465
+ #else
1466
+ #define sampleReflection(s,c) texture2D(s,c)
1467
+ uniform sampler2D reflectionSampler;
1468
+ #ifdef LODBASEDMICROSFURACE
1469
+ #define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
1470
+ #else
1471
+ uniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;
1472
+ #endif
1473
+ #ifdef USEIRRADIANCEMAP
1474
+ uniform sampler2D irradianceSampler;
1475
+ #endif
1476
+ #endif
1477
+ #ifdef REFLECTIONMAP_SKYBOX
1478
+ varying vec3 vPositionUVW;
1479
+ #else
1480
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
1481
+ varying vec3 vDirectionW;
1482
+ #endif
1483
+ #endif
1484
+ #endif
1485
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentReflectionDeclaration",0,{name:i,shader:o}],22577);let a="pbrIBLFunctions",r=`#if defined(REFLECTION) || defined(SS_REFRACTION)
1486
+ float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}
1487
+ float getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {float lod=log2(cubeMapDimensionPixels)*roughness;return lod;}
1488
+ #endif
1489
+ #if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
1490
+ float environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {float temp=NdotVUnclamped+ambientOcclusion;return saturate(square(temp)-1.0+ambientOcclusion);}
1491
+ #endif
1492
+ #if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
1493
+ float environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {vec3 reflection=reflect(view,normal);float temp=saturate(1.0+1.1*dot(reflection,geometricNormal));return square(temp);}
1494
+ #endif
1495
+ #if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
1496
+ #define UNPACK_LOD(x) (1.0-x)*255.0
1497
+ float getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {float microsurfaceAverageSlope=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}
1498
+ #endif
1499
+ `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["pbrIBLFunctions",0,{name:a,shader:r}],43894)},66405,e=>{"use strict";var t=e.i(2342);e.i(19831),e.i(49676);let i="pbrUboDeclaration",o=`layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec2 vBaseWeightInfos;vec2 vBaseDiffuseRoughnessInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec3 vBumpInfos;mat4 albedoMatrix;mat4 baseWeightMatrix;mat4 baseDiffuseRoughnessMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;vec4 vAlbedoColor;float baseWeight;float baseDiffuseRoughness;vec4 vLightingIntensity;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec4 cameraInfo;vec4 vTextureRepetitionHexTilingParams;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;
1500
+ #define ADDITIONAL_UBO_DECLARATION
1501
+ };
1502
+ #include<sceneUboDeclaration>
1503
+ #include<meshUboDeclaration>
1504
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrUboDeclaration",0,{name:i,shader:o}])},28758,51215,e=>{"use strict";var t=e.i(2342);let i="samplerFragmentDeclaration",o=`#ifdef _DEFINENAME_
1505
+ #if _DEFINENAME_DIRECTUV==1
1506
+ #define v_VARYINGNAME_UV vMainUV1
1507
+ #elif _DEFINENAME_DIRECTUV==2
1508
+ #define v_VARYINGNAME_UV vMainUV2
1509
+ #elif _DEFINENAME_DIRECTUV==3
1510
+ #define v_VARYINGNAME_UV vMainUV3
1511
+ #elif _DEFINENAME_DIRECTUV==4
1512
+ #define v_VARYINGNAME_UV vMainUV4
1513
+ #elif _DEFINENAME_DIRECTUV==5
1514
+ #define v_VARYINGNAME_UV vMainUV5
1515
+ #elif _DEFINENAME_DIRECTUV==6
1516
+ #define v_VARYINGNAME_UV vMainUV6
1517
+ #else
1518
+ varying vec2 v_VARYINGNAME_UV;
1519
+ #endif
1520
+ uniform sampler2D _SAMPLERNAME_Sampler;
1521
+ #endif
1522
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["samplerFragmentDeclaration",0,{name:i,shader:o}],28758);let a="reflectionFunction",r=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
1523
+ {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); }
1524
+ vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
1525
+ {float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); }
1526
+ vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
1527
+ {vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);}
1528
+ vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
1529
+ {vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);}
1530
+ vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
1531
+ {vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
1532
+ vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
1533
+ {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
1534
+ #ifdef INVERTCUBICMAP
1535
+ coords.y*=-1.0;
1536
+ #endif
1537
+ return coords;}
1538
+ vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
1539
+ {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
1540
+ #ifdef INVERTCUBICMAP
1541
+ coords.y*=-1.0;
1542
+ #endif
1543
+ return coords;}
1544
+ vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
1545
+ {return vec3(reflectionMatrix*(view*worldPos));}
1546
+ vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
1547
+ {return vec3(reflectionMatrix*vec4(positionW,1.));}
1548
+ #ifdef REFLECTION
1549
+ vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
1550
+ {
1551
+ #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
1552
+ vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
1553
+ #endif
1554
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
1555
+ vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
1556
+ #endif
1557
+ #ifdef REFLECTIONMAP_EQUIRECTANGULAR
1558
+ return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
1559
+ #endif
1560
+ #ifdef REFLECTIONMAP_SPHERICAL
1561
+ return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
1562
+ #endif
1563
+ #ifdef REFLECTIONMAP_PLANAR
1564
+ return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
1565
+ #endif
1566
+ #ifdef REFLECTIONMAP_CUBIC
1567
+ #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
1568
+ return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);
1569
+ #else
1570
+ return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
1571
+ #endif
1572
+ #endif
1573
+ #ifdef REFLECTIONMAP_PROJECTION
1574
+ return computeProjectionCoords(worldPos,view,reflectionMatrix);
1575
+ #endif
1576
+ #ifdef REFLECTIONMAP_SKYBOX
1577
+ return computeSkyBoxCoords(vPositionUVW,reflectionMatrix);
1578
+ #endif
1579
+ #ifdef REFLECTIONMAP_EXPLICIT
1580
+ return vec3(0,0,0);
1581
+ #endif
1582
+ }
1583
+ #endif
1584
+ `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["reflectionFunction",0,{name:a,shader:r}],51215)},19831,e=>{"use strict";var t=e.i(2342);let i="sceneUboDeclaration",o=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
1585
+ #ifdef MULTIVIEW
1586
+ mat4 viewProjectionR;
1587
+ #endif
1588
+ mat4 view;mat4 projection;vec4 vEyePosition;mat4 inverseProjection;};
1589
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["sceneUboDeclaration",0,{name:i,shader:o}])}]);