@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,434 +1,110 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,3954,e=>{"use strict";var i=e.i(47150);let t="helperFunctions",r=`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);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12211,60661,88305,16450,67412,11832,e=>{"use strict";var i=e.i(25044);let t="bonesDeclaration",r=`#if NUM_BONE_INFLUENCERS>0
2
+ attribute vec4 matricesIndices;attribute vec4 matricesWeights;
3
+ #if NUM_BONE_INFLUENCERS>4
4
+ attribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;
26
5
  #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)));
6
+ #ifndef BAKED_VERTEX_ANIMATION_TEXTURE
7
+ #ifdef BONETEXTURE
8
+ uniform highp sampler2D boneSampler;uniform vec2 boneTextureInfo;
32
9
  #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);
10
+ uniform mat4 mBones[BonesPerMesh];
38
11
  #endif
39
- }
12
+ #ifdef BONES_VELOCITY_ENABLED
13
+ uniform mat4 mPreviousBones[BonesPerMesh];
40
14
  #endif
41
- float toLinearSpace(float color)
15
+ #ifdef BONETEXTURE
16
+ #define inline
17
+ mat4 readMatrixFromRawSampler(sampler2D smp,float index)
42
18
  {
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;
19
+ #if defined(WEBGL2) || defined(WEBGPU)
20
+ int offset=int(index)*4;
21
+ int textureWidth=int(boneTextureInfo.x);int y=int(offset)/textureWidth;int x=int(offset) % textureWidth;vec4 m0=texelFetch(smp,ivec2(x+0,y),0);vec4 m1=texelFetch(smp,ivec2(x+1,y),0);vec4 m2=texelFetch(smp,ivec2(x+2,y),0);vec4 m3=texelFetch(smp,ivec2(x+3,y),0);return mat4(m0,m1,m2,m3);
45
22
  #else
46
- return pow(color,LinearEncodePowerApprox);
23
+ float offset=index*4.0;float y=floor(offset/boneTextureInfo.x);float x=offset-y*boneTextureInfo.x;float dy=1.0/boneTextureInfo.y;float dx=1.0/boneTextureInfo.x;vec4 m0=texture2D(smp,vec2(dx*(x+0.5),dy*(y+0.5)));vec4 m1=texture2D(smp,vec2(dx*(x+1.5),dy*(y+0.5)));vec4 m2=texture2D(smp,vec2(dx*(x+2.5),dy*(y+0.5)));vec4 m3=texture2D(smp,vec2(dx*(x+3.5),dy*(y+0.5)));
24
+ return mat4(m0,m1,m2,m3);
47
25
  #endif
48
26
  }
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
27
  #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
28
  #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
29
  #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));
30
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["bonesDeclaration",0,{name:t,shader:r}],12211);let a="bakedVertexAnimationDeclaration",n=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
31
+ uniform float bakedVertexAnimationTime;
32
+ #if !defined(WEBGL2) && !defined(WEBGPU)
33
+ uniform vec2 bakedVertexAnimationTextureSizeInverted;
79
34
  #endif
80
- }
81
- vec4 toGammaSpace(vec4 color)
35
+ uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;
36
+ #ifdef INSTANCES
37
+ attribute vec4 bakedVertexAnimationSettingsInstanced;
38
+ #endif
39
+ #define inline
40
+ mat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)
82
41
  {
83
- #if USE_EXACT_SRGB_CONVERSIONS
84
- return vec4(toGammaSpaceExact(color.rgb),color.a);
42
+ #if defined(WEBGL2) || defined(WEBGPU)
43
+ int offset=int(index)*4;int frameUV=int(frame);vec4 m0=texelFetch(smp,ivec2(offset+0,frameUV),0);vec4 m1=texelFetch(smp,ivec2(offset+1,frameUV),0);vec4 m2=texelFetch(smp,ivec2(offset+2,frameUV),0);vec4 m3=texelFetch(smp,ivec2(offset+3,frameUV),0);return mat4(m0,m1,m2,m3);
85
44
  #else
86
- return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
45
+ float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);
87
46
  #endif
88
47
  }
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
48
  #endif
119
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["helperFunctions",0,{name:t,shader:r}])},68381,e=>{"use strict";var i=e.i(47150);let t="logDepthDeclaration",r=`#ifdef LOGARITHMICDEPTH
120
- uniform float logarithmicDepthConstant;varying float vFragmentDepth;
49
+ `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["bakedVertexAnimationDeclaration",0,{name:a,shader:n}],60661);let o="instancesDeclaration",s=`#ifdef INSTANCES
50
+ attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
51
+ #ifdef INSTANCESCOLOR
52
+ attribute vec4 instanceColor;
121
53
  #endif
122
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["logDepthDeclaration",0,{name:t,shader:r}])},67827,e=>{"use strict";var i=e.i(47150);let t="sceneUboDeclaration",r=`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
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["sceneUboDeclaration",0,{name:t,shader:r}])},38605,e=>{"use strict";var i=e.i(47150);let t="meshUboDeclaration",r=`#ifdef WEBGL2
128
- uniform mat4 world;uniform float visibility;
129
- #else
130
- layout(std140,column_major) uniform;uniform Mesh
131
- {mat4 world;float visibility;};
54
+ #if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
55
+ uniform mat4 world;
56
+ #endif
57
+ #if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
58
+ attribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;
59
+ #ifdef THIN_INSTANCES
60
+ uniform mat4 previousWorld;
132
61
  #endif
133
- #define WORLD_UBO
134
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["meshUboDeclaration",0,{name:t,shader:r}])},30868,e=>{"use strict";var i=e.i(47150);let t="mainUVVaryingDeclaration",r=`#ifdef MAINUV{X}
135
- varying vec2 vMainUV{X};
136
62
  #endif
137
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["mainUVVaryingDeclaration",0,{name:t,shader:r}])},88913,e=>{"use strict";var i=e.i(47150);let t="harmonicsFunctions",r=`#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
63
  #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;}
64
+ #if !defined(WORLD_UBO)
65
+ uniform mat4 world;
150
66
  #endif
67
+ #if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
68
+ uniform mat4 previousWorld;
151
69
  #endif
152
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["harmonicsFunctions",0,{name:t,shader:r}])},98680,e=>{"use strict";var i=e.i(47150);let t="pbrBRDFFunctions",r=`#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
70
  #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;}
71
+ `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["instancesDeclaration",0,{name:o,shader:s}],88305);let f="instancesVertex",l=`#ifdef INSTANCES
72
+ mat4 finalWorld=mat4(world0,world1,world2,world3);
73
+ #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
74
+ mat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,
75
+ previousWorld2,previousWorld3);
175
76
  #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;}
77
+ #ifdef THIN_INSTANCES
78
+ finalWorld=world*finalWorld;
79
+ #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
80
+ finalPreviousWorld=previousWorld*finalPreviousWorld;
178
81
  #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
82
  #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
83
  #else
189
- vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
84
+ mat4 finalWorld=world;
85
+ #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
86
+ mat4 finalPreviousWorld=previousWorld;
190
87
  #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
88
  #endif
