@uptimizr/dashboard 0.1.2 → 0.2.0
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 +4 -4
- package/out/__next._full.txt +11 -11
- package/out/__next._head.txt +4 -4
- package/out/__next._index.txt +4 -4
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/002cjeoit6-up.js +1 -0
- package/out/_next/static/chunks/02n1uiltexy3w.js +1 -0
- package/out/_next/static/chunks/03ab2khhe8-x5.js +1 -0
- package/out/_next/static/chunks/04_yytpc2paxy.js +1 -0
- package/out/_next/static/chunks/06qot1qvlsqaz.js +1 -0
- package/out/_next/static/chunks/07eeopuufsqp-.js +1501 -0
- package/out/_next/static/chunks/08a5xek662n8n.js +1 -0
- package/out/_next/static/chunks/08wuc9--s8zn_.js +1 -0
- package/out/_next/static/chunks/0927l-ygd5c8d.js +1 -0
- package/out/_next/static/chunks/09510356f0lad.js +1 -0
- package/out/_next/static/chunks/0_eu72k69lxj7.js +1 -0
- package/out/_next/static/chunks/0beajlqy8p8b5.js +1 -0
- package/out/_next/static/chunks/0c83pe1mpx456.js +1 -0
- package/out/_next/static/chunks/0echnagbkyx79.js +1198 -0
- package/out/_next/static/chunks/0eh1ml86u8dh7.js +1 -0
- package/out/_next/static/chunks/0fh-9h9ylxskr.js +674 -0
- package/out/_next/static/chunks/0fzmc1up21g1i.js +1 -0
- package/out/_next/static/chunks/0g_v2zswo4l6f.js +1 -0
- package/out/_next/static/chunks/0grlb9lo8e502.js +1 -0
- package/out/_next/static/chunks/0h22pg-0xrxnm.js +1 -0
- package/out/_next/static/chunks/0j6p1pmc14t96.js +1 -0
- package/out/_next/static/chunks/0j_6dx-sttgsy.js +1 -0
- package/out/_next/static/chunks/0j__xaq_8_di1.js +1 -0
- package/out/_next/static/chunks/0kfd-cvj5fvtz.js +1 -0
- package/out/_next/static/chunks/0o_mp98xzqfyf.js +1 -0
- package/out/_next/static/chunks/0otsec99kdkt7.js +213 -0
- package/out/_next/static/chunks/0ql-s-tsmel_u.js +151 -0
- package/out/_next/static/chunks/0r47gs_e93cka.js +1 -0
- package/out/_next/static/chunks/0sqys6o2pbe1q.js +1328 -0
- package/out/_next/static/chunks/0titqrn1qmcsv.js +1 -0
- package/out/_next/static/chunks/0tnlbw78tgaxp.js +4 -0
- package/out/_next/static/chunks/0tw4dyl-cp-hd.js +1 -0
- package/out/_next/static/chunks/0vbce-8omgurc.js +1 -0
- package/out/_next/static/chunks/0vfsg5byzep_0.js +1 -0
- package/out/_next/static/chunks/{0gv7mblzv3dl3.js → 0w8_1yjvol1f0.js} +20 -20
- package/out/_next/static/chunks/0xh144a5fz58h.js +1 -0
- package/out/_next/static/chunks/0xjltg_pph0c8.js +1 -0
- package/out/_next/static/chunks/0yeqgh0dnas8d.js +1 -0
- package/out/_next/static/chunks/101-7e_7up7rk.js +1 -0
- package/out/_next/static/chunks/128e51hj_04r0.js +1 -0
- package/out/_next/static/chunks/{10fnxpln_5xfd.js → 12kv810lohbsx.js} +2 -2
- package/out/_next/static/chunks/137xbvd4nd41j.js +3 -0
- package/out/_next/static/chunks/14bws-suyy5zu.js +1 -0
- package/out/_next/static/chunks/14ggsmqwej_tt.js +1656 -0
- package/out/_next/static/chunks/17genz6pkmty_.js +1 -0
- package/out/_next/static/chunks/17xd8hnazzr0g.js +1454 -0
- package/out/_next/static/chunks/18dczy9ylt2s_.js +1 -0
- package/out/_next/static/chunks/18xs_kvsaolb0.js +1 -0
- package/out/_next/static/chunks/19016f8-ry0z6.js +1 -0
- package/out/_next/static/chunks/1_6oejyxj39li.js +1 -0
- package/out/_next/static/chunks/1_aon8nz9p1fr.js +1 -0
- package/out/_next/static/chunks/1_qzlkuxukhpq.js +779 -0
- package/out/_next/static/chunks/1akaj5rhgitn3.js +1 -0
- package/out/_next/static/chunks/1bvl1ws7b_3gn.js +1 -0
- package/out/_next/static/chunks/1cdbk6kxyr1c9.js +1 -0
- package/out/_next/static/chunks/1fbjkk55uu4_g.js +1 -0
- package/out/_next/static/chunks/1furcfsgrw_3g.js +1 -0
- package/out/_next/static/chunks/1g0-f1g3gn_rs.js +1 -0
- package/out/_next/static/chunks/1g7emwu85bifo.js +557 -0
- package/out/_next/static/chunks/{37vzwr3ciejf1.js → 1gs-5722l4u59.js} +1 -1
- package/out/_next/static/chunks/1gt4kh0_xmigy.js +1 -0
- package/out/_next/static/chunks/1h8xzuuhhglu9.js +1 -0
- package/out/_next/static/chunks/1hatz-jlztrn0.js +1 -0
- package/out/_next/static/chunks/1iioifo7i0t0_.js +1 -0
- package/out/_next/static/chunks/{0impkpmxx3ttp.js → 1iiz7jqgj20z0.js} +1 -1
- package/out/_next/static/chunks/1kujmd5n0j9nk.js +1 -0
- package/out/_next/static/chunks/{2kazjq29jeamx.js → 1ltux4lwz7muf.js} +160 -372
- package/out/_next/static/chunks/1m_buecgcq67j.js +740 -0
- package/out/_next/static/chunks/1n9sy0yt5d2vq.js +1 -0
- package/out/_next/static/chunks/1p1gz6dseck--.js +1 -0
- package/out/_next/static/chunks/1p1xtsfwvpuqo.js +1 -0
- package/out/_next/static/chunks/1p8f6okk2ewbz.js +1 -0
- package/out/_next/static/chunks/1qg_etglhvp9h.js +740 -0
- package/out/_next/static/chunks/1th_t5ujeqlkf.js +1 -0
- package/out/_next/static/chunks/1thr-mdzbu96v.js +1 -0
- package/out/_next/static/chunks/1tta1a064979p.js +1 -0
- package/out/_next/static/chunks/1u_riwm0nfww7.js +1 -0
- package/out/_next/static/chunks/1ua15kzid0_8p.js +2560 -0
- package/out/_next/static/chunks/1uu-rt_8p1edp.js +2712 -0
- package/out/_next/static/chunks/1uu93wuxigx4k.js +1 -0
- package/out/_next/static/chunks/{1flb8adpj6_2o.js → 1xpwp4m1tqugp.js} +1 -1
- package/out/_next/static/chunks/1ynju1jqfrcv0.js +1 -0
- package/out/_next/static/chunks/1zfojlgb15okk.js +1 -0
- package/out/_next/static/chunks/1zj8x5wbgnzz-.js +1 -0
- package/out/_next/static/chunks/1zl6t15gh34nn.js +1 -0
- package/out/_next/static/chunks/{1thjncpj7u6pq.js → 223vrr_4sfhsj.js} +1 -1
- package/out/_next/static/chunks/22cr2b04btguf.js +1 -0
- package/out/_next/static/chunks/242xhzxxetctz.js +1 -0
- package/out/_next/static/chunks/24essz5mmvx-6.js +1 -0
- package/out/_next/static/chunks/256k1jw1m--l7.js +146 -0
- package/out/_next/static/chunks/259obyrpxcv6r.js +1 -0
- package/out/_next/static/chunks/26v9yqicofqba.js +1 -0
- package/out/_next/static/chunks/290d93hmm_e8b.js +1 -0
- package/out/_next/static/chunks/2_2fk7iddrs43.js +1 -0
- package/out/_next/static/chunks/{00k_j_r7bv_eb.js → 2bjlls8-qe05r.js} +9 -9
- package/out/_next/static/chunks/2ckd7f1wbfod-.js +1 -0
- package/out/_next/static/chunks/{163fa70v4mgxj.js → 2d6hru4qo23tt.js} +1 -1
- package/out/_next/static/chunks/2ejvntxtvf5o9.js +1 -0
- package/out/_next/static/chunks/2f7_3tzf7xhps.js +1 -0
- package/out/_next/static/chunks/2gxd_o1g89_bv.js +1 -0
- package/out/_next/static/chunks/2hd2txb4-m9k1.js +1 -0
- package/out/_next/static/chunks/2hpxou_cnp4f_.js +1 -0
- package/out/_next/static/chunks/2izioctrfc0s5.js +1 -0
- package/out/_next/static/chunks/2jhnk4h4n0udv.js +1 -0
- package/out/_next/static/chunks/2jpkhkk9zi8-f.js +1 -0
- package/out/_next/static/chunks/2kpet_l1kq2sx.js +1 -0
- package/out/_next/static/chunks/2mdbvf1b5h00_.css +3 -0
- package/out/_next/static/chunks/2nck5w4c7leb7.js +1 -0
- package/out/_next/static/chunks/2our10fwtj87e.js +1 -0
- package/out/_next/static/chunks/2qq3uzsbiicw3.js +1194 -0
- package/out/_next/static/chunks/2qqqpu0ahfdda.js +1 -0
- package/out/_next/static/chunks/2u-f7mmxvk8wj.js +1 -0
- package/out/_next/static/chunks/2ue1wo4ryk87z.js +1 -0
- package/out/_next/static/chunks/2uk-vwlxe9-xr.js +1 -0
- package/out/_next/static/chunks/2ur5-lxdvv1jm.js +1 -0
- package/out/_next/static/chunks/2veqsohwfhfqc.js +1 -0
- package/out/_next/static/chunks/2vqlv9wnewhu9.js +1 -0
- package/out/_next/static/chunks/{1zvc1tv--w8nn.js → 2wzshintp5lf8.js} +1 -1
- package/out/_next/static/chunks/2x-00glogc485.js +1 -0
- package/out/_next/static/chunks/2yfxy0f5fqs4o.js +1 -0
- package/out/_next/static/chunks/2z88mt3ixktu3.js +1 -0
- package/out/_next/static/chunks/2z_jn9ud28fk7.js +1 -0
- package/out/_next/static/chunks/3-eswqjobiqk1.js +1 -0
- package/out/_next/static/chunks/30-tbi7pys6fp.js +4 -0
- package/out/_next/static/chunks/30c-nsedy_ce0.js +1 -0
- package/out/_next/static/chunks/31u5lbu1vxznh.js +1 -0
- package/out/_next/static/chunks/{2feca0xcipcyt.js → 32ahba5ezp467.js} +156 -156
- package/out/_next/static/chunks/337hn35kts7ud.js +1 -0
- package/out/_next/static/chunks/33dgpebv-tf73.js +1 -0
- package/out/_next/static/chunks/36jkdhq6kb-cf.js +1 -0
- package/out/_next/static/chunks/37epa8fz59vba.js +1166 -0
- package/out/_next/static/chunks/3833xfnz0a-ub.js +1 -0
- package/out/_next/static/chunks/38awrh_qxn22k.js +1 -0
- package/out/_next/static/chunks/{0wrm9jr-9bw0e.js → 38x3c1ra5slhe.js} +383 -913
- package/out/_next/static/chunks/39idqlqlcp5b9.js +1 -0
- package/out/_next/static/chunks/{2a3spdq-m8drh.js → 3_gku1pwluoo0.js} +1 -1
- package/out/_next/static/chunks/3_mu-4rdjajna.js +1450 -0
- package/out/_next/static/chunks/3coacc4-g-g5c.js +1 -0
- package/out/_next/static/chunks/3e00fzdfkclzq.js +1 -0
- package/out/_next/static/chunks/3e8fmlq0k5wkg.js +1 -0
- package/out/_next/static/chunks/3e9tzyrt4_98z.js +1 -0
- package/out/_next/static/chunks/3edelqkq92pil.js +1 -0
- package/out/_next/static/chunks/3figbil1t4ssj.js +593 -0
- package/out/_next/static/chunks/3gimb3z_mteou.js +1 -0
- package/out/_next/static/chunks/{2p2vv6cc9i-3q.js → 3idaz_s77e-j_.js} +9 -9
- package/out/_next/static/chunks/3j-4wuhs5weba.js +1 -0
- package/out/_next/static/chunks/3jjfnwvybayy7.js +1 -0
- package/out/_next/static/chunks/3jwm5dfk_78gc.js +1 -0
- package/out/_next/static/chunks/3k9d4ylc3li2t.js +1352 -0
- package/out/_next/static/chunks/3l3_0ack3gy4k.js +1 -0
- package/out/_next/static/chunks/3lwhs5ja7tun3.js +1 -0
- package/out/_next/static/chunks/3m6nmp2dca6un.js +1342 -0
- package/out/_next/static/chunks/3mbnfpufs2-7e.js +7 -0
- package/out/_next/static/chunks/3mcd08gmt038z.js +1 -0
- package/out/_next/static/chunks/3mt5th7b1i_u9.js +1 -0
- package/out/_next/static/chunks/3ne77mjdz2y7o.js +1 -0
- package/out/_next/static/chunks/3puhrqtujktyv.js +1 -0
- package/out/_next/static/chunks/3rdifucupcgkg.js +1 -0
- package/out/_next/static/chunks/3riekaxl3uxfb.js +1195 -0
- package/out/_next/static/chunks/3sdoskq_buttj.js +1 -0
- package/out/_next/static/chunks/3tg-ma9tv9xu4.js +1 -0
- package/out/_next/static/chunks/3tm-pqpmq_ppw.js +1 -0
- package/out/_next/static/chunks/3w9go565cjhq3.js +1636 -0
- package/out/_next/static/chunks/3wi9gzq2mtr_q.js +8 -0
- package/out/_next/static/chunks/3xagd_2_9zft2.js +1 -0
- package/out/_next/static/chunks/3xsq_anpad-fb.js +1 -0
- package/out/_next/static/chunks/3ycv2qq7vpbua.js +1 -0
- package/out/_next/static/chunks/3z84au-mitjjw.js +1 -0
- package/out/_next/static/chunks/4030dhur2h70-.js +1 -0
- package/out/_next/static/chunks/40ffffml4h_3r.js +4 -0
- package/out/_next/static/chunks/{3-shckrcpvbxu.js → 41wt50z9tx9cx.js} +108 -711
- package/out/_next/static/chunks/431slrqh0wa0g.js +1 -0
- package/out/_next/static/chunks/43s_lbd1i2krj.js +1 -0
- package/out/_next/static/chunks/{0-2y-_oomza2l.js → 44nxswtahaq4w.js} +18 -18
- package/out/_next/static/chunks/45bwefvdpztfs.js +1 -0
- package/out/_next/static/chunks/{turbopack-0sgd6pfbe1fy6.js → turbopack-19105pdhzxp1x.js} +1 -1
- package/out/_not-found/__next._full.txt +9 -9
- package/out/_not-found/__next._head.txt +4 -4
- package/out/_not-found/__next._index.txt +4 -4
- package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/out/_not-found/__next._not-found.txt +3 -3
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +9 -9
- package/out/index.html +1 -1
- package/out/index.txt +11 -11
- package/package.json +5 -4
- package/out/_next/static/chunks/068j6934u8j16.js +0 -1
- package/out/_next/static/chunks/09e4adtr6w0xe.js +0 -1
- package/out/_next/static/chunks/0_rf76jneiwal.js +0 -176
- package/out/_next/static/chunks/0aznt7717miff.js +0 -1
- package/out/_next/static/chunks/0cu-q5q3a7uf3.js +0 -1
- package/out/_next/static/chunks/0fskcfh9vbhtv.js +0 -1
- package/out/_next/static/chunks/0gg-ii7i6d_p6.js +0 -1
- package/out/_next/static/chunks/0tx1j_ghpz7rc.css +0 -3
- package/out/_next/static/chunks/0ufbyo1x3qkmo.js +0 -1
- package/out/_next/static/chunks/0wwcfw8i3j_zx.js +0 -1
- package/out/_next/static/chunks/0wwkrsvxwi57d.js +0 -1
- package/out/_next/static/chunks/0ys9-ozuluawt.js +0 -1
- package/out/_next/static/chunks/1-61zh4waha61.js +0 -1
- package/out/_next/static/chunks/10r_824wzt8hj.js +0 -1
- package/out/_next/static/chunks/123xxske5c9na.js +0 -1
- package/out/_next/static/chunks/13isnf0--pmx1.js +0 -1
- package/out/_next/static/chunks/157d9euci08yu.js +0 -1
- package/out/_next/static/chunks/18u58lorfahxi.js +0 -4
- package/out/_next/static/chunks/1_aahautsz2v_.js +0 -1
- package/out/_next/static/chunks/1o1d0p-v1z8ty.js +0 -1
- package/out/_next/static/chunks/1vdjn0pkoyypn.js +0 -1
- package/out/_next/static/chunks/1yehxf-fmeicg.js +0 -1
- package/out/_next/static/chunks/1zx2q-r32thv1.js +0 -4
- package/out/_next/static/chunks/2-sjjedfr0kfq.js +0 -1
- package/out/_next/static/chunks/25b9x-li-tvk2.js +0 -1
- package/out/_next/static/chunks/2aelw3far6rii.js +0 -1
- package/out/_next/static/chunks/2aor7m-wbis85.js +0 -1
- package/out/_next/static/chunks/2clzipqap01hp.js +0 -1
- package/out/_next/static/chunks/2fh-_9b6tqhvb.js +0 -1
- package/out/_next/static/chunks/2g5gecypj0rqe.js +0 -1
- package/out/_next/static/chunks/2szdcpl41-kzv.js +0 -1
- package/out/_next/static/chunks/2u6shh3oeycm-.js +0 -1
- package/out/_next/static/chunks/2unhhuv0arlcv.js +0 -1
- package/out/_next/static/chunks/2z5eqx5do5std.js +0 -1
- package/out/_next/static/chunks/310uz81hnnzsu.js +0 -1
- package/out/_next/static/chunks/3aqbf_wkg2sih.js +0 -3
- package/out/_next/static/chunks/3i3gbhccmhu7j.js +0 -210
- package/out/_next/static/chunks/3mqy-84_ul3t2.js +0 -1
- package/out/_next/static/chunks/3nz-dh9d7cehk.js +0 -1
- package/out/_next/static/chunks/3pufs8g4ui943.js +0 -1
- package/out/_next/static/chunks/3t06schbtqonl.js +0 -1
- package/out/_next/static/chunks/3v3-7fio3nw_t.js +0 -1
- package/out/_next/static/chunks/3v5ha25nxo43j.js +0 -1
- package/out/_next/static/chunks/3zskk1hxu3-_o.js +0 -1
- /package/out/_next/static/{vHD3x58R_2B6QWAhZXCg7 → M9ZSIaKJeBgkjz1qktYio}/_buildManifest.js +0 -0
- /package/out/_next/static/{vHD3x58R_2B6QWAhZXCg7 → M9ZSIaKJeBgkjz1qktYio}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{vHD3x58R_2B6QWAhZXCg7 → M9ZSIaKJeBgkjz1qktYio}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,1195 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65296,e=>{"use strict";var i=e.i(12423);let t="helperFunctions",r=`const float PI=3.1415926535897932384626433832795;const float TWO_PI=6.283185307179586;const float HALF_PI=1.5707963267948966;const float RECIPROCAL_PI=0.3183098861837907;const float RECIPROCAL_PI2=0.15915494309189535;const float RECIPROCAL_PI4=0.07957747154594767;const float HALF_MIN=5.96046448e-08;
|
|
2
|
+
const float LinearEncodePowerApprox=2.2;const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);const float Epsilon=0.0000001;
|
|
3
|
+
#define saturate(x) clamp(x,0.0,1.0)
|
|
4
|
+
#define absEps(x) abs(x)+Epsilon
|
|
5
|
+
#define maxEps(x) max(x,Epsilon)
|
|
6
|
+
#define saturateEps(x) clamp(x,Epsilon,1.0)
|
|
7
|
+
mat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(
|
|
8
|
+
vec3(i0.x,i1.x,i2.x),
|
|
9
|
+
vec3(i0.y,i1.y,i2.y),
|
|
10
|
+
vec3(i0.z,i1.z,i2.z)
|
|
11
|
+
);return outMatrix;}
|
|
12
|
+
mat3 inverseMat3(mat3 inMatrix) {float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),
|
|
13
|
+
b11,(a22*a00-a02*a20),(-a12*a00+a02*a10),
|
|
14
|
+
b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}
|
|
15
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
16
|
+
vec3 toLinearSpaceExact(vec3 color)
|
|
17
|
+
{vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));
|
|
18
|
+
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
|
|
19
|
+
return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));
|
|
20
|
+
#else
|
|
21
|
+
return
|
|
22
|
+
vec3(
|
|
23
|
+
color.r<=0.04045 ? nearZeroSection.r : remainingSection.r,
|
|
24
|
+
color.g<=0.04045 ? nearZeroSection.g : remainingSection.g,
|
|
25
|
+
color.b<=0.04045 ? nearZeroSection.b : remainingSection.b);
|
|
26
|
+
#endif
|
|
27
|
+
}
|
|
28
|
+
vec3 toGammaSpaceExact(vec3 color)
|
|
29
|
+
{vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);
|
|
30
|
+
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
|
|
31
|
+
return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));
|
|
32
|
+
#else
|
|
33
|
+
return
|
|
34
|
+
vec3(
|
|
35
|
+
color.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,
|
|
36
|
+
color.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,
|
|
37
|
+
color.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);
|
|
38
|
+
#endif
|
|
39
|
+
}
|
|
40
|
+
#endif
|
|
41
|
+
float toLinearSpace(float color)
|
|
42
|
+
{
|
|
43
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
44
|
+
float nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;
|
|
45
|
+
#else
|
|
46
|
+
return pow(color,LinearEncodePowerApprox);
|
|
47
|
+
#endif
|
|
48
|
+
}
|
|
49
|
+
vec3 toLinearSpace(vec3 color)
|
|
50
|
+
{
|
|
51
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
52
|
+
return toLinearSpaceExact(color);
|
|
53
|
+
#else
|
|
54
|
+
return pow(color,vec3(LinearEncodePowerApprox));
|
|
55
|
+
#endif
|
|
56
|
+
}
|
|
57
|
+
vec4 toLinearSpace(vec4 color)
|
|
58
|
+
{
|
|
59
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
60
|
+
return vec4(toLinearSpaceExact(color.rgb),color.a);
|
|
61
|
+
#else
|
|
62
|
+
return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);
|
|
63
|
+
#endif
|
|
64
|
+
}
|
|
65
|
+
float toGammaSpace(float color)
|
|
66
|
+
{
|
|
67
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
68
|
+
float nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;
|
|
69
|
+
#else
|
|
70
|
+
return pow(color,GammaEncodePowerApprox);
|
|
71
|
+
#endif
|
|
72
|
+
}
|
|
73
|
+
vec3 toGammaSpace(vec3 color)
|
|
74
|
+
{
|
|
75
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
76
|
+
return toGammaSpaceExact(color);
|
|
77
|
+
#else
|
|
78
|
+
return pow(color,vec3(GammaEncodePowerApprox));
|
|
79
|
+
#endif
|
|
80
|
+
}
|
|
81
|
+
vec4 toGammaSpace(vec4 color)
|
|
82
|
+
{
|
|
83
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
84
|
+
return vec4(toGammaSpaceExact(color.rgb),color.a);
|
|
85
|
+
#else
|
|
86
|
+
return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);
|
|
87
|
+
#endif
|
|
88
|
+
}
|
|
89
|
+
float square(float value)
|
|
90
|
+
{return value*value;}
|
|
91
|
+
vec3 square(vec3 value)
|
|
92
|
+
{return value*value;}
|
|
93
|
+
float pow5(float value) {float sq=value*value;return sq*sq*value;}
|
|
94
|
+
vec3 double_refract(vec3 I,vec3 N,float eta) {vec3 Tfront=refract(I,N,1.0/eta);vec3 Nback=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
|
|
95
|
+
float getLuminanceUnclamped(vec3 color)
|
|
96
|
+
{return dot(color,LuminanceEncodeApprox);}
|
|
97
|
+
float getLuminance(vec3 color)
|
|
98
|
+
{return saturate(getLuminanceUnclamped(color));}
|
|
99
|
+
float getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}
|
|
100
|
+
float dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}
|
|
101
|
+
const float rgbdMaxRange=255.;vec4 toRGBD(vec3 color) {float maxRGB=maxEps(max(color.r,max(color.g,color.b)));float D =max(rgbdMaxRange/maxRGB,1.);D =saturate(floor(D)/255.);vec3 rgb=color.rgb*D;rgb=toGammaSpace(rgb);return vec4(saturate(rgb),D);}
|
|
102
|
+
vec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}
|
|
103
|
+
vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {vec3 invOrigVec=vec3(1.)/origVec;vec3 halfSize=cubeSize*0.5;vec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;vec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;vec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);float distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);vec3 intersectPositionWS=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
|
|
104
|
+
vec3 equirectangularToCubemapDirection(vec2 uv) {float longitude=uv.x*TWO_PI-PI;float latitude=HALF_PI-uv.y*PI;vec3 direction;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
|
|
105
|
+
float sqrtClamped(float value) {return sqrt(max(value,0.));}
|
|
106
|
+
float avg(vec3 value) {return dot(value,vec3(0.333333333));}
|
|
107
|
+
#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
|
|
108
|
+
uint extractBits(uint value,int offset,int width) {return (value>>offset) & ((1u<<width)-1u);}
|
|
109
|
+
int onlyBitPosition(uint value) {return (floatBitsToInt(float(value))>>23)-0x7f;}
|
|
110
|
+
vec3 singleScatterToMultiScatterAlbedo(vec3 rho_ss) {vec3 s=sqrt(max(vec3(1.0)-rho_ss,vec3(0.0)));return (vec3(1.0)-s)*(vec3(1.0)-vec3(0.139)*s)/(vec3(1.0)+vec3(1.17)*s);}
|
|
111
|
+
vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return 1.0-s*s;}
|
|
112
|
+
vec3 multiScatterToSingleScatterAlbedo(vec3 rho_ms,float aniso) {vec3 s=4.09712+4.20863*rho_ms-sqrt(9.59217+41.6808*rho_ms+17.7126*rho_ms*rho_ms);return (1.0-s*s)/maxEps(1.0-aniso*s*s);}
|
|
113
|
+
float min3(vec3 v) {return min(v.x,min(v.y,v.z));}
|
|
114
|
+
float max3(vec3 v) {return max(v.x,max(v.y,v.z));}
|
|
115
|
+
float uint2float(uint i) {return uintBitsToFloat(0x3F800000u | (i>>9u))-1.0;}
|
|
116
|
+
vec2 plasticSequence(const uint rstate) {return vec2(uint2float(rstate*3242174889u),
|
|
117
|
+
uint2float(rstate*2447445414u));}
|
|
118
|
+
#endif
|
|
119
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["helperFunctions",0,{name:t,shader:r}])},85668,e=>{"use strict";var i=e.i(12423);let t="sceneUboDeclaration",r=`layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
|
|
120
|
+
#ifdef MULTIVIEW
|
|
121
|
+
mat4 viewProjectionR;
|
|
122
|
+
#endif
|
|
123
|
+
mat4 view;mat4 projection;vec4 vEyePosition;mat4 inverseProjection;};
|
|
124
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["sceneUboDeclaration",0,{name:t,shader:r}])},6232,92692,97226,e=>{"use strict";var i=e.i(12423);let t="meshUboDeclaration",r=`#ifdef WEBGL2
|
|
125
|
+
uniform mat4 world;uniform float visibility;
|
|
126
|
+
#else
|
|
127
|
+
layout(std140,column_major) uniform;uniform Mesh
|
|
128
|
+
{mat4 world;float visibility;};
|
|
129
|
+
#endif
|
|
130
|
+
#define WORLD_UBO
|
|
131
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["meshUboDeclaration",0,{name:t,shader:r}],6232);let a="mainUVVaryingDeclaration",n=`#ifdef MAINUV{X}
|
|
132
|
+
varying vec2 vMainUV{X};
|
|
133
|
+
#endif
|
|
134
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["mainUVVaryingDeclaration",0,{name:a,shader:n}],92692);let o="logDepthDeclaration",s=`#ifdef LOGARITHMICDEPTH
|
|
135
|
+
uniform float logarithmicDepthConstant;varying float vFragmentDepth;
|
|
136
|
+
#endif
|
|
137
|
+
`;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["logDepthDeclaration",0,{name:o,shader:s}],97226)},50438,e=>{"use strict";var i=e.i(12423);let t="harmonicsFunctions",r=`#ifdef USESPHERICALFROMREFLECTIONMAP
|
|
138
|
+
#ifdef SPHERICAL_HARMONICS
|
|
139
|
+
vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
|
|
140
|
+
+ vSphericalL1_1*(normal.y)
|
|
141
|
+
+ vSphericalL10*(normal.z)
|
|
142
|
+
+ vSphericalL11*(normal.x)
|
|
143
|
+
+ vSphericalL2_2*(normal.y*normal.x)
|
|
144
|
+
+ vSphericalL2_1*(normal.y*normal.z)
|
|
145
|
+
+ vSphericalL20*((3.0*normal.z*normal.z)-1.0)
|
|
146
|
+
+ vSphericalL21*(normal.z*normal.x)
|
|
147
|
+
+ vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
|
|
148
|
+
#else
|
|
149
|
+
vec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}
|
|
150
|
+
#endif
|
|
151
|
+
#endif
|
|
152
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["harmonicsFunctions",0,{name:t,shader:r}])},60990,e=>{"use strict";var i=e.i(12423);let t="pbrBRDFFunctions",r=`#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
|
|
153
|
+
#define BRDF_DIFFUSE_MODEL_EON 0
|
|
154
|
+
#define BRDF_DIFFUSE_MODEL_BURLEY 1
|
|
155
|
+
#define BRDF_DIFFUSE_MODEL_LAMBERT 2
|
|
156
|
+
#define BRDF_DIFFUSE_MODEL_LEGACY 3
|
|
157
|
+
#define DIELECTRIC_SPECULAR_MODEL_GLTF 0
|
|
158
|
+
#define DIELECTRIC_SPECULAR_MODEL_OPENPBR 1
|
|
159
|
+
#define CONDUCTOR_SPECULAR_MODEL_GLTF 0
|
|
160
|
+
#define CONDUCTOR_SPECULAR_MODEL_OPENPBR 1
|
|
161
|
+
#if !defined(PBR_VERTEX_SHADER) && !defined(OPENPBR_VERTEX_SHADER)
|
|
162
|
+
#ifdef MS_BRDF_ENERGY_CONSERVATION
|
|
163
|
+
vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
|
|
164
|
+
#endif
|
|
165
|
+
#if CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR
|
|
166
|
+
#define F82_COS_THETA_MAX 0.142857143
|
|
167
|
+
#define F82_ONE_MINUS_CTM_POW5 0.462664366
|
|
168
|
+
#define F82_ONE_MINUS_CTM_POW6 0.396569457
|
|
169
|
+
#define F82_B_DENOMINATOR_RECIP 17.6512785
|
|
170
|
+
#define BRDF_Z_SCALE 16.0
|
|
171
|
+
vec3 getF82Specular(float NdotV,vec3 F0,vec3 edgeTint,float roughness) {vec3 white_minus_F0=vec3(1.0)-F0;vec3 b=(F0+white_minus_F0*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;float cos_theta=max(roughness,NdotV);float one_minus_cos_theta=1.0-cos_theta;vec3 offset_from_F0=(white_minus_F0-b*cos_theta*one_minus_cos_theta)*pow(one_minus_cos_theta,5.0);return clamp(F0+offset_from_F0,0.0,1.0);}
|
|
172
|
+
vec3 getF82B(vec3 F0,vec3 edgeTint) {return (F0+(vec3(1.0)-F0)*F82_ONE_MINUS_CTM_POW5)*(vec3(1.0)-edgeTint)*F82_B_DENOMINATOR_RECIP;}
|
|
173
|
+
vec3 getF82DirectionalAlbedo(vec3 F0,vec3 F90,vec3 b,vec3 environmentBrdf) {return (F90-F0)*environmentBrdf.x+F0*environmentBrdf.y-b*environmentBrdf.z;}
|
|
174
|
+
vec3 getF82AverageFresnel(vec3 F0,vec3 b) {return F0+(vec3(1.0)-F0)/21.0-b/126.0;}
|
|
175
|
+
#endif
|
|
176
|
+
#ifdef FUZZENVIRONMENTBRDF
|
|
177
|
+
vec3 getFuzzBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(perceptualRoughness,NdotV);vec4 brdfLookup=texture2D(environmentFuzzBrdfSampler,UV);const vec2 RiRange=vec2(0.0,0.75);const vec2 ARange =vec2(0.005,0.88);const vec2 BRange =vec2(-0.18,0.002);brdfLookup.r=mix(ARange.x, ARange.y, brdfLookup.r);brdfLookup.g=mix(BRange.x, BRange.y, brdfLookup.g);brdfLookup.b=mix(RiRange.x,RiRange.y,brdfLookup.b);return brdfLookup.rgb;}
|
|
178
|
+
#endif
|
|
179
|
+
#ifdef ENVIRONMENTBRDF
|
|
180
|
+
vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
|
|
181
|
+
#ifdef ENVIRONMENTBRDF_RGBD
|
|
182
|
+
brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
|
|
183
|
+
#endif
|
|
184
|
+
return brdfLookup.rgb;}
|
|
185
|
+
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
|
|
186
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
187
|
+
vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
|
|
188
|
+
#else
|
|
189
|
+
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
|
|
190
|
+
#endif
|
|
191
|
+
return reflectance;}
|
|
192
|
+
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
|
|
193
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
194
|
+
vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
|
|
195
|
+
#else
|
|
196
|
+
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
|
|
197
|
+
#endif
|
|
198
|
+
return reflectance;}
|
|
199
|
+
#endif
|
|
200
|
+
/* NOT USED
|
|
201
|
+
#if defined(SHEEN) && defined(SHEEN_SOFTER)
|
|
202
|
+
float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
|
|
203
|
+
{float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
|
|
204
|
+
#endif
|
|
205
|
+
*/
|
|
206
|
+
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
|
|
207
|
+
vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
|
|
208
|
+
{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
|
|
209
|
+
#endif
|
|
210
|
+
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
|
|
211
|
+
/**
|
|
212
|
+
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
|
|
213
|
+
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
|
|
214
|
+
*/
|
|
215
|
+
vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
|
|
216
|
+
#endif
|
|
217
|
+
vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
|
|
218
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
219
|
+
float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
|
|
220
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
221
|
+
#ifdef CLEARCOAT
|
|
222
|
+
vec3 getR0RemappedForClearCoat(vec3 f0) {
|
|
223
|
+
#ifdef CLEARCOAT_DEFAULTIOR
|
|
224
|
+
#ifdef MOBILE
|
|
225
|
+
return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
|
|
226
|
+
#else
|
|
227
|
+
return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
|
|
228
|
+
#endif
|
|
229
|
+
#else
|
|
230
|
+
vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
|
|
231
|
+
#endif
|
|
232
|
+
}
|
|
233
|
+
#endif
|
|
234
|
+
#ifdef IRIDESCENCE
|
|
235
|
+
const mat3 XYZ_TO_REC709=mat3(
|
|
236
|
+
3.2404542,-0.9692660, 0.0556434,
|
|
237
|
+
-1.5371385, 1.8760108,-0.2040259,
|
|
238
|
+
-0.4985314, 0.0415560, 1.0572252
|
|
239
|
+
);vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
|
|
240
|
+
vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
|
|
241
|
+
float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
|
|
242
|
+
vec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}
|
|
243
|
+
vec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
|
|
244
|
+
float cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));
|
|
245
|
+
vec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);float maxR1=max(R1.r,max(R1.g,R1.b));if (maxR1<1e-6) {return max(vec3(R12),vec3(0.0));}
|
|
246
|
+
vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)
|
|
247
|
+
{Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
|
|
248
|
+
return max(I,vec3(0.0));}
|
|
249
|
+
#endif
|
|
250
|
+
float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
|
|
251
|
+
{float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
|
|
252
|
+
#ifdef SHEEN
|
|
253
|
+
float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
|
|
254
|
+
{float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
|
|
255
|
+
#endif
|
|
256
|
+
#ifdef ANISOTROPIC
|
|
257
|
+
float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
|
|
258
|
+
#endif
|
|
259
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
260
|
+
float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
|
|
261
|
+
#ifdef MOBILE
|
|
262
|
+
float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
|
|
263
|
+
#else
|
|
264
|
+
float a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
|
|
265
|
+
#endif
|
|
266
|
+
}
|
|
267
|
+
#else
|
|
268
|
+
float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
|
|
269
|
+
{
|
|
270
|
+
#ifdef MOBILE
|
|
271
|
+
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
|
|
272
|
+
#else
|
|
273
|
+
float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
|
|
274
|
+
#endif
|
|
275
|
+
}
|
|
276
|
+
float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
|
|
277
|
+
{float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
|
|
278
|
+
#endif
|
|
279
|
+
#ifdef ANISOTROPIC
|
|
280
|
+
float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}
|
|
281
|
+
#endif
|
|
282
|
+
#ifdef CLEARCOAT
|
|
283
|
+
float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
|
|
284
|
+
#endif
|
|
285
|
+
#ifdef SHEEN
|
|
286
|
+
float visibility_Ashikhmin(float NdotL,float NdotV)
|
|
287
|
+
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
|
|
288
|
+
/* NOT USED
|
|
289
|
+
#ifdef SHEEN_SOFTER
|
|
290
|
+
float l(float x,float alphaG)
|
|
291
|
+
{float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
|
|
292
|
+
float lambdaSheen(float cosTheta,float alphaG)
|
|
293
|
+
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
|
|
294
|
+
float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
|
|
295
|
+
{float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
|
|
296
|
+
#endif
|
|
297
|
+
*/
|
|
298
|
+
#endif
|
|
299
|
+
float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =
|
|
300
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
|
|
301
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
|
|
302
|
+
const float constant1_FON=0.5-2.0/(3.0*PI);const float constant2_FON=2.0/3.0-28.0/(15.0*PI);float E_FON_approx(float mu,float roughness)
|
|
303
|
+
{float sigma=roughness;
|
|
304
|
+
float mucomp=1.0-mu;float mucomp2=mucomp*mucomp;const mat2 Gcoeffs=mat2(0.0571085289,-0.332181442,
|
|
305
|
+
0.491881867,0.0714429953);float GoverPi=dot(Gcoeffs*vec2(mucomp,mucomp2),vec2(1.0,mucomp2));return (1.0+sigma*GoverPi)/(1.0+constant1_FON*sigma);}
|
|
306
|
+
vec3 diffuseBRDF_EON(vec3 albedo,float roughness,float NdotL,float NdotV,float LdotV)
|
|
307
|
+
{vec3 rho=albedo;float sigma=roughness;
|
|
308
|
+
float mu_i=NdotL;
|
|
309
|
+
float mu_o=NdotV;
|
|
310
|
+
float s=LdotV-mu_i*mu_o;
|
|
311
|
+
float sovertF=s>0.0 ? s/max(mu_i,mu_o) : s;
|
|
312
|
+
float AF=1.0/(1.0+constant1_FON*sigma);
|
|
313
|
+
vec3 f_ss=(rho*RECIPROCAL_PI)*AF*(1.0+sigma*sovertF);
|
|
314
|
+
float EFo=E_FON_approx(mu_o,sigma);
|
|
315
|
+
float EFi=E_FON_approx(mu_i,sigma);
|
|
316
|
+
float avgEF=AF*(1.0+constant2_FON*sigma);
|
|
317
|
+
vec3 rho_ms=(rho*rho)*avgEF/(vec3(1.0)-rho*(1.0-avgEF));const float eps=1.0e-7;vec3 f_ms=(rho_ms*RECIPROCAL_PI)*max(eps,1.0-EFo)
|
|
318
|
+
* max(eps,1.0-EFi)
|
|
319
|
+
/ max(eps,1.0-avgEF);return (f_ss+f_ms);}
|
|
320
|
+
#ifdef SS_TRANSLUCENCY
|
|
321
|
+
vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
|
|
322
|
+
float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
|
|
323
|
+
#endif
|
|
324
|
+
#endif
|
|
325
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["pbrBRDFFunctions",0,{name:t,shader:r}])},39067,15420,e=>{"use strict";var i=e.i(12423);let t="bonesDeclaration",r=`#if NUM_BONE_INFLUENCERS>0
|
|
326
|
+
attribute vec4 matricesIndices;attribute vec4 matricesWeights;
|
|
327
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
328
|
+
attribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;
|
|
329
|
+
#endif
|
|
330
|
+
#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
331
|
+
#ifdef BONETEXTURE
|
|
332
|
+
uniform highp sampler2D boneSampler;uniform vec2 boneTextureInfo;
|
|
333
|
+
#else
|
|
334
|
+
uniform mat4 mBones[BonesPerMesh];
|
|
335
|
+
#endif
|
|
336
|
+
#ifdef BONES_VELOCITY_ENABLED
|
|
337
|
+
uniform mat4 mPreviousBones[BonesPerMesh];
|
|
338
|
+
#endif
|
|
339
|
+
#ifdef BONETEXTURE
|
|
340
|
+
#define inline
|
|
341
|
+
mat4 readMatrixFromRawSampler(sampler2D smp,float index)
|
|
342
|
+
{
|
|
343
|
+
#if defined(WEBGL2) || defined(WEBGPU)
|
|
344
|
+
int offset=int(index)*4;
|
|
345
|
+
int textureWidth=int(boneTextureInfo.x);int y=int(offset)/textureWidth;int x=int(offset) % textureWidth;vec4 m0=texelFetch(smp,ivec2(x+0,y),0);vec4 m1=texelFetch(smp,ivec2(x+1,y),0);vec4 m2=texelFetch(smp,ivec2(x+2,y),0);vec4 m3=texelFetch(smp,ivec2(x+3,y),0);return mat4(m0,m1,m2,m3);
|
|
346
|
+
#else
|
|
347
|
+
float offset=index*4.0;float y=floor(offset/boneTextureInfo.x);float x=offset-y*boneTextureInfo.x;float dy=1.0/boneTextureInfo.y;float dx=1.0/boneTextureInfo.x;vec4 m0=texture2D(smp,vec2(dx*(x+0.5),dy*(y+0.5)));vec4 m1=texture2D(smp,vec2(dx*(x+1.5),dy*(y+0.5)));vec4 m2=texture2D(smp,vec2(dx*(x+2.5),dy*(y+0.5)));vec4 m3=texture2D(smp,vec2(dx*(x+3.5),dy*(y+0.5)));
|
|
348
|
+
return mat4(m0,m1,m2,m3);
|
|
349
|
+
#endif
|
|
350
|
+
}
|
|
351
|
+
#endif
|
|
352
|
+
#endif
|
|
353
|
+
#endif
|
|
354
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["bonesDeclaration",0,{name:t,shader:r}],39067);let a="bakedVertexAnimationDeclaration",n=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
355
|
+
uniform float bakedVertexAnimationTime;
|
|
356
|
+
#if !defined(WEBGL2) && !defined(WEBGPU)
|
|
357
|
+
uniform vec2 bakedVertexAnimationTextureSizeInverted;
|
|
358
|
+
#endif
|
|
359
|
+
uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;
|
|
360
|
+
#ifdef INSTANCES
|
|
361
|
+
attribute vec4 bakedVertexAnimationSettingsInstanced;
|
|
362
|
+
#endif
|
|
363
|
+
#define inline
|
|
364
|
+
mat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)
|
|
365
|
+
{
|
|
366
|
+
#if defined(WEBGL2) || defined(WEBGPU)
|
|
367
|
+
int offset=int(index)*4;int frameUV=int(frame);vec4 m0=texelFetch(smp,ivec2(offset+0,frameUV),0);vec4 m1=texelFetch(smp,ivec2(offset+1,frameUV),0);vec4 m2=texelFetch(smp,ivec2(offset+2,frameUV),0);vec4 m3=texelFetch(smp,ivec2(offset+3,frameUV),0);return mat4(m0,m1,m2,m3);
|
|
368
|
+
#else
|
|
369
|
+
float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);
|
|
370
|
+
#endif
|
|
371
|
+
}
|
|
372
|
+
#endif
|
|
373
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["bakedVertexAnimationDeclaration",0,{name:a,shader:n}],15420)},85863,e=>{"use strict";var i=e.i(12423);let t="instancesDeclaration",r=`#ifdef INSTANCES
|
|
374
|
+
attribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;
|
|
375
|
+
#ifdef INSTANCESCOLOR
|
|
376
|
+
attribute vec4 instanceColor;
|
|
377
|
+
#endif
|
|
378
|
+
#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)
|
|
379
|
+
uniform mat4 world;
|
|
380
|
+
#endif
|
|
381
|
+
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
382
|
+
attribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;
|
|
383
|
+
#ifdef THIN_INSTANCES
|
|
384
|
+
uniform mat4 previousWorld;
|
|
385
|
+
#endif
|
|
386
|
+
#endif
|
|
387
|
+
#else
|
|
388
|
+
#if !defined(WORLD_UBO)
|
|
389
|
+
uniform mat4 world;
|
|
390
|
+
#endif
|
|
391
|
+
#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
392
|
+
uniform mat4 previousWorld;
|
|
393
|
+
#endif
|
|
394
|
+
#endif
|
|
395
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["instancesDeclaration",0,{name:t,shader:r}])},42927,e=>{"use strict";var i=e.i(12423);let t="clipPlaneVertexDeclaration",r=`#ifdef CLIPPLANE
|
|
396
|
+
uniform vec4 vClipPlane;varying float fClipDistance;
|
|
397
|
+
#endif
|
|
398
|
+
#ifdef CLIPPLANE2
|
|
399
|
+
uniform vec4 vClipPlane2;varying float fClipDistance2;
|
|
400
|
+
#endif
|
|
401
|
+
#ifdef CLIPPLANE3
|
|
402
|
+
uniform vec4 vClipPlane3;varying float fClipDistance3;
|
|
403
|
+
#endif
|
|
404
|
+
#ifdef CLIPPLANE4
|
|
405
|
+
uniform vec4 vClipPlane4;varying float fClipDistance4;
|
|
406
|
+
#endif
|
|
407
|
+
#ifdef CLIPPLANE5
|
|
408
|
+
uniform vec4 vClipPlane5;varying float fClipDistance5;
|
|
409
|
+
#endif
|
|
410
|
+
#ifdef CLIPPLANE6
|
|
411
|
+
uniform vec4 vClipPlane6;varying float fClipDistance6;
|
|
412
|
+
#endif
|
|
413
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["clipPlaneVertexDeclaration",0,{name:t,shader:r}])},40805,30667,76955,16607,e=>{"use strict";var i=e.i(12423);let t="instancesVertex",r=`#ifdef INSTANCES
|
|
414
|
+
mat4 finalWorld=mat4(world0,world1,world2,world3);
|
|
415
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
416
|
+
mat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,
|
|
417
|
+
previousWorld2,previousWorld3);
|
|
418
|
+
#endif
|
|
419
|
+
#ifdef THIN_INSTANCES
|
|
420
|
+
finalWorld=world*finalWorld;
|
|
421
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
422
|
+
finalPreviousWorld=previousWorld*finalPreviousWorld;
|
|
423
|
+
#endif
|
|
424
|
+
#endif
|
|
425
|
+
#else
|
|
426
|
+
mat4 finalWorld=world;
|
|
427
|
+
#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR) || defined(VELOCITY_LINEAR)
|
|
428
|
+
mat4 finalPreviousWorld=previousWorld;
|
|
429
|
+
#endif
|
|
430
|
+
#endif
|
|
431
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["instancesVertex",0,{name:t,shader:r}],40805);let a="bonesVertex",n=`#ifndef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
432
|
+
#if NUM_BONE_INFLUENCERS>0
|
|
433
|
+
mat4 influence;
|
|
434
|
+
#ifdef BONETEXTURE
|
|
435
|
+
influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];
|
|
436
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
437
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];
|
|
438
|
+
#endif
|
|
439
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
440
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];
|
|
441
|
+
#endif
|
|
442
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
443
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];
|
|
444
|
+
#endif
|
|
445
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
446
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];
|
|
447
|
+
#endif
|
|
448
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
449
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];
|
|
450
|
+
#endif
|
|
451
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
452
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];
|
|
453
|
+
#endif
|
|
454
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
455
|
+
influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];
|
|
456
|
+
#endif
|
|
457
|
+
#else
|
|
458
|
+
influence=mBones[int(matricesIndices[0])]*matricesWeights[0];
|
|
459
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
460
|
+
influence+=mBones[int(matricesIndices[1])]*matricesWeights[1];
|
|
461
|
+
#endif
|
|
462
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
463
|
+
influence+=mBones[int(matricesIndices[2])]*matricesWeights[2];
|
|
464
|
+
#endif
|
|
465
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
466
|
+
influence+=mBones[int(matricesIndices[3])]*matricesWeights[3];
|
|
467
|
+
#endif
|
|
468
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
469
|
+
influence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
|
|
470
|
+
#endif
|
|
471
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
472
|
+
influence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
|
|
473
|
+
#endif
|
|
474
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
475
|
+
influence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
|
|
476
|
+
#endif
|
|
477
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
478
|
+
influence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
|
|
479
|
+
#endif
|
|
480
|
+
#endif
|
|
481
|
+
finalWorld=finalWorld*influence;
|
|
482
|
+
#endif
|
|
483
|
+
#endif
|
|
484
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["bonesVertex",0,{name:a,shader:n}],30667);let o="bakedVertexAnimation",s=`#ifdef BAKED_VERTEX_ANIMATION_TEXTURE
|
|
485
|
+
{
|
|
486
|
+
#ifdef INSTANCES
|
|
487
|
+
#define BVASNAME bakedVertexAnimationSettingsInstanced
|
|
488
|
+
#else
|
|
489
|
+
#define BVASNAME bakedVertexAnimationSettings
|
|
490
|
+
#endif
|
|
491
|
+
float VATStartFrame=BVASNAME.x;float VATEndFrame=BVASNAME.y;float VATOffsetFrame=BVASNAME.z;float VATSpeed=BVASNAME.w;float totalFrames=VATEndFrame-VATStartFrame+1.0;float time=bakedVertexAnimationTime*VATSpeed/totalFrames;float frameCorrection=time<1.0 ? 0.0 : 1.0;float numOfFrames=totalFrames-frameCorrection;float VATFrameNum=fract(time)*numOfFrames;VATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);VATFrameNum=floor(VATFrameNum);VATFrameNum+=VATStartFrame+frameCorrection;mat4 VATInfluence;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];
|
|
492
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
493
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];
|
|
494
|
+
#endif
|
|
495
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
496
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];
|
|
497
|
+
#endif
|
|
498
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
499
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];
|
|
500
|
+
#endif
|
|
501
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
502
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];
|
|
503
|
+
#endif
|
|
504
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
505
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];
|
|
506
|
+
#endif
|
|
507
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
508
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];
|
|
509
|
+
#endif
|
|
510
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
511
|
+
VATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];
|
|
512
|
+
#endif
|
|
513
|
+
finalWorld=finalWorld*VATInfluence;}
|
|
514
|
+
#endif
|
|
515
|
+
`;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["bakedVertexAnimation",0,{name:o,shader:s}],76955);let f="clipPlaneVertex",l=`#ifdef CLIPPLANE
|
|
516
|
+
fClipDistance=dot(worldPos,vClipPlane);
|
|
517
|
+
#endif
|
|
518
|
+
#ifdef CLIPPLANE2
|
|
519
|
+
fClipDistance2=dot(worldPos,vClipPlane2);
|
|
520
|
+
#endif
|
|
521
|
+
#ifdef CLIPPLANE3
|
|
522
|
+
fClipDistance3=dot(worldPos,vClipPlane3);
|
|
523
|
+
#endif
|
|
524
|
+
#ifdef CLIPPLANE4
|
|
525
|
+
fClipDistance4=dot(worldPos,vClipPlane4);
|
|
526
|
+
#endif
|
|
527
|
+
#ifdef CLIPPLANE5
|
|
528
|
+
fClipDistance5=dot(worldPos,vClipPlane5);
|
|
529
|
+
#endif
|
|
530
|
+
#ifdef CLIPPLANE6
|
|
531
|
+
fClipDistance6=dot(worldPos,vClipPlane6);
|
|
532
|
+
#endif
|
|
533
|
+
`;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["clipPlaneVertex",0,{name:f,shader:l}],16607)},57828,29231,17464,e=>{"use strict";var i=e.i(12423);let t="fogVertexDeclaration",r=`#ifdef FOG
|
|
534
|
+
varying vec3 vFogDistance;
|
|
535
|
+
#endif
|
|
536
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["fogVertexDeclaration",0,{name:t,shader:r}],57828);let a="fogVertex",n=`#ifdef FOG
|
|
537
|
+
vFogDistance=(view*worldPos).xyz;
|
|
538
|
+
#endif
|
|
539
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["fogVertex",0,{name:a,shader:n}],29231);let o="vertexColorMixing",s=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
540
|
+
vColor=vec4(1.0);
|
|
541
|
+
#ifdef VERTEXCOLOR
|
|
542
|
+
#ifdef VERTEXALPHA
|
|
543
|
+
vColor*=colorUpdated;
|
|
544
|
+
#else
|
|
545
|
+
vColor.rgb*=colorUpdated.rgb;
|
|
546
|
+
#endif
|
|
547
|
+
#endif
|
|
548
|
+
#ifdef INSTANCESCOLOR
|
|
549
|
+
vColor*=instanceColor;
|
|
550
|
+
#endif
|
|
551
|
+
#endif
|
|
552
|
+
`;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["vertexColorMixing",0,{name:o,shader:s}],17464)},32936,32235,61193,99838,e=>{"use strict";var i=e.i(12423);let t="morphTargetsVertexGlobalDeclaration",r=`#ifdef MORPHTARGETS
|
|
553
|
+
uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
|
|
554
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
555
|
+
uniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)
|
|
556
|
+
{
|
|
557
|
+
#if defined(WEBGL2) || defined(WEBGPU)
|
|
558
|
+
int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0).xyz;
|
|
559
|
+
#else
|
|
560
|
+
float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;
|
|
561
|
+
#endif
|
|
562
|
+
}
|
|
563
|
+
vec4 readVector4FromRawSampler(int targetIndex,float vertexIndex)
|
|
564
|
+
{
|
|
565
|
+
#if defined(WEBGL2) || defined(WEBGPU)
|
|
566
|
+
int textureWidth=int(morphTargetTextureInfo.y);int y=int(vertexIndex)/textureWidth;int x=int(vertexIndex) % textureWidth;return texelFetch(morphTargets,ivec3(x,y,int(morphTargetTextureIndices[targetIndex])),0);
|
|
567
|
+
#else
|
|
568
|
+
float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV);
|
|
569
|
+
#endif
|
|
570
|
+
}
|
|
571
|
+
#endif
|
|
572
|
+
#endif
|
|
573
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["morphTargetsVertexGlobalDeclaration",0,{name:t,shader:r}],32936);let a="morphTargetsVertexDeclaration",n=`#ifdef MORPHTARGETS
|
|
574
|
+
#ifndef MORPHTARGETS_TEXTURE
|
|
575
|
+
#ifdef MORPHTARGETS_POSITION
|
|
576
|
+
attribute vec3 position{X};
|
|
577
|
+
#endif
|
|
578
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
579
|
+
attribute vec3 normal{X};
|
|
580
|
+
#endif
|
|
581
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
582
|
+
attribute vec3 tangent{X};
|
|
583
|
+
#endif
|
|
584
|
+
#ifdef MORPHTARGETS_UV
|
|
585
|
+
attribute vec2 uv_{X};
|
|
586
|
+
#endif
|
|
587
|
+
#ifdef MORPHTARGETS_UV2
|
|
588
|
+
attribute vec2 uv2_{X};
|
|
589
|
+
#endif
|
|
590
|
+
#ifdef MORPHTARGETS_COLOR
|
|
591
|
+
attribute vec4 color{X};
|
|
592
|
+
#endif
|
|
593
|
+
#elif {X}==0
|
|
594
|
+
uniform float morphTargetCount;
|
|
595
|
+
#endif
|
|
596
|
+
#endif
|
|
597
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["morphTargetsVertexDeclaration",0,{name:a,shader:n}],32235);let o="morphTargetsVertexGlobal",s=`#ifdef MORPHTARGETS
|
|
598
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
599
|
+
float vertexID;
|
|
600
|
+
#endif
|
|
601
|
+
#endif
|
|
602
|
+
`;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["morphTargetsVertexGlobal",0,{name:o,shader:s}],61193);let f="morphTargetsVertex",l=`#ifdef MORPHTARGETS
|
|
603
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
604
|
+
#if {X}==0
|
|
605
|
+
for (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (float(i)>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;
|
|
606
|
+
#ifdef MORPHTARGETS_POSITION
|
|
607
|
+
positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];
|
|
608
|
+
#endif
|
|
609
|
+
#ifdef MORPHTARGETTEXTURE_HASPOSITIONS
|
|
610
|
+
vertexID+=1.0;
|
|
611
|
+
#endif
|
|
612
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
613
|
+
normalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];
|
|
614
|
+
#endif
|
|
615
|
+
#ifdef MORPHTARGETTEXTURE_HASNORMALS
|
|
616
|
+
vertexID+=1.0;
|
|
617
|
+
#endif
|
|
618
|
+
#ifdef MORPHTARGETS_UV
|
|
619
|
+
uvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];
|
|
620
|
+
#endif
|
|
621
|
+
#ifdef MORPHTARGETTEXTURE_HASUVS
|
|
622
|
+
vertexID+=1.0;
|
|
623
|
+
#endif
|
|
624
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
625
|
+
tangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];
|
|
626
|
+
#endif
|
|
627
|
+
#ifdef MORPHTARGETTEXTURE_HASTANGENTS
|
|
628
|
+
vertexID+=1.0;
|
|
629
|
+
#endif
|
|
630
|
+
#ifdef MORPHTARGETS_UV2
|
|
631
|
+
uv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*morphTargetInfluences[i];
|
|
632
|
+
#endif
|
|
633
|
+
#ifdef MORPHTARGETTEXTURE_HASUV2S
|
|
634
|
+
vertexID+=1.0;
|
|
635
|
+
#endif
|
|
636
|
+
#ifdef MORPHTARGETS_COLOR
|
|
637
|
+
colorUpdated+=(readVector4FromRawSampler(i,vertexID)-color)*morphTargetInfluences[i];
|
|
638
|
+
#endif
|
|
639
|
+
}
|
|
640
|
+
#endif
|
|
641
|
+
#else
|
|
642
|
+
#ifdef MORPHTARGETS_POSITION
|
|
643
|
+
positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
|
|
644
|
+
#endif
|
|
645
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
646
|
+
normalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];
|
|
647
|
+
#endif
|
|
648
|
+
#ifdef MORPHTARGETS_TANGENT
|
|
649
|
+
tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
|
|
650
|
+
#endif
|
|
651
|
+
#ifdef MORPHTARGETS_UV
|
|
652
|
+
uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
|
|
653
|
+
#endif
|
|
654
|
+
#ifdef MORPHTARGETS_UV2
|
|
655
|
+
uv2Updated+=(uv2_{X}-uv2)*morphTargetInfluences[{X}];
|
|
656
|
+
#endif
|
|
657
|
+
#ifdef MORPHTARGETS_COLOR
|
|
658
|
+
colorUpdated+=(color{X}-color)*morphTargetInfluences[{X}];
|
|
659
|
+
#endif
|
|
660
|
+
#endif
|
|
661
|
+
#endif
|
|
662
|
+
`;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["morphTargetsVertex",0,{name:f,shader:l}],99838)},74747,78119,23131,39962,41527,50010,91440,43842,61981,55212,23689,e=>{"use strict";var i=e.i(12423);let t="decalVertexDeclaration",r=`#ifdef DECAL
|
|
663
|
+
uniform vec4 vDecalInfos;uniform mat4 decalMatrix;
|
|
664
|
+
#endif
|
|
665
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["decalVertexDeclaration",0,{name:t,shader:r}],74747);let a="uvAttributeDeclaration",n=`#ifdef UV{X}
|
|
666
|
+
attribute vec2 uv{X};
|
|
667
|
+
#endif
|
|
668
|
+
`;i.ShaderStore.IncludesShadersStore[a]||(i.ShaderStore.IncludesShadersStore[a]=n),e.s(["uvAttributeDeclaration",0,{name:a,shader:n}],78119);let o="prePassVertexDeclaration",s=`#ifdef PREPASS
|
|
669
|
+
#ifdef PREPASS_LOCAL_POSITION
|
|
670
|
+
varying vec3 vPosition;
|
|
671
|
+
#endif
|
|
672
|
+
#ifdef PREPASS_DEPTH
|
|
673
|
+
varying vec3 vViewPos;
|
|
674
|
+
#endif
|
|
675
|
+
#ifdef PREPASS_NORMALIZED_VIEW_DEPTH
|
|
676
|
+
varying float vNormViewDepth;
|
|
677
|
+
#endif
|
|
678
|
+
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
|
|
679
|
+
uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
|
|
680
|
+
#endif
|
|
681
|
+
#endif
|
|
682
|
+
`;i.ShaderStore.IncludesShadersStore[o]||(i.ShaderStore.IncludesShadersStore[o]=s),e.s(["prePassVertexDeclaration",0,{name:o,shader:s}],23131);let f="samplerVertexDeclaration",l=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
683
|
+
varying vec2 v_VARYINGNAME_UV;
|
|
684
|
+
#endif
|
|
685
|
+
`;i.ShaderStore.IncludesShadersStore[f]||(i.ShaderStore.IncludesShadersStore[f]=l),e.s(["samplerVertexDeclaration",0,{name:f,shader:l}],39962);let c="lightVxFragmentDeclaration",d=`#ifdef LIGHT{X}
|
|
686
|
+
uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
|
|
687
|
+
#ifdef SPECULARTERM
|
|
688
|
+
uniform vec4 vLightSpecular{X};
|
|
689
|
+
#else
|
|
690
|
+
vec4 vLightSpecular{X}=vec4(0.);
|
|
691
|
+
#endif
|
|
692
|
+
#ifdef SHADOW{X}
|
|
693
|
+
#ifdef SHADOWCSM{X}
|
|
694
|
+
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
|
|
695
|
+
#elif defined(SHADOWCUBE{X})
|
|
696
|
+
#else
|
|
697
|
+
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
|
|
698
|
+
#endif
|
|
699
|
+
uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
|
|
700
|
+
#endif
|
|
701
|
+
#ifdef SPOTLIGHT{X}
|
|
702
|
+
uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
|
|
703
|
+
#elif defined(POINTLIGHT{X})
|
|
704
|
+
uniform vec4 vLightFalloff{X};
|
|
705
|
+
#elif defined(HEMILIGHT{X})
|
|
706
|
+
uniform vec3 vLightGround{X};
|
|
707
|
+
#endif
|
|
708
|
+
#if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
709
|
+
uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
|
|
710
|
+
#endif
|
|
711
|
+
#endif
|
|
712
|
+
`;i.ShaderStore.IncludesShadersStore[c]||(i.ShaderStore.IncludesShadersStore[c]=d),e.s(["lightVxFragmentDeclaration",0,{name:c,shader:d}],41527);let m="lightVxUboDeclaration",E=`#ifdef LIGHT{X}
|
|
713
|
+
uniform Light{X}
|
|
714
|
+
{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
|
|
715
|
+
#ifdef SPOTLIGHT{X}
|
|
716
|
+
vec4 vLightDirection;vec4 vLightFalloff;
|
|
717
|
+
#elif defined(POINTLIGHT{X})
|
|
718
|
+
vec4 vLightFalloff;
|
|
719
|
+
#elif defined(HEMILIGHT{X})
|
|
720
|
+
vec3 vLightGround;
|
|
721
|
+
#elif defined(CLUSTLIGHT{X})
|
|
722
|
+
vec2 vSliceData;vec2 vSliceRanges[CLUSTLIGHT_SLICES];
|
|
723
|
+
#endif
|
|
724
|
+
#if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
725
|
+
vec4 vLightWidth;vec4 vLightHeight;
|
|
726
|
+
#endif
|
|
727
|
+
vec4 shadowsInfo;vec2 depthValues;} light{X};
|
|
728
|
+
#ifdef SHADOW{X}
|
|
729
|
+
#ifdef SHADOWCSM{X}
|
|
730
|
+
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
|
|
731
|
+
#elif defined(SHADOWCUBE{X})
|
|
732
|
+
#else
|
|
733
|
+
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
|
|
734
|
+
#endif
|
|
735
|
+
#endif
|
|
736
|
+
#endif
|
|
737
|
+
`;i.ShaderStore.IncludesShadersStore[m]||(i.ShaderStore.IncludesShadersStore[m]=E),e.s(["lightVxUboDeclaration",0,{name:m,shader:E}],50010);let u="prePassVertex",v=`#ifdef PREPASS_DEPTH
|
|
738
|
+
vViewPos=(view*worldPos).rgb;
|
|
739
|
+
#endif
|
|
740
|
+
#ifdef PREPASS_NORMALIZED_VIEW_DEPTH
|
|
741
|
+
vNormViewDepth=((view*worldPos).z-cameraInfo.x)/(cameraInfo.y-cameraInfo.x);
|
|
742
|
+
#endif
|
|
743
|
+
#ifdef PREPASS_LOCAL_POSITION
|
|
744
|
+
vPosition=positionUpdated.xyz;
|
|
745
|
+
#endif
|
|
746
|
+
#if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
|
|
747
|
+
vCurrentPosition=viewProjection*worldPos;
|
|
748
|
+
#if NUM_BONE_INFLUENCERS>0
|
|
749
|
+
mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
|
|
750
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
751
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
|
|
752
|
+
#endif
|
|
753
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
754
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
|
|
755
|
+
#endif
|
|
756
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
757
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
|
|
758
|
+
#endif
|
|
759
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
760
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
|
|
761
|
+
#endif
|
|
762
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
763
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
|
|
764
|
+
#endif
|
|
765
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
766
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
|
|
767
|
+
#endif
|
|
768
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
769
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
|
|
770
|
+
#endif
|
|
771
|
+
vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
|
|
772
|
+
#else
|
|
773
|
+
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
|
|
774
|
+
#endif
|
|
775
|
+
#endif
|
|
776
|
+
`;i.ShaderStore.IncludesShadersStore[u]||(i.ShaderStore.IncludesShadersStore[u]=v),e.s(["prePassVertex",0,{name:u,shader:v}],91440);let S="uvVariableDeclaration",I=`#if !defined(UV{X}) && defined(MAINUV{X})
|
|
777
|
+
vec2 uv{X}=vec2(0.,0.);
|
|
778
|
+
#endif
|
|
779
|
+
#ifdef MAINUV{X}
|
|
780
|
+
vMainUV{X}=uv{X};
|
|
781
|
+
#endif
|
|
782
|
+
`;i.ShaderStore.IncludesShadersStore[S]||(i.ShaderStore.IncludesShadersStore[S]=I),e.s(["uvVariableDeclaration",0,{name:S,shader:I}],43842);let N="samplerVertexImplementation",_=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
783
|
+
if (v_INFONAME_==0.)
|
|
784
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}
|
|
785
|
+
#ifdef UV2
|
|
786
|
+
else if (v_INFONAME_==1.)
|
|
787
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2Updated,1.0,0.0));}
|
|
788
|
+
#endif
|
|
789
|
+
#ifdef UV3
|
|
790
|
+
else if (v_INFONAME_==2.)
|
|
791
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}
|
|
792
|
+
#endif
|
|
793
|
+
#ifdef UV4
|
|
794
|
+
else if (v_INFONAME_==3.)
|
|
795
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}
|
|
796
|
+
#endif
|
|
797
|
+
#ifdef UV5
|
|
798
|
+
else if (v_INFONAME_==4.)
|
|
799
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}
|
|
800
|
+
#endif
|
|
801
|
+
#ifdef UV6
|
|
802
|
+
else if (v_INFONAME_==5.)
|
|
803
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}
|
|
804
|
+
#endif
|
|
805
|
+
#endif
|
|
806
|
+
`;i.ShaderStore.IncludesShadersStore[N]||(i.ShaderStore.IncludesShadersStore[N]=_),e.s(["samplerVertexImplementation",0,{name:N,shader:_}],61981);let A="shadowsVertex",R=`#ifdef SHADOWS
|
|
807
|
+
#if defined(SHADOWCSM{X})
|
|
808
|
+
vPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;
|
|
809
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
810
|
+
vDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
811
|
+
#else
|
|
812
|
+
vDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
813
|
+
#endif
|
|
814
|
+
}
|
|
815
|
+
#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})
|
|
816
|
+
vPositionFromLight{X}=lightMatrix{X}*worldPos;
|
|
817
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
818
|
+
vDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
819
|
+
#else
|
|
820
|
+
vDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
821
|
+
#endif
|
|
822
|
+
#endif
|
|
823
|
+
#endif
|
|
824
|
+
`;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R),e.s(["shadowsVertex",0,{name:A,shader:R}],55212);let h="logDepthVertex",p=`#ifdef LOGARITHMICDEPTH
|
|
825
|
+
vFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
|
|
826
|
+
#endif
|
|
827
|
+
`;i.ShaderStore.IncludesShadersStore[h]||(i.ShaderStore.IncludesShadersStore[h]=p),e.s(["logDepthVertex",0,{name:h,shader:p}],23689)},14469,e=>{"use strict";var i=e.i(12423);e.i(85668),e.i(6232);let t="openpbrUboDeclaration",r=`layout(std140,column_major) uniform;uniform Material {vec2 vTangentSpaceParams;vec4 vLightingIntensity;float pointSize;vec2 vDebugMode;vec2 renderTargetSize;vec4 cameraInfo;vec4 vTextureRepetitionHexTilingParams;mat4 backgroundRefractionMatrix;vec3 vBackgroundRefractionInfos;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;float vBaseWeight;vec4 vBaseColor;float vBaseDiffuseRoughness;vec4 vReflectanceInfo;vec4 vSpecularColor;vec3 vSpecularAnisotropy;float vTransmissionWeight;vec3 vTransmissionColor;float vTransmissionDepth;vec3 vTransmissionScatter;float vTransmissionScatterAnisotropy;float vTransmissionDispersionScale;float vTransmissionDispersionAbbeNumber;float vSubsurfaceWeight;vec3 vSubsurfaceColor;float vSubsurfaceRadius;vec3 vSubsurfaceRadiusScale;float vSubsurfaceScatterAnisotropy;float vCoatWeight;vec3 vCoatColor;float vCoatRoughness;float vCoatRoughnessAnisotropy;float vCoatIor;float vCoatDarkening;float vFuzzWeight;vec3 vFuzzColor;float vFuzzRoughness;float vGeometryThinWalled;vec2 vGeometryCoatTangent;float vGeometryThickness;vec3 vEmissionColor;float vThinFilmWeight;vec2 vThinFilmThickness;float vThinFilmIor;vec2 vBaseWeightInfos;mat4 baseWeightMatrix;vec2 vBaseColorInfos;mat4 baseColorMatrix;vec2 vBaseDiffuseRoughnessInfos;mat4 baseDiffuseRoughnessMatrix;vec2 vBaseMetalnessInfos;mat4 baseMetalnessMatrix;vec2 vSpecularWeightInfos;mat4 specularWeightMatrix;vec2 vSpecularColorInfos;mat4 specularColorMatrix;vec2 vSpecularRoughnessInfos;mat4 specularRoughnessMatrix;vec2 vSpecularRoughnessAnisotropyInfos;mat4 specularRoughnessAnisotropyMatrix;vec2 vTransmissionWeightInfos;mat4 transmissionWeightMatrix;vec2 vTransmissionColorInfos;mat4 transmissionColorMatrix;vec2 vTransmissionDepthInfos;mat4 transmissionDepthMatrix;vec2 vTransmissionScatterInfos;mat4 transmissionScatterMatrix;vec2 vTransmissionDispersionScaleInfos;mat4 transmissionDispersionScaleMatrix;vec2 vSubsurfaceWeightInfos;mat4 subsurfaceWeightMatrix;vec2 vSubsurfaceColorInfos;mat4 subsurfaceColorMatrix;vec2 vSubsurfaceRadiusScaleInfos;mat4 subsurfaceRadiusScaleMatrix;vec2 vCoatWeightInfos;mat4 coatWeightMatrix;vec2 vCoatColorInfos;mat4 coatColorMatrix;vec2 vCoatRoughnessInfos;mat4 coatRoughnessMatrix;vec2 vCoatRoughnessAnisotropyInfos;mat4 coatRoughnessAnisotropyMatrix;vec2 vCoatDarkeningInfos;mat4 coatDarkeningMatrix;vec2 vFuzzWeightInfos;mat4 fuzzWeightMatrix;vec2 vFuzzColorInfos;mat4 fuzzColorMatrix;vec2 vFuzzRoughnessInfos;mat4 fuzzRoughnessMatrix;vec2 vGeometryNormalInfos;mat4 geometryNormalMatrix;vec2 vGeometryTangentInfos;mat4 geometryTangentMatrix;vec2 vGeometryCoatNormalInfos;mat4 geometryCoatNormalMatrix;vec2 vGeometryCoatTangentInfos;mat4 geometryCoatTangentMatrix;vec2 vGeometryOpacityInfos;mat4 geometryOpacityMatrix;vec2 vGeometryThicknessInfos;mat4 geometryThicknessMatrix;vec2 vEmissionColorInfos;mat4 emissionColorMatrix;vec2 vThinFilmWeightInfos;mat4 thinFilmWeightMatrix;vec2 vThinFilmThicknessInfos;mat4 thinFilmThicknessMatrix;vec2 vAmbientOcclusionInfos;mat4 ambientOcclusionMatrix;
|
|
828
|
+
#define ADDITIONAL_UBO_DECLARATION
|
|
829
|
+
};
|
|
830
|
+
#include<sceneUboDeclaration>
|
|
831
|
+
#include<meshUboDeclaration>
|
|
832
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r),e.s(["openpbrUboDeclaration",0,{name:t,shader:r}])},43820,e=>{"use strict";var i=e.i(12423);let t="sceneVertexDeclaration",r=`uniform mat4 viewProjection;
|
|
833
|
+
#ifdef MULTIVIEW
|
|
834
|
+
uniform mat4 viewProjectionR;
|
|
835
|
+
#endif
|
|
836
|
+
uniform mat4 view;uniform mat4 projection;uniform vec4 vEyePosition;
|
|
837
|
+
`;i.ShaderStore.IncludesShadersStore[t]||(i.ShaderStore.IncludesShadersStore[t]=r);var a=e.i(74747);let n="openpbrVertexDeclaration",o=`#include<sceneVertexDeclaration>
|
|
838
|
+
#ifdef BASE_COLOR
|
|
839
|
+
uniform vec2 vBaseColorInfos;uniform mat4 baseColorMatrix;
|
|
840
|
+
#endif
|
|
841
|
+
#ifdef BASE_WEIGHT
|
|
842
|
+
uniform mat4 baseWeightMatrix;uniform vec2 vBaseWeightInfos;
|
|
843
|
+
#endif
|
|
844
|
+
uniform float vBaseDiffuseRoughness;
|
|
845
|
+
#ifdef BASE_DIFFUSE_ROUGHNESS
|
|
846
|
+
uniform mat4 baseDiffuseRoughnessMatrix;uniform vec2 vBaseDiffuseRoughnessInfos;
|
|
847
|
+
#endif
|
|
848
|
+
#ifdef AMBIENT_OCCLUSION
|
|
849
|
+
uniform vec2 vAmbientOcclusionInfos;uniform mat4 ambientOcclusionMatrix;
|
|
850
|
+
#endif
|
|
851
|
+
#ifdef EMISSION_COLOR
|
|
852
|
+
uniform vec2 vEmissionColorInfos;uniform mat4 emissionColorMatrix;
|
|
853
|
+
#endif
|
|
854
|
+
#ifdef LIGHTMAP
|
|
855
|
+
uniform vec2 vLightmapInfos;uniform mat4 lightmapMatrix;
|
|
856
|
+
#endif
|
|
857
|
+
#ifdef BASE_METALNESS
|
|
858
|
+
uniform vec2 vBaseMetalnessInfos;uniform mat4 baseMetalnessMatrix;
|
|
859
|
+
#endif
|
|
860
|
+
#ifdef SPECULAR_WEIGHT
|
|
861
|
+
uniform vec2 vSpecularWeightInfos;uniform mat4 specularWeightMatrix;
|
|
862
|
+
#endif
|
|
863
|
+
#ifdef SPECULAR_COLOR
|
|
864
|
+
uniform vec2 vSpecularColorInfos;uniform mat4 specularColorMatrix;
|
|
865
|
+
#endif
|
|
866
|
+
#ifdef SPECULAR_ROUGHNESS
|
|
867
|
+
uniform vec2 vSpecularRoughnessInfos;uniform mat4 specularRoughnessMatrix;
|
|
868
|
+
#endif
|
|
869
|
+
#ifdef SPECULAR_ROUGHNESS_ANISOTROPY
|
|
870
|
+
uniform vec2 vSpecularRoughnessAnisotropyInfos;uniform mat4 specularRoughnessAnisotropyMatrix;
|
|
871
|
+
#endif
|
|
872
|
+
#ifdef TRANSMISSION_WEIGHT
|
|
873
|
+
uniform vec2 vTransmissionWeightInfos;uniform mat4 transmissionWeightMatrix;
|
|
874
|
+
#endif
|
|
875
|
+
#ifdef TRANSMISSION_COLOR
|
|
876
|
+
uniform vec2 vTransmissionColorInfos;uniform mat4 transmissionColorMatrix;
|
|
877
|
+
#endif
|
|
878
|
+
#ifdef TRANSMISSION_DEPTH
|
|
879
|
+
uniform vec2 vTransmissionDepthInfos;uniform mat4 transmissionDepthMatrix;
|
|
880
|
+
#endif
|
|
881
|
+
#ifdef TRANSMISSION_DISPERSION_SCALE
|
|
882
|
+
uniform vec2 vTransmissionDispersionScaleInfos;uniform mat4 transmissionDispersionScaleMatrix;
|
|
883
|
+
#endif
|
|
884
|
+
#ifdef SUBSURFACE_WEIGHT
|
|
885
|
+
uniform vec2 vSubsurfaceWeightInfos;uniform mat4 subsurfaceWeightMatrix;
|
|
886
|
+
#endif
|
|
887
|
+
#ifdef SUBSURFACE_COLOR
|
|
888
|
+
uniform vec2 vSubsurfaceColorInfos;uniform mat4 subsurfaceColorMatrix;
|
|
889
|
+
#endif
|
|
890
|
+
#ifdef SUBSURFACE_RADIUS_SCALE
|
|
891
|
+
uniform vec2 vSubsurfaceRadiusScaleInfos;uniform mat4 subsurfaceRadiusScaleMatrix;
|
|
892
|
+
#endif
|
|
893
|
+
#ifdef COAT_WEIGHT
|
|
894
|
+
uniform vec2 vCoatWeightInfos;uniform mat4 coatWeightMatrix;
|
|
895
|
+
#endif
|
|
896
|
+
#ifdef COAT_COLOR
|
|
897
|
+
uniform vec2 vCoatColorInfos;uniform mat4 coatColorMatrix;
|
|
898
|
+
#endif
|
|
899
|
+
#ifdef COAT_ROUGHNESS
|
|
900
|
+
uniform vec2 vCoatRoughnessInfos;uniform mat4 coatRoughnessMatrix;
|
|
901
|
+
#endif
|
|
902
|
+
#ifdef COAT_ROUGHNESS_ANISOTROPY
|
|
903
|
+
uniform vec2 vCoatRoughnessAnisotropyInfos;uniform mat4 coatRoughnessAnisotropyMatrix;
|
|
904
|
+
#endif
|
|
905
|
+
#ifdef COAT_IOR
|
|
906
|
+
uniform vec2 vCoatIorInfos;uniform mat4 coatIorMatrix;
|
|
907
|
+
#endif
|
|
908
|
+
#ifdef COAT_DARKENING
|
|
909
|
+
uniform vec2 vCoatDarkeningInfos;uniform mat4 coatDarkeningMatrix;
|
|
910
|
+
#endif
|
|
911
|
+
#ifdef FUZZ_WEIGHT
|
|
912
|
+
uniform vec2 vFuzzWeightInfos;uniform mat4 fuzzWeightMatrix;
|
|
913
|
+
#endif
|
|
914
|
+
#ifdef FUZZ_COLOR
|
|
915
|
+
uniform vec2 vFuzzColorInfos;uniform mat4 fuzzColorMatrix;
|
|
916
|
+
#endif
|
|
917
|
+
#ifdef FUZZ_ROUGHNESS
|
|
918
|
+
uniform vec2 vFuzzRoughnessInfos;uniform mat4 fuzzRoughnessMatrix;
|
|
919
|
+
#endif
|
|
920
|
+
#ifdef GEOMETRY_NORMAL
|
|
921
|
+
uniform vec2 vGeometryNormalInfos;uniform mat4 geometryNormalMatrix;
|
|
922
|
+
#endif
|
|
923
|
+
#ifdef GEOMETRY_TANGENT
|
|
924
|
+
uniform vec2 vGeometryTangentInfos;uniform mat4 geometryTangentMatrix;
|
|
925
|
+
#endif
|
|
926
|
+
#ifdef GEOMETRY_COAT_NORMAL
|
|
927
|
+
uniform vec2 vGeometryCoatNormalInfos;uniform mat4 geometryCoatNormalMatrix;
|
|
928
|
+
#endif
|
|
929
|
+
#ifdef THIN_FILM_WEIGHT
|
|
930
|
+
uniform vec2 vThinFilmWeightInfos;uniform mat4 thinFilmWeightMatrix;
|
|
931
|
+
#endif
|
|
932
|
+
#ifdef THIN_FILM_THICKNESS
|
|
933
|
+
uniform vec2 vThinFilmThicknessInfos;uniform mat4 thinFilmThicknessMatrix;
|
|
934
|
+
#endif
|
|
935
|
+
#ifdef GEOMETRY_OPACITY
|
|
936
|
+
uniform mat4 geometryOpacityMatrix;uniform vec2 vGeometryOpacityInfos;
|
|
937
|
+
#endif
|
|
938
|
+
#ifdef GEOMETRY_THICKNESS
|
|
939
|
+
uniform mat4 geometryThicknessMatrix;uniform vec2 vGeometryThicknessInfos;
|
|
940
|
+
#endif
|
|
941
|
+
#ifdef POINTSIZE
|
|
942
|
+
uniform float pointSize;
|
|
943
|
+
#endif
|
|
944
|
+
uniform vec4 cameraInfo;uniform vec4 vTextureRepetitionHexTilingParams;
|
|
945
|
+
#ifdef REFLECTION
|
|
946
|
+
uniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;
|
|
947
|
+
#endif
|
|
948
|
+
#ifdef NORMAL
|
|
949
|
+
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
|
|
950
|
+
#ifdef USESPHERICALFROMREFLECTIONMAP
|
|
951
|
+
#ifdef SPHERICAL_HARMONICS
|
|
952
|
+
uniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;
|
|
953
|
+
#else
|
|
954
|
+
uniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;
|
|
955
|
+
#endif
|
|
956
|
+
#endif
|
|
957
|
+
#endif
|
|
958
|
+
#endif
|
|
959
|
+
#ifdef DETAIL
|
|
960
|
+
uniform vec4 vDetailInfos;uniform mat4 detailMatrix;
|
|
961
|
+
#endif
|
|
962
|
+
#include<decalVertexDeclaration>
|
|
963
|
+
#define ADDITIONAL_VERTEX_DECLARATION
|
|
964
|
+
`;i.ShaderStore.IncludesShadersStore[n]||(i.ShaderStore.IncludesShadersStore[n]=o);var s=e.i(85668),f=e.i(6232),l=e.i(14469),c=e.i(78119),d=e.i(92692),m=e.i(65296),E=e.i(60990),u=e.i(39067),v=e.i(15420),S=e.i(85863),I=e.i(23131),N=e.i(39962),_=e.i(50438);let A="openpbrNormalMapVertexDeclaration",R=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
|
|
965
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
966
|
+
varying mat3 vTBN;
|
|
967
|
+
#endif
|
|
968
|
+
#endif
|
|
969
|
+
`;i.ShaderStore.IncludesShadersStore[A]||(i.ShaderStore.IncludesShadersStore[A]=R);var h=e.i(42927),p=e.i(57828),T=e.i(41527),M=e.i(50010),x=e.i(32936),O=e.i(32235),g=e.i(97226),V=e.i(61193),C=e.i(99838),D=e.i(40805),F=e.i(30667),L=e.i(76955),P=e.i(91440),G=e.i(43842),U=e.i(61981);let b="openpbrNormalMapVertex",B=`#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(FUZZ)
|
|
970
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
971
|
+
vec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);
|
|
972
|
+
#endif
|
|
973
|
+
#endif
|
|
974
|
+
`;i.ShaderStore.IncludesShadersStore[b]||(i.ShaderStore.IncludesShadersStore[b]=B);var y=e.i(16607),X=e.i(29231),W=e.i(55212),H=e.i(17464),Y=e.i(23689);let z="openpbrVertexShader",w=`#define OPENPBR_VERTEX_SHADER
|
|
975
|
+
#define CUSTOM_VERTEX_EXTENSION
|
|
976
|
+
precision highp float;
|
|
977
|
+
#include<__decl__openpbrVertex>
|
|
978
|
+
#define CUSTOM_VERTEX_BEGIN
|
|
979
|
+
attribute vec3 position;
|
|
980
|
+
#ifdef NORMAL
|
|
981
|
+
attribute vec3 normal;
|
|
982
|
+
#endif
|
|
983
|
+
#ifdef TANGENT
|
|
984
|
+
attribute vec4 tangent;
|
|
985
|
+
#endif
|
|
986
|
+
#ifdef UV1
|
|
987
|
+
attribute vec2 uv;
|
|
988
|
+
#endif
|
|
989
|
+
#include<uvAttributeDeclaration>[2..7]
|
|
990
|
+
#include<mainUVVaryingDeclaration>[1..7]
|
|
991
|
+
#ifdef VERTEXCOLOR
|
|
992
|
+
attribute vec4 color;
|
|
993
|
+
#endif
|
|
994
|
+
#include<helperFunctions>
|
|
995
|
+
#include<pbrBRDFFunctions>
|
|
996
|
+
#include<bonesDeclaration>
|
|
997
|
+
#include<bakedVertexAnimationDeclaration>
|
|
998
|
+
#include<instancesDeclaration>
|
|
999
|
+
#include<prePassVertexDeclaration>
|
|
1000
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor)
|
|
1001
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight)
|
|
1002
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness)
|
|
1003
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness)
|
|
1004
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight)
|
|
1005
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor)
|
|
1006
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness)
|
|
1007
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy)
|
|
1008
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,TRANSMISSION_WEIGHT,_VARYINGNAME_,TransmissionWeight)
|
|
1009
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,TRANSMISSION_COLOR,_VARYINGNAME_,TransmissionColor)
|
|
1010
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,TRANSMISSION_DEPTH,_VARYINGNAME_,TransmissionDepth)
|
|
1011
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,TRANSMISSION_SCATTER,_VARYINGNAME_,TransmissionScatter)
|
|
1012
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,TRANSMISSION_DISPERSION_SCALE,_VARYINGNAME_,TransmissionDispersionScale)
|
|
1013
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SUBSURFACE_WEIGHT,_VARYINGNAME_,SubsurfaceWeight)
|
|
1014
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SUBSURFACE_COLOR,_VARYINGNAME_,SubsurfaceColor)
|
|
1015
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,SUBSURFACE_RADIUS_SCALE,_VARYINGNAME_,SubsurfaceRadiusScale)
|
|
1016
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight)
|
|
1017
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor)
|
|
1018
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness)
|
|
1019
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy)
|
|
1020
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening)
|
|
1021
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,FUZZ_WEIGHT,_VARYINGNAME_,FuzzWeight)
|
|
1022
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,FUZZ_COLOR,_VARYINGNAME_,FuzzColor)
|
|
1023
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,FUZZ_ROUGHNESS,_VARYINGNAME_,FuzzRoughness)
|
|
1024
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal)
|
|
1025
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent)
|
|
1026
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal)
|
|
1027
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity)
|
|
1028
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,GEOMETRY_THICKNESS,_VARYINGNAME_,GeometryThickness)
|
|
1029
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor)
|
|
1030
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,THIN_FILM_WEIGHT,_VARYINGNAME_,ThinFilmWeight)
|
|
1031
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,THIN_FILM_THICKNESS,_VARYINGNAME_,ThinFilmThickness)
|
|
1032
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion)
|
|
1033
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
|
|
1034
|
+
#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
|
|
1035
|
+
varying vec3 vPositionW;
|
|
1036
|
+
#if DEBUGMODE>0
|
|
1037
|
+
varying vec4 vClipSpacePosition;
|
|
1038
|
+
#endif
|
|
1039
|
+
#ifdef NORMAL
|
|
1040
|
+
varying vec3 vNormalW;
|
|
1041
|
+
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
|
|
1042
|
+
varying vec3 vEnvironmentIrradiance;
|
|
1043
|
+
#include<harmonicsFunctions>
|
|
1044
|
+
#endif
|
|
1045
|
+
#endif
|
|
1046
|
+
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
1047
|
+
varying vec4 vColor;
|
|
1048
|
+
#endif
|
|
1049
|
+
#include<openpbrNormalMapVertexDeclaration>
|
|
1050
|
+
#include<clipPlaneVertexDeclaration>
|
|
1051
|
+
#include<fogVertexDeclaration>
|
|
1052
|
+
#include<__decl__lightVxFragment>[0..maxSimultaneousLights]
|
|
1053
|
+
#include<morphTargetsVertexGlobalDeclaration>
|
|
1054
|
+
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
|
|
1055
|
+
#ifdef REFLECTIONMAP_SKYBOX
|
|
1056
|
+
varying vec3 vPositionUVW;
|
|
1057
|
+
#endif
|
|
1058
|
+
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
|
|
1059
|
+
varying vec3 vDirectionW;
|
|
1060
|
+
#endif
|
|
1061
|
+
#include<logDepthDeclaration>
|
|
1062
|
+
#define CUSTOM_VERTEX_DEFINITIONS
|
|
1063
|
+
void main(void) {
|
|
1064
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
|
1065
|
+
vec3 positionUpdated=position;
|
|
1066
|
+
#ifdef NORMAL
|
|
1067
|
+
vec3 normalUpdated=normal;
|
|
1068
|
+
#endif
|
|
1069
|
+
#ifdef TANGENT
|
|
1070
|
+
vec4 tangentUpdated=tangent;
|
|
1071
|
+
#endif
|
|
1072
|
+
#ifdef UV1
|
|
1073
|
+
vec2 uvUpdated=uv;
|
|
1074
|
+
#endif
|
|
1075
|
+
#ifdef UV2
|
|
1076
|
+
vec2 uv2Updated=uv2;
|
|
1077
|
+
#endif
|
|
1078
|
+
#ifdef VERTEXCOLOR
|
|
1079
|
+
vec4 colorUpdated=color;
|
|
1080
|
+
#endif
|
|
1081
|
+
#include<morphTargetsVertexGlobal>
|
|
1082
|
+
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
|
|
1083
|
+
#ifdef REFLECTIONMAP_SKYBOX
|
|
1084
|
+
vPositionUVW=positionUpdated;
|
|
1085
|
+
#endif
|
|
1086
|
+
#define CUSTOM_VERTEX_UPDATE_POSITION
|
|
1087
|
+
#define CUSTOM_VERTEX_UPDATE_NORMAL
|
|
1088
|
+
#include<instancesVertex>
|
|
1089
|
+
#if defined(PREPASS) && ((defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && !defined(BONES_VELOCITY_ENABLED)
|
|
1090
|
+
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
|
|
1091
|
+
#endif
|
|
1092
|
+
#include<bonesVertex>
|
|
1093
|
+
#include<bakedVertexAnimation>
|
|
1094
|
+
vec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vPositionW=vec3(worldPos);
|
|
1095
|
+
#ifdef PREPASS
|
|
1096
|
+
#include<prePassVertex>
|
|
1097
|
+
#endif
|
|
1098
|
+
#ifdef NORMAL
|
|
1099
|
+
mat3 normalWorld=mat3(finalWorld);
|
|
1100
|
+
#if defined(INSTANCES) && defined(THIN_INSTANCES)
|
|
1101
|
+
vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);
|
|
1102
|
+
#else
|
|
1103
|
+
#ifdef NONUNIFORMSCALING
|
|
1104
|
+
normalWorld=transposeMat3(inverseMat3(normalWorld));
|
|
1105
|
+
#endif
|
|
1106
|
+
vNormalW=normalize(normalWorld*normalUpdated);
|
|
1107
|
+
#endif
|
|
1108
|
+
#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
|
|
1109
|
+
#if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
|
|
1110
|
+
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);
|
|
1111
|
+
#if !defined(NATIVE) && !defined(WEBGPU)
|
|
1112
|
+
bool bbb=any(isnan(position));if (bbb) { }
|
|
1113
|
+
#endif
|
|
1114
|
+
float NdotV=max(dot(vNormalW,viewDirectionW),0.0);vec3 roughNormal=mix(vNormalW,viewDirectionW,(0.5*(1.0-NdotV))*vBaseDiffuseRoughness);vec3 reflectionVector=vec3(reflectionMatrix*vec4(roughNormal,0)).xyz;
|
|
1115
|
+
#else
|
|
1116
|
+
vec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;
|
|
1117
|
+
#endif
|
|
1118
|
+
#ifdef REFLECTIONMAP_OPPOSITEZ
|
|
1119
|
+
reflectionVector.z*=-1.0;
|
|
1120
|
+
#endif
|
|
1121
|
+
vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);
|
|
1122
|
+
#endif
|
|
1123
|
+
#endif
|
|
1124
|
+
#define CUSTOM_VERTEX_UPDATE_WORLDPOS
|
|
1125
|
+
#ifdef MULTIVIEW
|
|
1126
|
+
if (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}
|
|
1127
|
+
#else
|
|
1128
|
+
gl_Position=viewProjection*worldPos;
|
|
1129
|
+
#endif
|
|
1130
|
+
#if DEBUGMODE>0
|
|
1131
|
+
vClipSpacePosition=gl_Position;
|
|
1132
|
+
#endif
|
|
1133
|
+
#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
|
|
1134
|
+
vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));
|
|
1135
|
+
#endif
|
|
1136
|
+
#ifndef UV1
|
|
1137
|
+
vec2 uvUpdated=vec2(0.,0.);
|
|
1138
|
+
#endif
|
|
1139
|
+
#ifndef UV2
|
|
1140
|
+
vec2 uv2Updated=vec2(0.,0.);
|
|
1141
|
+
#endif
|
|
1142
|
+
#ifdef MAINUV1
|
|
1143
|
+
vMainUV1=uvUpdated;
|
|
1144
|
+
#endif
|
|
1145
|
+
#ifdef MAINUV2
|
|
1146
|
+
vMainUV2=uv2Updated;
|
|
1147
|
+
#endif
|
|
1148
|
+
#include<uvVariableDeclaration>[3..7]
|
|
1149
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,BASE_COLOR,_VARYINGNAME_,BaseColor,_MATRIXNAME_,baseColor,_INFONAME_,BaseColorInfos.x)
|
|
1150
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,BASE_WEIGHT,_VARYINGNAME_,BaseWeight,_MATRIXNAME_,baseWeight,_INFONAME_,BaseWeightInfos.x)
|
|
1151
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,BASE_DIFFUSE_ROUGHNESS,_VARYINGNAME_,BaseDiffuseRoughness,_MATRIXNAME_,baseDiffuseRoughness,_INFONAME_,BaseDiffuseRoughnessInfos.x)
|
|
1152
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,BASE_METALNESS,_VARYINGNAME_,BaseMetalness,_MATRIXNAME_,baseMetalness,_INFONAME_,BaseMetalnessInfos.x)
|
|
1153
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_WEIGHT,_VARYINGNAME_,SpecularWeight,_MATRIXNAME_,specularWeight,_INFONAME_,SpecularWeightInfos.x)
|
|
1154
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_COLOR,_VARYINGNAME_,SpecularColor,_MATRIXNAME_,specularColor,_INFONAME_,SpecularColorInfos.x)
|
|
1155
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS,_VARYINGNAME_,SpecularRoughness,_MATRIXNAME_,specularRoughness,_INFONAME_,SpecularRoughnessInfos.x)
|
|
1156
|
+
#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,SpecularRoughnessAnisotropy,_MATRIXNAME_,specularRoughnessAnisotropy,_INFONAME_,SpecularRoughnessAnisotropyInfos.x)
|
|
1157
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,TRANSMISSION_WEIGHT,_VARYINGNAME_,TransmissionWeight,_MATRIXNAME_,transmissionWeight,_INFONAME_,TransmissionWeightInfos.x)
|
|
1158
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,TRANSMISSION_COLOR,_VARYINGNAME_,TransmissionColor,_MATRIXNAME_,transmissionColor,_INFONAME_,TransmissionColorInfos.x)
|
|
1159
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,TRANSMISSION_DEPTH,_VARYINGNAME_,TransmissionDepth,_MATRIXNAME_,transmissionDepth,_INFONAME_,TransmissionDepthInfos.x)
|
|
1160
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,TRANSMISSION_SCATTER,_VARYINGNAME_,TransmissionScatter,_MATRIXNAME_,transmissionScatter,_INFONAME_,TransmissionScatterInfos.x)
|
|
1161
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,TRANSMISSION_DISPERSION_SCALE,_VARYINGNAME_,TransmissionDispersionScale,_MATRIXNAME_,transmissionDispersionScale,_INFONAME_,TransmissionDispersionScaleInfos.x)
|
|
1162
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,SUBSURFACE_WEIGHT,_VARYINGNAME_,SubsurfaceWeight,_MATRIXNAME_,subsurfaceWeight,_INFONAME_,SubsurfaceWeightInfos.x)
|
|
1163
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,SUBSURFACE_COLOR,_VARYINGNAME_,SubsurfaceColor,_MATRIXNAME_,subsurfaceColor,_INFONAME_,SubsurfaceColorInfos.x)
|
|
1164
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,SUBSURFACE_RADIUS_SCALE,_VARYINGNAME_,SubsurfaceRadiusScale,_MATRIXNAME_,subsurfaceRadiusScale,_INFONAME_,SubsurfaceRadiusScaleInfos.x)
|
|
1165
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,COAT_WEIGHT,_VARYINGNAME_,CoatWeight,_MATRIXNAME_,coatWeight,_INFONAME_,CoatWeightInfos.x)
|
|
1166
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,COAT_COLOR,_VARYINGNAME_,CoatColor,_MATRIXNAME_,coatColor,_INFONAME_,CoatColorInfos.x)
|
|
1167
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS,_VARYINGNAME_,CoatRoughness,_MATRIXNAME_,coatRoughness,_INFONAME_,CoatRoughnessInfos.x)
|
|
1168
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,COAT_ROUGHNESS_ANISOTROPY,_VARYINGNAME_,CoatRoughnessAnisotropy,_MATRIXNAME_,coatRoughnessAnisotropy,_INFONAME_,CoatRoughnessAnisotropyInfos.x)
|
|
1169
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,COAT_DARKENING,_VARYINGNAME_,CoatDarkening,_MATRIXNAME_,coatDarkening,_INFONAME_,CoatDarkeningInfos.x)
|
|
1170
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,FUZZ_WEIGHT,_VARYINGNAME_,FuzzWeight,_MATRIXNAME_,fuzzWeight,_INFONAME_,FuzzWeightInfos.x)
|
|
1171
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,FUZZ_COLOR,_VARYINGNAME_,FuzzColor,_MATRIXNAME_,fuzzColor,_INFONAME_,FuzzColorInfos.x)
|
|
1172
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,FUZZ_ROUGHNESS,_VARYINGNAME_,FuzzRoughness,_MATRIXNAME_,fuzzRoughness,_INFONAME_,FuzzRoughnessInfos.x)
|
|
1173
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_MATRIXNAME_,geometryNormal,_INFONAME_,GeometryNormalInfos.x)
|
|
1174
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_MATRIXNAME_,geometryCoatNormal,_INFONAME_,GeometryCoatNormalInfos.x)
|
|
1175
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_OPACITY,_VARYINGNAME_,GeometryOpacity,_MATRIXNAME_,geometryOpacity,_INFONAME_,GeometryOpacityInfos.x)
|
|
1176
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_THICKNESS,_VARYINGNAME_,GeometryThickness,_MATRIXNAME_,geometryThickness,_INFONAME_,GeometryThicknessInfos.x)
|
|
1177
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,GEOMETRY_TANGENT,_VARYINGNAME_,GeometryTangent,_MATRIXNAME_,geometryTangent,_INFONAME_,GeometryTangentInfos.x)
|
|
1178
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,EMISSION_COLOR,_VARYINGNAME_,EmissionColor,_MATRIXNAME_,emissionColor,_INFONAME_,EmissionColorInfos.x)
|
|
1179
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,THIN_FILM_WEIGHT,_VARYINGNAME_,ThinFilmWeight,_MATRIXNAME_,thinFilmWeight,_INFONAME_,ThinFilmWeightInfos.x)
|
|
1180
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,THIN_FILM_THICKNESS,_VARYINGNAME_,ThinFilmThickness,_MATRIXNAME_,thinFilmThickness,_INFONAME_,ThinFilmThicknessInfos.x)
|
|
1181
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,AMBIENT_OCCLUSION,_VARYINGNAME_,AmbientOcclusion,_MATRIXNAME_,ambientOcclusion,_INFONAME_,AmbientOcclusionInfos.x)
|
|
1182
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
|
|
1183
|
+
#include <samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
|
|
1184
|
+
#include<openpbrNormalMapVertex>
|
|
1185
|
+
#include<clipPlaneVertex>
|
|
1186
|
+
#include<fogVertex>
|
|
1187
|
+
#include<shadowsVertex>[0..maxSimultaneousLights]
|
|
1188
|
+
#include<vertexColorMixing>
|
|
1189
|
+
#if defined(POINTSIZE) && !defined(WEBGPU)
|
|
1190
|
+
gl_PointSize=pointSize;
|
|
1191
|
+
#endif
|
|
1192
|
+
#include<logDepthVertex>
|
|
1193
|
+
#define CUSTOM_VERTEX_MAIN_END
|
|
1194
|
+
}
|
|
1195
|
+
`;for(let e of(i.ShaderStore.ShadersStore[z]||(i.ShaderStore.ShadersStore[z]=w),[{name:t,shader:r},a.decalVertexDeclaration,{name:n,shader:o},s.sceneUboDeclaration,f.meshUboDeclaration,l.openpbrUboDeclaration,c.uvAttributeDeclaration,d.mainUVVaryingDeclaration,m.helperFunctions,E.pbrBRDFFunctions,u.bonesDeclaration,v.bakedVertexAnimationDeclaration,S.instancesDeclaration,I.prePassVertexDeclaration,N.samplerVertexDeclaration,_.harmonicsFunctions,{name:A,shader:R},h.clipPlaneVertexDeclaration,p.fogVertexDeclaration,T.lightVxFragmentDeclaration,M.lightVxUboDeclaration,x.morphTargetsVertexGlobalDeclaration,O.morphTargetsVertexDeclaration,g.logDepthDeclaration,V.morphTargetsVertexGlobal,C.morphTargetsVertex,D.instancesVertex,F.bonesVertex,L.bakedVertexAnimation,P.prePassVertex,G.uvVariableDeclaration,U.samplerVertexImplementation,{name:b,shader:B},y.clipPlaneVertex,X.fogVertex,W.shadowsVertex,H.vertexColorMixing,Y.logDepthVertex]))i.ShaderStore.IncludesShadersStore[e.name]||(i.ShaderStore.IncludesShadersStore[e.name]=e.shader);e.s(["openpbrVertexShader",0,{name:z,shader:w}],43820)}]);
|