@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.
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +19 -5
- package/out/__next._full.txt +10 -10
- package/out/__next._tree.txt +1 -1
- package/out/_next/static/chunks/{3cp5nmtwxq4gr.js → 0-6mdj5wxsfid.js} +1 -1
- package/out/_next/static/chunks/{2clevl_9ayd0x.js → 0-qthfqvm1jyj.js} +1 -1
- package/out/_next/static/chunks/01viyuclp2gm9.js +1 -0
- package/out/_next/static/chunks/02aym4t2hgo5c.js +1 -0
- package/out/_next/static/chunks/{1fervgvgv10r-.js → 02ic9b5ejugow.js} +1 -1
- package/out/_next/static/chunks/03p70i4c7qt0v.js +1 -0
- package/out/_next/static/chunks/{3zv5kyos9vtmm.js → 03pjr-ivdicng.js} +1 -1
- package/out/_next/static/chunks/041a06-lxipy5.js +1 -0
- package/out/_next/static/chunks/{3-yhe6rcsjh88.js → 06dzkwetqis-5.js} +1 -1
- package/out/_next/static/chunks/{2mjjo0yj-4ro4.js → 06kvanz5-fo52.js} +1 -1
- package/out/_next/static/chunks/{28i3wgvgn_at1.js → 07y8ke_iy59dn.js} +1 -1
- package/out/_next/static/chunks/09jukc-4jl735.js +1 -0
- package/out/_next/static/chunks/{0cmyc-uvk93kl.js → 09khmdgez3t0a.js} +74 -74
- package/out/_next/static/chunks/{2x-7kbwq8tl-o.js → 0_dca4876jshu.js} +196 -196
- package/out/_next/static/chunks/0axcgnl5qzr6e.js +1 -0
- package/out/_next/static/chunks/0ay4fjomijs3n.js +1 -0
- package/out/_next/static/chunks/0c7fy79wlccat.js +1 -0
- package/out/_next/static/chunks/0cqe4-l3imct3.js +1 -0
- package/out/_next/static/chunks/0cssvelju788j.js +1 -0
- package/out/_next/static/chunks/{2-_a-v1xeo5hb.js → 0ctain5xq2wsd.js} +116 -115
- package/out/_next/static/chunks/{3yk0hzfq5rcs6.js → 0df-dr3otg_4w.js} +1 -1
- package/out/_next/static/chunks/{0i9wa8hjd-5tc.js → 0endw997j7ao9.js} +1 -1
- package/out/_next/static/chunks/0ev_pbit1v_qg.js +1 -0
- package/out/_next/static/chunks/0eyw9oiwipywb.js +1 -0
- package/out/_next/static/chunks/0fkzbuo1tex4u.js +1 -0
- package/out/_next/static/chunks/0govas0u0t4w3.js +1 -0
- package/out/_next/static/chunks/{287hakn2ijupp.js → 0guzhnususp3-.js} +2 -2
- package/out/_next/static/chunks/0h7bq_ysu17q7.js +3 -0
- package/out/_next/static/chunks/0hneh_3xzlo28.js +1 -0
- package/out/_next/static/chunks/0iaqwme19z_0s.js +1 -0
- package/out/_next/static/chunks/0ibmar10xndpn.js +1 -0
- package/out/_next/static/chunks/0ii8mqoteppgh.js +11 -0
- package/out/_next/static/chunks/{3ioxfi3bvznhh.js → 0ip6v64di_l6x.js} +1 -1
- package/out/_next/static/chunks/{184pz6z3dflfm.js → 0ixymgjgz3grn.js} +20 -20
- package/out/_next/static/chunks/0kuah8g7lt5ox.js +1 -0
- package/out/_next/static/chunks/0l3k4j19vxm17.js +1 -0
- package/out/_next/static/chunks/0l6hg0ohwh9-m.js +1 -0
- package/out/_next/static/chunks/0m4um4ylhlfan.js +1 -0
- package/out/_next/static/chunks/0mj837d4h0ddq.js +1 -0
- package/out/_next/static/chunks/0nyn-f4905o91.js +1 -0
- package/out/_next/static/chunks/0og6i9rsgkuif.js +1 -0
- package/out/_next/static/chunks/0os1x-fxzgnxs.js +1 -0
- package/out/_next/static/chunks/0otnra7mp0hog.js +1 -0
- package/out/_next/static/chunks/{3p03l0z65c8vc.js → 0oyf2xzv8ofkk.js} +253 -253
- package/out/_next/static/chunks/0qvsy3gcqjm12.js +1 -0
- package/out/_next/static/chunks/{0yd4_xh476fjn.js → 0rl4ddh2vgxyl.js} +97 -97
- package/out/_next/static/chunks/0rwpttmsmqvn_.js +1 -0
- package/out/_next/static/chunks/0so3wjp9ch93y.js +1 -0
- package/out/_next/static/chunks/{36pz_ews7u0xb.js → 0te4g160_rb5d.js} +1 -1
- package/out/_next/static/chunks/0uby-zvu799ef.js +1 -0
- package/out/_next/static/chunks/{2kk_vvmr2xm3d.js → 0uvn0op2mlr2u.js} +12 -12
- package/out/_next/static/chunks/0vwj4hxjm0igv.js +1 -0
- package/out/_next/static/chunks/{0r-x702_jvhud.js → 0w7c30w07uct2.js} +12 -12
- package/out/_next/static/chunks/0wm38z3u2133a.js +1 -0
- package/out/_next/static/chunks/0y7yk5al7_p8q.js +4 -0
- package/out/_next/static/chunks/0ycr0gi6fn6bt.js +1 -0
- package/out/_next/static/chunks/0ywvahq9t0tki.js +1 -0
- package/out/_next/static/chunks/0zh6nslagkby-.js +1 -0
- package/out/_next/static/chunks/{3twr9ds68-9us.js → 0zo8xa0nej3ex.js} +1 -1
- package/out/_next/static/chunks/{1lu7rjfvxj8yj.js → 0zsir95gpf3xw.js} +1 -1
- package/out/_next/static/chunks/{1j4c0nvdo5q68.js → 0zu6ryyj0ig-j.js} +1 -1
- package/out/_next/static/chunks/{1bv-jzy_2jiqs.js → 1-jv8k10q_1uw.js} +1 -1
- package/out/_next/static/chunks/{0xx7_7y5jdlh4.js → 1-s5ioie9a94e.js} +1 -1
- package/out/_next/static/chunks/{27z7j17kcrty_.js → 1-yos1h0qws5e.js} +11 -11
- package/out/_next/static/chunks/10o7brc3x027r.js +1 -0
- package/out/_next/static/chunks/{2xe4bgir5l-9b.js → 10pae4gb9i929.js} +504 -504
- package/out/_next/static/chunks/13p93itm8a3ym.js +1 -0
- package/out/_next/static/chunks/{2mrkv0z2i74pv.js → 147s8i_lktp4_.js} +2 -2
- package/out/_next/static/chunks/{3nwaovnpiyrt8.js → 14tgo5xt_3j4w.js} +3 -3
- package/out/_next/static/chunks/1699hx-vlak0n.js +22 -0
- package/out/_next/static/chunks/{2b5nt7yn-pq3a.js → 16d6n9e77rqti.js} +1 -1
- package/out/_next/static/chunks/{3nr48h9zwum-3.js → 16f3d5dv83rsr.js} +1 -1
- package/out/_next/static/chunks/16i_tpwn_cmr-.js +1 -0
- package/out/_next/static/chunks/{2117sv2qzo6yq.js → 16rfr165nbha0.js} +1 -1
- package/out/_next/static/chunks/16sl51pvzo4tf.js +1 -0
- package/out/_next/static/chunks/1760s-32qpwgg.js +1 -0
- package/out/_next/static/chunks/{3rj-5v0j_2-_2.js → 18kq07c5xy_4g.js} +4 -4
- package/out/_next/static/chunks/{2wgh5i70bzelt.js → 190tbzt861ao3.js} +392 -392
- package/out/_next/static/chunks/19bhv6cupnnyj.js +1 -0
- package/out/_next/static/chunks/1_14pn2wwebxy.js +1 -0
- package/out/_next/static/chunks/{2_lw4d7t-xcqi.js → 1_kikmeubh0wq.js} +523 -522
- package/out/_next/static/chunks/1ay3z6agelsvz.js +1 -0
- package/out/_next/static/chunks/1b-fi3bfmpe31.js +1 -0
- package/out/_next/static/chunks/1bae3tqv53x9_.js +1 -0
- package/out/_next/static/chunks/{2s4fzgzkwjluu.js → 1bf421g4peccx.js} +2 -2
- package/out/_next/static/chunks/1bfony5qsc5tp.js +1 -0
- package/out/_next/static/chunks/{3vtmucpx25o7q.js → 1ddt0ot7kl8vq.js} +584 -584
- package/out/_next/static/chunks/1emz2vjkgck4z.js +1 -0
- package/out/_next/static/chunks/1eogzzw8i1wsg.js +1 -0
- package/out/_next/static/chunks/1g9p2h1-31q8o.js +1 -0
- package/out/_next/static/chunks/1gcz1k1v1woca.js +1 -0
- package/out/_next/static/chunks/1h8lyicgqhpxa.js +1 -0
- package/out/_next/static/chunks/{0e5dcxmkprebg.js → 1hot663akaepl.js} +1 -1
- package/out/_next/static/chunks/1i7pgl3ks5ye0.js +1 -0
- package/out/_next/static/chunks/{0xzamrecplwzw.js → 1i8sk_qgpdjhs.js} +1 -1
- package/out/_next/static/chunks/1kk3ct7pkpf3b.js +1 -0
- package/out/_next/static/chunks/1kq9o8del67le.js +1 -0
- package/out/_next/static/chunks/1l7tzyx2mumlq.js +1 -0
- package/out/_next/static/chunks/1n_uwed9o--go.js +1 -0
- package/out/_next/static/chunks/1o351eldttogn.js +1 -0
- package/out/_next/static/chunks/{1f07l3q77zat1.js → 1ogs4_aj84bfn.js} +1 -1
- package/out/_next/static/chunks/{3_dm45k0vk1aa.js → 1p206txlluipi.js} +565 -565
- package/out/_next/static/chunks/1p2bt1w845v6c.js +1 -0
- package/out/_next/static/chunks/1p3rgz4aef1gk.js +1 -0
- package/out/_next/static/chunks/{0ypejzd74ixbw.js → 1qcgdx9yl0gfx.js} +15 -15
- package/out/_next/static/chunks/1ql3mm2w5r-m8.js +1 -0
- package/out/_next/static/chunks/1qvcyuyshi3ll.js +53 -0
- package/out/_next/static/chunks/1r0yyg5a_0knc.js +1 -0
- package/out/_next/static/chunks/{374lzksboll-t.js → 1sa6qiidtcyk2.js} +1 -1
- package/out/_next/static/chunks/1t-9vrdrsi8le.js +1 -0
- package/out/_next/static/chunks/1t97zo0tlpbnz.js +1 -0
- package/out/_next/static/chunks/1te2tinzqnwck.js +1 -0
- package/out/_next/static/chunks/{3j3ol_d1vsdhx.js → 1trt-m2nrck0v.js} +1 -1
- package/out/_next/static/chunks/{3vu5y270muh-7.js → 1ty9jpwr3o_st.js} +1 -1
- package/out/_next/static/chunks/{415g3asdds1ac.js → 1u6w6veke8rze.js} +1 -1
- package/out/_next/static/chunks/{0-laj-bivzp4x.js → 1u900urmrbv73.js} +1 -1
- package/out/_next/static/chunks/{0o73w0cn5n_vl.js → 1vz2gd8k74lpi.js} +1 -1
- package/out/_next/static/chunks/1wkpl9bfb0wn7.js +1 -0
- package/out/_next/static/chunks/1wrly9a9c3teq.js +1 -0
- package/out/_next/static/chunks/1x0m05155yy4e.js +1 -0
- package/out/_next/static/chunks/{1my968s78he8g.js → 1xf1wfow43ekc.js} +15 -15
- package/out/_next/static/chunks/1y10o40v9odam.js +1 -0
- package/out/_next/static/chunks/{3_gfl66zf638s.js → 1y_zykt3fpen4.js} +901 -906
- package/out/_next/static/chunks/1ye6xtbm16pg4.js +1 -0
- package/out/_next/static/chunks/1z6_57k5h31u7.js +1 -0
- package/out/_next/static/chunks/1zboqft0h6mop.js +1 -0
- package/out/_next/static/chunks/1zr3c351x0ri5.js +1 -0
- package/out/_next/static/chunks/2-5p2lcedvrli.js +1 -0
- package/out/_next/static/chunks/{1_4hh3dfop93j.js → 206hxrq60f1_e.js} +1 -1
- package/out/_next/static/chunks/20r05k3-studj.js +1 -0
- package/out/_next/static/chunks/22gs24kj2du56.js +1 -0
- package/out/_next/static/chunks/22x5pd1gyp7sf.js +1 -0
- package/out/_next/static/chunks/{3qo7e6b73mfxq.js → 22z-2t_yp1jzs.js} +1 -1
- package/out/_next/static/chunks/{3d43gd91r06y6.js → 23hmfdw6z5zfy.js} +507 -505
- package/out/_next/static/chunks/23y1krqnc-8sm.js +1 -0
- package/out/_next/static/chunks/{0gk5rnci1hznh.js → 24tbkj1qkux88.js} +2 -2
- package/out/_next/static/chunks/{2-i29-jdbwww6.js → 26cmri51v7497.js} +111 -111
- package/out/_next/static/chunks/27jalbk9zu-2b.js +1 -0
- package/out/_next/static/chunks/285d2s9096ryc.js +1 -0
- package/out/_next/static/chunks/296ykep2nvppv.js +1 -0
- package/out/_next/static/chunks/29nehg5cal-ug.js +1 -0
- package/out/_next/static/chunks/2_a56_k3x7to6.js +1 -0
- package/out/_next/static/chunks/2a-0l6eb1blh3.js +4 -0
- package/out/_next/static/chunks/{2oacwtbslo90t.js → 2a31-txop1jzg.js} +360 -360
- package/out/_next/static/chunks/2bse5vll1o-x0.js +1 -0
- package/out/_next/static/chunks/2ct40spu9wfj7.js +1 -0
- package/out/_next/static/chunks/{2epukrz6paj9n.js → 2ept01b7t-e03.js} +1 -1
- package/out/_next/static/chunks/{22yht3s7c-xih.js → 2ey5dqelco_g5.js} +1 -1
- package/out/_next/static/chunks/2fd_009hw7y0m.js +1 -0
- package/out/_next/static/chunks/{2fspbfbxbswzd.js → 2ftz9kaxrsgxh.js} +1 -1
- package/out/_next/static/chunks/2gefdnozflr7p.js +1 -0
- package/out/_next/static/chunks/{2as_br1awqk6k.js → 2gs-u1n5uv7iz.js} +496 -496
- package/out/_next/static/chunks/{1a94whad0y57f.js → 2hizqql79u-54.js} +1 -1
- package/out/_next/static/chunks/2iqf2dpdg_vfl.js +1 -0
- package/out/_next/static/chunks/2j7z127s_ycjd.js +1 -0
- package/out/_next/static/chunks/2kax7uslfxdnx.js +31 -0
- package/out/_next/static/chunks/{2laz1v9fg2a2z.js → 2lh_w9rzy3vek.js} +1 -1
- package/out/_next/static/chunks/{3mmy9zsb7zo-m.js → 2ln1na26qwp-3.js} +23 -23
- package/out/_next/static/chunks/2n08l1q5o_27e.js +1 -0
- package/out/_next/static/chunks/2n7268gyd9z-6.js +1 -0
- package/out/_next/static/chunks/2nq9cgjmtqwvp.js +1 -0
- package/out/_next/static/chunks/{25brs445bjbik.js → 2oj8qc_pv14nk.js} +2 -2
- package/out/_next/static/chunks/2q24e72-olbe8.js +1 -0
- package/out/_next/static/chunks/2qc4hscs26cro.js +1 -0
- package/out/_next/static/chunks/2qe46redkqhfg.js +1 -0
- package/out/_next/static/chunks/2qmfe0mqw150h.js +1 -0
- package/out/_next/static/chunks/2qtc0nbl_521e.js +1 -0
- package/out/_next/static/chunks/2rofu6gu1xzuq.js +1 -0
- package/out/_next/static/chunks/2tdi94rkq739i.js +1 -0
- package/out/_next/static/chunks/2u_2sacqa9xa7.js +1 -0
- package/out/_next/static/chunks/2ujqz6088shm5.js +1 -0
- package/out/_next/static/chunks/{3my05px5mv_s5.js → 2urh9qafp3fiw.js} +235 -235
- package/out/_next/static/chunks/{23-y1f_zw56vo.js → 2v06n4z8wsmn9.js} +1 -1
- package/out/_next/static/chunks/2vp-5skbk1nfu.js +1 -0
- package/out/_next/static/chunks/2vu973j_n6cpx.js +1 -0
- package/out/_next/static/chunks/2wwra56rehfcj.js +1 -0
- package/out/_next/static/chunks/2xpwr97h2asal.js +1 -0
- package/out/_next/static/chunks/3000-0b8n9t_2.js +1 -0
- package/out/_next/static/chunks/{0q0i4pdyq66gb.js → 30t3203d7p2da.js} +1 -1
- package/out/_next/static/chunks/{3t4ys6th6gf2w.js → 31kto7-dxkt3z.js} +1 -1
- package/out/_next/static/chunks/{0j0a0wvmmghxj.js → 32oflcl79d8mu.js} +1 -1
- package/out/_next/static/chunks/32ovg81ae0l03.js +1 -0
- package/out/_next/static/chunks/{2c8rmxz151fxa.js → 331kthnvoma7n.js} +224 -224
- package/out/_next/static/chunks/337kn1mn34rc6.js +1 -0
- package/out/_next/static/chunks/{336ckqpboqmbn.js → 33xug8kf0-a1o.js} +1 -1
- package/out/_next/static/chunks/34dcb7_flbrvo.js +1 -0
- package/out/_next/static/chunks/34zotyeqrz_nq.js +1 -0
- package/out/_next/static/chunks/351wsmi75l8db.js +1 -0
- package/out/_next/static/chunks/36yv-ialtpx98.js +1 -0
- package/out/_next/static/chunks/37hwasxtee5e0.js +1 -0
- package/out/_next/static/chunks/37t0iclgxes05.js +1 -0
- package/out/_next/static/chunks/{1x0j78ohufpul.js → 37xnvnx1jxfaf.js} +1 -1
- package/out/_next/static/chunks/{29hkkj9raxte9.js → 38w74ixqt-9co.js} +77 -77
- package/out/_next/static/chunks/{0jap7l5-bskj4.js → 39t2x_9zd2rst.js} +12 -12
- package/out/_next/static/chunks/{38q0enmlg5q9o.js → 39v73timmzwny.js} +2 -2
- package/out/_next/static/chunks/{3puu2_-t0lln9.js → 3_xqc3658d8sw.js} +12 -12
- package/out/_next/static/chunks/3ba8eudvlczwe.js +1 -0
- package/out/_next/static/chunks/3buezhxqc8n6n.js +1 -0
- package/out/_next/static/chunks/3c5iwwj-fhbue.js +1 -0
- package/out/_next/static/chunks/{2kmmk9coo9_b0.js → 3d8ot2tw6yqfq.js} +143 -143
- package/out/_next/static/chunks/3dc057ffe7ij-.js +1 -0
- package/out/_next/static/chunks/3djnlzwj9869o.js +1 -0
- package/out/_next/static/chunks/{2_6b9lraq-exh.js → 3fuqxjjf8o1v9.js} +5 -5
- package/out/_next/static/chunks/{0j2ygtc_-bo3m.js → 3gt6rzg9qw-an.js} +1 -1
- package/out/_next/static/chunks/{0rykrf_vofbad.js → 3h_05w5j8x538.js} +1 -1
- package/out/_next/static/chunks/{3txu-i5qn183a.js → 3hkhd1_k8xohv.js} +321 -321
- package/out/_next/static/chunks/{2h07np207nlx7.js → 3ijcc5tfisfnj.js} +1 -1
- package/out/_next/static/chunks/3j0dbpd9zop3p.js +1 -0
- package/out/_next/static/chunks/{14e4k-718qadd.js → 3ju83xk-ca7ma.js} +163 -168
- package/out/_next/static/chunks/3jxhl4apmhbm1.js +13 -0
- package/out/_next/static/chunks/{1h1gixjbjkbsl.js → 3la99oz_0p0r6.js} +5 -5
- package/out/_next/static/chunks/{1mt4cnd_d6jvf.js → 3n1b34fd5fdrh.js} +1 -1
- package/out/_next/static/chunks/3nq_hq4x3rn3r.js +1 -0
- package/out/_next/static/chunks/3pgb1kkqrdl9t.js +1 -0
- package/out/_next/static/chunks/3pik_-jj-zkfl.js +1 -0
- package/out/_next/static/chunks/{1zmx71cvc6ksk.js → 3q38kdbzd2nbd.js} +1 -1
- package/out/_next/static/chunks/3q5zl4ks17au2.js +1 -0
- package/out/_next/static/chunks/{1t2g1v0ubcsam.js → 3qr10445lte-n.js} +1 -1
- package/out/_next/static/chunks/3r-8bnguvxsyo.js +1 -0
- package/out/_next/static/chunks/3sg56j8boe-3o.js +1 -0
- package/out/_next/static/chunks/3u7zj1-jdg781.js +1 -0
- package/out/_next/static/chunks/{0o0qtv35dqv3i.js → 3wj5dmf6cywz8.js} +239 -239
- package/out/_next/static/chunks/{2iu0_3cx-ny74.js → 3wr_oijfsq8lr.js} +11 -11
- package/out/_next/static/chunks/3xu0dh1ikzwj2.js +1 -0
- package/out/_next/static/chunks/{0vzo-8t8c26k9.js → 3y5tpixt23-fl.js} +1 -1
- package/out/_next/static/chunks/40gjf-_jt8upu.js +5 -0
- package/out/_next/static/chunks/41f12o_5lf-i9.js +1 -0
- package/out/_next/static/chunks/42ma8lqduohlc.js +1 -0
- package/out/_next/static/chunks/43usshq2nc125.js +1 -0
- package/out/_next/static/chunks/{161yjxmdz9obc.js → 44bl4ufopbmyh.js} +1 -1
- package/out/_next/static/chunks/44iutzkw9r21x.js +1 -0
- package/out/_next/static/chunks/turbopack-1xrxa3noq196-.js +1 -0
- package/out/_not-found/__next._full.txt +11 -11
- package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
- package/out/_not-found/__next._tree.txt +1 -1
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +11 -11
- package/out/index.html +1 -1
- package/out/index.txt +10 -10
- package/package.json +11 -11
- package/out/__next._head.txt +0 -6
- package/out/__next._index.txt +0 -5
- package/out/_next/static/chunks/0-k4hp87gwues.js +0 -1
- package/out/_next/static/chunks/04zj0yf1qhk1o.js +0 -1
- package/out/_next/static/chunks/06fbalmyyfpsy.js +0 -1
- package/out/_next/static/chunks/07hgbbqksqd1g.js +0 -1
- package/out/_next/static/chunks/08ou2nvy48e0u.js +0 -1
- package/out/_next/static/chunks/08y5-irjbsiy8.js +0 -1
- package/out/_next/static/chunks/0_jrfk2u1u3fi.js +0 -1
- package/out/_next/static/chunks/0a475u_q5i_dd.js +0 -62
- package/out/_next/static/chunks/0aad2r4s4wl1x.js +0 -5
- package/out/_next/static/chunks/0d9pxx1w_zqr9.js +0 -1
- package/out/_next/static/chunks/0gnjtwq-474uc.js +0 -1
- package/out/_next/static/chunks/0gsh_d0m5xss1.js +0 -1
- package/out/_next/static/chunks/0ibzpjo0h731v.js +0 -1
- package/out/_next/static/chunks/0j_3k5qhv_mdx.js +0 -1
- package/out/_next/static/chunks/0jis2w2mfx062.js +0 -1
- package/out/_next/static/chunks/0jjvp2slpf7d6.js +0 -1
- package/out/_next/static/chunks/0ko10wo4rc9-b.js +0 -1
- package/out/_next/static/chunks/0lqmvz6k2h_of.js +0 -1
- package/out/_next/static/chunks/0lwjmr8efrlbt.js +0 -17
- package/out/_next/static/chunks/0noxyupihh8dk.js +0 -1
- package/out/_next/static/chunks/0o1vph7x9shzu.js +0 -1
- package/out/_next/static/chunks/0p6phe9kjlxn8.js +0 -1
- package/out/_next/static/chunks/0ptxb9dcwsw3o.js +0 -1
- package/out/_next/static/chunks/0q8pt8fd0ma30.js +0 -1
- package/out/_next/static/chunks/0qqx9aoz8l5d2.js +0 -1
- package/out/_next/static/chunks/0tsk32q-88t_7.js +0 -1
- package/out/_next/static/chunks/0u7577db_ivyr.js +0 -1
- package/out/_next/static/chunks/0unnrt0un064x.js +0 -1
- package/out/_next/static/chunks/0uygtr4mo3h0v.js +0 -1
- package/out/_next/static/chunks/0vf3facit951s.js +0 -1
- package/out/_next/static/chunks/0xyija62b6txc.js +0 -1
- package/out/_next/static/chunks/0zeb37703zcz3.js +0 -1
- package/out/_next/static/chunks/0zu5ato7-1-q9.js +0 -1
- package/out/_next/static/chunks/0zydv7y47dxgh.js +0 -1
- package/out/_next/static/chunks/103x4jwovb6d-.js +0 -1
- package/out/_next/static/chunks/107wfq84g9-kn.js +0 -1
- package/out/_next/static/chunks/10afagk8yn__n.js +0 -1
- package/out/_next/static/chunks/12ory_c78yl31.js +0 -1
- package/out/_next/static/chunks/133dqp8_7_yo6.js +0 -1
- package/out/_next/static/chunks/1365lgwdd4vuo.js +0 -1
- package/out/_next/static/chunks/146ou-ohb_qhs.js +0 -1
- package/out/_next/static/chunks/14orr68xgdykd.js +0 -1
- package/out/_next/static/chunks/15qfoj-vl9thu.js +0 -1
- package/out/_next/static/chunks/166yqx3_qvbpy.js +0 -1
- package/out/_next/static/chunks/16gwjao676ieb.js +0 -1
- package/out/_next/static/chunks/16rmmzhy2p7bw.js +0 -1
- package/out/_next/static/chunks/17_jjyx4jz9dd.js +0 -1
- package/out/_next/static/chunks/18h9ugdz6igdb.js +0 -1
- package/out/_next/static/chunks/19d8n5t7ka2fb.js +0 -1
- package/out/_next/static/chunks/1_rbzw3n4fk0g.js +0 -1
- package/out/_next/static/chunks/1aa9g197l4twm.js +0 -1
- package/out/_next/static/chunks/1bq0fcnt1wy86.js +0 -1
- package/out/_next/static/chunks/1c6mho7e0enta.js +0 -1
- package/out/_next/static/chunks/1dfaheve77dhi.js +0 -1
- package/out/_next/static/chunks/1dgf112ehnhm1.js +0 -1
- package/out/_next/static/chunks/1eirucr9s6-h5.js +0 -1
- package/out/_next/static/chunks/1fsof7un7igrn.js +0 -1
- package/out/_next/static/chunks/1gvu5a6ffbs7l.js +0 -1
- package/out/_next/static/chunks/1iel4pzhhh-c3.js +0 -1
- package/out/_next/static/chunks/1iojfx3-g4_n9.js +0 -1
- package/out/_next/static/chunks/1j4jt5q7px8sy.js +0 -1
- package/out/_next/static/chunks/1jjw9hxgi2vzi.js +0 -1
- package/out/_next/static/chunks/1k_8olnprvi8r.js +0 -1
- package/out/_next/static/chunks/1l0rt7d4m-xdk.js +0 -5
- package/out/_next/static/chunks/1s0dpdqy480hg.js +0 -1
- package/out/_next/static/chunks/1t-yolk97lmot.js +0 -12
- package/out/_next/static/chunks/1tbes2sv-qzcx.js +0 -1
- package/out/_next/static/chunks/1upy8a5cb75kt.js +0 -1
- package/out/_next/static/chunks/1xed71f608m4b.js +0 -1
- package/out/_next/static/chunks/1z790xxb46gxy.js +0 -1
- package/out/_next/static/chunks/219n3q-_eengm.js +0 -1
- package/out/_next/static/chunks/21wo3vdr_uby8.js +0 -1
- package/out/_next/static/chunks/25gep78-izw79.js +0 -4
- package/out/_next/static/chunks/26i7dn31afdtm.js +0 -1
- package/out/_next/static/chunks/27hbplu797elx.js +0 -1
- package/out/_next/static/chunks/2992eiy52nazj.js +0 -1
- package/out/_next/static/chunks/29_n5j-hg_gsa.js +0 -1
- package/out/_next/static/chunks/29bxq-67oazfg.js +0 -1
- package/out/_next/static/chunks/29ings58w7kp1.js +0 -1
- package/out/_next/static/chunks/2_n0cpkdsjzli.js +0 -1
- package/out/_next/static/chunks/2a3iy701j4r_y.js +0 -1
- package/out/_next/static/chunks/2al9dh3_1ixhv.js +0 -1
- package/out/_next/static/chunks/2awr1c_vfsutb.js +0 -1
- package/out/_next/static/chunks/2bxe3kjr17tdp.js +0 -1
- package/out/_next/static/chunks/2dvbzar93ooc-.js +0 -1
- package/out/_next/static/chunks/2e-vp0e11g9ew.js +0 -1
- package/out/_next/static/chunks/2exj9-0p6n9x-.js +0 -1
- package/out/_next/static/chunks/2gf8l6hbmt7v3.js +0 -1
- package/out/_next/static/chunks/2h9i_adbqaxs4.js +0 -1
- package/out/_next/static/chunks/2jio3sio-_43z.js +0 -1
- package/out/_next/static/chunks/2neieeo9g2u56.js +0 -1
- package/out/_next/static/chunks/2pb_uosb-aa8x.js +0 -1
- package/out/_next/static/chunks/2qu-gpm3ux1l6.js +0 -1
- package/out/_next/static/chunks/2rsi6v7qmqx2b.js +0 -1
- package/out/_next/static/chunks/2tdvuc-27khif.js +0 -1
- package/out/_next/static/chunks/2trolrgd7neax.js +0 -1
- package/out/_next/static/chunks/2uyuafmoe5wi0.js +0 -3
- package/out/_next/static/chunks/2w2e0pxgs-n8f.js +0 -1
- package/out/_next/static/chunks/2xujlsx3stqig.js +0 -1
- package/out/_next/static/chunks/30y71dxdpv52d.js +0 -1
- package/out/_next/static/chunks/32c-e_v8_2xkf.js +0 -1
- package/out/_next/static/chunks/32oj0iudhp8bm.js +0 -1
- package/out/_next/static/chunks/33p9du6y9eegg.js +0 -1
- package/out/_next/static/chunks/38om-j0h0rryk.js +0 -1
- package/out/_next/static/chunks/39cou9lia_g7l.js +0 -1
- package/out/_next/static/chunks/39pkya0_bvcaj.js +0 -1
- package/out/_next/static/chunks/39rhmj_32ujyj.js +0 -1
- package/out/_next/static/chunks/3_1zzmx92j9c0.js +0 -1
- package/out/_next/static/chunks/3_earszshuz4n.js +0 -1
- package/out/_next/static/chunks/3ap_uxc8lx7ni.js +0 -1
- package/out/_next/static/chunks/3b6na8zrex8jo.js +0 -1
- package/out/_next/static/chunks/3c0cxt72vilyz.js +0 -1
- package/out/_next/static/chunks/3g78x0pdaoi_4.js +0 -1
- package/out/_next/static/chunks/3gjvl1p-tugfe.js +0 -4
- package/out/_next/static/chunks/3i8iro1gas1vx.js +0 -1
- package/out/_next/static/chunks/3kpqfqr99vo7z.js +0 -1
- package/out/_next/static/chunks/3lladf_wemm-2.js +0 -1
- package/out/_next/static/chunks/3n62hbywoknop.js +0 -1
- package/out/_next/static/chunks/3o_dmzpahx-5g.js +0 -1
- package/out/_next/static/chunks/3r7v7un976sn7.js +0 -1
- package/out/_next/static/chunks/3rl_nhqwew40w.js +0 -1
- package/out/_next/static/chunks/3s7hqij6xp_4e.js +0 -1
- package/out/_next/static/chunks/3si3migsmvz9o.js +0 -1
- package/out/_next/static/chunks/3uarw1i1ij1er.js +0 -1
- package/out/_next/static/chunks/3un-w6wutw1qn.js +0 -1
- package/out/_next/static/chunks/3v8kgnjk27wbe.js +0 -1
- package/out/_next/static/chunks/3we1khqfexh3x.js +0 -1
- package/out/_next/static/chunks/3z35loj4i-id4.js +0 -1
- package/out/_next/static/chunks/42lqt7ig40wk5.js +0 -1
- package/out/_next/static/chunks/42s6ghsurq5q7.js +0 -1
- package/out/_next/static/chunks/42yctcfi2rfwr.js +0 -1
- package/out/_next/static/chunks/43_fau1gg69eo.js +0 -1
- package/out/_next/static/chunks/43ywrdzg_7af8.js +0 -31
- package/out/_next/static/chunks/44m1ijc5cv80x.js +0 -1
- package/out/_next/static/chunks/453_bg0lgesmp.js +0 -1
- package/out/_next/static/chunks/turbopack-1s36ieuku1ds3.js +0 -1
- package/out/_not-found/__next._head.txt +0 -6
- package/out/_not-found/__next._index.txt +0 -5
- package/out/_not-found/__next._not-found.txt +0 -5
- /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_buildManifest.js +0 -0
- /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_ssgManifest.js +0 -0
|
@@ -1,296 +1,4 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,
|
|
2
|
-
const LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3f=vec3f(0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;fn square(x: f32)->f32 {return x*x;}
|
|
3
|
-
fn saturate(x: f32)->f32 {return clamp(x,0.0,1.0);}
|
|
4
|
-
fn saturateVec3(x: vec3f)->vec3f {return clamp(x,vec3f(),vec3f(1.0));}
|
|
5
|
-
fn saturateEps(x: f32)->f32 {return clamp(x,Epsilon,1.0);}
|
|
6
|
-
fn maxEps(x: f32)->f32 {return max(x,Epsilon);}
|
|
7
|
-
fn maxEpsVec3(x: vec3f)->vec3f {return max(x,vec3f(Epsilon));}
|
|
8
|
-
fn absEps(x: f32)->f32 {return abs(x)+Epsilon;}
|
|
9
|
-
fn transposeMat3(inMatrix: mat3x3f)->mat3x3f {let i0: vec3f=inMatrix[0];let i1: vec3f=inMatrix[1];let i2: vec3f=inMatrix[2];let outMatrix:mat3x3f=mat3x3f(
|
|
10
|
-
vec3(i0.x,i1.x,i2.x),
|
|
11
|
-
vec3(i0.y,i1.y,i2.y),
|
|
12
|
-
vec3(i0.z,i1.z,i2.z)
|
|
13
|
-
);return outMatrix;}
|
|
14
|
-
fn inverseMat3(inMatrix: mat3x3f)->mat3x3f {let a00: f32=inMatrix[0][0];let a01: f32=inMatrix[0][1];let a02: f32=inMatrix[0][2];let a10: f32=inMatrix[1][0];let a11: f32=inMatrix[1][1];let a12: f32=inMatrix[1][2];let a20: f32=inMatrix[2][0];let a21: f32=inMatrix[2][1];let a22: f32=inMatrix[2][2];let b01: f32=a22*a11-a12*a21;let b11: f32=-a22*a10+a12*a20;let b21: f32=a21*a10-a11*a20;let det: f32=a00*b01+a01*b11+a02*b21;return mat3x3f(b01/det,(-a22*a01+a02*a21)/det,(a12*a01-a02*a11)/det,
|
|
15
|
-
b11/det,(a22*a00-a02*a20)/det,(-a12*a00+a02*a10)/det,
|
|
16
|
-
b21/det,(-a21*a00+a01*a20)/det,(a11*a00-a01*a10)/det);}
|
|
17
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
18
|
-
fn toLinearSpaceExact(color: vec3f)->vec3f
|
|
19
|
-
{let nearZeroSection: vec3f=0.0773993808*color;let remainingSection: vec3f=pow(0.947867299*(color+vec3f(0.055)),vec3f(2.4));return select(remainingSection,nearZeroSection,color<=vec3f(0.04045));}
|
|
20
|
-
fn toGammaSpaceExact(color: vec3f)->vec3f
|
|
21
|
-
{let nearZeroSection: vec3f=12.92*color;let remainingSection: vec3f=1.055*pow(color,vec3f(0.41666))-vec3f(0.055);return select(remainingSection,nearZeroSection,color<=vec3f(0.0031308));}
|
|
22
|
-
#endif
|
|
23
|
-
fn toLinearSpace(color: f32)->f32
|
|
24
|
-
{
|
|
25
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
26
|
-
var nearZeroSection=0.0773993808*color;var remainingSection=pow(0.947867299*(color+0.055),2.4);return select(remainingSection,nearZeroSection,color<=0.04045);
|
|
27
|
-
#else
|
|
28
|
-
return pow(color,LinearEncodePowerApprox);
|
|
29
|
-
#endif
|
|
30
|
-
}
|
|
31
|
-
fn toLinearSpaceVec3(color: vec3f)->vec3f
|
|
32
|
-
{
|
|
33
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
34
|
-
return toLinearSpaceExact(color);
|
|
35
|
-
#else
|
|
36
|
-
return pow(color,vec3f(LinearEncodePowerApprox));
|
|
37
|
-
#endif
|
|
38
|
-
}
|
|
39
|
-
fn toLinearSpaceVec4(color: vec4<f32>)->vec4<f32>
|
|
40
|
-
{
|
|
41
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
42
|
-
return vec4f(toLinearSpaceExact(color.rgb),color.a);
|
|
43
|
-
#else
|
|
44
|
-
return vec4f(pow(color.rgb,vec3f(LinearEncodePowerApprox)),color.a);
|
|
45
|
-
#endif
|
|
46
|
-
}
|
|
47
|
-
fn toGammaSpace(color: vec4<f32>)->vec4<f32>
|
|
48
|
-
{
|
|
49
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
50
|
-
return vec4<f32>(toGammaSpaceExact(color.rgb),color.a);
|
|
51
|
-
#else
|
|
52
|
-
return vec4<f32>(pow(color.rgb,vec3f(GammaEncodePowerApprox)),color.a);
|
|
53
|
-
#endif
|
|
54
|
-
}
|
|
55
|
-
fn toGammaSpaceVec3(color: vec3f)->vec3f
|
|
56
|
-
{
|
|
57
|
-
#if USE_EXACT_SRGB_CONVERSIONS
|
|
58
|
-
return toGammaSpaceExact(color);
|
|
59
|
-
#else
|
|
60
|
-
return pow(color,vec3f(GammaEncodePowerApprox));
|
|
61
|
-
#endif
|
|
62
|
-
}
|
|
63
|
-
fn squareVec3(value: vec3f)->vec3f
|
|
64
|
-
{return value*value;}
|
|
65
|
-
fn pow5(value: f32)->f32 {let sq: f32=value*value;return sq*sq*value;}
|
|
66
|
-
fn double_refract(I: vec3f,N: vec3f,eta: f32)->vec3f {let Tfront: vec3f=refract(I,N,1.0/eta);let Nback: vec3f=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
|
|
67
|
-
fn getLuminanceUnclamped(color: vec3f)->f32
|
|
68
|
-
{return dot(color,LuminanceEncodeApprox);}
|
|
69
|
-
fn getLuminance(color: vec3f)->f32
|
|
70
|
-
{return saturate(getLuminanceUnclamped(color));}
|
|
71
|
-
fn getRand(seed: vec2<f32>)->f32 {return fract(sin(dot(seed.xy ,vec2<f32>(12.9898,78.233)))*43758.5453);}
|
|
72
|
-
fn dither(seed: vec2<f32>,varianceAmount: f32)->f32 {let rand: f32=getRand(seed);let normVariance: f32=varianceAmount/255.0;let dither: f32=mix(-normVariance,normVariance,rand);return dither;}
|
|
73
|
-
const rgbdMaxRange: f32=255.0;fn toRGBD(color: vec3f)->vec4<f32> {let maxRGB: f32=max(max(color.r,max(color.g,color.b)),Epsilon);var D: f32 =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);var rgb: vec3f =color.rgb*D;rgb=toGammaSpaceVec3(rgb);return vec4<f32>(saturateVec3(rgb),D);}
|
|
74
|
-
fn fromRGBD(rgbd: vec4<f32>)->vec3f {let rgb=toLinearSpaceVec3(rgbd.rgb);return rgb/rgbd.a;}
|
|
75
|
-
fn parallaxCorrectNormal(vertexPos: vec3f,origVec: vec3f,cubeSize: vec3f,cubePos: vec3f)->vec3f {let invOrigVec: vec3f=vec3f(1.)/origVec;let halfSize: vec3f=cubeSize*0.5;let intersecAtMaxPlane: vec3f=(cubePos+halfSize-vertexPos)*invOrigVec;let intersecAtMinPlane: vec3f=(cubePos-halfSize-vertexPos)*invOrigVec;let largestIntersec: vec3f=max(intersecAtMaxPlane,intersecAtMinPlane);let distance: f32=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);let intersectPositionWS: vec3f=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
|
|
76
|
-
fn equirectangularToCubemapDirection(uv : vec2f)->vec3f {var longitude : f32=uv.x*TWO_PI-PI;var latitude : f32=HALF_PI-uv.y*PI;var direction : vec3f;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
|
|
77
|
-
fn sqrtClamped(value: f32)->f32 {return sqrt(max(value,0.));}
|
|
78
|
-
fn avg(value: vec3f)->f32 {return dot(value,vec3f(0.333333333));}
|
|
79
|
-
fn singleScatterToMultiScatterAlbedo(rho_ss: vec3f)->vec3f {let s: vec3f=sqrt(max(vec3f(1.0)-rho_ss,vec3f(0.0)));return (vec3f(1.0)-s)*(vec3f(1.0)-vec3f(0.139)*s)/(vec3f(1.0)+vec3f(1.17)*s);}
|
|
80
|
-
fn multiScatterToSingleScatterAlbedo(rho_ms: vec3f)->vec3f {let s: vec3f=4.09712f+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return 1.0f-s*s;}
|
|
81
|
-
fn multiScatterToSingleScatterAlbedoWithAniso(rho_ms: vec3f,aniso: f32)->vec3f {let s: vec3f=4.09712+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return (vec3f(1.0f)-s*s)/maxEpsVec3(vec3f(1.0f)-vec3f(aniso)*s*s);}
|
|
82
|
-
fn min3(v: vec3f)->f32 {return min(v.x,min(v.y,v.z));}
|
|
83
|
-
fn max3(v: vec3f)->f32 {return max(v.x,max(v.y,v.z));}
|
|
84
|
-
fn uint2float(i: u32)->f32 {return bitcast<f32>(0x3F800000u | (i>>9u))-1.0;}
|
|
85
|
-
fn plasticSequence(rstate: u32)->vec2f {return vec2f(uint2float(rstate*3242174889u),
|
|
86
|
-
uint2float(rstate*2447445414u));}
|
|
87
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["helperFunctionsWGSL",0,{name:r,shader:i}])},73317,e=>{"use strict";var t=e.i(47150);let r="logDepthDeclaration",i=`#ifdef LOGARITHMICDEPTH
|
|
88
|
-
uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
|
|
89
|
-
#endif
|
|
90
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["logDepthDeclarationWGSL",0,{name:r,shader:i}])},97793,e=>{"use strict";var t=e.i(47150);let r="sceneUboDeclaration",i=`struct Scene {viewProjection : mat4x4<f32>,
|
|
91
|
-
#ifdef MULTIVIEW
|
|
92
|
-
viewProjectionR : mat4x4<f32>,
|
|
93
|
-
#endif
|
|
94
|
-
view : mat4x4<f32>,
|
|
95
|
-
projection : mat4x4<f32>,
|
|
96
|
-
vEyePosition : vec4<f32>,
|
|
97
|
-
inverseProjection : mat4x4<f32>,};
|
|
98
|
-
#define SCENE_UBO
|
|
99
|
-
var<uniform> scene : Scene;
|
|
100
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["sceneUboDeclarationWGSL",0,{name:r,shader:i}])},36113,e=>{"use strict";var t=e.i(47150);let r="meshUboDeclaration",i=`struct Mesh {world : mat4x4<f32>,
|
|
101
|
-
visibility : f32,};var<uniform> mesh : Mesh;
|
|
102
|
-
#define WORLD_UBO
|
|
103
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["meshUboDeclarationWGSL",0,{name:r,shader:i}])},47569,e=>{"use strict";var t=e.i(47150);let r="mainUVVaryingDeclaration",i=`#ifdef MAINUV{X}
|
|
104
|
-
varying vMainUV{X}: vec2f;
|
|
105
|
-
#endif
|
|
106
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["mainUVVaryingDeclarationWGSL",0,{name:r,shader:i}])},54058,e=>{"use strict";var t=e.i(47150);let r="harmonicsFunctions",i=`#ifdef USESPHERICALFROMREFLECTIONMAP
|
|
107
|
-
#ifdef SPHERICAL_HARMONICS
|
|
108
|
-
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {return uniforms.vSphericalL00
|
|
109
|
-
+ uniforms.vSphericalL1_1*(normal.y)
|
|
110
|
-
+ uniforms.vSphericalL10*(normal.z)
|
|
111
|
-
+ uniforms.vSphericalL11*(normal.x)
|
|
112
|
-
+ uniforms.vSphericalL2_2*(normal.y*normal.x)
|
|
113
|
-
+ uniforms.vSphericalL2_1*(normal.y*normal.z)
|
|
114
|
-
+ uniforms.vSphericalL20*((3.0*normal.z*normal.z)-1.0)
|
|
115
|
-
+ uniforms.vSphericalL21*(normal.z*normal.x)
|
|
116
|
-
+ uniforms.vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
|
|
117
|
-
#else
|
|
118
|
-
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {var Nx: f32=normal.x;var Ny: f32=normal.y;var Nz: f32=normal.z;var C1: vec3f=uniforms.vSphericalZZ.rgb;var Cx: vec3f=uniforms.vSphericalX.rgb;var Cy: vec3f=uniforms.vSphericalY.rgb;var Cz: vec3f=uniforms.vSphericalZ.rgb;var Cxx_zz: vec3f=uniforms.vSphericalXX_ZZ.rgb;var Cyy_zz: vec3f=uniforms.vSphericalYY_ZZ.rgb;var Cxy: vec3f=uniforms.vSphericalXY.rgb;var Cyz: vec3f=uniforms.vSphericalYZ.rgb;var Czx: vec3f=uniforms.vSphericalZX.rgb;var a1: vec3f=Cyy_zz*Ny+Cy;var a2: vec3f=Cyz*Nz+a1;var b1: vec3f=Czx*Nz+Cx;var b2: vec3f=Cxy*Ny+b1;var b3: vec3f=Cxx_zz*Nx+b2;var t1: vec3f=Cz *Nz+C1;var t2: vec3f=a2 *Ny+t1;var t3: vec3f=b3 *Nx+t2;return t3;}
|
|
119
|
-
#endif
|
|
120
|
-
#endif
|
|
121
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["harmonicsFunctionsWGSL",0,{name:r,shader:i}])},88887,e=>{"use strict";var t=e.i(47150);let r="pbrBRDFFunctions",i=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
|
|
122
|
-
#define BRDF_DIFFUSE_MODEL_EON 0
|
|
123
|
-
#define BRDF_DIFFUSE_MODEL_BURLEY 1
|
|
124
|
-
#define BRDF_DIFFUSE_MODEL_LAMBERT 2
|
|
125
|
-
#define BRDF_DIFFUSE_MODEL_LEGACY 3
|
|
126
|
-
#define DIELECTRIC_SPECULAR_MODEL_GLTF 0
|
|
127
|
-
#define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
|
|
128
|
-
#define CONDUCTOR_SPECULAR_MODEL_GLTF 0
|
|
129
|
-
#define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
|
|
130
|
-
#if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
|
|
131
|
-
#ifdef MS_BRDF_ENERGY_CONSERVATION
|
|
132
|
-
fn getEnergyConservationFactor(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
|
|
133
|
-
#endif
|
|
134
|
-
#if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
|
|
135
|
-
const F82_COS_THETA_MAX: f32 =0.142857143;const F82_ONE_MINUS_CTM_POW5: f32 =0.462664366;const F82_ONE_MINUS_CTM_POW6: f32 =0.396569457;const F82_B_DENOMINATOR_RECIP: f32 =17.6512785;const BRDF_Z_SCALE: f32 =16.0;fn getF82Specular(NdotV: f32,F0: vec3f,edgeTint: vec3f,roughness: f32)->vec3f {let white_minus_F0: vec3f=vec3f(1.0f)-F0;let b_numerator: vec3f=(F0+white_minus_F0*F82_ONE_MINUS_CTM_POW5)*(vec3f(1.0)-edgeTint);let b: vec3f=b_numerator*F82_B_DENOMINATOR_RECIP;let cos_theta: f32=max(roughness,NdotV);let one_minus_cos_theta: f32=1.0-cos_theta;let offset_from_F0: vec3f=(white_minus_F0-b*cos_theta*one_minus_cos_theta)*pow(one_minus_cos_theta,5.0f);return clamp(F0+offset_from_F0,vec3f(0.0f),vec3f(1.0f));}
|
|
136
|
-
fn getF82B(F0: vec3f,edgeTint: vec3f)->vec3f {return (F0+(vec3f(1.0)-F0)*F82_ONE_MINUS_CTM_POW5)*(vec3f(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;}
|
|
137
|
-
fn getF82DirectionalAlbedo(F0: vec3f,F90: vec3f,b: vec3f,environmentBrdf: vec3f)->vec3f {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
|
|
138
|
-
fn getF82AverageFresnel(F0: vec3f,b: vec3f)->vec3f {return F0+(vec3f(1.0)-F0)/21.0-b/126.0;}
|
|
139
|
-
#endif
|
|
140
|
-
#ifdef FUZZENVIRONMENTBRDF
|
|
141
|
-
fn getFuzzBRDFLookup(NdotV: f32,perceptualRoughness: f32)->vec3f {let UV: vec2f=vec2f(perceptualRoughness,NdotV);var brdfLookup: vec4f=textureSample(environmentFuzzBrdfSampler,environmentFuzzBrdfSamplerSampler,UV);const RiRange: vec2f=vec2f(0.0f,0.75f);const ARange: vec2f=vec2f(0.005f,0.88f);const BRange: vec2f=vec2f(-0.18f,0.002f);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;}
|
|
142
|
-
#endif
|
|
143
|
-
#ifdef ENVIRONMENTBRDF
|
|
144
|
-
fn getBRDFLookup(NdotV: f32,perceptualRoughness: f32)->vec3f {var UV: vec2f= vec2f(NdotV,perceptualRoughness);var brdfLookup: vec4f= textureSample(environmentBrdfSampler,environmentBrdfSamplerSampler,UV);
|
|
145
|
-
#ifdef ENVIRONMENTBRDF_RGBD
|
|
146
|
-
brdfLookup=vec4f(fromRGBD(brdfLookup.rgba),brdfLookup.a);
|
|
147
|
-
#endif
|
|
148
|
-
return brdfLookup.rgb;}
|
|
149
|
-
fn getReflectanceFromBRDFWithEnvLookup(specularEnvironmentR0: vec3f,specularEnvironmentR90: vec3f,environmentBrdf: vec3f)->vec3f {
|
|
150
|
-
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
151
|
-
var reflectance: vec3f=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
|
|
152
|
-
#else
|
|
153
|
-
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
|
|
154
|
-
#endif
|
|
155
|
-
return reflectance;}
|
|
156
|
-
fn getReflectanceFromBRDFLookup(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {
|
|
157
|
-
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
158
|
-
var reflectance: vec3f=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
|
|
159
|
-
#else
|
|
160
|
-
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
|
|
161
|
-
#endif
|
|
162
|
-
return reflectance;}
|
|
163
|
-
#endif
|
|
164
|
-
/* NOT USED
|
|
165
|
-
#if defined(SHEEN) && defined(SHEEN_SOFTER)
|
|
166
|
-
fn getBRDFLookupCharlieSheen(NdotV: f32,perceptualRoughness: f32)->f32
|
|
167
|
-
{var c: f32=1.0-NdotV;var c3: f32=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
|
|
168
|
-
#endif
|
|
169
|
-
*/
|
|
170
|
-
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
|
|
171
|
-
fn getReflectanceFromAnalyticalBRDFLookup_Jones(VdotN: f32,reflectance0: vec3f,reflectance90: vec3f,smoothness: f32)->vec3f
|
|
172
|
-
{var weight: f32=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
|
|
173
|
-
#endif
|
|
174
|
-
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
|
|
175
|
-
/**
|
|
176
|
-
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
|
|
177
|
-
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
|
|
178
|
-
*/
|
|
179
|
-
fn getSheenReflectanceFromBRDFLookup(reflectance0: vec3f,environmentBrdf: vec3f)->vec3f {var sheenEnvironmentReflectance: vec3f=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
|
|
180
|
-
#endif
|
|
181
|
-
fn fresnelSchlickGGXVec3(VdotH: f32,reflectance0: vec3f,reflectance90: vec3f)->vec3f
|
|
182
|
-
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
183
|
-
fn fresnelSchlickGGX(VdotH: f32,reflectance0: f32,reflectance90: f32)->f32
|
|
184
|
-
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
185
|
-
#ifdef CLEARCOAT
|
|
186
|
-
fn getR0RemappedForClearCoat(f0: vec3f)->vec3f {
|
|
187
|
-
#ifdef CLEARCOAT_DEFAULTIOR
|
|
188
|
-
#ifdef MOBILE
|
|
189
|
-
return saturateVec3(f0*(f0*0.526868+0.529324)-0.0482256);
|
|
190
|
-
#else
|
|
191
|
-
return saturateVec3(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
|
|
192
|
-
#endif
|
|
193
|
-
#else
|
|
194
|
-
var s: vec3f=sqrt(f0);var t: vec3f=(uniforms.vClearCoatRefractionParams.z+uniforms.vClearCoatRefractionParams.w*s)/(uniforms.vClearCoatRefractionParams.w+uniforms.vClearCoatRefractionParams.z*s);return squareVec3(t);
|
|
195
|
-
#endif
|
|
196
|
-
}
|
|
197
|
-
#endif
|
|
198
|
-
#ifdef IRIDESCENCE
|
|
199
|
-
const XYZ_TO_REC709: mat3x3f= mat3x3f(
|
|
200
|
-
3.2404542,-0.9692660, 0.0556434,
|
|
201
|
-
-1.5371385, 1.8760108,-0.2040259,
|
|
202
|
-
-0.4985314, 0.0415560, 1.0572252
|
|
203
|
-
);fn getIORTfromAirToSurfaceR0(f0: vec3f)->vec3f {var sqrtF0: vec3f=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
|
|
204
|
-
fn getR0fromIORsVec3(iorT: vec3f,iorI: f32)->vec3f {return squareVec3((iorT- vec3f(iorI))/(iorT+ vec3f(iorI)));}
|
|
205
|
-
fn getR0fromIORs(iorT: f32,iorI: f32)->f32 {return square((iorT-iorI)/(iorT+iorI));}
|
|
206
|
-
fn evalSensitivity(opd: f32,shift: vec3f)->vec3f {var phase: f32=2.0*PI*opd*1.0e-9;const val: vec3f= vec3f(5.4856e-13,4.4201e-13,5.2481e-13);const pos: vec3f= vec3f(1.6810e+06,1.7953e+06,2.2084e+06);const vr: vec3f= vec3f(4.3278e+09,9.3046e+09,6.6121e+09);var xyz: vec3f=val*sqrt(2.0*PI*vr)*cos(pos*phase+shift)*exp(-square(phase)*vr);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;var srgb: vec3f=XYZ_TO_REC709*xyz;return srgb;}
|
|
207
|
-
fn evalIridescence(outsideIOR: f32,eta2: f32,cosTheta1: f32,thinFilmThickness: f32,baseF0: vec3f)->vec3f {var I: vec3f= vec3f(1.0);var iridescenceIOR: f32=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));var sinTheta2Sq: f32=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));var cosTheta2Sq: f32=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
|
|
208
|
-
var cosTheta2: f32=sqrt(cosTheta2Sq);var R0: f32=getR0fromIORs(iridescenceIOR,outsideIOR);var R12: f32=fresnelSchlickGGX(cosTheta1,R0,1.);var R21: f32=R12;var T121: f32=1.0-R12;var phi12: f32=0.0;if (iridescenceIOR<outsideIOR) {phi12=PI;}
|
|
209
|
-
var phi21: f32=PI-phi12;var baseIOR: vec3f=getIORTfromAirToSurfaceR0(clamp(baseF0,vec3f(0.0),vec3f(0.9999)));
|
|
210
|
-
var R1: vec3f=getR0fromIORsVec3(baseIOR,iridescenceIOR);let maxR1: f32=max(R1.r,max(R1.g,R1.b));if (maxR1<1e-6) {return max(vec3f(R12),vec3f(0.0));}
|
|
211
|
-
var R23: vec3f=fresnelSchlickGGXVec3(cosTheta2,R1,vec3f(1.));var phi23: vec3f=vec3f(0.0);if (baseIOR[0]<iridescenceIOR) {phi23[0]=PI;}
|
|
212
|
-
if (baseIOR[1]<iridescenceIOR) {phi23[1]=PI;}
|
|
213
|
-
if (baseIOR[2]<iridescenceIOR) {phi23[2]=PI;}
|
|
214
|
-
var opd: f32=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;var phi: vec3f=vec3f(phi21)+phi23;var R123: vec3f=clamp(R12*R23,vec3f(1e-5),vec3f(0.9999));var r123: vec3f=sqrt(R123);var Rs: vec3f=(T121*T121)*R23/(vec3f(1.0)-R123);var C0: vec3f=R12+Rs;I=C0;var Cm: vec3f=Rs-T121;for (var m: i32=1; m<=2; m++)
|
|
215
|
-
{Cm*=r123;var Sm: vec3f=2.0*evalSensitivity(f32(m)*opd,f32(m)*phi);I+=Cm*Sm;}
|
|
216
|
-
return max(I,vec3f(0.0));}
|
|
217
|
-
#endif
|
|
218
|
-
fn normalDistributionFunction_TrowbridgeReitzGGX(NdotH: f32,alphaG: f32)->f32
|
|
219
|
-
{var a2: f32=alphaG*alphaG;var d: f32=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
|
|
220
|
-
#ifdef SHEEN
|
|
221
|
-
fn normalDistributionFunction_CharlieSheen(NdotH: f32,alphaG: f32)->f32
|
|
222
|
-
{var invR: f32=1./alphaG;var cos2h: f32=NdotH*NdotH;var sin2h: f32=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
|
|
223
|
-
#endif
|
|
224
|
-
#ifdef ANISOTROPIC
|
|
225
|
-
fn normalDistributionFunction_BurleyGGX_Anisotropic(NdotH: f32,TdotH: f32,BdotH: f32,alphaTB: vec2f)->f32 {var a2: f32=alphaTB.x*alphaTB.y;var v: vec3f= vec3f(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);var v2: f32=dot(v,v);var w2: f32=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
|
|
226
|
-
#endif
|
|
227
|
-
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
228
|
-
fn smithVisibility_GGXCorrelated(NdotL: f32,NdotV: f32,alphaG: f32)->f32 {
|
|
229
|
-
#ifdef MOBILE
|
|
230
|
-
var GGXV: f32=NdotL*(NdotV*(1.0-alphaG)+alphaG);var GGXL: f32=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
|
|
231
|
-
#else
|
|
232
|
-
var a2: f32=alphaG*alphaG;var GGXV: f32=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);var GGXL: f32=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
|
|
233
|
-
#endif
|
|
234
|
-
}
|
|
235
|
-
#else
|
|
236
|
-
fn smithVisibilityG1_TrowbridgeReitzGGXFast(dot: f32,alphaG: f32)->f32
|
|
237
|
-
{
|
|
238
|
-
#ifdef MOBILE
|
|
239
|
-
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
|
|
240
|
-
#else
|
|
241
|
-
var alphaSquared: f32=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
|
|
242
|
-
#endif
|
|
243
|
-
}
|
|
244
|
-
fn smithVisibility_TrowbridgeReitzGGXFast(NdotL: f32,NdotV: f32,alphaG: f32)->f32
|
|
245
|
-
{var visibility: f32=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
|
|
246
|
-
#endif
|
|
247
|
-
#ifdef ANISOTROPIC
|
|
248
|
-
fn smithVisibility_GGXCorrelated_Anisotropic(NdotL: f32,NdotV: f32,TdotV: f32,BdotV: f32,TdotL: f32,BdotL: f32,alphaTB: vec2f)->f32 {var lambdaV: f32=NdotL*length( vec3f(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));var lambdaL: f32=NdotV*length( vec3f(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));var v: f32=0.5/(lambdaV+lambdaL);return v;}
|
|
249
|
-
#endif
|
|
250
|
-
#ifdef CLEARCOAT
|
|
251
|
-
fn visibility_Kelemen(VdotH: f32)->f32 {return 0.25/(VdotH*VdotH); }
|
|
252
|
-
#endif
|
|
253
|
-
#ifdef SHEEN
|
|
254
|
-
fn visibility_Ashikhmin(NdotL: f32,NdotV: f32)->f32
|
|
255
|
-
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
|
|
256
|
-
/* NOT USED
|
|
257
|
-
#ifdef SHEEN_SOFTER
|
|
258
|
-
fn l(x: f32,alphaG: f32)->f32
|
|
259
|
-
{var oneMinusAlphaSq: f32=(1.0-alphaG)*(1.0-alphaG);var a: f32=mix(21.5473,25.3245,oneMinusAlphaSq);var b: f32=mix(3.82987,3.32435,oneMinusAlphaSq);var c: f32=mix(0.19823,0.16801,oneMinusAlphaSq);var d: f32=mix(-1.97760,-1.27393,oneMinusAlphaSq);var e: f32=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
|
|
260
|
-
fn lambdaSheen(cosTheta: f32,alphaG: f32)->f32
|
|
261
|
-
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
|
|
262
|
-
fn visibility_CharlieSheen(NdotL: f32,NdotV: f32,alphaG: f32)->f32
|
|
263
|
-
{var G: f32=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
|
|
264
|
-
#endif
|
|
265
|
-
*/
|
|
266
|
-
#endif
|
|
267
|
-
const constant1_FON: f32=0.5f-2.0f/(3.0f*PI);const constant2_FON: f32=2.0f/3.0f-28.0f/(15.0f*PI);fn E_FON_approx(mu: f32,roughness: f32)->f32
|
|
268
|
-
{var sigma: f32=roughness;
|
|
269
|
-
var mucomp: f32=1.0f-mu;var mucomp2: f32=mucomp*mucomp;const Gcoeffs: mat2x2f=mat2x2f(0.0571085289f,-0.332181442f,
|
|
270
|
-
0.491881867f,0.0714429953f);var GoverPi: f32=dot(Gcoeffs*vec2f(mucomp,mucomp2),vec2f(1.0f,mucomp2));return (1.0f+sigma*GoverPi)/(1.0f+constant1_FON*sigma);}
|
|
271
|
-
fn diffuseBRDF_EON(albedo: vec3f,roughness: f32,NdotL: f32,NdotV: f32,LdotV: f32)->vec3f
|
|
272
|
-
{var rho: vec3f=albedo;var sigma: f32=roughness;
|
|
273
|
-
var mu_i: f32=NdotL;
|
|
274
|
-
var mu_o: f32=NdotV;
|
|
275
|
-
var s: f32=LdotV-mu_i*mu_o;
|
|
276
|
-
var sovertF: f32=select(s,s/max(mu_i,mu_o),s>0.0f);
|
|
277
|
-
var AF: f32=1.0f/(1.0f+constant1_FON*sigma);
|
|
278
|
-
var f_ss: vec3f=(rho*RECIPROCAL_PI)*AF*(1.0f+sigma*sovertF);
|
|
279
|
-
var EFo: f32=E_FON_approx(mu_o,sigma);
|
|
280
|
-
var EFi: f32=E_FON_approx(mu_i,sigma);
|
|
281
|
-
var avgEF: f32=AF*(1.0f+constant2_FON*sigma);
|
|
282
|
-
var rho_ms: vec3f=(rho*rho)*avgEF/(vec3f(1.0f)-rho*(1.0f-avgEF));const eps: f32=1.0e-7f;var f_ms: vec3f=(rho_ms*RECIPROCAL_PI)*max(eps,1.0f-EFo)
|
|
283
|
-
* max(eps,1.0f-EFi)
|
|
284
|
-
/ max(eps,1.0f-avgEF);return (f_ss+f_ms);}
|
|
285
|
-
fn diffuseBRDF_Burley(NdotL: f32,NdotV: f32,VdotH: f32,roughness: f32)->f32 {var diffuseFresnelNV: f32=pow5(saturateEps(1.0-NdotL));var diffuseFresnelNL: f32=pow5(saturateEps(1.0-NdotV));var diffuseFresnel90: f32=0.5+2.0*VdotH*VdotH*roughness;var fresnel: f32 =
|
|
286
|
-
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
|
|
287
|
-
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
|
|
288
|
-
#ifdef SS_TRANSLUCENCY
|
|
289
|
-
fn transmittanceBRDF_Burley(tintColor: vec3f,diffusionDistance: vec3f,thickness: f32)->vec3f {var S: vec3f=1./maxEpsVec3(diffusionDistance);var temp: vec3f=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
|
|
290
|
-
fn computeWrappedDiffuseNdotL(NdotL: f32,w: f32)->f32 {var t: f32=1.0+w;var invt2: f32=1.0/(t*t);return saturate((NdotL+w)*invt2);}
|
|
291
|
-
#endif
|
|
292
|
-
#endif
|
|
293
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["pbrBRDFFunctionsWGSL",0,{name:r,shader:i}])},57568,21550,11,58890,92928,67125,e=>{"use strict";var t=e.i(47150);let r="bonesDeclaration",i=`#if NUM_BONE_INFLUENCERS>0
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93765,99043,82826,25797,94882,80820,e=>{"use strict";var t=e.i(25044);let r="bonesDeclaration",i=`#if NUM_BONE_INFLUENCERS>0
|
|
294
2
|
#ifndef USE_VERTEX_PULLING
|
|
295
3
|
attribute matricesIndices : vec4f;attribute matricesWeights : vec4f;
|
|
296
4
|
#if NUM_BONE_INFLUENCERS>4
|
|
@@ -313,7 +21,7 @@ let textureWidth=i32(uniforms.boneTextureInfo.x);let y=offset/textureWidth;let x
|
|
|
313
21
|
#endif
|
|
314
22
|
#endif
|
|
315
23
|
#endif
|
|
316
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["bonesDeclarationWGSL",0,{name:r,shader:i}],
|
|
24
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["bonesDeclarationWGSL",0,{name:r,shader:i}],93765);let n="bakedVertexAnimationDeclaration",a=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
317
25
|
uniform bakedVertexAnimationTime: f32;uniform bakedVertexAnimationSettings: vec4<f32>;var bakedVertexAnimationTexture : texture_2d<f32>;
|
|
318
26
|
#ifdef INSTANCES
|
|
319
27
|
attribute bakedVertexAnimationSettingsInstanced : vec4<f32>;
|
|
@@ -321,7 +29,7 @@ attribute bakedVertexAnimationSettingsInstanced : vec4<f32>;
|
|
|
321
29
|
fn readMatrixFromRawSamplerVAT(smp : texture_2d<f32>,index : f32,frame : f32)->mat4x4<f32>
|
|
322
30
|
{let offset=i32(index)*4;let frameUV=i32(frame);let m0=textureLoad(smp,vec2<i32>(offset+0,frameUV),0);let m1=textureLoad(smp,vec2<i32>(offset+1,frameUV),0);let m2=textureLoad(smp,vec2<i32>(offset+2,frameUV),0);let m3=textureLoad(smp,vec2<i32>(offset+3,frameUV),0);return mat4x4<f32>(m0,m1,m2,m3);}
|
|
323
31
|
#endif
|
|
324
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["bakedVertexAnimationDeclarationWGSL",0,{name:n,shader:a}],
|
|
32
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["bakedVertexAnimationDeclarationWGSL",0,{name:n,shader:a}],99043);let f="instancesDeclaration",o=`#ifdef INSTANCES
|
|
325
33
|
attribute world0 : vec4<f32>;attribute world1 : vec4<f32>;attribute world2 : vec4<f32>;attribute world3 : vec4<f32>;
|
|
326
34
|
#ifdef INSTANCESCOLOR
|
|
327
35
|
attribute instanceColor : vec4<f32>;
|
|
@@ -343,7 +51,7 @@ uniform world : mat4x4<f32>;
|
|
|
343
51
|
uniform previousWorld : mat4x4<f32>;
|
|
344
52
|
#endif
|
|
345
53
|
#endif
|
|
346
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["instancesDeclarationWGSL",0,{name:f,shader:o}],
|
|
54
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["instancesDeclarationWGSL",0,{name:f,shader:o}],82826);let s="instancesVertex",d=`#ifdef INSTANCES
|
|
347
55
|
var finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);
|
|
348
56
|
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
349
57
|
var finalPreviousWorld=mat4x4<f32>(
|
|
@@ -370,7 +78,7 @@ var finalWorld=mesh.world;
|
|
|
370
78
|
var finalPreviousWorld=uniforms.previousWorld;
|
|
371
79
|
#endif
|
|
372
80
|
#endif
|
|
373
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["instancesVertexWGSL",0,{name:s,shader:d}],
|
|
81
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["instancesVertexWGSL",0,{name:s,shader:d}],25797);let c="bonesVertex",l=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
374
82
|
#if NUM_BONE_INFLUENCERS>0
|
|
375
83
|
var influence : mat4x4<f32>;
|
|
376
84
|
#ifdef BONETEXTURE
|
|
@@ -423,7 +131,7 @@ influence=influence+uniforms.mBones[i32(vertexInputs.matricesIndicesExtra[3])]*v
|
|
|
423
131
|
finalWorld=finalWorld*influence;
|
|
424
132
|
#endif
|
|
425
133
|
#endif
|
|
426
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[c]||(t.ShaderStore.IncludesShadersStoreWGSL[c]=l),e.s(["bonesVertexWGSL",0,{name:c,shader:l}],
|
|
134
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[c]||(t.ShaderStore.IncludesShadersStoreWGSL[c]=l),e.s(["bonesVertexWGSL",0,{name:c,shader:l}],94882);let u="bakedVertexAnimation",v=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
427
135
|
{
|
|
428
136
|
#ifdef INSTANCES
|
|
429
137
|
let VATStartFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;let VATEndFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;let VATOffsetFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;let VATSpeed: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;
|
|
@@ -454,20 +162,166 @@ VATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTextur
|
|
|
454
162
|
#endif
|
|
455
163
|
finalWorld=finalWorld*VATInfluence;}
|
|
456
164
|
#endif
|
|
457
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[u]||(t.ShaderStore.IncludesShadersStoreWGSL[u]=v),e.s(["bakedVertexAnimationWGSL",0,{name:u,shader:v}],
|
|
458
|
-
|
|
459
|
-
#
|
|
460
|
-
#ifdef
|
|
461
|
-
|
|
165
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[u]||(t.ShaderStore.IncludesShadersStoreWGSL[u]=v),e.s(["bakedVertexAnimationWGSL",0,{name:u,shader:v}],80820)},67667,15345,e=>{"use strict";var t=e.i(25044);let r="clipPlaneVertexDeclaration",i=`#ifdef CLIPPLANE
|
|
166
|
+
uniform vClipPlane: vec4<f32>;varying fClipDistance: f32;
|
|
167
|
+
#endif
|
|
168
|
+
#ifdef CLIPPLANE2
|
|
169
|
+
uniform vClipPlane2: vec4<f32>;varying fClipDistance2: f32;
|
|
170
|
+
#endif
|
|
171
|
+
#ifdef CLIPPLANE3
|
|
172
|
+
uniform vClipPlane3: vec4<f32>;varying fClipDistance3: f32;
|
|
173
|
+
#endif
|
|
174
|
+
#ifdef CLIPPLANE4
|
|
175
|
+
uniform vClipPlane4: vec4<f32>;varying fClipDistance4: f32;
|
|
176
|
+
#endif
|
|
177
|
+
#ifdef CLIPPLANE5
|
|
178
|
+
uniform vClipPlane5: vec4<f32>;varying fClipDistance5: f32;
|
|
179
|
+
#endif
|
|
180
|
+
#ifdef CLIPPLANE6
|
|
181
|
+
uniform vClipPlane6: vec4<f32>;varying fClipDistance6: f32;
|
|
182
|
+
#endif
|
|
183
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["clipPlaneVertexDeclarationWGSL",0,{name:r,shader:i}],67667);let n="clipPlaneVertex",a=`#ifdef CLIPPLANE
|
|
184
|
+
vertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);
|
|
185
|
+
#endif
|
|
186
|
+
#ifdef CLIPPLANE2
|
|
187
|
+
vertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);
|
|
188
|
+
#endif
|
|
189
|
+
#ifdef CLIPPLANE3
|
|
190
|
+
vertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);
|
|
191
|
+
#endif
|
|
192
|
+
#ifdef CLIPPLANE4
|
|
193
|
+
vertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);
|
|
194
|
+
#endif
|
|
195
|
+
#ifdef CLIPPLANE5
|
|
196
|
+
vertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);
|
|
197
|
+
#endif
|
|
198
|
+
#ifdef CLIPPLANE6
|
|
199
|
+
vertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);
|
|
200
|
+
#endif
|
|
201
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["clipPlaneVertexWGSL",0,{name:n,shader:a}],15345)},3828,45320,e=>{"use strict";var t=e.i(25044);let r="fogVertexDeclaration",i=`#ifdef FOG
|
|
202
|
+
varying vFogDistance: vec3f;
|
|
203
|
+
#endif
|
|
204
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["fogVertexDeclarationWGSL",0,{name:r,shader:i}],3828);let n="fogVertex",a=`#ifdef FOG
|
|
205
|
+
#ifdef SCENE_UBO
|
|
206
|
+
vertexOutputs.vFogDistance=(scene.view*worldPos).xyz;
|
|
207
|
+
#else
|
|
208
|
+
vertexOutputs.vFogDistance=(uniforms.view*worldPos).xyz;
|
|
209
|
+
#endif
|
|
210
|
+
#endif
|
|
211
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["fogVertexWGSL",0,{name:n,shader:a}],45320)},96528,e=>{"use strict";var t=e.i(25044);let r="harmonicsFunctions",i=`#ifdef USESPHERICALFROMREFLECTIONMAP
|
|
212
|
+
#ifdef SPHERICAL_HARMONICS
|
|
213
|
+
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {return uniforms.vSphericalL00
|
|
214
|
+
+ uniforms.vSphericalL1_1*(normal.y)
|
|
215
|
+
+ uniforms.vSphericalL10*(normal.z)
|
|
216
|
+
+ uniforms.vSphericalL11*(normal.x)
|
|
217
|
+
+ uniforms.vSphericalL2_2*(normal.y*normal.x)
|
|
218
|
+
+ uniforms.vSphericalL2_1*(normal.y*normal.z)
|
|
219
|
+
+ uniforms.vSphericalL20*((3.0*normal.z*normal.z)-1.0)
|
|
220
|
+
+ uniforms.vSphericalL21*(normal.z*normal.x)
|
|
221
|
+
+ uniforms.vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
|
|
222
|
+
#else
|
|
223
|
+
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {var Nx: f32=normal.x;var Ny: f32=normal.y;var Nz: f32=normal.z;var C1: vec3f=uniforms.vSphericalZZ.rgb;var Cx: vec3f=uniforms.vSphericalX.rgb;var Cy: vec3f=uniforms.vSphericalY.rgb;var Cz: vec3f=uniforms.vSphericalZ.rgb;var Cxx_zz: vec3f=uniforms.vSphericalXX_ZZ.rgb;var Cyy_zz: vec3f=uniforms.vSphericalYY_ZZ.rgb;var Cxy: vec3f=uniforms.vSphericalXY.rgb;var Cyz: vec3f=uniforms.vSphericalYZ.rgb;var Czx: vec3f=uniforms.vSphericalZX.rgb;var a1: vec3f=Cyy_zz*Ny+Cy;var a2: vec3f=Cyz*Nz+a1;var b1: vec3f=Czx*Nz+Cx;var b2: vec3f=Cxy*Ny+b1;var b3: vec3f=Cxx_zz*Nx+b2;var t1: vec3f=Cz *Nz+C1;var t2: vec3f=a2 *Ny+t1;var t3: vec3f=b3 *Nx+t2;return t3;}
|
|
224
|
+
#endif
|
|
225
|
+
#endif
|
|
226
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["harmonicsFunctionsWGSL",0,{name:r,shader:i}])},65503,e=>{"use strict";var t=e.i(25044);let r="helperFunctions",i=`const PI: f32=3.1415926535897932384626433832795;const TWO_PI: f32=6.283185307179586;const HALF_PI: f32=1.5707963267948966;const RECIPROCAL_PI: f32=0.3183098861837907;const RECIPROCAL_PI2: f32=0.15915494309189535;const RECIPROCAL_PI4: f32=0.07957747154594767;const HALF_MIN: f32=5.96046448e-08;
|
|
227
|
+
const LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3f=vec3f(0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;fn square(x: f32)->f32 {return x*x;}
|
|
228
|
+
fn saturate(x: f32)->f32 {return clamp(x,0.0,1.0);}
|
|
229
|
+
fn saturateVec3(x: vec3f)->vec3f {return clamp(x,vec3f(),vec3f(1.0));}
|
|
230
|
+
fn saturateEps(x: f32)->f32 {return clamp(x,Epsilon,1.0);}
|
|
231
|
+
fn maxEps(x: f32)->f32 {return max(x,Epsilon);}
|
|
232
|
+
fn maxEpsVec3(x: vec3f)->vec3f {return max(x,vec3f(Epsilon));}
|
|
233
|
+
fn absEps(x: f32)->f32 {return abs(x)+Epsilon;}
|
|
234
|
+
fn transposeMat3(inMatrix: mat3x3f)->mat3x3f {let i0: vec3f=inMatrix[0];let i1: vec3f=inMatrix[1];let i2: vec3f=inMatrix[2];let outMatrix:mat3x3f=mat3x3f(
|
|
235
|
+
vec3(i0.x,i1.x,i2.x),
|
|
236
|
+
vec3(i0.y,i1.y,i2.y),
|
|
237
|
+
vec3(i0.z,i1.z,i2.z)
|
|
238
|
+
);return outMatrix;}
|
|
239
|
+
fn inverseMat3(inMatrix: mat3x3f)->mat3x3f {let a00: f32=inMatrix[0][0];let a01: f32=inMatrix[0][1];let a02: f32=inMatrix[0][2];let a10: f32=inMatrix[1][0];let a11: f32=inMatrix[1][1];let a12: f32=inMatrix[1][2];let a20: f32=inMatrix[2][0];let a21: f32=inMatrix[2][1];let a22: f32=inMatrix[2][2];let b01: f32=a22*a11-a12*a21;let b11: f32=-a22*a10+a12*a20;let b21: f32=a21*a10-a11*a20;let det: f32=a00*b01+a01*b11+a02*b21;return mat3x3f(b01/det,(-a22*a01+a02*a21)/det,(a12*a01-a02*a11)/det,
|
|
240
|
+
b11/det,(a22*a00-a02*a20)/det,(-a12*a00+a02*a10)/det,
|
|
241
|
+
b21/det,(-a21*a00+a01*a20)/det,(a11*a00-a01*a10)/det);}
|
|
242
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
243
|
+
fn toLinearSpaceExact(color: vec3f)->vec3f
|
|
244
|
+
{let nearZeroSection: vec3f=0.0773993808*color;let remainingSection: vec3f=pow(0.947867299*(color+vec3f(0.055)),vec3f(2.4));return select(remainingSection,nearZeroSection,color<=vec3f(0.04045));}
|
|
245
|
+
fn toGammaSpaceExact(color: vec3f)->vec3f
|
|
246
|
+
{let nearZeroSection: vec3f=12.92*color;let remainingSection: vec3f=1.055*pow(color,vec3f(0.41666))-vec3f(0.055);return select(remainingSection,nearZeroSection,color<=vec3f(0.0031308));}
|
|
247
|
+
#endif
|
|
248
|
+
fn toLinearSpace(color: f32)->f32
|
|
249
|
+
{
|
|
250
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
251
|
+
var nearZeroSection=0.0773993808*color;var remainingSection=pow(0.947867299*(color+0.055),2.4);return select(remainingSection,nearZeroSection,color<=0.04045);
|
|
252
|
+
#else
|
|
253
|
+
return pow(color,LinearEncodePowerApprox);
|
|
254
|
+
#endif
|
|
255
|
+
}
|
|
256
|
+
fn toLinearSpaceVec3(color: vec3f)->vec3f
|
|
257
|
+
{
|
|
258
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
259
|
+
return toLinearSpaceExact(color);
|
|
260
|
+
#else
|
|
261
|
+
return pow(color,vec3f(LinearEncodePowerApprox));
|
|
262
|
+
#endif
|
|
263
|
+
}
|
|
264
|
+
fn toLinearSpaceVec4(color: vec4<f32>)->vec4<f32>
|
|
265
|
+
{
|
|
266
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
267
|
+
return vec4f(toLinearSpaceExact(color.rgb),color.a);
|
|
268
|
+
#else
|
|
269
|
+
return vec4f(pow(color.rgb,vec3f(LinearEncodePowerApprox)),color.a);
|
|
270
|
+
#endif
|
|
271
|
+
}
|
|
272
|
+
fn toGammaSpace(color: vec4<f32>)->vec4<f32>
|
|
273
|
+
{
|
|
274
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
275
|
+
return vec4<f32>(toGammaSpaceExact(color.rgb),color.a);
|
|
276
|
+
#else
|
|
277
|
+
return vec4<f32>(pow(color.rgb,vec3f(GammaEncodePowerApprox)),color.a);
|
|
278
|
+
#endif
|
|
279
|
+
}
|
|
280
|
+
fn toGammaSpaceVec3(color: vec3f)->vec3f
|
|
281
|
+
{
|
|
282
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
283
|
+
return toGammaSpaceExact(color);
|
|
462
284
|
#else
|
|
463
|
-
|
|
285
|
+
return pow(color,vec3f(GammaEncodePowerApprox));
|
|
464
286
|
#endif
|
|
287
|
+
}
|
|
288
|
+
fn squareVec3(value: vec3f)->vec3f
|
|
289
|
+
{return value*value;}
|
|
290
|
+
fn pow5(value: f32)->f32 {let sq: f32=value*value;return sq*sq*value;}
|
|
291
|
+
fn double_refract(I: vec3f,N: vec3f,eta: f32)->vec3f {let Tfront: vec3f=refract(I,N,1.0/eta);let Nback: vec3f=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
|
|
292
|
+
fn getLuminanceUnclamped(color: vec3f)->f32
|
|
293
|
+
{return dot(color,LuminanceEncodeApprox);}
|
|
294
|
+
fn getLuminance(color: vec3f)->f32
|
|
295
|
+
{return saturate(getLuminanceUnclamped(color));}
|
|
296
|
+
fn getRand(seed: vec2<f32>)->f32 {return fract(sin(dot(seed.xy ,vec2<f32>(12.9898,78.233)))*43758.5453);}
|
|
297
|
+
fn dither(seed: vec2<f32>,varianceAmount: f32)->f32 {let rand: f32=getRand(seed);let normVariance: f32=varianceAmount/255.0;let dither: f32=mix(-normVariance,normVariance,rand);return dither;}
|
|
298
|
+
const rgbdMaxRange: f32=255.0;fn toRGBD(color: vec3f)->vec4<f32> {let maxRGB: f32=max(max(color.r,max(color.g,color.b)),Epsilon);var D: f32 =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);var rgb: vec3f =color.rgb*D;rgb=toGammaSpaceVec3(rgb);return vec4<f32>(saturateVec3(rgb),D);}
|
|
299
|
+
fn fromRGBD(rgbd: vec4<f32>)->vec3f {let rgb=toLinearSpaceVec3(rgbd.rgb);return rgb/rgbd.a;}
|
|
300
|
+
fn parallaxCorrectNormal(vertexPos: vec3f,origVec: vec3f,cubeSize: vec3f,cubePos: vec3f)->vec3f {let invOrigVec: vec3f=vec3f(1.)/origVec;let halfSize: vec3f=cubeSize*0.5;let intersecAtMaxPlane: vec3f=(cubePos+halfSize-vertexPos)*invOrigVec;let intersecAtMinPlane: vec3f=(cubePos-halfSize-vertexPos)*invOrigVec;let largestIntersec: vec3f=max(intersecAtMaxPlane,intersecAtMinPlane);let distance: f32=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);let intersectPositionWS: vec3f=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
|
|
301
|
+
fn equirectangularToCubemapDirection(uv : vec2f)->vec3f {var longitude : f32=uv.x*TWO_PI-PI;var latitude : f32=HALF_PI-uv.y*PI;var direction : vec3f;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
|
|
302
|
+
fn sqrtClamped(value: f32)->f32 {return sqrt(max(value,0.));}
|
|
303
|
+
fn avg(value: vec3f)->f32 {return dot(value,vec3f(0.333333333));}
|
|
304
|
+
fn singleScatterToMultiScatterAlbedo(rho_ss: vec3f)->vec3f {let s: vec3f=sqrt(max(vec3f(1.0)-rho_ss,vec3f(0.0)));return (vec3f(1.0)-s)*(vec3f(1.0)-vec3f(0.139)*s)/(vec3f(1.0)+vec3f(1.17)*s);}
|
|
305
|
+
fn multiScatterToSingleScatterAlbedo(rho_ms: vec3f)->vec3f {let s: vec3f=4.09712f+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return 1.0f-s*s;}
|
|
306
|
+
fn multiScatterToSingleScatterAlbedoWithAniso(rho_ms: vec3f,aniso: f32)->vec3f {let s: vec3f=4.09712+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return (vec3f(1.0f)-s*s)/maxEpsVec3(vec3f(1.0f)-vec3f(aniso)*s*s);}
|
|
307
|
+
fn min3(v: vec3f)->f32 {return min(v.x,min(v.y,v.z));}
|
|
308
|
+
fn max3(v: vec3f)->f32 {return max(v.x,max(v.y,v.z));}
|
|
309
|
+
fn uint2float(i: u32)->f32 {return bitcast<f32>(0x3F800000u | (i>>9u))-1.0;}
|
|
310
|
+
fn plasticSequence(rstate: u32)->vec2f {return vec2f(uint2float(rstate*3242174889u),
|
|
311
|
+
uint2float(rstate*2447445414u));}
|
|
312
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["helperFunctionsWGSL",0,{name:r,shader:i}])},69288,e=>{"use strict";var t=e.i(25044);let r="logDepthDeclaration",i=`#ifdef LOGARITHMICDEPTH
|
|
313
|
+
uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
|
|
465
314
|
#endif
|
|
466
|
-
|
|
467
|
-
vertexOutputs.
|
|
315
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["logDepthDeclarationWGSL",0,{name:r,shader:i}])},78507,e=>{"use strict";var t=e.i(25044);let r="logDepthVertex",i=`#ifdef LOGARITHMICDEPTH
|
|
316
|
+
vertexOutputs.vFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vertexOutputs.vFragmentDepth))*uniforms.logarithmicDepthConstant;
|
|
468
317
|
#endif
|
|
318
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["logDepthVertexWGSL",0,{name:r,shader:i}])},48585,e=>{"use strict";var t=e.i(25044);let r="mainUVVaryingDeclaration",i=`#ifdef MAINUV{X}
|
|
319
|
+
varying vMainUV{X}: vec2f;
|
|
469
320
|
#endif
|
|
470
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["
|
|
321
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["mainUVVaryingDeclarationWGSL",0,{name:r,shader:i}])},95057,e=>{"use strict";var t=e.i(25044);let r="meshUboDeclaration",i=`struct Mesh {world : mat4x4<f32>,
|
|
322
|
+
visibility : f32,};var<uniform> mesh : Mesh;
|
|
323
|
+
#define WORLD_UBO
|
|
324
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["meshUboDeclarationWGSL",0,{name:r,shader:i}])},99145,16068,17840,81683,e=>{"use strict";var t=e.i(25044);let r="morphTargetsVertexGlobalDeclaration",i=`#ifdef MORPHTARGETS
|
|
471
325
|
uniform morphTargetInfluences : array<f32,NUM_MORPH_INFLUENCERS>;
|
|
472
326
|
#ifdef MORPHTARGETS_TEXTURE
|
|
473
327
|
uniform morphTargetTextureIndices : array<f32,NUM_MORPH_INFLUENCERS>;uniform morphTargetTextureInfo : vec3<f32>;var morphTargets : texture_2d_array<f32>;fn readVector3FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec3<f32>
|
|
@@ -479,7 +333,7 @@ let textureWidth: i32=i32(uniforms.morphTargetTextureInfo.y);
|
|
|
479
333
|
let y: i32=i32(vertexIndex)/textureWidth;let x: i32=i32(vertexIndex) % textureWidth;return textureLoad(morphTargets,vec2i(x,y),i32(uniforms.morphTargetTextureIndices[targetIndex]),0);}
|
|
480
334
|
#endif
|
|
481
335
|
#endif
|
|
482
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["morphTargetsVertexGlobalDeclarationWGSL",0,{name:r,shader:i}],
|
|
336
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["morphTargetsVertexGlobalDeclarationWGSL",0,{name:r,shader:i}],99145);let n="morphTargetsVertexDeclaration",a=`#ifdef MORPHTARGETS
|
|
483
337
|
#ifndef MORPHTARGETS_TEXTURE
|
|
484
338
|
#ifdef MORPHTARGETS_POSITION
|
|
485
339
|
attribute position{X} : vec3<f32>;
|
|
@@ -503,12 +357,12 @@ attribute color{X} : vec4<f32>;
|
|
|
503
357
|
uniform morphTargetCount: f32;
|
|
504
358
|
#endif
|
|
505
359
|
#endif
|
|
506
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["morphTargetsVertexDeclarationWGSL",0,{name:n,shader:a}],
|
|
360
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["morphTargetsVertexDeclarationWGSL",0,{name:n,shader:a}],16068);let f="morphTargetsVertexGlobal",o=`#ifdef MORPHTARGETS
|
|
507
361
|
#ifdef MORPHTARGETS_TEXTURE
|
|
508
362
|
var vertexID : f32;
|
|
509
363
|
#endif
|
|
510
364
|
#endif
|
|
511
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["morphTargetsVertexGlobalWGSL",0,{name:f,shader:o}],
|
|
365
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["morphTargetsVertexGlobalWGSL",0,{name:f,shader:o}],17840);let s="morphTargetsVertex",d=`#ifdef MORPHTARGETS
|
|
512
366
|
#ifdef MORPHTARGETS_TEXTURE
|
|
513
367
|
#if {X}==0
|
|
514
368
|
for (var i=0; i<NUM_MORPH_INFLUENCERS; i=i+1) {if (f32(i)>=uniforms.morphTargetCount) {break;}
|
|
@@ -618,59 +472,196 @@ colorUpdated=colorUpdated+(vertexInputs.color{X}-vertexInputs.color)*uniforms.mo
|
|
|
618
472
|
#endif
|
|
619
473
|
#endif
|
|
620
474
|
#endif
|
|
621
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["morphTargetsVertexWGSL",0,{name:s,shader:d}],
|
|
622
|
-
|
|
475
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["morphTargetsVertexWGSL",0,{name:s,shader:d}],81683)},69337,e=>{"use strict";var t=e.i(25044);e.i(38267),e.i(95057);let r="openpbrUboDeclaration",i=`uniform vTangentSpaceParams: vec2f;uniform vLightingIntensity: vec4f;uniform pointSize: f32;uniform vDebugMode: vec2f;uniform renderTargetSize: vec2f;uniform cameraInfo: vec4f;uniform vTextureRepetitionHexTilingParams: vec4f;uniform backgroundRefractionMatrix: mat4x4f;uniform vBackgroundRefractionInfos: vec3f;uniform vReflectionInfos: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vReflectionFilteringInfo: vec2f;uniform vReflectionDominantDirection: vec3f;uniform vReflectionColor: vec3f;uniform vSphericalL00: vec3f;uniform vSphericalL1_1: vec3f;uniform vSphericalL10: vec3f;uniform vSphericalL11: vec3f;uniform vSphericalL2_2: vec3f;uniform vSphericalL2_1: vec3f;uniform vSphericalL20: vec3f;uniform vSphericalL21: vec3f;uniform vSphericalL22: vec3f;uniform vSphericalX: vec3f;uniform vSphericalY: vec3f;uniform vSphericalZ: vec3f;uniform vSphericalXX_ZZ: vec3f;uniform vSphericalYY_ZZ: vec3f;uniform vSphericalZZ: vec3f;uniform vSphericalXY: vec3f;uniform vSphericalYZ: vec3f;uniform vSphericalZX: vec3f;uniform vBaseWeight: f32;uniform vBaseColor: vec4f;uniform vBaseDiffuseRoughness: f32;uniform vReflectanceInfo: vec4f;uniform vSpecularColor: vec4f;uniform vSpecularAnisotropy: vec3f;uniform vTransmissionWeight : f32;uniform vTransmissionColor : vec3f;uniform vTransmissionDepth : f32;uniform vTransmissionScatter : vec3f;uniform vTransmissionScatterAnisotropy : f32;uniform vTransmissionDispersionScale : f32;uniform vTransmissionDispersionAbbeNumber : f32;uniform vSubsurfaceWeight: f32;uniform vSubsurfaceColor: vec3f;uniform vSubsurfaceRadius: f32;uniform vSubsurfaceRadiusScale: vec3f;uniform vSubsurfaceScatterAnisotropy: f32;uniform vCoatWeight: f32;uniform vCoatColor: vec3f;uniform vCoatRoughness: f32;uniform vCoatRoughnessAnisotropy: f32;uniform vCoatIor: f32;uniform vCoatDarkening : f32;uniform vFuzzWeight: f32;uniform vFuzzColor: vec3f;uniform vFuzzRoughness: f32;uniform vGeometryThinWalled: f32;uniform vGeometryCoatTangent: vec2f;uniform vGeometryThickness: f32;uniform vEmissionColor: vec3f;uniform vThinFilmWeight: f32;uniform vThinFilmThickness: vec2f;uniform vThinFilmIor: f32;uniform vBaseWeightInfos: vec2f;uniform baseWeightMatrix: mat4x4f;uniform vBaseColorInfos: vec2f;uniform baseColorMatrix: mat4x4f;uniform vBaseDiffuseRoughnessInfos: vec2f;uniform baseDiffuseRoughnessMatrix: mat4x4f;uniform vBaseMetalnessInfos: vec2f;uniform baseMetalnessMatrix: mat4x4f;uniform vSpecularWeightInfos: vec2f;uniform specularWeightMatrix: mat4x4f;uniform vSpecularColorInfos: vec2f;uniform specularColorMatrix: mat4x4f;uniform vSpecularRoughnessInfos: vec2f;uniform specularRoughnessMatrix: mat4x4f;uniform vSpecularRoughnessAnisotropyInfos: vec2f;uniform specularRoughnessAnisotropyMatrix: mat4x4f;uniform vTransmissionWeightInfos : vec2f;uniform transmissionWeightMatrix : mat4x4f;uniform vTransmissionColorInfos : vec2f;uniform transmissionColorMatrix : mat4x4f;uniform vTransmissionDepthInfos : vec2f;uniform transmissionDepthMatrix : mat4x4f;uniform vTransmissionScatterInfos : vec2f;uniform transmissionScatterMatrix : mat4x4f;uniform vTransmissionDispersionScaleInfos : vec2f;uniform transmissionDispersionScaleMatrix : mat4x4f;uniform vSubsurfaceWeightInfos: vec2f;uniform subsurfaceWeightMatrix: mat4x4f;uniform vSubsurfaceColorInfos: vec2f;uniform subsurfaceColorMatrix: mat4x4f;uniform vSubsurfaceRadiusScaleInfos: vec2f;uniform subsurfaceRadiusScaleMatrix: mat4x4f;uniform vCoatWeightInfos: vec2f;uniform coatWeightMatrix: mat4x4f;uniform vCoatColorInfos: vec2f;uniform coatColorMatrix: mat4x4f;uniform vCoatRoughnessInfos: vec2f;uniform coatRoughnessMatrix: mat4x4f;uniform vCoatRoughnessAnisotropyInfos: vec2f;uniform coatRoughnessAnisotropyMatrix: mat4x4f;uniform vCoatDarkeningInfos : vec2f;uniform coatDarkeningMatrix : mat4x4f;uniform vFuzzWeightInfos: vec2f;uniform fuzzWeightMatrix: mat4x4f;uniform vFuzzColorInfos: vec2f;uniform fuzzColorMatrix: mat4x4f;uniform vFuzzRoughnessInfos: vec2f;uniform fuzzRoughnessMatrix: mat4x4f;uniform vGeometryNormalInfos: vec2f;uniform geometryNormalMatrix: mat4x4f;uniform vGeometryTangentInfos: vec2f;uniform geometryTangentMatrix: mat4x4f;uniform vGeometryCoatNormalInfos: vec2f;uniform geometryCoatNormalMatrix: mat4x4f;uniform vGeometryCoatTangentInfos: vec2f;uniform geometryCoatTangentMatrix: mat4x4f;uniform vGeometryOpacityInfos: vec2f;uniform geometryOpacityMatrix: mat4x4f;uniform vGeometryThicknessInfos: vec2f;uniform geometryThicknessMatrix: mat4x4f;uniform vEmissionColorInfos: vec2f;uniform emissionColorMatrix: mat4x4f;uniform vThinFilmWeightInfos: vec2f;uniform thinFilmWeightMatrix: mat4x4f;uniform vThinFilmThicknessInfos: vec2f;uniform thinFilmThicknessMatrix: mat4x4f;uniform vAmbientOcclusionInfos: vec2f;uniform ambientOcclusionMatrix: mat4x4f;
|
|
476
|
+
#define ADDITIONAL_UBO_DECLARATION
|
|
477
|
+
#include<sceneUboDeclaration>
|
|
478
|
+
#include<meshUboDeclaration>
|
|
479
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["openpbrUboDeclarationWGSL",0,{name:r,shader:i}])},86165,e=>{"use strict";var t=e.i(25044);let r="pbrBRDFFunctions",i=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
|
|
480
|
+
#define BRDF_DIFFUSE_MODEL_EON 0
|
|
481
|
+
#define BRDF_DIFFUSE_MODEL_BURLEY 1
|
|
482
|
+
#define BRDF_DIFFUSE_MODEL_LAMBERT 2
|
|
483
|
+
#define BRDF_DIFFUSE_MODEL_LEGACY 3
|
|
484
|
+
#define DIELECTRIC_SPECULAR_MODEL_GLTF 0
|
|
485
|
+
#define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
|
|
486
|
+
#define CONDUCTOR_SPECULAR_MODEL_GLTF 0
|
|
487
|
+
#define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
|
|
488
|
+
#if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
|
|
489
|
+
#ifdef MS_BRDF_ENERGY_CONSERVATION
|
|
490
|
+
fn getEnergyConservationFactor(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
|
|
623
491
|
#endif
|
|
624
|
-
#
|
|
625
|
-
|
|
492
|
+
#if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
|
|
493
|
+
const F82_COS_THETA_MAX: f32 =0.142857143;const F82_ONE_MINUS_CTM_POW5: f32 =0.462664366;const F82_ONE_MINUS_CTM_POW6: f32 =0.396569457;const F82_B_DENOMINATOR_RECIP: f32 =17.6512785;const BRDF_Z_SCALE: f32 =16.0;fn getF82Specular(NdotV: f32,F0: vec3f,edgeTint: vec3f,roughness: f32)->vec3f {let white_minus_F0: vec3f=vec3f(1.0f)-F0;let b_numerator: vec3f=(F0+white_minus_F0*F82_ONE_MINUS_CTM_POW5)*(vec3f(1.0)-edgeTint);let b: vec3f=b_numerator*F82_B_DENOMINATOR_RECIP;let cos_theta: f32=max(roughness,NdotV);let one_minus_cos_theta: f32=1.0-cos_theta;let offset_from_F0: vec3f=(white_minus_F0-b*cos_theta*one_minus_cos_theta)*pow(one_minus_cos_theta,5.0f);return clamp(F0+offset_from_F0,vec3f(0.0f),vec3f(1.0f));}
|
|
494
|
+
fn getF82B(F0: vec3f,edgeTint: vec3f)->vec3f {return (F0+(vec3f(1.0)-F0)*F82_ONE_MINUS_CTM_POW5)*(vec3f(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;}
|
|
495
|
+
fn getF82DirectionalAlbedo(F0: vec3f,F90: vec3f,b: vec3f,environmentBrdf: vec3f)->vec3f {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
|
|
496
|
+
fn getF82AverageFresnel(F0: vec3f,b: vec3f)->vec3f {return F0+(vec3f(1.0)-F0)/21.0-b/126.0;}
|
|
626
497
|
#endif
|
|
627
|
-
#ifdef
|
|
628
|
-
|
|
498
|
+
#ifdef FUZZENVIRONMENTBRDF
|
|
499
|
+
fn getFuzzBRDFLookup(NdotV: f32,perceptualRoughness: f32)->vec3f {let UV: vec2f=vec2f(perceptualRoughness,NdotV);var brdfLookup: vec4f=textureSample(environmentFuzzBrdfSampler,environmentFuzzBrdfSamplerSampler,UV);const RiRange: vec2f=vec2f(0.0f,0.75f);const ARange: vec2f=vec2f(0.005f,0.88f);const BRange: vec2f=vec2f(-0.18f,0.002f);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;}
|
|
629
500
|
#endif
|
|
630
|
-
#ifdef
|
|
631
|
-
|
|
501
|
+
#ifdef ENVIRONMENTBRDF
|
|
502
|
+
fn getBRDFLookup(NdotV: f32,perceptualRoughness: f32)->vec3f {var UV: vec2f= vec2f(NdotV,perceptualRoughness);var brdfLookup: vec4f= textureSample(environmentBrdfSampler,environmentBrdfSamplerSampler,UV);
|
|
503
|
+
#ifdef ENVIRONMENTBRDF_RGBD
|
|
504
|
+
brdfLookup=vec4f(fromRGBD(brdfLookup.rgba),brdfLookup.a);
|
|
632
505
|
#endif
|
|
633
|
-
|
|
634
|
-
|
|
506
|
+
return brdfLookup.rgb;}
|
|
507
|
+
fn getReflectanceFromBRDFWithEnvLookup(specularEnvironmentR0: vec3f,specularEnvironmentR90: vec3f,environmentBrdf: vec3f)->vec3f {
|
|
508
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
509
|
+
var reflectance: vec3f=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
|
|
510
|
+
#else
|
|
511
|
+
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
|
|
635
512
|
#endif
|
|
636
|
-
|
|
637
|
-
|
|
513
|
+
return reflectance;}
|
|
514
|
+
fn getReflectanceFromBRDFLookup(specularEnvironmentR0: vec3f,environmentBrdf: vec3f)->vec3f {
|
|
515
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
516
|
+
var reflectance: vec3f=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
|
|
517
|
+
#else
|
|
518
|
+
var reflectance: vec3f=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
|
|
638
519
|
#endif
|
|
639
|
-
|
|
640
|
-
vertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);
|
|
520
|
+
return reflectance;}
|
|
641
521
|
#endif
|
|
642
|
-
|
|
643
|
-
|
|
522
|
+
/* NOT USED
|
|
523
|
+
#if defined(SHEEN) && defined(SHEEN_SOFTER)
|
|
524
|
+
fn getBRDFLookupCharlieSheen(NdotV: f32,perceptualRoughness: f32)->f32
|
|
525
|
+
{var c: f32=1.0-NdotV;var c3: f32=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
|
|
644
526
|
#endif
|
|
645
|
-
|
|
646
|
-
|
|
527
|
+
*/
|
|
528
|
+
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
|
|
529
|
+
fn getReflectanceFromAnalyticalBRDFLookup_Jones(VdotN: f32,reflectance0: vec3f,reflectance90: vec3f,smoothness: f32)->vec3f
|
|
530
|
+
{var weight: f32=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
|
|
647
531
|
#endif
|
|
648
|
-
#
|
|
649
|
-
|
|
532
|
+
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
|
|
533
|
+
/**
|
|
534
|
+
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
|
|
535
|
+
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
|
|
536
|
+
*/
|
|
537
|
+
fn getSheenReflectanceFromBRDFLookup(reflectance0: vec3f,environmentBrdf: vec3f)->vec3f {var sheenEnvironmentReflectance: vec3f=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
|
|
650
538
|
#endif
|
|
651
|
-
|
|
652
|
-
|
|
539
|
+
fn fresnelSchlickGGXVec3(VdotH: f32,reflectance0: vec3f,reflectance90: vec3f)->vec3f
|
|
540
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
541
|
+
fn fresnelSchlickGGX(VdotH: f32,reflectance0: f32,reflectance90: f32)->f32
|
|
542
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
543
|
+
#ifdef CLEARCOAT
|
|
544
|
+
fn getR0RemappedForClearCoat(f0: vec3f)->vec3f {
|
|
545
|
+
#ifdef CLEARCOAT_DEFAULTIOR
|
|
546
|
+
#ifdef MOBILE
|
|
547
|
+
return saturateVec3(f0*(f0*0.526868+0.529324)-0.0482256);
|
|
548
|
+
#else
|
|
549
|
+
return saturateVec3(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
|
|
653
550
|
#endif
|
|
654
|
-
#
|
|
655
|
-
|
|
551
|
+
#else
|
|
552
|
+
var s: vec3f=sqrt(f0);var t: vec3f=(uniforms.vClearCoatRefractionParams.z+uniforms.vClearCoatRefractionParams.w*s)/(uniforms.vClearCoatRefractionParams.w+uniforms.vClearCoatRefractionParams.z*s);return squareVec3(t);
|
|
656
553
|
#endif
|
|
657
|
-
|
|
658
|
-
varying vFogDistance: vec3f;
|
|
554
|
+
}
|
|
659
555
|
#endif
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
556
|
+
#ifdef IRIDESCENCE
|
|
557
|
+
const XYZ_TO_REC709: mat3x3f= mat3x3f(
|
|
558
|
+
3.2404542,-0.9692660, 0.0556434,
|
|
559
|
+
-1.5371385, 1.8760108,-0.2040259,
|
|
560
|
+
-0.4985314, 0.0415560, 1.0572252
|
|
561
|
+
);fn getIORTfromAirToSurfaceR0(f0: vec3f)->vec3f {var sqrtF0: vec3f=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
|
|
562
|
+
fn getR0fromIORsVec3(iorT: vec3f,iorI: f32)->vec3f {return squareVec3((iorT- vec3f(iorI))/(iorT+ vec3f(iorI)));}
|
|
563
|
+
fn getR0fromIORs(iorT: f32,iorI: f32)->f32 {return square((iorT-iorI)/(iorT+iorI));}
|
|
564
|
+
fn evalSensitivity(opd: f32,shift: vec3f)->vec3f {var phase: f32=2.0*PI*opd*1.0e-9;const val: vec3f= vec3f(5.4856e-13,4.4201e-13,5.2481e-13);const pos: vec3f= vec3f(1.6810e+06,1.7953e+06,2.2084e+06);const vr: vec3f= vec3f(4.3278e+09,9.3046e+09,6.6121e+09);var xyz: vec3f=val*sqrt(2.0*PI*vr)*cos(pos*phase+shift)*exp(-square(phase)*vr);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;var srgb: vec3f=XYZ_TO_REC709*xyz;return srgb;}
|
|
565
|
+
fn evalIridescence(outsideIOR: f32,eta2: f32,cosTheta1: f32,thinFilmThickness: f32,baseF0: vec3f)->vec3f {var I: vec3f= vec3f(1.0);var iridescenceIOR: f32=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));var sinTheta2Sq: f32=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));var cosTheta2Sq: f32=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
|
|
566
|
+
var cosTheta2: f32=sqrt(cosTheta2Sq);var R0: f32=getR0fromIORs(iridescenceIOR,outsideIOR);var R12: f32=fresnelSchlickGGX(cosTheta1,R0,1.);var R21: f32=R12;var T121: f32=1.0-R12;var phi12: f32=0.0;if (iridescenceIOR<outsideIOR) {phi12=PI;}
|
|
567
|
+
var phi21: f32=PI-phi12;var baseIOR: vec3f=getIORTfromAirToSurfaceR0(clamp(baseF0,vec3f(0.0),vec3f(0.9999)));
|
|
568
|
+
var R1: vec3f=getR0fromIORsVec3(baseIOR,iridescenceIOR);let maxR1: f32=max(R1.r,max(R1.g,R1.b));if (maxR1<1e-6) {return max(vec3f(R12),vec3f(0.0));}
|
|
569
|
+
var R23: vec3f=fresnelSchlickGGXVec3(cosTheta2,R1,vec3f(1.));var phi23: vec3f=vec3f(0.0);if (baseIOR[0]<iridescenceIOR) {phi23[0]=PI;}
|
|
570
|
+
if (baseIOR[1]<iridescenceIOR) {phi23[1]=PI;}
|
|
571
|
+
if (baseIOR[2]<iridescenceIOR) {phi23[2]=PI;}
|
|
572
|
+
var opd: f32=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;var phi: vec3f=vec3f(phi21)+phi23;var R123: vec3f=clamp(R12*R23,vec3f(1e-5),vec3f(0.9999));var r123: vec3f=sqrt(R123);var Rs: vec3f=(T121*T121)*R23/(vec3f(1.0)-R123);var C0: vec3f=R12+Rs;I=C0;var Cm: vec3f=Rs-T121;for (var m: i32=1; m<=2; m++)
|
|
573
|
+
{Cm*=r123;var Sm: vec3f=2.0*evalSensitivity(f32(m)*opd,f32(m)*phi);I+=Cm*Sm;}
|
|
574
|
+
return max(I,vec3f(0.0));}
|
|
575
|
+
#endif
|
|
576
|
+
fn normalDistributionFunction_TrowbridgeReitzGGX(NdotH: f32,alphaG: f32)->f32
|
|
577
|
+
{var a2: f32=alphaG*alphaG;var d: f32=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
|
|
578
|
+
#ifdef SHEEN
|
|
579
|
+
fn normalDistributionFunction_CharlieSheen(NdotH: f32,alphaG: f32)->f32
|
|
580
|
+
{var invR: f32=1./alphaG;var cos2h: f32=NdotH*NdotH;var sin2h: f32=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
|
|
581
|
+
#endif
|
|
582
|
+
#ifdef ANISOTROPIC
|
|
583
|
+
fn normalDistributionFunction_BurleyGGX_Anisotropic(NdotH: f32,TdotH: f32,BdotH: f32,alphaTB: vec2f)->f32 {var a2: f32=alphaTB.x*alphaTB.y;var v: vec3f= vec3f(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);var v2: f32=dot(v,v);var w2: f32=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
|
|
584
|
+
#endif
|
|
585
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
586
|
+
fn smithVisibility_GGXCorrelated(NdotL: f32,NdotV: f32,alphaG: f32)->f32 {
|
|
587
|
+
#ifdef MOBILE
|
|
588
|
+
var GGXV: f32=NdotL*(NdotV*(1.0-alphaG)+alphaG);var GGXL: f32=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
|
|
663
589
|
#else
|
|
664
|
-
|
|
590
|
+
var a2: f32=alphaG*alphaG;var GGXV: f32=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);var GGXL: f32=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
|
|
591
|
+
#endif
|
|
592
|
+
}
|
|
593
|
+
#else
|
|
594
|
+
fn smithVisibilityG1_TrowbridgeReitzGGXFast(dot: f32,alphaG: f32)->f32
|
|
595
|
+
{
|
|
596
|
+
#ifdef MOBILE
|
|
597
|
+
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
|
|
598
|
+
#else
|
|
599
|
+
var alphaSquared: f32=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
|
|
600
|
+
#endif
|
|
601
|
+
}
|
|
602
|
+
fn smithVisibility_TrowbridgeReitzGGXFast(NdotL: f32,NdotV: f32,alphaG: f32)->f32
|
|
603
|
+
{var visibility: f32=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
|
|
665
604
|
#endif
|
|
605
|
+
#ifdef ANISOTROPIC
|
|
606
|
+
fn smithVisibility_GGXCorrelated_Anisotropic(NdotL: f32,NdotV: f32,TdotV: f32,BdotV: f32,TdotL: f32,BdotL: f32,alphaTB: vec2f)->f32 {var lambdaV: f32=NdotL*length( vec3f(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));var lambdaL: f32=NdotV*length( vec3f(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));var v: f32=0.5/(lambdaV+lambdaL);return v;}
|
|
666
607
|
#endif
|
|
667
|
-
|
|
668
|
-
|
|
608
|
+
#ifdef CLEARCOAT
|
|
609
|
+
fn visibility_Kelemen(VdotH: f32)->f32 {return 0.25/(VdotH*VdotH); }
|
|
669
610
|
#endif
|
|
670
|
-
|
|
611
|
+
#ifdef SHEEN
|
|
612
|
+
fn visibility_Ashikhmin(NdotL: f32,NdotV: f32)->f32
|
|
613
|
+
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
|
|
614
|
+
/* NOT USED
|
|
615
|
+
#ifdef SHEEN_SOFTER
|
|
616
|
+
fn l(x: f32,alphaG: f32)->f32
|
|
617
|
+
{var oneMinusAlphaSq: f32=(1.0-alphaG)*(1.0-alphaG);var a: f32=mix(21.5473,25.3245,oneMinusAlphaSq);var b: f32=mix(3.82987,3.32435,oneMinusAlphaSq);var c: f32=mix(0.19823,0.16801,oneMinusAlphaSq);var d: f32=mix(-1.97760,-1.27393,oneMinusAlphaSq);var e: f32=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
|
|
618
|
+
fn lambdaSheen(cosTheta: f32,alphaG: f32)->f32
|
|
619
|
+
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
|
|
620
|
+
fn visibility_CharlieSheen(NdotL: f32,NdotV: f32,alphaG: f32)->f32
|
|
621
|
+
{var G: f32=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
|
|
622
|
+
#endif
|
|
623
|
+
*/
|
|
624
|
+
#endif
|
|
625
|
+
const constant1_FON: f32=0.5f-2.0f/(3.0f*PI);const constant2_FON: f32=2.0f/3.0f-28.0f/(15.0f*PI);fn E_FON_approx(mu: f32,roughness: f32)->f32
|
|
626
|
+
{var sigma: f32=roughness;
|
|
627
|
+
var mucomp: f32=1.0f-mu;var mucomp2: f32=mucomp*mucomp;const Gcoeffs: mat2x2f=mat2x2f(0.0571085289f,-0.332181442f,
|
|
628
|
+
0.491881867f,0.0714429953f);var GoverPi: f32=dot(Gcoeffs*vec2f(mucomp,mucomp2),vec2f(1.0f,mucomp2));return (1.0f+sigma*GoverPi)/(1.0f+constant1_FON*sigma);}
|
|
629
|
+
fn diffuseBRDF_EON(albedo: vec3f,roughness: f32,NdotL: f32,NdotV: f32,LdotV: f32)->vec3f
|
|
630
|
+
{var rho: vec3f=albedo;var sigma: f32=roughness;
|
|
631
|
+
var mu_i: f32=NdotL;
|
|
632
|
+
var mu_o: f32=NdotV;
|
|
633
|
+
var s: f32=LdotV-mu_i*mu_o;
|
|
634
|
+
var sovertF: f32=select(s,s/max(mu_i,mu_o),s>0.0f);
|
|
635
|
+
var AF: f32=1.0f/(1.0f+constant1_FON*sigma);
|
|
636
|
+
var f_ss: vec3f=(rho*RECIPROCAL_PI)*AF*(1.0f+sigma*sovertF);
|
|
637
|
+
var EFo: f32=E_FON_approx(mu_o,sigma);
|
|
638
|
+
var EFi: f32=E_FON_approx(mu_i,sigma);
|
|
639
|
+
var avgEF: f32=AF*(1.0f+constant2_FON*sigma);
|
|
640
|
+
var rho_ms: vec3f=(rho*rho)*avgEF/(vec3f(1.0f)-rho*(1.0f-avgEF));const eps: f32=1.0e-7f;var f_ms: vec3f=(rho_ms*RECIPROCAL_PI)*max(eps,1.0f-EFo)
|
|
641
|
+
* max(eps,1.0f-EFi)
|
|
642
|
+
/ max(eps,1.0f-avgEF);return (f_ss+f_ms);}
|
|
643
|
+
fn diffuseBRDF_Burley(NdotL: f32,NdotV: f32,VdotH: f32,roughness: f32)->f32 {var diffuseFresnelNV: f32=pow5(saturateEps(1.0-NdotL));var diffuseFresnelNL: f32=pow5(saturateEps(1.0-NdotV));var diffuseFresnel90: f32=0.5+2.0*VdotH*VdotH*roughness;var fresnel: f32 =
|
|
644
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
|
|
645
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
|
|
646
|
+
#ifdef SS_TRANSLUCENCY
|
|
647
|
+
fn transmittanceBRDF_Burley(tintColor: vec3f,diffusionDistance: vec3f,thickness: f32)->vec3f {var S: vec3f=1./maxEpsVec3(diffusionDistance);var temp: vec3f=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
|
|
648
|
+
fn computeWrappedDiffuseNdotL(NdotL: f32,w: f32)->f32 {var t: f32=1.0+w;var invt2: f32=1.0/(t*t);return saturate((NdotL+w)*invt2);}
|
|
649
|
+
#endif
|
|
650
|
+
#endif
|
|
651
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["pbrBRDFFunctionsWGSL",0,{name:r,shader:i}])},38267,e=>{"use strict";var t=e.i(25044);let r="sceneUboDeclaration",i=`struct Scene {viewProjection : mat4x4<f32>,
|
|
652
|
+
#ifdef MULTIVIEW
|
|
653
|
+
viewProjectionR : mat4x4<f32>,
|
|
654
|
+
#endif
|
|
655
|
+
view : mat4x4<f32>,
|
|
656
|
+
projection : mat4x4<f32>,
|
|
657
|
+
vEyePosition : vec4<f32>,
|
|
658
|
+
inverseProjection : mat4x4<f32>,};
|
|
659
|
+
#define SCENE_UBO
|
|
660
|
+
var<uniform> scene : Scene;
|
|
661
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["sceneUboDeclarationWGSL",0,{name:r,shader:i}])},27180,27066,85224,12203,65997,99887,54704,85749,14750,99967,e=>{"use strict";var t=e.i(25044);let r="uvAttributeDeclaration",i=`#if defined(UV{X}) && !defined(USE_VERTEX_PULLING)
|
|
671
662
|
attribute uv{X}: vec2f;
|
|
672
663
|
#endif
|
|
673
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["uvAttributeDeclarationWGSL",0,{name:r,shader:i}],
|
|
664
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["uvAttributeDeclarationWGSL",0,{name:r,shader:i}],27180);let n="prePassVertexDeclaration",a=`#ifdef PREPASS
|
|
674
665
|
#ifdef PREPASS_LOCAL_POSITION
|
|
675
666
|
varying vPosition : vec3f;
|
|
676
667
|
#endif
|
|
@@ -684,10 +675,10 @@ varying vNormViewDepth: f32;
|
|
|
684
675
|
uniform previousViewProjection: mat4x4f;varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
|
|
685
676
|
#endif
|
|
686
677
|
#endif
|
|
687
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["prePassVertexDeclarationWGSL",0,{name:n,shader:a}],
|
|
678
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[n]||(t.ShaderStore.IncludesShadersStoreWGSL[n]=a),e.s(["prePassVertexDeclarationWGSL",0,{name:n,shader:a}],27066);let f="samplerVertexDeclaration",o=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
688
679
|
varying v_VARYINGNAME_UV: vec2f;
|
|
689
680
|
#endif
|
|
690
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["samplerVertexDeclarationWGSL",0,{name:f,shader:o}],
|
|
681
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[f]||(t.ShaderStore.IncludesShadersStoreWGSL[f]=o),e.s(["samplerVertexDeclarationWGSL",0,{name:f,shader:o}],85224);let s="lightVxUboDeclaration",d=`#ifdef LIGHT{X}
|
|
691
682
|
struct Light{X}
|
|
692
683
|
{vLightData: vec4f,
|
|
693
684
|
vLightDiffuse: vec4f,
|
|
@@ -718,7 +709,7 @@ varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;uniform lightM
|
|
|
718
709
|
#endif
|
|
719
710
|
#endif
|
|
720
711
|
#endif
|
|
721
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["lightVxUboDeclarationWGSL",0,{name:s,shader:d}],
|
|
712
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[s]||(t.ShaderStore.IncludesShadersStoreWGSL[s]=d),e.s(["lightVxUboDeclarationWGSL",0,{name:s,shader:d}],12203);let c="vertexPullingDeclaration",l=`#ifdef USE_VERTEX_PULLING
|
|
722
713
|
#ifdef VERTEX_PULLING_USE_INDEX_BUFFER
|
|
723
714
|
var<storage,read> indices : array<u32>;
|
|
724
715
|
#endif
|
|
@@ -896,7 +887,7 @@ vp_readMatrixWeightExtraValue(offset+cs*3u,dataType,normalized)
|
|
|
896
887
|
#endif
|
|
897
888
|
#endif
|
|
898
889
|
#endif
|
|
899
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[c]||(t.ShaderStore.IncludesShadersStoreWGSL[c]=l),e.s(["vertexPullingDeclarationWGSL",0,{name:c,shader:l}],
|
|
890
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[c]||(t.ShaderStore.IncludesShadersStoreWGSL[c]=l),e.s(["vertexPullingDeclarationWGSL",0,{name:c,shader:l}],65997);let u="vertexPullingVertex",v=`#ifdef USE_VERTEX_PULLING
|
|
900
891
|
let vpVertexIndex: u32=vp_readVertexIndex(vertexInputs.vertexIndex);positionUpdated=vp_readPosition(uniforms.vp_position_info,vpVertexIndex);
|
|
901
892
|
#ifdef NORMAL
|
|
902
893
|
normalUpdated=vp_readNormal(uniforms.vp_normal_info,vpVertexIndex);
|
|
@@ -950,7 +941,7 @@ var vp_matricesIndicesExtra: vec4f=vp_readBoneIndicesExtra(uniforms.vp_matricesI
|
|
|
950
941
|
#endif
|
|
951
942
|
#endif
|
|
952
943
|
#endif
|
|
953
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[u]||(t.ShaderStore.IncludesShadersStoreWGSL[u]=v),e.s(["vertexPullingVertexWGSL",0,{name:u,shader:v}],
|
|
944
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[u]||(t.ShaderStore.IncludesShadersStoreWGSL[u]=v),e.s(["vertexPullingVertexWGSL",0,{name:u,shader:v}],99887);let m="prePassVertex",p=`#ifdef PREPASS_DEPTH
|
|
954
945
|
vertexOutputs.vViewPos=(scene.view*worldPos).rgb;
|
|
955
946
|
#endif
|
|
956
947
|
#ifdef PREPASS_NORMALIZED_VIEW_DEPTH
|
|
@@ -989,7 +980,7 @@ vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWor
|
|
|
989
980
|
vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
|
|
990
981
|
#endif
|
|
991
982
|
#endif
|
|
992
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[m]||(t.ShaderStore.IncludesShadersStoreWGSL[m]=p),e.s(["prePassVertexWGSL",0,{name:m,shader:p}],
|
|
983
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[m]||(t.ShaderStore.IncludesShadersStoreWGSL[m]=p),e.s(["prePassVertexWGSL",0,{name:m,shader:p}],54704);let E="uvVariableDeclaration",_=`#ifdef MAINUV{X}
|
|
993
984
|
#if !defined(UV{X})
|
|
994
985
|
var uv{X}: vec2f=vec2f(0.,0.);
|
|
995
986
|
#elif defined(USE_VERTEX_PULLING)
|
|
@@ -999,7 +990,7 @@ var uv{X}: vec2f=vertexInputs.uv{X};
|
|
|
999
990
|
#endif
|
|
1000
991
|
vertexOutputs.vMainUV{X}=uv{X};
|
|
1001
992
|
#endif
|
|
1002
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[E]||(t.ShaderStore.IncludesShadersStoreWGSL[E]=_),e.s(["uvVariableDeclarationWGSL",0,{name:E,shader:_}],
|
|
993
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[E]||(t.ShaderStore.IncludesShadersStoreWGSL[E]=_),e.s(["uvVariableDeclarationWGSL",0,{name:E,shader:_}],85749);let I="samplerVertexImplementation",S=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
1003
994
|
if (uniforms.v_INFONAME_==0.)
|
|
1004
995
|
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(uvUpdated,1.0,0.0)).xy;}
|
|
1005
996
|
#ifdef UV2
|
|
@@ -1023,7 +1014,7 @@ else if (uniforms.v_INFONAME_==5.)
|
|
|
1023
1014
|
{vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv6,1.0,0.0)).xy;}
|
|
1024
1015
|
#endif
|
|
1025
1016
|
#endif
|
|
1026
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[I]||(t.ShaderStore.IncludesShadersStoreWGSL[I]=S),e.s(["samplerVertexImplementationWGSL",0,{name:I,shader:S}],
|
|
1017
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[I]||(t.ShaderStore.IncludesShadersStoreWGSL[I]=S),e.s(["samplerVertexImplementationWGSL",0,{name:I,shader:S}],14750);let x="shadowsVertex",N=`#ifdef SHADOWS
|
|
1027
1018
|
#if defined(SHADOWCSM{X})
|
|
1028
1019
|
#ifdef SCENE_UBO
|
|
1029
1020
|
vertexOutputs.vPositionFromCamera{X}=scene.view*worldPos;
|
|
@@ -1071,21 +1062,30 @@ vertexOutputs.vDepthMetric{X}=(vertexOutputs.vPositionFromLight{X}.z+light{X}.de
|
|
|
1071
1062
|
#endif
|
|
1072
1063
|
#endif
|
|
1073
1064
|
#endif
|
|
1074
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[x]||(t.ShaderStore.IncludesShadersStoreWGSL[x]=N),e.s(["shadowsVertexWGSL",0,{name:x,shader:N}],
|
|
1075
|
-
|
|
1076
|
-
#
|
|
1077
|
-
#
|
|
1078
|
-
|
|
1065
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[x]||(t.ShaderStore.IncludesShadersStoreWGSL[x]=N),e.s(["shadowsVertexWGSL",0,{name:x,shader:N}],99967)},9613,e=>{"use strict";var t=e.i(25044);let r="vertexColorMixing",i=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
1066
|
+
vertexOutputs.vColor=vec4f(1.0);
|
|
1067
|
+
#ifdef VERTEXCOLOR
|
|
1068
|
+
#ifdef VERTEXALPHA
|
|
1069
|
+
vertexOutputs.vColor*=colorUpdated;
|
|
1070
|
+
#else
|
|
1071
|
+
vertexOutputs.vColor=vec4f(vertexOutputs.vColor.rgb*colorUpdated.rgb,vertexOutputs.vColor.a);
|
|
1072
|
+
#endif
|
|
1073
|
+
#endif
|
|
1074
|
+
#ifdef INSTANCESCOLOR
|
|
1075
|
+
vertexOutputs.vColor*=vertexInputs.instanceColor;
|
|
1076
|
+
#endif
|
|
1077
|
+
#endif
|
|
1078
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[r]||(t.ShaderStore.IncludesShadersStoreWGSL[r]=i),e.s(["vertexColorMixingWGSL",0,{name:r,shader:i}])},62939,e=>{"use strict";var t=e.i(25044),r=e.i(38267),i=e.i(95057),n=e.i(69337),a=e.i(27180),f=e.i(48585),o=e.i(65503),s=e.i(86165),d=e.i(93765),c=e.i(99043),l=e.i(82826),u=e.i(27066),v=e.i(85224),m=e.i(96528);let p="openpbrNormalMapVertexDeclaration",E=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(FUZZ)
|
|
1079
1079
|
#if defined(TANGENT) && defined(NORMAL)
|
|
1080
1080
|
varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
|
|
1081
1081
|
#endif
|
|
1082
1082
|
#endif
|
|
1083
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[p]||(t.ShaderStore.IncludesShadersStoreWGSL[p]=E);var _=e.i(
|
|
1083
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[p]||(t.ShaderStore.IncludesShadersStoreWGSL[p]=E);var _=e.i(67667),I=e.i(3828),S=e.i(12203),x=e.i(99145),N=e.i(16068),T=e.i(69288),A=e.i(65997),R=e.i(99887),h=e.i(17840),V=e.i(81683),O=e.i(25797),M=e.i(94882),L=e.i(80820),g=e.i(54704),F=e.i(85749),U=e.i(14750);let C="openpbrNormalMapVertex",G=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(FUZZ)
|
|
1084
1084
|
#if defined(TANGENT) && defined(NORMAL)
|
|
1085
1085
|
var tbnNormal: vec3f=normalize(normalUpdated);var tbnTangent: vec3f=normalize(tangentUpdated.xyz);var tbnBitangent: vec3f=cross(tbnNormal,tbnTangent)*tangentUpdated.w;var matTemp= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz)* mat3x3f(tbnTangent,tbnBitangent,tbnNormal);vertexOutputs.vTBN0=matTemp[0];vertexOutputs.vTBN1=matTemp[1];vertexOutputs.vTBN2=matTemp[2];
|
|
1086
1086
|
#endif
|
|
1087
1087
|
#endif
|
|
1088
|
-
`;t.ShaderStore.IncludesShadersStoreWGSL[C]||(t.ShaderStore.IncludesShadersStoreWGSL[C]=G);var D=e.i(
|
|
1088
|
+
`;t.ShaderStore.IncludesShadersStoreWGSL[C]||(t.ShaderStore.IncludesShadersStoreWGSL[C]=G);var D=e.i(15345),P=e.i(45320),b=e.i(99967),y=e.i(9613),W=e.i(78507);let X="openpbrVertexShader",z=`#define OPENPBR_VERTEX_SHADER
|
|
1089
1089
|
#include<openpbrUboDeclaration>
|
|
1090
1090
|
#define CUSTOM_VERTEX_BEGIN
|
|
1091
1091
|
#ifndef USE_VERTEX_PULLING
|
|
@@ -1325,4 +1325,4 @@ vertexOutputs.vMainUV2=uv2Updated;
|
|
|
1325
1325
|
#include<vertexColorMixing>
|
|
1326
1326
|
#include<logDepthVertex>
|
|
1327
1327
|
#define CUSTOM_VERTEX_MAIN_END
|
|
1328
|
-
}`;for(let e of(t.ShaderStore.ShadersStoreWGSL[X]||(t.ShaderStore.ShadersStoreWGSL[X]=z),[r.sceneUboDeclarationWGSL,i.meshUboDeclarationWGSL,n.openpbrUboDeclarationWGSL,a.uvAttributeDeclarationWGSL,f.mainUVVaryingDeclarationWGSL,o.helperFunctionsWGSL,s.pbrBRDFFunctionsWGSL,d.bonesDeclarationWGSL,c.bakedVertexAnimationDeclarationWGSL,l.instancesDeclarationWGSL,u.prePassVertexDeclarationWGSL,v.samplerVertexDeclarationWGSL,m.harmonicsFunctionsWGSL,{name:p,shader:E},_.clipPlaneVertexDeclarationWGSL,I.fogVertexDeclarationWGSL,S.lightVxUboDeclarationWGSL,x.morphTargetsVertexGlobalDeclarationWGSL,N.morphTargetsVertexDeclarationWGSL,T.logDepthDeclarationWGSL,A.vertexPullingDeclarationWGSL,R.vertexPullingVertexWGSL,h.morphTargetsVertexGlobalWGSL,V.morphTargetsVertexWGSL,O.instancesVertexWGSL,M.bonesVertexWGSL,L.bakedVertexAnimationWGSL,g.prePassVertexWGSL,F.uvVariableDeclarationWGSL,U.samplerVertexImplementationWGSL,{name:C,shader:G},D.clipPlaneVertexWGSL,P.fogVertexWGSL,b.shadowsVertexWGSL,y.vertexColorMixingWGSL,W.logDepthVertexWGSL]))t.ShaderStore.IncludesShadersStoreWGSL[e.name]||(t.ShaderStore.IncludesShadersStoreWGSL[e.name]=e.shader);e.s(["openpbrVertexShaderWGSL",0,{name:X,shader:z}],
|
|
1328
|
+
}`;for(let e of(t.ShaderStore.ShadersStoreWGSL[X]||(t.ShaderStore.ShadersStoreWGSL[X]=z),[r.sceneUboDeclarationWGSL,i.meshUboDeclarationWGSL,n.openpbrUboDeclarationWGSL,a.uvAttributeDeclarationWGSL,f.mainUVVaryingDeclarationWGSL,o.helperFunctionsWGSL,s.pbrBRDFFunctionsWGSL,d.bonesDeclarationWGSL,c.bakedVertexAnimationDeclarationWGSL,l.instancesDeclarationWGSL,u.prePassVertexDeclarationWGSL,v.samplerVertexDeclarationWGSL,m.harmonicsFunctionsWGSL,{name:p,shader:E},_.clipPlaneVertexDeclarationWGSL,I.fogVertexDeclarationWGSL,S.lightVxUboDeclarationWGSL,x.morphTargetsVertexGlobalDeclarationWGSL,N.morphTargetsVertexDeclarationWGSL,T.logDepthDeclarationWGSL,A.vertexPullingDeclarationWGSL,R.vertexPullingVertexWGSL,h.morphTargetsVertexGlobalWGSL,V.morphTargetsVertexWGSL,O.instancesVertexWGSL,M.bonesVertexWGSL,L.bakedVertexAnimationWGSL,g.prePassVertexWGSL,F.uvVariableDeclarationWGSL,U.samplerVertexImplementationWGSL,{name:C,shader:G},D.clipPlaneVertexWGSL,P.fogVertexWGSL,b.shadowsVertexWGSL,y.vertexColorMixingWGSL,W.logDepthVertexWGSL]))t.ShaderStore.IncludesShadersStoreWGSL[e.name]||(t.ShaderStore.IncludesShadersStoreWGSL[e.name]=e.shader);e.s(["openpbrVertexShaderWGSL",0,{name:X,shader:z}],62939)}]);
|