198
- return reflectance;}
89
+ `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["instancesVertex",0,{name:f,shader:l}],16450);let c="bonesVertex",d=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
90
+ #if NUM_BONE_INFLUENCERS>0
91
+ mat4 influence;
92
+ #ifdef BONETEXTURE
93
+ influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];
94
+ #if NUM_BONE_INFLUENCERS>1
95
+ influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];
199
96
  #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));}
97
+ #if NUM_BONE_INFLUENCERS>2
98
+ influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];
204
99
  #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));}
100
+ #if NUM_BONE_INFLUENCERS>3
101
+ influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];
209
102
  #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;}
103
+ #if NUM_BONE_INFLUENCERS>4
104
+ influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];
216
105
  #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
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["pbrBRDFFunctions",0,{name:t,shader:r}])},36406,36178,42421,47692,51540,95178,e=>{"use strict";var i=e.i(47150);let t="bonesDeclaration",r=`#if NUM_BONE_INFLUENCERS>0
326
- attribute vec4 matricesIndices;attribute vec4 matricesWeights;
327
- #if NUM_BONE_INFLUENCERS>4
328
- attribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;
329
- #endif
330
- #ifndef BAKED_VERTEX_ANIMATION_TEXTURE
331
- #ifdef BONETEXTURE
332
- uniform highp sampler2D boneSampler;uniform vec2 boneTextureInfo;
333
- #else
334
- uniform mat4 mBones[BonesPerMesh];
335
- #endif
336
- #ifdef BONES_VELOCITY_ENABLED
337
- uniform mat4 mPreviousBones[BonesPerMesh];
338
- #endif
339
- #ifdef BONETEXTURE
340
- #define inline
341
- mat4 readMatrixFromRawSampler(sampler2D smp,float index)
342
- {
343
- #if defined(WEBGL2) || defined(WEBGPU)
344
- int offset=int(index)*4;
345
- int textureWidth=int(boneTextureInfo.x);int y=int(offset)/textureWidth;int x=int(offset) % textureWidth;vec4 m0=texelFetch(smp,ivec2(x+0,y),0);vec4 m1=texelFetch(smp,ivec2(x+1,y),0);vec4 m2=texelFetch(smp,ivec2(x+2,y),0);vec4 m3=texelFetch(smp,ivec2(x+3,y),0);return mat4(m0,m1,m2,m3);
346
- #else
347
- float offset=index*4.0;float y=floor(offset/boneTextureInfo.x);float x=offset-y*boneTextureInfo.x;float dy=1.0/boneTextureInfo.y;float dx=1.0/boneTextureInfo.x;vec4 m0=texture2D(smp,vec2(dx*(x+0.5),dy*(y+0.5)));vec4 m1=texture2D(smp,vec2(dx*(x+1.5),dy*(y+0.5)));vec4 m2=texture2D(smp,vec2(dx*(x+2.5),dy*(y+0.5)));vec4 m3=texture2D(smp,vec2(dx*(x+3.5),dy*(y+0.5)));
348
- return mat4(m0,m1,m2,m3);
349
- #endif
350
- }
351
- #endif
352
- #endif
353
- #endif
354
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["bonesDeclaration",0,{name:t,shader:r}],36406);let a="bakedVertexAnimationDeclaration",n=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
355
- uniform float bakedVertexAnimationTime;
356
- #if !defined(WEBGL2) && !defined(WEBGPU)
357
- uniform vec2 bakedVertexAnimationTextureSizeInverted;
358
- #endif
359
- uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;
360
- #ifdef INSTANCES
361
- attribute vec4 bakedVertexAnimationSettingsInstanced;
362
- #endif
363
- #define inline
364
- mat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)
365
- {
366
- #if defined(WEBGL2) || defined(WEBGPU)
367
- int offset=int(index)*4;int frameUV=int(frame);vec4 m0=texelFetch(smp,ivec2(offset+0,frameUV),0);vec4 m1=texelFetch(smp,ivec2(offset+1,frameUV),0);vec4 m2=texelFetch(smp,ivec2(offset+2,frameUV),0);vec4 m3=texelFetch(smp,ivec2(offset+3,frameUV),0);return mat4(m0,m1,m2,m3);
368
- #else
369
- float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);
370
- #endif
371
- }
372
- #endif
373
- `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["bakedVertexAnimationDeclaration",0,{name:a,shader:n}],36178);let o="instancesDeclaration",s=`#ifdef INSTANCES
374
- attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
375
- #ifdef INSTANCESCOLOR
376
- attribute vec4 instanceColor;
377
- #endif
378
- #if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
379
- uniform mat4 world;
380
- #endif
381
- #if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
382
- attribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;
383
- #ifdef THIN_INSTANCES
384
- uniform mat4 previousWorld;
385
- #endif
386
- #endif
387
- #else
388
- #if !defined(WORLD_UBO)
389
- uniform mat4 world;
390
- #endif
391
- #if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
392
- uniform mat4 previousWorld;
393
- #endif
394
- #endif
395
- `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["instancesDeclaration",0,{name:o,shader:s}],42421);let f="instancesVertex",l=`#ifdef INSTANCES
396
- mat4 finalWorld=mat4(world0,world1,world2,world3);
397
- #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
398
- mat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,
399
- previousWorld2,previousWorld3);
400
- #endif
401
- #ifdef THIN_INSTANCES
402
- finalWorld=world*finalWorld;
403
- #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
404
- finalPreviousWorld=previousWorld*finalPreviousWorld;
405
- #endif
406
- #endif
407
- #else
408
- mat4 finalWorld=world;
409
- #if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
410
- mat4 finalPreviousWorld=previousWorld;
411
- #endif
412
- #endif
413
- `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["instancesVertex",0,{name:f,shader:l}],47692);let c="bonesVertex",d=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
414
- #if NUM_BONE_INFLUENCERS>0
415
- mat4 influence;
416
- #ifdef BONETEXTURE
417
- influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];
418
- #if NUM_BONE_INFLUENCERS>1
419
- influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];
420
- #endif
421
- #if NUM_BONE_INFLUENCERS>2
422
- influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];
423
- #endif
424
- #if NUM_BONE_INFLUENCERS>3
425
- influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];
426
- #endif
427
- #if NUM_BONE_INFLUENCERS>4
428
- influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];
429
- #endif
430
- #if NUM_BONE_INFLUENCERS>5
431
- influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];
106
+ #if NUM_BONE_INFLUENCERS>5
107
+ influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];
432
108
  #endif
433
109
  #if NUM_BONE_INFLUENCERS>6
434
110
  influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];
@@ -463,7 +139,7 @@ influence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
463
139
  finalWorld=finalWorld*influence;
464
140
  #endif
465
141
  #endif
466
- `;i.ShaderStore.IncludesShadersStore[c]||(i.ShaderStore.IncludesShadersStore[c]=d),e.s(["bonesVertex",0,{name:c,shader:d}],51540);let m="bakedVertexAnimation",E=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
142
+ `;i.ShaderStore.IncludesShadersStore[c]||(i.ShaderStore.IncludesShadersStore[c]=d),e.s(["bonesVertex",0,{name:c,shader:d}],67412);let m="bakedVertexAnimation",E=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
467
143
  {
468
144
  #ifdef INSTANCES
469
145
  #define BVASNAME bakedVertexAnimationSettingsInstanced
@@ -494,7 +170,7 @@ VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIn
494
170
  #endif
495
171
  finalWorld=finalWorld*VATInfluence;}
496
172
  #endif
497
- `;i.ShaderStore.IncludesShadersStore[m]||(i.ShaderStore.IncludesShadersStore[m]=E),e.s(["bakedVertexAnimation",0,{name:m,shader:E}],95178)},49161,48661,e=>{"use strict";var i=e.i(47150);let t="clipPlaneVertexDeclaration",r=`#ifdef CLIPPLANE
173
+ `;i.ShaderStore.IncludesShadersStore[m]||(i.ShaderStore.IncludesShadersStore[m]=E),e.s(["bakedVertexAnimation",0,{name:m,shader:E}],11832)},86040,16642,e=>{"use strict";var i=e.i(25044);let t="clipPlaneVertexDeclaration",r=`#ifdef CLIPPLANE
498
174
  uniform vec4 vClipPlane;varying float fClipDistance;
499
175
  #endif
500
176
  #ifdef CLIPPLANE2
@@ -512,7 +188,7 @@ uniform vec4 vClipPlane5;varying float fClipDistance5;
512
188
  #ifdef CLIPPLANE6
513
189
  uniform vec4 vClipPlane6;varying float fClipDistance6;
514
190
  #endif
515
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["clipPlaneVertexDeclaration",0,{name:t,shader:r}],49161);let a="clipPlaneVertex",n=`#ifdef CLIPPLANE
191
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["clipPlaneVertexDeclaration",0,{name:t,shader:r}],86040);let a="clipPlaneVertex",n=`#ifdef CLIPPLANE
516
192
  fClipDistance=dot(worldPos,vClipPlane);
517
193
  #endif
518
194
  #ifdef CLIPPLANE2
@@ -530,189 +206,57 @@ fClipDistance5=dot(worldPos,vClipPlane5);
530
206
  #ifdef CLIPPLANE6
531
207
  fClipDistance6=dot(worldPos,vClipPlane6);
532
208
  #endif
533
- `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["clipPlaneVertex",0,{name:a,shader:n}],48661)},3091,99240,e=>{"use strict";var i=e.i(47150);let t="fogVertexDeclaration",r=`#ifdef FOG
534
- varying vec3 vFogDistance;
209
+ `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["clipPlaneVertex",0,{name:a,shader:n}],16642)},40560,43465,84520,4434,65573,80430,4283,15732,51799,61822,e=>{"use strict";var i=e.i(25044);let t="decalVertexDeclaration",r=`#ifdef DECAL
210
+ uniform vec4 vDecalInfos;uniform mat4 decalMatrix;
535
211
  #endif
536
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["fogVertexDeclaration",0,{name:t,shader:r}],3091);let a="fogVertex",n=`#ifdef FOG
537
- vFogDistance=(view*worldPos).xyz;
212
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["decalVertexDeclaration",0,{name:t,shader:r}],40560);let a="uvAttributeDeclaration",n=`#ifdef UV{X}
213
+ attribute vec2 uv{X};
538
214
  #endif
539
- `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["fogVertex",0,{name:a,shader:n}],99240)},20220,e=>{"use strict";var i=e.i(47150);let t="vertexColorMixing",r=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
540
- vColor=vec4(1.0);
541
- #ifdef VERTEXCOLOR
542
- #ifdef VERTEXALPHA
543
- vColor*=colorUpdated;
544
- #else
545
- vColor.rgb*=colorUpdated.rgb;
215
+ `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["uvAttributeDeclaration",0,{name:a,shader:n}],43465);let o="prePassVertexDeclaration",s=`#ifdef PREPASS
216
+ #ifdef PREPASS_LOCAL_POSITION
217
+ varying vec3 vPosition;
546
218
  #endif
219
+ #ifdef PREPASS_DEPTH
220
+ varying vec3 vViewPos;
547
221
  #endif
548
- #ifdef INSTANCESCOLOR
549
- vColor*=instanceColor;
222
+ #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
223
+ varying float vNormViewDepth;
224
+ #endif
225
+ #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
226
+ uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
550
227
  #endif
551
228
  #endif
552
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["vertexColorMixing",0,{name:t,shader:r}])},23341,82718,55578,58059,e=>{"use strict";var i=e.i(47150);let t="morphTargetsVertexGlobalDeclaration",r=`#ifdef MORPHTARGETS
553
- uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
554
- #ifdef MORPHTARGETS_TEXTURE
555
- uniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)
556
- {
557
- #if defined(WEBGL2) || defined(WEBGPU)
558
- int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0).xyz;
229
+ `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["prePassVertexDeclaration",0,{name:o,shader:s}],84520);let f="samplerVertexDeclaration",l=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
230
+ varying vec2 v_VARYINGNAME_UV;
231
+ #endif
232
+ `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["samplerVertexDeclaration",0,{name:f,shader:l}],4434);let c="lightVxFragmentDeclaration",d=`#ifdef LIGHT{X}
233
+ uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
234
+ #ifdef SPECULARTERM
235
+ uniform vec4 vLightSpecular{X};
559
236
  #else
