@uptimizr/dashboard 0.4.6 → 0.4.8

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 (388) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +19 -5
  3. package/out/__next._full.txt +10 -10
  4. package/out/__next._tree.txt +1 -1
  5. package/out/_next/static/chunks/{3cp5nmtwxq4gr.js → 0-6mdj5wxsfid.js} +1 -1
  6. package/out/_next/static/chunks/{2clevl_9ayd0x.js → 0-qthfqvm1jyj.js} +1 -1
  7. package/out/_next/static/chunks/01viyuclp2gm9.js +1 -0
  8. package/out/_next/static/chunks/02aym4t2hgo5c.js +1 -0
  9. package/out/_next/static/chunks/{1fervgvgv10r-.js → 02ic9b5ejugow.js} +1 -1
  10. package/out/_next/static/chunks/03p70i4c7qt0v.js +1 -0
  11. package/out/_next/static/chunks/{3zv5kyos9vtmm.js → 03pjr-ivdicng.js} +1 -1
  12. package/out/_next/static/chunks/041a06-lxipy5.js +1 -0
  13. package/out/_next/static/chunks/{3-yhe6rcsjh88.js → 06dzkwetqis-5.js} +1 -1
  14. package/out/_next/static/chunks/{2mjjo0yj-4ro4.js → 06kvanz5-fo52.js} +1 -1
  15. package/out/_next/static/chunks/{28i3wgvgn_at1.js → 07y8ke_iy59dn.js} +1 -1
  16. package/out/_next/static/chunks/09jukc-4jl735.js +1 -0
  17. package/out/_next/static/chunks/{0cmyc-uvk93kl.js → 09khmdgez3t0a.js} +74 -74
  18. package/out/_next/static/chunks/{2x-7kbwq8tl-o.js → 0_dca4876jshu.js} +196 -196
  19. package/out/_next/static/chunks/0axcgnl5qzr6e.js +1 -0
  20. package/out/_next/static/chunks/0ay4fjomijs3n.js +1 -0
  21. package/out/_next/static/chunks/0c7fy79wlccat.js +1 -0
  22. package/out/_next/static/chunks/0cqe4-l3imct3.js +1 -0
  23. package/out/_next/static/chunks/0cssvelju788j.js +1 -0
  24. package/out/_next/static/chunks/{2-_a-v1xeo5hb.js → 0ctain5xq2wsd.js} +116 -115
  25. package/out/_next/static/chunks/{3yk0hzfq5rcs6.js → 0df-dr3otg_4w.js} +1 -1
  26. package/out/_next/static/chunks/{0i9wa8hjd-5tc.js → 0endw997j7ao9.js} +1 -1
  27. package/out/_next/static/chunks/0ev_pbit1v_qg.js +1 -0
  28. package/out/_next/static/chunks/0eyw9oiwipywb.js +1 -0
  29. package/out/_next/static/chunks/0fkzbuo1tex4u.js +1 -0
  30. package/out/_next/static/chunks/0govas0u0t4w3.js +1 -0
  31. package/out/_next/static/chunks/{287hakn2ijupp.js → 0guzhnususp3-.js} +2 -2
  32. package/out/_next/static/chunks/0h7bq_ysu17q7.js +3 -0
  33. package/out/_next/static/chunks/0hneh_3xzlo28.js +1 -0
  34. package/out/_next/static/chunks/0iaqwme19z_0s.js +1 -0
  35. package/out/_next/static/chunks/0ibmar10xndpn.js +1 -0
  36. package/out/_next/static/chunks/0ii8mqoteppgh.js +11 -0
  37. package/out/_next/static/chunks/{3ioxfi3bvznhh.js → 0ip6v64di_l6x.js} +1 -1
  38. package/out/_next/static/chunks/{184pz6z3dflfm.js → 0ixymgjgz3grn.js} +20 -20
  39. package/out/_next/static/chunks/0kuah8g7lt5ox.js +1 -0
  40. package/out/_next/static/chunks/0l3k4j19vxm17.js +1 -0
  41. package/out/_next/static/chunks/0l6hg0ohwh9-m.js +1 -0
  42. package/out/_next/static/chunks/0m4um4ylhlfan.js +1 -0
  43. package/out/_next/static/chunks/0mj837d4h0ddq.js +1 -0
  44. package/out/_next/static/chunks/0nyn-f4905o91.js +1 -0
  45. package/out/_next/static/chunks/0og6i9rsgkuif.js +1 -0
  46. package/out/_next/static/chunks/0os1x-fxzgnxs.js +1 -0
  47. package/out/_next/static/chunks/0otnra7mp0hog.js +1 -0
  48. package/out/_next/static/chunks/{3p03l0z65c8vc.js → 0oyf2xzv8ofkk.js} +253 -253
  49. package/out/_next/static/chunks/0qvsy3gcqjm12.js +1 -0
  50. package/out/_next/static/chunks/{0yd4_xh476fjn.js → 0rl4ddh2vgxyl.js} +97 -97
  51. package/out/_next/static/chunks/0rwpttmsmqvn_.js +1 -0
  52. package/out/_next/static/chunks/0so3wjp9ch93y.js +1 -0
  53. package/out/_next/static/chunks/{36pz_ews7u0xb.js → 0te4g160_rb5d.js} +1 -1
  54. package/out/_next/static/chunks/0uby-zvu799ef.js +1 -0
  55. package/out/_next/static/chunks/{2kk_vvmr2xm3d.js → 0uvn0op2mlr2u.js} +12 -12
  56. package/out/_next/static/chunks/0vwj4hxjm0igv.js +1 -0
  57. package/out/_next/static/chunks/{0r-x702_jvhud.js → 0w7c30w07uct2.js} +12 -12
  58. package/out/_next/static/chunks/0wm38z3u2133a.js +1 -0
  59. package/out/_next/static/chunks/0y7yk5al7_p8q.js +4 -0
  60. package/out/_next/static/chunks/0ycr0gi6fn6bt.js +1 -0
  61. package/out/_next/static/chunks/0ywvahq9t0tki.js +1 -0
  62. package/out/_next/static/chunks/0zh6nslagkby-.js +1 -0
  63. package/out/_next/static/chunks/{3twr9ds68-9us.js → 0zo8xa0nej3ex.js} +1 -1
  64. package/out/_next/static/chunks/{1lu7rjfvxj8yj.js → 0zsir95gpf3xw.js} +1 -1
  65. package/out/_next/static/chunks/{1j4c0nvdo5q68.js → 0zu6ryyj0ig-j.js} +1 -1
  66. package/out/_next/static/chunks/{1bv-jzy_2jiqs.js → 1-jv8k10q_1uw.js} +1 -1
  67. package/out/_next/static/chunks/{0xx7_7y5jdlh4.js → 1-s5ioie9a94e.js} +1 -1
  68. package/out/_next/static/chunks/{27z7j17kcrty_.js → 1-yos1h0qws5e.js} +11 -11
  69. package/out/_next/static/chunks/10o7brc3x027r.js +1 -0
  70. package/out/_next/static/chunks/{2xe4bgir5l-9b.js → 10pae4gb9i929.js} +504 -504
  71. package/out/_next/static/chunks/13p93itm8a3ym.js +1 -0
  72. package/out/_next/static/chunks/{2mrkv0z2i74pv.js → 147s8i_lktp4_.js} +2 -2
  73. package/out/_next/static/chunks/{3nwaovnpiyrt8.js → 14tgo5xt_3j4w.js} +3 -3
  74. package/out/_next/static/chunks/1699hx-vlak0n.js +22 -0
  75. package/out/_next/static/chunks/{2b5nt7yn-pq3a.js → 16d6n9e77rqti.js} +1 -1
  76. package/out/_next/static/chunks/{3nr48h9zwum-3.js → 16f3d5dv83rsr.js} +1 -1
  77. package/out/_next/static/chunks/16i_tpwn_cmr-.js +1 -0
  78. package/out/_next/static/chunks/{2117sv2qzo6yq.js → 16rfr165nbha0.js} +1 -1
  79. package/out/_next/static/chunks/16sl51pvzo4tf.js +1 -0
  80. package/out/_next/static/chunks/1760s-32qpwgg.js +1 -0
  81. package/out/_next/static/chunks/{3rj-5v0j_2-_2.js → 18kq07c5xy_4g.js} +4 -4
  82. package/out/_next/static/chunks/{2wgh5i70bzelt.js → 190tbzt861ao3.js} +392 -392
  83. package/out/_next/static/chunks/19bhv6cupnnyj.js +1 -0
  84. package/out/_next/static/chunks/1_14pn2wwebxy.js +1 -0
  85. package/out/_next/static/chunks/{2_lw4d7t-xcqi.js → 1_kikmeubh0wq.js} +523 -522
  86. package/out/_next/static/chunks/1ay3z6agelsvz.js +1 -0
  87. package/out/_next/static/chunks/1b-fi3bfmpe31.js +1 -0
  88. package/out/_next/static/chunks/1bae3tqv53x9_.js +1 -0
  89. package/out/_next/static/chunks/{2s4fzgzkwjluu.js → 1bf421g4peccx.js} +2 -2
  90. package/out/_next/static/chunks/1bfony5qsc5tp.js +1 -0
  91. package/out/_next/static/chunks/{3vtmucpx25o7q.js → 1ddt0ot7kl8vq.js} +584 -584
  92. package/out/_next/static/chunks/1emz2vjkgck4z.js +1 -0
  93. package/out/_next/static/chunks/1eogzzw8i1wsg.js +1 -0
  94. package/out/_next/static/chunks/1g9p2h1-31q8o.js +1 -0
  95. package/out/_next/static/chunks/1gcz1k1v1woca.js +1 -0
  96. package/out/_next/static/chunks/1h8lyicgqhpxa.js +1 -0
  97. package/out/_next/static/chunks/{0e5dcxmkprebg.js → 1hot663akaepl.js} +1 -1
  98. package/out/_next/static/chunks/1i7pgl3ks5ye0.js +1 -0
  99. package/out/_next/static/chunks/{0xzamrecplwzw.js → 1i8sk_qgpdjhs.js} +1 -1
  100. package/out/_next/static/chunks/1kk3ct7pkpf3b.js +1 -0
  101. package/out/_next/static/chunks/1kq9o8del67le.js +1 -0
  102. package/out/_next/static/chunks/1l7tzyx2mumlq.js +1 -0
  103. package/out/_next/static/chunks/1n_uwed9o--go.js +1 -0
  104. package/out/_next/static/chunks/1o351eldttogn.js +1 -0
  105. package/out/_next/static/chunks/{1f07l3q77zat1.js → 1ogs4_aj84bfn.js} +1 -1
  106. package/out/_next/static/chunks/{3_dm45k0vk1aa.js → 1p206txlluipi.js} +565 -565
  107. package/out/_next/static/chunks/1p2bt1w845v6c.js +1 -0
  108. package/out/_next/static/chunks/1p3rgz4aef1gk.js +1 -0
  109. package/out/_next/static/chunks/{0ypejzd74ixbw.js → 1qcgdx9yl0gfx.js} +15 -15
  110. package/out/_next/static/chunks/1ql3mm2w5r-m8.js +1 -0
  111. package/out/_next/static/chunks/1qvcyuyshi3ll.js +53 -0
  112. package/out/_next/static/chunks/1r0yyg5a_0knc.js +1 -0
  113. package/out/_next/static/chunks/{374lzksboll-t.js → 1sa6qiidtcyk2.js} +1 -1
  114. package/out/_next/static/chunks/1t-9vrdrsi8le.js +1 -0
  115. package/out/_next/static/chunks/1t97zo0tlpbnz.js +1 -0
  116. package/out/_next/static/chunks/1te2tinzqnwck.js +1 -0
  117. package/out/_next/static/chunks/{3j3ol_d1vsdhx.js → 1trt-m2nrck0v.js} +1 -1
  118. package/out/_next/static/chunks/{3vu5y270muh-7.js → 1ty9jpwr3o_st.js} +1 -1
  119. package/out/_next/static/chunks/{415g3asdds1ac.js → 1u6w6veke8rze.js} +1 -1
  120. package/out/_next/static/chunks/{0-laj-bivzp4x.js → 1u900urmrbv73.js} +1 -1
  121. package/out/_next/static/chunks/{0o73w0cn5n_vl.js → 1vz2gd8k74lpi.js} +1 -1
  122. package/out/_next/static/chunks/1wkpl9bfb0wn7.js +1 -0
  123. package/out/_next/static/chunks/1wrly9a9c3teq.js +1 -0
  124. package/out/_next/static/chunks/1x0m05155yy4e.js +1 -0
  125. package/out/_next/static/chunks/{1my968s78he8g.js → 1xf1wfow43ekc.js} +15 -15
  126. package/out/_next/static/chunks/1y10o40v9odam.js +1 -0
  127. package/out/_next/static/chunks/{3_gfl66zf638s.js → 1y_zykt3fpen4.js} +901 -906
  128. package/out/_next/static/chunks/1ye6xtbm16pg4.js +1 -0
  129. package/out/_next/static/chunks/1z6_57k5h31u7.js +1 -0
  130. package/out/_next/static/chunks/1zboqft0h6mop.js +1 -0
  131. package/out/_next/static/chunks/1zr3c351x0ri5.js +1 -0
  132. package/out/_next/static/chunks/2-5p2lcedvrli.js +1 -0
  133. package/out/_next/static/chunks/{1_4hh3dfop93j.js → 206hxrq60f1_e.js} +1 -1
  134. package/out/_next/static/chunks/20r05k3-studj.js +1 -0
  135. package/out/_next/static/chunks/22gs24kj2du56.js +1 -0
  136. package/out/_next/static/chunks/22x5pd1gyp7sf.js +1 -0
  137. package/out/_next/static/chunks/{3qo7e6b73mfxq.js → 22z-2t_yp1jzs.js} +1 -1
  138. package/out/_next/static/chunks/{3d43gd91r06y6.js → 23hmfdw6z5zfy.js} +507 -505
  139. package/out/_next/static/chunks/23y1krqnc-8sm.js +1 -0
  140. package/out/_next/static/chunks/{0gk5rnci1hznh.js → 24tbkj1qkux88.js} +2 -2
  141. package/out/_next/static/chunks/{2-i29-jdbwww6.js → 26cmri51v7497.js} +111 -111
  142. package/out/_next/static/chunks/27jalbk9zu-2b.js +1 -0
  143. package/out/_next/static/chunks/285d2s9096ryc.js +1 -0
  144. package/out/_next/static/chunks/296ykep2nvppv.js +1 -0
  145. package/out/_next/static/chunks/29nehg5cal-ug.js +1 -0
  146. package/out/_next/static/chunks/2_a56_k3x7to6.js +1 -0
  147. package/out/_next/static/chunks/2a-0l6eb1blh3.js +4 -0
  148. package/out/_next/static/chunks/{2oacwtbslo90t.js → 2a31-txop1jzg.js} +360 -360
  149. package/out/_next/static/chunks/2bse5vll1o-x0.js +1 -0
  150. package/out/_next/static/chunks/2ct40spu9wfj7.js +1 -0
  151. package/out/_next/static/chunks/{2epukrz6paj9n.js → 2ept01b7t-e03.js} +1 -1
  152. package/out/_next/static/chunks/{22yht3s7c-xih.js → 2ey5dqelco_g5.js} +1 -1
  153. package/out/_next/static/chunks/2fd_009hw7y0m.js +1 -0
  154. package/out/_next/static/chunks/{2fspbfbxbswzd.js → 2ftz9kaxrsgxh.js} +1 -1
  155. package/out/_next/static/chunks/2gefdnozflr7p.js +1 -0
  156. package/out/_next/static/chunks/{2as_br1awqk6k.js → 2gs-u1n5uv7iz.js} +496 -496
  157. package/out/_next/static/chunks/{1a94whad0y57f.js → 2hizqql79u-54.js} +1 -1
  158. package/out/_next/static/chunks/2iqf2dpdg_vfl.js +1 -0
  159. package/out/_next/static/chunks/2j7z127s_ycjd.js +1 -0
  160. package/out/_next/static/chunks/2kax7uslfxdnx.js +31 -0
  161. package/out/_next/static/chunks/{2laz1v9fg2a2z.js → 2lh_w9rzy3vek.js} +1 -1
  162. package/out/_next/static/chunks/{3mmy9zsb7zo-m.js → 2ln1na26qwp-3.js} +23 -23
  163. package/out/_next/static/chunks/2n08l1q5o_27e.js +1 -0
  164. package/out/_next/static/chunks/2n7268gyd9z-6.js +1 -0
  165. package/out/_next/static/chunks/2nq9cgjmtqwvp.js +1 -0
  166. package/out/_next/static/chunks/{25brs445bjbik.js → 2oj8qc_pv14nk.js} +2 -2
  167. package/out/_next/static/chunks/2q24e72-olbe8.js +1 -0
  168. package/out/_next/static/chunks/2qc4hscs26cro.js +1 -0
  169. package/out/_next/static/chunks/2qe46redkqhfg.js +1 -0
  170. package/out/_next/static/chunks/2qmfe0mqw150h.js +1 -0
  171. package/out/_next/static/chunks/2qtc0nbl_521e.js +1 -0
  172. package/out/_next/static/chunks/2rofu6gu1xzuq.js +1 -0
  173. package/out/_next/static/chunks/2tdi94rkq739i.js +1 -0
  174. package/out/_next/static/chunks/2u_2sacqa9xa7.js +1 -0
  175. package/out/_next/static/chunks/2ujqz6088shm5.js +1 -0
  176. package/out/_next/static/chunks/{3my05px5mv_s5.js → 2urh9qafp3fiw.js} +235 -235
  177. package/out/_next/static/chunks/{23-y1f_zw56vo.js → 2v06n4z8wsmn9.js} +1 -1
  178. package/out/_next/static/chunks/2vp-5skbk1nfu.js +1 -0
  179. package/out/_next/static/chunks/2vu973j_n6cpx.js +1 -0
  180. package/out/_next/static/chunks/2wwra56rehfcj.js +1 -0
  181. package/out/_next/static/chunks/2xpwr97h2asal.js +1 -0
  182. package/out/_next/static/chunks/3000-0b8n9t_2.js +1 -0
  183. package/out/_next/static/chunks/{0q0i4pdyq66gb.js → 30t3203d7p2da.js} +1 -1
  184. package/out/_next/static/chunks/{3t4ys6th6gf2w.js → 31kto7-dxkt3z.js} +1 -1
  185. package/out/_next/static/chunks/{0j0a0wvmmghxj.js → 32oflcl79d8mu.js} +1 -1
  186. package/out/_next/static/chunks/32ovg81ae0l03.js +1 -0
  187. package/out/_next/static/chunks/{2c8rmxz151fxa.js → 331kthnvoma7n.js} +224 -224
  188. package/out/_next/static/chunks/337kn1mn34rc6.js +1 -0
  189. package/out/_next/static/chunks/{336ckqpboqmbn.js → 33xug8kf0-a1o.js} +1 -1
  190. package/out/_next/static/chunks/34dcb7_flbrvo.js +1 -0
  191. package/out/_next/static/chunks/34zotyeqrz_nq.js +1 -0
  192. package/out/_next/static/chunks/351wsmi75l8db.js +1 -0
  193. package/out/_next/static/chunks/36yv-ialtpx98.js +1 -0
  194. package/out/_next/static/chunks/37hwasxtee5e0.js +1 -0
  195. package/out/_next/static/chunks/37t0iclgxes05.js +1 -0
  196. package/out/_next/static/chunks/{1x0j78ohufpul.js → 37xnvnx1jxfaf.js} +1 -1
  197. package/out/_next/static/chunks/{29hkkj9raxte9.js → 38w74ixqt-9co.js} +77 -77
  198. package/out/_next/static/chunks/{0jap7l5-bskj4.js → 39t2x_9zd2rst.js} +12 -12
  199. package/out/_next/static/chunks/{38q0enmlg5q9o.js → 39v73timmzwny.js} +2 -2
  200. package/out/_next/static/chunks/{3puu2_-t0lln9.js → 3_xqc3658d8sw.js} +12 -12
  201. package/out/_next/static/chunks/3ba8eudvlczwe.js +1 -0
  202. package/out/_next/static/chunks/3buezhxqc8n6n.js +1 -0
  203. package/out/_next/static/chunks/3c5iwwj-fhbue.js +1 -0
  204. package/out/_next/static/chunks/{2kmmk9coo9_b0.js → 3d8ot2tw6yqfq.js} +143 -143
  205. package/out/_next/static/chunks/3dc057ffe7ij-.js +1 -0
  206. package/out/_next/static/chunks/3djnlzwj9869o.js +1 -0
  207. package/out/_next/static/chunks/{2_6b9lraq-exh.js → 3fuqxjjf8o1v9.js} +5 -5
  208. package/out/_next/static/chunks/{0j2ygtc_-bo3m.js → 3gt6rzg9qw-an.js} +1 -1
  209. package/out/_next/static/chunks/{0rykrf_vofbad.js → 3h_05w5j8x538.js} +1 -1
  210. package/out/_next/static/chunks/{3txu-i5qn183a.js → 3hkhd1_k8xohv.js} +321 -321
  211. package/out/_next/static/chunks/{2h07np207nlx7.js → 3ijcc5tfisfnj.js} +1 -1
  212. package/out/_next/static/chunks/3j0dbpd9zop3p.js +1 -0
  213. package/out/_next/static/chunks/{14e4k-718qadd.js → 3ju83xk-ca7ma.js} +163 -168
  214. package/out/_next/static/chunks/3jxhl4apmhbm1.js +13 -0
  215. package/out/_next/static/chunks/{1h1gixjbjkbsl.js → 3la99oz_0p0r6.js} +5 -5
  216. package/out/_next/static/chunks/{1mt4cnd_d6jvf.js → 3n1b34fd5fdrh.js} +1 -1
  217. package/out/_next/static/chunks/3nq_hq4x3rn3r.js +1 -0
  218. package/out/_next/static/chunks/3pgb1kkqrdl9t.js +1 -0
  219. package/out/_next/static/chunks/3pik_-jj-zkfl.js +1 -0
  220. package/out/_next/static/chunks/{1zmx71cvc6ksk.js → 3q38kdbzd2nbd.js} +1 -1
  221. package/out/_next/static/chunks/3q5zl4ks17au2.js +1 -0
  222. package/out/_next/static/chunks/{1t2g1v0ubcsam.js → 3qr10445lte-n.js} +1 -1
  223. package/out/_next/static/chunks/3r-8bnguvxsyo.js +1 -0
  224. package/out/_next/static/chunks/3sg56j8boe-3o.js +1 -0
  225. package/out/_next/static/chunks/3u7zj1-jdg781.js +1 -0
  226. package/out/_next/static/chunks/{0o0qtv35dqv3i.js → 3wj5dmf6cywz8.js} +239 -239
  227. package/out/_next/static/chunks/{2iu0_3cx-ny74.js → 3wr_oijfsq8lr.js} +11 -11
  228. package/out/_next/static/chunks/3xu0dh1ikzwj2.js +1 -0
  229. package/out/_next/static/chunks/{0vzo-8t8c26k9.js → 3y5tpixt23-fl.js} +1 -1
  230. package/out/_next/static/chunks/40gjf-_jt8upu.js +5 -0
  231. package/out/_next/static/chunks/41f12o_5lf-i9.js +1 -0
  232. package/out/_next/static/chunks/42ma8lqduohlc.js +1 -0
  233. package/out/_next/static/chunks/43usshq2nc125.js +1 -0
  234. package/out/_next/static/chunks/{161yjxmdz9obc.js → 44bl4ufopbmyh.js} +1 -1
  235. package/out/_next/static/chunks/44iutzkw9r21x.js +1 -0
  236. package/out/_next/static/chunks/turbopack-1xrxa3noq196-.js +1 -0
  237. package/out/_not-found/__next._full.txt +11 -11
  238. package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
  239. package/out/_not-found/__next._tree.txt +1 -1
  240. package/out/_not-found.html +1 -1
  241. package/out/_not-found.txt +11 -11
  242. package/out/index.html +1 -1
  243. package/out/index.txt +10 -10
  244. package/package.json +11 -11
  245. package/out/__next._head.txt +0 -6
  246. package/out/__next._index.txt +0 -5
  247. package/out/_next/static/chunks/0-k4hp87gwues.js +0 -1
  248. package/out/_next/static/chunks/04zj0yf1qhk1o.js +0 -1
  249. package/out/_next/static/chunks/06fbalmyyfpsy.js +0 -1
  250. package/out/_next/static/chunks/07hgbbqksqd1g.js +0 -1
  251. package/out/_next/static/chunks/08ou2nvy48e0u.js +0 -1
  252. package/out/_next/static/chunks/08y5-irjbsiy8.js +0 -1
  253. package/out/_next/static/chunks/0_jrfk2u1u3fi.js +0 -1
  254. package/out/_next/static/chunks/0a475u_q5i_dd.js +0 -62
  255. package/out/_next/static/chunks/0aad2r4s4wl1x.js +0 -5
  256. package/out/_next/static/chunks/0d9pxx1w_zqr9.js +0 -1
  257. package/out/_next/static/chunks/0gnjtwq-474uc.js +0 -1
  258. package/out/_next/static/chunks/0gsh_d0m5xss1.js +0 -1
  259. package/out/_next/static/chunks/0ibzpjo0h731v.js +0 -1
  260. package/out/_next/static/chunks/0j_3k5qhv_mdx.js +0 -1
  261. package/out/_next/static/chunks/0jis2w2mfx062.js +0 -1
  262. package/out/_next/static/chunks/0jjvp2slpf7d6.js +0 -1
  263. package/out/_next/static/chunks/0ko10wo4rc9-b.js +0 -1
  264. package/out/_next/static/chunks/0lqmvz6k2h_of.js +0 -1
  265. package/out/_next/static/chunks/0lwjmr8efrlbt.js +0 -17
  266. package/out/_next/static/chunks/0noxyupihh8dk.js +0 -1
  267. package/out/_next/static/chunks/0o1vph7x9shzu.js +0 -1
  268. package/out/_next/static/chunks/0p6phe9kjlxn8.js +0 -1
  269. package/out/_next/static/chunks/0ptxb9dcwsw3o.js +0 -1
  270. package/out/_next/static/chunks/0q8pt8fd0ma30.js +0 -1
  271. package/out/_next/static/chunks/0qqx9aoz8l5d2.js +0 -1
  272. package/out/_next/static/chunks/0tsk32q-88t_7.js +0 -1
  273. package/out/_next/static/chunks/0u7577db_ivyr.js +0 -1
  274. package/out/_next/static/chunks/0unnrt0un064x.js +0 -1
  275. package/out/_next/static/chunks/0uygtr4mo3h0v.js +0 -1
  276. package/out/_next/static/chunks/0vf3facit951s.js +0 -1
  277. package/out/_next/static/chunks/0xyija62b6txc.js +0 -1
  278. package/out/_next/static/chunks/0zeb37703zcz3.js +0 -1
  279. package/out/_next/static/chunks/0zu5ato7-1-q9.js +0 -1
  280. package/out/_next/static/chunks/0zydv7y47dxgh.js +0 -1
  281. package/out/_next/static/chunks/103x4jwovb6d-.js +0 -1
  282. package/out/_next/static/chunks/107wfq84g9-kn.js +0 -1
  283. package/out/_next/static/chunks/10afagk8yn__n.js +0 -1
  284. package/out/_next/static/chunks/12ory_c78yl31.js +0 -1
  285. package/out/_next/static/chunks/133dqp8_7_yo6.js +0 -1
  286. package/out/_next/static/chunks/1365lgwdd4vuo.js +0 -1
  287. package/out/_next/static/chunks/146ou-ohb_qhs.js +0 -1
  288. package/out/_next/static/chunks/14orr68xgdykd.js +0 -1
  289. package/out/_next/static/chunks/15qfoj-vl9thu.js +0 -1
  290. package/out/_next/static/chunks/166yqx3_qvbpy.js +0 -1
  291. package/out/_next/static/chunks/16gwjao676ieb.js +0 -1
  292. package/out/_next/static/chunks/16rmmzhy2p7bw.js +0 -1
  293. package/out/_next/static/chunks/17_jjyx4jz9dd.js +0 -1
  294. package/out/_next/static/chunks/18h9ugdz6igdb.js +0 -1
  295. package/out/_next/static/chunks/19d8n5t7ka2fb.js +0 -1
  296. package/out/_next/static/chunks/1_rbzw3n4fk0g.js +0 -1
  297. package/out/_next/static/chunks/1aa9g197l4twm.js +0 -1
  298. package/out/_next/static/chunks/1bq0fcnt1wy86.js +0 -1
  299. package/out/_next/static/chunks/1c6mho7e0enta.js +0 -1
  300. package/out/_next/static/chunks/1dfaheve77dhi.js +0 -1
  301. package/out/_next/static/chunks/1dgf112ehnhm1.js +0 -1
  302. package/out/_next/static/chunks/1eirucr9s6-h5.js +0 -1
  303. package/out/_next/static/chunks/1fsof7un7igrn.js +0 -1
  304. package/out/_next/static/chunks/1gvu5a6ffbs7l.js +0 -1
  305. package/out/_next/static/chunks/1iel4pzhhh-c3.js +0 -1
  306. package/out/_next/static/chunks/1iojfx3-g4_n9.js +0 -1
  307. package/out/_next/static/chunks/1j4jt5q7px8sy.js +0 -1
  308. package/out/_next/static/chunks/1jjw9hxgi2vzi.js +0 -1
  309. package/out/_next/static/chunks/1k_8olnprvi8r.js +0 -1
  310. package/out/_next/static/chunks/1l0rt7d4m-xdk.js +0 -5
  311. package/out/_next/static/chunks/1s0dpdqy480hg.js +0 -1
  312. package/out/_next/static/chunks/1t-yolk97lmot.js +0 -12
  313. package/out/_next/static/chunks/1tbes2sv-qzcx.js +0 -1
  314. package/out/_next/static/chunks/1upy8a5cb75kt.js +0 -1
  315. package/out/_next/static/chunks/1xed71f608m4b.js +0 -1
  316. package/out/_next/static/chunks/1z790xxb46gxy.js +0 -1
  317. package/out/_next/static/chunks/219n3q-_eengm.js +0 -1
  318. package/out/_next/static/chunks/21wo3vdr_uby8.js +0 -1
  319. package/out/_next/static/chunks/25gep78-izw79.js +0 -4
  320. package/out/_next/static/chunks/26i7dn31afdtm.js +0 -1
  321. package/out/_next/static/chunks/27hbplu797elx.js +0 -1
  322. package/out/_next/static/chunks/2992eiy52nazj.js +0 -1
  323. package/out/_next/static/chunks/29_n5j-hg_gsa.js +0 -1
  324. package/out/_next/static/chunks/29bxq-67oazfg.js +0 -1
  325. package/out/_next/static/chunks/29ings58w7kp1.js +0 -1
  326. package/out/_next/static/chunks/2_n0cpkdsjzli.js +0 -1
  327. package/out/_next/static/chunks/2a3iy701j4r_y.js +0 -1
  328. package/out/_next/static/chunks/2al9dh3_1ixhv.js +0 -1
  329. package/out/_next/static/chunks/2awr1c_vfsutb.js +0 -1
  330. package/out/_next/static/chunks/2bxe3kjr17tdp.js +0 -1
  331. package/out/_next/static/chunks/2dvbzar93ooc-.js +0 -1
  332. package/out/_next/static/chunks/2e-vp0e11g9ew.js +0 -1
  333. package/out/_next/static/chunks/2exj9-0p6n9x-.js +0 -1
  334. package/out/_next/static/chunks/2gf8l6hbmt7v3.js +0 -1
  335. package/out/_next/static/chunks/2h9i_adbqaxs4.js +0 -1
  336. package/out/_next/static/chunks/2jio3sio-_43z.js +0 -1
  337. package/out/_next/static/chunks/2neieeo9g2u56.js +0 -1
  338. package/out/_next/static/chunks/2pb_uosb-aa8x.js +0 -1
  339. package/out/_next/static/chunks/2qu-gpm3ux1l6.js +0 -1
  340. package/out/_next/static/chunks/2rsi6v7qmqx2b.js +0 -1
  341. package/out/_next/static/chunks/2tdvuc-27khif.js +0 -1
  342. package/out/_next/static/chunks/2trolrgd7neax.js +0 -1
  343. package/out/_next/static/chunks/2uyuafmoe5wi0.js +0 -3
  344. package/out/_next/static/chunks/2w2e0pxgs-n8f.js +0 -1
  345. package/out/_next/static/chunks/2xujlsx3stqig.js +0 -1
  346. package/out/_next/static/chunks/30y71dxdpv52d.js +0 -1
  347. package/out/_next/static/chunks/32c-e_v8_2xkf.js +0 -1
  348. package/out/_next/static/chunks/32oj0iudhp8bm.js +0 -1
  349. package/out/_next/static/chunks/33p9du6y9eegg.js +0 -1
  350. package/out/_next/static/chunks/38om-j0h0rryk.js +0 -1
  351. package/out/_next/static/chunks/39cou9lia_g7l.js +0 -1
  352. package/out/_next/static/chunks/39pkya0_bvcaj.js +0 -1
  353. package/out/_next/static/chunks/39rhmj_32ujyj.js +0 -1
  354. package/out/_next/static/chunks/3_1zzmx92j9c0.js +0 -1
  355. package/out/_next/static/chunks/3_earszshuz4n.js +0 -1
  356. package/out/_next/static/chunks/3ap_uxc8lx7ni.js +0 -1
  357. package/out/_next/static/chunks/3b6na8zrex8jo.js +0 -1
  358. package/out/_next/static/chunks/3c0cxt72vilyz.js +0 -1
  359. package/out/_next/static/chunks/3g78x0pdaoi_4.js +0 -1
  360. package/out/_next/static/chunks/3gjvl1p-tugfe.js +0 -4
  361. package/out/_next/static/chunks/3i8iro1gas1vx.js +0 -1
  362. package/out/_next/static/chunks/3kpqfqr99vo7z.js +0 -1
  363. package/out/_next/static/chunks/3lladf_wemm-2.js +0 -1
  364. package/out/_next/static/chunks/3n62hbywoknop.js +0 -1
  365. package/out/_next/static/chunks/3o_dmzpahx-5g.js +0 -1
  366. package/out/_next/static/chunks/3r7v7un976sn7.js +0 -1
  367. package/out/_next/static/chunks/3rl_nhqwew40w.js +0 -1
  368. package/out/_next/static/chunks/3s7hqij6xp_4e.js +0 -1
  369. package/out/_next/static/chunks/3si3migsmvz9o.js +0 -1
  370. package/out/_next/static/chunks/3uarw1i1ij1er.js +0 -1
  371. package/out/_next/static/chunks/3un-w6wutw1qn.js +0 -1
  372. package/out/_next/static/chunks/3v8kgnjk27wbe.js +0 -1
  373. package/out/_next/static/chunks/3we1khqfexh3x.js +0 -1
  374. package/out/_next/static/chunks/3z35loj4i-id4.js +0 -1
  375. package/out/_next/static/chunks/42lqt7ig40wk5.js +0 -1
  376. package/out/_next/static/chunks/42s6ghsurq5q7.js +0 -1
  377. package/out/_next/static/chunks/42yctcfi2rfwr.js +0 -1
  378. package/out/_next/static/chunks/43_fau1gg69eo.js +0 -1
  379. package/out/_next/static/chunks/43ywrdzg_7af8.js +0 -31
  380. package/out/_next/static/chunks/44m1ijc5cv80x.js +0 -1
  381. package/out/_next/static/chunks/453_bg0lgesmp.js +0 -1
  382. package/out/_next/static/chunks/turbopack-1s36ieuku1ds3.js +0 -1
  383. package/out/_not-found/__next._head.txt +0 -6
  384. package/out/_not-found/__next._index.txt +0 -5
  385. package/out/_not-found/__next._not-found.txt +0 -5
  386. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_buildManifest.js +0 -0
  387. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_clientMiddlewareManifest.js +0 -0
  388. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_ssgManifest.js +0 -0
@@ -1,333 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,3954,e=>{"use strict";var t=e.i(47150);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;
2
- 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;
3
- #define saturate(x) clamp(x,0.0,1.0)
4
- #define absEps(x) abs(x)+Epsilon
5
- #define maxEps(x) max(x,Epsilon)
6
- #define saturateEps(x) clamp(x,Epsilon,1.0)
7
- mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
8
- vec3(i0.x,i1.x,i2.x),
9
- vec3(i0.y,i1.y,i2.y),
10
- vec3(i0.z,i1.z,i2.z)
11
- );return outMatrix;}
12
- 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),
13
- b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
14
- b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
15
- #if USE_EXACT_SRGB_CONVERSIONS
16
- vec3 toLinearSpaceExact(vec3 color)
17
- {vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
18
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
19
- return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
20
- #else
21
- return
22
- vec3(
23
- color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
24
- color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
25
- color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
26
- #endif
27
- }
28
- vec3 toGammaSpaceExact(vec3 color)
29
- {vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
30
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
31
- return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
32
- #else
33
- return
34
- vec3(
35
- color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
36
- color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
37
- color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
38
- #endif
39
- }
40
- #endif
41
- float toLinearSpace(float color)
42
- {
43
- #if USE_EXACT_SRGB_CONVERSIONS
44
- float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
45
- #else
46
- return pow(color,LinearEncodePowerApprox);
47
- #endif
48
- }
49
- vec3 toLinearSpace(vec3 color)
50
- {
51
- #if USE_EXACT_SRGB_CONVERSIONS
52
- return toLinearSpaceExact(color);
53
- #else
54
- return pow(color,vec3(LinearEncodePowerApprox));
55
- #endif
56
- }
57
- vec4 toLinearSpace(vec4 color)
58
- {
59
- #if USE_EXACT_SRGB_CONVERSIONS
60
- return vec4(toLinearSpaceExact(color.rgb),color.a);
61
- #else
62
- return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
63
- #endif
64
- }
65
- float toGammaSpace(float color)
66
- {
67
- #if USE_EXACT_SRGB_CONVERSIONS
68
- float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
69
- #else
70
- return pow(color,GammaEncodePowerApprox);
71
- #endif
72
- }
73
- vec3 toGammaSpace(vec3 color)
74
- {
75
- #if USE_EXACT_SRGB_CONVERSIONS
76
- return toGammaSpaceExact(color);
77
- #else
78
- return pow(color,vec3(GammaEncodePowerApprox));
79
- #endif
80
- }
81
- vec4 toGammaSpace(vec4 color)
82
- {
83
- #if USE_EXACT_SRGB_CONVERSIONS
84
- return vec4(toGammaSpaceExact(color.rgb),color.a);
85
- #else
86
- return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
87
- #endif
88
- }
89
- float square(float value)
90
- {return value*value;}
91
- vec3 square(vec3 value)
92
- {return value*value;}
93
- float pow5(float value) {float sq=value*value;return sq*sq*value;}
94
- 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);}
95
- float getLuminanceUnclamped(vec3 color)
96
- {return dot(color,LuminanceEncodeApprox);}
97
- float getLuminance(vec3 color)
98
- {return saturate(getLuminanceUnclamped(color));}
99
- float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
100
- float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
101
- 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);}
102
- vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
103
- 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;}
104
- 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;}
105
- float sqrtClamped(float value) {return sqrt(max(value,0.));}
106
- float avg(vec3 value) {return dot(value,vec3(0.333333333));}
107
- #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
108
- uint extractBits(uint value,int offset,int width) {return (value>>offset) & ((1u<<width)-1u);}
109
- int onlyBitPosition(uint value) {return (floatBitsToInt(float(value))>>23)-0x7f;}
110
- 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);}
111
- 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;}
112
- 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);}
113
- float min3(vec3 v) {return min(v.x,min(v.y,v.z));}
114
- float max3(vec3 v) {return max(v.x,max(v.y,v.z));}
115
- float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
116
- vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
117
- uint2float(rstate*2447445414u));}
118
- #endif
119
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["helperFunctions",0,{name:i,shader:o}])},68381,e=>{"use strict";var t=e.i(47150);let i="logDepthDeclaration",o=`#ifdef LOGARITHMICDEPTH
120
- uniform float logarithmicDepthConstant;varying float vFragmentDepth;
121
- #endif
122
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["logDepthDeclaration",0,{name:i,shader:o}])},67827,e=>{"use strict";var t=e.i(47150);let i="sceneUboDeclaration",o=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
123
- #ifdef MULTIVIEW
124
- mat4 viewProjectionR;
125
- #endif
126
- mat4 view;mat4 projection;vec4 vEyePosition;mat4 inverseProjection;};
127
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["sceneUboDeclaration",0,{name:i,shader:o}])},38605,e=>{"use strict";var t=e.i(47150);let i="meshUboDeclaration",o=`#ifdef WEBGL2
128
- uniform mat4 world;uniform float visibility;
129
- #else
130
- layout(std140,column_major) uniform;uniform Mesh
131
- {mat4 world;float visibility;};
132
- #endif
133
- #define WORLD_UBO
134
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["meshUboDeclaration",0,{name:i,shader:o}])},30868,e=>{"use strict";var t=e.i(47150);let i="mainUVVaryingDeclaration",o=`#ifdef MAINUV{X}
135
- varying vec2 vMainUV{X};
136
- #endif
137
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["mainUVVaryingDeclaration",0,{name:i,shader:o}])},88913,e=>{"use strict";var t=e.i(47150);let i="harmonicsFunctions",o=`#ifdef USESPHERICALFROMREFLECTIONMAP
138
- #ifdef SPHERICAL_HARMONICS
139
- vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
140
- + vSphericalL1_1*(normal.y)
141
- + vSphericalL10*(normal.z)
142
- + vSphericalL11*(normal.x)
143
- + vSphericalL2_2*(normal.y*normal.x)
144
- + vSphericalL2_1*(normal.y*normal.z)
145
- + vSphericalL20*((3.0*normal.z*normal.z)-1.0)
146
- + vSphericalL21*(normal.z*normal.x)
147
- + vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
148
- #else
149
- 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;}
150
- #endif
151
- #endif
152
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["harmonicsFunctions",0,{name:i,shader:o}])},98680,e=>{"use strict";var t=e.i(47150);let i="pbrBRDFFunctions",o=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
153
- #define BRDF_DIFFUSE_MODEL_EON 0
154
- #define BRDF_DIFFUSE_MODEL_BURLEY 1
155
- #define BRDF_DIFFUSE_MODEL_LAMBERT 2
156
- #define BRDF_DIFFUSE_MODEL_LEGACY 3
157
- #define DIELECTRIC_SPECULAR_MODEL_GLTF 0
158
- #define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
159
- #define CONDUCTOR_SPECULAR_MODEL_GLTF 0
160
- #define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
161
- #if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
162
- #ifdef MS_BRDF_ENERGY_CONSERVATION
163
- vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
164
- #endif
165
- #if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
166
- #define F82_COS_THETA_MAX 0.142857143
167
- #define F82_ONE_MINUS_CTM_POW5 0.462664366
168
- #define F82_ONE_MINUS_CTM_POW6 0.396569457
169
- #define F82_B_DENOMINATOR_RECIP 17.6512785
170
- #define BRDF_Z_SCALE 16.0
171
- 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);}
172
- 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;}
173
- vec3 getF82DirectionalAlbedo(vec3 F0,vec3 F90,vec3 b,vec3 environmentBrdf) {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
174
- vec3 getF82AverageFresnel(vec3 F0,vec3 b) {return F0+(vec3(1.0)-F0)/21.0-b/126.0;}
175
- #endif
176
- #ifdef FUZZENVIRONMENTBRDF
177
- 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;}
178
- #endif
179
- #ifdef ENVIRONMENTBRDF
180
- vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
181
- #ifdef ENVIRONMENTBRDF_RGBD
182
- brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
183
- #endif
184
- return brdfLookup.rgb;}
185
- vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
186
- #ifdef BRDF_V_HEIGHT_CORRELATED
187
- vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
188
- #else
189
- vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
190
- #endif
191
- return reflectance;}
192
- vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
193
- #ifdef BRDF_V_HEIGHT_CORRELATED
194
- vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
195
- #else
196
- vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
197
- #endif
198
- return reflectance;}
199
- #endif
200
- /* NOT USED
201
- #if defined(SHEEN) && defined(SHEEN_SOFTER)
202
- float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
203
- {float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
204
- #endif
205
- */
206
- #if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
207
- vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
208
- {float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
209
- #endif
210
- #if defined(SHEEN) && defined(ENVIRONMENTBRDF)
211
- /**
212
- * The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
213
- * The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
214
- */
215
- vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
216
- #endif
217
- vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
218
- {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
219
- float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
220
- {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
221
- #ifdef CLEARCOAT
222
- vec3 getR0RemappedForClearCoat(vec3 f0) {
223
- #ifdef CLEARCOAT_DEFAULTIOR
224
- #ifdef MOBILE
225
- return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
226
- #else
227
- return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
228
- #endif
229
- #else
230
- vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
231
- #endif
232
- }
233
- #endif
234
- #ifdef IRIDESCENCE
235
- const mat3 XYZ_TO_REC709=mat3(
236
- 3.2404542,-0.9692660, 0.0556434,
237
- -1.5371385, 1.8760108,-0.2040259,
238
- -0.4985314, 0.0415560, 1.0572252
239
- );vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
240
- vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
241
- float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
242
- 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;}
243
- 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;}
244
- 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));
245
- 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));}
246
- 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)
247
- {Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
248
- return max(I,vec3(0.0));}
249
- #endif
250
- float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
251
- {float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
252
- #ifdef SHEEN
253
- float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
254
- {float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
255
- #endif
256
- #ifdef ANISOTROPIC
257
- 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;}
258
- #endif
259
- #ifdef BRDF_V_HEIGHT_CORRELATED
260
- float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
261
- #ifdef MOBILE
262
- float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
263
- #else
264
- 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);
265
- #endif
266
- }
267
- #else
268
- float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
269
- {
270
- #ifdef MOBILE
271
- return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
272
- #else
273
- float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
274
- #endif
275
- }
276
- float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
277
- {float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
278
- #endif
279
- #ifdef ANISOTROPIC
280
- 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;}
281
- #endif
282
- #ifdef CLEARCOAT
283
- float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
284
- #endif
285
- #ifdef SHEEN
286
- float visibility_Ashikhmin(float NdotL,float NdotV)
287
- {return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
288
- /* NOT USED
289
- #ifdef SHEEN_SOFTER
290
- float l(float x,float alphaG)
291
- {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;}
292
- float lambdaSheen(float cosTheta,float alphaG)
293
- {return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
294
- float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
295
- {float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
296
- #endif
297
- */
298
- #endif
299
- 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 =
300
- (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
301
- (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
302
- 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)
303
- {float sigma=roughness;
304
- float mucomp=1.0-mu;float mucomp2=mucomp*mucomp;const mat2 Gcoeffs=mat2(0.0571085289,-0.332181442,
305
- 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);}
306
- vec3 diffuseBRDF_EON(vec3 albedo,float roughness,float NdotL,float NdotV,float LdotV)
307
- {vec3 rho=albedo;float sigma=roughness;
308
- float mu_i=NdotL;
309
- float mu_o=NdotV;
310
- float s=LdotV-mu_i*mu_o;
311
- float sovertF=s>0.0 ? s/max(mu_i,mu_o) : s;
312
- float AF=1.0/(1.0+constant1_FON*sigma);
313
- vec3 f_ss=(rho*RECIPROCAL_PI)*AF*(1.0+sigma*sovertF);
314
- float EFo=E_FON_approx(mu_o,sigma);
315
- float EFi=E_FON_approx(mu_i,sigma);
316
- float avgEF=AF*(1.0+constant2_FON*sigma);
317
- 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)
318
- * max(eps,1.0-EFi)
319
- / max(eps,1.0-avgEF);return (f_ss+f_ms);}
320
- #ifdef SS_TRANSLUCENCY
321
- 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);}
322
- float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
323
- #endif
324
- #endif
325
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrBRDFFunctions",0,{name:i,shader:o}])},73205,e=>{"use strict";var t=e.i(47150);e.i(67827),e.i(38605);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;
326
- #define ADDITIONAL_UBO_DECLARATION
327
- };
328
- #include<sceneUboDeclaration>
329
- #include<meshUboDeclaration>
330
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrUboDeclaration",0,{name:i,shader:o}])},40766,32274,67538,e=>{"use strict";var t=e.i(47150);let i="bumpFragmentMainFunctions",o=`#ifndef TEXRD_DEFINED
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92655,36435,78948,e=>{"use strict";var t=e.i(25044);let i="bumpFragmentMainFunctions",o=`#ifndef TEXRD_DEFINED
331
2
  #define TEXRD(s,uv) texture2D(s,uv)
332
3
  #define TEXRD_DEFINED
333
4
  #endif
@@ -392,7 +63,7 @@ vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
392
63
  mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
393
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);}
394
65
  #endif
395
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["bumpFragmentMainFunctions",0,{name:i,shader:o}],40766),e.i(844);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}],92655),e.i(95804);let a="bumpFragmentFunctions",r=`#if defined(BUMP)
396
67
  #include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
397
68
  #endif
398
69
  #if defined(DETAIL)
@@ -418,82 +89,215 @@ vec2 parallaxOffset(vec3 viewDir,float heightScale)
418
89
  #ifdef PARALLAX_RHS
419
90
  return texCoordOffset;
420
91
  #else
421
- 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}],36435);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}],78948)},7673,e=>{"use strict";var t=e.i(25044);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}])},90256,e=>{"use strict";var t=e.i(25044);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}])},8823,e=>{"use strict";var t=e.i(25044);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}])},31660,e=>{"use strict";var t=e.i(25044);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);
422
219
  #endif