560
- float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;
237
+ vec4 vLightSpecular{X}=vec4(0.);
561
238
  #endif
562
- }
563
- vec4 readVector4FromRawSampler(int targetIndex,float vertexIndex)
564
- {
565
- #if defined(WEBGL2) || defined(WEBGPU)
566
- int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0);
239
+ #ifdef SHADOW{X}
240
+ #ifdef SHADOWCSM{X}
241
+ uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
242
+ #elif defined(SHADOWCUBE{X})
567
243
  #else
568
- float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV);
244
+ varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
569
245
  #endif
570
- }
246
+ uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
571
247
  #endif
248
+ #ifdef SPOTLIGHT{X}
249
+ uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
250
+ #elif defined(POINTLIGHT{X})
251
+ uniform vec4 vLightFalloff{X};
252
+ #elif defined(HEMILIGHT{X})
253
+ uniform vec3 vLightGround{X};
572
254
  #endif
573
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["morphTargetsVertexGlobalDeclaration",0,{name:t,shader:r}],23341);let a="morphTargetsVertexDeclaration",n=`#ifdef MORPHTARGETS
574
- #ifndef MORPHTARGETS_TEXTURE
575
- #ifdef MORPHTARGETS_POSITION
576
- attribute vec3 position{X};
255
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
256
+ uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
577
257
  #endif
578
- #ifdef MORPHTARGETS_NORMAL
579
- attribute vec3 normal{X};
580
- #endif
581
- #ifdef MORPHTARGETS_TANGENT
582
- attribute vec3 tangent{X};
583
- #endif
584
- #ifdef MORPHTARGETS_UV
585
- attribute vec2 uv_{X};
586
- #endif
587
- #ifdef MORPHTARGETS_UV2
588
- attribute vec2 uv2_{X};
589
- #endif
590
- #ifdef MORPHTARGETS_COLOR
591
- attribute vec4 color{X};
592
- #endif
593
- #elif {X}==0
594
- uniform float morphTargetCount;
595
- #endif
596
- #endif
597
- `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["morphTargetsVertexDeclaration",0,{name:a,shader:n}],82718);let o="morphTargetsVertexGlobal",s=`#ifdef MORPHTARGETS
598
- #ifdef MORPHTARGETS_TEXTURE
599
- float vertexID;
600
- #endif
601
- #endif
602
- `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["morphTargetsVertexGlobal",0,{name:o,shader:s}],55578);let f="morphTargetsVertex",l=`#ifdef MORPHTARGETS
603
- #ifdef MORPHTARGETS_TEXTURE
604
- #if {X}==0
605
- for (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (float(i)>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;
606
- #ifdef MORPHTARGETS_POSITION
607
- positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];
608
- #endif
609
- #ifdef MORPHTARGETTEXTURE_HASPOSITIONS
610
- vertexID+=1.0;
611
- #endif
612
- #ifdef MORPHTARGETS_NORMAL
613
- normalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];
614
- #endif
615
- #ifdef MORPHTARGETTEXTURE_HASNORMALS
616
- vertexID+=1.0;
617
- #endif
618
- #ifdef MORPHTARGETS_UV
619
- uvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];
620
- #endif
621
- #ifdef MORPHTARGETTEXTURE_HASUVS
622
- vertexID+=1.0;
623
- #endif
624
- #ifdef MORPHTARGETS_TANGENT
625
- tangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];
626
- #endif
627
- #ifdef MORPHTARGETTEXTURE_HASTANGENTS
628
- vertexID+=1.0;
629
- #endif
630
- #ifdef MORPHTARGETS_UV2
631
- uv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*morphTargetInfluences[i];
632
- #endif
633
- #ifdef MORPHTARGETTEXTURE_HASUV2S
634
- vertexID+=1.0;
635
- #endif
636
- #ifdef MORPHTARGETS_COLOR
637
- colorUpdated+=(readVector4FromRawSampler(i,vertexID)-color)*morphTargetInfluences[i];
638
- #endif
639
- }
640
- #endif
641
- #else
642
- #ifdef MORPHTARGETS_POSITION
643
- positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
644
- #endif
645
- #ifdef MORPHTARGETS_NORMAL
646
- normalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];
647
- #endif
648
- #ifdef MORPHTARGETS_TANGENT
649
- tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
650
- #endif
651
- #ifdef MORPHTARGETS_UV
652
- uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
653
- #endif
654
- #ifdef MORPHTARGETS_UV2
655
- uv2Updated+=(uv2_{X}-uv2)*morphTargetInfluences[{X}];
656
- #endif
657
- #ifdef MORPHTARGETS_COLOR
658
- colorUpdated+=(color{X}-color)*morphTargetInfluences[{X}];
659
- #endif
660
- #endif
661
- #endif
662
- `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["morphTargetsVertex",0,{name:f,shader:l}],58059)},10873,e=>{"use strict";var i=e.i(47150);let t="logDepthVertex",r=`#ifdef LOGARITHMICDEPTH
663
- vFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
664
- #endif
665
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["logDepthVertex",0,{name:t,shader:r}])},74716,80902,27292,91731,65117,19828,50988,12700,17177,33666,e=>{"use strict";var i=e.i(47150);let t="decalVertexDeclaration",r=`#ifdef DECAL
666
- uniform vec4 vDecalInfos;uniform mat4 decalMatrix;
667
- #endif
668
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["decalVertexDeclaration",0,{name:t,shader:r}],74716);let a="uvAttributeDeclaration",n=`#ifdef UV{X}
669
- attribute vec2 uv{X};
670
- #endif
671
- `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["uvAttributeDeclaration",0,{name:a,shader:n}],80902);let o="prePassVertexDeclaration",s=`#ifdef PREPASS
672
- #ifdef PREPASS_LOCAL_POSITION
673
- varying vec3 vPosition;
674
- #endif
675
- #ifdef PREPASS_DEPTH
676
- varying vec3 vViewPos;
677
- #endif
678
- #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
679
- varying float vNormViewDepth;
680
- #endif
681
- #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
682
- uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
683
- #endif
684
- #endif
685
- `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["prePassVertexDeclaration",0,{name:o,shader:s}],27292);let f="samplerVertexDeclaration",l=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
686
- varying vec2 v_VARYINGNAME_UV;
687
- #endif
688
- `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["samplerVertexDeclaration",0,{name:f,shader:l}],91731);let c="lightVxFragmentDeclaration",d=`#ifdef LIGHT{X}
689
- uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
690
- #ifdef SPECULARTERM
691
- uniform vec4 vLightSpecular{X};
692
- #else
693
- vec4 vLightSpecular{X}=vec4(0.);
694
- #endif
695
- #ifdef SHADOW{X}
696
- #ifdef SHADOWCSM{X}
697
- uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
698
- #elif defined(SHADOWCUBE{X})
699
- #else
700
- varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
701
- #endif
702
- uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
703
- #endif
704
- #ifdef SPOTLIGHT{X}
705
- uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
706
- #elif defined(POINTLIGHT{X})
707
- uniform vec4 vLightFalloff{X};
708
- #elif defined(HEMILIGHT{X})
709
- uniform vec3 vLightGround{X};
710
- #endif
711
- #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
712
- uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
713
258
  #endif