423
220
  }
424
221
  #endif
425
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["bumpFragmentFunctions",0,{name:a,shader:r}],32274);let n="bumpFragment",l=`vec2 uvOffset=vec2(0.0,0.0);
426
- #if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
427
- #ifdef NORMALXYSCALE
428
- float normalScale=1.0;
429
- #elif defined(BUMP)
430
- 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;
431
226
  #else
432
- float normalScale=1.0;
227
+ return pow(color,LinearEncodePowerApprox);
433
228
  #endif
434
- #if defined(TANGENT) && defined(NORMAL)
435
- mat3 TBN=vTBN;
436
- #elif defined(BUMP)
437
- 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);
438
234
  #else
439
- vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
235
+ return pow(color,vec3(LinearEncodePowerApprox));
440
236
  #endif
441
- #elif defined(ANISOTROPIC)
442
- #if defined(TANGENT) && defined(NORMAL)
443
- mat3 TBN=vTBN;
237
+ }
238
+ vec4 toLinearSpace(vec4 color)
239
+ {
240
+ #if USE_EXACT_SRGB_CONVERSIONS
241
+ return vec4(toLinearSpaceExact(color.rgb),color.a);
444
242
  #else
445
- vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
446
- #endif
243
+ return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
447
244
  #endif
448
- #ifdef PARALLAX
449
- mat3 invTBN=transposeMat3(TBN);
450
- #ifdef PARALLAXOCCLUSION
451
- 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;
452
250
  #else
453
- uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
454
- #endif
455
- #endif
456
- #ifdef DETAIL
457
- 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);
458
252
  #endif
459
- #ifdef BUMP
460
- #ifdef OBJECTSPACE_NORMALMAP
461
- #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
462
- normalW=normalize(TEXRD(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
463
- #elif !defined(DETAIL)
464
- 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);
465
258
  #else
466
- vec3 bumpNormal=TEXRD(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
467
- #if DETAIL_NORMALBLENDMETHOD==0
468
- detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
469
- #elif DETAIL_NORMALBLENDMETHOD==1
470
- 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;
471
- #endif
472
- normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
473
- #endif
474
- #elif defined(DETAIL)
475
- detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
476
- #endif
477
- `;t.ShaderStore.IncludesShadersStore[n]||(t.ShaderStore.IncludesShadersStore[n]=l),e.s(["bumpFragment",0,{name:n,shader:l}],67538)},75351,e=>{"use strict";var t=e.i(47150);let i="decalFragment",o=`#ifdef DECAL
478
- #ifdef GAMMADECAL
479
- decalColor.rgb=toLinearSpace(decalColor.rgb);
259
+ return pow(color,vec3(GammaEncodePowerApprox));
480
260
  #endif
481
- #ifdef DECAL_SMOOTHALPHA
482
- 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);
483
268
  #endif
484
- 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));}
485
299
  #endif
486
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["decalFragment",0,{name:i,shader:o}])},805,e=>{"use strict";var t=e.i(47150);let i="clusteredLightingFunctions",o=`struct ClusteredLight {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;vec4 vLightDirection;vec4 vLightFalloff;};
487
- #define inline
488
- ClusteredLight getClusteredLight(sampler2D lightDataTexture,int index) {return ClusteredLight(
489
- texelFetch(lightDataTexture,ivec2(0,index),0),
490
- texelFetch(lightDataTexture,ivec2(1,index),0),
491
- texelFetch(lightDataTexture,ivec2(2,index),0),
492
- texelFetch(lightDataTexture,ivec2(3,index),0),
493
- texelFetch(lightDataTexture,ivec2(4,index),0)
494
- );}
495
- int getClusteredSliceIndex(vec2 sliceData,float viewDepth) {return int(log(viewDepth)*sliceData.x+sliceData.y);}
496
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["clusteredLightingFunctions",0,{name:i,shader:o}])},69855,e=>{"use strict";var t=e.i(47150);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}])},27960,e=>{"use strict";var t=e.i(25044);let i="lightFragment",o=`#ifdef LIGHT{X}
497
301
  #if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
498
302
  #else
499
303
  vec4 diffuse{X}=light{X}.vLightDiffuse;
@@ -871,133 +675,193 @@ sheenBase+=info.sheen.rgb*shadow;
871
675
  #endif
872
676
  #endif
873
677
  #endif
874
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["lightFragment",0,{name:i,shader:o}])},844,40676,e=>{"use strict";var t=e.i(47150);let i="samplerFragmentDeclaration",o=`#ifdef _DEFINENAME_
875
- #if _DEFINENAME_DIRECTUV==1
876
- #define v_VARYINGNAME_UV vMainUV1
877
- #elif _DEFINENAME_DIRECTUV==2
878
- #define v_VARYINGNAME_UV vMainUV2
879
- #elif _DEFINENAME_DIRECTUV==3
880
- #define v_VARYINGNAME_UV vMainUV3
881
- #elif _DEFINENAME_DIRECTUV==4
882
- #define v_VARYINGNAME_UV vMainUV4
883
- #elif _DEFINENAME_DIRECTUV==5
884
- #define v_VARYINGNAME_UV vMainUV5
885
- #elif _DEFINENAME_DIRECTUV==6
886
- #define v_VARYINGNAME_UV vMainUV6
678
+ `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["lightFragment",0,{name:i,shader:o}])},10874,e=>{"use strict";var t=e.i(25044);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}])},49185,e=>{"use strict";var t=e.i(25044);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}])},4100,e=>{"use strict";var t=e.i(25044);let i="meshUboDeclaration",o=`#ifdef WEBGL2
685
+ uniform mat4 world;uniform float visibility;
887
686
  #else
888
- varying vec2 v_VARYINGNAME_UV;
687
+ layout(std140,column_major) uniform;uniform Mesh
688
+ {mat4 world;float visibility;};
889
689
  #endif
890
- 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}])},16300,e=>{"use strict";var t=e.i(25044);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);}
891
703
  #endif
892
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["samplerFragmentDeclaration",0,{name:i,shader:o}],844);let a="reflectionFunction",r=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
893
- {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); }
894
- vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
895
- {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); }
896
- vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
897
- {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);}
898
- vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
899
- {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);}
900
- vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
901
- {vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
902
- vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
903
- {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
904
- #ifdef INVERTCUBICMAP
905
- 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;}
906
714
  #endif
907
- return coords;}
908
- vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
909
- {vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
910
- #ifdef INVERTCUBICMAP
911
- 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;}
912
717
  #endif
913
- return coords;}
914
- vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
915
- {return vec3(reflectionMatrix*(view*worldPos));}
916
- vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
917
- {return vec3(reflectionMatrix*vec4(positionW,1.));}
918
- #ifdef REFLECTION
919
- vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
920
- {
921
- #ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
922
- 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);
923
722
  #endif
924
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
925
- 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;
926
729
  #endif
927
- #ifdef REFLECTIONMAP_EQUIRECTANGULAR
928
- 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;
929
736
  #endif
930
- #ifdef REFLECTIONMAP_SPHERICAL
931
- return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
737
+ return reflectance;}
932
738
  #endif
933
- #ifdef REFLECTIONMAP_PLANAR
934
- 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));}
935
743
  #endif
936
- #ifdef REFLECTIONMAP_CUBIC
937
- #ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
938
- 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);
939
765
  #else