714
- #endif
715
- `;i.ShaderStore.IncludesShadersStore[c]||(i.ShaderStore.IncludesShadersStore[c]=d),e.s(["lightVxFragmentDeclaration",0,{name:c,shader:d}],65117);let m="lightVxUboDeclaration",E=`#ifdef LIGHT{X}
259
+ `;i.ShaderStore.IncludesShadersStore[c]||(i.ShaderStore.IncludesShadersStore[c]=d),e.s(["lightVxFragmentDeclaration",0,{name:c,shader:d}],65573);let m="lightVxUboDeclaration",E=`#ifdef LIGHT{X}
716
260
  uniform Light{X}
717
261
  {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
718
262
  #ifdef SPOTLIGHT{X}
@@ -737,7 +281,7 @@ varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 li
737
281
  #endif
738
282
  #endif
739
283
  #endif
740
- `;i.ShaderStore.IncludesShadersStore[m]||(i.ShaderStore.IncludesShadersStore[m]=E),e.s(["lightVxUboDeclaration",0,{name:m,shader:E}],19828);let u="prePassVertex",v=`#ifdef PREPASS_DEPTH
284
+ `;i.ShaderStore.IncludesShadersStore[m]||(i.ShaderStore.IncludesShadersStore[m]=E),e.s(["lightVxUboDeclaration",0,{name:m,shader:E}],80430);let u="prePassVertex",v=`#ifdef PREPASS_DEPTH
741
285
  vViewPos=(view*worldPos).rgb;
742
286
  #endif
743
287
  #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
@@ -776,13 +320,13 @@ vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*ve
776
320
  vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
777
321
  #endif
778
322
  #endif
779
- `;i.ShaderStore.IncludesShadersStore[u]||(i.ShaderStore.IncludesShadersStore[u]=v),e.s(["prePassVertex",0,{name:u,shader:v}],50988);let S="uvVariableDeclaration",I=`#if !defined(UV{X}) && defined(MAINUV{X})
323
+ `;i.ShaderStore.IncludesShadersStore[u]||(i.ShaderStore.IncludesShadersStore[u]=v),e.s(["prePassVertex",0,{name:u,shader:v}],4283);let S="uvVariableDeclaration",I=`#if !defined(UV{X}) && defined(MAINUV{X})
780
324
  vec2 uv{X}=vec2(0.,0.);
781
325
  #endif
782
326
  #ifdef MAINUV{X}
783
327
  vMainUV{X}=uv{X};
784
328
  #endif
785
- `;i.ShaderStore.IncludesShadersStore[S]||(i.ShaderStore.IncludesShadersStore[S]=I),e.s(["uvVariableDeclaration",0,{name:S,shader:I}],12700);let N="samplerVertexImplementation",_=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
329
+ `;i.ShaderStore.IncludesShadersStore[S]||(i.ShaderStore.IncludesShadersStore[S]=I),e.s(["uvVariableDeclaration",0,{name:S,shader:I}],15732);let N="samplerVertexImplementation",_=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
786
330
  if (v_INFONAME_==0.)
787
331
  {v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}
788
332
  #ifdef UV2
@@ -806,7 +350,7 @@ else if (v_INFONAME_==5.)
806
350
  {v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}
807
351
  #endif
808
352
  #endif
809
- `;i.ShaderStore.IncludesShadersStore[N]||(i.ShaderStore.IncludesShadersStore[N]=_),e.s(["samplerVertexImplementation",0,{name:N,shader:_}],17177);let A="shadowsVertex",R=`#ifdef SHADOWS
353
+ `;i.ShaderStore.IncludesShadersStore[N]||(i.ShaderStore.IncludesShadersStore[N]=_),e.s(["samplerVertexImplementation",0,{name:N,shader:_}],51799);let A="shadowsVertex",R=`#ifdef SHADOWS
810
354
  #if defined(SHADOWCSM{X})
811
355
  vPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;
812
356
  #ifdef USE_REVERSE_DEPTHBUFFER
@@ -824,17 +368,473 @@ vDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthV
824
368
  #endif
825
369
  #endif
826
370
  #endif
827
- `;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R),e.s(["shadowsVertex",0,{name:A,shader:R}],33666)},21928,e=>{"use strict";var i=e.i(47150);e.i(67827),e.i(38605);let t="openpbrUboDeclaration",r=`layout(std140,column_major) uniform;uniform Material {vec2 vTangentSpaceParams;vec4 vLightingIntensity;float pointSize;vec2 vDebugMode;vec2 renderTargetSize;vec4 cameraInfo;vec4 vTextureRepetitionHexTilingParams;mat4 backgroundRefractionMatrix;vec3 vBackgroundRefractionInfos;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;float vBaseWeight;vec4 vBaseColor;float vBaseDiffuseRoughness;vec4 vReflectanceInfo;vec4 vSpecularColor;vec3 vSpecularAnisotropy;float vTransmissionWeight;vec3 vTransmissionColor;float vTransmissionDepth;vec3 vTransmissionScatter;float vTransmissionScatterAnisotropy;float vTransmissionDispersionScale;float vTransmissionDispersionAbbeNumber;float vSubsurfaceWeight;vec3 vSubsurfaceColor;float vSubsurfaceRadius;vec3 vSubsurfaceRadiusScale;float vSubsurfaceScatterAnisotropy;float vCoatWeight;vec3 vCoatColor;float vCoatRoughness;float vCoatRoughnessAnisotropy;float vCoatIor;float vCoatDarkening;float vFuzzWeight;vec3 vFuzzColor;float vFuzzRoughness;float vGeometryThinWalled;vec2 vGeometryCoatTangent;float vGeometryThickness;vec3 vEmissionColor;float vThinFilmWeight;vec2 vThinFilmThickness;float vThinFilmIor;vec2 vBaseWeightInfos;mat4 baseWeightMatrix;vec2 vBaseColorInfos;mat4 baseColorMatrix;vec2 vBaseDiffuseRoughnessInfos;mat4 baseDiffuseRoughnessMatrix;vec2 vBaseMetalnessInfos;mat4 baseMetalnessMatrix;vec2 vSpecularWeightInfos;mat4 specularWeightMatrix;vec2 vSpecularColorInfos;mat4 specularColorMatrix;vec2 vSpecularRoughnessInfos;mat4 specularRoughnessMatrix;vec2 vSpecularRoughnessAnisotropyInfos;mat4 specularRoughnessAnisotropyMatrix;vec2 vTransmissionWeightInfos;mat4 transmissionWeightMatrix;vec2 vTransmissionColorInfos;mat4 transmissionColorMatrix;vec2 vTransmissionDepthInfos;mat4 transmissionDepthMatrix;vec2 vTransmissionScatterInfos;mat4 transmissionScatterMatrix;vec2 vTransmissionDispersionScaleInfos;mat4 transmissionDispersionScaleMatrix;vec2 vSubsurfaceWeightInfos;mat4 subsurfaceWeightMatrix;vec2 vSubsurfaceColorInfos;mat4 subsurfaceColorMatrix;vec2 vSubsurfaceRadiusScaleInfos;mat4 subsurfaceRadiusScaleMatrix;vec2 vCoatWeightInfos;mat4 coatWeightMatrix;vec2 vCoatColorInfos;mat4 coatColorMatrix;vec2 vCoatRoughnessInfos;mat4 coatRoughnessMatrix;vec2 vCoatRoughnessAnisotropyInfos;mat4 coatRoughnessAnisotropyMatrix;vec2 vCoatDarkeningInfos;mat4 coatDarkeningMatrix;vec2 vFuzzWeightInfos;mat4 fuzzWeightMatrix;vec2 vFuzzColorInfos;mat4 fuzzColorMatrix;vec2 vFuzzRoughnessInfos;mat4 fuzzRoughnessMatrix;vec2 vGeometryNormalInfos;mat4 geometryNormalMatrix;vec2 vGeometryTangentInfos;mat4 geometryTangentMatrix;vec2 vGeometryCoatNormalInfos;mat4 geometryCoatNormalMatrix;vec2 vGeometryCoatTangentInfos;mat4 geometryCoatTangentMatrix;vec2 vGeometryOpacityInfos;mat4 geometryOpacityMatrix;vec2 vGeometryThicknessInfos;mat4 geometryThicknessMatrix;vec2 vEmissionColorInfos;mat4 emissionColorMatrix;vec2 vThinFilmWeightInfos;mat4 thinFilmWeightMatrix;vec2 vThinFilmThicknessInfos;mat4 thinFilmThicknessMatrix;vec2 vAmbientOcclusionInfos;mat4 ambientOcclusionMatrix;
828
- #define ADDITIONAL_UBO_DECLARATION
829
- };
830
- #include<sceneUboDeclaration>
831
- #include<meshUboDeclaration>
832
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["openpbrUboDeclaration",0,{name:t,shader:r}])},30067,e=>{"use strict";var i=e.i(47150);let t="sceneVertexDeclaration",r=`uniform mat4 viewProjection;
371
+ `;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R),e.s(["shadowsVertex",0,{name:A,shader:R}],61822)},74912,46327,e=>{"use strict";var i=e.i(25044);let t="fogVertexDeclaration",r=`#ifdef FOG
372
+ varying vec3 vFogDistance;
373
+ #endif
374
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["fogVertexDeclaration",0,{name:t,shader:r}],74912);let a="fogVertex",n=`#ifdef FOG
375
+ vFogDistance=(view*worldPos).xyz;
376
+ #endif
377
+ `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["fogVertex",0,{name:a,shader:n}],46327)},8823,e=>{"use strict";var i=e.i(25044);let t="harmonicsFunctions",r=`#ifdef USESPHERICALFROMREFLECTIONMAP
378
+ #ifdef SPHERICAL_HARMONICS
379
+ vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
380
+ + vSphericalL1_1*(normal.y)
381
+ + vSphericalL10*(normal.z)
382
+ + vSphericalL11*(normal.x)
383
+ + vSphericalL2_2*(normal.y*normal.x)
384
+ + vSphericalL2_1*(normal.y*normal.z)
385
+ + vSphericalL20*((3.0*normal.z*normal.z)-1.0)
386
+ + vSphericalL21*(normal.z*normal.x)
387
+ + vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
388
+ #else
389
+ 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;}
390
+ #endif
391
+ #endif
392
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["harmonicsFunctions",0,{name:t,shader:r}])},31660,e=>{"use strict";var i=e.i(25044);let t="helperFunctions",r=`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;
393
+ 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;
394
+ #define saturate(x) clamp(x,0.0,1.0)
395
+ #define absEps(x) abs(x)+Epsilon
396
+ #define maxEps(x) max(x,Epsilon)
397
+ #define saturateEps(x) clamp(x,Epsilon,1.0)
398
+ mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
399
+ vec3(i0.x,i1.x,i2.x),
400
+ vec3(i0.y,i1.y,i2.y),
401
+ vec3(i0.z,i1.z,i2.z)
402
+ );return outMatrix;}
403
+ 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),
404
+ b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
405
+ b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
406
+ #if USE_EXACT_SRGB_CONVERSIONS
407
+ vec3 toLinearSpaceExact(vec3 color)
408
+ {vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
409
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
410
+ return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
411
+ #else
412
+ return
413
+ vec3(
414
+ color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
415
+ color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
416
+ color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
417
+ #endif
418
+ }
419
+ vec3 toGammaSpaceExact(vec3 color)
420
+ {vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
421
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
422
+ return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
423
+ #else
424
+ return
425
+ vec3(
426
+ color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
427
+ color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
428
+ color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
429
+ #endif
430
+ }
431
+ #endif
432
+ float toLinearSpace(float color)
433
+ {
434
+ #if USE_EXACT_SRGB_CONVERSIONS
435
+ float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
436
+ #else
437
+ return pow(color,LinearEncodePowerApprox);
438
+ #endif
439
+ }
440
+ vec3 toLinearSpace(vec3 color)
441
+ {
442
+ #if USE_EXACT_SRGB_CONVERSIONS
443
+ return toLinearSpaceExact(color);
444
+ #else
445
+ return pow(color,vec3(LinearEncodePowerApprox));
446
+ #endif
447
+ }
448
+ vec4 toLinearSpace(vec4 color)
449
+ {
450
+ #if USE_EXACT_SRGB_CONVERSIONS
451
+ return vec4(toLinearSpaceExact(color.rgb),color.a);
452
+ #else
453
+ return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
454
+ #endif
455
+ }
456
+ float toGammaSpace(float color)
457
+ {
458
+ #if USE_EXACT_SRGB_CONVERSIONS
459
+ float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
460
+ #else
461
+ return pow(color,GammaEncodePowerApprox);
462
+ #endif
463
+ }
464
+ vec3 toGammaSpace(vec3 color)
465
+ {
466
+ #if USE_EXACT_SRGB_CONVERSIONS
467
+ return toGammaSpaceExact(color);
468
+ #else
469
+ return pow(color,vec3(GammaEncodePowerApprox));
470
+ #endif
471
+ }
472
+ vec4 toGammaSpace(vec4 color)
473
+ {
474
+ #if USE_EXACT_SRGB_CONVERSIONS
475
+ return vec4(toGammaSpaceExact(color.rgb),color.a);
476
+ #else
477
+ return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
478
+ #endif
479
+ }
480
+ float square(float value)
481
+ {return value*value;}
482
+ vec3 square(vec3 value)
483
+ {return value*value;}
484
+ float pow5(float value) {float sq=value*value;return sq*sq*value;}
485
+ 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);}
486
+ float getLuminanceUnclamped(vec3 color)
487
+ {return dot(color,LuminanceEncodeApprox);}
488
+ float getLuminance(vec3 color)
489
+ {return saturate(getLuminanceUnclamped(color));}
490
+ float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
491
+ float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
492
+ 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);}
493
+ vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
494
+ 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;}
495
+ 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;}
496
+ float sqrtClamped(float value) {return sqrt(max(value,0.));}
497
+ float avg(vec3 value) {return dot(value,vec3(0.333333333));}
498
+ #if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
499
+ uint extractBits(uint value,int offset,int width) {return (value>>offset) & ((1u<<width)-1u);}
500
+ int onlyBitPosition(uint value) {return (floatBitsToInt(float(value))>>23)-0x7f;}
501
+ 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);}
502
+ 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;}
503
+ 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);}
504
+ float min3(vec3 v) {return min(v.x,min(v.y,v.z));}
505
+ float max3(vec3 v) {return max(v.x,max(v.y,v.z));}
506
+ float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
507
+ vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
508
+ uint2float(rstate*2447445414u));}
509
+ #endif
510
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["helperFunctions",0,{name:t,shader:r}])},10874,e=>{"use strict";var i=e.i(25044);let t="logDepthDeclaration",r=`#ifdef LOGARITHMICDEPTH
511
+ uniform float logarithmicDepthConstant;varying float vFragmentDepth;
512
+ #endif
513
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["logDepthDeclaration",0,{name:t,shader:r}])},24152,e=>{"use strict";var i=e.i(25044);let t="logDepthVertex",r=`#ifdef LOGARITHMICDEPTH
514
+ vFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
515
+ #endif
516
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["logDepthVertex",0,{name:t,shader:r}])},49185,e=>{"use strict";var i=e.i(25044);let t="mainUVVaryingDeclaration",r=`#ifdef MAINUV{X}
517
+ varying vec2 vMainUV{X};
518
+ #endif
519
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["mainUVVaryingDeclaration",0,{name:t,shader:r}])},4100,e=>{"use strict";var i=e.i(25044);let t="meshUboDeclaration",r=`#ifdef WEBGL2
520
+ uniform mat4 world;uniform float visibility;
521
+ #else
522
+ layout(std140,column_major) uniform;uniform Mesh
523
+ {mat4 world;float visibility;};
524
+ #endif
525
+ #define WORLD_UBO
526
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["meshUboDeclaration",0,{name:t,shader:r}])},70020,93342,35567,67186,e=>{"use strict";var i=e.i(25044);let t="morphTargetsVertexGlobalDeclaration",r=`#ifdef MORPHTARGETS
527
+ uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
528
+ #ifdef MORPHTARGETS_TEXTURE
529
+ uniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)
530
+ {
531
+ #if defined(WEBGL2) || defined(WEBGPU)
532
+ int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0).xyz;
533
+ #else
534
+ float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;
535
+ #endif
536
+ }
537
+ vec4 readVector4FromRawSampler(int targetIndex,float vertexIndex)
538
+ {
539
+ #if defined(WEBGL2) || defined(WEBGPU)
540
+ int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0);
541
+ #else
542
+ float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV);
543
+ #endif
544
+ }
545
+ #endif
546
+ #endif
547
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["morphTargetsVertexGlobalDeclaration",0,{name:t,shader:r}],70020);let a="morphTargetsVertexDeclaration",n=`#ifdef MORPHTARGETS
548
+ #ifndef MORPHTARGETS_TEXTURE
549
+ #ifdef MORPHTARGETS_POSITION
550
+ attribute vec3 position{X};
551
+ #endif
552
+ #ifdef MORPHTARGETS_NORMAL
553
+ attribute vec3 normal{X};
554
+ #endif
555
+ #ifdef MORPHTARGETS_TANGENT
556
+ attribute vec3 tangent{X};
557
+ #endif
558
+ #ifdef MORPHTARGETS_UV
559
+ attribute vec2 uv_{X};
560
+ #endif
561
+ #ifdef MORPHTARGETS_UV2
562
+ attribute vec2 uv2_{X};
563
+ #endif
564
+ #ifdef MORPHTARGETS_COLOR
565
+ attribute vec4 color{X};
566
+ #endif
567
+ #elif {X}==0
568
+ uniform float morphTargetCount;
569
+ #endif
570
+ #endif
571
+ `;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["morphTargetsVertexDeclaration",0,{name:a,shader:n}],93342);let o="morphTargetsVertexGlobal",s=`#ifdef MORPHTARGETS
572
+ #ifdef MORPHTARGETS_TEXTURE
573
+ float vertexID;
574
+ #endif
575
+ #endif
576
+ `;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["morphTargetsVertexGlobal",0,{name:o,shader:s}],35567);let f="morphTargetsVertex",l=`#ifdef MORPHTARGETS
577
+ #ifdef MORPHTARGETS_TEXTURE
578
+ #if {X}==0
579
+ for (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (float(i)>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;
580
+ #ifdef MORPHTARGETS_POSITION
581
+ positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];
582
+ #endif
583
+ #ifdef MORPHTARGETTEXTURE_HASPOSITIONS
584
+ vertexID+=1.0;
585
+ #endif
586
+ #ifdef MORPHTARGETS_NORMAL
587
+ normalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];
588
+ #endif
589
+ #ifdef MORPHTARGETTEXTURE_HASNORMALS
590
+ vertexID+=1.0;
591
+ #endif
592
+ #ifdef MORPHTARGETS_UV
593
+ uvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];
594
+ #endif
595
+ #ifdef MORPHTARGETTEXTURE_HASUVS
596
+ vertexID+=1.0;
597
+ #endif
598
+ #ifdef MORPHTARGETS_TANGENT
599
+ tangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];
600
+ #endif
601
+ #ifdef MORPHTARGETTEXTURE_HASTANGENTS
602
+ vertexID+=1.0;
603
+ #endif
604
+ #ifdef MORPHTARGETS_UV2
605
+ uv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*morphTargetInfluences[i];
606
+ #endif
607
+ #ifdef MORPHTARGETTEXTURE_HASUV2S
608
+ vertexID+=1.0;
609
+ #endif
610
+ #ifdef MORPHTARGETS_COLOR
611
+ colorUpdated+=(readVector4FromRawSampler(i,vertexID)-color)*morphTargetInfluences[i];
612
+ #endif
613
+ }
614
+ #endif
615
+ #else
616
+ #ifdef MORPHTARGETS_POSITION
617
+ positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
618
+ #endif
619
+ #ifdef MORPHTARGETS_NORMAL
620
+ normalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];
621
+ #endif
622
+ #ifdef MORPHTARGETS_TANGENT
623
+ tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
624
+ #endif
625
+ #ifdef MORPHTARGETS_UV
626
+ uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
627
+ #endif
628
+ #ifdef MORPHTARGETS_UV2
629
+ uv2Updated+=(uv2_{X}-uv2)*morphTargetInfluences[{X}];
630
+ #endif
631
+ #ifdef MORPHTARGETS_COLOR
632
+ colorUpdated+=(color{X}-color)*morphTargetInfluences[{X}];
633
+ #endif
634
+ #endif
635
+ #endif
636
+ `;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["morphTargetsVertex",0,{name:f,shader:l}],67186)},97757,e=>{"use strict";var i=e.i(25044);e.i(77074),e.i(4100);let t="openpbrUboDeclaration",r=`layout(std140,column_major) uniform;uniform Material {vec2 vTangentSpaceParams;vec4 vLightingIntensity;float pointSize;vec2 vDebugMode;vec2 renderTargetSize;vec4 cameraInfo;vec4 vTextureRepetitionHexTilingParams;mat4 backgroundRefractionMatrix;vec3 vBackgroundRefractionInfos;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;float vBaseWeight;vec4 vBaseColor;float vBaseDiffuseRoughness;vec4 vReflectanceInfo;vec4 vSpecularColor;vec3 vSpecularAnisotropy;float vTransmissionWeight;vec3 vTransmissionColor;float vTransmissionDepth;vec3 vTransmissionScatter;float vTransmissionScatterAnisotropy;float vTransmissionDispersionScale;float vTransmissionDispersionAbbeNumber;float vSubsurfaceWeight;vec3 vSubsurfaceColor;float vSubsurfaceRadius;vec3 vSubsurfaceRadiusScale;float vSubsurfaceScatterAnisotropy;float vCoatWeight;vec3 vCoatColor;float vCoatRoughness;float vCoatRoughnessAnisotropy;float vCoatIor;float vCoatDarkening;float vFuzzWeight;vec3 vFuzzColor;float vFuzzRoughness;float vGeometryThinWalled;vec2 vGeometryCoatTangent;float vGeometryThickness;vec3 vEmissionColor;float vThinFilmWeight;vec2 vThinFilmThickness;float vThinFilmIor;vec2 vBaseWeightInfos;mat4 baseWeightMatrix;vec2 vBaseColorInfos;mat4 baseColorMatrix;vec2 vBaseDiffuseRoughnessInfos;mat4 baseDiffuseRoughnessMatrix;vec2 vBaseMetalnessInfos;mat4 baseMetalnessMatrix;vec2 vSpecularWeightInfos;mat4 specularWeightMatrix;vec2 vSpecularColorInfos;mat4 specularColorMatrix;vec2 vSpecularRoughnessInfos;mat4 specularRoughnessMatrix;vec2 vSpecularRoughnessAnisotropyInfos;mat4 specularRoughnessAnisotropyMatrix;vec2 vTransmissionWeightInfos;mat4 transmissionWeightMatrix;vec2 vTransmissionColorInfos;mat4 transmissionColorMatrix;vec2 vTransmissionDepthInfos;mat4 transmissionDepthMatrix;vec2 vTransmissionScatterInfos;mat4 transmissionScatterMatrix;vec2 vTransmissionDispersionScaleInfos;mat4 transmissionDispersionScaleMatrix;vec2 vSubsurfaceWeightInfos;mat4 subsurfaceWeightMatrix;vec2 vSubsurfaceColorInfos;mat4 subsurfaceColorMatrix;vec2 vSubsurfaceRadiusScaleInfos;mat4 subsurfaceRadiusScaleMatrix;vec2 vCoatWeightInfos;mat4 coatWeightMatrix;vec2 vCoatColorInfos;mat4 coatColorMatrix;vec2 vCoatRoughnessInfos;mat4 coatRoughnessMatrix;vec2 vCoatRoughnessAnisotropyInfos;mat4 coatRoughnessAnisotropyMatrix;vec2 vCoatDarkeningInfos;mat4 coatDarkeningMatrix;vec2 vFuzzWeightInfos;mat4 fuzzWeightMatrix;vec2 vFuzzColorInfos;mat4 fuzzColorMatrix;vec2 vFuzzRoughnessInfos;mat4 fuzzRoughnessMatrix;vec2 vGeometryNormalInfos;mat4 geometryNormalMatrix;vec2 vGeometryTangentInfos;mat4 geometryTangentMatrix;vec2 vGeometryCoatNormalInfos;mat4 geometryCoatNormalMatrix;vec2 vGeometryCoatTangentInfos;mat4 geometryCoatTangentMatrix;vec2 vGeometryOpacityInfos;mat4 geometryOpacityMatrix;vec2 vGeometryThicknessInfos;mat4 geometryThicknessMatrix;vec2 vEmissionColorInfos;mat4 emissionColorMatrix;vec2 vThinFilmWeightInfos;mat4 thinFilmWeightMatrix;vec2 vThinFilmThicknessInfos;mat4 thinFilmThicknessMatrix;vec2 vAmbientOcclusionInfos;mat4 ambientOcclusionMatrix;
637
+ #define ADDITIONAL_UBO_DECLARATION
638
+ };
639
+ #include<sceneUboDeclaration>
640
+ #include<meshUboDeclaration>
641
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["openpbrUboDeclaration",0,{name:t,shader:r}])},16300,e=>{"use strict";var i=e.i(25044);let t="pbrBRDFFunctions",r=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
642
+ #define BRDF_DIFFUSE_MODEL_EON 0
643
+ #define BRDF_DIFFUSE_MODEL_BURLEY 1
644
+ #define BRDF_DIFFUSE_MODEL_LAMBERT 2
645
+ #define BRDF_DIFFUSE_MODEL_LEGACY 3
646
+ #define DIELECTRIC_SPECULAR_MODEL_GLTF 0
647
+ #define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
648
+ #define CONDUCTOR_SPECULAR_MODEL_GLTF 0
649
+ #define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
650
+ #if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
651
+ #ifdef MS_BRDF_ENERGY_CONSERVATION
652
+ vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
653
+ #endif
654
+ #if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
655
+ #define F82_COS_THETA_MAX 0.142857143
656
+ #define F82_ONE_MINUS_CTM_POW5 0.462664366
657
+ #define F82_ONE_MINUS_CTM_POW6 0.396569457
658
+ #define F82_B_DENOMINATOR_RECIP 17.6512785
659
+ #define BRDF_Z_SCALE 16.0
660
+ 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);}
661
+ 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;}
662
+ vec3 getF82DirectionalAlbedo(vec3 F0,vec3 F90,vec3 b,vec3 environmentBrdf) {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
663
+ vec3 getF82AverageFresnel(vec3 F0,vec3 b) {return F0+(vec3(1.0)-F0)/21.0-b/126.0;}
664
+ #endif
665
+ #ifdef FUZZENVIRONMENTBRDF
666
+ 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;}
667
+ #endif
668
+ #ifdef ENVIRONMENTBRDF
669
+ vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
670
+ #ifdef ENVIRONMENTBRDF_RGBD
671
+ brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
672
+ #endif
673
+ return brdfLookup.rgb;}
674
+ vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
675
+ #ifdef BRDF_V_HEIGHT_CORRELATED
676
+ vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
677
+ #else
678
+ vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
679
+ #endif
680
+ return reflectance;}
681
+ vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
682
+ #ifdef BRDF_V_HEIGHT_CORRELATED
683
+ vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
684
+ #else
685
+ vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
686
+ #endif
687
+ return reflectance;}
688
+ #endif
689
+ /* NOT USED
690
+ #if defined(SHEEN) && defined(SHEEN_SOFTER)
691
+ float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
692
+ {float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
693
+ #endif
694
+ */
695
+ #if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
696
+ vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
697
+ {float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
698
+ #endif
699
+ #if defined(SHEEN) && defined(ENVIRONMENTBRDF)
700
+ /**
701
+ * The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
702
+ * The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
703
+ */
704
+ vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
705
+ #endif
706
+ vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
707
+ {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
708
+ float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
709
+ {return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
710
+ #ifdef CLEARCOAT
711
+ vec3 getR0RemappedForClearCoat(vec3 f0) {
712
+ #ifdef CLEARCOAT_DEFAULTIOR
713
+ #ifdef MOBILE
714
+ return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
715
+ #else
716
+ return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
717
+ #endif
718
+ #else
719
+ vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
720
+ #endif
721
+ }
722
+ #endif
723
+ #ifdef IRIDESCENCE
724
+ const mat3 XYZ_TO_REC709=mat3(
725
+ 3.2404542,-0.9692660, 0.0556434,
726
+ -1.5371385, 1.8760108,-0.2040259,
727
+ -0.4985314, 0.0415560, 1.0572252
728
+ );vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
729
+ vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
730
+ float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
731
+ 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;}
732
+ 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;}
733
+ 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));
734
+ 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));}
735
+ 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)
736
+ {Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
737
+ return max(I,vec3(0.0));}
738
+ #endif
739
+ float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
740
+ {float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
741
+ #ifdef SHEEN
742
+ float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
743
+ {float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
744
+ #endif
745
+ #ifdef ANISOTROPIC
746
+ 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;}
747
+ #endif
748
+ #ifdef BRDF_V_HEIGHT_CORRELATED
749
+ float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
750
+ #ifdef MOBILE
751
+ float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
752
+ #else
753
+ 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);
754
+ #endif
755
+ }
756
+ #else
757
+ float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
758
+ {
759
+ #ifdef MOBILE
760
+ return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
761
+ #else
762
+ float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
763
+ #endif
764
+ }
765
+ float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
766
+ {float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
767
+ #endif
768
+ #ifdef ANISOTROPIC
769
+ 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;}
770
+ #endif
771
+ #ifdef CLEARCOAT
772
+ float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
773
+ #endif
774
+ #ifdef SHEEN
775
+ float visibility_Ashikhmin(float NdotL,float NdotV)
776
+ {return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
777
+ /* NOT USED
778
+ #ifdef SHEEN_SOFTER
779
+ float l(float x,float alphaG)
780
+ {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;}
781
+ float lambdaSheen(float cosTheta,float alphaG)
782
+ {return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
783
+ float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
784
+ {float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
785
+ #endif
786
+ */
787
+ #endif
788
+ 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 =
789
+ (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
790
+ (1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
791
+ 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)
792
+ {float sigma=roughness;
793
+ float mucomp=1.0-mu;float mucomp2=mucomp*mucomp;const mat2 Gcoeffs=mat2(0.0571085289,-0.332181442,
794
+ 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);}
795
+ vec3 diffuseBRDF_EON(vec3 albedo,float roughness,float NdotL,float NdotV,float LdotV)
796
+ {vec3 rho=albedo;float sigma=roughness;
797
+ float mu_i=NdotL;
798
+ float mu_o=NdotV;
799
+ float s=LdotV-mu_i*mu_o;
800
+ float sovertF=s>0.0 ? s/max(mu_i,mu_o) : s;
801
+ float AF=1.0/(1.0+constant1_FON*sigma);
802
+ vec3 f_ss=(rho*RECIPROCAL_PI)*AF*(1.0+sigma*sovertF);
803
+ float EFo=E_FON_approx(mu_o,sigma);
804
+ float EFi=E_FON_approx(mu_i,sigma);
805
+ float avgEF=AF*(1.0+constant2_FON*sigma);
806
+ 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)
807
+ * max(eps,1.0-EFi)
808
+ / max(eps,1.0-avgEF);return (f_ss+f_ms);}
809
+ #ifdef SS_TRANSLUCENCY
810
+ 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);}
811
+ float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
812
+ #endif
813
+ #endif
814
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["pbrBRDFFunctions",0,{name:t,shader:r}])},77074,e=>{"use strict";var i=e.i(25044);let t="sceneUboDeclaration",r=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
815
+ #ifdef MULTIVIEW
816
+ mat4 viewProjectionR;
817
+ #endif
818
+ mat4 view;mat4 projection;vec4 vEyePosition;mat4 inverseProjection;};
819
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["sceneUboDeclaration",0,{name:t,shader:r}])},94198,e=>{"use strict";var i=e.i(25044);let t="vertexColorMixing",r=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
820
+ vColor=vec4(1.0);
821
+ #ifdef VERTEXCOLOR
822
+ #ifdef VERTEXALPHA
823
+ vColor*=colorUpdated;
824
+ #else
825
+ vColor.rgb*=colorUpdated.rgb;
826
+ #endif
827
+ #endif
828
+ #ifdef INSTANCESCOLOR
829
+ vColor*=instanceColor;
830
+ #endif
831
+ #endif
832
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["vertexColorMixing",0,{name:t,shader:r}])},23201,e=>{"use strict";var i=e.i(25044);let t="sceneVertexDeclaration",r=`uniform mat4 viewProjection;
833
833
  #ifdef MULTIVIEW
834
834
  uniform mat4 viewProjectionR;
835
835
  #endif
836
836
  uniform mat4 view;uniform mat4 projection;uniform vec4 vEyePosition;
837
- `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r);var a=e.i(74716);let n="openpbrVertexDeclaration",o=`#include<sceneVertexDeclaration>
837
+ `;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r);var a=e.i(40560);let n="openpbrVertexDeclaration",o=`#include<sceneVertexDeclaration>
838
838
  #ifdef BASE_COLOR
839
839
  uniform vec2 vBaseColorInfos;uniform mat4 baseColorMatrix;
840
840
  #endif
@@ -961,17 +961,17 @@ uniform vec4 vDetailInfos;uniform mat4 detailMatrix;
961
961
  #endif
962
962
  #include<decalVertexDeclaration>
963
963
  #define ADDITIONAL_VERTEX_DECLARATION
964
- `;i.ShaderStore.IncludesShadersStore[n]||(i.ShaderStore.IncludesShadersStore[n]=o);var s=e.i(67827),f=e.i(38605),l=e.i(21928),c=e.i(80902),d=e.i(30868),m=e.i(3954),E=e.i(98680),u=e.i(36406),v=e.i(36178),S=e.i(42421),I=e.i(27292),N=e.i(91731),_=e.i(88913);let A="openpbrNormalMapVertexDeclaration",R=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
964
+ `;i.ShaderStore.IncludesShadersStore[n]||(i.ShaderStore.IncludesShadersStore[n]=o);var s=e.i(77074),f=e.i(4100),l=e.i(97757),c=e.i(43465),d=e.i(49185),m=e.i(31660),E=e.i(16300),u=e.i(12211),v=e.i(60661),S=e.i(88305),I=e.i(84520),N=e.i(4434),_=e.i(8823);let A="openpbrNormalMapVertexDeclaration",R=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
965
965
  #if defined(TANGENT) && defined(NORMAL)
966
966
  varying mat3 vTBN;
967
967
  #endif
968
968
  #endif
969
- `;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R);var h=e.i(49161),p=e.i(3091),T=e.i(65117),M=e.i(19828),x=e.i(23341),O=e.i(82718),g=e.i(68381),V=e.i(55578),C=e.i(58059),D=e.i(47692),F=e.i(51540),L=e.i(95178),P=e.i(50988),G=e.i(12700),U=e.i(17177);let b="openpbrNormalMapVertex",B=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
969
+ `;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R);var h=e.i(86040),p=e.i(74912),T=e.i(65573),M=e.i(80430),x=e.i(70020),O=e.i(93342),g=e.i(10874),V=e.i(35567),C=e.i(67186),D=e.i(16450),F=e.i(67412),L=e.i(11832),P=e.i(4283),G=e.i(15732),U=e.i(51799);let b="openpbrNormalMapVertex",B=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
970
970
  #if defined(TANGENT) && defined(NORMAL)