940
- return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
766
+ return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
941
767
  #endif
768
+ #else
769
+ vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
942
770
  #endif
943
- #ifdef REFLECTIONMAP_PROJECTION
944
- return computeProjectionCoords(worldPos,view,reflectionMatrix);
771
+ }
945
772
  #endif
946
- #ifdef REFLECTIONMAP_SKYBOX
947
- 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));}
948
788
  #endif
949
- #ifdef REFLECTIONMAP_EXPLICIT
950
- 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);}
951
794
  #endif
952
- }
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;}
953
797
  #endif
954
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["reflectionFunction",0,{name:a,shader:r}],40676)},64242,72306,e=>{"use strict";var t=e.i(47150);let i="pbrFragmentReflectionDeclaration",o=`#ifdef REFLECTION
955
- #ifdef REFLECTIONMAP_3D
956
- #define sampleReflection(s,c) textureCube(s,c)
957
- uniform samplerCube reflectionSampler;
958
- #ifdef LODBASEDMICROSFURACE
959
- #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);
960
802
  #else
961
- uniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;
962
- #endif
963
- #ifdef USEIRRADIANCEMAP
964
- 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);
965
804
  #endif
805
+ }
966
806
  #else
967
- #define sampleReflection(s,c) texture2D(s,c)
968
- uniform sampler2D reflectionSampler;
969
- #ifdef LODBASEDMICROSFURACE
970
- #define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)
971
- #else
972
- uniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;
973
- #endif
974
- #ifdef USEIRRADIANCEMAP
975
- uniform sampler2D irradianceSampler;
976
- #endif
977
- #endif
978
- #ifdef REFLECTIONMAP_SKYBOX
979
- 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 ));
980
811
  #else
981
- #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
982
- varying vec3 vDirectionW;
812
+ float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
983
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;}
984
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;}
985
820
  #endif
986
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentReflectionDeclaration",0,{name:i,shader:o}],64242);let a="pbrIBLFunctions",r=`#if defined(REFLECTION) || defined(SS_REFRACTION)
987
- float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}
988
- 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); }
989
823
  #endif
990
- #if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
991
- 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);}
992
835
  #endif
993
- #if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
994
- 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
+ */
995
837
  #endif
996
- #if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
997
- #define UNPACK_LOD(x) (1.0-x)*255.0
998
- 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);}
999
862
  #endif
1000
- `;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["pbrIBLFunctions",0,{name:a,shader:r}],72306)},18582,74197,83900,3707,83025,7629,86563,74188,97657,10891,20904,e=>{"use strict";var t=e.i(47150);e.i(30868);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}])},63807,25176,72317,7750,44239,34464,32181,50154,8734,46456,37897,e=>{"use strict";var t=e.i(25044);e.i(49185);let i="pbrFragmentExtraDeclaration",o=`varying vec3 vPositionW;
1001
865
  #if DEBUGMODE>0
1002
866
  varying vec4 vClipSpacePosition;
1003
867
  #endif
@@ -1014,15 +878,15 @@ varying vec4 vColor;
1014
878
  #if defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0
1015
879
  varying float vViewDepth;
1016
880
  #endif
1017
- `;t.ShaderStore.IncludesShadersStore[i]||(t.ShaderStore.IncludesShadersStore[i]=o),e.s(["pbrFragmentExtraDeclaration",0,{name:i,shader:o}],18582);let a="subSurfaceScatteringFunctions",r=`bool testLightingForSSS(float diffusionProfile)
1018
- {return diffusionProfile<1.;}`;t.ShaderStore.IncludesShadersStore[a]||(t.ShaderStore.IncludesShadersStore[a]=r),e.s(["subSurfaceScatteringFunctions",0,{name:a,shader:r}],74197);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}],63807);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}],25176);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);}
1019
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);}
1020
884
  vec3 hemisphereImportanceSampleDggxAnisotropic(vec2 Xi,float alphaTangent,float alphaBitangent)
1021
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;
1022
886
  float cosPhi=cos(phi);float sinPhi=sin(phi);float alpha2=(cosPhi*cosPhi)/(alphaTangent*alphaTangent) +
1023
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);}
1024
888
  vec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) {
1025
- 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}],83900);let f="pbrHelperFunctions",c=`#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}],72317);let f="pbrHelperFunctions",c=`#define MINIMUMVARIANCE 0.0005
1026
890
  #ifndef TEXRD_DEFINED