971
971
  vec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);
972
972
  #endif
973
973
  #endif
974
- `;i.ShaderStore.IncludesShadersStore[b]||(i.ShaderStore.IncludesShadersStore[b]=B);var y=e.i(48661),X=e.i(99240),W=e.i(33666),H=e.i(20220),Y=e.i(10873);let z="openpbrVertexShader",w=`#define OPENPBR_VERTEX_SHADER
974
+ `;i.ShaderStore.IncludesShadersStore[b]||(i.ShaderStore.IncludesShadersStore[b]=B);var y=e.i(16642),X=e.i(46327),W=e.i(61822),H=e.i(94198),Y=e.i(24152);let z="openpbrVertexShader",w=`#define OPENPBR_VERTEX_SHADER
975
975
  #define CUSTOM_VERTEX_EXTENSION
976
976
  precision highp float;
977
977
  #include<__decl__openpbrVertex>
@@ -1192,4 +1192,4 @@ gl_PointSize=pointSize;
1192
1192
  #include<logDepthVertex>
1193
1193
  #define CUSTOM_VERTEX_MAIN_END
1194
1194
  }
1195
- `;for(let e of(i.ShaderStore.ShadersStore[z]||(i.ShaderStore.ShadersStore[z]=w),[{name:t,shader:r},a.decalVertexDeclaration,{name:n,shader:o},s.sceneUboDeclaration,f.meshUboDeclaration,l.openpbrUboDeclaration,c.uvAttributeDeclaration,d.mainUVVaryingDeclaration,m.helperFunctions,E.pbrBRDFFunctions,u.bonesDeclaration,v.bakedVertexAnimationDeclaration,S.instancesDeclaration,I.prePassVertexDeclaration,N.samplerVertexDeclaration,_.harmonicsFunctions,{name:A,shader:R},h.clipPlaneVertexDeclaration,p.fogVertexDeclaration,T.lightVxFragmentDeclaration,M.lightVxUboDeclaration,x.morphTargetsVertexGlobalDeclaration,O.morphTargetsVertexDeclaration,g.logDepthDeclaration,V.morphTargetsVertexGlobal,C.morphTargetsVertex,D.instancesVertex,F.bonesVertex,L.bakedVertexAnimation,P.prePassVertex,G.uvVariableDeclaration,U.samplerVertexImplementation,{name:b,shader:B},y.clipPlaneVertex,X.fogVertex,W.shadowsVertex,H.vertexColorMixing,Y.logDepthVertex]))i.ShaderStore.IncludesShadersStore[e.name]||(i.ShaderStore.IncludesShadersStore[e.name]=e.shader);e.s(["openpbrVertexShader",0,{name:z,shader:w}],30067)}]);
1195
+ `;for(let e of(i.ShaderStore.ShadersStore[z]||(i.ShaderStore.ShadersStore[z]=w),[{name:t,shader:r},a.decalVertexDeclaration,{name:n,shader:o},s.sceneUboDeclaration,f.meshUboDeclaration,l.openpbrUboDeclaration,c.uvAttributeDeclaration,d.mainUVVaryingDeclaration,m.helperFunctions,E.pbrBRDFFunctions,u.bonesDeclaration,v.bakedVertexAnimationDeclaration,S.instancesDeclaration,I.prePassVertexDeclaration,N.samplerVertexDeclaration,_.harmonicsFunctions,{name:A,shader:R},h.clipPlaneVertexDeclaration,p.fogVertexDeclaration,T.lightVxFragmentDeclaration,M.lightVxUboDeclaration,x.morphTargetsVertexGlobalDeclaration,O.morphTargetsVertexDeclaration,g.logDepthDeclaration,V.morphTargetsVertexGlobal,C.morphTargetsVertex,D.instancesVertex,F.bonesVertex,L.bakedVertexAnimation,P.prePassVertex,G.uvVariableDeclaration,U.samplerVertexImplementation,{name:b,shader:B},y.clipPlaneVertex,X.fogVertex,W.shadowsVertex,H.vertexColorMixing,Y.logDepthVertex]))i.ShaderStore.IncludesShadersStore[e.name]||(i.ShaderStore.IncludesShadersStore[e.name]=e.shader);e.s(["openpbrVertexShader",0,{name:z,shader:w}],23201)}]);