1027
891
  #define TEXRD(s,uv) texture2D(s,uv)
1028
892
  #define TEXRD_DEFINED
@@ -1061,7 +925,7 @@ clearCoatIntensity);return clearCoatAbsorption;}
1061
925
  float computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)
1062
926
  {const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}
1063
927
  #endif
1064
- `;t.ShaderStore.IncludesShadersStore[f]||(t.ShaderStore.IncludesShadersStore[f]=c),e.s(["pbrHelperFunctions",0,{name:f,shader:c}],3707),e.i(93663);let s="pbrDirectLightingSetupFunctions",d=`struct preLightingInfo
928
+ `;t.ShaderStore.IncludesShadersStore[f]||(t.ShaderStore.IncludesShadersStore[f]=c),e.s(["pbrHelperFunctions",0,{name:f,shader:c}],7750),e.i(31444);let s="pbrDirectLightingSetupFunctions",d=`struct preLightingInfo
1065
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;
1066
930
  #ifdef IRIDESCENCE
1067
931
  float iridescenceIntensity;
@@ -1094,7 +958,7 @@ result.areaLightFresnel=data.Fresnel;result.areaLightSpecular=data.Specular;
1094
958
  #endif
1095
959
  result.areaLightDiffuse=data.Diffuse;result.LdotV=0.;result.roughness=0.;result.diffuseRoughness=0.;result.surfaceAlbedo=vec3(0.);return result;}
1096
960
  #endif
1097
- `;t.ShaderStore.IncludesShadersStore[s]||(t.ShaderStore.IncludesShadersStore[s]=d),e.s(["pbrDirectLightingSetupFunctions",0,{name:s,shader:d}],83025);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}],44239);let u="pbrDirectLightingFalloffFunctions",h=`float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)
1098
962
  {return max(0.,1.0-length(lightOffset)/range);}
1099
963
  float computeDistanceLightFalloff_Physical(float lightDistanceSquared)
1100
964
  {return 1.0/maxEps(lightDistanceSquared);}
@@ -1130,7 +994,7 @@ return computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenter
1130
994
  #else
1131
995
  return computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);
1132
996
  #endif
1133
- }`;t.ShaderStore.IncludesShadersStore[u]||(t.ShaderStore.IncludesShadersStore[u]=h),e.s(["pbrDirectLightingFalloffFunctions",0,{name:u,shader:h}],7629);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}],34464);let g="hdrFilteringFunctions",v=`#if NUM_SAMPLES
1134
998
  #if NUM_SAMPLES>0
1135
999
  #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
1136
1000
  float radicalInverse_VdC(uint bits)
@@ -1256,13 +1120,13 @@ vec2 noiseInput,
1256
1120
  bool isRefraction,
1257
1121
  float ior
1258
1122
  )
1259
- {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.;
1260
1124
  #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
1261
1125
  for(uint i=0u; i<NUM_SAMPLES; ++i)
1262
1126
  #else
1263
1127
  for(int i=0; i<NUM_SAMPLES; ++i)
1264
1128
  #endif
1265
- {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));
1266
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);}
1267
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(
1268
1132
  H_tangent.z,H_tangent.x,H_tangent.y,vec2(clampedAlphaT,clampedAlphaB)
@@ -1275,7 +1139,7 @@ result=result/weight;return result;}
1275
1139
  #endif
1276
1140
  #endif
1277
1141
  #endif
1278
- `;t.ShaderStore.IncludesShadersStore[g]||(t.ShaderStore.IncludesShadersStore[g]=v),e.s(["hdrFilteringFunctions",0,{name:g,shader:v}],86563);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}],32181);let m="pbrDirectLightingFunctions",p=`#define CLEARCOATREFLECTANCE90 1.0
1279
1143
  struct lightingInfo
1280
1144
  {vec3 diffuse;
1281
1145
  #ifdef SS_TRANSLUCENCY
@@ -1381,7 +1245,7 @@ float visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);
1381
1245
  float visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */
1382
1246
  float sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}
1383
1247
  #endif
1384
- `;t.ShaderStore.IncludesShadersStore[m]||(t.ShaderStore.IncludesShadersStore[m]=p),e.s(["pbrDirectLightingFunctions",0,{name:m,shader:p}],74188);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}],50154);let S="pbrBlockNormalGeometric",E=`vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
1385
1249
  #ifdef NORMAL
1386
1250
  vec3 normalW=normalize(vNormalW);
1387
1251
  #else
@@ -1391,7 +1255,7 @@ vec3 geometricNormalW=normalW;
1391
1255
  #if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
1392
1256
  geometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW;
1393
1257
  #endif
1394
- `;t.ShaderStore.IncludesShadersStore[S]||(t.ShaderStore.IncludesShadersStore[S]=E),e.s(["pbrBlockNormalGeometric",0,{name:S,shader:E}],97657);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}],8734);let L="pbrBlockImageProcessing",I=`#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)
1395
1259
  #if !defined(SKIPFINALCOLORCLAMP)
1396
1260
  finalColor.rgb=clamp(finalColor.rgb,0.,30.0);
1397
1261
  #endif
@@ -1402,7 +1266,7 @@ finalColor.a*=visibility;
1402
1266
  #ifdef PREMULTIPLYALPHA
1403
1267
  finalColor.rgb*=finalColor.a;
1404
1268
  #endif
1405
- `;t.ShaderStore.IncludesShadersStore[L]||(t.ShaderStore.IncludesShadersStore[L]=I),e.s(["pbrBlockImageProcessing",0,{name:L,shader:I}],10891);let D="pbrDebug",A=`#if DEBUGMODE>0
1269
+ `;t.ShaderStore.IncludesShadersStore[L]||(t.ShaderStore.IncludesShadersStore[L]=I),e.s(["pbrBlockImageProcessing",0,{name:L,shader:I}],46456);let D="pbrDebug",A=`#if DEBUGMODE>0
1406
1270
  if (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {
1407
1271
  #if DEBUGMODE==1
1408
1272
  gl_FragColor.rgb=vPositionW.rgb;
@@ -1586,4 +1450,140 @@ return;
1586
1450
  #endif
1587
1451
  }
1588
1452
  #endif
1589
- `;t.ShaderStore.IncludesShadersStore[D]||(t.ShaderStore.IncludesShadersStore[D]=A),e.s(["pbrDebug",0,{name:D,shader:A}],20904)}]);
1453
+ `;t.ShaderStore.IncludesShadersStore[D]||(t.ShaderStore.IncludesShadersStore[D]=A),e.s(["pbrDebug",0,{name:D,shader:A}],37897)},20675,18054,e=>{"use strict";var t=e.i(25044);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}],20675);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}],18054)},83089,e=>{"use strict";var t=e.i(25044);e.i(77074),e.i(4100);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}])},95804,12075,e=>{"use strict";var t=e.i(25044);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}],95804);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}],12075)},77074,e=>{"use strict";var t=e.i(25044);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}])}]);