/** * FdageWeb CE 16.12 * Copyright (C) 2014-2016 Triumph LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ var fdage="object"===typeof fdage?fdage:function(a){var q={};a.module=q;var f={};a.cleanup=function(a,b){var g=q[a];g&&(g.El=null);f[b||"__b4w_default"]=null};a.register=function(a,b){q[a]||(q[a]=b)};a.require=function(a,b){if(!q[a])throw Error('Module "'+a+'" not found');b=b||"__b4w_default";f[b]||(f[b]=function(a){return function(b){var c=q[b];if(!c)throw Error('Module "'+b+'" not found');c.El||(c.El={});c.El[a]||(c.El[a]={},c(c.El[a],f[a]));return c.El[a]}}(b));return f[b](a)};a.module_check=function(a){return q[a]? !0:!1};a.get_namespace=function(a){for(var b in f)if(f[b]==a)return b;return""};a.worker_listeners=[];a.worker_namespaces=[];return a}({});"object"==typeof module&&module.Av&&(GLOBAL.fdage={module:{}}); fdage.module.__version=function(a){function q(){var a=f,c=a.getDate(),c=10>c?"0"+String(c):String(c),p=a.getMonth()+1,p=10>p?"0"+String(p):String(p),D=String(a.getFullYear()),e=a.getHours(),e=10>e?"0"+String(e):String(e),u=a.getMinutes(),u=10>u?"0"+String(u):String(u),a=a.getSeconds(),a=10>a?"0"+String(a):String(a);return c+"."+p+"."+D+" "+e+":"+u+":"+a}var f=new Date(2016,11,22,15,24,40),c=[16,12];a.version=function(){return c};a.version_str=function(){for(var a="",f=0;f c[f]?"0"+c[f]:c[f]):a+c[f],f!=c.length-1&&(a+=".");return a};a.type=function(){return"RELEASE"};a.date=function(){return f};a.date_str=q;a.timestamp=function(){var a=q(),a=a.split(" ").join("").split(":").join("").split(".").join("");return"?t="+a}};"object"==typeof module&&module.Av&&fdage.module.__version(exports);fdage.module.__config=function(a,q){function f(){return fdage.module_check(a.Vd.Tq)}function c(){for(var c=a.Vd,f=null,e=document.getElementsByTagName("script"),g=0;gl||0>e||0>f||1=a.clientWidth||e>=a.clientHeight)||(f=B.se,f=!(m=l&&a<=l+c&&b=h-B?!0:!1}if(c)if(0>d)var e=w[r].depth,d=r;else w[r].depthd?null:w[d].obj}};fdage.module.__armature=function(a,q){function f(a){a=a.k;for(var b=a.Hm,c=a.ss,e=0;eg;g++)f.Fd[t+g]=a.Fd[n+g],f.Wd[t+g]=a.Wd[n+g],f.Kd[t+g]=a.Kd[n+g],f.Zd[t+g]=a.Zd[n+g];f.oe=a.oe}}function c(a,b,e,f){var k=a.ky,m=a.zj,t=a.Vp,p=a.$w;p?(p=p.Vp,b?g.multiply(p,k,t):(b=n,g.invert(p,b),g.multiply(b,t,k))):b?g.copy(k,t):g.copy(t,k);k=u;g.invert(m,k);g.multiply(t,k,k);m=a.yi;e[4*m]=k[0];e[4*m+1]=k[1];e[4*m+2]=k[2];e[4* m+3]=k[3];f[4*m]=k[4];f[4*m+1]=k[5];f[4*m+2]=k[6];f[4*m+3]=k[7];a=a.HA;for(m=0;mc&&(c=V),Vf&&(f=y),yt&&(t=g),g=a.max_x||h<=a.min_x||e>=a.max_y||l<=a.min_y||k>=a.max_z||b<=a.min_z)return d.min_x=-.1,d.max_x=.1,d.min_y=-.1,d.max_y=.1,d.min_z=-.2,d.max_z=-.1,d;d.min_x=Math.max(a.min_x,c);d.max_x=Math.min(a.max_x,h);d.min_y=Math.max(a.min_y,e);d.max_y=Math.min(a.max_y,l);d.min_z=Math.max(a.min_z, k);d.max_z=Math.min(a.max_z,b);return d};a.TT=function(a,b,d){d||(d=f());var c=a.max_x-a.min_x,h=a.max_y-a.min_y,e=a.max_z-a.min_z;d.min_x=a.min_x-.5*(b-1)*c;d.max_x=a.max_x+.5*(b-1)*c;d.min_y=a.min_y-.5*(b-1)*h;d.max_y=a.max_y+.5*(b-1)*h;d.min_z=a.min_z-.5*(b-1)*e;d.max_z=a.max_z+.5*(b-1)*e;return d};a.Mn=function(a,b,d){d||(d=D());y.transform_vec3(a.D,b,d.D);b=y.get_scale(b);d.Oa=a.Oa*(0>b?-b:b);return d};a.Ln=function(a,b,d){d||(d=u());y.transform_vec3(a.D,b,d.D);v.copy(a.xa,d.xa);v.copy(a.ya, d.ya);v.copy(a.za,d.za);y.transform_dir_vec3(d.xa,b,d.xa);y.transform_dir_vec3(d.ya,b,d.ya);y.transform_dir_vec3(d.za,b,d.za);return d};a.Du=function(a,b,d){d||(d=c());y.transform_vec3(a.D,b,d.D);v.copy(a.xa,d.xa);v.copy(a.ya,d.ya);v.copy(a.za,d.za);y.transform_dir_vec3(d.xa,b,d.xa);y.transform_dir_vec3(d.ya,b,d.ya);y.transform_dir_vec3(d.za,b,d.za);return d};a.Gu=function(a,b){var d=D();v.copy(b,d.D);d.Oa=a;return d};a.CO=function(a,b,d,h,e){var l=c();v.copy(a,l.D);v.copy(b,l.xa);v.copy(d,l.ya); v.copy(h,l.za);v.scale(l.xa,e[0],l.xa);v.scale(l.ya,e[1],l.ya);v.scale(l.za,e[2],l.za);return l};a.Og=D;a.$u=e;a.Uf=u;a.Yu=n;a.Yn=t;a.bk=function(a){var b=D();e(a,b);return b};a.Hn=m;a.gI=function(){var a;a||(a=D());v.set(0,0,0,a.D);a.Oa=1E12;return a};a.SK=function(a,b){var d=v.subtract(b.D,a.D,v.create());0==v.length(d)&&v.set(1,0,0,d);var c=v.normalize(d,v.create()),d=v.scale(c,a.Oa,v.create());v.add(d,a.D,d);var h=v.scale(c,-a.Oa,v.create());v.add(h,a.D,h);var e=v.scale(c,b.Oa,v.create());v.add(e, b.D,e);var l=v.scale(c,-b.Oa,v.create());v.add(l,b.D,l);d=[d,h,e,l];c=v.normalize(c,v.create());h=d[0];e=d[0];for(l=1;lv.dot(e,c)&&(e=d[l])}c=[h,e];d=c[0];c=c[1];a.D=v.scale(v.add(d,c,v.create()),.5,v.create());a.Oa=v.length(v.subtract(c,d,v.create()))/2};a.Cv=function(a,b){v.add(a.D,a.ya,F);v.add(F,a.xa,F);v.add(F,a.za,F);b.push(F[0],F[1],F[2]);v.add(a.D,a.ya,F);v.add(F,a.xa,F);v.subtract(F,a.za,F);b.push(F[0],F[1],F[2]);v.add(a.D,a.ya, F);v.subtract(F,a.xa,F);v.add(F,a.za,F);b.push(F[0],F[1],F[2]);v.add(a.D,a.ya,F);v.subtract(F,a.xa,F);v.subtract(F,a.za,F);b.push(F[0],F[1],F[2]);v.subtract(a.D,a.ya,F);v.add(F,a.xa,F);v.add(F,a.za,F);b.push(F[0],F[1],F[2]);v.subtract(a.D,a.ya,F);v.add(F,a.xa,F);v.subtract(F,a.za,F);b.push(F[0],F[1],F[2]);v.subtract(a.D,a.ya,F);v.subtract(F,a.xa,F);v.add(F,a.za,F);b.push(F[0],F[1],F[2]);v.subtract(a.D,a.ya,F);v.subtract(F,a.xa,F);v.subtract(F,a.za,F);b.push(F[0],F[1],F[2])};a.br=k;a.qJ=function(a){var b= c();v.copy(a.xa,b.xa);v.copy(a.ya,b.ya);v.copy(a.za,b.za);v.copy(a.D,b.D);return b};a.lo=function(a){var b=D(),d=0,d=v.length(a.xa),c=v.length(a.ya),h=v.length(a.za),d=d>c?d:c;b.D=a.D;b.Oa=h>d?h:d;return b};a.uI=function(a,b){var d=t(a),c=y.Yb(b,K);v.subtract(d.D,c,d.D);return d};a.nw=function(a,b){var d=v.length(a.xa),c=v.length(a.ya),h=v.length(a.za);return.75*b.Oa*b.Oa*b.Oa>d*c*h};a.wz=function(a,b){var d=b.max_z,c=b.min_z,h=Math.max(0,d-c-2*a);return{Oa:a,height:h,D:new Float32Array([0,0,(d+c)/ 2])}};a.yz=function(a,b){var d=b.max_z,c=b.min_z,h=Math.max(0,d-c);return{Oa:a,height:h,D:new Float32Array([0,0,(d+c)/2])}};a.xz=function(a,b){var d=b.max_z,c=b.min_z,h=Math.max(0,d-c);return{Oa:a,height:h,D:new Float32Array([0,0,(d+c)/2])}};a.hS=function(a,b){return a.min_x>b.max_x||a.max_xb.max_y||a.max_yb.max_z||a.max_zf.Oa){for(var m=f,f=h,k=h[e],c=e-1,m=d(m,k,f[0]),t=1;t<=c;t++)if(v.distance(m.D,f[t])>m.Oa){for(var n=m,m=f,w=k,y=f[t],g=t-1,n=d(n,w,y),p=0;p<=g;p++)if(v.distance(n.D,m[p])> n.Oa){var G=w,u=y,x=m[p],ga=v.subtract(u,x,A),ga=v.squaredLength(ga),z=v.subtract(G,x,A),K=v.squaredLength(z),z=v.subtract(G,u,A),S=v.squaredLength(z),z=ga*(K+S-ga),la=K*(S+ga-K),ga=S*(ga+K-S),K=z+la+ga;v.copy(G,n.D);v.scale(n.D,z/K,n.D);v.scaleAndAdd(n.D,u,la/K,n.D);v.scaleAndAdd(n.D,x,ga/K,n.D);n.Oa=v.distance(n.D,G)}m=n}f=m}e=f;a=v.scale(a,e.D[0],A);v.scaleAndAdd(a,l,e.D[1],a);v.add(a,b,e.D);return e}};fdage.module.__compat=function(a,q){function f(a){return-1y.rs&&(F("Not enough varyings, disable shadows on blend objects"),m.rv=!0);f("Windows Phone")&&(F("Windows Phone detected. Disable debug view mode, glow materials, ssao, smaa, shadows, reflections, refractions."),m.debug_view=!1,m.precision="highp",m.Nh=!1,m.ssao=!1,m.smaa=!1,m.shadows=!1,m.reflections=!1,m.refractions=!1,m.VC=!1);if(f("UCBrowser")||f("Chrome")&&f("Nexus")&&m.is_mobile_device)F("Mobile Nexus Chrome or UCBrowser detected, disable workers."),v.iq=!1;var A=D.get_renderer_info(); if(A){var K=x.getParameter(A.UNMASKED_VENDOR_WEBGL),A=x.getParameter(A.UNMASKED_RENDERER_WEBGL),h=/\b4\d{2}\b/;-1b.dist_max?f-b.dist_max:fb.dist_max?f-b.dist_max:f=m?k.setAxisAngle(e,Math.acos(m),A):k.rotationTo(h,l,A);k.normalize(e,e)}k.multiply(e,f,f);c&& (c=y.quat_to_dir(f,y.AXIS_Y,x),0>H.dot(b,c)&&k.rotateZ(f,Math.PI,f));n.ny(a)}var u=q("__armature"),n=q("__camera"),t=q("__mat3"),m=q("__print"),k=q("__quat"),d=q("__tsr"),y=q("__util"),H=q("__vec3");a.CR=1;a.BR=2;a.GR=3;a.HR=4;a.wR=5;a.xR=6;a.DR=7;a.vR=8;a.AR=9;a.zR=10;a.tR=11;a.uR=12;a.yR=13;a.ER=14;a.FR=15;a.sR=1;var v=new Float32Array(2),z=new Float32Array(2),x=new Float32Array(3),M=new Float32Array(3),F=new Float32Array(3),E=new Float32Array(4),A=new Float32Array(4),K=new Float32Array(9),h=new Float32Array(9), l=d.create(),w=new Float32Array(3);a.kz=function(a,b,d,h,e){var l=f(1);l.wa=b;l.offset=new Float32Array(d);l.Gd=h?new Float32Array(h):null;l.Fp=e;c(a,l);g(a,l,0)};a.IH=function(a,b,d,h,e,l){var k=f(2);k.wa=b;k.Yj=d;k.offset=new Float32Array(h);k.Gd=e?new Float32Array(e):null;k.Fp=l;c(a,k);g(a,k,0)};a.GH=function(a,b,h,e){var l=f(9),m=d.get_quat_view(a.k.n),t=d.get_quat_view(b.k.n);l.wa=b;l.offset=new Float32Array(h);l.Wk=new Float32Array(t);e&&(k.copy(e,m),k.multiply(t,m,m));c(a,l);g(a,l,0)};a.FH= function(a,b,h,e,l,m,t,n){var w=f(10),V=d.get_quat_view(a.k.n),p=d.get_quat_view(b.k.n);w.wa=b;w.offset=new Float32Array(h);w.Wk=new Float32Array(p);w.ZI=y.angle_wrap_0_2pi(l);w.$I=y.angle_wrap_0_2pi(m);w.aJ=y.angle_wrap_periodic(t,-Math.PI,Math.PI);w.YI=y.angle_wrap_periodic(n,-Math.PI,Math.PI);e?(w.Gd=new Float32Array(e),k.copy(e,V),k.multiply(p,V,V)):w.Gd=k.create();c(a,w);g(a,w,0)};a.EH=function(a,b,d,h){var e=f(13);e.wa=b;e.offset=new Float32Array(d);e.zP=h;c(a,e);g(a,e,0)};a.LH=function(a,b, d,h){var e=f(14);e.wa=b;e.offset=new Float32Array(d);e.Fp=1;e.Gd=h?new Float32Array(h):null;c(a,e);g(a,e,0)};a.DT=b;a.NH=function(a,b){var d=f(3);d.wa=b;c(a,d);g(a,d,0)};a.OH=function(a,b){var d=f(4);d.target=new Float32Array(b);c(a,d);g(a,d,0)};a.AH=function(a,b,d,h){var e=f(5);e.wa=b;e.wo=d;e.dist_max=h;c(a,e);g(a,e,0)};a.BH=function(a,b,d,h){var e=f(6);e.target=new Float32Array(b);e.wo=d;e.dist_max=h;c(a,e);g(a,e,0)};a.KH=function(a,b,d){var h=f(7);h.wa=b;h.offset=new Float32Array(d);c(a,h);g(a, h,0)};a.xH=function(a,b,d){var h=f(8);h.wa=b;h.offset=new Float32Array(d);c(a,h);g(a,h,0)};a.vH=function(a,b,d){var h=f(11);h.wa=b;h.Bt=new Float32Array(d);c(a,h);g(a,h,0)};a.wH=function(a,b,d,h){var e=f(12);e.wa=b;e.Yj=d;e.Bt=new Float32Array(h);c(a,e);g(a,e,0)};a.append_stiff_viewport=function(a,b,d){var h=f(15);h.wa=b;if(y.sf(d.left))h.hC=!0,h.tw=d.left;else if(y.sf(d.right))h.hC=!1,h.tw=d.right;else{m.error("append_stiff_viewport: Wrong positioning params");return}if(y.sf(d.top))h.rE=!0,h.ay= d.top;else if(y.sf(d.bottom))h.rE=!1,h.ay=d.bottom;else{m.error("append_stiff_viewport: Wrong positioning params");return}y.sf(d.distance)?(h.distance=d.distance,h.Gd=y.sf(d.rotation)?new Float32Array(d.rotation):null,h.hor_units=y.sf(d.hor_units)?d.hor_units:"widths",h.vert_units=y.sf(d.vert_units)?d.vert_units:"heights",c(a,h),g(a,h,0)):m.error("append_stiff_viewport: Wrong positioning params")};a.yQ=function(a,b){a.bc&&g(a,a.bc,b)};a.JH=function(a,b,d,c,h){var e=f(1);e.Yj=d;e.target=b;e.offset= new Float32Array(c);e.Gd=h?new Float32Array(h):null;e.Fp=1;b=e.target;d=e.Yj;c=a.k.Qf[d];h=b.Xu;for(var l=0;lm||c>n)H.warn("Canvas size exceeds platform limits, downscaling"),m=Math.min(m/e,n/c),e*=m,c*=m,f.width=e,f.height=c;v.xD(e,c,e/b);v.sa()&&x.B(v.get_active().si);k.CQ(f.width,f.height);k.is_primary_loaded()&&(t.update(),v.update(z.get_timeline(), 0),t.HE())}var t=q("__anchors"),m=q("__config"),k=q("__data"),d=q("__hud"),y=q("__input"),H=q("__print"),v=q("__scenes"),z=q("__time"),x=q("__transform"),M=q("__util"),F=m.A,E=m.Eh,A=null,K=null,h=null,l=null,w=!1;g=b=0;p=1;f=c=0;a.au=320;a.$t=240;a.Ye=function(a){A=a};a.get_canvas=function(){return K};a.get_canvas_hud=function(){return h};a.get_container=function(){return l};a.init=function(a,b){a&&a.parentNode?(K=a,h=b,l=a.parentNode):M.q("canvas container is not available")};a.insert_to_container= function(a,b){b=b||"LAST";switch(b){case "FIRST":l.insertBefore(a,l.firstElementChild);break;case "JUST_BEFORE_CANVAS":l.insertBefore(a,K);break;case "JUST_AFTER_CANVAS":K.nextElementSibling?l.insertBefore(a,K.nextElementSibling):l.appendChild(a,K);break;case "LAST":l.appendChild(a,K);break;default:H.error(b+" invalid stack order")}};a.BB=function(){return b};a.AB=function(){return g};a.set_canvas_offsets=D;a.update_canvas_offsets=e;a.qP=function(a,d,c){b=a;g=d;p=c;e()};a.force_offsets_updating=function(){w= !0};a.client_to_canvas_coords=function(a,b,d){d||(d=new Float32Array(2));var h=d;w&&(e(),w=!1);h[0]=a-f;a=d;w&&(e(),w=!1);a[1]=b-c;return d};a.Vq=function(a,d,c,h){c||(c=new Float32Array(2));c[0]=a*p;c[1]=d*p;h&&(a=h.width/b,c[0]*=a,c[1]*=a);return c};a.gR=function(a,d,c,h){c||(c=new Float32Array(2));c[0]=a/p;c[1]=d/p;h&&(a=h.width/b,c[0]/=a,c[1]/=a)};a.RB=function(b){return b&&b.parentNode?b.parentNode==l?!0:a.RB(b.parentNode):!1};a.FM=u;a.gL=function(a){var b=document.getElementsByTagName("script"); a=M.bh(a);for(var d=0;dc;++c)h.kl[c]=b();h.Ww=function(a){h.ow||(d.pM(a,h.FB),h.ow=!0)};h.Vw=function(a){a=E.copy(a,I);h.Kr=a[0];h.Lr=a[1];h.Mr=a[2];Infinity==h.Jr&&(h.Jr=a[0],h.Zv=a[1],h.$v=a[2])};h.Nw=function(a){h.Tt+=a*A.DN};h.Jw=function(a){var b=d.get_device_by_type_element(d.DEVICE_MOUSE,h.element),b=d.get_vector_param(b,d.MOUSE_LOCATION,B);h.ws=b[0];h.xs=b[1];h.Pk=b[0];h.Qk=b[1];if(3==h.Td||0==h.Td)h.Td=1;h.which=a};h.Lw=function(){var a=d.get_device_by_type_element(d.DEVICE_MOUSE,h.element), a=d.get_vector_param(a,d.MOUSE_LOCATION,B),a=k.client_to_canvas_coords(a[0],a[1],B);h.ah.Kk=!1;h.ah.Ei[0]=a[0];h.ah.Ei[1]=a[1]};h.gy=function(a){for(var b=0;bm;++m){var n=k.kl[m];n.Kk||(n.obj=y.pick_object(n.Ei[0],n.Ei[1]),n.Kk=!0,k.Xv=n.obj)}}for(f=0;f=k.threshold||k.Lq>=k.hD?p(k,1):p(k, 0);E.copy(r,k.Wm);z.copy(G,k.Ws);k.bf=n;break;case 130:G=k.jh;r=M.Yb(G.k.n,I);G=Math.abs(r[1]-k.Wm[1])/m;k.Nq=F.smooth(G,k.Nq,m,.3);k.T=G;k.Nq>=k.threshold?p(k,1):p(k,0);E.copy(r,k.Wm);k.bf=n;break;case 140:!k.Ba&&0<=k.Xe&&n-k.bf>=k.Xe&&(p(k,1),k.repeat?k.bf=n:k.Xe=-k.Xe);break;case 150:k.bf||(k.bf=n);p(k,n-k.bf);k.bf=n;break;case 160:p(k,n);break;case 180:n=c(k.element);k.T[0]=n.Mr-n.$v;k.T[1]=n.Lr-n.Zv;k.T[2]=n.Kr-n.Jr;break;case 190:n=c(k.element);k.T[0]=n.Mr;k.T[1]=n.Lr;k.T[2]=n.Kr;break;case 200:n= c(k.element);z.copy(n.FB,k.T);break;case 210:m=d.get_device_by_type_element(d.DEVICE_HMD);d.get_vector_param(m,d.HMD_ORIENTATION_QUAT,k.T);break;case 220:m=d.get_device_by_type_element(d.DEVICE_HMD);d.get_vector_param(m,d.HMD_POSITION,k.T);break;case 240:m=t(k.xk);k.value=d.ZL(m,k.key);break;case 250:m=t(k.xk);k.value=d.YL(m,k.key);break;case 230:p(k,k.callback());break;case 30:n=c(k.element);p(k,n.Tt);break;case 40:n=c(k.element);if(!K.$l||1==n.Td||2==n.Td)switch(r=n.Pk-n.ws,G=n.Qk-n.xs,k.T.coords[0]= n.Pk,k.T.coords[1]=n.Qk,k.axis){case "X":p(k,r);break;case "Y":p(k,G);break;case "XY":m=Math.sqrt(r*r+G*G),p(k,m)}break;case 260:n=c(k.element);K.$l||(r=n.vp,G=n.wp,g=F.smooth(r,0,m,.1*W),m=F.smooth(G,0,m,.1*W),.01m;++m)if(n.kl[m].obj==k.jh){p(k,1);break}break;case 20:n=c(k.element);k.T=n.me[k.key];1==k.T||n.me[0]&&16==k.key?p(k,1):k.T||p(k,0);break;case 60:n=c(k.element);if(-1==n.Jd[1]&&-1==n.Yd[1]){r=n.Jd[0]-n.xg[0];G=n.Yd[0]-n.yg[0];m=Math.sqrt(r*r+G*G);if(-1!=n.xg[1]&&-1!=n.yg[1]){var g=n.Jd[0]-n.xg[1],u=n.Yd[0]-n.yg[1],v=Math.sqrt(g*g+u*u);vg.Xe&&(g.Xe= -g.Xe);break;case 20:y=c(g.element);b(y,"keyboard_downed_keys");break;case 30:y=c(g.element);b(y,"mouse_wheel");break;case 40:y=c(g.element);b(y,"mouse_down_which");b(y,"mouse_up_which");b(y,"mouse_location");break;case 260:y=c(g.element);b(y,"mouse_pointerlock");break;case 270:d.pH(g);break;case 50:y=c(g.element);b(y,"mouse_down_which");b(y,"mouse_up_which");break;case 60:y=c(g.element);b(y,"touch_start");b(y,"touch_move");b(y,"touch_end");break;case 70:y=c(g.element);b(y,"touch_start");b(y,"touch_move"); break;case 75:y=c(g.element);b(y,"touch_start");b(y,"touch_move");break;case 80:y=c(g.element);b(y,"touch_start");b(y,"touch_end");break;case 170:y=c(g.element);b(y,"mouse_select");b(y,"touch_select");b(y,"touch_start");b(y,"touch_end");b(y,"mouse_down_which");b(y,"mouse_up_which");break;case 180:case 190:y=c(g.element);b(y,"orientation_angles");break;case 200:y=c(g.element);b(y,"orientation_quat");break;case 240:0==g.xk?d.get_device_by_type_element(d.rq):1==g.xk?d.get_device_by_type_element(d.bu): 2==g.xk?d.get_device_by_type_element(d.cu):d.get_device_by_type_element(d.du)}g.Ba=!1}g=w.indexOf(k);-1==g?(w.push(k),r.push([f])):r[g].push(f)}N=!0};a.default_AND_logic_fun=function(a){for(var b=0;b=c[p-1]&&be&&pq;q++){5E-6>g[v-1]-z&&(z=g[v-1]);for(var F=f(k,z,g,d),E=0;E c;c+=1)g=a[(c-1)*e],k=a[(c-1)*e+1],p=a[(c-1)*e+2],v=a[c*e],z=a[c*e+1],x=a[c*e+2],d[c]=d[c-1]+Math.sqrt((v-g)*(v-g)+(z-k)*(z-k)+(x-p)*(x-p));b.yA=d;return b};a.NP=function(a,b,e){e||(e=[]);var m=b,k=Math.max(m,0);b=k=Math.min(m,c(a));var m=a.av,k=a.Ri?4:3,d=a.Ay,g=a.hs,p=a.bj;a=m.length/k;var v=a+p;5E-6>g[v-1]-b&&(b=g[v-1]);v=new Float32Array(a);f(p,b,g,d,v);for(b=0;bf[p-1]-b&&(b=f[p-1]);var p=new Float32Array(a),z=b;b=p;var x=d.length;b||(b=new Float32Array(x));var D=new Float32Array(x),F=new Float32Array(x),E=D,A=F;E||(E=new Float32Array(x));A||(A=new Float32Array(x));for(var K=x+g,h=new Float32Array(K),l=new Float32Array(K),w=1;w<=K-1;w++)h[w-1]=z>=f[w-1]&&z=e)return 0;var f=c(a);if(e>=b(a))return f;var m=a.yA,k=D.Pq(m,e,0,m.length-1);return f*(k+(e-m[k])/(m[k+1]-m[k]))/1E3};a.ks=function(a,b,c,e,f){return c+(f-e)*(a-c)/(b-e)};a.jC=function(a,b,c){var e=b[0];b=b[1];c=(c[1]-b)/(c[0]-e);return c*a+(b-c*e)};a.zz=function(a,b,c,e,f,d){return p(g(0,1,a,b[0],c[0],e[0],f[0],d),b[1],c[1],e[1],f[1])};a.Ku=function(a,b,c,f,k){var d=new Float32Array(3),g=new Float32Array(3),p=new Float32Array(3),v=new Float32Array(3),z=new Float32Array(3),x=new Float32Array(3); e.copy(a[1],g);null==b?(e.copy(c[1],p),d[0]=2*g[0]-p[0],d[1]=2*g[1]-p[1]):e.copy(b[1],d);null==c?(e.copy(b[1],d),p[0]=2*g[0]-d[0],p[1]=2*g[1]-d[1]):e.copy(c[1],p);e.subtract(g,d,v);e.subtract(p,g,z);b=e.length(v);c=e.length(z);0==b&&(b=1);0==c&&(c=1);if("AUTO"==f||"AUTO"==k)x[0]=z[0]/c+v[0]/b,x[1]=z[1]/c+v[1]/b,d=2.5614*e.length(x),0!=d&&("AUTO"==f&&e.scaleAndAdd(g,x,-(b/d),a[0]),"AUTO"==k&&e.scaleAndAdd(g,x,c/d,a[2]));"VECTOR"==f&&e.scaleAndAdd(g,v,-1/3,a[0]);"VECTOR"==k&&e.scaleAndAdd(g,z,1/3,a[2])}; a.lJ=function(a,b,c,e){var f=[],d=[],g,p,v;f[0]=a[0]-b[0];f[1]=a[1]-b[1];d[0]=e[0]-c[0];d[1]=e[1]-c[1];v=e[0]-a[0];g=Math.abs(f[0]);p=Math.abs(d[0]);0!=g+p&&g+p>v&&(g=v/(g+p),b[0]=a[0]-g*f[0],b[1]=a[1]-g*f[1],c[0]=e[0]-g*d[0],c[1]=e[1]-g*d[1])}};fdage.module.__debug=function(a,q){function f(a){a=a.split("\n");for(var b=0;b has type <"+a.constructor+">, required <"+b+">")};a.$R=p;a.aS= function(a){J?p(a,r):J=!0;r=null!=a&&"object"==typeof a?x.Zn(a):a};a.fake_load=function(a,b,d,c,h){(a=a||null)||x.q("Stage load callback is undefined");b=b||5E3;d=d||0;c=c||100;100d&&x.q("Min percentage must be greater than 0");d>c&&x.q("Max percentage must be greater than min percentage");var e=z.animate(d,c,b,function(b){b=b.toFixed();a(b);100==b&&(z.clear_animation(e),h&&h())})};a.yT=function(a){return m.wK(a,function(a,b){var d=b.type+"("+b.name+ ")",c=b.I,d=d+"\n\nINPUTS:";if(c.length)for(var h=0;h\n"+d.I[c[1]].identifier})};a.Dr=function(){return E};a.cleanup=function(){w=null;B={}};a.reset=function(){E=null}};fdage.module.__extensions=function(a,q){function f(a){if(a in e)return e[a];var b=D.getExtension(a)||null;e[a]=b;g.log("%cGET EXTENSION","color: #"+(b?"0a0":"a00"),a);return b}function c(a){if(a in e)return e[a];switch(a){case "WEBGL_depth_texture":case "OES_element_index_uint":case "OES_standard_derivatives":var b={};break;case "ANGLE_instanced_arrays":case "OES_vertex_array_object":b=D;break;case "EXT_disjoint_timer_query":(b=D.getExtension("EXT_disjoint_timer_query")||null)||(b=D.getExtension("EXT_disjoint_timer_query_webgl2")|| null)}e[a]=b;g.log("%cGET EXTENSION (WebGL 2)","color: #"+(b?"0a0":"a00"),a);return b}var b=q("__config"),g=q("__print"),p=b.A,D=null,e={};a.Ye=function(a){D=a};a.wB=function(){return f("WEBGL_compressed_texture_s3tc")||f("WEBKIT_WEBGL_compressed_texture_s3tc")||f("MOZ_WEBGL_compressed_texture_s3tc")};a.vB=function(){return f("WEBKIT_WEBGL_compressed_texture_pvrtc")||f("WEBGL_compressed_texture_pvrtc")};a.OL=function(){return p.Vb?c("WEBGL_depth_texture"):f("WEBGL_depth_texture")||f("WEBKIT_WEBGL_depth_texture")|| f("MOZ_WEBGL_depth_texture")};a.jB=function(){return f("EXT_texture_filter_anisotropic")||f("WEBKIT_EXT_texture_filter_anisotropic")||f("MOZ_EXT_texture_filter_anisotropic")};a.NL=function(){return f("WEBGL_debug_shaders")};a.get_renderer_info=function(){return f("WEBGL_debug_renderer_info")};a.pB=function(){return p.Vb?c("OES_element_index_uint"):f("OES_element_index_uint")};a.Uv=function(){return p.Vb?c("OES_standard_derivatives"):f("OES_standard_derivatives")};a.Mv=function(){var a=p.Vb?c("EXT_disjoint_timer_query"): f("EXT_disjoint_timer_query");return null==a?a:a.createQueryEXT?{createQuery:function(){return a.createQueryEXT()},beginQuery:function(b){a.beginQueryEXT(a.TIME_ELAPSED_EXT,b)},endQuery:function(){a.endQueryEXT(a.TIME_ELAPSED_EXT)},gB:function(b){return a.getQueryObjectEXT(b,a.QUERY_RESULT_AVAILABLE_EXT)},hB:function(b){return a.getQueryObjectEXT(b,a.QUERY_RESULT_EXT)},fB:function(){return a.GPU_DISJOINT_EXT}}:{createQuery:function(){return D.createQuery()},beginQuery:function(b){D.beginQuery(a.TIME_ELAPSED_EXT, b)},endQuery:function(){D.endQuery(a.TIME_ELAPSED_EXT)},gB:function(a){return D.getQueryParameter(a,D.QUERY_RESULT_AVAILABLE)},hB:function(a){return D.getQueryParameter(a,D.QUERY_RESULT)},fB:function(){return a.GPU_DISJOINT_EXT}}};a.cM=function(){if(p.Vb)return c("ANGLE_instanced_arrays");var a=f("ANGLE_instanced_arrays");return null==a?a:{drawElementsInstanced:function(b,c,e,f,d){a.drawElementsInstancedANGLE(b,c,e,f,d)},vertexAttribDivisor:function(b,c){a.vertexAttribDivisorANGLE(b,c)},drawArraysInstanced:function(b, c,e,f){a.drawArraysInstancedANGLE(b,c,e,f)}}};a.Vv=function(){if(p.Vb)return c("OES_vertex_array_object");var a=f("OES_vertex_array_object");return null==a?a:{bindVertexArray:function(b){a.bindVertexArrayOES(b)},createVertexArray:function(){return a.createVertexArrayOES()},deleteVertexArray:function(b){a.deleteVertexArrayOES(b)},isVertexArray:function(b){return a.isVertexArrayOES(b)}}};a.cleanup=function(){e={}};a.reset=function(){D=null}};fdage.module.__graph=function(a,q){function f(a,b,d){d||(d=null);c(a,b)?J.q("Graph already has node with given ID"):a.K.push(b,d)}function c(a,b){for(var d=a.K,c=0;cd.qm||d.vj>d.wj||d.Sm>d.Um||d.Rm>d.Tm)return!1;for(var h=c=-1,e=!1;!e&&v(d,B,c,h);)if(c=B[0],h=B[1],z(d,c,h)){var f;f=d;e={};e.Lo=f.Lo;e.Mo=f.Mo;e.Tw=f.Tw;e.or=f.or;e.Yi=f.Yi;e.qm=f.qm;e.bj=f.bj;e.Ng=e.Gs=f.Ng;e.Rm=f.Rm;e.Sm=f.Sm;e.vj=f.vj;e.Tm=f.Tm;e.Um=f.Um;e.wj=f.wj;e.vn=-1;e.Fh=f.Fh;e.fk=f.fk;e.Dk=f.Dk;e.Ek= f.Ek;e.Tk=f.Tk;e.Uk=f.Uk;e.gt=f.gt;f.gt[0]+=1;var e=f=e,k=c,l=h,m=e.Lo,g=e.Mo,n=e.Yi,G=e.qm,t=e.Fh,r=e.fk,w=e.Dk,p=e.Ek,y=e.Tk,S=e.Uk;x(k=f.Ng-f.Gs);x(-1!=f.vn);r=f.Lo;k=f.Mo;l=f.Ng;m=f.vn;g=f.Fh;w=f.fk;n=f.Dk;p=f.Ek;G=f.Tk;y=f.Uk;if(f.Gsg&&e>g)for(;dg&&k>g)for(;dg&&m>g)for(;dg&&e>g)for(;cg&&k>g)for(;cg&&m>g)for(;c "+String(c),d&&(h+=' [label="'+d(b,c,k)+'"]'),h+=";\n"; return h+="}"}};fdage.module.__ipc=function(a,q){function f(a,b,d){for(var c=0;cr?Math.floor(1/r-1E-5).toFixed(0).length:0;m=m[5]?Math.log(A/l)/Math.log(w/l):(A-l)/(w-l);g.textAlign="center";K?g.fillText("["+h+"]",p(E),E.y):g.fillText(h,p(E),E.y);g.strokeStyle="#00FF00";g.lineWidth=u?3:1;u?(g.textAlign="right",g.fillText(w.toFixed(r), p(E)-10,E.y+15),g.textAlign="right",g.fillText(l.toFixed(r),p(E)-10,E.y+E.yb-15)):(g.textAlign="right",g.fillText(l.toFixed(r),E.x+28,E.y+15),g.textAlign="left",g.fillText(w.toFixed(r),E.x+E.ec-28,E.y+15));g.beginPath();if(u){var J=E.y+15+(E.yb-30)*(1-m);g.moveTo(p(E),E.y+15);g.lineTo(p(E),E.y+E.yb-15);g.moveTo(p(E)-5,E.y+15);g.lineTo(p(E)+5,E.y+15);g.moveTo(p(E)-5,E.y+E.yb-15);g.lineTo(p(E)+5,E.y+E.yb-15);g.moveTo(p(E)-5,J);g.lineTo(p(E)+5,J)}else{var B=E.x+30+(E.ec-60)*m;g.moveTo(E.x+30,E.y+15); g.lineTo(E.x+E.ec-30,E.y+15);g.moveTo(E.x+30,E.y+15-5);g.lineTo(E.x+30,E.y+15+5);g.moveTo(E.x+E.ec-30,E.y+15-5);g.lineTo(E.x+E.ec-30,E.y+15+5);g.moveTo(B,E.y+15-5);g.lineTo(B,E.y+15+5)}g.stroke();"EQ_Q"==h?(m=Math.log(1+1/(2*A*A)+Math.sqrt((2+1/(A*A))*(2+1/(A*A))/4-1))/Math.log(2),u?(g.textAlign="left",g.fillText(A.toFixed(r),p(E)+10,J),g.textAlign="left",g.fillText("("+m.toFixed(r+1)+")",p(E)+10,J+10)):(g.textAlign="right",g.fillText(A.toFixed(r),B,E.y+30),g.textAlign="left",g.fillText("("+m.toFixed(r+ 1)+")",B,E.y+30))):u?(g.textAlign="left",g.fillText(A.toFixed(r),p(E)+10,J)):(g.textAlign="center",g.fillText(A.toFixed(r),B,E.y+30))}}};fdage.module.__renderer=function(a,q){function f(a){for(var c=a.p,e=a.Ha,f=null,k=H.Yb(c.n,Z),l=0;lz||u.Io)m.uQ(S,w,u.n,A),x.copy(A,w.iF),u.Io=!1}u=a;w=y;A=t;z=A.xE;for(S=z.length;S--;)J=z[S],J.Wl(h,J.re,r,w);if(A.kp&&!A.Bs){A.rp.length||p(A);z=A.rp;for(S=z.length;S--;)J=z[S],J.Wl(h,J.re,r,w);A.kp=!1}h.depthMask(w.Ka);w.Ob?h.enable(h.CULL_FACE):h.disable(h.CULL_FACE);S=w.ra;J=h;for(z=0;zz;z++)if(E=b(z),N.Ru?(h.bindTexture(h.TEXTURE_CUBE_MAP,S),h.texImage2D(E,0,h.RGBA,1,1,0,h.RGBA,h.UNSIGNED_BYTE,K)):(h.uniformMatrix4fv(A.u_cube_view_matrix,!1,J[z]),h.uniform4fv(A.u_sky_tex_fac,r.nt),h.uniform3fv(A.u_sky_tex_color,r.lt),h.uniform1f(A.u_sky_tex_dvar,r.mt),h.uniform3fv(A.u_horizon_color,r.Dd),h.uniform3fv(A.u_zenith_color,r.Ld),h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,E,S,0),B(w,0)),r.zs&&3!=z){var E=r,q=z,ca=C;N.Ru?ca.set(K):(h.readPixels(191,191,1,1,h.RGBA, h.UNSIGNED_BYTE,ca),255!=ca[0]&&255!=ca[1]&&255!=ca[2]||h.readPixels(191,220,1,1,h.RGBA,h.UNSIGNED_BYTE,ca));var ta=ca[0],F=ca[1],ca=ca[2],ta=ta/255,F=F/255,ca=ca/255;2===q?(E.Qd[3]=ta,E.Qd[7]=F,E.Qd[11]=ca):2>q?(E.Qd[4*q]=ta,E.Qd[4*q+1]=F,E.Qd[4*q+2]=ca):(E.Qd[4*(q-2)]=ta,E.Qd[4*(q-2)+1]=F,E.Qd[4*(q-2)+2]=ca)}u.ro+=6}else B(w,r.Gt),u.ro++;n.tO(y);n.UB()&&"MAIN"==y.type&&D.dI(y.id,y.Le)}}}}function c(a){if(a){var b=(a.kb?h.COLOR_BUFFER_BIT:0)|(a.rb?h.DEPTH_BUFFER_BIT:0);if(!b)return;switch(a.type){case d.Ad:a= A;break;case d.Hc:a=M;break;case d.He:a=F;break;case d.Ee:case d.uh:case d.xl:a=E;break;case d.Lf:case d.rn:case d.wq:a=A;break;default:a=N.background_color}}else b=h.COLOR_BUFFER_BIT|h.DEPTH_BUFFER_BIT,a=N.background_color;h.colorMask(!0,!0,!0,!0);h.depthMask(!0);h.clearColor(a[0],a[1],a[2],a[3]);h.clear(b)}function b(a){switch(a){case 0:return h.TEXTURE_CUBE_MAP_POSITIVE_X;case 1:return h.TEXTURE_CUBE_MAP_NEGATIVE_X;case 2:return h.TEXTURE_CUBE_MAP_POSITIVE_Y;case 3:return h.TEXTURE_CUBE_MAP_NEGATIVE_Y; case 4:return h.TEXTURE_CUBE_MAP_POSITIVE_Z;case 5:return h.TEXTURE_CUBE_MAP_NEGATIVE_Z}}function g(a){var b=t.Vv(),c=a.Dn,d=a.fa,e=d.Fb;a.be.length=0;var f=1,k;for(k in e)f=Math.max(f,e[k].frames);for(e=0;em;m++){var g=b(m);k.Cb=a.jk[m];H.from_mat4(k.Cb,k.Be);e.Ju(k);h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,g,l,0);c(a);for(var g=a.Ha,t=0;td?-1:ch?-1:eaa)return!1;t(b,g,c,0,3);return!0}function e(){for(var c=aa-l,d=c,h=c;nl;l++){var g=T; g[0]=0;g[1]=1;var r;r=b;for(var p=l,G=d,w=g;qa=G&&vB?r=!1:(w[0]=B,w[1]=u,r=!0)}r&&g[1]e)return!1;t(b,f,d,e,1);n++}return!0}if(!a.length)return!0;for(var f=0;faa)return!1;qa=g;t(b,0,g,0,4);return!0}()&&d()&&e()&&h()}function t(a,b,c,d,e){for(var h=0,k=0;k=k);break;case "l_expr":k=d.pop();f=d.pop();d.push(fk);break;case "left_shift_expr":f=d.pop();k=d.pop();d.push(f<>k);break;case "add_expr":f=d.pop();k=d.pop();d.push(f+k);break;case "sub_expr":f= d.pop();k=d.pop();d.push(f-k);break;case "mul_expr":f=d.pop();k=d.pop();d.push(f*k);break;case "div_expr":f=d.pop();k=d.pop();d.push(f/k);break;case "mod_expr":f=d.pop();k=d.pop();d.push(f%k);break;case "pre_inc_expr":case "post_inc_expr":k=d.pop();d.push(++k);break;case "pre_dec_expr":case "post_dec_expr":k=d.pop();d.push(--k);break;case "positive_expr":k=d.pop();d.push(+k);break;case "negative_expr":k=d.pop();d.push(-k);break;case "one_compl_expr":k=d.pop();d.push(~k);break;case "logic_negative_expr":k= d.pop();d.push(!k);break;default:w.q("Unknown operation type: "+c[e].a)}else k=c[e],/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(k)?(d.push(0),0!=k.indexOf("USE_NODE_")&&(f=v[v.length-1],f in A||(A[f]=[]),-1==A[f].indexOf(k)&&(A[f].push(k),l.error("Undefined directive '"+k+"' in shader '"+f+"'. Should it be defined with #var/#node_var or #define?")))):d.push(parseFloat(c[e]));1==d.length?c=d[0]:(w.q("Incorrect expression: "+c.join(" ")),c=void 0);return c}function k(a,b,c,d){for(var e=0;eJ.Ew&&(c|=1);U||(U=new Uint32Array(J.rs));ia||(ia=new Uint32Array(J.qs));G||(G=new Uint32Array(J.hp));u(f,ia,J.qs)||(c|=2);u(k,G,J.hp)||(c|=4);l=r.Vb?(k.replace(/(.*?)\([^()]*?\)(.*?)/g,"$1$2").match(/(?:^|[^a-zA-Z_])in(?=\s)/g)||[]).length:(k.match(/(?:^|[^a-zA-Z_])attribute(?=\s)/g)||[]).length;a.pz=l;l>J.Fw&&(c|=8);e(f)||(c|=16);a.status=c; if(0===a.status){var c=ya,m=z(c,k,c.VERTEX_SHADER),g=z(c,f,c.FRAGMENT_SHADER),l=c.createProgram();c.attachShader(l,m);c.attachShader(l,g);c.linkProgram(l);for(var m={Ot:m,zr:g,gh:l,attributes:{},ll:{},rp:w.Fi(),bx:w.Fi(),cx:{},kp:!0,Bs:!1,xE:w.Fi(),wE:w.Fi(),Va:w.Mg(a),Dx:b,jf:!0},n=c.getProgramParameter(l,c.ACTIVE_ATTRIBUTES),g=0;gfa;fa++)A[fa]&&(d[E][D*G+(y+U.Bm(B,fa))]=b[C+D*J+U.Bm(R,fa)]);y+=J}}else d[E]=new Float32Array(0);E=a.uv_textures;e=f.texcoord;d=f.texcoord2;u=l.ka;if(h)for(var X in h){b=E.indexOf(X);if(0==b)var Y=new Float32Array(e);else 1==b&&(Y=new Float32Array(d));u[h[X]]=Y}l.ha=new Uint32Array(f.indices);X=f.position.length/k/3;Y=z(c,"a_tbn_quat")&& f.tbn_quat.length?!0:!1;E=z(c,"a_shade_tangs")&&f.shade_tangs.length?!0:!1;0g;g++)b+=f[g];if(.01>b)return l;for(g=0;4> g;g++)f[g]/=b;if(.01>Math.abs(f[0]-1))l[0]=k[0]+1;else for(g=0;4>g;g++)l[g]=k[g]+f[g];return l}function M(a,b){if(0==b)return 0;var c=a.length,d=c/b;d!=Math.floor(d)&&U.q("Array size mismatch during geometry calculation: array length="+c+", base length="+b);return d}function F(b,c,d,e){for(var h=b.length,f=h,k=!1,l=e?-1:1;1l*(b[m]-b[m+f]):b[m]=l)var k=new Uint16Array(k),O=S.UNSIGNED_SHORT;else k=new Uint32Array(k),O=S.UNSIGNED_INT}else y=l,k=null;for(var B=t(g,G,w),B=r(B),u={},v=0;ve))for(k=e,h=!1;1b[c]-b[c+k]&&(h=b[c],b[c]=b[c+k],b[c+k]=h,h=d,f=c,l=c+k,m=h[3*f],g=h[3*f+1],n=h[3*f+2],h[3*f]=h[3*l],h[3*f+1]=h[3*l+1],h[3*f+2]=h[3*l+2],h[3*l]=m,h[3*l+1]=g,h[3*l+2]=n,h=!0);e=d;S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,a.rf);S.bufferData(S.ELEMENT_ARRAY_BUFFER,e,S.DYNAMIC_DRAW)};a.DP=F;a.Lz=function(a,b,c){for(var d=b.length/3,h=a.length/3,e=[],f=Array(3), k=Array(3),l=Array(3),m=0;mt;t++)f[t]=b[3*g+t],k[t]=b[3*n+t],l[t]=b[3*r+t];if(c)var t=E(f,k,l),G=E(k,l,f),p=Math.PI-t-G;else p=G=t=1;var w=e,y;y=f;var B=l,u=[],v=[],A=[];ia.subtract(k,y,u);ia.subtract(B,y,v);ia.cross(u,v,A);ia.normalize(A,A);y=A;for(B=0;3>B;B++)u=3*n+B,v=3*r+B,w[3*g+B]=t*y[B],w[u]=G*y[B],w[v]=p*y[B]}if(c)for(var J in c)for(m=c[J],a=0;3>a;a++){b=3*m[0]+a;for(h=1;hb;b++)h=3*c+b,a[b]=J[h];ia.normalize(a,a);for(b=0;3>b;b++)h=3*c+b,J[h]=a[b]}return e};a.Mz=function(a,b,c){for(var d={},h=b.length/3,e=0;en[3]&&r)&&ja.scale(n,-1,n);c[m]=U.Eo(n[0]);c[m+1]=U.Eo(n[1]);c[m+2]=U.Eo(n[2]);c[m+3]=U.Eo(n[3])}S.bufferSubData(S.ARRAY_BUFFER,U.qi*k,c.subarray(k))}}};a.check_shape_keys=function(a){return a.k.ae};a.get_shape_keys_names=function(a){var b=[];if(a.k)for(var c=1;c=l.nx)c(h);else{e%=l.Xe;if(e2*f?(d.Ti=!1,l.error('too many bones for "'+a.name+'" / '+d.lg+" bones (max "+f+" with blending, "+2*f+" without blending). Skinning will be disabled.")):d.Ti=!0}w=k.ZK(e.trans,e.ub,c.Bh);p.b4w_animation_mixing?(c.Fd=new Float32Array(w.ub),c.Wd=new Float32Array(w.ub),c.Kd=new Float32Array(w.trans),c.Zd=new Float32Array(w.trans)):(c.Fd= w.ub,c.Wd=w.ub,c.Kd=w.trans,c.Zd=w.trans);c.Bn=new Float32Array(4);c.An=r.create();c.xp=w;c.oe=0}if(c.ad)if(c=b.k,"CUBE"==c.rg)c.md=qa++;else if("PLANE"==c.rg){a:{p=a.constraints;for(w=0;wString(h).length?("000"+String(h)).slice(-3):String(h));if(!t(b+f,U.ALL,!1,-1))break;h++}l.error('Object "'+b+'" already exists. Name was replaced by "'+b+f+'".');e+=f;b+=f}e=A.mo(b,a.type,e);e.zi=a.zi;e.is_dynamic=a.is_dynamic;e.Yo=a.Yo;e.bq=a.bq;e.Wf=a.Wf;e.k=A.Su(a.k);e.us=A.$q(a.us);g(a,e);e.Fq=A.Zu(a.Fq);e.parent=A.Zu(a.parent);e.hj=a.hj;e.pp=a.pp;e.Fc=A.Zu(a.Fc);e.Qj=a.Qj;!a.C||a.qe||a.is_character||a.Hk|| (e.ol=a.ol,e.C=null);e.Rb=a.Rb;e.ar=a.ar;e.pg=A.$q(a.pg);b=[];for(h=0;hl){var v=k- l*(J-k)/Y,Ya=r-l*(E-r)/Y,Y=G-l*(D-G)/Y;k=(v+J)/2;r=(Ya+E)/2;G=(Y+D)/2;l=Math.sqrt((k-J)*(k-J)+(r-E)*(r-E)+(G-D)*(G-D))}Ya=Math.sqrt((K-J)*(K-J)+(fa-D)*(fa-D));Ya>m&&(v=K-m*(J-K)/Ya,Y=fa-m*(D-fa)/Ya,K=(v+J)/2,fa=(Y+D)/2,m=Math.sqrt((K-J)*(K-J)+(fa-D)*(fa-D)));J/=t?t:1;E/=n?n:1;D/=g?g:1;Y=Math.sqrt((X[0]-J)*(X[0]-J)+(X[1]-E)*(X[1]-E)+(X[2]-D)*(X[2]-D));Y>p&&(v=X[0]-p*(J-X[0])/Y,Ya=X[1]-p*(E-X[1])/Y,Y=X[2]-p*(D-X[2])/Y,X[0]=(v+J)/2,X[1]=(Ya+E)/2,X[2]=(Y+D)/2,p=Math.sqrt((X[0]-J)*(X[0]-J)+(X[1]-E)*(X[1]- E)+(X[2]-D)*(X[2]-D)))}u=t?t*X[0]:e;h=n?n*X[1]:h;f=g?g*X[2]:f;e=p*t;A=p*n;R=p*g;J=new Float32Array([k,r,G]);e=new Float32Array([e,A,R]);f=new Float32Array([u,h,f]);m=parseFloat(m.toFixed(3))}b.N=B;d.bP(b,m,m,B);B=y.Gu(l,J);b.oa=B;B=y.Hn([e[0],0,0],[0,e[1],0],[0,0,e[2]],f);b.V=B;Z.B(a);if(ja.debug_view)for(u=0;uMath.abs(255*k[0]-e[0])&&3>Math.abs(255*k[1]-e[1])&&3>Math.abs(255*k[2]-e[2]))return f.Ec&& f.Js&&(T.outlining_overview_mode?a.apply_outline_anim(d[h],T.cj,T.dj,T.ej):(e=f.dh,a.apply_outline_anim(d[h],e.cj,e.dj,e.ej))),d[h]}return null};a.set_wind_params=function(a,c){for(var d=n(a,"EMPTY",-1),e=0;ea&&l>=r&&r>a||la||l>=r))for(r=0;8>r;r++)h[8*g+r]=e[r],y[r]=e[r];else for(r=0;8>r;r++)y[r]=h[8*g+r];r=H;r[0]=b[3*g];r[1]=b[3*g+1];r[2]=b[3*g+2];n.transform_vec3(r,y,r);f[3*g]=r[0];f[3*g+1]=r[1];f[3*g+2]=r[2];var t=d;t[0]=c[4*g];t[1]=c[4*g+1];t[2]=c[4*g+2];t[3]=c[4*g+3];n.fQ(t,y,t);k[4*g]=t[0];k[4*g+1]=t[1];k[4*g+2]= t[2];k[4*g+3]=t[3];for(r=1;4>r;r++)f[3*(g+r)]=f[3*g],f[3*(g+r)+1]=f[3*g+1],f[3*(g+r)+2]=f[3*g+2],k[4*(g+r)]=t[0],k[4*(g+r)+1]=t[1],k[4*(g+r)+2]=t[2],k[4*(g+r)+3]=t[3]}}function b(a){a?(t.OP(a),f=function(){return t.iO()}):f=function(){return Math.random()}}var g=q("__config"),p=q("__batch"),D=q("__geometry"),e=q("__textures"),u=q("__time"),n=q("__tsr"),t=q("__util"),m=q("__vec3"),k=g.A,d=new Float32Array(4),y=new Float32Array(8),H=new Float32Array(3),v=[];a.update=function(){for(var a=0;am?(m=.5,g=.9):40>m?(m=.1,g=1):50>m?(m=0,g=.8):(m=0,g=.5)):(f=b.settings.particle_size, g=m=1);d.size=f;d.iz=m;d.hz=g;c.use_nodes&&"BILLBOARD"==b.settings.render_type&&(p.fb(a,"NODES",1),p.fb(a,"PARTICLE_BATCH",1),a.Ni=!0);b=b.settings.texture_slots;b[0]&&b[0].use_map_size&&b[0].texture&&"BLEND"==b[0].texture.type&&b[0].texture.use_color_ramp&&k.Hq&&(b=b[0].texture,f=[],e.vI(b.color_ramp,e.Xy,f),f=new Uint8Array(f.map(function(a){return t.clamp(255*a,0,255)})),f=e.pA(f,e.Xy),p.vi(a,f,"u_color_ramp_tex",b.name),p.fb(a,"USE_COLOR_RAMP",1));c=c.texture_slots;a=[-1,0,0,0,-1,0,0,0,-1,0,0, 0,-1,0,0,0];if(c[0]&&"STRAND"==c[0].texture_coords&&c[0].texture&&"BLEND"==c[0].texture.type&&c[0].texture.use_color_ramp){c=c[0].texture.color_ramp.elements;b=Math.min(4*c.length,a.length);for(f=0;fC;C++)g.ag[8*q+C]=n[C];c(g,H,N,n,H,N)}n=D.Se("EMITTER_PARTICLES");q=t.Vf();q.a_position=H;q.a_tbn_quat=N;n.U[0]=q;a.Zf=D.sq;a=[];for(q=0;qq;q++)w.push(p[q%4])}k=new Float32Array(w);l.a_p_vels=k;g.IC=new Float32Array(n.ka.a_p_data);return n};a.kP=function(a,b,c){a=a.F;for(var d=0;d=t?(m[g]=l[g],t+=n):m[g]=1E4,m[g+1]=m[g],m[g+2]=m[g],m[g+3]=m[g];k=k.fa;if(k.Fb.a_p_data){h=h.IC;for(g=0;g-x&&B-q&&Cx)for(a=-(2*x)/(p-1),c.push(-2E4,-2E4,a),c.push(-2E4,2E4,a),c.push(-x,-q,a),c.push(-x,q,a),c.push(2E4,-2E4,a),c.push(2E4,2E4,a),c.push(x,-q,a),c.push(x,q,a),Q=F+1,b.push(Q+1,Q+2,Q+3,Q+1,Q+0,Q+2,Q+2,Q+4,Q+6,Q+2,Q+0,Q+4,Q+1,Q+7,Q+5,Q+1,Q+3,Q+7,Q+7,Q+4,Q+5,Q+6,Q+4,Q+7),J=0;8>J;J++)z.push(.707,0,0,.707);a=e.Vf();a.a_position=new Float32Array(c);a.a_tbn_quat=new Float32Array(z);d=D.Se("MULTIGRID_PLANE");d.U[0]=a;d.ha=new Uint32Array(b); d.Aa=c.length/3;u.cF&&(D.ut(d,1,!0),a.a_polyindex=D.sr(d));return d};a.LS=function(a){var b=a.length;b%3&&e.q("Wrong array");for(var c=[],f=[],d=0;d=d;d++)for(k=0;16>=k;k++){var z=k/16,x=d/8;u.push(-a*Math.cos(2*z*Math.PI)*Math.sin(x*Math.PI)+c[0],a*Math.cos(x*Math.PI)+c[1],a*Math.sin(2*z*Math.PI)*Math.sin(x*Math.PI)+c[2])}for(d=z=0;8>d;d++)for(k=0;16>k;k++){var x=b(u,17*d+k+1), q=b(u,17*d+k),F=b(u,17*(d+1)+k),E=b(u,17*(d+1)+k+1);Math.abs(x[1])==a+c[1]?(g(x,p),g(F,p),g(E,p),v.push(z,z+1,z+2),z+=3):Math.abs(F[1])==a+c[1]?(g(x,p),g(q,p),g(F,p),v.push(z,z+1,z+2),z+=3):(g(x,p),g(q,p),g(F,p),g(E,p),v.push(z,z+1,z+2),v.push(z,z+2,z+3),z+=4)}k={};k.a_position=p;u=D.Mz(v,u,p);u=D.Lz(v,p,u);k.a_tbn_quat=e.gen_tbn_quats(u);f.U[0]=k;f.ha=v;f.Aa=p.length/3;return f};a.dB=function(a){var b=D.Se("INDEX"),c=e.Vf();c.a_index=new Float32Array(3*a);for(var f=new Uint16Array(3*a),d=0;d<3*a;d++)c.a_index[d]= d,f[d]=d;b.U[0]=c;b.ha=f;b.Aa=3*a;return b}};fdage.module.__prerender=function(a,q){function f(a,c){var f=a.te;f.is_visible=!1;if(f.hide)return!1;var g=c.p,m=c.type==e.Hc?g.ms:u.Yb(g.n,k);if("STATIC"==f.type&&f.fm)var D=f.fp,q=f.gp;else D=f.Ya.D,q=f.Ya.Oa;var F=f.jg,E=f.se,m=t.dist(D,m);if(!(mh;h++)a.p.Ug=a.po[h],A.uv[h]=f(A,a),A.uv[h]&&(u=b=!0,c(q));else A.Sb=f(A,a),A.Sb&&(u=b=!0,c(q));a.qa&&(q.pb.kp=!0)}t.Sb=u}a.qa=!1;switch(a.type){case e.Fe:break;default:a.type==e.Db||a.type==e.He||a.type==e.Ad||a.type==e.hd||a.type==e.Pc||b?a.Sb=!0:(a.Sb&&D.clear(a),a.Sb=!1)}}else if(a.qa){g=a.Ha;for(n=0;n>"+a;c in x||(x[c]={Ox:[],eD:"undefined",type:a});x[c].Ox.push(b.name)}function g(a,b,c){c=c+">>"+a;c in x||(x[c]={Ox:[],eD:"deprecated",type:a});x[c].Ox.push(b.name)}function p(a){t.warn(a)}function D(a,b){b||(b=a.name+"_COPY");var c=a.materials,d=a.submeshes;a.materials=null;a.submeshes=null;var e=k.Mg(a);a.materials=c;a.submeshes=d;e.name=b;e.materials=a.materials.slice(0); e.submeshes=[];for(c=0;cr.scale[0]||0>r.scale[1]||0>r.scale[2])&&p('negative scale for object "'+r.name+'", can lead to some errors'); m=r.scale;0==m[0]&&0==m[1]&&0==m[2]?m=!0:(d=Math.abs((m[1]-m[2])/m[1]),m=.005>Math.abs((m[0]-m[1])/m[0])&&.005>d);m||p("non-uniform scale for object "+r.name)}for(var u in x)h=x[u],m=u.match(/.*?(?=>>|$)/i)[0],t.warn('Property "'+String(m)+'" is '+h.eD+' for "'+h.type+'". To fix this, reexport '+a.b4w_filepath_blend)};a.JI=function(a,b){"num_channels"in a||(a.num_channels=1,p('FDAGE Warning: no channels number in animation fcurve for "'+b.name+'" action, reexport scene'))};a.SH=function(a){var b;a:{b= a.modifiers;for(var c=0;cqa?(r[0]=H[0],r[1]= H[1],r[2]=H[2],d.scale(r,qa,r),d.add(p,r,p)):qa>ia&&(r[0]=H[0],r[1]=H[1],r[2]=H[2],d.scale(r,qa-ia,r),d.add(p,r,p));n.fromRotationTranslation(v,p,g);z.Ri&&(m.setAxisAngle(q,r[3],x),d.transformQuat(W,x,W));W[U]=0;d.transformMat4(W,g,W);ka[3*G]=W[0];ka[3*G+1]=W[1];ka[3*G+2]=W[2];T.length&&(F[0]=T[4*G],F[1]=T[4*G+1],F[2]=T[4*G+2],F[3]=T[4*G+3],m.multiply(F,v,F),T[4*G]=F[0],T[4*G+1]=F[1],T[4*G+2]=F[2],T[4*G+3]=F[3])}}}e.jO(b)}return b};a.EJ=function(){return{name:"DEFAULT",uuid:k.Hv(),use_nodes:!1,diffuse_shader:"LAMBERT", diffuse_color:[.8,.8,.8],diffuse_intensity:.8,alpha:1,raytrace_transparency:{fresnel:0,fresnel_factor:1.25},raytrace_mirror:{reflect_factor:0,fresnel:0,fresnel_factor:1.25},specular_alpha:1,specular_color:[1,1,1],specular_intensity:.5,specular_shader:"COOKTORR",specular_hardness:50,specular_slope:.2,emit:0,ambient:1,use_vertex_color_paint:!1,b4w_water:!1,b4w_water_shore_smoothing:!1,b4w_water_dynamic:!1,b4w_generated_mesh:!1,b4w_refr_bump:0,b4w_refractive:!1,b4w_waves_height:1,b4w_water_fog_color:[.5, .5,.5],b4w_water_fog_density:.06,b4w_water_num_cascads:5,b4w_water_subdivs:64,b4w_water_detailed_dist:1E3,b4w_terrain:!1,b4w_collision:!1,b4w_collision_id:"",b4w_double_sided_lighting:!1,b4w_water_enable_caust:!1,b4w_water_caust_scale:.25,b4w_water_caust_brightness:.5,physics:{friction:.5,elasticity:0},type:"SURFACE",use_transparency:!1,use_shadeless:!1,offset_z:0,b4w_render_above_all:!1,game_settings:{alpha_blend:"OPAQUE",use_backface_culling:!0},halo:{size:.5,hardness:50,b4w_halo_rings_color:[1, 1,1],b4w_halo_lines_color:[1,1,1],b4w_halo_stars_blend_height:10,b4w_halo_stars_min_height:0},node_tree:null,texture_slots:[],pass_index:0}};a.XH=function(a,b){function c(b,d){for(var e in b){var f=b[e],h=f[0];if(1da;da++)Na.po.push(w.yJ());B.H(l,Na);var Lb=x("CUBEMAP","u_cube_reflection",a.Hh,1,1, !1);Lb.Ea=C.J;Lb.Da=C.J;q.push(Lb);if(O.GB){var Xa=I.hk(I.ee,Ga,!1,H,E,xa,Da,null,a.hi);Xa.jk=Na.jk;Xa.po=Na.po;B.H(l,Xa);var Ea=x("DEPTH","DEPTH",a.Hh,1,1,!1),Za=x("COLOR","COLOR",a.Hh,1,1,!1);B.r(l,Na,Xa,Ea);B.r(l,Na,Xa,Za);z.push(Xa);O.jv.push(Xa)}else{var Xb=x("DEPTH","DEPTH",a.Hh,1,1,!1);Na.Pa.push(Xb);z.push(Na)}O.Gh.push(Na)}if(O&&0 "+String(d)+' [label="'+ l(e,c)+'" style="'+(e.rc?"solid":"dotted")+'"];\n'});return b+="}"};a.KJ=function(a){a=B.aQ(a);for(var b=[],c=0;cb?1:-1}function g(a,c){return-b(a.Nf,c.Nf)||b(a.zf,c.zf)||b(a.pb.Dx,c.pb.Dx)}var p=q("__camera"),D=q("__config"),e=q("__util"),u=q("__boundings"),n=D.Ec;a.Db=0;a.yc=1;a.ef=2;a.hd=3;a.Pc=4;a.Ge=5;a.ee=6;a.Ad=7; a.Hc=8;a.He=9;a.vh=10;a.Wb=11;a.kn=12;a.nn=13;a.Bl=14;a.Ee=15;a.uh=16;a.Fe=17;a.xl=18;a.Iy=19;a.yq=20;a.ju=21;a.Cy=22;a.rn=23;a.wq=24;a.hu=25;a.xq=26;a.Yt=27;a.Cg=28;a.Xt=29;a.mn=30;a.Lf=31;a.zl=32;a.ri=33;a.tq=34;a.Mf=35;a.Zt=36;a.wh=37;a.LUMINANCE=38;a.jF=39;a.uq=40;a.jn=41;a.dH=42;a.Cl=43;a.pn=44;a.hK=function(a,b,k,d){var g=c(8);g.iv=a;g.self_shadow_polygon_offset=k.self_shadow_polygon_offset;g.vg=b;switch(k.ig[b]){case "SPOT":case "POINT":g.p=p.Lc(p.jd);a=e.rad_to_deg(k.SD[b]);p.ft(g.p,a,k.Xn[b], k.Wn[b]);break;default:g.p=p.Lc(p.xh)}f(g,d);return g};a.iJ=function(a){var b=a.p;a.p=null;var c=e.O(a);a.p=b;c.p=p.tc(b,!0);return c};a.aK=function(){var a=c(10);a.p=p.Lc(p.Eg);return a};a.Wc=function(a){var b=c(11);b.kb=!1;b.rb=!1;b.nd=!1;b.ic=!0;b.p=p.Lc(p.Qc);b.Ss=a;switch(a){case "NONE":b.wb[0]=1;b.wb[1]=1;break;case "GRAYSCALE":b.wb[0]=1;b.wb[1]=1;break;case "X_BLUR":b.wb[0]=1;b.wb[1]=0;break;case "Y_BLUR":b.wb[0]=0;b.wb[1]=1;break;case "X_GLOW_BLUR":b.wb[0]=1;b.wb[1]=0;break;case "Y_GLOW_BLUR":b.wb[0]= 0;b.wb[1]=1;break;case "X_DOF_BLUR":b.wb[0]=1;b.wb[1]=1;break;case "Y_DOF_BLUR":b.wb[0]=1;b.wb[1]=1;break;case "X_ALPHA_BLUR":b.wb[0]=1;b.wb[1]=0;b.Hf=3;break;case "Y_ALPHA_BLUR":b.wb[0]=0;b.wb[1]=1;b.Hf=3;break;case "X_EXTEND":b.wb[0]=1;b.wb[1]=0;break;case "Y_EXTEND":b.wb[0]=0;b.wb[1]=1;break;default:e.q("Wrong postprocessing effect: "+a)}return b};a.sA=function(a){var b=c(12);b.kb=!1;b.rb=!1;b.nd=!1;b.p=p.Lc(p.Qc);b.Ss=a;b.ic=!0;switch(a){case "X_BLUR":b.wb[0]=1;b.wb[1]=0;break;case "Y_BLUR":b.wb[0]= 0;b.wb[1]=1;break;default:e.q("Wrong postprocessing effect for bloom blur: "+a)}return b};a.ZJ=function(a,b){var e=c(13);e.kb=!1;e.rb=!1;e.nd=!1;e.small_glow_mask_coeff=b.Mi.small_glow_mask_coeff;e.large_glow_mask_coeff=b.Mi.large_glow_mask_coeff;e.small_glow_mask_width=b.Mi.small_glow_mask_width;e.large_glow_mask_width=b.Mi.large_glow_mask_width;e.p=a;e.ic=!0;return e};a.hk=function(a,b,k,d,g,n,p,u,D){var q=c(a);0==a?(q.kb=!0,q.rb=k,q.zb=!1):1==a?(q.kb=!1,q.rb=!1,q.zb=!0):2==a?(q.kb=!1,q.rb=!0,q.zb= !0):3==a||4==a?(q.kb=!0,q.rb=!0,q.zb=!1):5==a||6==a?(q.kb=!1,q.rb=!1,q.zb=!0):7==a?(q.kb=!0,q.rb=!1,q.zb=!0):e.q("wrong main subscene type");q.zb&&u&&(q.self_shadow_normal_offset=u.self_shadow_normal_offset);q.p=b;if(a=p.Jm)q.nt.set([a.Ez,a.JB,a.hF,a.gF]),q.lt.set(a.color),q.mt=a.va;q.Dd.set(p.Dd);q.Ld.set(p.Ld);q.bg=p.bg;q.Sd=n.Sd;q.nf=n.nf;d&&(q.wc=d,d.Sd&&(q.sh=new Float32Array(d.Sd)),q.xy=d.waves_height,q.yy=d.waves_length,q.Kj=d.Kj,d.Tf&&D&&(q.Tf=!0,q.Sz=d.GI,q.Rz=d.FI,q.Tz.set(d.HI)));f(q,g); return q};a.dr=function(){var a=c(14);a.ic=!0;a.p=p.Lc(p.Qc);return a};a.tA=function(a,b,e){var d=c(15);b&&(d.type=16,d.kb=!1,d.rb=!0);d.enqueue=!1;d.p=a;f(d,e);return d};a.XJ=function(a){var b=c(17);b.Sb=!1;b.kb=!1;b.rb=!1;b.p=a;return b};a.TJ=function(a){var b=c(18);b.kb=!0;b.rb=!1;b.p=a;return b};a.iK=function(a,b){var e=c(9);e.p=a;f(e,b);return e};a.YJ=function(a){var b=c(19);b.kb=!1;b.rb=!1;b.p=a;b.ic=!0;return b};a.kK=function(a,b,e){var d=c(20);d.kb=!1;d.rb=!1;d.nd=!1;d.p=a;d.Sd=b.Sd;d.sh= new Float32Array(b.Sd);d.Mm=e.radius_increase;d.ssao_hemisphere=e.tM;d.Lm=e.influence;d.Km=e.dist_factor;d.UD=e.HO;d.ic=!0;return d};a.lK=function(a,b){var e=c(21);e.kb=!1;e.rb=!1;e.nd=!1;e.p=a;e.ssao_blur_depth=b.lI;e.ssao_blur_discard_value=b.Hz;e.ic=!0;return e};a.SJ=function(a){var b=c(22);b.kb=!1;b.rb=!1;b.nd=!1;b.Hf=1/a.Am;b.YA=a.az;b.p=p.Lc(p.Qc);b.ic=!0;return b};a.hv=function(a,b){var e=c(a);e.kb=23==a||24==a?!0:!1;e.rb=!1;e.nd=!1;e.Hf=1/b.Am;e.p=p.Lc(p.Qc);23==a&&(e.MM=new Float32Array(4)); e.ic=!0;return e};a.WJ=function(a,b,e,d){var f=c(27);f.kb=!1;f.rb=!1;f.nd=!1;f.p=p.Lc(p.Qc);f.brightness=a;f.contrast=b;f.exposure=e;f.saturation=d;f.ic=!0;return f};a.dK=function(a,b){var e=c(28);e.kb=!1;e.rb=!1;e.nd=!1;e.p=p.Lc(p.Qc);e.uu=!0;e.mb_decay_threshold=a;e.mb_factor=b;e.ic=!0;return e};a.ev=function(a,b){var e=c(29);e.kb=!1;e.rb=!1;e.nd=!1;e.p=a;e.Hf=e.p.dof_power;e.gA=b;e.ic=!0;return e};a.uA=function(a){var b=c(30);b.kb=!1;b.rb=!1;b.nd=!1;b.p=a;b.Hf=b.p.dof_power;b.ic=!0;return b};a.fK= function(a,b){var e=c(31);e.nd=!1;e.p=a;f(e,b);return e};a.eK=function(a){var b=c(32);n.outlining_overview_mode?b.Zh.set(n.Zh):b.Zh.set(a.Zh);b.np=a.np;b.Bv=5;b.Au=3;b.nd=!1;b.p=p.Lc(p.Qc);b.ic=!0;return b};a.gv=function(a,b,e,d,g,n,p){var u=c(33);u.kb=!1;u.rb=!1;u.nd=!1;u.Dd=new Float32Array([1,1,1]);u.Ld=new Float32Array([1,1,1]);u.bg=1;u.JC=d;u.rh=b;u.Xs=g;u.mm=e;u.Qm=p;u.p=a;f(u,n);return u};a.$J=function(a,b){var e=c(34);e.kb=!1;e.rb=!1;e.nd=!1;e.p=p.Lc(p.Qc);e.god_rays_intensity=a;f(e,b);e.ic= !0;return e};a.jK=function(a,b,k,d){var g=c(35);g.enqueue=!1;g.kb=!1;g.rb=!1;g.nd=!1;var n=p.Lc(p.Qc);n.width=d;n.height=d;g.p=n;g.jk=e.wL();f(g,b);g.Dd=new Float32Array([1,1,1]);g.Ld=new Float32Array([1,1,1]);g.bg=1;g.Im.set(k.Im);g.procedural_skydome=k.procedural_skydome;g.use_as_environment_lighting=k.use_as_environment_lighting;g.rayleigh_brightness=k.rayleigh_brightness;g.mie_brightness=k.mie_brightness;g.spot_brightness=k.spot_brightness;g.scatter_strength=k.scatter_strength;g.rayleigh_strength= k.rayleigh_strength;g.mie_strength=k.mie_strength;g.rayleigh_collection_power=k.rayleigh_collection_power;g.mie_collection_power=k.mie_collection_power;g.mie_distribution=k.mie_distribution;if(a){g.Dd.set(a.Dd);g.Ld.set(a.Ld);g.bg=a.bg;if(b=a.Jm)g.nt.set([b.Ez,b.JB,b.hF,b.gF]),g.lt.set(b.color),g.mt=b.va,g.ID=b.invert,g.ND=b.OE,g.JD=b.JE,g.KD=b.KE,g.MD=b.ME,g.LD=b.LE,g.HD=b.Fz;g.fq=a.fq;g.gq=a.gq;g.hq=a.hq}return g};a.fv=function(){var a=c(36);a.kb=!1;a.rb=!1;a.p=p.Lc(p.Qc);a.ic=!0;return a};a.mK= function(a){var b=c(37);b.kb=!1;b.rb=!1;b.vb=a?"HMD":"ANAGLYPH";b.p=p.Lc(p.Qc);b.ic=!0;return b};a.bK=function(){var a=c(38);a.kb=!1;a.rb=!1;a.p=p.Lc(p.Qc);a.ic=!0;return a};a.UJ=function(){var a=c(39);a.kb=!1;a.rb=!1;a.p=p.Lc(p.Qc);a.ic=!0;return a};a.cK=function(a,b,e,d){var g=c(40);g.kb=!1;g.rb=!1;g.Rq=a;g.Qq=b;g.p=d;f(g,e);g.ic=!0;return g};a.VJ=function(a){var b=c(41);b.kb=!1;b.rb=!1;b.p=p.Lc(p.Qc);b.Fl=a;b.ic=!0;return b};a.tS=function(a){var b=c(42);b.kb=!1;b.rb=!1;b.p=a;b.ic=!0;return b}; a.vA=function(){var a=c(43);a.enqueue=!1;return a};a.gK=function(){var a=c(44);a.ic=!0;return a};a.Qx=function(a){switch(a.type){case 0:return"MAIN OPAQUE";case 1:return"MAIN BLEND";case 2:return"MAIN XRAY";case 3:return"MAIN PLANE REFLECT";case 4:return"MAIN CUBE REFLECT";case 5:return"MAIN PLANE REFLECT BLEND";case 6:return"MAIN CUBE REFLECT BLEND";case 7:return"MAIN GLOW";case 8:return"SHADOW CAST";case 9:return"SHADOW RECEIVE";case 10:return"GRASS MAP";case 11:return"POSTPROCESSING ("+a.Ss.replace(/_/g, " ")+")";case 12:return"BLOOM BLUR";case 13:return"GLOW COMBINE";case 14:return"RESOLVE";case 15:return"COLOR PICKING";case 16:return"COLOR PICKING XRAY";case 17:return"DEBUG VIEW";case 18:return"ANCHOR VISIBILITY";case 19:return"DEPTH PACK";case 20:return"SSAO";case 21:return"SSAO BLUR";case 22:return"ANTIALIASING";case 23:return"SMAA BLENDING WEIGHT CALCULATION";case 24:return"SMAA EDGE DETECTION";case 25:return"SMAA RESOLVE";case 26:return"SMAA NEIGHBORHOOD BLENDING";case 27:return"COMPOSITING"; case 28:return"MOTION BLUR";case 29:return"COC";case 30:return"DOF";case 31:return"OUTLINE MASK";case 32:return"OUTLINE";case 33:return"GOD RAYS";case 34:return"GOD RAYS COMBINE";case 35:return"SKY";case 36:return"COPY";case 37:return"STEREO";case 38:return"LUMINANCE";case 39:return"AVERAGE LUMINANCE";case 40:return"LUMINANCE TRUNCED";case 41:return"BLOOM";case 42:return"VELOCITY";case 44:return"PERFORMANCE";case 43:return"SINK";default:return"UNKNOWN"}};a.Bc=function(a,b){for(var c=b.pa,d=c.pb,e= 0;e>3|5*K+3*w>>3&2016|5*h+3*r>>3&63488,f[3]=5*l+3*A>>3|5*w+3*K>>3&2016|5*r+3*h>>3&63488,A=c[D+2],K=4*B*q+4*Z,b[K]=f[A&3],b[K+1]=f[A>>2&3],b[K+2]=f[A>>4&3],b[K+3]=f[A>>6&3],K+=q,b[K]=f[A>>8&3],b[K+1]=f[A>>10&3],b[K+2]=f[A>>12&3],b[K+3]=f[A>>14],A=c[D+3],K+=q,b[K]=f[A&3],b[K+1]=f[A>>2&3],b[K+2]=f[A>>4&3],b[K+3]=f[A>>6&3],K+=q,b[K]=f[A>>8&3],b[K+1]=f[A>>10&3],b[K+2]=f[A>>12&3],b[K+3]=f[A>>14];a.texImage2D(a.TEXTURE_2D,0,a.RGB,x,M,0,a.RGB, a.UNSIGNED_SHORT_5_6_5,b);d&&a.generateMipmap(a.TEXTURE_2D)}else return p.error("No manual decoder for",g(D),"and no native support"),0;return F}function c(a,b,c,d,e){var g=new XMLHttpRequest;g.open("GET",c,!0);g.responseType="arraybuffer";g.onload=function(){if(200==g.status){a.bindTexture(a.TEXTURE_2D,d);var c=f(a,b,g.response,!0);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,1>8&255,a>>16&255,a>>24&255)}var p=q("__print"),D=q("__util"),e=b("DXT1"),u=b("DXT3"),n=b("DXT5");a.RQ=f;a.SQ=function(a,b,c){var d=new Uint32Array(c,0,13);if(55727696==d[0]){var e=d[7],f=d[6],g=d[11],n=52+d[12];switch(d[2]){case 0:var p=2,u=1;break;case 1:p=2;u=3;break;case 2:p=4;u=0;break;case 3:p=4;u=2;break;default:D.q("Unsupported PVR V3 format.")}}else if(559044176== d[11]){e=d[2];f=d[1];g=d[3];n=d[0];g++;var q=d[4]&255,d=0>p,1),A=Math.max(f>>p,1),K=u/q,h=A/d;2>K&&(K=2);2>h&&(h=2);K= K*h*b;h=new Uint8Array(c,n,K);a.compressedTexImage2D(a.TEXTURE_2D,p,E,u,A,0,h);n+=K}};a.DB=function(a,b){switch(b){case "dds":var c=new Int32Array(a,0,31);return{width:c[4],height:c[3]};case "pvr":c=new Uint32Array(a,0,13);if(55727696==c[0])var d=c[7],c=c[6];else d=c[2],c=c[1];return{width:d,height:c}}};a.LL=function(a,b){var c=1;if("dds"==b){var d=new Int32Array(a,0,31),f=d[21];switch(f){case e:c=6;break;case u:case n:c=4;break;default:p.error("Unsupported FourCC code:",g(f))}}else if("pvr"==b)if(d= new Uint32Array(a,0,13),55727696==d[0])switch(d[2]){case 0:c=12;break;case 1:c=16;break;case 2:c=6;break;case 3:c=8}else f=d[4]&255,d=0e;e++){var f=d[e],h=u();h.width=c;h.height=c;var l=h.getContext("2d");"POSITIVE_Y"==f[0]||"NEGATIVE_Y"==f[0]?(l.translate(0,c),l.scale(1,-1)):(l.translate(c,0),l.scale(-1,1));l.drawImage(a,f[1]*b,f[2]*b,b,b,0,0,c,c);L.texImage2D(L["TEXTURE_CUBE_MAP_"+f[0]],0,L.RGBA, L.RGBA,L.UNSIGNED_BYTE,h)}}function m(a){wa||(wa=L.createFramebuffer());L.bindTexture(a,null);va||(va=L.createTexture());L.bindTexture(a,va);L.texParameteri(a,L.TEXTURE_WRAP_S,L.CLAMP_TO_EDGE);L.texParameteri(a,L.TEXTURE_WRAP_T,L.CLAMP_TO_EDGE);L.texParameteri(a,L.TEXTURE_MAG_FILTER,L.LINEAR);L.texParameteri(a,L.TEXTURE_MIN_FILTER,L.LINEAR)}function k(a,b,c){var e=a.source,f=a.gb,h=a.$a,l=a.Ck,g=a.am,k=1,r=1;L.bindTexture(h,f);a.repeat?(L.texParameteri(h,L.TEXTURE_WRAP_S,L.REPEAT),L.texParameteri(h, L.TEXTURE_WRAP_T,L.REPEAT)):(L.texParameteri(h,L.TEXTURE_WRAP_S,L.CLAMP_TO_EDGE),L.texParameteri(h,L.TEXTURE_WRAP_T,L.CLAMP_TO_EDGE));if(4==b.length){var p=!0;b=new Uint8Array([255*b[0],255*b[1],255*b[2],255*b[3]])}if("IMAGE"==e)if(p)L.texImage2D(h,0,L.RGBA,1,1,0,L.RGBA,L.UNSIGNED_BYTE,b),a.width=1,a.height=1;else if(l){r=V.DB(b,l);p=ia.Vn(r.width)||ia.Vn(r.height);if(r.width>S.oc||r.height>S.oc){T.error('Image "'+g+'" has unsupported size: '+r.width+"x"+r.height+". Max available: "+S.oc+"x"+S.oc+ ".");return}k=r.width;r=r.height;if(p||"pvr"==l)a.vf=!0,m(h),k=y(k*a.tg),r=y(r*a.tg);"dds"==l?V.RQ(L,ja.wB(),b,!0):"pvr"==l&&V.SQ(L,ja.vB(),b);a.vf&&(n(a,null,k,r,!0),L.bindTexture(h,f),L.generateMipmap(h));a.width=k;a.height=r;a.jo=V.LL(b,l)}else{L.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,!0);a.Jk?ra.Ip?(k=b[0].width,r=b[0].height):(k=b.videoWidth,r=b.videoHeight):(k=b.width,r=b.height);a.width=k;a.height=r;if(k>S.oc||k>S.oc)T.warn('Image "'+g+'" has unsupported size: '+k+"x"+r+". Max available: "+S.oc+ "x"+S.oc+". Reduced image size will be used."),a.tg=Math.min(S.oc/k,S.oc/r),a.vf=!0;a.Jk&&(c in na||(na[c]={}),na[c][a.Jt]=a,ra.Ip?(a.Tc=b,a.Hp=b.length,a.eg=a.Gp*a.Wi/b.length,b=b[0]):(a.Ia=b,a.Ia.loop=a.li,a.eg=b.duration?a.Wi/b.duration:U.Sc(),la.JA||(b.playbackRate=U.Sc()/a.eg,la.dA&&2g;g++)L.texImage2D(L["TEXTURE_CUBE_MAP_"+k[g][0]],0,L.RGBA,1,1,0,L.RGBA,L.UNSIGNED_BYTE,b);a.width=3;a.height=2}else{L.pixelStorei(L.UNPACK_FLIP_Y_WEBGL, !1);if(b.width%3||b.height%2){T.error('Cubemap Image "'+g+'" has unsupported size: '+b.width+"x"+b.height+". The width must be multiple of three and the height - multiple of two.");return}r=b.width/3;r>S.Sh?(T.warn('Cubemap Image "'+g+'" has unsupported size: '+b.width+"x"+b.height+". Max available: "+3*S.Sh+"x"+2*S.Sh+". Reduced image size will be used."),g=y(S.Sh/r*r),a.vf=!0):(g=y(r),!ra.Vb&&(3*g>S.oc||2*g>S.oc)&&(a.vf=!0));if(a.vf||ra.rx)t(b,r,g,k);else{l=b;f=g;m(L.TEXTURE_2D);L.texImage2D(L.TEXTURE_2D, 0,L.RGBA,L.RGBA,L.UNSIGNED_BYTE,l);L.bindTexture(L.TEXTURE_2D,null);for(l=0;6>l;l++)L.texImage2D(L.TEXTURE_CUBE_MAP_POSITIVE_X+l,0,L.RGBA,f,f,0,L.RGBA,L.UNSIGNED_BYTE,null);L.bindTexture(a.$a,null);L.bindFramebuffer(L.FRAMEBUFFER,wa);for(l=0;6>l;l++)G.GK(a,L.TEXTURE_CUBE_MAP_POSITIVE_X+l,f,r,va,l);L.bindFramebuffer(L.FRAMEBUFFER,null);L.bindTexture(a.$a,a.gb);L.texParameteri(a.$a,L.TEXTURE_MIN_FILTER,ua[ra.Vm]);L.texParameteri(a.$a,L.TEXTURE_MAG_FILTER,L.LINEAR)}ka.SI()&&(T.warn("Firefox detected, setting max cubemap size to 256, use canvas for resizing."), t(b,r,Q.Ty,k));a.width=3*g;a.height=2*g;L.generateMipmap(h)}else"NODE_TEX"==e&&(L.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,!1),L.texImage2D(h,0,L.RGBA,b.width,b.height,0,L.RGBA,L.UNSIGNED_BYTE,b.data),a.width=b.width,a.height=b.height);L.bindTexture(h,null)}function d(a){a.Ia.AT=function(){D(a)}}function y(a){return ia.Vn(a)?ia.clamp(Math.pow(2,parseInt(a).toString(2).length),2,S.oc):a}function H(b){var c;switch(b.type){case a.Dg:c=L.RGBA;break;case a.Dq:c=L.RGB;break;case a.sn:c=L.RGBA;break;case a.tn:c= L.RGB;break;case a.Dl:c=L.DEPTH_COMPONENT;break;default:ia.q("Wrong texture type")}return c}function v(b){var c;switch(b.type){case a.Dg:c=ra.Vb?L.RGBA8:L.RGBA;break;case a.Dq:c=ra.Vb?L.RGB8:L.RGB;break;case a.sn:c=ra.Vb?L.RGBA8:L.RGBA;break;case a.tn:c=ra.Vb?L.RGB8:L.RGB;break;case a.Dl:c=ra.Vb?L.DEPTH_COMPONENT24:L.DEPTH_COMPONENT;break;default:ia.q("Wrong texture type")}return c}function z(b){var c;switch(b.type){case a.Dg:c=L.UNSIGNED_BYTE;break;case a.Dq:c=L.UNSIGNED_BYTE;break;case a.sn:c=L.FLOAT; break;case a.tn:c=L.FLOAT;break;case a.Dl:c=L.UNSIGNED_INT;break;default:ia.q("Wrong texture type")}return c}function x(a){return a&&a.ce?!0:!1}function M(a){a.Ia?a.Ia.play():a.Tc&&(a.Jp=!0);a.kq=!1}function F(a){a.Ia?a.Ia.pause():a.Tc&&(a.Jp=!1);a.kq=!0}function E(a){a.Ia?a.Ia.currentTime=a.Jb/a.eg:a.Tc&&(a.bi=K(a,a.Jb),e(a))}function A(a){return a.Ia?!a.Ia.paused:a.Tc?a.Jp:!1}function K(a,b){return Math.round(b*a.Hp/a.Wi)}function h(a,b){if(qa.is_dynamic(a))return l(a,b);for(var c=a.ts,d=0;d=a.$i&&(a.gb&&L.deleteTexture(a.gb),a=ca.indexOf(a),-1!= a&&ca.splice(a,1))}function C(a){a.$i+=1}function N(a,b){for(var c=0;ch;h++)L.texImage2D(L[e[h]],0,L.RGBA,b,b,0,L.RGBA,L.UNSIGNED_BYTE,null);L.bindTexture(d,null);d=f();d.type=a.Dg;d.source="NONE";d.width=3*b;d.height=2*b;d.jo=1;d.gb=c;d.$a=L.TEXTURE_CUBE_MAP;return d};a.zx=function(a,b,c){if(!x(a)){var d=a.$a;L.bindTexture(d,a.gb);b&&L.texParameteri(d,L.TEXTURE_MIN_FILTER,b);c&&L.texParameteri(d,L.TEXTURE_MAG_FILTER,c);L.bindTexture(d,null)}};a.SS=function(b){if(x(b))return{min:a.Nd,oN:a.Nd};var c=b.$a;L.bindTexture(c,b.gb);b=L.getTexParameter(c,L.TEXTURE_MIN_FILTER); var d=L.getTexParameter(c,L.TEXTURE_MAG_FILTER);L.bindTexture(c,null);return{min:b,oN:d}};a.resize=function(b,c,d){c=Math.max(c,ra.Bo?2:1);d=Math.max(d,ra.Bo?2:1);if(b.width!=c||b.height!=d){switch(b.type){case a.Bq:L.bindRenderbuffer(L.RENDERBUFFER,b.ce);L.renderbufferStorage(L.RENDERBUFFER,L.RGB565,c,d);L.bindRenderbuffer(L.RENDERBUFFER,null);break;case a.zq:L.bindRenderbuffer(L.RENDERBUFFER,b.ce);L.renderbufferStorage(L.RENDERBUFFER,L.DEPTH_COMPONENT16,c,d);L.bindRenderbuffer(L.RENDERBUFFER,null); break;case a.Cq:L.bindRenderbuffer(L.RENDERBUFFER,b.ce);L.renderbufferStorageMultisample(L.RENDERBUFFER,ra.pc,L.RGBA8,c,d);L.bindRenderbuffer(L.RENDERBUFFER,null);break;case a.Aq:L.bindRenderbuffer(L.RENDERBUFFER,b.ce);L.renderbufferStorageMultisample(L.RENDERBUFFER,ra.pc,L.DEPTH_COMPONENT24,c,d);L.bindRenderbuffer(L.RENDERBUFFER,null);break;default:var e=b.$a;L.bindTexture(e,b.gb);var f=H(b),h=v(b),l=z(b);L.texImage2D(e,0,h,c,d,0,f,l,null);L.bindTexture(e,null)}c>S.oc||d>S.oc?ia.q('Slink texture "'+ b.type+'" has unsupported size: '+c+"x"+d+". Max available: "+S.oc+"x"+S.oc+"."):(b.width=c,b.height=d)}};a.nK=function(b,d,e,h,l){var g=b.type,k=b.image,m=f();m.Fu=b.uuid;m.type=a.Dg;m.width=1;m.height=1;var n=b.b4w_anisotropic_filtering;"DEFAULT"===n&&(n=d);"OFF"!==n&&ra.anisotropic_filtering&&ja.jB()&&(n=parseFloat(n.split("x")[0]),m.anisotropic_filtering=n);if("REPEAT"!=b.extension||b.b4w_shore_dist_map)m.repeat=!1;if(k&&("IMAGE"==g&&"MOVIE"==k.source&&(m.Jk=!0,m.Jt=b.name,m.na=b.frame_start, m.Jb=b.frame_offset,m.Ji=b.frame_duration,m.qy=b.use_auto_refresh,m.li=b.use_cyclic,m.Wi=b.movie_length,m.Dj=b.b4w_nla_video,0!=m.Jb&&T.warn('Frame offset for texture "'+b.name+'" has a nonzero value. Can lead to undefined behaviour for mobile devices.')),d=ia.bh(l+k.filepath),d=N(d,m))){b.s=d;return}d=new Uint8Array([204,204,204,255]);switch(g){case "IMAGE":var n=L.createTexture(),r=L.TEXTURE_2D;L.bindTexture(r,n);L.texImage2D(r,0,L.RGBA,1,1,0,L.RGBA,L.UNSIGNED_BYTE,d);break;case "NONE":n=L.createTexture(); r=L.TEXTURE_2D;L.bindTexture(r,n);if("NONE"==b.b4w_source_type)return;if("SCENE"==b.b4w_source_type)if(b.b4w_source_id&&(e=ia.keysearch("name",b.b4w_source_id,e)))m.ci=b.b4w_source_size,e.ff=e.ff||[],e.ff.push(m),C(m),L.texImage2D(r,0,L.RGBA,1,1,0,L.RGBA,L.UNSIGNED_BYTE,d);else return;break;case "ENVIRONMENT_MAP":n=L.createTexture();r=L.TEXTURE_CUBE_MAP;L.bindTexture(r,n);e="POSITIVE_X NEGATIVE_X POSITIVE_Y NEGATIVE_Y POSITIVE_Z NEGATIVE_Z".split(" ");for(var G=0;6>G;G++)L.texImage2D(L["TEXTURE_CUBE_MAP_"+ e[G]],0,L.RGBA,1,1,0,L.RGBA,L.UNSIGNED_BYTE,d);break;case "BLEND":return;default:T.error('texture "'+b.name+'" has unsupported type "'+g+'"');return}m.gb=n;m.$a=r;m.anisotropic_filtering&&L.texParameterf(m.$a,ja.jB().TEXTURE_MAX_ANISOTROPY_EXT,m.anisotropic_filtering);"NONE"==g&&(!b.b4w_enable_canvas_mipmapping||"CANVAS"!=b.b4w_source_type)||"IMAGE"==g&&"MOVIE"==k.source?L.texParameteri(r,L.TEXTURE_MIN_FILTER,L.LINEAR):L.texParameteri(r,L.TEXTURE_MIN_FILTER,ua[ra.Vm]);L.texParameteri(r,L.TEXTURE_MAG_FILTER, L.LINEAR);"CANVAS"==b.b4w_source_type&&"NONE"==g?(g=b.b4w_source_id,e=b.b4w_source_size,m.pk=b.b4w_enable_canvas_mipmapping,m.Np=g,m.source="CANVAS",d=document.createElement("canvas"),d.width=e,d.height=e,m.hf=d.getContext("2d"),h in ta||(ta[h]={}),ta[h][g]=m,p(m)):"SCENE"==b.b4w_source_type&&"NONE"==g?(m.Np=b.b4w_source_id,m.source="SCENE"):(m.source=g,L.generateMipmap(r),L.bindTexture(r,null));k&&c(m,k,l);b.s=m};a.GE=D;a.FE=e;a.Yp=k;a.zI=y;a.im=function(a){return a&&(a.gb||a.ce)?!0:!1};a.hm=x;a.jT= function(b){return b.type==a.sn||b.type==a.tn?!0:!1};a.kM=function(b){var c=0;switch(b.type){case a.Dg:case a.Dq:c=4;break;case a.sn:case a.tn:c=16;break;case a.Dl:c=3;break;case a.Bq:case a.zq:c=2;break;case a.Cq:c=4*ra.pc;break;case a.Aq:c=3*ra.pc}return c};a.cleanup=function(){if(!ra.Ip)for(var a in na)for(var b in na[a])na[a][b].Ia.pause(),na[a][b].Ia.src="",na[a][b].Ia.load();ca.length=0;ta={};na={}};a.pause=function(){for(var a in na)for(var b in na[a]){var c=na[a][b];A(c)&&F(c)}};a.reset=function(){for(var a in na)for(var b in na[a])E(na[a][b])}; a.play=function(a){for(var b in na)for(var c in na[b]){var d=na[b][c];a&&!d.kq||M(d)}};a.Wv=function(a,b){return b in na&&a in na[b]?na[b][a]:null};a.vy=function(a){return a.Dj};a.play_video=M;a.pause_video=F;a.reset_video=E;a.UO=function(a,b){if(void 0 in na&&a in na[void 0]){var c=na[void 0][a];c.Ia?c.Ia.currentTime=b/c.eg:c.Tc&&(c.bi=b,e(c))}};a.aF=A;a.bF=function(a){return a.Ia||a.Tc?a.Ia?2<=a.Ia.readyState:!0:0};a.YE=function(a){return a.Ia||a.Tc?a.Ia?Math.round(a.Ia.currentTime*a.eg):a.bi:0}; a.$E=function(a){return a.Ia||a.Tc?a.Ia?a.Jb:K(a,a.Jb):0};a.fR=function(a){if(!a.Ia&&!a.Tc)return 0;var b=Math.min(a.Ji,a.Wi-a.Jb);return a.Ia?a.Jb+b:K(a,a.Jb+b)};a.dt=function(a,b){return Math.round(b*a.Gp*(U.Sc()/a.eg))};a.ZE=function(a){return Math.min(a.Ji,a.Wi-a.Jb)};a.eR=K;a.JL=function(a,b){var c=h(a,b);return c&&"CANVAS"==c.source?c.hf:null};a.xQ=function(a,b){var c=h(a,b);return c&&"CANVAS"==c.source?(p(c),!0):!1};a.jM=h;a.get_texture_names=function(a){var b=[];if(qa.is_dynamic(a))r(a,b); else{a=a.ts;for(var c=0;cp[r][1][0]&&(d[0]=p[r][1][0]),ga.subtract(d,p[r][1],d),X=ga.length(d),1E-8=g.length?(fa=Math.round(-b/2),G=Math.round(b/2)):(fa=0,G=b);for(;fa= l.length?(d=ia.clamp(127.5*(l[0][h]+1),0,255),f=ia.clamp(127.5*(l[1][h]+1),0,255),g=ia.clamp(127.5*(l[2][h]+1),0,255),r=255):(d=ia.clamp(255*l[0][h],0,255),f=ia.clamp(255*l[1][h],0,255),g=ia.clamp(255*l[2][h],0,255),r=ia.clamp(255*l[3][h],0,255)),c.push(d,f,g,r);return new Uint8Array(c)};a.pA=function(b,c){var d=g(a.Dg,!1);d.source="NODE_TEX";d.repeat=!1;k(d,{width:c,height:b.length/(4*c),data:b});return d};a.change_image=function(a,c,d,e,h){var l=ia.bh(h);if("WORLD"!=a.type){var g=N(l,c);if(!g){g= f();g.type=c.type;g.source=c.source;g.Np=c.Np;g.width=c.width;g.height=c.height;g.jo=c.jo;g.ci=c.ci;g.pk=c.pk;g.hf=c.hf;g.$a=c.$a;g.gb=c.gb;g.ce=c.ce;g.Jk=c.Jk;g.mq=c.mq;g.Ia=c.Ia;g.Jt=c.Jt;g.Wi=c.Wi;g.eg=c.eg;g.na=c.na;g.Jb=c.Jb;g.Ji=c.Ji;g.vf=c.vf;g.tg=c.tg;g.Tc=c.Tc;g.Hp=c.Hp;g.Gp=c.Gp;g.bi=c.bi;g.Jp=c.Jp;g.qj=c.qj;g.kq=c.kq;g.qy=c.qy;g.li=c.li;g.Dj=c.Dj;g.repeat=c.repeat;g.am=c.am;g.bm=c.bm;g.cm=c.cm;g.fw=c.fw;g.ew=c.ew;g.Wr=c.Wr;g.Ck=c.Ck;var m=g;L.bindTexture(c.$a,c.gb);var n=L.getTexParameter(c.$a, L.TEXTURE_MAG_FILTER),r=L.getTexParameter(c.$a,L.TEXTURE_MIN_FILTER),p=L.getTexParameter(c.$a,L.TEXTURE_WRAP_S);c=L.getTexParameter(c.$a,L.TEXTURE_WRAP_T);m.gb=L.createTexture();L.bindTexture(m.$a,m.gb);L.texParameteri(m.$a,L.TEXTURE_MAG_FILTER,n);L.texParameteri(m.$a,L.TEXTURE_MIN_FILTER,r);L.texParameteri(m.$a,L.TEXTURE_WRAP_S,p);L.texParameteri(m.$a,L.TEXTURE_WRAP_T,c);L.bindTexture(m.$a,null);b(g,h,l);ca.push(g);k(g,e,0)}e=g;if(qa.is_dynamic(a))w(a,d,e);else for(a=a.ts,h=0;h=E.wN)break;if(10===f.state)switch(f.state=20,c++,f.type){case a.AT_ARRAYBUFFER:g(f,"arraybuffer");break;case a.AT_JSON:g(f,"json");break;case a.AT_TEXT:g(f,"text");break;case a.AT_AUDIOBUFFER:p(f);break;case a.AT_IMAGE_ELEMENT:D(f); break;case a.AT_AUDIO_ELEMENT:e(f);break;case a.pq:u(f);break;case a.oq:n(f);break;default:x.q("Wrong asset type: "+f.type)}}}function g(b,d){var e=b.url.split("?t=")[0];if(e in l)"json"==d?b.Pb(x.O(l[e]),b.id,b.type,b.url,b.tb):b.Pb(l[e],b.id,b.type,b.url,b.tb);else{var h=f(),g=h&&b.url in h?new c:new XMLHttpRequest,h=null;if("GET"==b.ve)g.open("GET",b.url,!0);else if("POST"==b.ve)switch(g.open("POST",b.url,!0),b.Yk){case a.Ey:h="text/plain";break;case a.Dy:h="application/json"}if(b.fj)for(var k in b.fj)"Content-Type"== k?h=b.fj[k]:g.setRequestHeader(k,b.fj[k]);h&&g.setRequestHeader("Content-Type",h);"text"==d?(g.overrideMimeType("text/plain"),g.responseType="text"):"json"==d?(g.overrideMimeType("application/json"),g.responseType="text"):g.responseType=d;g.onreadystatechange=function(){if(40!=b.state&&4==g.readyState){if(200==g.status||0==g.status){var a=g.response;if(a){if("json"==d&&"string"==typeof a)try{a=JSON.parse(a,b.NM)}catch(c){v.error(c+" (parsing JSON "+b.url+")");b.Pb(null,b.id,b.type,b.url,b.tb);return}b.hg&& (l[e]="json"==d?x.O(a):a);b.Pb(a,b.id,b.type,b.url,b.tb)}else v.error("empty responce when trying to get "+b.url),b.Pb(null,b.id,b.type,b.url,b.tb)}else v.error(g.status+" when trying to get "+b.url),b.Pb(null,b.id,b.type,b.url,b.tb);b.state=30}};g.addEventListener("progress",function(a){a.lengthComputable&&b.UC(a.loaded/a.total)},!1);g.send(b.ij)}}function p(a){var b=a.url.split("?t=")[0];if(b in J)a.Pb(J[b],a.id,a.type,a.url,a.tb),a.state=30;else{"GET"!=a.ve&&x.q("Unsupported request type for audio buffer"); var d=(b=f())&&a.url in b?new c:new XMLHttpRequest;d.open("GET",a.url,!0);d.responseType="arraybuffer";d.onreadystatechange=function(){if(40!=a.state&&4==d.readyState)if(200==d.status||0==d.status){var b=d.response;b?z.zK(b,function(b){a.Pb(b,a.id,a.type,a.url,a.tb);a.state=30;a.hg&&(J[a.url.split("?t=")[0]]=b)},function(){a.Pb(null,a.id,a.type,a.url,a.tb);v.error("failed to decode "+a.url);a.state=30}):(a.Pb(null,a.id,a.type,a.url,a.tb),v.error("empty responce when trying to get "+a.url),a.state= 30)}else a.Pb(null,a.id,a.type,a.url,a.tb),v.error(d.status+" when trying to get "+a.url),a.state=30};d.send(a.ij)}}function D(a){var b=a.url.split("?t=")[0];if(b in w)a.Pb(w[b],a.id,a.type,a.url,a.tb),a.state=30;else{"GET"!=a.ve&&x.q("Unsupported request type for image element");var c=document.createElement("img");F.allow_cors&&(c.crossOrigin="Anonymous");c.onload=function(){40!=a.state&&(a.Pb(c,a.id,a.type,a.url,a.tb),a.state=30,a.hg&&(w[a.url.split("?t=")[0]]=c))};c.addEventListener("error",function(){40!= a.state&&(a.Pb(null,a.id,a.type,a.url,a.tb),v.error("could not load image: "+a.url),a.state=30)},!1);if((b=f())&&a.url in b)if(b[a.url]){var d=m(a.url);c.src="data:"+d+";base64,"+b[a.url]}else H.is_ie11()?(b=document.createEvent("CustomEvent"),b.initCustomEvent("error",!1,!1,null)):b=new CustomEvent("error"),c.dispatchEvent(b);else c.src=a.url}}function e(a){var b=a.url.split("?t=")[0];if(b in r)a.Pb(r[b],a.id,a.type,a.url,a.tb),a.state=30;else{"GET"!=a.ve&&x.q("Unsupported request type for audio element"); var c=document.createElement("audio");F.allow_cors&&(c.crossOrigin="Anonymous");c.addEventListener("loadeddata",function(){40!=a.state&&(a.Pb(c,a.id,a.type,a.url,a.tb),a.state=30,a.hg&&(r[a.url.split("?t=")[0]]=c))},!1);c.addEventListener("error",function(){40!=a.state&&(a.Pb(null,a.id,a.type,a.url,a.tb),v.error("could not load sound: "+a.url),a.state=30)},!1);c.addEventListener("stalled",function(){40!=a.state&&(a.Pb(null,a.id,a.type,a.url,a.tb),v.error("could not load sound: "+a.url),a.state=30)}, !1);if((b=f())&&a.url in b)if(b[a.url]){var d=k(a.url);c.src="data:"+d+";base64,"+b[a.url];40!=a.state&&(a.Pb(c,a.id,a.type,a.url,a.tb),a.state=30)}else H.is_ie11()?(b=document.createEvent("CustomEvent"),b.initCustomEvent("error",!1,!1,null)):b=new CustomEvent("error"),c.dispatchEvent(b);else c.src=a.url,F.is_mobile_device&&c.load();F.Iw&&(c.autoplay=!0,c.pause());setTimeout(function(){c.AP=1},5E3)}}function u(a){function b(){40!=a.state&&(a.Pb(null,a.id,a.type,a.url),v.error("could not load video: "+ a.url,a.tb),a.state=30)}var c=a.url.split("?t=")[0];if(c in w)a.Pb(w[c],a.id,a.type,a.url,a.tb),a.state=30;else{"GET"!=a.ve&&x.q("Unsupported request type for video element");var e=document.createElement("video");e.muted=!0;F.allow_cors&&(e.crossOrigin="Anonymous");e.addEventListener("loadeddata",function(){e.removeEventListener("error",b,!1);40!=a.state&&(a.Pb(e,a.id,a.type,a.url,a.tb),a.state=30,a.hg&&(w[a.url.split("?t=")[0]]=e))},!1);e.addEventListener("error",b,!1);if((c=f())&&a.url in c)if(c[a.url]){var h= d(a.url);e.src="data:"+h+";base64,"+c[a.url];40!=a.state&&e.addEventListener("loadeddata",function(){a.Pb(e,a.id,a.type,a.url,a.tb);a.state=30},!1)}else H.is_ie11()?(c=document.createEvent("CustomEvent"),c.initCustomEvent("error",!1,!1,null)):c=new CustomEvent("error"),e.dispatchEvent(c);else e.src=a.url,F.is_mobile_device&&e.load();F.Iw&&(e.autoplay=!0,e.pause());setTimeout(function(){e.AP=1},1E4)}}function n(b){function d(a){b.Pb(a,b.id,b.type,b.url,b.tb);b.state=30;b.hg&&(w[b.url.split("?t=")[0]]= a)}var e=b.url.split("?t=")[0];if(e in w)b.Pb(w[e],b.id,b.type,b.url,b.tb),b.state=30;else{"GET"!=b.ve&&x.q("Unsupported request type for seq video element");var h=(e=f())&&b.url in e?new c:new XMLHttpRequest;if(null==b.Yk&&null==b.ij)h.open("GET",b.url,!0);else switch(h.open("POST",b.url,!0),b.Yk){case a.Ey:h.setRequestHeader("Content-type","text/plain");break;case a.Dy:h.setRequestHeader("Content-type","application/json")}h.responseType="arraybuffer";h.onreadystatechange=function(){if(40!=b.state&& 4==h.readyState)if(200==h.status||0==h.status){var a=h.response;a?t(a,d):(b.Pb(null,b.id,b.type,b.url,b.tb),v.error("empty responce when trying to get "+b.url),b.state=30)}else b.Pb(null,b.id,b.type,b.url,b.tb),v.error(h.status+" when trying to get "+b.url),b.state=30};h.addEventListener("progress",function(a){a.lengthComputable&&b.UC(a.loaded/a.total)},!1);h.send(b.ij)}}function t(a,b){for(var c=new Int32Array(a),d=new Int8Array(a),e=c[3],f={images:[],Gz:[],eg:c[4]},h=20,l=0;lc?n(a,b,c):b.status++}function n(a,b,c){var d=x;if(b.Qb||b.Ai||b.Qn)if(b.xw=c,b=D(a),a.AA!=b||1==c)a.Lx(b,performance.now()-a.qE),a.AA=b,d.zw=!0}function t(a, b){var c=null;H.ja(a.kh,function(a,d){if(d.name==b)return c=d,1});return c}function m(a){a.Ix=!0;a.xw=1}function k(a){a.Lx=null;a.Wu=null;a.kh=null;a.fi=null}function d(){return 0==x.Gq}function y(a){return a&&(3==a.status||4==a.status)}var H=q("__graph"),v=q("__print"),z=q("__util");a.Md=0;a.Kf=1;a.mF=2;var x=null;a.Sv=function(){return x};a.rA=function(){var a={wg:[],mv:0,Gq:0,Mx:!1,zw:!1};return x=a};a.wA=function(a,b,c,d,e,h,g,k,m){var n=x,p=n.wg.length,t={id:p,Ab:0==p,status:0,cg:b,Cz:"",lC:c|| function(){},kC:k||!1,dU:h,qE:0,AA:0,qt:0,qx:!1,Lx:d||function(){},Wu:e||function(){},kh:null,fi:null,dw:!1,aw:!1,gw:!1,Si:m};a=f(t.Ab,a,h,g);t.kh=a;b=[];c=H.hM(a);for(d=0;dperformance.now()-e)}};a.bz=function(a){var b=x;a.Wu(null,a);a.status=3;b.Gq--;k(a);a.status=4;a.Ab&&(b.Mx=!0);a.lC(a.id,!1)};a.ST=u;a.jt=function(a,b){var c=t(a,b);null!==c&&m(c)};a.Gk=d;a.ZP=y;a.is_primary_loaded=function(a){var b=x;if(!b)return!1; a|=0;return b.wg[a]&&(3==b.wg[a].status||2==b.wg[a].status)};a.oM=function(){v.error("Debug mode isn't enabled. Can not retrieve the graph.")};a.cleanup=function(){x=null}};fdage.module.__logic_nodes=function(a,q){function f(){return function(a,b,c,d){c=d[0];var e=d[1];d=d[2];if(-2==c.state){for(var f=0;fb&&(d=!0);break;case 1:f<=b&&(d=!0);break;case 0:f>=b&&(d=!0)}c.ga=d?a.Lp:a.Fa}},REGSTORE:function(a,b,c){switch(b.state){case 2:p([a.P.gl||a.R.vd[0],a.R.vd[1]],b.u,c.u,(1==a.Pd.variable_type?a.gi:a.xb).inp1),c.ga=a.Fa}},PLAY_ANIM:function(a,b,c){switch(b.state){case 1:a.obj=a.P.env?v.get_world_by_name(a.zo[0], 0):u(a);a.obj||(z.error("Logic script error: object not found. Node: ",a.name),a.mute=!0);break;case 2:switch(0!=a.state||k.is_play(a.obj,a.kc)||(a.state=1),a.state){case -1:for(var d in b.Ed){var e=b.Ed[d].af.ga;-1!=e&&(e=b.Ed[d].K[e],"PLAY_ANIM"==e.type&&e!=a&&0==e.state&&e.obj==a.obj&&(e.state=1))}b=a.Pd.param_anim_behavior;if(""==a.gf)k.apply_def(a.obj),k.set_behavior(a.obj,b,k.SLOT_ALL);else{a:{d=a.obj;for(var e=a.gf,f=-1,h=0;8>h;h++){var g=d.ba[h];if(g&&g.zh&&k.$D(g.zh)==k.$D(e))if(-1!=f)f= h;else{d=-1;break a}}d=f}-1==d?(a.kc=k.wP(a.obj,a.gf),k.apply(a.obj,null,a.gf,a.kc)):a.kc=d;k.set_behavior(a.obj,b,a.kc)}a.P.not_wait||(c.Re=!0);k.play(a.obj,null,a.kc);a.state=0;a.P.not_wait&&(c.ga=a.Fa,a.state=-1);break;case 0:break;case 1:a.P.not_wait||(c.Re=!1);c.ga=a.Fa;a.state=-1;break;default:I.q("Unknown state of "+a.name),a.state=-1}}},SELECT_PLAY:D,SEND_REQ:function(a,b,c){function e(a,d,f,h,g){a=JSON.stringify(a);p(g[0].R.dst,b.u,c.u,a);g[0].state=1}switch(b.state){case 2:switch(a.state){case -1:a.state= 0;var f=a.P.url?t(g(a.R.url,b.u,c.u),1):a.gi.url,h={};a.P.ct&&(h["Content-Type"]=a.gi.ct);"GET"==a.Pd.request_type?d.enqueue([{id:f,type:d.AT_JSON,url:f,fj:h,tb:[a,c.u]}],e,null,null,null):"POST"==a.Pd.request_type&&d.enqueue([{id:f,type:d.AT_JSON,url:f,fj:h,ve:"POST",Yk:d.AT_JSON,ij:t(g(a.R.dst1,b.u,c.u),1),tb:[a,c.u]}],e,null,null,null);break;case 1:a.state=-1,c.ga=a.Fa}}},INHERIT_MAT:function(a,b,c){switch(b.state){case 1:for(b=0;2>b;b++)a.Sa["id"+b]=v.hc(v.xc,a.uc["id"+b],0),a.Sa["id"+b]||(z.error("Logic script error: object not found. Node: ", a.name),a.mute=!0);break;case 2:E.inherit_material(a.Sa.id0,a.Aw.id0,a.Sa.id1,a.Aw.id1),c.ga=a.Fa}},SET_SHADER_NODE_PARAM:function(a,b,c){switch(b.state){case 1:a.uc.id0&&(a.Sa.id0=v.hc(v.xc,a.uc.id0,0),a.uc.id0||(z.error("Logic script error: object not found. Node: ",a.name),a.mute=!0),a.AC.id0.unshift(a.Aw.id0));break;case 2:var d=a.Sa.id0,e=a.AC.id0,f=e[0],h=E.La(d,f,"MAIN");c.ga=a.Fa;if(null===h){z.error('Material "'+f+'" was not found in the object "'+d.name+'".');break}if("ShaderNodeRGB"==a.CD){var l= E.Wg(h.Ve,e);E.set_nodemat_rgb(d,f,l,a.P.id0?t(g(a.R.id0,b.u,c.u),0):a.xb.id0,a.P.id1?t(g(a.R.id1,b.u,c.u),0):a.xb.id1,a.P.id2?t(g(a.R.id2,b.u,c.u),0):a.xb.id2)}"ShaderNodeValue"==a.CD&&(l=E.Wg(h.We,e),E.set_nodemat_value(d,f,l,a.P.id0?t(g(a.R.id0,b.u,c.u),0):a.xb.id0))}},DELAY:function(a,b,c,d,e){switch(b.state){case 2:-1==a.state?(a.state=0,a.xt=0,c.Re=!0):0==a.state&&(a.xt+=e,(a.P.dl?t(g(a.R.dl,b.u,c.u),0):a.xb.dl)Q[0]?V[1]=-(Math.PI+V[1]):0>Q[2]&&0>Q[0]?(V[0]+=Math.PI,b=-(Math.PI-b)):0>Q[2]&&0e?1:0;break;case 1:f=d<=e?1:0;break;case 0:f=d>=e?1:0}}p(a.R.dst,b.u,c.u,f);c.ga=a.Fa}},GET_TIMELINE:function(a,b,c,d){switch(b.state){case 2:d= a.P.nla?t(H.get_frame(d),0):t(J.get_frame(d),0),p(a.R.vd,b.u,c.u,d),c.ga=a.Fa}},JSON:function(a,b,c){function d(a,b,c,e){for(var f=0;f=c))for(var d=0;dMath.abs(c)&&(c=a[f],e=f);for(var g=Math.floor(e/3),e=e%3,c=.5*Math.atan(2*c/(a[3*g+g]-a[3*e+e])),f=0;f>1)-1,f=a.content[e];if(a.bl(c)c(e))return p.identity(b);var g=f(e,n),v=p.transpose(g,t);p.multiply(e,v,m);p.multiply(g,m,e);for(var D=p.copy(g,b),q=1;5E-4<=c(e)&&100>q;)g=f(e,n),v=p.transpose(g,t),p.multiply(e,v,m),p.multiply(g, m,e),p.multiply(g,D,D),q++;return D};a.point_plane_dist=function(a,b){return b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]};a.hI=function(a){return{content:[],bl:a}};a.Bz=function(a,c){a.content.push(c);b(a,a.content.length-1)};a.iI=function(a){var b=a.content[0],c=a.content.pop();0h.length)return[];0<=b(h,e[0])&&0<=b(h,e[e.length-1])&&d(e);0<=b(h,f[0])&&0<=b(h,f[f.length-1])&&d(f);h=[];for(g=0;gx.dot(F,F)}function n(a,b,c){var d=x.subtract(b.right,b.left,F),e=c.Dc,f=b.Dc;c=Math.acos(x.dot(e,f));e=z.sign(x.dot(d,x.cross(e,f,E)));c*=-e;e=v.identity(r);v.translate(e,b.left,e);v.rotate(e,c,d,e);v.translate(e,x.scale(b.left,-1,E),e);v.multiply(a,e,a)}function t(a,b,c, d,e,f,g,k,m){for(var r=v.identity(l),p=e;pe||!p)){var t,u=b,w=d;t=a[p].left;var q=a[p].right,y=f,B=r,z=x.create(),J=x.transformMat4(t,B,A);J[3]=1;B=x.transformMat4(q,B,F);B=x.subtract(B,J,K);u=x.subtract(w,u,F);y=x.cross(y,u,h);.01>Math.abs(x.dot(y,B))?w=.5:(x.normalize(y,y),y[3]=-x.dot(y,w),w=-M.dot(y,J)/M.dot(y,B));q=x.subtract(q,t,F);t=x.scaleAndAdd(t,q,w,z);D(g,t);k&&D(m,a[p].Dc);p&&n(r,a[p],a[p-1])}}function m(a,b){function c(b,d){y=q=p=d;l=g=h=b;x.copy(b,k);x.copy(b,m); x.copy(a[p].Dc,r)}var d=[],f=[],h,g,l,k,m,r,p=0,q=0,y=0;h=a[0].right;g=a[0].left;l=a[0].right;k=x.copy(g,J);m=x.copy(l,B);r=x.copy(a[0].Dc,C);D(d,h);b&&D(f,a[0].Dc);for(var A=v.identity(w),z=1;z=e(h,m,K,r)){var ca=u(h,l);if(ca||0e(h,m,F,r)?(g=E,x.copy(F,k),q=z):((E=u(m,h))||t(a,m,y,h,p,r,d,b,f),A=v.identity(A),c(l,y),z=p,E||(D(d,h),b&&D(f,a[z].Dc))))}A=a.length-1;z=a[A].left;(E=u(h,z))||t(a,k,A,h,p,r,d,b,f);E&&p||D(d,z);return b?(D(f,a[A].Dc),{positions:new Float32Array(d),normals:new Float32Array(f)}):{positions:new Float32Array(d),normals:null}}function k(a,b,c,d,e){for(var f=null,h=Number.MAX_VALUE,g=0;gd?null:f}function d(a,b, c,d,e){a.push({left:b,right:c,TB:d,Dc:e})}var y=q("__geometry"),H=q("__math"),v=q("__mat4"),z=q("__util"),x=q("__vec3"),M=q("__vec4"),F=x.create(),E=x.create(),A=M.create(),K=M.create(),h=M.create(),l=v.create(),w=v.create(),r=v.create(),J=x.create(),B=x.create(),Z=x.create(),I=x.create(),C=x.create();a.HN=function(a){var b=y.Fr(a.Gb,y.cH),c=a.td;a=[];for(var d=0;dk;k++)if(l[k]==l[(k+1)%3]){h.push(e);break}for(e=h.length-1;0<=e;e--)a.splice(h[e],1);c.length=0;for(e in b)c.push(b[e]);d=[];for(b=e=0;be;e++)f=d[b].Jj[e],h=d[b].Jj[(e+1)%3],f=f>h?h+"-"+f:f+"-"+h,f in c||(c[f]=[]),c[f].push(d[b]); d=Object.keys(c);b=0;for(h=d.length;bMath.abs(x.dot(l.Dc,h.Dc));a:{for(var r=0;rc&&(c+=b.Ji));return b.Jb+ c}function g(a,b){var c=(b-F)*z.Sc()+a.Jb;c>a.na?(c-=a.na,a.cyclic&&(c%=a.Qa-a.na+1),c+=a.na):c=a.na;return c}function p(a,b){a=x.clamp(a,b.na,b.Qa);var c=a==b.Qa?b.dz:b.ti+(a-b.na)/b.scale%(b.Nj-b.ti);b.NE&&(c=b.Nj-c+b.ti);return c}function D(a,b){for(var c=[],d=0;dv.Qa||p.Qa=t.Qa&&(v=Math.min(v,D.na)))}t.PA=u;t.OA=v;t.dz=0===t.repeat%1?t.Nj:t.ti+t.repeat%1*(t.Nj-t.ti)}}}a=a.s.en;for(g=0;gF)){0==F&&(F=a);for(var d=0;d=e.zp)if(e.cyclic){var f=e,k=a;f.bn&&f.bn();n(f.Ap, k);f.sx=!0;f=g(f,k)}else{var k=e,m=f;k.Ui=!0;k.Jb-=m-k.zp;k.bn&&k.bn()}if(!e.Ui||e.Vl){for(var k=e,m=f,u=0;uMath.PI/4?sa.scale(d,-ea.sign(e),ma):sa.scale(c,-ea.sign(d[2]),ma),f=Math.atan(Math.abs(c[0]/c[1]));0c[0]&&(d=2*Math.PI-d);b[0]=d;b[1]=e;return b}function y(b,c,d,e,f){switch(b.type){case a.jd:case a.zc:case a.Ic:b.qd=c;b.qb=1;break;case a.Od:b.top=c;b.qb=1;break;case a.Fg:b.qd=c;b.qb=f/c;break;case a.Eg:b.top= c;b.qb=f/c;break;case a.fe:case a.ge:break;default:ca.error("set_frustum(): Unsupported camera type: "+b.type)}b.near=d;b.far=e}function H(b,c){var d=O.Yb(c.k.n,xa),e=O.sd(c.k.n,R),f=pa.fromRotationTranslation(e,d,Aa);pa.invert(f,b.Cb);if(na.sa())var f=na.get_active(),h=na.Ca(f,L.wh);if(b.type==a.zc||h&&h.enable_hmd_stereo&&b.type==a.fe)b.Cb[12]+=b.xe/2;else if(b.type==a.Ic||h&&h.enable_hmd_stereo&&b.type==a.ge)b.Cb[12]-=b.xe/2;if(b.dc){O.from_mat4(b.Cb,b.Cp);O.invert(b.Cp,b.Ys);var f=b.dc[0],h=b.dc[1], g=b.dc[2],l=b.dc[3],k=b.Lt;k[0]=1-2*f*f;k[1]=-2*f*h;k[2]=-2*f*g;k[3]=0;k[4]=-2*f*h;k[5]=1-2*h*h;k[6]=-2*h*g;k[7]=0;k[8]=-2*f*g;k[9]=-2*h*g;k[10]=1-2*g*g;k[11]=0;k[12]=-2*f*l;k[13]=-2*h*l;k[14]=-2*g*l;k[15]=1;pa.multiply(b.Cb,b.Lt,b.Cb);ja(b,b.qb,!0);f=za;h=Aa;pa.invert(b.Cb,h);pa.transpose(h,h);ba.transformMat4(b.dc,h,f);h=Ja;h[0]=(ea.sign(f[0])+b.mb[8])/b.mb[0];h[1]=(ea.sign(f[1])+b.mb[9])/b.mb[5];h[2]=-1;h[3]=(1+b.mb[10])/b.mb[14];ba.scale(f,2/(f[0]*h[0]+f[1]*h[1]+f[2]*h[2]+f[3]*h[3]),f);b.mb[2]= f[0];b.mb[6]=f[1];b.mb[10]=f[2]+1;b.mb[14]=f[3];sa.transformMat4(d,b.Lt,d)}O.from_mat4(b.Cb,b.Be);O.invert(b.Be,b.Mt);U(b);T(b);O.set_sep(d,1,e,b.n)}function v(b,c,d,e){pa.lookAt(c,d,e,b.Cb);d=na.get_active();d=na.Ca(d,L.wh);na.sa()&&(d=na.get_active(),d=na.Ca(d,L.wh));if(b.type==a.zc||d&&d.enable_hmd_stereo&&b.type==a.fe)b.Cb[12]+=b.xe/2;else if(b.type==a.Ic||d&&d.enable_hmd_stereo&&b.type==a.ge)b.Cb[12]-=b.xe/2;O.from_mat4(b.Cb,b.Be);U(b);T(b);O.set_trans(c,b.n)}function z(a,b,c){c=sa.subtract(c, b,xa);sa.length(c)&&(sa.normalize(c,c),c=ea.wx(ea.AXIS_MZ,c,R),ua.set_rotation(a,c));ua.set_translation(a,b)}function x(a,b,c){var d=a.k,e=E(a);z(a,b,c);e?(b=sa.copy(d.Ae,xa),sa.negate(b,b),S.correct_up(a,b,!0)):S.correct_up(a,d.Ae,!0)}function M(a,b){for(var c=a.k,d=b.W,e=O.sd(c.n,R),e=ea.quat_to_dir(e,ea.AXIS_MZ,xa),f=O.Yb(c.n,Ia),h=b.ED,g=0;gea.quat_to_dir(a,ea.AXIS_Y,xa)[2]}function A(b,c){var d=b.k;if(c){d.Za=d.Za||{};d.Za.left=c.left;d.Za.right=c.right;d.Za.km=c.left;d.Za.Cm=c.right;d.Za.camera_space=Boolean(c.camera_space);var e=b.k;!(d=e.Za)||e.jb!=a.MS_EYE_CONTROLS&&e.jb!=a.MS_TARGET_CONTROLS||(e=k(b,oa),d.camera_space?(d.left+=e[0],d.right+= e[0]):(d.km-=e[0],d.Cm-=e[0]),d.left=ea.angle_wrap_0_2pi(d.left),d.right=ea.angle_wrap_0_2pi(d.right),d.km=ea.angle_wrap_0_2pi(d.km),d.Cm=ea.angle_wrap_0_2pi(d.Cm))}else d.Za=null}function K(a,b){var c=a.k;b?(c.ea=c.ea||{},c.ea.down=b.down,c.ea.up=b.up,c.ea.Ol=b.down,c.ea.Zm=b.up,c.ea.camera_space=Boolean(b.camera_space),l(a)):c.ea=null}function h(a,b){var c=a.k;if(!b){var d=k(a,oa);b={down:d[1],up:d[1]}}c.ea=c.ea||{};c.ea.down=b.down;c.ea.up=b.up;l(a);c.hb&&c.ea&&ka(a)}function l(b){var c=b.k,d= c.ea;if(d)switch(c.jb){case a.MS_EYE_CONTROLS:case a.MS_TARGET_CONTROLS:b=k(b,oa);d.camera_space?(d.up+=b[1],d.down+=b[1]):(d.Zm-=b[1],d.Ol-=b[1]);d.up=ea.angle_wrap_periodic(d.up,-Math.PI,Math.PI);d.down=ea.angle_wrap_periodic(d.down,-Math.PI,Math.PI);d.Zm=ea.angle_wrap_periodic(d.Zm,-Math.PI,Math.PI);d.Ol=ea.angle_wrap_periodic(d.Ol,-Math.PI,Math.PI);break;case a.MS_HOVER_CONTROLS:d.up=ea.angle_wrap_periodic(d.up,-Math.PI,Math.PI),d.down=ea.angle_wrap_periodic(d.down,-Math.PI,Math.PI),d.up=ea.clamp(d.up, -Math.PI/2,0),d.down=ea.clamp(d.down,-Math.PI/2,0)}}function w(a,b){var c=a.k;if(!b){var d=ua.um(a,c.Kb);b={min:d,max:d}}c.hb=c.hb||{};c.hb.min=b.min;c.hb.max=b.max;c.hb&&c.ea&&ka(a)}function r(a,b){var c=a.k;b?(c.hb=c.hb||{},c.hb.min=b.min,c.hb.max=b.max):c.hb=null}function J(a,b){var c=a.k;b?(c.xd=c.xd||{},c.xd.min_z=b.min_z,c.xd.max_z=b.max_z):c.xd=null}function B(a,b){var c=a.k;b?(c.lc=c.lc||{},c.lc.min=b.min,c.lc.max=b.max):c.lc=null}function Z(a,b){var c=a.k;b?(c.mc=c.mc||{},c.mc.min=b.min, c.mc.max=b.max):c.mc=null}function I(b){var c=b.k;if(wa.is_camera(b))for(var d=b.F,e=0;eh.hb.max?(sa.scale(f,h.hb.max/g,f),sa.add(h.pivot,f,e)):gMath.PI/2}function W(a,b,c,d,e){var f=a.k,h=b,g=c;if(d||e){var l=k(a,Da);d&&(h=b-l[0]);e&&(g=c-l[1])}f.Sg||(h=0);V(a,f.Kb,h,g);g&&ka(a)}function V(a,b,c,d){var e=a.k;if(c||d){var f=ta.identity(R);c&&(c=ta.setAxisAngle(ea.AXIS_Z,c,Ca),ta.multiply(f,c,f));G(a);a=O.get_quat_view(e.n);d&&(c=ea.quat_to_dir(a,ea.AXIS_X,xa),d=ta.setAxisAngle(c,d,Ca),ta.normalize(d,d),ta.multiply(f,d,f));e=O.get_trans_view(e.n);ea.DO(e,b,f,e); ta.multiply(f,a,a)}}function ka(a){var b=a.k,c=k(a,oa)[1],d=a.k;a=d.ea;d=d.hb;a.down-a.up?(c=(a.down-c)/(a.down-a.up),c=Math.max(c,0)):c=0;c=c*(d.max-d.min)+d.min;a=O.get_trans_view(b.n);d=O.get_quat_view(b.n);d=ea.quat_to_dir(d,ea.AXIS_MZ,xa);sa.normalize(d,d);sa.scale(d,c,d);sa.subtract(b.Kb,d,a)}function ja(b,c,d){switch(b.type){case a.jd:c||ea.q("No aspect ratio"),b.qb=c;case a.Fg:pa.perspective(ea.deg_to_rad(b.qd),b.qb,b.near,b.far,b.mb);break;case a.Od:c||ea.q("No aspect ratio"),b.qb=c;case a.Eg:c= b.top*b.qb;pa.ortho(-c,c,-b.top,b.top,b.near,b.far,b.mb);break;case a.xh:pa.ortho(b.left,b.right,b.bottom,b.top,b.near,b.far,b.mb);break;case a.zc:case a.Ic:c||ea.q("No aspect ratio");b.qb=c;var e=Math.tan(b.qd*Math.PI/360);c=b.near*e;var f=b.qb*b.uj*e;b.type==a.zc?(e=f-b.xe/2,f+=b.xe/2):(e=f+b.xe/2,f-=b.xe/2);e=-(b.near/b.uj*e);f*=b.near/b.uj;pa.frustum(e,f,-c,c,b.near,b.far,b.mb);b.left=e;b.right=f;break;case a.fe:case a.ge:if(na.sa())if(e=na.get_active(),(e=na.Ca(e,L.wh))&&e.enable_hmd_stereo){c= Math.tan(ea.deg_to_rad(b.Nc[0]));var e=Math.tan(ea.deg_to_rad(b.Nc[1])),f=Math.tan(ea.deg_to_rad(b.Nc[2])),h=Math.tan(ea.deg_to_rad(b.Nc[3]));b.top=b.near*c;b.right=b.near*e;b.bottom=-b.near*f;b.left=-b.near*h;pa.frustum(b.left,b.right,b.bottom,b.top,b.near,b.far,b.mb)}else c||(c=b.qb),pa.perspective(ea.deg_to_rad(b.qd),c,b.near,b.far,b.mb);break;case a.Qc:return;default:ea.q("Wrong camera type: "+b.type)}d||(U(b),T(b))}function T(a){pa.copy(a.Cb,a.Ef);a.Ef[12]=0;a.Ef[13]=0;a.Ef[14]=0;a.Ef[15]=1; pa.multiply(a.mb,a.Ef,a.Ef);pa.invert(a.Ef,a.Ef)}function U(a){pa.copy(a.Cb,a.Oc);pa.multiply(a.mb,a.Oc,a.Oc);pa.invert(a.Oc,a.Kt)}function ia(b,c,d,e,f){e||(e=new Float32Array(24));c||(c=b.near);d||(d=b.far);var h,g,l,k,m,n,r,p;switch(b.type){case a.Qc:ea.q("Extraction from NONE camera is not possible");break;case a.jd:case a.Fg:h=c*Math.tan(b.qd*Math.PI/360);k=-h;g=h*b.qb;l=-g;m=d/c*h;p=-m;n=m*b.qb;r=-n;break;case a.Od:case a.Eg:l=b.top*b.qb;h=m=b.top;g=n=l;k=p=-b.top;l=r=-l;break;case a.xh:h=m= b.top;g=n=b.right;k=p=b.bottom;l=r=b.left;break;case a.zc:case a.Ic:m=c/b.near;h=c*Math.tan(b.qd*Math.PI/360);k=-h;g=b.right*m;l=b.left*m;r=d/c;m=h*r;p=-m;n=g*r;r*=l;break;case a.fe:case a.ge:m=c/b.near;h=b.top*m;k=b.bottom*m;g=b.right*m;l=b.left*m;r=d/c;m=h*r;p=k*r;n=g*r;r*=l;break;default:ea.q("Wrong camera type: "+b.type)}e[0]=l;e[1]=k;e[2]=-c;e[3]=g;e[4]=k;e[5]=-c;e[6]=g;e[7]=h;e[8]=-c;e[9]=l;e[10]=h;e[11]=-c;e[12]=r;e[13]=p;e[14]=-d;e[15]=r;e[16]=m;e[17]=-d;e[18]=n;e[19]=m;e[20]=-d;e[21]=n;e[22]= p;e[23]=-d;f&&(c=Aa,pa.invert(b.Cb,c),ea.ym(e,c,e,0));return e}function G(b){return wa.is_camera(b)&&b.k&&b.k.jb==a.MS_HOVER_CONTROLS}function qa(a,b){if(b.enable_csm){var c=b.csm_num;if(!a.Pg){var d=b.csm_num;a.Pg=Array(d);for(var e=0;eZa.oc?(d.csm_resolution=Za.oc,Oa.error("Shadow map texture has unsupported size. Changed to "+Za.oc+".")):d.csm_resolution=c.csm_resolution;Ea.mI=c.blur_samples;d.yP=c.soft_shadows;a=fa.Er(b,Ea.ssao&&a.b4w_enable_ssao); d.self_shadow_polygon_offset=c.self_shadow_polygon_offset;d.self_shadow_normal_offset=c.self_shadow_normal_offset;d.enable_csm=c.b4w_enable_csm&&1==a.length;d.ig=[];d.SD=[];d.Xn=[];d.Wn=[];for(b=0;bm;m++){var n=Ba.uz(d,Tc),r=(n.max_x-n.min_x)*(n.max_y-n.min_y);if(-1==l||rr||1p)e=k;else{var d=Fa.kB(d.Fx,e.Gx,r,p),p=e.dir_freq,fa=e.dir_noise_scale,X=e.dir_noise_freq,m=e.dir_min_noise_fac,r=e.dst_min_fac,n=h/e.Cw/Math.PI;c=[fa/h*(b+X*a),fa/h*(c+X*a)];b=Math.sqrt(d);e=f*Math.max(d,e.dir_min_shore_fac)*Math.sin(b/n+p*a)*Math.max(Fa.Jx(c),m);f=Math.max(b,r);e=e*(1-f)+k*f;l*=d}else e=k;return g+(e+.05*l)}function ta(a,b){a.Xo&&a.type==P.Wb&&b.Sb!=a.Sb&&(a.Sb=b.Sb);b.Sb||a.type!=P.zl|| (a.vv=0)}function na(a,b,c,d){var e=ma.Ma(a,b);oa.et(e.p,c,d);e.uu=!0;ma.yj(a,b,function(b,e,f){f.rc&&f.from==c&&da.WI(f)&&L(a,b,f.to,d)});ma.nh(a,b,function(b,e,f){f.rc&&f.from==c&&f.from==f.to&&na(a,b,c,d)})}function L(a,b,c,d){a=ma.Ma(a,b).Ha;for(b=0;bf||1h)b=1;else return d=e*Fa.kB(Wa.s.Fx,d.Gx,f,h),b=(a-b[2])*c,b=Math.sqrt(d* d+b*b)};a.update=function(a,b){for(var d=c().si.k,e=0;e=X&&m.li||p=X&&!m.li?Ma.pause_video(m):Ma.bF(m)&&(n?Ma.GE(m):(n=Ma.dt(m,a),n!=m.qj&&(Ma.FE(m),m.bi++),m.qj=n))}}ma.ja(h, function(b,c){-1d;d++){var e=a.jk[d],f=a.po[d],h=a.p;za.translate(Fa.uF[d],c,e);za.multiply(h.mb,e,h.Oc);Fa.Rl(h.Oc,f)}};a.CE=function(a,b,c){Fa.cQ(b, c,Fa.AXIS_Z,a.p.dc)};a.YH=function(a,b,c){var d=a.s.Uc,e=a.s.hh;c=fa.Er(c,Ea.ssao&&a.b4w_enable_ssao);if(e)for(var f=0;fg&&!F(d,g,f)&&(d.push([g,f]),e.push(!1));C.Z(c,C.gG,f);C.Z(c,C.oG,d,a.Lg)}function F(a,b,c){for(var d=0;dl.nm&&(n=l.nm),W.setAxisAngle(k,-n,m),l=T.get_quat_view(g.k.n),W.multiply(m,l,l),W.normalize(l,l),ja.B(g));h.v&&h.v.Vx&&(k=h,g=k.v,h=g.Vx)&&(m=k.v.gE,T.multiply(k.k.n,k.v.hE,h.k.n),l=ta,T.transform_dir_vec3(m,k.k.n,l), k=na,W.setAxisAngle(l,-Math.abs(g.Ql)*g.uo,k),g=T.get_quat_view(h.k.n),W.multiply(k,g,g),W.normalize(g,g),ja.B(h))}}C.cO(d);d=la[c];(e=d.s.wc)&&0Fa.Ok[0]?ha.q("FDAGE engine version is too old relative to JSON. Can't load the scene. Update your engine version to fix it."): za.error("FDAGE engine version is a bit old relative to JSON. Some compatibility issues can occur. Update your engine version to fix it.")}Fa.yw=f;for(var l in d)a[l]=d[l];b.Ab&&(Ha=X.ur(a.scenes));(d=a.binaries[0].binfile)?b.Cz=d:(ba.jt(b,"load_binaries"),ba.jt(b,"prepare_bindata"));Fa.is_mobile_device||ba.jt(b,"mobile_media_start");Fa.antialiasing&&Fa.smaa||ba.jt(b,"load_smaa_textures");if(a.b4w_export_errors)for(d=0;dfa&&(fa=0);var t=X=!1,C;for(C in l)X|=-1r&&(r=g),a>=g&&g>f&&(f=g));for(h=0;h=aa.length&&(ia.warn('Wrong material used for rendering particle system "'+Aa.name+'"'),la=0);qa=aa[la];"HALO"===Aa.settings.render_type&&"HALO"===qa.type&&(U.So=!0);u(U,qa);var va=U,Ba=a,oa=Aa.settings;switch(oa.b4w_billboard_align){case "VIEW":w(va, "BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW");break;case "XY":w(va,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_XY");break;case "YZ":w(va,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_YZ");break;case "ZX":w(va,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_ZX");break;default:O.q("Wrong billboard align value")}w(va,"BILLBOARD",0);var sa=oa.b4w_enable_soft_particles&&ya.Zz(Ba,oa);w(va,"SOFT_PARTICLES",0=$b[Db]&&xb<$b[Db+1]){bb=Db;break}Jb=bb;Ib[Jb]=Ib[Jb]||[];Ib[Jb].push(Hb[Qa],Hb[Qa+1],Hb[Qa+2],Hb[Qa+3]);Cc&&Ib[Jb].push(Hb[Qa+4],Hb[Qa+5],Hb[Qa+6],Hb[Qa+7])}for(Jb in Ib)Ib[Jb]=new Float32Array(Ib[Jb]);oc=Ib}else{for(var yb=nb,La=tb,ac=nc,Pa=Ab,bc=ic.length,Ka={},ub=0;ub2E5*Ja}var ra=ba.gz&&U&&"PHYSICS"!=Aa.type;if(ra){Aa.NB=l.use_whole_group?2:1;var wa=O.O(ma);ua.Nz(ma,wa,H);wa.Te={Xm:H,rt:S,VD:"STATIC"==b.type,Tp:Ia,Xk:{},nr:t}; if(C.Ce&&C.Vj){var va=ea.fromValues(0,0,0);L.transform_vec3(va,p.k.n,va);for(var Ba=[],oa=0;oae[f]){for(var g=0;gb.length)){var g={default_value:[0,0,0],identifier:"UV_geom",is_linked:!1,name:"UV_geom"},l={default_value:[0,0,0],identifier:"UV_cycles",is_linked:!1,name:"UV_cycles"};f=B("merged_uv", "UV_MERGED",[],[g,l]);f.uv_layer=c;Z(a,f,0,"",void 0);var k=a.K[a.K.length-2];f=a.K[a.K.length-1];if(d){l=B("merged_uv","UV_MERGED",[],[g,l]);l.uv_layer=d;Z(a,l,0,"",void 0);var m=a.K[a.K.length-2],l=a.K[a.K.length-1]}else l=null;for(var n=-1,r=null,g=0;gu;++u)u?(R=G("Vector"+u,"Vector"+u,[0,0,0],!1),t=G("Color"+u,"Color"+ u,[0,0,0],!1),v=G("Alpha"+u,"Alpha"+u,0,!1)):(R=T(b,"Vector"),t=U(b,"Color"),v=U(b,"Alpha")),l.push(R),k.push(t),k.push(v);u=Q("param_TEXTURE_texture");m.push(ga(u));n=ma.ik(ma.Dg,!1);n.repeat="REPEAT"==b.extension;n.source="IMAGE";ma.jz(n,p);n={Eu:b.name,name:u,value:n}}else h="TEXTURE_EMPTY";break;case "TEXTURE":h=ja(b);if("TEXTURE_EMPTY"==h)k.push(U(b,"Color")),k.push(U(b,"Normal")),k.push(U(b,"Value"));else if("TEXTURE_ENVIRONMENT"==h)l.push(T(b,"Vector")),k.push(U(b,"Color")),k.push(U(b,"Value")); else{if("TEXTURE_NORMAL"==h&&"ENVIRONMENT_MAP"==b.texture.type)return Ba.error("Wrong output for ENVIRONMENT_MAP texture: "+b.name),null;"TEXTURE_COLOR"==h&&(p=!1,(u=b.texture.image)&&"Non-Color"==u.colorspace_settings_name&&(p=!0),r.push(["NON_COLOR",Number(p)]),r.push(["CONVERT_UV",1]));for(u=0;4>u;++u)p="TEXTURE_COLOR"==h?"Color":"Normal",u?(R=G("Vector"+u,"Vector"+u,[0,0,0],!1),t=G(p+u,p+u,[0,0,0],!1),v=G("Value"+u,"Value"+u,0,!1)):(R=T(b,"Vector"),t=U(b,p),v=U(b,"Value")),l.push(R),k.push(t), k.push(v)}"TEXTURE_EMPTY"!=h&&(u=Q("param_TEXTURE_texture"),m.push(ga(u)),n=b.texture.s,n={Eu:b.texture.name,name:u,value:n});break;case "VALTORGB":l=qa(b);k=aa(b);n={value:b};p=b.color_ramp.interpolation;"CONSTANT"!=p&&"LINEAR"!=p&&Ba.warn("Color Ramp node is not fully supported.");break;case "VALUE":h="VALUE";p=b.name;p={name:"-1",value:p};m.push(p);k.push(U(b,"Value"));break;case "VECT_MATH":switch(b.operation){case "ADD":h="VECT_MATH_ADD";break;case "SUBTRACT":h="VECT_MATH_SUBTRACT";break;case "AVERAGE":h= "VECT_MATH_AVERAGE";break;case "DOT_PRODUCT":h="VECT_MATH_DOT_PRODUCT";break;case "CROSS_PRODUCT":h="VECT_MATH_CROSS_PRODUCT";break;case "NORMALIZE":h="VECT_MATH_NORMALIZE";break;default:return Ba.error("Unsupported VECT_MATH operation: "+b.operation),null}l=qa(b);k=aa(b);break;case "VECT_TRANSFORM":switch(b.vector_type){case "POINT":r.push(["VECTOR_TYPE",oa.G(0)]);break;case "VECTOR":r.push(["VECTOR_TYPE",oa.G(1)]);break;case "NORMAL":r.push(["VECTOR_TYPE",oa.G(2)]);break;default:return Ba.error("Unsupported VECT_TRANSFORM vector_type: "+ b.vector_type),null}l=b.convert_from;k=b.convert_to;p=0;if("WORLD"==l)if("WORLD"==k)p=0;else if("OBJECT"==k)p=1;else if("CAMERA"==k)p=2;else return Ba.error("Unsupported VECT_TRANSFORM convert_to: "+b.convert_to),null;else if("OBJECT"==l)if("WORLD"==k)p=3;else if("OBJECT"==k)p=4;else if("CAMERA"==k)p=5;else return Ba.error("Unsupported VECT_TRANSFORM convert_to: "+b.convert_to),null;else if("CAMERA"==l)if("WORLD"==k)p=6;else if("OBJECT"==k)p=7;else if("CAMERA"==k)p=8;else return Ba.error("Unsupported VECT_TRANSFORM convert_to: "+ b.convert_to),null;else return Ba.error("Unsupported VECT_TRANSFORM convert_from: "+b.convert_from),null;r.push(["CONVERT_TYPE",oa.G(p)]);l=qa(b);k=aa(b);break;case "NORMAL_MAP":p=0;switch(b.space){case "TANGENT":p=0;break;case "OBJECT":p=1;break;case "WORLD":p=2;break;case "FDAGE_OBJECT":p=3;break;case "FDAGE_WORLD":p=4;break;default:return Ba.error("Unsupported NORMAL_MAP space: "+b.space),null}r.push(["SPACE",oa.G(p)]);l.push(T(b,"Strength"));l.push(T(b,"Color"));k.push(U(b,"Normal"));break; case "FRESNEL":D=T(b,"Normal");l.push(T(b,"IOR"));l.push(D);k.push(U(b,"Fac"));r.push(["USE_FRESNEL_NORMAL",D.Ra|0]);break;case "LAYER_WEIGHT":D=T(b,"Normal");l.push(T(b,"Blend"));l.push(D);k=aa(b);r.push(["USE_NORMAL_IN",D.Ra|0]);break;case "BUMP":D=T(b,"Normal"),r.push(["INVERT",b.invert?1:0]),r.push(["USE_NORMAL_IN",D.Ra|0]),qa(b),aa(b);default:l=qa(b),k=aa(b)}h={name:f,type:h,qh:g,I:l,Ta:k,Y:m,data:n,Ib:r};f=O.yk(a);O.ui(a,O.yk(a),h);if(!(h="GEOMETRY"!=b.type&&"TEX_COORD"!=b.type&&"NEW_GEOMETRY"!= b.type)){a:{h=b.outputs;for(m=g=0;mc){h=!0;break a}h=!1}h=!h}return h||null!=Z(a,b,++c,d,e)?f:null}function I(a,b,c){for(var d=a.inputs,e=a.outputs,f=a.node_tree_name,h=0;hc;c++){var e=d[c];e&&(e.Ke=b,t(a,0,c,!0))}else if(e=d[c])e.Ke=b,t(a,0,c,!0)}function n(a,b,c){if(-1==b)for(b=0;8>b;b++){var d=a[b];d&&c(d)}else(d=a[b])&&c(d)}function t(a,b,c,d){x(a,b,c,d);f(a,c);a.k.yh&&(E(a, b),F(a,b))}function m(a,b,c,e){var f=c.frame_range;if(f[0]>f[1])return G.warn('Incompatible action "'+c.name+'" has been applied to object "'+a.name+'"'),!1;var h=c.s,g=a.ba[e];g.zh=c.name;g.ou=f;g.ez=h.NC;g.cz=h.Az;g.Dh.set(h.Dh);g.start=f[0];g.length=f[1]-f[0];g.Ke=f[0];switch(h.type){case 10:if(T.is_armature(a)){g.type=10;var l=k(a,b,c);if(!l){for(var l=a.k.Qf,f=[],m=[],n=c.s.Uw,r=0;rc[1]?(b=c[1],c[1]=e,c[0]=b):e>c[0]&&ec[1])c[1]=d;else{d>c[0]&&(c[1]=d);break}}}function v(a,b,c,d,e,f){if(!f)return!1;for(var h=!1,g=0;g=h+g||0>k&&fd&&(d=0);d>=c.length&&(d=c.length);a=Math.floor(d);b=a+1;d-=a;10!=c.behavior&&b==c.length&& (b=--a,d=1);c=c.QE;na[0]=a+c;na[1]=b+c;na[2]=d;d=na;e.Gt=d[0];e.Ht=d[2];break;case 40:d=M(c);b=d[0];e=d[1];d=d[2];c.volume&&ya.set_volume(a,(1-d)*c.volume[b]+d*c.volume[e]);c.pitch&&ya.playrate(a,(1-d)*c.pitch[b]+d*c.pitch[e]);break;case 50:b=10==c.behavior?(f-h)/S.Sc():f/S.Sc();U.kP(a,c.zh,b);break;case 60:d=M(c);b=d[0];e=d[1];d=d[2];p=c.zC;u=c.We;a=c.yC;m=c.Ve;n=c.Cs;for(c=0;cb&&(b=0);b>=c&&(b=c);b/=a.ez;c=Math.floor(b);a=a.cz[c]?b-c:0;b=Math.ceil(c+a);na[0]=c;na[1]=b;na[2]=a;return na}function F(a,b){var c=a.k,d=c.Jg,e=c.Ym,f=e[0], e=e[1];if(-1!=e){if(-1!=f){var h=a.ba[f];if(h.play||0==b){var g=M(h),l=g[0],k=g[1];c.oe=g[2];var g=h.ub[l],m=h.ub[k],l=h.trans[l],k=h.trans[k]}else d=1}else d=1;e=a.ba[e];if(e.play||0==b){var f=M(e),n=f[0],r=f[1];c.oe=f[2]}else if(-1!=f&&h.play)d=0;else return;f=e.ub[n];h=e.ub[r];n=e.trans[n];r=e.trans[r];if(1==d)c.Fd.set(f),c.Wd.set(h),c.Kd.set(n),c.Zd.set(r);else if(0==d)c.Fd.set(g),c.Wd.set(m),c.Kd.set(l),c.Zd.set(k);else{for(e=0;et;t++)p[t]=g[e+t],u[t]=f[e+ t];qa.slerp(p,u,d,p);for(t=0;4>t;t++)c.Fd[e+t]=p[t];for(t=0;4>t;t++)p[t]=m[e+t],u[t]=h[e+t];qa.slerp(p,u,d,p);for(t=0;4>t;t++)c.Wd[e+t]=p[t]}va.Dz(l,n,d,c.Kd);va.Dz(k,r,d,c.Zd)}la.B(a);V.MQ(a)}}function E(a,b){var c=a.k,d=c.Jg,e=c.xn;if(0!=e){var d=c.wn-d,f=e*b;va.sign(d)==va.sign(e)&&Math.abs(f)g;g++)l=4*h+g,b[l]=d[g],c[l]=e[g]}return{trans:b,ub:c}}function K(a,b,c){var d=[],e=[];new Float32Array(4);new Float32Array(4);for(var f in c)for(var h=c[f],g=h.yi,h=h.ov,l=0;4>l;l++){var k=4*h+l,m=4*g+l;d[k]=a[m];e[k]=b[m]}d= new Float32Array(d);e=new Float32Array(e);return{trans:d,ub:e}}function h(a){var b=a.s,c;if(b.Cu)c=10;else if(b.Y)if("volume"in b.Y||"pitch"in b.Y)c=40;else if(z(a))c=60;else{var d;a:{if(a.s.Y){d=a.fcurves;for(var e in d)if("color"==e&&!d[e][3]){d=!0;break a}if("energy"==e){d=!0;break a}}d=!1}if(d)c=70;else if(d=a.s.Y,"light_settings.environment_energy"in d||"horizon_color"in d||"zenith_color"in d||"mist_settings.intensity"in d||"mist_settings.depth"in d||"mist_settings.start"in d||"mist_settings.height"in d||"b4w_fog_color"in d)c=80;else{a:{if(a.s.Y)for(c in a=a.fcurves,a)if("location"==c||"rotation_quaternion"==c||"scale"==c){c=!0;break a}c=!1}c=c?20:0}}else c=0;b.type=c}function z(a){if(a=a.s.Y)for(var b in a)if(-1!=b.indexOf("nodes"))return!0;return!1}function l(a,b){b[0]=b[1]=b[2]=0;for(var c in a)"location"==c?b[0]=1:"rotation_quaternion"==c?b[1]=1:"scale"==c&&(b[2]=1)}function w(a,b){b[0]=b[1]=0;for(var c in a)"energy"==c?b[0]=1:"color"==c&&(b[1]=1)}function r(a,b){b[0]=b[1]=b[2]=0;b[3]=b[4]= b[5]=0;b[6]=b[7]=0;for(var c in a)"light_settings.environment_energy"==c?b[0]=1:"horizon_color"==c?b[1]=1:"zenith_color"==c?b[2]=1:"mist_settings.intensity"==c?b[3]=1:"mist_settings.depth"==c?b[4]=1:"mist_settings.start"==c?b[5]=1:"mist_settings.height"==c?b[6]=1:"b4w_fog_color"==c&&(b[7]=1)}function J(a,b,c,d,e,f,h){var g=a+(b-a)/2,l=B(g,d,e,f,h)-c;return.02>Math.abs(l)?g:0d;d++)a.ba.push(null);a.ba[b]=c;-1==Ba.indexOf(a)&&Ba.push(a)}function I(a,b){la.B(a);ia.sync_transform(a);t(a,0,b,!0)}function C(a,d,e,f){f=f||0;if(T.is_mesh(a)){var h= N(a,e);if(h)return Z(a,f),c(a,h,f),I(a,f),!0;if((h=Q(a,e))&&"EMITTER"==h.Ks){Z(a,f);d=h.name;e=f;for(var h=a.F,g=0;gd;d++)x(c,a,d);c.k.yh&&(E(c,a),F(c,a))}for(b=0;bd&&c.ba.length;d++)f(c,d)};a.FL=function(){return oa};a.get_anim_names=function(a){var b=[];if(e(a))for(var c=0;cd;d++){if(c[d]&&c[d].play)return!0}else if(c=c[b])return c.play;return!1};a.set_frame=u;a.set_first_frame=function(a,b){b=b||0;n(a.ba,b,function(c){u(a, c.start,b)})};a.oB=function(a,b){var c=a.ba[b];return c&&c.Ke?c.Ke:0};a.is_cyclic=function(a,b){var c=a.ba[b];return c&&10==c.behavior};a.set_behavior=function(a,b,c){n(a.ba,c,function(a){a.behavior=b})};a.get_behavior=function(a,b){var c=a.ba[b];return c&&c.behavior};a.apply_smoothing=function(a,b,c,d){n(a.ba,d,function(a){a.jy=b||0;a.jx=c||0})};a.remove_slot_animation=function(a,b){if(-1==b)for(var c=0;8>c;c++)a.ba[c]=null;else a.ba[b]=null;a.k.yh&&H(a,b)};a.DQ=t;a.FC=function(a){if("ARMATURE"== a.type||a.Kq||"WORLD"==a.type)return!0;for(var b=0;br)for(v=0;vF&&(V=F/(V+G),x[0]=z[0]-V*E[0],x[1]=z[1]-V*E[1],C[0]=A[0]-V* H[0],C[1]=A[1]-V*H[1]);D&&(d[p]=1);c[p]=B(J(0,1,y,h[0],g[0],l[0],k[0]),h[1],g[1],l[1],k[1]);p++;break;case 1:D&&(d[p]=1);z=h[0];x=h[1];C=(k[1]-x)/(k[0]-z);c[p]=C*y+(x-C*z);p++;break;case 2:D&&(d[p]=1);c[p]=b[u+2];p++;break;default:va.q("Unknown keyframe interpolation mode: "+w)}}e+1==b[u+q+1]&&(t=w,u+=q)}}};a.apply=C;a.QH=function(a,b,c,d){d=d||0;var e=va.keysearch("uuid",c,oa);if(e){Z(a,d);if(m(a,b,e,d)){I(a,d);return}a.ba[d]=null}G.error('Unsupported object: "'+a.name+'" or animation uuid: "'+c+ '"')};a.RE=function(a,b){var c=va.keysearch("name",b,oa)||va.keysearch("name",b+"_B4W_BAKED",oa);if(c){if(0==c.s.type)return!1}else if(!(Q(a,b)||T.is_mesh(a)&&N(a,b)))return!1;return!0};a.get_slot_num_by_anim=function(a,b){for(var c=a.ba,d=0;de;e++)if(f=a.ba[e]){if(f.type==d)return e}else ec.zv&&(p.splice(a,1),a--,c.callback())}for(a=0;ad;d++)b[d]*=c;return b};a.from_mat4=function(a,b){var c=n.qC(a,d),e=n.pC(a),f=n.matrix_to_quat(a,y);g(c,e,f,b);return b};a.multiply=function(a,b,c){D(b,a,c);c[3]=a[3]*b[3];var d= a[4],e=a[5],f=a[6];a=a[7];var g=b[4],k=b[5],h=b[6];b=b[7];c[4]=d*b+a*g+e*h-f*k;c[5]=e*b+a*k+f*g-d*h;c[6]=f*b+a*h+d*k-e*g;c[7]=a*b-d*g-e*k-f*h;return c};a.eQ=function(a,b,c){var d=b[3];b=e.fromRotationTranslation(b.subarray(4,8),b.subarray(0,3),H);for(var f=0;12>f;f++)b[f]*=d;e.multiply(b,a,c);return c};a.transform_vec3=D;a.transform_vec3_inv=function(a,b,c){var d=b[3],e=a[0]-b[0],f=a[1]-b[1],g=a[2]-b[2];a=b[4];var k=b[5],h=b[6];b=b[7];var l=a*a+k*k+h*h+b*b,l=l?1/l:0;a=-a*l;k=-k*l;h=-h*l;b*=l;var l= b*e+k*g-h*f,m=b*f+h*e-a*g,n=b*g+a*f-k*e,e=-a*e-k*f-h*g;c[0]=l*b+e*-a+m*-h-n*-k;c[1]=m*b+e*-k+n*-a-l*-h;c[2]=n*b+e*-h+l*-k-m*-a;c[0]/=d;c[1]/=d;c[2]/=d;return c};a.transform_vectors=function(a,b,c,d){d||(d=0);var e=a.length,f=b[0],g=b[1],k=b[2],h=b[3],l=b[4],m=b[5],n=b[6];b=b[7];for(var p=0;pa?-1:0}function c(a,b,c){var d=a[0],e=a[1];a=a[2];var f=Math.cos(d/2),h=Math.cos(e/2),g=Math.cos(a/2),l=Math.sin(d/2),e=Math.sin(e/2),k=Math.sin(a/2);if(-1b?(c[0]=0,c[1]=-Math.PI/2,c[2]=-2*Math.atan2(d,a)):(c[0]=Math.atan2(2*(e*a-d*f),1-2*(e*e+f*f)),c[1]=Math.asin(2*(d*e+f*a)),c[2]=Math.atan2(2*(d*a-e*f),1-2*(d*d+f*f)));break;case 8:c[0]=Math.atan2(2*(f*a-d*e),1-2*(d*d+f*f));c[1]=Math.asin(2*(d*a+e*f));c[2]=Math.atan2(2*(e*a-d*f),1-2*(d*d+e*e));break;case 9:c[0]=Math.atan2(2*(d*a+e*f),1-2*(d*d+f*f));c[1]=Math.asin(2*(f*a-d*e));c[2]=Math.atan2(2*(d*f+e*a),1-2*(e*e+f*f));break;case 10:c[0]= Math.atan2(2*(d*f+e*a),1-2*(d*d+e*e));c[1]=Math.asin(2*(d*a-e*f));c[2]=Math.atan2(2*(d*e+f*a),1-2*(d*d+f*f));break;case 11:b=e*a-d*f,.499999b?(c[0]=0,c[1]=-Math.PI/2,c[2]=2*Math.atan2(f,a)):(c[0]=Math.atan2(2*(d*e+f*a),1-2*(e*e+f*f)),c[1]=Math.asin(2*(e*a-d*f)),c[2]=Math.atan2(2*(d*a+e*f),1-2*(d*d+e*e)))}return c}function g(a,b,c){var d=b.length,e=Q;e[0]=a[0];e[1]=a[1];e[2]=a[2];B.normalize(e,e);d?(a=qa,a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]= b[3],b=B.cross(a,e,ka),B.normalize(b,b),B.cross(e,b,a),d=aa,d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=e[0],d[4]=e[1],d[5]=e[2],d[6]=b[0],d[7]=b[1],d[8]=b[2],J.fromMat3(d,c),c[3]=0a[3]||0>c[3]&&0c&&(a=c);return a}function v(a){a&&w.error.apply(w,arguments);throw"engine panic:\nThe engine tried to perform an invalid operation and halted.\nPlease copy the console contents above and submit it to the FdageWeb forum at\nhttps://www.4dage.com"; }function z(a,b,c){a-=b;c-=b;return b+(a-Math.floor(a/c)*c)}function x(a){return z(a,0,2*Math.PI)}function M(a,b){if(a&&b){var c=a instanceof Array;if(c!=b instanceof Array)return!1;var d=a.buffer instanceof ArrayBuffer&&"undefined"!==a.byteLength;if(d!=(b.buffer instanceof ArrayBuffer&&"undefined"!==b.byteLength))return!1;if(c){if(a.length!=b.length)return!1;for(c=0;cra[3]||!h&&0c?a.Pq(b,c,d,f-1):b[f]c)return!1;return!0};a.FT=function(a,b,c){c||(c=new Float32Array(16));for(var d=0;12>d;d++)c[d]=a[d]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};a.eQ=function(a,b,c,d,e){e||(e=new Float32Array(16));b=h.fromRotationTranslation(c,d,ga);h.multiply(b,a,e);return e};a.transform_vec3=function(a,b,c,d,e){e||(e=new Float32Array(3));c=h.fromRotationTranslation(c,d,ga);1!==b&&(d=h.identity(ya),b=B.set(b, b,b,Q),h.scale(d,b,d),h.multiply(c,d,c));B.transformMat4(a,c,e);return e};a.YT=function(a,b,c,d,e){e||(e=new Float32Array(4));b=h.fromRotationTranslation(c,d,ga);Z.transformMat4(a,b,e);return e};a.hT=function(a,b,c,d,e){e||(e=new Float32Array(3));b=h.fromRotationTranslation(c,d,ga);h.invert(b,b);B.transformMat4(a,b,e);return e};a.XT=function(a,b,c){c||(c=new Float32Array(16));h.fromRotationTranslation(b,a,c);a=a[3];for(b=0;12>b;b++)c[b]*=a;return c};a.wT=function(b,c,d){a.qC(b,c);c[3]=a.pC(b);p(b, d)};a.YR=function(a){for(var b=[],c=0;ca?1:0,h=1-f,e=b+.211324865405187-f,g=a+.211324865405187-h,l=b+-.577350269189626,k=a+-.577350269189626,c=c%289,d=d%289,n=t(t(d)+c),h=t(t(d+h)+c+f),p=t(t(d+1)+c+1),c=Math.max(.5-(b*b+a*a),0),d=Math.max(.5-(e*e+g*g),0),f=Math.max(.5- (l*l+k*k),0),r=2*m(.024390243902439*n)-1,u=2*m(.024390243902439*h)-1,q=2*m(.024390243902439*p)-1,n=Math.abs(r)-.5,h=Math.abs(u)-.5,p=Math.abs(q)-.5,r=r-Math.floor(r+.5),u=u-Math.floor(u+.5),q=q-Math.floor(q+.5),c=c*c*c*c*(1.79284291400159-.85373472095314*(r*r+n*n)),d=d*d*d*d*(1.79284291400159-.85373472095314*(u*u+h*h)),f=f*f*f*f*(1.79284291400159-.85373472095314*(q*q+p*p));return 130*(c*(r*b+n*a)+d*(u*e+h*g)+f*(q*l+p*k))};a.Uz=function(a){var b=1/7,c=b/2,e=d(Math.floor(a[0])),f=d(Math.floor(a[1])), h=m(a[0]);a=m(a[1]);var g=h-.5,l=h-1.5,h=a-.5;a-=1.5;var n=k(e),p=k(e+1),r=n,e=p,n=k(n+f),p=k(p+f),r=k(r+f+1),e=k(e+f+1),f=g+.7*(y(n)*b+c),u=l+.7*(y(p)*b+c),g=g+.7*(y(r)*b+c),l=l+.7*(y(e)*b+c),n=h+.7*(y(Math.floor(n*b))*b+c),h=h+.7*(y(Math.floor(p*b))*b+c),r=a+.7*(y(Math.floor(r*b))*b+c),b=a+.7*(y(Math.floor(e*b))*b+c);return Math.min(f*f+n*n,u*u+h*h,g*g+r*r,l*l+b*b)};a.quat_project=function(a,b,c,d,e){e||(e=new Float32Array(4));a=B.transformQuat(b,a,Q);b=c[0];var f=c[1];c=c[2];var h=aa;h[0]=f*f+ c*c;h[1]=-f*b;h[2]=-c*b;h[3]=-b*f;h[4]=b*b+c*c;h[5]=-c*f;h[6]=-b*c;h[7]=-f*c;h[8]=b*b+f*f;B.transformMat3(a,h,a);B.normalize(a,a);J.rotationTo(d,a,e);return e};a.cam_quat_to_mesh_quat=function(a,b){b||(b=new Float32Array(4));var c=G,d=qa,c=J.setAxisAngle([0,0,1],Math.PI,J.create()),d=J.setAxisAngle([1,0,0],Math.PI/2,J.create());J.multiply(c,d,c);J.multiply(a,c,b);return b};a.cleanup=function(){I=0;C={}};a.clamp=H;a.smooth=function(a,b,c,d){c=Math.exp(-c/d);return(1-c)*a+c*b};a.smooth_v=function(a, b,c,d,e){e||(e=new Float32Array(a.length));c=Math.exp(-c/d);for(d=0;dc;c++)0< (a&1<c;c++)0<(a&1<e?(B.cross(ta,a,d),1E-6>B.length(d)&&B.cross(na,a,d),B.normalize(d,d),J.setAxisAngle(d, Math.PI,c)):(B.cross(a,b,d),c.set(d),c[3]=1+e,J.normalize(c,c));return c};a.$j=function(a,b,c){if(b==c)return c-a;a=x(a);b=x(b);c=x(c);b=2*Math.PI-b;c=x(c+b);a=x(a+b);return a>c?(c-=a,a=2*Math.PI-a,-c>a?a:c):0};a.smooth_step=function(a,b,c){isFinite(b)&&isFinite(c)&&(a=H(a,b,c));return a*a*(3-2*a)};a.lerp=function(a,b,c){return b+a*(c-b)};a.VH=function(a,b){for(var c=0;c=a.length?0:a[d])-(d>=b.length?0:b[d]));if(e)return e}return 0};a.Ij=function(a){return a.join(".")};a.YD=function(a){return a.split(".").map(function(a){return a|0})};a.TD=function(a,b){b[0]=Math.pow(a[0],2.2);b[1]=Math.pow(a[1],2.2);b[2]=Math.pow(a[2],2.2)};a.ww=function(a,b){b[0]=Math.pow(a[0],1/2.2);b[1]=Math.pow(a[1],1/2.2);b[2]=Math.pow(a[2],1/2.2);return b};a.bh=function(a){var b=a.split("://",2);return 1< b.length?(b[1]=E(b[1]),b.join("://")):E(a)};a.Vn=function(a){return 0!=parseInt(a.toString(2).substr(1),2)};a.LK=function(a,b,c,d){d[0]=a[0];d[1]=b[0];d[2]=c[0];d[3]=a[1];d[4]=b[1];d[5]=c[1];d[6]=a[2];d[7]=b[2];d[8]=c[2];return d};a.Fi=A;a.Eo=function(a){a=Math.round(32767.5*(a+1)-32768);return H(a?a:0,-32768,32767)};a.MT=function(a){return H((a+32768)/32767.5-1,-1,1)};a.hQ=function(a){return H(Math.round(255*a),0,255)};a.$T=function(a){return H(a/255,0,1)};a.EK=function(a,b,c,d){var e=B.subtract(c, b,Q),f=B.subtract(d,c,W),h=B.subtract(b,d,V);b=B.subtract(a,b,ka);c=B.subtract(a,c,ja);a=B.subtract(a,d,T);d=B.cross(e,f,U);if(0<=B.dot(B.cross(d,e,ia),b)&&0<=B.dot(B.cross(d,f,ia),c)&&0<=B.dot(B.cross(d,h,ia),a))return h=B.length(d),f=B.dot(d,b),Math.abs(f/h);e=B.scale(e,H(B.dot(e,b)/B.length(e),0,1),ia);b=B.length(B.subtract(b,e,ia));f=B.scale(f,H(B.dot(f,c)/B.length(f),0,1),ia);f=B.length(B.subtract(c,f,ia));h=B.scale(h,H(B.dot(h,a)/B.length(h),0,1),ia);h=B.length(B.subtract(a,h,ia));return Math.min(Math.min(b, f),h)}};fdage.module.__sfx=function(a,q){function f(){var a=window.AudioContext||window.webkitAudioContext;if(a){try{var b=new a}catch(c){return x.error('Unable to initialize AudioContext: "'+c+'". The audio is disabled.'),null}if(b.createGain)return b;x.warn("deprecated WebAudio implementation");return null}x.warn("WebAudio is not supported");return null}function c(a,c,d){var f=a.S;if("NONE"!=f.behavior){var h=f.loop,g=f.pitch;if(f.src&&(h||0<=d)){f.wu=Math.floor(5E4*Math.random());var l=I.currentTime+c,l= Math.max(0,l);f.we=l;f.state=20;var k=C.Ac;"POSITIONAL"==f.behavior&&"none"==k.xo&&(f.behavior="BACKGROUND_SOUND");b(a,C.Ac);if("POSITIONAL"==f.behavior||"BACKGROUND_SOUND"==f.behavior){c=I.createBufferSource();c.buffer=f.src;c.playbackRate.value=g;if(h){f.Tb&&f.Tb.disconnect();f.ed&&f.ed.disconnect();c.loop=!0;c.loopStart=f.mC;if(c.loopEnd=f.ns)d=I.createBufferSource(),d.buffer=f.src,d.playbackRate.value=g,f.ed=d,d.connect(f.$c);c.start(l);f.duration=0}else h=c.buffer?c.buffer.duration:0,d>h?(h= l+d+f.Ne,c.loop=!0,c.start(l),c.stop(h),f.duration=d):(c.loop=!1,c.start(l),f.duration=h);c.connect(f.$c);f.Tb=c;p(f);D(f);e(f)}else"BACKGROUND_MUSIC"==f.behavior&&(F.clear_timeout(f.xu),F.clear_timeout(f.yu),d=function(){var b=a.S,c=b.src;c&&(c.volume=1,c.loop=b.loop,b.Tb=b.Tb||I.createMediaElementSource(c),b.Tb.connect(b.$c),20==b.state&&(c.currentTime&&(c.currentTime=0),c.play()))},0==c?d():f.xu=F.set_timeout(d,1E3*c),f.duration=h?0:v(a));u(f,l)}}}function b(a,b){var c=a.S;if(!c.$c){var d=E.get_trans_view(a.k.n), e=E.get_quat_view(a.k.n);if(l.vs){var f=I.createBiquadFilter();f.type="peaking"}else f=null;var h=I.createGain();switch(c.behavior){case "POSITIONAL":var g=I.createPanner();"string"!=typeof g.panningModel?(g.panningModel=g.EQUALPOWER,g.distanceModel=g.INVERSE_DISTANCE):(g.panningModel="equalpower",g.distanceModel=b.xo);g.setPosition(d[0],d[1],d[2]);K.copy(d,c.qw);d=w;A.quat_to_dir(e,A.AXIS_MZ,d);g.setOrientation(d[0],d[1],d[2]);g.refDistance=c.dist_ref;g.maxDistance=c.dist_max;g.rolloffFactor=c.attenuation; g.coneInnerAngle=c.kA;g.coneOuterAngle=c.lA;g.coneOuterGain=c.mA;var k=I.createGain();k.gain.value=H(c);f?(g.connect(f),f.connect(k)):g.connect(k);k.connect(h);c.$c=g;if(c.sl){var m=I.createGain();h.connect(m);m.connect(b.$c)}else m=null,h.connect(b.$c);break;case "BACKGROUND_SOUND":g=null;k=I.createGain();k.gain.value=H(c);f?(c.$c=f,f.connect(k)):c.$c=k;k.connect(h);c.sl?(m=I.createGain(),h.connect(m),m.connect(b.$c)):(m=null,h.connect(b.$c));break;case "BACKGROUND_MUSIC":m=g=null,k=I.createGain(), k.gain.value=H(c),f?(c.$c=f,f.connect(k)):c.$c=k,k.connect(h),h.connect(b.$c)}c.Zw=g;c.dg=f;c.Xl=k;c.Ii=h;c.kx=m}}function g(a){var b=a.S,d=b.duration,b=b.delay+b.GA*Math.random();c(a,b,d)}function p(a){var b=a.ed||a.Tb;A.sf(b.onended)&&(b.onended=function(){a.state=50})}function D(a){a.sl&&a.kx.gain.cancelScheduledValues(a.we);a.xm&&(a.Tb.playbackRate.cancelScheduledValues(a.we),a.ed&&a.ed.playbackRate.cancelScheduledValues(a.we));a.lq=a.we}function e(a){if(a.sl||a.xm){var b=a.kx,c=a.Tb,d=c.buffer? c.buffer.duration:0;if(d){var e=a.we;Q[0]=a.wu;for(var f=0;5>f;){var h=a.pitch+a.xm*A.Cf(Q);if(e>=a.lq){if(a.sl){var g=1-A.clamp(a.sl,0,1)*Math.random();b.gain.setValueAtTime(g,e)}a.xm&&(c.playbackRate.setValueAtTime(h,e),a.ed&&a.ed.playbackRate.setValueAtTime(h,e));f++}e+=d/h}a.lq=e-.001}}}function u(a,b){if(a.qk||a.Ne){var c=a.Ii;c.gain.cancelScheduledValues(b);a.qk?(c.gain.setValueAtTime(0,b),c.gain.linearRampToValueAtTime(1,b+a.qk)):c.gain.setValueAtTime(1,b);a.Ne&&!a.loop&&(c.gain.setValueAtTime(1, b+a.duration),c.gain.linearRampToValueAtTime(0,b+a.duration+a.Ne))}}function n(a){"SPEAKER"!=a.type&&A.q("Wrong object type");var b=a.S;if(50==b.state)b.state=30;else if(20==b.state||40==b.state){var c=b.Ii,d=I.currentTime;b.Ne&&(c.gain.setValueAtTime(c.gain.value,d),c.gain.linearRampToValueAtTime(0,d+b.Ne));"BACKGROUND_MUSIC"==b.behavior?b.src&&(F.clear_timeout(b.xu),F.clear_timeout(b.yu),b.yu=F.set_timeout(function(){var b=a.S.src;b&&(b.currentTime&&(b.currentTime=0),b.pause())},1E3*b.Ne)):(c=b.Tb, b.durationa.we?m(a,b):0,a.Tb.onended=function(){},a.Tb.stop(0),a.Tb.disconnect(),D(a));a.state=40}}function m(a,b){Q[0]=a.wu;for(var c=a.Tb.buffer.duration,d=a.we,e;dd.lq-h&&e(d)}W&&W.di.length&&(-1==W.rc||a>W.fz+W.LA[W.rc])&&(b=W,-1m)return f.cross(c,g,b),1E-6>f.length(b)&&f.cross(e,g,b),f.normalize(b,b),a.setAxisAngle(b,Math.PI,t),t;if(.9999999v&&(v=-v,k=-k,d=-d, q=-q,b=-b);1E-6<1-v?(H=Math.acos(v),z=Math.sin(H),v=Math.sin((1-c)*H)/z,c=Math.sin(c*H)/z):v=1-c;f[0]=v*g+c*k;f[1]=v*t+c*d;f[2]=v*m+c*q;f[3]=v*a+c*b;return f};a.RT=function(){var b=a.create(),c=a.create();return function(e,f,g,t,m,k){a.slerp(e,t,m,b);a.slerp(f,g,m,c);a.slerp(b,c,2*m*(1-m),k);return k}}();a.invert=function(a,b){var c=a[0],f=a[1],g=a[2],t=a[3],m=c*c+f*f+g*g+t*t,m=m?1/m:0;b[0]=-c*m;b[1]=-f*m;b[2]=-g*m;b[3]=t*m;return b};a.conjugate=function(a,b){b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]= a[3];return b};a.length=c.length;a.len=a.length;a.squaredLength=c.squaredLength;a.sqrLen=a.squaredLength;a.normalize=c.normalize;a.fromMat3=function(a,b){var c=a[0]+a[4]+a[8];if(0a[0]&&(f=1);a[8]>a[3*f+f]&&(f=2);var g=(f+1)%3,t=(f+2)%3,c=Math.sqrt(a[3*f+f]-a[3*g+g]-a[3*t+t]+1);b[f]=.5*c;c=.5/c;b[3]=(a[3*g+t]-a[3*t+g])*c;b[g]=(a[3*g+f]+a[3*f+g])*c;b[t]=(a[3*t+f]+a[3*f+t])*c}return b};a.str= function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"}};fdage.module.quat=fdage.module.__quat; fdage.module.__mat3=function(a){var q="undefined"!==typeof Float32Array?Float32Array:Array;a.create=function(){var a=new q(9);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};a.fromMat4=function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[4];c[4]=a[5];c[5]=a[6];c[6]=a[8];c[7]=a[9];c[8]=a[10];return c};a.clone=function(a){var c=new q(9);c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];c[4]=a[4];c[5]=a[5];c[6]=a[6];c[7]=a[7];c[8]=a[8];return c};a.copy=function(a,c){c[0]=a[0];c[1]=a[1];c[2]= a[2];c[3]=a[3];c[4]=a[4];c[5]=a[5];c[6]=a[6];c[7]=a[7];c[8]=a[8];return c};a.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};a.transpose=function(a,c){if(c===a){var b=a[1],g=a[2],p=a[5];c[1]=a[3];c[2]=a[6];c[3]=b;c[5]=a[7];c[6]=g;c[7]=p}else c[0]=a[0],c[1]=a[3],c[2]=a[6],c[3]=a[1],c[4]=a[4],c[5]=a[7],c[6]=a[2],c[7]=a[5],c[8]=a[8];return c};a.invert=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=a[4],u=a[5],n=a[6],t=a[7],m=a[8],k=m*e-u*t,d=-m*q+u*n,y= t*q-e*n,H=b*k+g*d+p*y;if(!H)return null;H=1/H;c[0]=k*H;c[1]=(-m*g+p*t)*H;c[2]=(u*g-p*e)*H;c[3]=d*H;c[4]=(m*b-p*n)*H;c[5]=(-u*b+p*q)*H;c[6]=y*H;c[7]=(-t*b+g*n)*H;c[8]=(e*b-g*q)*H;return c};a.adjoint=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=a[4],u=a[5],n=a[6],t=a[7],m=a[8];c[0]=e*m-u*t;c[1]=p*t-g*m;c[2]=g*u-p*e;c[3]=u*n-q*m;c[4]=b*m-p*n;c[5]=p*q-b*u;c[6]=q*t-e*n;c[7]=g*n-b*t;c[8]=b*e-g*q;return c};a.determinant=function(a){var c=a[3],b=a[4],g=a[5],p=a[6],q=a[7],e=a[8];return a[0]*(e*b-g*q)+a[1]* (-e*c+g*p)+a[2]*(q*c-b*p)};a.multiply=function(a,c,b){var g=a[0],p=a[1],q=a[2],e=a[3],u=a[4],n=a[5],t=a[6],m=a[7];a=a[8];var k=c[0],d=c[1],y=c[2],H=c[3],v=c[4],z=c[5],x=c[6],M=c[7];c=c[8];b[0]=k*g+d*e+y*t;b[1]=k*p+d*u+y*m;b[2]=k*q+d*n+y*a;b[3]=H*g+v*e+z*t;b[4]=H*p+v*u+z*m;b[5]=H*q+v*n+z*a;b[6]=x*g+M*e+c*t;b[7]=x*p+M*u+c*m;b[8]=x*q+M*n+c*a;return b};a.mul=a.multiply;a.translate=function(a,c,b){var g=a[0],p=a[1],q=a[2],e=a[3],u=a[4],n=a[5],t=a[6],m=a[7];a=a[8];var k=c[0];c=c[1];b[0]=g;b[1]=p;b[2]=q; b[3]=e;b[4]=u;b[5]=n;b[6]=k*g+c*e+t;b[7]=k*p+c*u+m;b[8]=k*q+c*n+a;return b};a.rotate=function(a,c,b){var g=a[0],p=a[1],q=a[2],e=a[3],u=a[4],n=a[5],t=a[6],m=a[7];a=a[8];var k=Math.sin(c);c=Math.cos(c);b[0]=c*g+k*e;b[1]=c*p+k*u;b[2]=c*q+k*n;b[3]=c*e-k*g;b[4]=c*u-k*p;b[5]=c*n-k*q;b[6]=t;b[7]=m;b[8]=a;return b};a.scale=function(a,c,b){var g=c[0];c=c[1];b[0]=g*a[0];b[1]=g*a[1];b[2]=g*a[2];b[3]=c*a[3];b[4]=c*a[4];b[5]=c*a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b};a.qL=function(a,c){c[0]=1;c[1]=0;c[2]= 0;c[3]=0;c[4]=1;c[5]=0;c[6]=a[0];c[7]=a[1];c[8]=1;return c};a.oL=function(a,c){var b=Math.sin(a),g=Math.cos(a);c[0]=g;c[1]=b;c[2]=0;c[3]=-b;c[4]=g;c[5]=0;c[6]=0;c[7]=0;c[8]=1;return c};a.pL=function(a,c){c[0]=a[0];c[1]=0;c[2]=0;c[3]=0;c[4]=a[1];c[5]=0;c[6]=0;c[7]=0;c[8]=1;return c};a.fromMat2d=function(a,c){c[0]=a[0];c[1]=a[1];c[2]=0;c[3]=a[2];c[4]=a[3];c[5]=0;c[6]=a[4];c[7]=a[5];c[8]=1;return c};a.fromQuat=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=b+b,u=g+g,n=p+p,b=b*e,t=g*e,g=g*u,m=p*e,k= p*u,p=p*n,e=q*e,u=q*u,q=q*n;c[0]=1-g-p;c[3]=t-q;c[6]=m+u;c[1]=t+q;c[4]=1-b-p;c[7]=k-e;c[2]=m-u;c[5]=k+e;c[8]=1-b-g;return c};a.normalFromMat4=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=a[4],u=a[5],n=a[6],t=a[7],m=a[8],k=a[9],d=a[10],y=a[11],H=a[12],v=a[13],z=a[14],x=a[15],M=b*u-g*e,F=b*n-p*e,E=b*t-q*e,A=g*n-p*u,K=g*t-q*u,h=p*t-q*n,l=m*v-k*H,w=m*z-d*H,m=m*x-y*H,r=k*z-d*v,k=k*x-y*v,d=d*x-y*z,y=M*d-F*k+E*r+A*m-K*w+h*l;if(!y)return null;y=1/y;c[0]=(u*d-n*k+t*r)*y;c[1]=(n*m-e*d-t*w)*y;c[2]=(e*k-u* m+t*l)*y;c[3]=(p*k-g*d-q*r)*y;c[4]=(b*d-p*m+q*w)*y;c[5]=(g*m-b*k-q*l)*y;c[6]=(v*h-z*K+x*A)*y;c[7]=(z*E-H*h-x*F)*y;c[8]=(H*K-v*E+x*M)*y;return c};a.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};a.nL=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2))}};fdage.module.mat3=fdage.module.__mat3; fdage.module.__mat4=function(a){var q="undefined"!==typeof Float32Array?Float32Array:Array;a.create=function(){var a=new q(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};a.clone=function(a){var c=new q(16);c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];c[4]=a[4];c[5]=a[5];c[6]=a[6];c[7]=a[7];c[8]=a[8];c[9]=a[9];c[10]=a[10];c[11]=a[11];c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};a.copy=function(a,c){c[0]=a[0]; c[1]=a[1];c[2]=a[2];c[3]=a[3];c[4]=a[4];c[5]=a[5];c[6]=a[6];c[7]=a[7];c[8]=a[8];c[9]=a[9];c[10]=a[10];c[11]=a[11];c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};a.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};a.transpose=function(a,c){if(c===a){var b=a[1],g=a[2],p=a[3],q=a[6],e=a[7],u=a[11];c[1]=a[4];c[2]=a[8];c[3]=a[12];c[4]=b;c[6]=a[9];c[7]=a[13];c[8]=g;c[9]=q;c[11]=a[14];c[12]=p;c[13]= e;c[14]=u}else c[0]=a[0],c[1]=a[4],c[2]=a[8],c[3]=a[12],c[4]=a[1],c[5]=a[5],c[6]=a[9],c[7]=a[13],c[8]=a[2],c[9]=a[6],c[10]=a[10],c[11]=a[14],c[12]=a[3],c[13]=a[7],c[14]=a[11],c[15]=a[15];return c};a.invert=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=a[4],u=a[5],n=a[6],t=a[7],m=a[8],k=a[9],d=a[10],y=a[11],H=a[12],v=a[13],z=a[14],x=a[15],M=b*u-g*e,F=b*n-p*e,E=b*t-q*e,A=g*n-p*u,K=g*t-q*u,h=p*t-q*n,l=m*v-k*H,w=m*z-d*H,r=m*x-y*H,J=k*z-d*v,B=k*x-y*v,Z=d*x-y*z,I=M*Z-F*B+E*J+A*r-K*w+h*l;if(!I)return null; I=1/I;c[0]=(u*Z-n*B+t*J)*I;c[1]=(p*B-g*Z-q*J)*I;c[2]=(v*h-z*K+x*A)*I;c[3]=(d*K-k*h-y*A)*I;c[4]=(n*r-e*Z-t*w)*I;c[5]=(b*Z-p*r+q*w)*I;c[6]=(z*E-H*h-x*F)*I;c[7]=(m*h-d*E+y*F)*I;c[8]=(e*B-u*r+t*l)*I;c[9]=(g*r-b*B-q*l)*I;c[10]=(H*K-v*E+x*M)*I;c[11]=(k*E-m*K-y*M)*I;c[12]=(u*w-e*J-n*l)*I;c[13]=(b*J-g*w+p*l)*I;c[14]=(v*F-H*A-z*M)*I;c[15]=(m*A-k*F+d*M)*I;return c};a.adjoint=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=a[4],u=a[5],n=a[6],t=a[7],m=a[8],k=a[9],d=a[10],y=a[11],H=a[12],v=a[13],z=a[14],x=a[15]; c[0]=u*(d*x-y*z)-k*(n*x-t*z)+v*(n*y-t*d);c[1]=-(g*(d*x-y*z)-k*(p*x-q*z)+v*(p*y-q*d));c[2]=g*(n*x-t*z)-u*(p*x-q*z)+v*(p*t-q*n);c[3]=-(g*(n*y-t*d)-u*(p*y-q*d)+k*(p*t-q*n));c[4]=-(e*(d*x-y*z)-m*(n*x-t*z)+H*(n*y-t*d));c[5]=b*(d*x-y*z)-m*(p*x-q*z)+H*(p*y-q*d);c[6]=-(b*(n*x-t*z)-e*(p*x-q*z)+H*(p*t-q*n));c[7]=b*(n*y-t*d)-e*(p*y-q*d)+m*(p*t-q*n);c[8]=e*(k*x-y*v)-m*(u*x-t*v)+H*(u*y-t*k);c[9]=-(b*(k*x-y*v)-m*(g*x-q*v)+H*(g*y-q*k));c[10]=b*(u*x-t*v)-e*(g*x-q*v)+H*(g*t-q*u);c[11]=-(b*(u*y-t*k)-e*(g*y-q*k)+m* (g*t-q*u));c[12]=-(e*(k*z-d*v)-m*(u*z-n*v)+H*(u*d-n*k));c[13]=b*(k*z-d*v)-m*(g*z-p*v)+H*(g*d-p*k);c[14]=-(b*(u*z-n*v)-e*(g*z-p*v)+H*(g*n-p*u));c[15]=b*(u*d-n*k)-e*(g*d-p*k)+m*(g*n-p*u);return c};a.determinant=function(a){var c=a[0],b=a[1],g=a[2],p=a[3],q=a[4],e=a[5],u=a[6],n=a[7],t=a[8],m=a[9],k=a[10],d=a[11],y=a[12],H=a[13],v=a[14];a=a[15];return(c*e-b*q)*(k*a-d*v)-(c*u-g*q)*(m*a-d*H)+(c*n-p*q)*(m*v-k*H)+(b*u-g*e)*(t*a-d*y)-(b*n-p*e)*(t*v-k*y)+(g*n-p*u)*(t*H-m*y)};a.multiply=function(a,c,b){var g= a[0],p=a[1],q=a[2],e=a[3],u=a[4],n=a[5],t=a[6],m=a[7],k=a[8],d=a[9],y=a[10],H=a[11],v=a[12],z=a[13],x=a[14];a=a[15];var M=c[0],F=c[1],E=c[2],A=c[3];b[0]=M*g+F*u+E*k+A*v;b[1]=M*p+F*n+E*d+A*z;b[2]=M*q+F*t+E*y+A*x;b[3]=M*e+F*m+E*H+A*a;M=c[4];F=c[5];E=c[6];A=c[7];b[4]=M*g+F*u+E*k+A*v;b[5]=M*p+F*n+E*d+A*z;b[6]=M*q+F*t+E*y+A*x;b[7]=M*e+F*m+E*H+A*a;M=c[8];F=c[9];E=c[10];A=c[11];b[8]=M*g+F*u+E*k+A*v;b[9]=M*p+F*n+E*d+A*z;b[10]=M*q+F*t+E*y+A*x;b[11]=M*e+F*m+E*H+A*a;M=c[12];F=c[13];E=c[14];A=c[15];b[12]=M*g+ F*u+E*k+A*v;b[13]=M*p+F*n+E*d+A*z;b[14]=M*q+F*t+E*y+A*x;b[15]=M*e+F*m+E*H+A*a;return b};a.mul=a.multiply;a.translate=function(a,c,b){var g=c[0],p=c[1];c=c[2];var q,e,u,n,t,m,k,d,y,H,v,z;a===b?(b[12]=a[0]*g+a[4]*p+a[8]*c+a[12],b[13]=a[1]*g+a[5]*p+a[9]*c+a[13],b[14]=a[2]*g+a[6]*p+a[10]*c+a[14],b[15]=a[3]*g+a[7]*p+a[11]*c+a[15]):(q=a[0],e=a[1],u=a[2],n=a[3],t=a[4],m=a[5],k=a[6],d=a[7],y=a[8],H=a[9],v=a[10],z=a[11],b[0]=q,b[1]=e,b[2]=u,b[3]=n,b[4]=t,b[5]=m,b[6]=k,b[7]=d,b[8]=y,b[9]=H,b[10]=v,b[11]=z, b[12]=q*g+t*p+y*c+a[12],b[13]=e*g+m*p+H*c+a[13],b[14]=u*g+k*p+v*c+a[14],b[15]=n*g+d*p+z*c+a[15]);return b};a.scale=function(a,c,b){var g=c[0],p=c[1];c=c[2];b[0]=a[0]*g;b[1]=a[1]*g;b[2]=a[2]*g;b[3]=a[3]*g;b[4]=a[4]*p;b[5]=a[5]*p;b[6]=a[6]*p;b[7]=a[7]*p;b[8]=a[8]*c;b[9]=a[9]*c;b[10]=a[10]*c;b[11]=a[11]*c;b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b};a.rotate=function(a,c,b,g){var p=b[0],q=b[1];b=b[2];var e=Math.sqrt(p*p+q*q+b*b),u,n,t,m,k,d,y,H,v,z,x,M,F,E,A,K,h,l,w,r;if(1E-7>Math.abs(e))return null; e=1/e;p*=e;q*=e;b*=e;u=Math.sin(c);n=Math.cos(c);t=1-n;c=a[0];e=a[1];m=a[2];k=a[3];d=a[4];y=a[5];H=a[6];v=a[7];z=a[8];x=a[9];M=a[10];F=a[11];E=p*p*t+n;A=q*p*t+b*u;K=b*p*t-q*u;h=p*q*t-b*u;l=q*q*t+n;w=b*q*t+p*u;r=p*b*t+q*u;p=q*b*t-p*u;q=b*b*t+n;g[0]=c*E+d*A+z*K;g[1]=e*E+y*A+x*K;g[2]=m*E+H*A+M*K;g[3]=k*E+v*A+F*K;g[4]=c*h+d*l+z*w;g[5]=e*h+y*l+x*w;g[6]=m*h+H*l+M*w;g[7]=k*h+v*l+F*w;g[8]=c*r+d*p+z*q;g[9]=e*r+y*p+x*q;g[10]=m*r+H*p+M*q;g[11]=k*r+v*p+F*q;a!==g&&(g[12]=a[12],g[13]=a[13],g[14]=a[14],g[15]=a[15]); return g};a.rotateX=function(a,c,b){var g=Math.sin(c);c=Math.cos(c);var p=a[4],q=a[5],e=a[6],u=a[7],n=a[8],t=a[9],m=a[10],k=a[11];a!==b&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);b[4]=p*c+n*g;b[5]=q*c+t*g;b[6]=e*c+m*g;b[7]=u*c+k*g;b[8]=n*c-p*g;b[9]=t*c-q*g;b[10]=m*c-e*g;b[11]=k*c-u*g;return b};a.rotateY=function(a,c,b){var g=Math.sin(c);c=Math.cos(c);var p=a[0],q=a[1],e=a[2],u=a[3],n=a[8],t=a[9],m=a[10],k=a[11];a!==b&&(b[4]=a[4],b[5]=a[5],b[6]=a[6], b[7]=a[7],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);b[0]=p*c-n*g;b[1]=q*c-t*g;b[2]=e*c-m*g;b[3]=u*c-k*g;b[8]=p*g+n*c;b[9]=q*g+t*c;b[10]=e*g+m*c;b[11]=u*g+k*c;return b};a.rotateZ=function(a,c,b){var g=Math.sin(c);c=Math.cos(c);var p=a[0],q=a[1],e=a[2],u=a[3],n=a[4],t=a[5],m=a[6],k=a[7];a!==b&&(b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);b[0]=p*c+n*g;b[1]=q*c+t*g;b[2]=e*c+m*g;b[3]=u*c+k*g;b[4]=n*c-p*g;b[5]=t*c-q*g;b[6]=m*c-e*g;b[7]=k*c-u*g;return b}; a.qL=function(a,c){c[0]=1;c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=1;c[6]=0;c[7]=0;c[8]=0;c[9]=0;c[10]=1;c[11]=0;c[12]=a[0];c[13]=a[1];c[14]=a[2];c[15]=1;return c};a.pL=function(a,c){c[0]=a[0];c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=a[1];c[6]=0;c[7]=0;c[8]=0;c[9]=0;c[10]=a[2];c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return c};a.oL=function(a,c,b){var g=c[0],p=c[1];c=c[2];var q=Math.sqrt(g*g+p*p+c*c),e;if(1E-7>Math.abs(q))return null;q=1/q;g*=q;p*=q;c*=q;q=Math.sin(a);a=Math.cos(a);e=1-a;b[0]=g*g*e+a;b[1]=p*g*e+c* q;b[2]=c*g*e-p*q;b[3]=0;b[4]=g*p*e-c*q;b[5]=p*p*e+a;b[6]=c*p*e+g*q;b[7]=0;b[8]=g*c*e+p*q;b[9]=p*c*e-g*q;b[10]=c*c*e+a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};a.GS=function(a,c){var b=Math.sin(a),g=Math.cos(a);c[0]=1;c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=g;c[6]=b;c[7]=0;c[8]=0;c[9]=-b;c[10]=g;c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return c};a.HS=function(a,c){var b=Math.sin(a),g=Math.cos(a);c[0]=g;c[1]=0;c[2]=-b;c[3]=0;c[4]=0;c[5]=1;c[6]=0;c[7]=0;c[8]=b;c[9]=0;c[10]=g;c[11]=0;c[12]=0;c[13]=0; c[14]=0;c[15]=1;return c};a.IS=function(a,c){var b=Math.sin(a),g=Math.cos(a);c[0]=g;c[1]=b;c[2]=0;c[3]=0;c[4]=-b;c[5]=g;c[6]=0;c[7]=0;c[8]=0;c[9]=0;c[10]=1;c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return c};a.fromRotationTranslation=function(a,c,b){var g=a[0],p=a[1],q=a[2],e=a[3],u=g+g,n=p+p,t=q+q;a=g*u;var m=g*n,g=g*t,k=p*n,p=p*t,q=q*t,u=e*u,n=e*n,e=e*t;b[0]=1-(k+q);b[1]=m+e;b[2]=g-n;b[3]=0;b[4]=m-e;b[5]=1-(a+q);b[6]=p+u;b[7]=0;b[8]=g+n;b[9]=p-u;b[10]=1-(a+k);b[11]=0;b[12]=c[0];b[13]=c[1];b[14]=c[2]; b[15]=1;return b};a.ES=function(a,c,b,g){var p=a[0],q=a[1],e=a[2],u=a[3],n=p+p,t=q+q,m=e+e;a=p*n;var k=p*t,p=p*m,d=q*t,q=q*m,e=e*m,n=u*n,t=u*t,u=u*m,m=b[0],y=b[1];b=b[2];g[0]=(1-(d+e))*m;g[1]=(k+u)*m;g[2]=(p-t)*m;g[3]=0;g[4]=(k-u)*y;g[5]=(1-(a+e))*y;g[6]=(q+n)*y;g[7]=0;g[8]=(p+t)*b;g[9]=(q-n)*b;g[10]=(1-(a+d))*b;g[11]=0;g[12]=c[0];g[13]=c[1];g[14]=c[2];g[15]=1;return g};a.FS=function(a,c,b,g,p){var q=a[0],e=a[1],u=a[2],n=a[3],t=q+q,m=e+e,k=u+u;a=q*t;var d=q*m,q=q*k,y=e*m,e=e*k,u=u*k,t=n*t,m=n*m,n= n*k,k=b[0],H=b[1];b=b[2];var v=g[0],z=g[1];g=g[2];p[0]=(1-(y+u))*k;p[1]=(d+n)*k;p[2]=(q-m)*k;p[3]=0;p[4]=(d-n)*H;p[5]=(1-(a+u))*H;p[6]=(e+t)*H;p[7]=0;p[8]=(q+m)*b;p[9]=(e-t)*b;p[10]=(1-(a+y))*b;p[11]=0;p[12]=c[0]+v-(p[0]*v+p[4]*z+p[8]*g);p[13]=c[1]+z-(p[1]*v+p[5]*z+p[9]*g);p[14]=c[2]+g-(p[2]*v+p[6]*z+p[10]*g);p[15]=1;return p};a.fromQuat=function(a,c){var b=a[0],g=a[1],p=a[2],q=a[3],e=b+b,u=g+g,n=p+p,b=b*e,t=g*e,g=g*u,m=p*e,k=p*u,p=p*n,e=q*e,u=q*u,q=q*n;c[0]=1-g-p;c[1]=t+q;c[2]=m-u;c[3]=0;c[4]=t- q;c[5]=1-b-p;c[6]=k+e;c[7]=0;c[8]=m+u;c[9]=k-e;c[10]=1-b-g;c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return c};a.frustum=function(a,c,b,g,p,q,e){var u=1/(c-a),n=1/(g-b),t=1/(p-q);e[0]=2*p*u;e[1]=0;e[2]=0;e[3]=0;e[4]=0;e[5]=2*p*n;e[6]=0;e[7]=0;e[8]=(c+a)*u;e[9]=(g+b)*n;e[10]=(q+p)*t;e[11]=-1;e[12]=0;e[13]=0;e[14]=q*p*2*t;e[15]=0;return e};a.perspective=function(a,c,b,g,p){a=1/Math.tan(a/2);var q=1/(b-g);p[0]=a/c;p[1]=0;p[2]=0;p[3]=0;p[4]=0;p[5]=a;p[6]=0;p[7]=0;p[8]=0;p[9]=0;p[10]=(g+b)*q;p[11]=-1;p[12]= 0;p[13]=0;p[14]=2*g*b*q;p[15]=0;return p};a.CT=function(a,c,b,g){var p=Math.tan(a.upDegrees*Math.PI/180),q=Math.tan(a.downDegrees*Math.PI/180),e=Math.tan(a.leftDegrees*Math.PI/180);a=Math.tan(a.rightDegrees*Math.PI/180);var u=2/(e+a),n=2/(p+q);g[0]=u;g[1]=0;g[2]=0;g[3]=0;g[4]=0;g[5]=n;g[6]=0;g[7]=0;g[8]=-((e-a)*u*.5);g[9]=(p-q)*n*.5;g[10]=b/(c-b);g[11]=-1;g[12]=0;g[13]=0;g[14]=b*c/(c-b);g[15]=0;return g};a.ortho=function(a,c,b,g,p,q,e){var u=1/(a-c),n=1/(b-g),t=1/(p-q);e[0]=-2*u;e[1]=0;e[2]=0;e[3]= 0;e[4]=0;e[5]=-2*n;e[6]=0;e[7]=0;e[8]=0;e[9]=0;e[10]=2*t;e[11]=0;e[12]=(a+c)*u;e[13]=(g+b)*n;e[14]=(q+p)*t;e[15]=1;return e};a.lookAt=function(f,c,b,g){var p,q,e,u,n,t,m,k,d=f[0],y=f[1];f=f[2];e=b[0];u=b[1];q=b[2];m=c[0];b=c[1];p=c[2];if(1E-7>Math.abs(d-m)&&1E-7>Math.abs(y-b)&&1E-7>Math.abs(f-p))return a.identity(g);c=d-m;b=y-b;m=f-p;k=1/Math.sqrt(c*c+b*b+m*m);c*=k;b*=k;m*=k;p=u*m-q*b;q=q*c-e*m;e=e*b-u*c;(k=Math.sqrt(p*p+q*q+e*e))?(k=1/k,p*=k,q*=k,e*=k):e=q=p=0;u=b*e-m*q;n=m*p-c*e;t=c*q-b*p;(k=Math.sqrt(u* u+n*n+t*t))?(k=1/k,u*=k,n*=k,t*=k):t=n=u=0;g[0]=p;g[1]=u;g[2]=c;g[3]=0;g[4]=q;g[5]=n;g[6]=b;g[7]=0;g[8]=e;g[9]=t;g[10]=m;g[11]=0;g[12]=-(p*d+q*y+e*f);g[13]=-(u*d+n*y+t*f);g[14]=-(c*d+b*y+m*f);g[15]=1;return g};a.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};a.nL=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3], 2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2)+Math.pow(a[9],2)+Math.pow(a[10],2)+Math.pow(a[11],2)+Math.pow(a[12],2)+Math.pow(a[13],2)+Math.pow(a[14],2)+Math.pow(a[15],2))}};fdage.module.mat4=fdage.module.__mat4;fdage.module.__md5=function(a){function q(a,e){var p=a[0],n=a[1],t=a[2],m=a[3],p=c(p,n,t,m,e[0],7,-680876936),m=c(m,p,n,t,e[1],12,-389564586),t=c(t,m,p,n,e[2],17,606105819),n=c(n,t,m,p,e[3],22,-1044525330),p=c(p,n,t,m,e[4],7,-176418897),m=c(m,p,n,t,e[5],12,1200080426),t=c(t,m,p,n,e[6],17,-1473231341),n=c(n,t,m,p,e[7],22,-45705983),p=c(p,n,t,m,e[8],7,1770035416),m=c(m,p,n,t,e[9],12,-1958414417),t=c(t,m,p,n,e[10],17,-42063),n=c(n,t,m,p,e[11],22,-1990404162),p=c(p,n,t,m,e[12],7,1804603682),m=c(m,p,n,t, e[13],12,-40341101),t=c(t,m,p,n,e[14],17,-1502002290),n=c(n,t,m,p,e[15],22,1236535329),p=b(p,n,t,m,e[1],5,-165796510),m=b(m,p,n,t,e[6],9,-1069501632),t=b(t,m,p,n,e[11],14,643717713),n=b(n,t,m,p,e[0],20,-373897302),p=b(p,n,t,m,e[5],5,-701558691),m=b(m,p,n,t,e[10],9,38016083),t=b(t,m,p,n,e[15],14,-660478335),n=b(n,t,m,p,e[4],20,-405537848),p=b(p,n,t,m,e[9],5,568446438),m=b(m,p,n,t,e[14],9,-1019803690),t=b(t,m,p,n,e[3],14,-187363961),n=b(n,t,m,p,e[8],20,1163531501),p=b(p,n,t,m,e[13],5,-1444681467),m= b(m,p,n,t,e[2],9,-51403784),t=b(t,m,p,n,e[7],14,1735328473),n=b(n,t,m,p,e[12],20,-1926607734),p=f(n^t^m,p,n,e[5],4,-378558),m=f(p^n^t,m,p,e[8],11,-2022574463),t=f(m^p^n,t,m,e[11],16,1839030562),n=f(t^m^p,n,t,e[14],23,-35309556),p=f(n^t^m,p,n,e[1],4,-1530992060),m=f(p^n^t,m,p,e[4],11,1272893353),t=f(m^p^n,t,m,e[7],16,-155497632),n=f(t^m^p,n,t,e[10],23,-1094730640),p=f(n^t^m,p,n,e[13],4,681279174),m=f(p^n^t,m,p,e[0],11,-358537222),t=f(m^p^n,t,m,e[3],16,-722521979),n=f(t^m^p,n,t,e[6],23,76029189),p= f(n^t^m,p,n,e[9],4,-640364487),m=f(p^n^t,m,p,e[12],11,-421815835),t=f(m^p^n,t,m,e[15],16,530742520),n=f(t^m^p,n,t,e[2],23,-995338651),p=g(p,n,t,m,e[0],6,-198630844),m=g(m,p,n,t,e[7],10,1126891415),t=g(t,m,p,n,e[14],15,-1416354905),n=g(n,t,m,p,e[5],21,-57434055),p=g(p,n,t,m,e[12],6,1700485571),m=g(m,p,n,t,e[3],10,-1894986606),t=g(t,m,p,n,e[10],15,-1051523),n=g(n,t,m,p,e[1],21,-2054922799),p=g(p,n,t,m,e[8],6,1873313359),m=g(m,p,n,t,e[15],10,-30611744),t=g(t,m,p,n,e[6],15,-1560198380),n=g(n,t,m,p,e[13], 21,1309151649),p=g(p,n,t,m,e[4],6,-145523070),m=g(m,p,n,t,e[11],10,-1120210379),t=g(t,m,p,n,e[2],15,718787259),n=g(n,t,m,p,e[9],21,-343485551);a[0]=p+a[0]&4294967295;a[1]=n+a[1]&4294967295;a[2]=t+a[2]&4294967295;a[3]=m+a[3]&4294967295}function f(a,b,c,f,g,m){b=(b+a&4294967295)+(f+m&4294967295)&4294967295;return(b<>>32-g)+c&4294967295}function c(a,b,c,g,p,m,k){return f(b&c|~b&g,a,b,p,m,k)}function b(a,b,c,g,p,m,k){return f(b&g|c&~g,a,b,p,m,k)}function g(a,b,c,g,p,m,k){return f(c^(b|~g),a,b,p, m,k)}var p="0123456789abcdef".split("");a.IB=function(a){var b=a,c=b.length;a=[1732584193,-271733879,-1732584194,271733878];var f;for(f=64;f<=b.length;f+=64){for(var g=b.substring(f-64,f),m=[],k=void 0,k=0;64>k;k+=4)m[k>>2]=g.charCodeAt(k)+(g.charCodeAt(k+1)<<8)+(g.charCodeAt(k+2)<<16)+(g.charCodeAt(k+3)<<24);q(a,m)}b=b.substring(f-64);g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(f=0;f>2]|=b.charCodeAt(f)<<(f%4<<3);g[f>>2]|=128<<(f%4<<3);if(55f;f++)g[f]=0;g[14]=8* c;q(a,g);for(b=0;bg;g++)f+=p[c>>8*g+4&15]+p[c>>8*g&15];a[b]=f}return a.join("")}};fdage.module.shader_texts=function(a){a["anchors.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 ) ; }".split(" ")}]};a["anchors.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"ANCHOR_NUM",b:["0"]},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec3 u_position [ ANCHOR_NUM ] ; uniform mat4 u_view_proj_matrix ; uniform vec2 u_texel_size ; GLSL_IN float a_index ; void main ( ) { int c = int ( mod ( a_index , 3.0 ) ) ; int d = int ( a_index / 3.0 ) ; vec2 e ; if ( c == 0 ) { e = vec2 ( - 4.0 * u_texel_size [ 0 ] , - u_texel_size [ 1 ] ) ; } else if ( c == 1 ) { e = vec2 ( 4.0 * u_texel_size [ 0 ] , - u_texel_size [ 1 ] ) ; } else { e = vec2 ( 0.0 , 5.0 * u_texel_size [ 1 ] ) ; } vec4 f = u_view_proj_matrix * vec4 ( u_position [ d ] , 1.0 ) ; f . xy += e * f . w ; gl_Position = f ; }".split(" ")}]}; a["color_id.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"ALPHA_CLIP",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"USE_OUTLINE",b:["0"]},{a:"var",c:"USE_VIEW_TSR",b:["0"]},{a:"var",c:"USE_VIEW_TSR_INVERSE",b:["0"]},{a:"var",c:"USE_MODEL_TSR",b:["0"]},{a:"var",c:"USE_MODEL_TSR_INVERSE",b:["0"]},{a:"var", c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"CAMERA_TYPE",b:["CAM_TYPE_PERSP"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"USE_REFRACTION",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"TEXTURE_BLEND_TYPE",b:["TEXTURE_BLEND_TYPE_MIX"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"NUM_LAMP_LIGHTS",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"NUM_VALUES",b:["0"]},{a:"var",c:"NUM_RGBS",b:["0"]}, {a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"POISSON_DISK_NUM",b:["NO_SOFT_SHADOWS"]},{a:"var",c:"USE_DERIVATIVES_EXT",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_DERIVATIVES_EXT"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives",":","enable"]}]}}]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"math.glslv"}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_time ; uniform float u_environment_energy ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"txt",b:["uniform","vec3","u_camera_eye_frag",";"]},{a:"cond",d:[{a:"if",g:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr", i:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_direction",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_VIEW_TSR",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_VIEW_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR"], h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_diffuse_color",";"]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"uniform sampler2D u_sampler ; uniform float u_alpha_factor ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_OUTLINE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_color_id",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform", "sampler2D","u_nodes_texture",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_plane_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_cube_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_refractmap",";"]},{a:"cond",d:[{a:"if",g:["USE_REFRACTION","USE_REFRACTION_CORRECTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]}]}}]},{a:"txt",b:"uniform float u_emit ; uniform float u_ambient ; uniform vec4 u_fresnel_params ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE", "REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_mirror_factor",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_refl_plane",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_LAMP"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_lamp_light_positions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_directions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_color_intensities [ NUM_LAMP_LIGHTS ] ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_VALUE"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_node_values [ NUM_VALUES ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_RGB"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_node_rgbs [ NUM_RGBS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_pcf_blur_radii", ";"]}]}}]},{a:"txt",b:"uniform vec4 u_csm_center_dists ; uniform GLSL_SMPLR2D_SHDW u_shadow_map0 ; uniform GLSL_SMPLR2D_SHDW u_shadow_map1 ; uniform GLSL_SMPLR2D_SHDW u_shadow_map2 ; uniform GLSL_SMPLR2D_SHDW u_shadow_map3 ; uniform sampler2D u_shadow_mask ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_OUTLINE"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_outline_intensity",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_OBJECT_INFO"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_obj_info", ";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 h ; GLSL_IN vec4 i ; GLSL_IN vec3 j ;".split(" ")},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","USE_REFRACTION", {a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","m",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec4 n ; GLSL_IN vec4 o ; GLSL_IN vec4 u ; GLSL_IN vec4 v ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3", "B",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"nodes.glslf"}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"txt",b:"vec3 C = normalize ( u_camera_eye_frag - h ) ; vec3 D ; vec3 E ; vec3 F ; vec4 G ; float H ; I ( C , D , E , F , G , H ) ; float J = H ;".split(" ")}]}},{a:"else",h:{a:"grp", d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"float J = ( GLSL_TEXTURE ( u_sampler , A ) ) . a ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float L = u_alpha_factor * J ; L += ( 1.0 - step ( 0.0 , L ) ) ; J = mix ( L , 1.0 , u_diffuse_color . a ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float J = u_diffuse_color . a ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["ALPHA_CLIP"], h:{a:"grp",d:[{a:"txt",b:"if ( J < 0.5 ) discard ; J = 1.0 ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_OUTLINE"],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 , 1.0 , 1.0 , u_outline_intensity ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( u_color_id , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]};a["color_id.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"CAUSTICS", b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"var",c:"CALC_TBN",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"AU_QUALIFIER",b:["GLSL_IN"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"WIND_BEND",b:["0"]},{a:"var",c:"BEND_CENTER_ONLY",b:["0"]},{a:"var",c:"BILLBOARD_PRES_GLOB_ORIENTATION",b:["0"]},{a:"var",c:"BILLBOARD", b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var",c:"SKINNED",b:["0"]},{a:"var",c:"FRAMES_BLENDING",b:["0"]},{a:"var",c:"VERTEX_ANIM",b:["0"]},{a:"var",c:"SMAA_JITTER",b:["0"]},{a:"var",c:"VERTEX_ANIM_MIX_NORMALS_FACTOR",b:["u_va_frame_factor"]},{a:"var",c:"MAX_BONES",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"include", o:"scale_texcoord.glslv"},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ;".split(" ")},{a:"cond",d:[{a:"if",g:["BILLBOARD","DYNAMIC_GRASS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_eye",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_subpixel_jitter",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsb [ MAX_BONES ] ; uniform vec4 u_transb [ MAX_BONES ] ; uniform vec4 u_arm_rel_trans ; uniform vec4 u_arm_rel_quat ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsa [ MAX_BONES ] ; uniform vec4 u_transa [ MAX_BONES ] ; uniform float u_frame_factor ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD_JITTERED"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_jitter_amp ; uniform float u_jitter_freq ;".split(" ")}]}}]},{a:"txt",b:"uniform vec3 u_wind ; uniform PRECISION float u_time ;".split(" ")}]}}]},{a:"cond",d:[{a:"if", g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_va_frame_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_texture_scale",";"]}]}}]},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec4 a_tbn_quat ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if", g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_influence",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_bending_col_main",";"]},{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 a_bending_col_detail ; AU_QUALIFIER float au_detail_bending_amp ; AU_QUALIFIER float au_branch_bending_amp ; AU_QUALIFIER float au_detail_bending_freq ;".split(" ")}]}}]}]}}]},{a:"txt", b:"AU_QUALIFIER float au_wind_bending_amp ; AU_QUALIFIER float au_wind_bending_freq ;".split(" ")},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_position_next",";"]},{a:"cond",d:[{a:"if",g:["NODES", "ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_tbn_quat_next",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","B",";"]}]}}]},{a:"cond", d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT vec3 h ; GLSL_OUT vec4 i ; GLSL_OUT vec3 j ;".split(" ")},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","m",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]}]}}]},{a:"include",o:"skin.glslv"},{a:"include",o:"wind_bending.glslv"},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"nodes.glslv"}]}}]},{a:"txt",b:"void main ( ) { mat3 M = u_view_tsr ; vec3 N = a_position ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES","ALPHA", "CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},{a:"logical_or_expr",i:6},{a:"logical_and_expr",i:3},"USE_TBN_SHADING","CALC_TBN",{a:"logical_and_expr",i:2},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:7}],h:{a:"grp",d:[{a:"txt",b:"vec3 P = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = O ( a_tbn_quat , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 R = sign ( a_tbn_quat [ 3 ] ) * cross ( P , Q ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 P = vec3 ( 0.0 ) ; vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:["mat3","S","=","u_model_tsr",";"]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"], h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CALC_TBN"],h:{a:"grp",d:[{a:"txt",b:"vec3 U = normalize ( T ( u_model_tsr , P ) ) ; vec3 V = cross ( vec3 ( 0.0 , 0.0 , 1.0 ) , U ) ; vec3 W = cross ( U , V ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","W","=","a_shade_tangs",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 W = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:"N = mix ( N , a_position_next , u_va_frame_factor ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:"vec3 X = O ( a_tbn_quat_next , vec3 ( 0.0 , 1.0 , 0.0 ) ) ; P = mix ( P , X , VERTEX_ANIM_MIX_NORMALS_FACTOR ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 Y = O ( a_tbn_quat_next , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 Z = sign ( a_tbn_quat_next [ 3 ] ) * cross ( X , Y ) ; Q = mix ( Q , Y , u_va_frame_factor ) ; R = mix ( R , Z , u_va_frame_factor ) ;".split(" ")}]}}]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"_(N,Q,R,P);".split("")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec3","ac","=","au_center_pos",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 ac = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"vec3 ae = ad ( S , ac ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{a:"logic_negative_expr", i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = af ( u_camera_eye , ae , M , S ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"S = ah ( u_camera_eye , ae , M ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = ai ( u_wind , u_time , u_jitter_amp , u_jitter_freq , ae , S ) ;".split(" ")}]}}]},{a:"txt",b:"aj al = ak ( N - ac , ac , vec3 ( 0.0 ) , W , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ; al . ac = ae ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( N , ac , vec3 ( 0.0 ) , W , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"am ( al . N , al . ac , P , mat4 ( 0.0 ) ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 an = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 an = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"am ( al . N , al . ac , an , mat4 ( 0.0 ) ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"A = ao ( a_texcoord , u_texture_scale ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"h = al . N ;".split(" ")}, {a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:12}],h:{a:"grp",d:[{a:"txt",b:"j = al . P ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"float ap = ( dot ( cross ( al . P , al . Q ) , al . R ) < 0.0 ) ? - 1.0 : 1.0 ; k = vec4 ( al . Q , ap ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:"B = al . aq ;".split(" ")}]}}]},{a:"txt",b:"i = vec4 ( ad ( M , al . N ) , 1.0 ) ; vec4 f = u_proj_matrix * i ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:"f . xy += u_subpixel_jitter * f . w ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"l = as ( f ) ;".split(" ")}]}}]},{a:"cond", d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"m = - i . z / u_view_max_depth ;".split(" ")}]}}]},{a:"txt",b:["I","(",")",";"]}]}}]},{a:"txt",b:"gl_Position = u_proj_matrix * vec4 ( ad ( M , al . N ) , 1.0 ) ; }".split(" ")}]};a["debug_view.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"DEBUG_SPHERE",b:["0"]},{a:"var",c:"WIREFRAME_QUALITY",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"DEBUG_SPHERE_DYNAMIC",b:["0"]},{a:"include", o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"uniform int u_debug_view_mode ; uniform float u_cluster_id ; uniform float u_batch_debug_id_color ; uniform float u_batch_debug_main_render_time ; uniform float u_debug_colors_seed ; uniform float u_debug_render_time_threshold ; uniform vec3 u_wireframe_edge_color ;".split(" ")}]}}]},{a:"txt",b:"GLSL_IN vec3 at ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; const float au = 1.0 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["DEBUG_SPHERE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE_DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"const vec3 av = vec3 ( 1.0 , 0.05 , 0.05 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"const vec3 av = vec3 ( 0.05 , 0.05 , 1.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"const vec3 aw = vec3 ( 0.4 , 0.4 , 1.0 ) ; const vec3 ax = vec3 ( 1.0 , 0.4 , 0.4 ) ; const vec3 ay = vec3 ( 1.0 , 1.0 , 1.0 ) ; const vec3 az = vec3 ( 0.0 , 133.0 / 255.0 , 66.0 / 255.0 ) ; const vec3 aA = vec3 ( 160.0 / 255.0 , 38.0 / 255.0 , 33.0 / 255.0 ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["DEBUG_SPHERE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"float aF ( ) { float aB = 1.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["WIREFRAME_QUALITY",0,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 aC = sign ( at - vec3 ( 0.02 * au ) ) ; if ( aC . x < 0.0 || aC . y < 0.0 || aC . z < 0.0 ) aB = 0.0 ;".split(" ")}]}},{a:"elif",g:["WIREFRAME_QUALITY",1,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["GLSL1"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives", ":","enable"]}]}}]},{a:"txt",b:"vec3 aD = fwidth ( at ) ; vec3 aE = smoothstep ( vec3 ( 0.0 ) , aD * au , at ) ; aB = min ( min ( aE . x , aE . y ) , aE . z ) ; aB = clamp ( aB , 0.0 , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:["return","aB",";","}"]}]}}]},{a:"txt",b:"void main ( ) { vec3 aG = vec3 ( 0.0 ) ; float J = 0.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE"],h:{a:"grp",d:[{a:"txt",b:"vec3 aC = sign ( at - vec3 ( 0.02 * au ) ) ; if ( aC . x < 0.0 || aC . y < 0.0 || aC . z < 0.0 ) { aG = av ; J = 1.0 ; } else discard ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"if ( u_debug_view_mode == DV_OPAQUE_WIREFRAME ) { float aB = aF ( ) ; aG = vec3 ( mix ( u_wireframe_edge_color , ay , aB ) ) ; J = 1.0 ; } else if ( u_debug_view_mode == DV_TRANSPARENT_WIREFRAME ) { float aB = aF ( ) ; aG = u_wireframe_edge_color ; J = mix ( 1.0 , 0.0 , aB ) ; } else if ( u_debug_view_mode == DV_FRONT_BACK_VIEW ) { float aB = aF ( ) ; if ( gl_FrontFacing ) aG = mix ( u_wireframe_edge_color , aw , aB ) ; else aG = mix ( u_wireframe_edge_color , ax , aB ) ; J = 1.0 ; } else if ( u_debug_view_mode == DV_CLUSTERS_VIEW ) { float aH = u_cluster_id + u_debug_colors_seed + 2.0 ; aG = vec3 ( fract ( aH * 19.73 ) , fract ( aH * 6.34 ) , fract ( aH * 1.56 ) ) ; J = 1.0 ; } else if ( u_debug_view_mode == DV_BATCHES_VIEW ) { float aH = u_batch_debug_id_color + u_debug_colors_seed ; aG = vec3 ( fract ( aH * 19.73 ) , fract ( aH * 6.34 ) , fract ( aH * 1.56 ) ) ; J = 1.0 ; } else if ( u_debug_view_mode == DV_RENDER_TIME ) { float aI ; if ( u_debug_render_time_threshold > 0.0 ) aI = clamp ( u_batch_debug_main_render_time , 0.0 , u_debug_render_time_threshold ) / u_debug_render_time_threshold ; else aI = 1.0 ; float aJ = clamp ( 2.0 * aI , 0.0 , 1.0 ) ; float aK = clamp ( 2.0 * aI - 1.0 , 0.0 , 1.0 ) ; float aL = aI ; aG = mix ( az , aA , vec3 ( aJ , aK , aL ) ) ; J = 1.0 ; }".split(" ")}]}}]}, {a:"txt",b:["aM","(","aG",")",";"]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]};a["debug_view.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"USE_INSTANCED_PARTCLS",b:["0"]},{a:"var",c:"DEBUG_VIEW_SPECIAL_SKYDOME",b:["0"]},{a:"var",c:"DEBUG_SPHERE",b:["0"]},{a:"var",c:"WIND_BEND",b:["0"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var", c:"BILLBOARD",b:["0"]},{a:"var",c:"VERTEX_ANIM",b:["0"]},{a:"var",c:"SKINNED",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"AU_QUALIFIER",b:["GLSL_IN"]},{a:"var",c:"BEND_CENTER_ONLY",b:["0"]},{a:"var",c:"FRAMES_BLENDING",b:["0"]},{a:"var",c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"MAX_BONES",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"var",c:"BILLBOARD_PRES_GLOB_ORIENTATION",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include", o:"to_world.glslv"},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec4 a_tbn_quat ; GLSL_IN float a_polyindex ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec4 a_part_ts ; GLSL_IN vec4 a_part_r ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_bending_col_main", ";"]},{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 a_bending_col_detail ; AU_QUALIFIER float au_detail_bending_amp ; AU_QUALIFIER float au_branch_bending_amp ; AU_QUALIFIER float au_detail_bending_freq ;".split(" ")}]}}]}]}}]},{a:"txt",b:"AU_QUALIFIER float au_wind_bending_amp ; AU_QUALIFIER float au_wind_bending_freq ;".split(" ")},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if", g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_position_next",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_influence",";"]}]}}]}]}}]},{a:"txt",b:["GLSL_OUT","vec3","at",";"]},{a:"cond",d:[{a:"if", g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_wind ; uniform PRECISION float u_time ;".split(" ")}, {a:"cond",d:[{a:"if",g:["BILLBOARD","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_jitter_amp ; uniform float u_jitter_freq ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_eye",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_va_frame_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp", d:[{a:"txt",b:"uniform vec4 u_quatsb [ MAX_BONES ] ; uniform vec4 u_transb [ MAX_BONES ] ; uniform vec4 u_arm_rel_trans ; uniform vec4 u_arm_rel_quat ;".split(" ")},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsa [ MAX_BONES ] ; uniform vec4 u_transa [ MAX_BONES ] ; uniform float u_frame_factor ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION sampler2D u_grass_map_depth ; uniform sampler2D u_grass_map_color ; uniform vec4 u_camera_quat ; uniform vec3 u_grass_map_dim ; uniform float u_grass_size ; uniform float u_scale_threshold ;".split(" ")}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["DEBUG_SPHERE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"skin.glslv"},{a:"include",o:"wind_bending.glslv"},{a:"include",o:"dynamic_grass.glslv"}]}}]},{a:"txt",b:"void main ( ) { if ( a_polyindex == 0.0 ) at = vec3 ( 1.0 , 0.0 , 0.0 ) ; else if ( a_polyindex == 1.0 ) at = vec3 ( 0.0 , 0.0 , 1.0 ) ; else at = vec3 ( 0.0 , 1.0 , 0.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEBUG_VIEW_SPECIAL_SKYDOME"],h:{a:"grp",d:[{a:"txt",b:"gl_Position = vec4 ( a_position . xy , 0.9999999 , 1.0 ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"mat3 S = mat3 ( a_part_ts [ 0 ] , a_part_ts [ 1 ] , a_part_ts [ 2 ] , a_part_ts [ 3 ] , a_part_r [ 0 ] , a_part_r [ 1 ] , a_part_r [ 2 ] , a_part_r [ 3 ] , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["STATIC_BATCH",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"S = aO ( u_model_tsr , S ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["mat3","S","=","u_model_tsr",";"]}]}}]},{a:"txt", b:"mat3 M = u_view_tsr ; vec3 N = a_position ; vec3 P = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEBUG_SPHERE"],h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( N , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:"N = mix ( N , a_position_next , u_va_frame_factor ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp", d:[{a:"txt",b:"vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ; _ ( N , Q , R , P ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec3","ac","=","au_center_pos",";"]}]}},{a:"elif",g:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ac = a_part_ts . xyz ; N = ad ( S , N ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 ac = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"aj al = aP ( N , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , ac , u_grass_map_depth , u_grass_map_color , u_grass_map_dim , u_grass_size , u_camera_eye , u_camera_quat , M ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"vec3 ae = ad ( S , ac ) ;".split(" ")},{a:"cond",d:[{a:"if", g:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2},"USE_INSTANCED_PARTCLS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = af ( u_camera_eye , ae , M , S ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"S = ah ( u_camera_eye , ae , M ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 aQ = ae ; S = ai ( u_wind , u_time , u_jitter_amp , u_jitter_freq , aQ , S ) ;".split(" ")}]}}]}, {a:"txt",b:"aj al = ak ( N - ac , ac , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ; al . ac = ae ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( N , ac , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"txt",b:"am ( al . N , al . ac , P , mat4 ( 0.0 ) ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:"gl_Position = u_proj_matrix * vec4 ( ad ( M , al . N ) , 1.0 ) ;".split(" ")}]}}]}, {a:"txt",b:["}"]}]};a["error.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 , 0.0 , 1.0 , 1.0 ) ; }".split(" ")}]};a["error.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"txt",b:"GLSL_IN vec3 a_position ; uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; void main ( ) { gl_Position = u_proj_matrix * aR ( u_view_tsr ) * vec4 ( a_position , 1.0 ) ; }".split(" ")}]}; a["grass_map.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"DYNAMIC_GRASS_SIZE",b:["0"]},{a:"var",c:"DYNAMIC_GRASS_COLOR",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_SIZE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","aS",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","aS",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if", g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","aS",";"]}]}}]}]}}]},{a:"txt",b:"GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) {".split(" ")},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_SIZE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT_FRAG_COLOR","=","aS",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aS , vec3 ( 1.0 ) ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"], h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 , aS ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:["}"]}]};a["grass_map.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"DYNAMIC_GRASS_SIZE",b:["0"]},{a:"var",c:"DYNAMIC_GRASS_COLOR",b:["0"]},{a:"var",c:"WIND_BEND",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"include", o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"txt",b:["GLSL_IN","vec3","a_position",";"]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_SIZE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_grass_size",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_grass_color",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_SIZE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT", "vec4","aS",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","aS",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","aS",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ;".split(" ")}, {a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_eye",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_wind ; uniform float u_time ; uniform float u_jitter_amp ; uniform float u_jitter_freq ;".split(" ")}]}}]},{a:"txt",b:"void main ( ) { mat3 M = u_view_tsr ; mat3 S = u_model_tsr ;".split(" ")},{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"vec3 ae = ad ( S , vec3 ( 0.0 ) ) ; mat3 S = ah ( u_camera_eye , ae , M ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = ai ( u_wind , u_time , u_jitter_amp , u_jitter_freq , vec3 ( 0.0 ) , S ) ;".split(" ")}]}}]},{a:"txt",b:"aj al = ak ( a_position , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ; al . ac = ae ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( a_position , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , S ) ;".split(" ")}]}}]}, {a:"txt",b:"vec4 f = u_proj_matrix * vec4 ( ad ( M , al . N ) , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_SIZE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:"aS = vec4 ( a_grass_size , a_grass_color ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["aS","=","a_grass_size",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS_COLOR"],h:{a:"grp",d:[{a:"txt",b:["aS","=","a_grass_color",";"]}]}}]}]}}]},{a:"txt",b:["gl_Position", "=","f",";","}"]}]};a["halo.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"SKY_STARS",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec4 u_diffuse_color ; uniform vec3 u_halo_rings_color ; uniform vec3 u_halo_lines_color ; uniform float u_halo_hardness ; uniform float u_halo_size ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:["uniform", "vec3","u_sun_intensity",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_halo_stars_blend ; uniform float u_halo_stars_height ; uniform float u_cam_water_depth ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SKY_STARS","WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","aT",";"]}]}}]},{a:"txt",b:"GLSL_IN vec2 A ; GLSL_IN float aU ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ;".split(" ")}, {a:"include",o:"color_util.glslf"},{a:"include",o:"halo_color.glslf"},{a:"txt",b:"void main ( ) { vec4 aW = aV ( ) ; vec3 aG = aW . rgb ; float aC = aW . a ; aM ( aG ) ; aN ( aG , aC ) ; GLSL_OUT_FRAG_COLOR = vec4 ( aG , aC ) ; }".split(" ")}]};a["halo.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"SKY_STARS",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"include",o:"std.glsl"}, {a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; uniform PRECISION float u_halo_size ; uniform vec3 u_camera_eye ;".split(" ")},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec2 a_halo_bb_vertex ; GLSL_IN float a_random_vals ; GLSL_OUT vec2 A ; GLSL_OUT float aU ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","aT",";"]}]}}]},{a:"txt",b:"void main ( ) { mat3 M = u_view_tsr ; mat3 S = u_model_tsr ; vec3 N = ad ( S , a_position ) ; A = a_halo_bb_vertex * 2.0 - 1.0 ; aU = a_random_vals ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:"mat3 aY = aX ( N , M ) ; mat3 aZ = M ; aZ [ 0 ] [ 0 ] = 0.0 ; aZ [ 0 ] [ 1 ] = 0.0 ; aZ [ 0 ] [ 2 ] = 0.0 ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"mat3 aY = aX ( N , M ) ;".split(" ")}]}}]},{a:"txt",b:"vec2 a_ = ( a_halo_bb_vertex * 2.0 - 1.0 ) * u_halo_size ; vec3 bc = vec3 ( a_ [ 0 ] , 0.0 , a_ [ 1 ] ) ; vec3 bd = ad ( aY , bc ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:"vec4 f = u_proj_matrix * vec4 ( ad ( aZ , bd ) , 1.0 ) ; f . z = 0.99999 * f . w ;".split(" ")},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"aT = vec4 ( bd , 1.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 f = u_proj_matrix * vec4 ( ad ( M , bd ) , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:["gl_Position","=","f",";","}"]}]};a["lens_flares.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform sampler2D u_sampler ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 aG = GLSL_TEXTURE ( u_sampler , A ) ; aM ( aG . rgb ) ; aN ( aG . rgb , aG . a ) ; GLSL_OUT_FRAG_COLOR = aG ; }".split(" ")}]}; a["lens_flares.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"define",c:"LIGHT_INDEX",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; GLSL_IN float a_lf_dist ; GLSL_IN vec2 a_lf_bb_vertex ; GLSL_IN vec2 a_texcoord ; GLSL_OUT vec2 A ; void main ( ) { A = a_texcoord ; vec3 be = normalize ( u_light_directions [ LIGHT_INDEX ] ) ; vec4 f = u_proj_matrix * vec4 ( T ( u_view_tsr , be ) , 0.0 ) ; f . x /= f . w ; f . y /= f . w ; f += 99999.0 * step ( f . z , 0.0 ) ; f += 100.0 * ( step ( 1.0 , abs ( f . x ) ) + step ( 1.0 , abs ( f . y ) ) ) ; f . x = a_lf_dist * f . x ; f . y = a_lf_dist * f . y ; float bf = u_proj_matrix [ 1 ] [ 1 ] / u_proj_matrix [ 0 ] [ 0 ] ; vec2 bh = vec2 ( a_lf_bb_vertex . x / bf , a_lf_bb_vertex . y ) ; if ( a_lf_dist < 0.999 ) { const float bi = 1.9 ; bh *= ( 1.0 + bi * length ( f . xy ) ) ; } gl_Position = vec4 ( f . xy + bh , 0.999999 , 1.0 ) ; }".split(" ")}]}; a["line.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"ALPHA",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform vec4 u_diffuse_color ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec3 aG = u_diffuse_color . xyz ; float J = u_diffuse_color . a ; aM ( aG ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]}; a["line.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec3 a_direction ; uniform mat3 u_model_tsr ; uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; uniform float u_height ; uniform float u_line_width ; void main ( ) { mat3 M = u_view_tsr ; mat3 S = u_model_tsr ; aj al = ak ( a_position , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , normalize ( a_direction ) , S ) ; vec4 bj = u_proj_matrix * vec4 ( ad ( M , al . N ) , 1.0 ) ; bj . xyz /= bj . w ; vec4 bk = u_proj_matrix * vec4 ( ad ( M , al . N + al . P ) , 1.0 ) ; bk . xyz /= bk . w ; float bf = u_proj_matrix [ 1 ] [ 1 ] / u_proj_matrix [ 0 ] [ 0 ] ; vec2 bl = ( bk - bj ) . xy ; bl . x *= bf ; float bm = M_PI / 2.0 ; mat2 bn = mat2 ( cos ( bm ) , sin ( bm ) , - sin ( bm ) , cos ( bm ) ) ; bl = bn * bl ; bl = normalize ( bl ) ; vec2 bo = ( u_line_width / u_height ) * vec2 ( 1.0 / bf , 1.0 ) ; gl_Position = vec4 ( bj . xy + bl . xy * bo / 2.0 , bj . z , 1.0 ) ; gl_Position *= bj . w ; }".split(" ")}]}; a["main.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"SHADELESS",b:["0"]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"NORMAL_TEXCOORD",b:["0"]},{a:"var",c:"USE_VIEW_TSR",b:["0"]},{a:"var",c:"USE_VIEW_TSR_INVERSE",b:["0"]},{a:"var",c:"USE_MODEL_TSR",b:["0"]},{a:"var",c:"USE_MODEL_TSR_INVERSE",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]}, {a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"TEXTURE_NORM_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"PARALLAX",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"CAMERA_TYPE",b:["CAM_TYPE_PERSP"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"ALPHA_CLIP",b:["0"]},{a:"var",c:"WETTABLE",b:["0"]},{a:"var",c:"NUM_VALUES",b:["0"]},{a:"var",c:"NUM_RGBS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var", c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"NUM_LAMP_LIGHTS",b:["0"]},{a:"var",c:"SSAO_ONLY",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"USE_REFRACTION",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"WATER_LEVEL", b:["0.0"]},{a:"var",c:"POISSON_DISK_NUM",b:["NO_SOFT_SHADOWS"]},{a:"var",c:"USE_DERIVATIVES_EXT",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_DERIVATIVES_EXT"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives",":","enable"]}]}}]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"include",o:"math.glslv"},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"include", o:"caustics.glslf"}]}}]}]}}]},{a:"txt",b:"uniform float u_time ; uniform vec2 u_texel_size ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]},{a:"txt",b:["uniform","float","u_environment_energy", ";"]},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_sun_quaternion ; uniform vec3 u_sun_intensity ; uniform vec3 u_sun_direction ;".split(" ")}]}}]}]}}]}, {a:"txt",b:["uniform","vec3","u_camera_eye_frag",";"]},{a:"cond",d:[{a:"if",g:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr",i:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_direction",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_VIEW_TSR",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_frag",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["USE_VIEW_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_color_density",";"]},{a:"cond", d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_underwater_fog_color_density ; uniform float u_cam_water_depth ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_cube_fog",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_plane_reflection", ";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_cube_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_shadow_mask",";"]}]}},{a:"elif",g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{a:"txt",b:"uniform vec4 u_csm_center_dists ; uniform PRECISION GLSL_SMPLR2D_SHDW u_shadow_map0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:["uniform","sampler2D","u_refractmap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","USE_REFRACTION","REFRACTIVE","USE_REFRACTION_CORRECTION",{a:"logical_and_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{a:"txt",b:"uniform float u_emit ; uniform float u_ambient ; uniform vec4 u_fresnel_params ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr", i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_mirror_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_refl_plane",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_LAMP"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_lamp_light_positions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_directions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_color_intensities [ NUM_LAMP_LIGHTS ] ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_VALUE"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_node_values [ NUM_VALUES ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_RGB"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_node_rgbs [ NUM_RGBS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_OBJECT_INFO"],h:{a:"grp", d:[{a:"txt",b:["uniform","vec3","u_obj_info",";"]}]}}]},{a:"txt",b:"GLSL_IN vec3 h ; GLSL_IN vec3 j ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS","WATER_EFFECTS",{a:"logical_and_expr",i:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr", i:2},{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","B",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN", "vec4","n",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","o",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","u",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","v",";"]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},"REFRACTIVE","USE_POSITION_CLIP",{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","m",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"include",o:"nodes.glslf"},{a:"cond", d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"fog.glslf"}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["NODES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS","WATER_EFFECTS",{a:"logical_and_expr",i:3},{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:"float bp = length ( i ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"float bq = h . z - WATER_LEVEL ;".split(" ")}]}}]},{a:"txt",b:"vec3 C = normalize ( u_camera_eye_frag - h ) ; vec3 D ; vec3 E ; vec3 F ; vec4 G ; float H ; I ( C , D , E , F , G , H ) ; vec3 aG = D ; float J = H ; vec3 P = F ; vec4 bs = G ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1},"WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WETTABLE"],h:{a:"grp",d:[{a:"txt", b:"aG = max ( aG - sqrt ( 0.01 * - min ( bq , 0.0 ) ) , 0.5 * aG ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"txt",b:"bt ( aG , bq , u_time , bs , P , u_sun_direction , u_sun_intensity , u_sun_quaternion , h , bp ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["ALPHA_CLIP"],h:{a:"grp",d:[{a:"txt",b:"if ( J < 0.5 ) discard ; J = 1.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"J = min ( 1.0 , J ) ;".split(" ")}]}}]}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:["J","=","1.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"bu ( aG , bp , C , bq ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"bu ( aG , bp , C , 1.0 ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SSAO_ONLY","SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float bv = GLSL_TEXTURE_PROJ ( u_shadow_mask , l ) . a ; aG = vec3 ( bv ) ;".split(" ")}]}}]}, {a:"txt",b:"aG = max ( vec3 ( 0.0 ) , aG ) ; aM ( aG ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["ALPHA","ALPHA_CLIP",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]};a["main.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"SHADELESS",b:["0"]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var", c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"var",c:"CALC_TBN",b:["0"]},{a:"var",c:"USE_INSTANCED_PARTCLS",b:["0"]},{a:"var",c:"TEXTURE_NORM_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"PARALLAX",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"SMAA_JITTER",b:["0"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"AU_QUALIFIER",b:["GLSL_IN"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"WIND_BEND",b:["0"]}, {a:"var",c:"BEND_CENTER_ONLY",b:["0"]},{a:"var",c:"BILLBOARD_PRES_GLOB_ORIENTATION",b:["0"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var",c:"SKINNED",b:["0"]},{a:"var",c:"FRAMES_BLENDING",b:["0"]},{a:"var",c:"VERTEX_ANIM",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFRACTIVE", b:["0"]},{a:"var",c:"MAC_OS_SHADOW_HACK",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"TEXCOORD",b:["0"]},{a:"var",c:"VERTEX_COLOR",b:["0"]},{a:"var",c:"VERTEX_ANIM_MIX_NORMALS_FACTOR",b:["u_va_frame_factor"]},{a:"var",c:"MAX_BONES",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"include",o:"scale_texcoord.glslv"},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec4 a_tbn_quat ;".split(" ")}, {a:"cond",d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec4 a_part_ts ; GLSL_IN vec4 a_part_r ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_influence",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1}, {a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_bending_col_main",";"]},{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 a_bending_col_detail ; AU_QUALIFIER float au_detail_bending_amp ; AU_QUALIFIER float au_branch_bending_amp ; AU_QUALIFIER float au_detail_bending_freq ;".split(" ")}]}}]}]}}]}, {a:"txt",b:"AU_QUALIFIER float au_wind_bending_amp ; AU_QUALIFIER float au_wind_bending_freq ;".split(" ")},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_position_next",";"]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO", "USE_NODE_BSDF_BEGIN","USE_NODE_TEX_COORD_RE",{a:"logical_or_expr",i:9}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_tbn_quat_next",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_color",";"]}]}}]}]}}]},{a:"txt",b:"GLSL_OUT vec3 h ; GLSL_OUT vec3 j ;".split(" ")},{a:"cond", d:[{a:"if",g:["NODES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS","WATER_EFFECTS",{a:"logical_and_expr",i:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO", "TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","bw",";"]},{a:"cond",d:[{a:"if",g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_COLOR","DYNAMIC_GRASS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","bx",";"]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","n",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","o",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","u",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS", 3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","v",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},"REFRACTIVE","USE_POSITION_CLIP",{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","NODES",{a:"logic_negative_expr",i:1},"USE_NODE_B4W_REFRACTION",{a:"logical_or_expr",i:2},{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","m",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","B",";"]}]}}]},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_view_refl_matrix",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"BILLBOARD","DYNAMIC_GRASS",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_eye",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_subpixel_jitter",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"], h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION sampler2D u_grass_map_depth ; uniform sampler2D u_grass_map_color ; uniform vec4 u_camera_quat ; uniform vec3 u_grass_map_dim ; uniform float u_grass_size ; uniform float u_scale_threshold ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsb [ MAX_BONES ] ; uniform vec4 u_transb [ MAX_BONES ] ; uniform vec4 u_arm_rel_trans ; uniform vec4 u_arm_rel_quat ;".split(" ")},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"], h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsa [ MAX_BONES ] ; uniform vec4 u_transa [ MAX_BONES ] ; uniform float u_frame_factor ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD_JITTERED"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_jitter_amp ; uniform float u_jitter_freq ;".split(" ")}]}}]},{a:"txt",b:"uniform vec3 u_wind ; uniform PRECISION float u_time ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt", b:["uniform","float","u_va_frame_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_texture_scale",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_normal_offset",";"]},{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"uniform mat3 u_v_light_tsr [ NUM_CAST_LAMPS ] ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt", b:"uniform vec4 u_v_light_ts [ NUM_CAST_LAMPS ] ; uniform vec4 u_v_light_r [ NUM_CAST_LAMPS ] ;".split(" ")}]}}]},{a:"txt",b:["uniform","mat4","u_p_light_matrix0",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix1",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix2", ";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix3",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]},{a:"include",o:"dynamic_grass.glslv"},{a:"include",o:"shadow.glslv"},{a:"include",o:"skin.glslv"},{a:"include",o:"wind_bending.glslv"}, {a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"include",o:"nodes.glslv"}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["mat4","by","=","u_view_refl_matrix",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"mat4 by = mat4 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:["mat3","M","=","u_view_tsr",";"]},{a:"cond",d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"mat3 S = mat3 ( a_part_ts [ 0 ] , a_part_ts [ 1 ] , a_part_ts [ 2 ] , a_part_ts [ 3 ] , a_part_r [ 0 ] , a_part_r [ 1 ] , a_part_r [ 2 ] , a_part_r [ 3 ] , 1.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["STATIC_BATCH",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"S = aO ( u_model_tsr , S ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["mat3","S","=","u_model_tsr",";"]}]}}]}]}}]},{a:"txt",b:["vec3","N","=","a_position",";"]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","WIND_BEND","MAIN_BEND_COL", "DETAIL_BEND",{a:"logical_and_expr",i:3},"NODES",{a:"logic_negative_expr",i:1},"USE_TBN_SHADING","CALC_TBN",{a:"logical_and_expr",i:2},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:14}],h:{a:"grp",d:[{a:"txt",b:"vec3 bz = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP", "CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"NODES",{a:"logic_negative_expr",i:1},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:13}],h:{a:"grp",d:[{a:"txt",b:["vec3","P","=","bz",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 P = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE","NODES",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO", "TEXTURE_COORDS_UV_ORCO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = O ( a_tbn_quat , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 R = sign ( a_tbn_quat [ 3 ] ) * cross ( P , Q ) ;".split(" ")}]}},{a:"elif",g:["NODES",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 bA = ad ( S , N ) ; vec3 U = normalize ( T ( S , bz ) ) ; vec3 C = bA - u_camera_eye ; vec3 R = cross ( C , U ) ; vec3 Q = cross ( U , R ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CALC_TBN"],h:{a:"grp",d:[{a:"txt",b:"vec3 U = normalize ( T ( S , bz ) ) ; vec3 V = cross ( vec3 ( 0.0 , 0.0 , 1.0 ) , U ) ; vec3 W = cross ( U , V ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","W","=","a_shade_tangs",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 W = vec3 ( 0.0 ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:"N = mix ( N , a_position_next , u_va_frame_factor ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"USE_NODE_BSDF_BEGIN","USE_NODE_TEX_COORD_RE","USE_NODE_BUMP",{a:"logical_or_expr",i:10}],h:{a:"grp",d:[{a:"txt",b:"vec3 bB = O ( a_tbn_quat_next , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","USE_NODE_BSDF_BEGIN","USE_NODE_BUMP",{a:"logical_or_expr",i:8}],h:{a:"grp",d:[{a:"txt",b:"P = mix ( P , bB , VERTEX_ANIM_MIX_NORMALS_FACTOR ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 Y = O ( a_tbn_quat_next , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 Z = sign ( a_tbn_quat_next [ 3 ] ) * cross ( bB , Y ) ; Q = mix ( Q , Y , u_va_frame_factor ) ; R = mix ( R , Z , u_va_frame_factor ) ;".split(" ")}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"_(N,Q,R,P);".split("")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec3","ac","=","au_center_pos",";"]}]}},{a:"elif",g:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ac = a_part_ts . xyz ; N = ad ( S , N ) ;".split(" ")}]}},{a:"else", h:{a:"grp",d:[{a:"txt",b:"vec3 ac = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"aj al = aP ( N , Q , W , R , P , ac , u_grass_map_depth , u_grass_map_color , u_grass_map_dim , u_grass_size , u_camera_eye , u_camera_quat , M ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"vec3 ae = ad ( S , ac ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"N = ( by * vec4 ( N , 1.0 ) ) . xyz ; ac = ( by * vec4 ( ac , 1.0 ) ) . xyz ; ae = ( by * vec4 ( ae , 1.0 ) ) . xyz ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2},"USE_INSTANCED_PARTCLS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = af ( u_camera_eye , ae , M , S ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"S = ah ( u_camera_eye , ae , M ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 aQ = ae ; S = ai ( u_wind , u_time , u_jitter_amp , u_jitter_freq , aQ , S ) ;".split(" ")}]}}]},{a:"txt",b:"aj al = ak ( N - ac , ac , Q , W , R , P , S ) ; al . ac = ae ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( N , ac , Q , W , R , P , S ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE", {a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float ap = ( dot ( cross ( al . P , al . Q ) , al . R ) < 0.0 ) ? - 1.0 : 1.0 ; k = vec4 ( al . Q , ap ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:"B = al . aq ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"txt",b:"am ( al . N , al . ac , P , by ) ;".split(" ")}]}}]},{a:"txt",b:"h = al . N ;".split(" ")},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"USE_NODE_MATERIAL_BEGIN", "USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:13}],h:{a:"grp",d:[{a:"txt",b:"j = al . P ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"bw = u_camera_eye - al . N ;".split(" ")},{a:"cond",d:[{a:"if", g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:"A = ao ( a_texcoord , u_texture_scale ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"bx = al . aG ;".split(" ")}]}},{a:"elif",g:["VERTEX_COLOR"],h:{a:"grp",d:[{a:"txt",b:["bx","=","a_color",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 bC = by * vec4 ( al . N , 1.0 ) ; bC . xyz = ad ( M , bC . xyz ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 bC = vec4 ( ad ( M , al . N ) , 1.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS","WATER_EFFECTS",{a:"logical_and_expr",i:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr", i:6}],h:{a:"grp",d:[{a:"txt",b:["i","=","bC",";"]}]}}]},{a:"txt",b:"vec4 f = u_proj_matrix * bC ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:"f . xy += u_subpixel_jitter * f . w ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},"REFRACTIVE","USE_POSITION_CLIP",{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:"l = as ( f ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if", g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bD ( al . N , al . P ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","NODES",{a:"logic_negative_expr",i:1},"USE_NODE_B4W_REFRACTION",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"m = - bC . z / u_view_max_depth ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"txt",b:["I","(",")",";"]}]}}]},{a:"txt",b:["gl_Position","=","f",";","}"]}]};a["main_stack.glslf"]= {a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"TEXTURE_NORM_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"TEXTURE_SPEC_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"TEXTURE_COLOR0_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"TEXTURE_COLOR1_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"PARALLAX",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"REFLECTION_PASS", b:["REFL_PASS_PLANE"]},{a:"var",c:"TEXTURE_SPEC",b:["0"]},{a:"var",c:"ALPHA_AS_SPEC",b:["0"]},{a:"var",c:"TEXTURE_STENCIL_ALPHA_MASK",b:["0"]},{a:"var",c:"TEXTURE_STENCIL_ALPHA_MASK_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"NORMAL_TEXCOORD",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"var",c:"DOUBLE_SIDED_LIGHTING",b:["0"]},{a:"var",c:"SHADELESS",b:["0"]},{a:"var",c:"TEXCOORD",b:["0"]},{a:"var",c:"VERTEX_COLOR",b:["0"]},{a:"var",c:"WETTABLE",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]}, {a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"WATER_LEVEL",b:["0.0"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"var",c:"TEXTURE_BLEND_TYPE",b:["TEXTURE_BLEND_TYPE_MIX"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"ALPHA_CLIP",b:["0"]},{a:"var",c:"PARALLAX_LOD_DIST",b:["5.0"]},{a:"var",c:"PARALLAX_STEPS",b:["5.0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT", b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var",c:"POISSON_DISK_NUM",b:["NO_SOFT_SHADOWS"]},{a:"var",c:"SSAO_ONLY",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"include",o:"math.glslv"},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr", i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"include",o:"caustics.glslf"}]}}]}]}}]},{a:"txt",b:["uniform","float","u_time",";"]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]}, {a:"txt",b:["uniform","float","u_environment_energy",";"]},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_sun_quaternion ; uniform vec3 u_sun_intensity ; uniform vec3 u_sun_direction ;".split(" ")}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_color_density",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_underwater_fog_color_density ; uniform float u_cam_water_depth ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_cube_fog",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_colormap0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_SPEC","ALPHA_AS_SPEC",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:["uniform","sampler2D","u_specmap0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_normalmap0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_STENCIL_ALPHA_MASK"],h:{a:"grp",d:[{a:"txt",b:"uniform sampler2D u_colormap1 ; uniform sampler2D u_stencil0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D", "u_plane_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_cube_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_shadow_mask",";"]}]}},{a:"elif",g:["SHADOW_USAGE", "SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{a:"txt",b:"uniform vec4 u_csm_center_dists ; uniform PRECISION GLSL_SMPLR2D_SHDW u_shadow_map0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1", ";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_refractmap", ";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE","USE_REFRACTION_CORRECTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{a:"txt",b:"uniform float u_emit ; uniform float u_ambient ; uniform vec4 u_fresnel_params ; uniform float u_specular_alpha ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:["uniform","float","u_reflect_factor",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_mirror_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_refl_plane",";"]}]}}]},{a:"txt",b:"uniform vec4 u_diffuse_color ; uniform vec2 u_diffuse_params ; uniform float u_diffuse_intensity ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO", "TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_normal_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_diffuse_color_factor ; uniform float u_alpha_factor ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_SPEC"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_specular_color_factor",";"]}]}}]},{a:"txt",b:"uniform vec3 u_specular_color ; uniform vec3 u_specular_params ;".split(" ")}, {a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_parallax_scale",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_refr_bump",";"]}]}}]},{a:"txt",b:"GLSL_IN vec3 h ; GLSL_IN vec3 j ;".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}, "PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS",{a:"logical_and_expr",i:2},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","k", ";"]}]}}]},{a:"txt",b:["GLSL_IN","vec3","bw",";"]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","B",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_COLOR","DYNAMIC_GRASS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","bx",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN", "vec4","n",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","o",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","u",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","v",";"]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","m",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"shadow.glslf"}]}}]}, {a:"include",o:"mirror.glslf"},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"include",o:"refraction.glslf"}]}}]},{a:"include",o:"environment.glslf"},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"lighting_nodes.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"fog.glslf"}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr", i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2},"SHADELESS",{a:"logic_negative_expr",i:1},"CAUSTICS","WATER_EFFECTS",{a:"logical_and_expr",i:3},{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"float bp = length ( i ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"float bq = h . z - WATER_LEVEL ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:["vec2","bE","=","A", ";"]}]}}]},{a:"txt",b:"vec3 bF = normalize ( j ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DOUBLE_SIDED_LIGHTING"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( gl_FrontFacing == false )".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["if","(","gl_FrontFacing",")"]}]}}]},{a:"txt",b:"bF = bF ; else bF = - bF ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}], h:{a:"grp",d:[{a:"txt",b:"vec3 R = cross ( bF , k . xyz ) * k . w ; R = normalize ( R ) ; vec3 Q = cross ( R , bF ) * k . w ; mat3 bG = mat3 ( Q , R , bF ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["mat3","M","=","u_view_tsr_frag",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:"vec2 bH = normalize ( T ( M , j ) ) . st ; bH = bH * vec2 ( 0.495 ) + vec2 ( 0.5 ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"PARALLAX",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( bp < PARALLAX_LOD_DIST ) { float bI = clamp ( 0.5 * ( PARALLAX_LOD_DIST - bp ) , 0.0 , 1.0 ) ; float bJ = u_parallax_scale * bI ; vec3 bK = normalize ( bw * bG ) ; float bL = 1.0 / PARALLAX_STEPS ; vec2 bM = bK . xy * bJ / ( PARALLAX_STEPS * bK . z ) ; float bN = 1.0 ; float bO ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec2","bP","=","bH",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec2","bP","=","bE",";"]}]}}]},{a:"txt",b:"bO = GLSL_TEXTURE ( u_normalmap0 , bP ) . a ; for ( float bQ = 1.0 ; bQ <= PARALLAX_STEPS ; bQ ++ ) { if ( bO < bN ) { bN -= bL ; bP -= bM ; bO = GLSL_TEXTURE ( u_normalmap0 , bP ) . a ; } } vec2 bR = bP + bM ; float bS = GLSL_TEXTURE ( u_normalmap0 , bR ) . a - ( bN + bL ) ; float bT = bO - bN ; float bU = bT / ( bT - bS ) ; bP = bU * bR + ( 1.0 - bU ) * bP ;".split(" ")}, {a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:"bE += bP - bH ;".split(" ")}]}}]},{a:"txt",b:["bH","=","bP",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:"bH += bP - bE ;".split(" ")}]}}]},{a:"txt",b:["bE","=","bP",";"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["vec4","bV",";"]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bV = GLSL_TEXTURE ( u_normalmap0 , bH ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"bV = GLSL_TEXTURE ( u_normalmap0 , bE ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 bW = bV . rgb - 0.5 ; bW = mix ( vec3 ( 0.0 , 0.0 , 1.0 ) , bW , u_normal_factor ) ; vec3 P = bG * bW ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","P", "=","bF",";"]}]}}]},{a:"txt",b:"P = normalize ( P ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD"],h:{a:"grp",d:[{a:"txt",b:"bH = normalize ( T ( M , P ) ) . st ; bH = bH * vec2 ( 0.495 ) + vec2 ( 0.5 ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 C = normalize ( bw ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["VERTEX_COLOR","DYNAMIC_GRASS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 bX = bx ; bY ( bX ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_COLOR","DYNAMIC_GRASS",{a:"logical_or_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 bZ = vec4 ( bX , 1.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec4","bZ","=","u_diffuse_color",";"]}]}}]},{a:"txt",b:["float","b_","=","1.0",";"]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 ca = GLSL_TEXTURE ( u_colormap0 , bH ) ;".split(" ")}]}},{a:"elif",g:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_UV_ORCO",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 ca = GLSL_TEXTURE ( u_colormap0 , bE ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bY ( ca . rgb ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_STENCIL_ALPHA_MASK"],h:{a:"grp",d:[{a:"txt",b:["vec4","cb",";"]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR1_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"cb = GLSL_TEXTURE ( u_colormap1 , bH ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"cb = GLSL_TEXTURE ( u_colormap1 , bE ) ;".split(" ")}]}}]}, {a:"txt",b:"bY ( cb . rgb ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_STENCIL_ALPHA_MASK_CO","TEXTURE_COORDS_NORMAL",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 cc = GLSL_TEXTURE ( u_stencil0 , bH ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 cc = GLSL_TEXTURE ( u_stencil0 , bE ) ;".split(" ")}]}}]},{a:"txt",b:"ca = mix ( ca , cb , cc . r ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"bZ . rgb = mix ( bZ . rgb , ca . rgb , u_diffuse_color_factor ) ; float L = u_alpha_factor * ca . a ; L += ( 1.0 - step ( 0.0 , L ) ) ; bZ . a = mix ( L , 1.0 , u_diffuse_color . a ) ; b_ = ca . a ;".split(" ")}]}},{a:"elif",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MULTIPLY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bZ . rgb *= mix ( vec3 ( 1.0 ) , ca . rgb , u_diffuse_color_factor ) ; bZ . a = ca . a ; b_ = ca . a ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SHADELESS"],h:{a:"grp", d:[{a:"txt",b:"vec3 aG = bZ . rgb ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 cd = u_diffuse_intensity * bZ . rgb ; vec3 cf = u_environment_energy * ce ( P ) ; vec3 cg = u_ambient * cf ; vec4 bs = ch ( cd ) ; vec3 ci = u_emit * bZ . rgb ; vec3 cj = u_specular_color ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_SPEC"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["ALPHA_AS_SPEC"],h:{a:"grp",d:[{a:"txt",b:"vec3 ck = vec3 ( b_ ) ;".split(" ")}]}},{a:"elif",g:["TEXTURE_SPEC_CO","TEXTURE_COORDS_NORMAL", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ck = GLSL_TEXTURE ( u_specmap0 , bH ) . rgb ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 ck = GLSL_TEXTURE ( u_specmap0 , bE ) . rgb ;".split(" ")}]}}]},{a:"txt",b:"bY ( ck . rgb ) ; cj = mix ( cj , ck , u_specular_color_factor ) ;".split(" ")}]}}]},{a:"txt",b:"float cl = u_specular_params [ 0 ] ; vec2 cm = vec2 ( u_specular_params [ 1 ] , u_specular_params [ 2 ] ) ; vec3 cn = cl * cj ; vec3 aG ; vec3 co ; cp ( ci , cg , cd , cn , h , P , C , cm , u_diffuse_params , bs , 0.0 , vec4 ( 0.0 ) , aG , co ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"cq ( aG , C , P , u_reflect_factor , M ) ;".split(" ")}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"cq ( aG , C , P , u_reflect_factor , mat3 ( 0.0 ) ) ;".split(" ")}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"cq ( aG , C , P , u_mirror_factor , mat3 ( 0.0 ) ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if", g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["aG","+=","co",";"]}]}}]},{a:"txt",b:"float J = bZ . a ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1},"WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WETTABLE"],h:{a:"grp",d:[{a:"txt",b:"aG = max ( aG - sqrt ( 0.01 * - min ( bq , 0.0 ) ) , 0.5 * aG ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CAUSTICS"],h:{a:"grp",d:[{a:"txt",b:"bt ( aG , bq , u_time , bs , P , u_sun_direction , u_sun_intensity , u_sun_quaternion , h , bp ) ;".split(" ")}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["ALPHA_CLIP"],h:{a:"grp",d:[{a:"txt",b:"if ( J < 0.5 ) discard ; J = 1.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"float t = max ( max ( co . r , co . g ) , co . b ) * u_specular_alpha ; J = bZ . a * ( 1.0 - t ) + t ;".split(" ")}]}}]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["J","=","1.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"], h:{a:"grp",d:[{a:"txt",b:"vec2 cr = - ( T ( M , P ) ) . xy ; aG = mix ( cs ( l , cr * u_refr_bump ) , aG , J ) ; J = 1.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"bu ( aG , bp , C , bq ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"bu ( aG , bp , C , 1.0 ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SSAO_ONLY","SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr", i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float bv = GLSL_TEXTURE_PROJ ( u_shadow_mask , l ) . a ; aG = vec3 ( bv ) ;".split(" ")}]}}]},{a:"txt",b:["aM","(","aG",")",";"]},{a:"cond",d:[{a:"if",g:["ALPHA","ALPHA_CLIP",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]};a["particle_system.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var", c:"NUM_VALUES",b:["0"]},{a:"var",c:"NUM_RGBS",b:["0"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"NUM_LAMP_LIGHTS",b:["0"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"NORMAL_TEXCOORD",b:["0"]},{a:"var",c:"USE_VIEW_TSR",b:["0"]},{a:"var",c:"USE_VIEW_TSR_INVERSE",b:["0"]},{a:"var",c:"USE_MODEL_TSR",b:["0"]},{a:"var",c:"USE_MODEL_TSR_INVERSE",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"ALPHA_CLIP",b:["0"]},{a:"var",c:"SOFT_STRENGTH", b:["0.25"]},{a:"var",c:"SOFT_PARTICLES",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"TEXTURE_NORM_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"CAMERA_TYPE",b:["CAM_TYPE_PERSP"]}, {a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"USE_DERIVATIVES_EXT",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_DERIVATIVES_EXT"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives",":","enable"]}]}}]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","NODES",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"pack.glslf"}]}}]},{a:"txt",b:["uniform","float","u_environment_energy",";"]},{a:"cond", d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_color_density",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_underwater_fog_color_density ; uniform float u_cam_water_depth ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_cube_fog",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]}, {a:"txt",b:"uniform float u_emit ; uniform float u_ambient ; uniform float u_time ; uniform vec3 u_camera_eye_frag ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr",i:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_direction",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_LAMP"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_lamp_light_positions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_directions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_color_intensities [ NUM_LAMP_LIGHTS ] ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_VALUE"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_node_values [ NUM_VALUES ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_RGB"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_node_rgbs [ NUM_RGBS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_VIEW_TSR",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_VIEW_TSR_INVERSE"], h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION sampler2D u_scene_depth ; uniform float u_view_max_depth ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_CURVE_VEC", "USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_OBJECT_INFO"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_obj_info",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES", "USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR","USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV","USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:7}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]},{a:"txt",b:["GLSL_IN","vec3","h",";"]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"NODES",{a:"logical_or_expr", i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","i",";"]}]}}]},{a:"txt",b:"GLSL_IN vec3 j ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ;".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"fog.glslf"}]}}]},{a:"include",o:"math.glslv"},{a:"include",o:"particles_nodes.glslf"},{a:"txt",b:"void main ( ) { vec3 C = normalize ( u_camera_eye_frag - h ) ; vec3 D ; vec3 E ; vec3 F ; vec4 G ; float H ; I ( C , D , E , F , G , H ) ; vec3 aG = D ; float J = H ;".split(" ")}, {a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["ALPHA_CLIP"],h:{a:"grp",d:[{a:"txt",b:"if ( J < 0.5 ) discard ; J = 1.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"J = min ( 1.0 , J ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["J","=","1.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"bu ( aG , length ( i ) , C , 1.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES"],h:{a:"grp", d:[{a:"txt",b:"float ct = - i . z / u_view_max_depth ; vec4 cu = GLSL_TEXTURE_PROJ ( u_scene_depth , l ) ; float cw = cv ( cu ) ; float cx = cw - ct ; float cy = u_view_max_depth / SOFT_STRENGTH * cx ; J = J * min ( cy , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:["aM","(","aG",")",";"]},{a:"cond",d:[{a:"if",g:["ALPHA","ALPHA_CLIP",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]}; a["particle_system.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"BILLBOARD_ALIGN",b:["BILLBOARD_ALIGN_VIEW"]},{a:"var",c:"TEXTURE_NORM_CO",b:["TEXTURE_COORDS_NONE"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"HALO_PARTICLES",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"PARTICLES_SHADELESS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"SOFT_PARTICLES",b:["0"]},{a:"var",c:"COLOR_RAMP_LENGTH", b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"WORLD_SPACE",b:["0"]},{a:"var",c:"USE_COLOR_RAMP",b:["0"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"WIND_BEND",b:["0"]},{a:"var",c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"include",o:"std.glsl"},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec4 a_tbn_quat ; GLSL_IN vec3 a_p_data ; GLSL_IN vec4 a_p_vels ; GLSL_IN vec2 a_p_bb_vertex ;".split(" ")},{a:"cond",d:[{a:"if", g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["HALO_PARTICLES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","cz",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec3","bx",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","k",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR","HALO_PARTICLES", "USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV","USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:8}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec3","h",";"]},{a:"cond",d:[{a:"if",g:["PARTICLES_SHADELESS",{a:"logic_negative_expr",i:1},"DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","bw",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES", "DISABLE_FOG",{a:"logic_negative_expr",i:1},"NODES",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","j",";"]}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","aU",";"]}]}}]},{a:"cond",d:[{a:"if", g:["COLOR_RAMP_LENGTH",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_p_color_ramp [ COLOR_RAMP_LENGTH ] ;".split(" ")}]}}]},{a:"txt",b:"uniform float u_p_time ; uniform float u_p_length ; uniform int u_p_cyclic ; uniform float u_p_fade_in ; uniform float u_p_fade_out ; uniform float u_p_nfactor ; uniform float u_p_gravity ; uniform float u_p_mass ; uniform float u_p_wind_fac ; uniform float u_p_max_lifetime ; uniform float u_p_tilt ; uniform float u_p_tilt_rand ;".split(" ")},{a:"cond", d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_view_refl_matrix",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; uniform vec3 u_wind ; uniform float u_p_size ; uniform vec3 u_camera_eye ;".split(" ")},{a:"cond",d:[{a:"if",g:["WORLD_SPACE",{a:"logic_negative_expr",i:1},"NODES","HALO_PARTICLES",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if", g:["USE_COLOR_RAMP"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_color_ramp_tex",";"]}]}}]},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"include",o:"particles.glslv"},{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"include",o:"particles_nodes.glslv"}]}}]},{a:"txt",b:"float cC ( vec2 cA , vec2 cB ) { return ( atan ( cB . y , cB . x ) - atan ( cA . y , cA . x ) ) ; } void main ( ) {".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["mat4","by","=","u_view_refl_matrix",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"mat4 by = mat4 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"mat3 M = u_view_tsr ; cD pp ; pp = cE ( ) ; float cF ; mat3 aY = cG ( ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 cH = ( by * vec4 ( pp . N , 1.0 ) ) . xyz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 cH = pp . N ;".split(" ")}]}}]}, {a:"txt",b:"vec3 P = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ; if ( BILLBOARD_ALIGN == BILLBOARD_ALIGN_VIEW ) { cF = pp . bm ; aY = aX ( cH , M ) ; } else if ( BILLBOARD_ALIGN == BILLBOARD_ALIGN_XY ) { cF = cC ( vec2 ( EPSILON , 1.0 ) , vec2 ( P . x , - P . y ) ) + pp . bm ; aY [ 0 ] = cH ; vec4 cJ = cI ( RIGHT_VECTOR , - M_PI / 2.0 ) ; aY = cK ( cJ , aY ) ; } else if ( BILLBOARD_ALIGN == BILLBOARD_ALIGN_YZ ) { cF = pp . bm ; aY [ 0 ] = cH ; vec4 cL = cI ( UP_VECTOR , M_PI / 2.0 ) ; aY = cK ( cL , aY ) ; } else if ( BILLBOARD_ALIGN == BILLBOARD_ALIGN_ZX ) { cF = pp . bm ; aY [ 0 ] = cH ; } vec3 bc = vec3 ( ( a_p_bb_vertex [ 0 ] * 2.0 - 1.0 ) * pp . cM * u_p_size , 0.0 , ( a_p_bb_vertex [ 1 ] * 2.0 - 1.0 ) * pp . cM * u_p_size ) ; float cN = a_p_data [ 2 ] ; float cO = u_p_tilt * u_p_tilt_rand * ( 2.0 * cN - 1.0 ) ; float cP = ( cO + u_p_tilt ) * M_PI ; vec4 cQ = cI ( TOWARD_VECTOR , cP + cF ) ; vec3 bd = ad ( aY , O ( cQ , bc ) ) ; vec4 bC = vec4 ( ad ( M , bd ) , 1.0 ) ; vec4 f = u_proj_matrix * bC ;".split(" ")}, {a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:["aU","=","cN",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE","NODES",{a:"logic_negative_expr",i:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_UV_ORCO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2},"USE_TBN_SHADING",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = O ( a_tbn_quat , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 R = sign ( a_tbn_quat [ 3 ] ) * cross ( P , Q ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"mat3 cR = cG ( ) ; cQ = cI ( TOWARD_VECTOR , cF ) ; cR = cK ( cQ , cR ) ; aj al = ak ( vec3 ( 0.0 ) , vec3 ( 0.0 ) , Q , vec3 ( 0.0 ) , R , vec3 ( 0.0 ) , aO ( aY , cR ) ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{a:"non_equal_expr",i:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"float ap = ( dot ( cross ( P , al . Q ) , al . R ) < 0.0 ) ? - 1.0 : 1.0 ; k = vec4 ( al . Q , ap ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr",i:11}],h:{a:"grp",d:[{a:"txt",b:["j","=","P",";"]}]}}]},{a:"txt",b:"I ( pp . N , pp . cS , pp . cT , pp . cU , pp . cM , a_p_bb_vertex , a_p_data [ 0 ] ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["A","=","a_p_bb_vertex",";"]}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:"A = a_p_bb_vertex * 2.0 - 1.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"cz = pp . J ;".split(" ")}]}}]},{a:"txt",b:"bx = pp . aG ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"l = as ( f ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"NODES",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["i","=","bC",";"]}]}}]},{a:"txt",b:"gl_Position = f ; h = bd ;".split(" ")},{a:"cond",d:[{a:"if",g:["PARTICLES_SHADELESS",{a:"logic_negative_expr",i:1},"DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bw = u_camera_eye - bd ;".split(" ")}]}}]},{a:"txt",b:["}"]}]};a["particle_system_stack.glslf"]={a:"grp",d:[{a:"version", b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"var",c:"TEXTURE_BLEND_TYPE",b:["TEXTURE_BLEND_TYPE_MIX"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"ALPHA_CLIP",b:["0"]},{a:"var",c:"SOFT_STRENGTH",b:["0.25"]},{a:"var",c:"SOFT_PARTICLES",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"HALO_PARTICLES",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var", c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_STARS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"PARTICLES_SHADELESS",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","NODES",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"pack.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES", {a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_sampler",";"]}]}}]},{a:"txt",b:["uniform","float","u_environment_energy",";"]},{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"], h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_diffuse_color_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]},{a:"txt",b:"uniform vec2 u_diffuse_params ; uniform float u_diffuse_intensity ; uniform float u_emit ; uniform float u_ambient ; uniform vec3 u_specular_color ; uniform vec3 u_specular_params ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"uniform float u_halo_size ; uniform vec3 u_halo_rings_color ; uniform float u_halo_hardness ; uniform vec3 u_halo_lines_color ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_sun_intensity ; uniform float u_halo_stars_blend ; uniform float u_halo_stars_height ;".split(" ")}]}}]},{a:"txt",b:"uniform float u_p_alpha_start ; uniform float u_p_alpha_end ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr", i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_color_density",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_underwater_fog_color_density ; uniform float u_cam_water_depth ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_cube_fog",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{a:"txt",b:["uniform","vec4","u_diffuse_color", ";"]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION sampler2D u_scene_depth ; uniform float u_view_max_depth ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR","HALO_PARTICLES","USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV","USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:8}],h:{a:"grp",d:[{a:"txt", b:["GLSL_IN","vec2","A",";"]}]}}]},{a:"txt",b:["GLSL_IN","vec3","h",";"]},{a:"cond",d:[{a:"if",g:["NODES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["HALO_PARTICLES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","cz",";"]}]}}]},{a:"txt",b:["GLSL_IN","vec3","bx",";"]}]}}]},{a:"cond",d:[{a:"if",g:["PARTICLES_SHADELESS",{a:"logic_negative_expr",i:1},"DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN", "vec3","bw",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","DISABLE_FOG",{a:"logic_negative_expr",i:1},"NODES",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","aU",";"]},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","aT",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","B",";"]}]}}]},{a:"txt", b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"include",o:"lighting_nodes.glslf"},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"fog.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"environment.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"include",o:"halo_color.glslf"}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["PARTICLES_SHADELESS", {a:"logic_negative_expr",i:1},"DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 C = normalize ( bw ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["HALO_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:"vec4 aW = aV ( ) ; vec3 aG = aW . rgb * bx ; float cV = 0.9 * length ( A ) ; float cW = smoothstep ( u_p_alpha_start , u_p_alpha_end , cV ) ; float J = aW . a * ( 1.0 - cW ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec4","bZ","=","u_diffuse_color", ";"]},{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"vec4 ca = GLSL_TEXTURE ( u_sampler , A ) ; bY ( ca . rgb ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bZ . rgb = mix ( bZ . rgb , ca . rgb , u_diffuse_color_factor ) ;".split(" ")}]}},{a:"elif",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MULTIPLY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bZ . rgb *= mix ( vec3 ( 1.0 ) , ca . rgb , u_diffuse_color_factor ) ;".split(" ")}]}}]}, {a:"txt",b:"bZ . a = ca . a ;".split(" ")}]}}]},{a:"txt",b:"bZ . rgb *= bx ;".split(" ")},{a:"cond",d:[{a:"if",g:["PARTICLES_SHADELESS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec3 cd = u_diffuse_intensity * bZ . rgb ; vec3 ci = u_emit * bZ . rgb ; vec3 P = vec3 ( 0.0 , 0.0 , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logic_negative_expr",i:1},"SKY_COLOR",{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec3 cf = u_environment_energy * ce ( vec3 ( 0.0 ) ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 cf = u_environment_energy * ce ( P ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 cg = u_ambient * cf ; float cl = u_specular_params [ 0 ] ; vec2 cm = vec2 ( u_specular_params [ 1 ] , u_specular_params [ 2 ] ) ; vec3 cn = cl * u_specular_color ; vec3 aG ; vec3 co ; cp ( ci , cg , cd , cn , h , P , C , cm , u_diffuse_params , vec4 ( 1.0 ) , 0.0 , vec4 ( 0.0 ) , aG , co ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 aG = bZ . rgb ;".split(" ")}]}}]},{a:"txt", b:"float J = bZ . a * cz ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["ALPHA_CLIP"],h:{a:"grp",d:[{a:"txt",b:"if ( J < 0.5 ) discard ; J = 1.0 ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["J","=","1.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"bu ( aG , length ( i ) , C , 1.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SOFT_PARTICLES"],h:{a:"grp",d:[{a:"txt",b:"float ct = - i . z / u_view_max_depth ; vec4 cu = GLSL_TEXTURE_PROJ ( u_scene_depth , l ) ; float cw = cv ( cu ) ; float cx = cw - ct ; float cy = u_view_max_depth / SOFT_STRENGTH * cx ; J = J * min ( cy , 1.0 ) ;".split(" ")}]}}]}, {a:"txt",b:["aM","(","aG",")",";"]},{a:"cond",d:[{a:"if",g:["ALPHA","ALPHA_CLIP",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]};a["proc_skybox.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform vec3 u_sky_color ; uniform vec3 u_sun_direction ; uniform float u_rayleigh_brightness ; uniform float u_mie_brightness ; uniform float u_spot_brightness ; uniform float u_scatter_strength ; uniform float u_rayleigh_strength ; uniform float u_mie_strength ; uniform float u_rayleigh_collection_power ; uniform float u_mie_collection_power ; uniform float u_mie_distribution ; GLSL_IN vec3 cX ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; const float cY = 0.99 ; const float cZ = 1.8 ; const int c_ = 8 ; float de ( vec3 N , vec3 be ) { float a = dot ( be , be ) ; float b = 2.0 * dot ( be , N ) ; float da = dot ( N , N ) - 1.0 ; float db = b * b - 4.0 * a * da ; float dc = sqrt ( db ) ; float q = ( - b - dc ) / 2.0 ; float dd = da / q ; return dd ; } float dg ( float J , float g ) { float a = 3.0 * ( 1.0 - g * g ) ; float b = 2.0 * ( 2.0 + g * g ) ; float da = 1.0 + J * J ; float df = pow ( 1.0 + g * g - 2.0 * g * J , 1.5 ) ; df = max ( df , 0.00001 ) ; return ( a / b ) * ( da / df ) ; } float dl ( vec3 N , vec3 be , float dh ) { float di = dot ( be , - N ) ; if ( di < 0.0 ) { return 1.0 ; } vec3 dj = N + di * be ; if ( length ( dj ) < dh ) { return 0.0 ; } else if ( length ( dj ) >= dh ) { vec3 cB = normalize ( dj ) * dh - N ; float dk = acos ( dot ( normalize ( cB ) , be ) ) ; return smoothstep ( 0.0 , 1.0 , pow ( dk * 2.0 , 3.0 ) ) ; } else return 1.0 ; } vec3 dm ( float aC , vec3 aG , float aB ) { return aG - aG * pow ( u_sky_color , vec3 ( aB / aC ) ) ; } void main ( ) { vec3 dn = normalize ( cX ) ; vec3 dp = u_sun_direction ; float J = dot ( dn , dp ) ; float dq = dg ( J , - 0.01 ) * u_rayleigh_brightness * dp . z ; float dr = dg ( J - 0.5 , u_mie_distribution ) * u_mie_brightness * ( 1.0 - dp . z ) ; float ds = smoothstep ( 0.0 , 100.0 , dg ( J , 0.9995 ) ) * u_spot_brightness ; vec3 dt = vec3 ( 0.0 , 0.0 , cY ) ; float du = de ( dt , dn ) ; float dv = du / float ( c_ ) ; float dw = dl ( dt , dn , cY - 0.3 ) ; vec3 dx = vec3 ( 0.0 , 0.0 , 0.0 ) ; vec3 dy = vec3 ( 0.0 , 0.0 , 0.0 ) ; for ( int bQ = 0 ; bQ < c_ ; bQ ++ ) { float dz = dv * float ( bQ ) ; vec3 N = dt + dn * dz ; float dA = dl ( N , dp , cY - 0.2 ) ; float dB = de ( N , dp ) ; vec3 dC = dm ( dB , vec3 ( cZ ) , u_scatter_strength ) * dA ; dx += dm ( sqrt ( dz ) , u_sky_color * dC , u_rayleigh_strength ) ; dy += dm ( dz , dC , u_mie_strength ) ; } dx = dx * dw * pow ( du , u_rayleigh_collection_power ) / float ( c_ ) ; dy = ( dy * dw * pow ( du , u_mie_collection_power ) ) / float ( c_ ) ; vec3 aG = vec3 ( ds * dy + dr * dy + dq * dx ) ; aM ( aG ) ; GLSL_OUT_FRAG_COLOR = vec4 ( aG , 1.0 ) ; }".split(" ")}]}; a["shadow.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"SHADELESS",b:["0"]},{a:"var",c:"USE_VIEW_TSR_INVERSE",b:["0"]},{a:"var",c:"USE_MODEL_TSR_INVERSE",b:["0"]},{a:"var",c:"USE_VIEW_TSR",b:["0"]},{a:"var",c:"USE_MODEL_TSR",b:["0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"SKY_COLOR", b:["0"]},{a:"var",c:"USE_REFRACTION",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"CAMERA_TYPE",b:["CAM_TYPE_PERSP"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"NUM_LAMP_LIGHTS",b:["0"]},{a:"var",c:"TEXTURE_BLEND_TYPE",b:["TEXTURE_BLEND_TYPE_MIX"]},{a:"var",c:"NUM_VALUES",b:["0"]},{a:"var",c:"NUM_RGBS", b:["0"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"POISSON_DISK_NUM",b:["NO_SOFT_SHADOWS"]},{a:"var",c:"USE_DERIVATIVES_EXT",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_DERIVATIVES_EXT"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives",":","enable"]}]}}]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"include",o:"math.glslv"}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_time ; uniform float u_environment_energy ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"txt",b:["uniform","vec3", "u_camera_eye_frag",";"]},{a:"cond",d:[{a:"if",g:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr",i:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_direction",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_VIEW_TSR",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_VIEW_TSR_INVERSE"], h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_MODEL_TSR_INVERSE"],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT", "SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_plane_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_cube_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{a:"txt",b:"uniform float u_emit ; uniform float u_ambient ; uniform vec4 u_fresnel_params ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_mirror_factor",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_refl_plane",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_LAMP"], h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_lamp_light_positions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_directions [ NUM_LAMP_LIGHTS ] ; uniform vec3 u_lamp_light_color_intensities [ NUM_LAMP_LIGHTS ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_VALUE"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_node_values [ NUM_VALUES ] ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_RGB"],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_node_rgbs [ NUM_RGBS ] ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp", d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"uniform sampler2D u_colormap0 ; uniform float u_alpha_factor ;".split(" ")}]}}]},{a:"txt",b:["uniform","vec4","u_diffuse_color",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{a:"txt",b:"uniform vec4 u_csm_center_dists ; uniform PRECISION GLSL_SMPLR2D_SHDW u_shadow_map0 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_shadow_mask",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_refractmap",";"]},{a:"cond",d:[{a:"if",g:["USE_REFRACTION","USE_REFRACTION_CORRECTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform", "PRECISION","sampler2D","u_scene_depth",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_OBJECT_INFO"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_obj_info",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 h ; GLSL_IN vec3 j ;".split(" ")}, {a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","k",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","n",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","o",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","u",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:["GLSL_IN","vec4","v",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","USE_REFRACTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","m",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"], h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","B",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"cond",d:[{a:"if",g:["SHADELESS",{a:"logic_negative_expr",i:1},"NODES","ALPHA",{a:"logical_and_expr",i:2},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"include",o:"shadow.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"nodes.glslf"}]}}]},{a:"txt",b:["void","main", "(",")","{"]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NODES"],h:{a:"grp",d:[{a:"txt",b:"vec3 C = normalize ( u_camera_eye_frag - h ) ; vec3 D ; vec3 E ; vec3 F ; vec4 G ; float H ; I ( C , D , E , F , G , H ) ; float J = H ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"float J = ( GLSL_TEXTURE ( u_colormap0 , A ) ) . a ;".split(" ")},{a:"cond",d:[{a:"if",g:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"float L = u_alpha_factor * J ; L += ( 1.0 - step ( 0.0 , L ) ) ; J = mix ( L , 1.0 , u_diffuse_color . a ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float J = u_diffuse_color . a ;".split(" ")}]}}]}]}}]},{a:"txt",b:"if ( J < 0.5 ) discard ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","NO_SHADOWS",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_CASTING",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 ) ;".split(" ")}]}}, {a:"elif",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = dD ( i . z ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR . a *= clamp ( k . r , 0.999999999 , 1.0 ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:["}"]}]};a["shadow.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]}, {a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"var",c:"CALC_TBN",b:["0"]},{a:"var",c:"USE_INSTANCED_PARTCLS",b:["0"]},{a:"var",c:"NODES",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"SMAA_JITTER",b:["0"]},{a:"var",c:"MAC_OS_SHADOW_HACK",b:["0"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"AU_QUALIFIER",b:["GLSL_IN"]}, {a:"var",c:"BEND_CENTER_ONLY",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"HAIR_BILLBOARD",b:["0"]},{a:"var",c:"FRAMES_BLENDING",b:["0"]},{a:"var",c:"SHADOW_TEX_RES",b:["2048.0"]},{a:"var",c:"VERTEX_ANIM",b:["0"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"TEXTURE_COLOR",b:["0"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"VERTEX_ANIM_MIX_NORMALS_FACTOR",b:["u_va_frame_factor"]},{a:"var",c:"MAX_BONES",b:["0"]},{a:"var", c:"WIND_BEND",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"SKINNED",b:["0"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"var",c:"BILLBOARD_PRES_GLOB_ORIENTATION",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"include",o:"scale_texcoord.glslv"},{a:"txt",b:"GLSL_IN vec3 a_position ; GLSL_IN vec4 a_tbn_quat ;".split(" ")},{a:"cond", d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec4 a_part_ts ; GLSL_IN vec4 a_part_r ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_influence",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1},{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_bending_col_main",";"]},{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 a_bending_col_detail ; AU_QUALIFIER float au_detail_bending_amp ; AU_QUALIFIER float au_branch_bending_amp ; AU_QUALIFIER float au_detail_bending_freq ;".split(" ")}]}}]}]}}]},{a:"txt", b:"AU_QUALIFIER float au_wind_bending_amp ; AU_QUALIFIER float au_wind_bending_freq ;".split(" ")},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","a_position_next",";"]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP", "CAUSTICS","CALC_TBN_SPACE",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_tbn_quat_next",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logic_negative_expr",i:1},"TEXTURE_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT vec3 h ; GLSL_OUT vec3 j ;".split(" ")},{a:"cond",d:[{a:"if", g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","k",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","i",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","n",";"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","o",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","u",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:["GLSL_OUT","vec4","v",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","m",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"], h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","B",";"]}]}}]},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_model_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_subpixel_jitter",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ;".split(" ")},{a:"cond", d:[{a:"if",g:["DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_camera_eye",";"]}]}}]},{a:"cond",d:[{a:"if",g:["BILLBOARD","SHADOW_USAGE","SHADOW_CASTING",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat3","u_shadow_cast_billboard_view_tsr",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION sampler2D u_grass_map_depth ; uniform sampler2D u_grass_map_color ; uniform vec4 u_camera_quat ; uniform vec3 u_grass_map_dim ; uniform float u_grass_size ; uniform float u_scale_threshold ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsb [ MAX_BONES ] ; uniform vec4 u_transb [ MAX_BONES ] ; uniform vec4 u_arm_rel_trans ; uniform vec4 u_arm_rel_quat ;".split(" ")},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_quatsa [ MAX_BONES ] ; uniform vec4 u_transa [ MAX_BONES ] ; uniform float u_frame_factor ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD_JITTERED"], h:{a:"grp",d:[{a:"txt",b:"uniform float u_jitter_amp ; uniform float u_jitter_freq ;".split(" ")}]}}]},{a:"txt",b:"uniform vec3 u_wind ; uniform float u_time ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_va_frame_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logic_negative_expr",i:1},"TEXTURE_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec3","u_texture_scale",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_normal_offset",";"]},{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"uniform mat3 u_v_light_tsr [ NUM_CAST_LAMPS ] ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_v_light_ts [ NUM_CAST_LAMPS ] ; uniform vec4 u_v_light_r [ NUM_CAST_LAMPS ] ;".split(" ")}]}}]},{a:"txt",b:["uniform","mat4","u_p_light_matrix0",";"]},{a:"cond", d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix1",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix2",";"]}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","mat4","u_p_light_matrix3", ";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]},{a:"include",o:"dynamic_grass.glslv"},{a:"include",o:"shadow.glslv"},{a:"include",o:"skin.glslv"},{a:"include",o:"wind_bending.glslv"},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"nodes.glslv"}]}}]},{a:"txt",b:"void main ( ) { mat3 M = u_view_tsr ; vec3 N = a_position ;".split(" ")},{a:"cond",d:[{a:"if", g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:13}],h:{a:"grp",d:[{a:"txt",b:"vec3 bz = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ; vec3 P = bz ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 P = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA","CALC_TBN_SPACE",{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = O ( a_tbn_quat , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 R = sign ( a_tbn_quat [ 3 ] ) * cross ( P , Q ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Q = vec3 ( 0.0 ) ; vec3 R = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["VERTEX_ANIM"],h:{a:"grp",d:[{a:"txt",b:"N = mix ( N , a_position_next , u_va_frame_factor ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:"vec3 X = O ( a_tbn_quat_next , vec3 ( 0.0 , 1.0 , 0.0 ) ) ; P = mix ( P , X , VERTEX_ANIM_MIX_NORMALS_FACTOR ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 Y = O ( a_tbn_quat_next , vec3 ( 1.0 , 0.0 , 0.0 ) ) ; vec3 Z = sign ( a_tbn_quat_next [ 3 ] ) * cross ( X , Y ) ; Q = mix ( Q , Y , u_va_frame_factor ) ; R = mix ( R , Z , u_va_frame_factor ) ;".split(" ")}]}}]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"txt",b:"_(N,Q,R,P);".split("")}]}}]},{a:"cond",d:[{a:"if",g:["USE_INSTANCED_PARTCLS"],h:{a:"grp",d:[{a:"txt",b:"mat3 S = mat3 ( a_part_ts [ 0 ] , a_part_ts [ 1 ] , a_part_ts [ 2 ] , a_part_ts [ 3 ] , a_part_r [ 0 ] , a_part_r [ 1 ] , a_part_r [ 2 ] , a_part_r [ 3 ] , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["STATIC_BATCH",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"S = aO ( u_model_tsr , S ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp", d:[{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["mat3","S","=","u_model_tsr",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{a:"logical_or_expr",i:3},"USE_INSTANCED_PARTCLS",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec3","ac","=","au_center_pos",";"]}]}},{a:"elif",g:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ac = a_part_ts . xyz ; N = ad ( S , N ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 ac = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["CALC_TBN"],h:{a:"grp",d:[{a:"txt",b:"vec3 U = normalize ( T ( S , bz ) ) ; vec3 V = cross ( vec3 ( 0.0 , 0.0 , 1.0 ) , U ) ; vec3 W = cross ( U , V ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","W","=","a_shade_tangs",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 W = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if", g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"txt",b:"aj al = aP ( N , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , P , ac , u_grass_map_depth , u_grass_map_color , u_grass_map_dim , u_grass_size , u_camera_eye , u_camera_quat , M ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"vec3 ae = ad ( S , ac ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["HAIR_BILLBOARD",{a:"logic_negative_expr",i:1},"SHADOW_USAGE","SHADOW_CASTING",{a:"equal_expr",i:2},{a:"logical_and_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:["mat3","dE","=","u_shadow_cast_billboard_view_tsr",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["mat3","dE","=","M",";"]}]}}]},{a:"cond",d:[{a:"if",g:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2},"USE_INSTANCED_PARTCLS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = af ( u_camera_eye , ae , dE , S ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"S = ah ( u_camera_eye , ae , dE ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["WIND_BEND","BILLBOARD_JITTERED",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"S = ai ( u_wind , u_time , u_jitter_amp , u_jitter_freq , ae , S ) ;".split(" ")}]}}]},{a:"txt",b:"aj al = ak ( N - ac , ac , vec3 ( 0.0 ) , W , vec3 ( 0.0 ) , P , S ) ; al . ac = ae ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"aj al = ak ( N , ac , vec3 ( 0.0 ) , W , vec3 ( 0.0 ) , P , S ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if", g:["MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec3","an","=","bz",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 an = vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"am ( al . N , al . ac , an , mat4 ( 0.0 ) ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"h = al . N ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE", "WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{a:"logical_and_expr",i:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:12}],h:{a:"grp",d:[{a:"txt",b:"j = al . P ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"float ap = ( dot ( cross ( al . P , al . Q ) , al . R ) < 0.0 ) ? - 1.0 : 1.0 ; k = vec4 ( al . Q , ap ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"], h:{a:"grp",d:[{a:"txt",b:"B = al . aq ;".split(" ")}]}}]}]}}]},{a:"txt",b:"vec4 bC = vec4 ( ad ( M , al . N ) , 1.0 ) ; vec4 f = u_proj_matrix * bC ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_JITTER"],h:{a:"grp",d:[{a:"txt",b:"f . xy += u_subpixel_jitter * f . w ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NODES","ALPHA",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"USE_POSITION_CLIP",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"l = as ( f ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"m = - bC . z / u_view_max_depth ;".split(" ")}]}}]},{a:"txt",b:["I","(",")",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["TEXTURE_COLOR"],h:{a:"grp",d:[{a:"txt",b:"A = ao ( a_texcoord , u_texture_scale ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"bD ( al . N , al . P ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"NODES","ALPHA",{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["i","=","bC",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_CASTING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 dF = ( u_proj_matrix * vec4 ( M [ 0 ] , 1.0 ) ) . xy ; float dG = SHADOW_TEX_RES / 2.0 ; dF = floor ( dF * dG + 0.5 ) / dG - dF ; f . xy += dF ;".split(" ")}]}}]}, {a:"txt",b:["gl_Position","=","f",";","}"]}]};a["sky.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"WO_SKYTEX",b:["0"]},{a:"var",c:"WO_SKYREAL",b:["0"]},{a:"var",c:"WO_SKYBLEND",b:["0"]},{a:"var",c:"PROCEDURAL_SKYDOME",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"WO_SKYPAPER",b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"WATER_LEVEL",b:["0.0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"}, {a:"include",o:"color_util.glslf"},{a:"txt",b:["uniform","samplerCube","u_sky",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},"REFLECTION_PASS","REFL_PASS_NONE",{a:"equal_expr",i:2},{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_camera_eye_frag ; uniform vec4 u_underwater_fog_color_density ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WO_SKYBLEND","WO_SKYPAPER",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_sky_tex_fac ; uniform vec3 u_sky_tex_color ; uniform float u_sky_tex_dvar ; uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["WO_SKYBLEND","WO_SKYPAPER","WO_SKYTEX",{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"include",o:"sky_blending.glslf"}]}}]},{a:"txt",b:["GLSL_IN","vec3","cX",";"]},{a:"cond",d:[{a:"if",g:["PROCEDURAL_SKYDOME",{a:"logic_negative_expr",i:1},"WO_SKYTEX","WO_SKYBLEND",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]},{a:"txt",b:"GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec3 dH ; vec3 dn = normalize ( cX ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WO_SKYBLEND","WO_SKYPAPER",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["float","dI","=","0.0",";"]},{a:"cond",d:[{a:"if",g:["WO_SKYREAL"],h:{a:"grp",d:[{a:"txt",b:"dI = abs ( A . y ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dI = ( A . y + 1.0 ) * 0.5 ;".split(" ")}]}}]},{a:"txt",b:"vec3 dJ = u_horizon_color ; vec3 dK = u_zenith_color ;".split(" ")},{a:"cond",d:[{a:"if",g:["WO_SKYTEX"],h:{a:"grp",d:[{a:"txt",b:"vec3 dL = vec3 ( A , 0.0 ) ; vec4 dM = GLSL_TEXTURE_CUBE ( u_sky , dn ) ; bY ( dM . rgb ) ; dH = dN ( dJ , dK , dM , dI , dL ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"dH = mix ( dJ , dK , dI ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dH = GLSL_TEXTURE_CUBE ( u_sky , dn ) . rgb ; bY ( dH ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},"REFLECTION_PASS","REFL_PASS_NONE",{a:"equal_expr",i:2},{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"float dO = WATER_LEVEL - u_camera_eye_frag . z ; vec3 dP = vec3 ( 0.0 ) ; vec3 dQ = mix ( u_underwater_fog_color_density . rgb , dP , min ( - dn . z , 1.0 ) ) ; dQ *= min ( 1.0 - min ( 0.03 * dO , 0.8 ) , 1.0 ) ; float aB = clamp ( sign ( 0.01 * dO - dn . z ) , 0.0 , 1.0 ) ; dH = mix ( dH , dQ , aB ) ;".split(" ")}]}}]}, {a:"txt",b:"aM ( dH ) ; GLSL_OUT_FRAG_COLOR = vec4 ( dH , 1.0 ) ; }".split(" ")}]};a["sky.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PROCEDURAL_SKYDOME",b:["0"]},{a:"var",c:"WO_SKYTEX",b:["0"]},{a:"var",c:"WO_SKYBLEND",b:["0"]},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform mat4 u_sky_vp_inverse ; GLSL_IN vec3 a_position ; GLSL_OUT vec3 cX ;".split(" ")},{a:"cond",d:[{a:"if",g:["PROCEDURAL_SKYDOME",{a:"logic_negative_expr",i:1},"WO_SKYTEX","WO_SKYBLEND",{a:"logical_or_expr", i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]},{a:"txt",b:"void main ( ) { vec4 N = vec4 ( a_position . xy , 0.9999999 , 1.0 ) ; vec4 dn = u_sky_vp_inverse * N ; cX = dn . xyz ;".split(" ")},{a:"cond",d:[{a:"if",g:["PROCEDURAL_SKYDOME",{a:"logic_negative_expr",i:1},"WO_SKYTEX","WO_SKYBLEND",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"A = a_position . xy ;".split(" ")}]}}]},{a:"txt",b:["gl_Position","=","N",";","}"]}]}; a["skybox.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PROCEDURAL_SKYDOME",b:["0"]},{a:"var",c:"WO_SKYTEX",b:["0"]},{a:"var",c:"WO_SKYBLEND",b:["0"]},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform mat4 u_cube_view_matrix ; GLSL_IN vec3 a_position ; GLSL_OUT vec3 cX ;".split(" ")},{a:"cond",d:[{a:"if",g:["PROCEDURAL_SKYDOME",{a:"logic_negative_expr",i:1},"WO_SKYTEX","WO_SKYBLEND",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A", ";"]}]}}]},{a:"txt",b:"void main ( ) { vec4 N = vec4 ( a_position . xy , 0.999999 , 1.0 ) ; vec4 dn = u_cube_view_matrix * N ; cX = dn . xyz ;".split(" ")},{a:"cond",d:[{a:"if",g:["PROCEDURAL_SKYDOME",{a:"logic_negative_expr",i:1},"WO_SKYTEX","WO_SKYBLEND",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"A = a_position . xy ;".split(" ")}]}}]},{a:"txt",b:["gl_Position","=","N",";","}"]}]};a["tex_skybox.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"WO_SKYTEX", b:["0"]},{a:"var",c:"WO_SKYREAL",b:["0"]},{a:"var",c:"WO_SKYBLEND",b:["0"]},{a:"var",c:"WO_SKYPAPER",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; GLSL_IN vec3 cX ; GLSL_IN vec2 A ;".split(" ")},{a:"cond",d:[{a:"if",g:["WO_SKYTEX"],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}}]},{a:"txt",b:"uniform vec4 u_sky_tex_fac ; uniform vec3 u_sky_tex_color ; uniform float u_sky_tex_dvar ; uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WO_SKYTEX"],h:{a:"grp",d:[{a:"include",o:"sky_blending.glslf"}]}}]},{a:"txt",b:"void main ( ) { vec3 dn = normalize ( cX ) ; vec3 dH ; float dI = 0.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["WO_SKYPAPER"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WO_SKYTEX"],h:{a:"grp",d:[{a:"txt",b:"dH = GLSL_TEXTURE_CUBE ( u_sky_texture , dn ) . xyz ; bY ( dH ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dH = vec3 ( 1.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if", g:["WO_SKYBLEND"],h:{a:"grp",d:[{a:"txt",b:"float J = acos ( dn . z ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["WO_SKYREAL"],h:{a:"grp",d:[{a:"txt",b:"dI = abs ( J * INV_PI - 0.5 ) * 2.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dI = 1.0 - J * INV_PI ;".split(" ")}]}}]}]}}]},{a:"txt",b:"vec3 dJ = u_horizon_color ; vec3 dK = u_zenith_color ;".split(" ")},{a:"cond",d:[{a:"if",g:["WO_SKYTEX"],h:{a:"grp",d:[{a:"txt",b:"vec4 dM = GLSL_TEXTURE_CUBE ( u_sky_texture , dn ) ; bY ( dM . rgb ) ; vec3 dL = vec3 ( cX . xy , 0.0 ) ; dH = dN ( dJ , dK , dM , dI , dL ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WO_SKYBLEND"],h:{a:"grp",d:[{a:"txt",b:"dH = mix ( dJ , dK , dI ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["dH","=","dJ",";"]}]}}]}]}}]}]}}]},{a:"txt",b:"aM ( dH ) ; GLSL_OUT_FRAG_COLOR = vec4 ( dH , 1.0 ) ; }".split(" ")}]};a["water.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]},{a:"var",c:"NORM_FOAM0",b:["0"]},{a:"var",c:"NORM_FOAM1", b:["0"]},{a:"var",c:"NORM_FOAM2",b:["0"]},{a:"var",c:"NORM_FOAM3",b:["0"]},{a:"var",c:"DEBUG_WIREFRAME",b:["0"]},{a:"var",c:"NUM_NORMALMAPS",b:["0"]},{a:"var",c:"FOAM",b:["0"]},{a:"var",c:"SHORE_PARAMS",b:["0"]},{a:"var",c:"GENERATED_MESH",b:["0"]},{a:"var",c:"ABSORB",b:["6.0"]},{a:"var",c:"SSS_STRENGTH",b:["1.0"]},{a:"var",c:"SSS_WIDTH",b:["0.45"]},{a:"var",c:"ALPHA",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"WAVES_HEIGHT",b:["1.0"]},{a:"var",c:"WATER_LEVEL", b:["0.0"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"var",c:"SHORE_SMOOTHING",b:["0"]},{a:"var",c:"DYNAMIC",b:["0"]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"pack.glslf"},{a:"include", o:"color_util.glslf"},{a:"include",o:"math.glslv"},{a:"define",c:"REFL_BUMP",b:["0.002"]},{a:"txt",b:["uniform","float","u_time",";"]},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_sky_texture",";"]}]}},{a:"elif",g:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec3 u_horizon_color ; uniform vec3 u_zenith_color ;".split(" ")}]}}]},{a:"txt",b:["uniform", "float","u_environment_energy",";"]},{a:"cond",d:[{a:"if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_light_positions [ NUM_LIGHTS ] ; uniform vec3 u_light_directions [ NUM_LIGHTS ] ; uniform vec4 u_light_color_intensities [ NUM_LIGHTS ] ;".split(" ")}]}}]},{a:"txt",b:"uniform vec3 u_sun_intensity ; uniform vec3 u_sun_direction ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHORE_SMOOTHING","WATER_EFFECTS","DISABLE_FOG", {a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_cam_water_depth",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_color_density",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_underwater_fog_color_density",";"]}]}}]},{a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform", "mat4","u_cube_fog",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_normalmap0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_refractmap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D", "u_plane_reflection",";"]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING"],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_foam",";"]}]}}]},{a:"txt",b:"uniform vec4 u_diffuse_color ; uniform vec2 u_diffuse_params ; uniform float u_diffuse_intensity ; uniform float u_ambient ; uniform vec4 u_fresnel_params ; uniform vec3 u_specular_color ; uniform vec3 u_specular_params ; uniform vec3 u_shallow_water_col ; uniform vec3 u_shore_water_col ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform float u_water_norm_uv_velocity ; uniform vec2 u_normalmap0_scale ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",1,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_normalmap1_scale",";"]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",2,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_normalmap2_scale",";"]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",3,{a:"g_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:["uniform","vec2","u_normalmap3_scale",";"]}]}}]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_mirror_factor",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_reflect_factor",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_view_max_depth",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_water_shallow_col_fac ; uniform float u_water_shore_col_fac ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:"uniform float u_foam_factor ; uniform vec2 u_foam_uv_freq ; uniform vec2 u_foam_mag ; uniform vec2 u_foam_scale ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_refr_bump",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME"], h:{a:"grp",d:[{a:"txt",b:"const float au = 1.0 ; uniform vec3 u_wireframe_edge_color ;".split(" ")}]}}]},{a:"txt",b:"GLSL_IN vec3 bw ; GLSL_IN vec3 h ; GLSL_IN vec3 j ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2},"GENERATED_MESH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","A",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 k ; GLSL_IN vec3 dR ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2},"GENERATED_MESH","DYNAMIC",{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","dS",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","dT",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","l",";"]}]}}]},{a:"cond", d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","m",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","at",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","B",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{a:"include", o:"environment.glslf"},{a:"cond",d:[{a:"if",g:["REFRACTIVE","SHORE_SMOOTHING","USE_REFRACTION_CORRECTION",{a:"logical_and_expr",i:3}],h:{a:"grp",d:[{a:"include",o:"refraction.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"include",o:"fog.glslf"}]}}]},{a:"txt",b:"vec3 ed ( in vec2 dU , in vec3 P , in vec3 C , in vec3 dV , out float dW ) { dW = 0.0 ; vec3 dX = reflect ( - C , P ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 dY = dU . xy + P . xy * REFL_BUMP / m ; dW = u_reflect_factor ; vec3 dZ ; if ( u_cam_water_depth < 0.0 ) {".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_FOG",{a:"logic_negative_expr",i:1},"WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"dZ = u_underwater_fog_color_density . rgb ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dZ = u_diffuse_color . rgb ;".split(" ")}]}}]},{a:"txt",b:"} else { dZ = GLSL_TEXTURE ( u_plane_reflection , dY ) . rgb ; bY ( dZ ) ; }".split(" ")}]}}, {a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"dW = u_mirror_factor ; vec3 dZ = dV * GLSL_TEXTURE_CUBE ( u_mirrormap , dX ) . rgb ; bY ( dZ ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"dW = u_reflect_factor ; vec3 dZ = dV * vec3 ( 0.3 , 0.5 , 1.0 ) ; bY ( dZ ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 d_ = normalize ( dX + C ) ; float ea = 1.0 - dot ( C , d_ ) ; float eb = u_fresnel_params [ 3 ] ; float ec = u_fresnel_params [ 2 ] ; float r = eb + ( 1.0 - eb ) * pow ( ea , ec ) ; dW = min ( dW * r , 1.0 ) ; return dZ ; }".split(" ")}, {a:"include",o:"lighting_nodes.glslf"},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"mat3 bG = mat3 ( k , dR , j ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 P = normalize ( j ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DYNAMIC","FOAM",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt",b:"float bq = h . z - WATER_LEVEL ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float bq = h . z ;".split(" ")}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["GENERATED_MESH"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"vec2 bE = vec2 ( dS . x , - dS . y ) + 0.5 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec2 bE = vec2 ( h . x , - h . y ) + 0.5 ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec2","bE","=","A",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0, {a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ee = vec3 ( 0.0 ) ; vec3 ef = GLSL_TEXTURE ( u_normalmap0 , bE * u_normalmap0_scale + vec2 ( 0.3 , 0.5 ) * u_water_norm_uv_velocity * u_time ) . xyz - 0.5 ; ee += ef ;".split(" ")},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:"vec3 eg = vec3 ( 0.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["NORM_FOAM0"],h:{a:"grp",d:[{a:"txt",b:["eg","+=","ef",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",1,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"ef = GLSL_TEXTURE ( u_normalmap0 , bE * u_normalmap1_scale + vec2 ( - 0.3 , 0.7 ) * u_water_norm_uv_velocity * u_time ) . xyz - 0.5 ; ee += ef ;".split(" ")},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NORM_FOAM1"],h:{a:"grp",d:[{a:"txt",b:["eg","+=","ef",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",2,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"ef = GLSL_TEXTURE ( u_normalmap0 , bE * u_normalmap2_scale + vec2 ( 0.0 , 1.1 ) * u_water_norm_uv_velocity * u_time ) . xyz - 0.5 ; ee += ef ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NORM_FOAM2"],h:{a:"grp",d:[{a:"txt",b:["eg","+=","ef",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",3,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"ef = GLSL_TEXTURE ( u_normalmap0 , bE * u_normalmap3_scale + vec2 ( - 0.66 , - 0.3 ) * u_water_norm_uv_velocity * u_time ) . xyz - 0.5 ; ee += ef ;".split(" ")},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NORM_FOAM3"],h:{a:"grp",d:[{a:"txt", b:["eg","+=","ef",";"]}]}}]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:"vec3 eh = bG * eg ; if ( ! ei ( eh , vec3 ( 0.0 ) ) ) eh = normalize ( eh ) ; vec3 ej = mix ( P , eh , 0.2 ) ; ej = normalize ( ej ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"P = mix ( P , normalize ( bG * ee ) , 0.3 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"P = mix ( P , normalize ( bG * ee ) , 0.5 ) ;".split(" ")}]}}]}, {a:"txt",b:"P = normalize ( P ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 C = normalize ( bw ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 dU = l . xy / l . z ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:"vec2 ek = dU + P . xy * u_refr_bump / m ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING"],h:{a:"grp",d:[{a:"txt",b:"float J = u_diffuse_color . a ; vec4 cu = GLSL_TEXTURE_PROJ ( u_scene_depth , l ) ; float cw = cv ( cu ) ; float cx = max ( cw - m , 0.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:"float em = el ( cw , ek , dU ) ; float en = max ( em - m , 0.0 ) ; float eo = u_view_max_depth / ABSORB * en ; float ep = min ( J * eo , 1.0 ) ; J = min ( 15.0 * J * u_view_max_depth * cx , 1.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float cy = u_view_max_depth / ABSORB * cx ; if ( u_cam_water_depth > 0.0 ) J = min ( J * cy , 1.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float J = u_diffuse_color . a ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:["float","ep","=","J",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:"if ( u_cam_water_depth < 0.0 ) ep = 0.0 ; vec3 eq = GLSL_TEXTURE ( u_refractmap , ek ) . rgb ; bY ( eq ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"float er = pow ( min ( dT . b / u_water_shallow_col_fac , 1.0 ) , 0.3 ) ; vec3 bZ = mix ( u_shallow_water_col , u_diffuse_color . rgb , er ) ; er = pow ( min ( dT . b / u_water_shore_col_fac , 1.0 ) , 0.3 ) ; bZ = mix ( u_shore_water_col , bZ , er ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 bZ = u_diffuse_color . rgb ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING"],h:{a:"grp",d:[{a:"txt",b:"float es = max ( 1.0 - u_view_max_depth * cx , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float es = 1.0 - J ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"float et = max ( bq / WAVES_HEIGHT + 0.1 , 0.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"], h:{a:"grp",d:[{a:"txt",b:"vec3 eu = normalize ( vec3 ( dT . rg , 0.0 ) ) ; vec3 ev = normalize ( mix ( UP_VECTOR , eu , 0.8 ) ) ; float ew = 1.25 * max ( dot ( ej , ev ) - 0.2 , 0.0 ) ; ew += max ( dot ( ej , - UP_VECTOR ) , 0.0 ) ; es += ew * ( 1.0 - dT . b ) ; et *= ( 1.0 - 0.95 * pow ( dT . b , 0.1 ) ) ;".split(" ")}]}}]},{a:"txt",b:"es += et ; es = min ( u_foam_factor * es , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:"vec4 ex = GLSL_TEXTURE ( u_foam , u_foam_mag * sin ( u_foam_uv_freq * u_time ) + bE * u_foam_scale ) ;".split(" ")}]}}]}, {a:"txt",b:"float cl = u_specular_params [ 0 ] ; vec2 cm = vec2 ( u_specular_params [ 1 ] , u_specular_params [ 2 ] ) ; vec3 cn = cl * u_specular_color ; vec3 cf = u_environment_energy * ce ( P ) ; vec3 cg = u_ambient * cf ; vec3 dV = cg + u_sun_intensity ; float dW ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 dZ = ed ( dU , P , C , dV , dW ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 dZ = ed ( vec2 ( 0.0 ) , P , C , dV , dW ) ;".split(" ")}]}}]}, {a:"txt",b:"vec3 cd = u_diffuse_intensity * bZ ; vec3 aG ; vec3 co ; cp ( vec3 ( 0.0 ) , vec3 ( 0.0 ) , cd , cn , h , P , C , cm , u_diffuse_params , vec4 ( 1.0 ) , 0.0 , vec4 ( 0.0 ) , aG , co ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"float ey = max ( dot ( u_sun_direction , - j ) + SSS_WIDTH , 0.0 ) * max ( dot ( - C , u_sun_direction ) - 0.5 , 0.0 ) * max ( 0.0 , length ( u_sun_intensity ) - 0.1 ) ; ey = clamp ( SSS_STRENGTH * ey , 0.0 , 1.0 ) ; aG = mix ( aG , u_shallow_water_col , ey ) ; aG = mix ( aG , u_shore_water_col , ey ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"txt",b:"aG = mix ( eq , aG , ep ) ;".split(" ")}]}}]},{a:"txt",b:"aG = mix ( aG , dZ , dW ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:"float ez = mix ( ex . g , ex . r , max ( 4.0 * ( es - 0.75 ) , 0.0 ) ) ; ez = mix ( ex . b , ez , max ( 2.0 * es - 1.0 , 0.0 ) ) ; ez = mix ( 0.0 , ez , es ) ; aG = mix ( aG , dV , ez ) ;".split(" ")}]}}]},{a:"txt",b:["aG","+=","co",";"]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG", {a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float eA = m * u_view_max_depth ; float eB = 1.0 ; if ( u_cam_water_depth > 1.0 ) eB = 2.0 ; bu ( aG , eA , C , eB ) ;".split(" ")}]}}]},{a:"txt",b:["aM","(","aG",")",";"]},{a:"cond",d:[{a:"if",g:["REFRACTIVE",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"J = max ( J , co . r ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["FOAM"],h:{a:"grp",d:[{a:"txt",b:["J","+=","ez",";"]}]}}]}]}},{a:"elif",g:["SHORE_SMOOTHING", {a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:["J","=","1.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["ALPHA"],h:{a:"grp",d:[{a:"txt",b:"aN ( aG , J ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME",1,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["GLSL1"],h:{a:"grp",d:[{a:"extension",b:["GL_OES_standard_derivatives",":","enable"]}]}}]},{a:"txt",b:"vec3 aD = fwidth ( at ) ; vec3 aE = smoothstep ( vec3 ( 0.0 ) , aD * au , at ) ; float eC = min ( min ( aE . x , aE . y ) , aE . z ) ; eC = clamp ( eC , 0.0 , 1.0 ) ; aG = mix ( u_wireframe_edge_color , aG , eC ) ; J = mix ( 1.0 , J , eC ) ;".split(" ")}]}}, {a:"elif",g:["DEBUG_WIREFRAME",2,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 aC = sign ( at - vec3 ( 0.02 * au ) ) ; float eC = 1.0 ; if ( aC . x < 0.0 || aC . y < 0.0 || aC . z < 0.0 ) eC = 0.0 ; aG = mix ( u_wireframe_edge_color , aG , eC ) ; J = mix ( 1.0 , J , eC ) ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG , J ) ; }".split(" ")}]};a["water.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"USE_TBN_SHADING",b:["0"]}, {a:"var",c:"DEBUG_WIREFRAME",b:["0"]},{a:"var",c:"NUM_NORMALMAPS",b:["0"]},{a:"var",c:"FOAM",b:["0"]},{a:"var",c:"SHORE_PARAMS",b:["0"]},{a:"var",c:"MAX_SHORE_DIST",b:["100.0"]},{a:"var",c:"SHORE_MAP_SIZE_X",b:["1.0"]},{a:"var",c:"SHORE_MAP_SIZE_Y",b:["1.0"]},{a:"var",c:"SHORE_MAP_CENTER_X",b:["0.0"]},{a:"var",c:"SHORE_MAP_CENTER_Y",b:["0.0"]},{a:"var",c:"GENERATED_MESH",b:["0"]},{a:"var",c:"DST_NOISE_SCALE_0",b:["0.05"]},{a:"var",c:"DST_NOISE_SCALE_1",b:["0.03"]},{a:"var",c:"DST_NOISE_FREQ_0",b:["1.3"]}, {a:"var",c:"DST_NOISE_FREQ_1",b:["1.0"]},{a:"var",c:"DIR_MIN_SHR_FAC",b:["0.4"]},{a:"var",c:"DIR_FREQ",b:["0.5"]},{a:"var",c:"DIR_NOISE_SCALE",b:["0.05"]},{a:"var",c:"DIR_NOISE_FREQ",b:["0.07"]},{a:"var",c:"DIR_MIN_NOISE_FAC",b:["0.5"]},{a:"var",c:"DST_MIN_FAC",b:["0.2"]},{a:"var",c:"WAVES_HOR_FAC",b:["5.0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"var",c:"WAVES_HEIGHT",b:["1.0"]},{a:"var",c:"WAVES_LENGTH",b:["10.0"]},{a:"var",c:"WATER_LEVEL",b:["0.0"]},{a:"var",c:"SHORE_SMOOTHING",b:["0"]},{a:"var", c:"DYNAMIC",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"include",o:"procedural.glslf"},{a:"txt",b:["GLSL_IN","vec3","a_position",";"]},{a:"cond",d:[{a:"if",g:["GENERATED_MESH",{a:"logic_negative_expr",i:1},"DYNAMIC",{a:"logic_negative_expr",i:1},"NUM_NORMALMAPS",0,{a:"g_expr",i:2},{a:"logical_or_expr", i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","a_tbn_quat",";"]}]}}]},{a:"cond",d:[{a:"if",g:["GENERATED_MESH",{a:"logic_negative_expr",i:1},"NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME"],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","float","a_polyindex",";"]}]}}]},{a:"txt",b:"GLSL_OUT vec3 bw ; GLSL_OUT vec3 h ; GLSL_OUT vec3 j ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2},"GENERATED_MESH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","A",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT vec3 k ; GLSL_OUT vec3 dR ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2},"GENERATED_MESH","DYNAMIC",{a:"logical_and_expr", i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","dS",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","dT",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","l",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE","DISABLE_FOG",{a:"logic_negative_expr", i:1},{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","float","m",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","at",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_TBN_SHADING"],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec3","B",";"]}]}}]},{a:"cond",d:[{a:"if",g:["STATIC_BATCH"],h:{a:"grp",d:[{a:"txt",b:"const mat3 u_model_tsr = mat3 ( 0.0 , 0.0 , 0.0 , 1.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["uniform", "mat3","u_model_tsr",";"]}]}}]},{a:"txt",b:"uniform mat3 u_view_tsr ; uniform mat4 u_proj_matrix ; uniform vec3 u_camera_eye ;".split(" ")},{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"uniform PRECISION float u_time ; uniform vec3 u_wind ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:["uniform","PRECISION","float", "u_view_max_depth",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_shore_dist_map",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"vec3 eJ ( in vec2 eD ) { vec2 eE = 0.5 + vec2 ( ( eD . x - SHORE_MAP_CENTER_X ) / SHORE_MAP_SIZE_X , ( eD . y - SHORE_MAP_CENTER_Y ) / SHORE_MAP_SIZE_Y ) ; vec4 eF = GLSL_TEXTURE ( u_shore_dist_map , eE ) ; const vec2 eG = vec2 ( 1.0 / 255.0 , 1.0 ) ; float eH = dot ( eF . ba , eG ) ; vec2 eI = normalize ( eF . rg * 2.0 - 1.0 ) ; return vec3 ( eI , eH ) ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"define",c:"SMALL_WAVES_FAC",b:["0.2"]},{a:"txt",b:"void eY ( inout vec3 eD , in float eK , in vec3 eF ) { float eM = eL ( DST_NOISE_SCALE_0 * ( eD . xy + DST_NOISE_FREQ_0 * eK ) ) * eL ( DST_NOISE_SCALE_1 * ( eD . yx - DST_NOISE_FREQ_1 * eK ) ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"float eN = WAVES_LENGTH / MAX_SHORE_DIST / M_PI ; float eH = eF . b ; float eO = sqrt ( eH ) ; float eP = max ( eH , DIR_MIN_SHR_FAC ) * sin ( eO / eN + DIR_FREQ * eK ) ; float eQ = max ( eL ( DIR_NOISE_SCALE * ( eD . xy + DIR_NOISE_FREQ * eK ) ) , DIR_MIN_NOISE_FAC ) ; eP *= eQ ; float eR = WAVES_HEIGHT * mix ( eP , eM , max ( eO , DST_MIN_FAC ) ) ; vec2 eI = eF . rg ; float eS = WAVES_HOR_FAC * eP * max ( MAX_SHORE_DIST / 35.0 * ( 0.05 - eH ) , 0.0 ) ; vec2 eT = eS * eI ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"float eR = WAVES_HEIGHT * eM ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["GENERATED_MESH"],h:{a:"grp",d:[{a:"txt",b:"vec2 eU = 1.0 * ( eD . xy - 0.3 * eK ) ; vec2 eV = 0.7 * ( eD . yx + 0.07 * eK ) ; float eX = eW ( eU ) . x + eW ( eV ) . x - 1.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"eD . xy += eT ; eX *= eH ;".split(" ")}]}}]},{a:"txt",b:"eR += SMALL_WAVES_FAC * eX ;".split(" ")}]}}]},{a:"txt",b:"eD . z += eR ; }".split(" ")}]}}]}, {a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["DEBUG_WIREFRAME"],h:{a:"grp",d:[{a:"txt",b:"if ( a_polyindex == 0.0 ) at = vec3 ( 1.0 , 0.0 , 0.0 ) ; else if ( a_polyindex == 1.0 ) at = vec3 ( 0.0 , 0.0 , 1.0 ) ; else at = vec3 ( 0.0 , 1.0 , 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["GENERATED_MESH"],h:{a:"grp",d:[{a:"txt",b:"vec3 N = a_position ; float eZ = abs ( N . z ) ; vec2 e_ = u_camera_eye . xy - mod ( u_camera_eye . xy , eZ ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"], h:{a:"grp",d:[{a:"txt",b:"N . z = WATER_LEVEL ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"N . z = 0.0 ;".split(" ")}]}}]},{a:"txt",b:"N . xy += e_ ; vec3 bA = N ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2},"FOAM",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["A","=","a_texcoord",";"]}]}}]},{a:"txt",b:"aj al = ak ( a_position , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , u_model_tsr ) ; vec3 bA = al . N ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"dT = eJ ( bA . xy ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DYNAMIC"],h:{a:"grp",d:[{a:"txt",b:"float fa = length ( u_wind ) ; if ( fa == 0.0 ) fa = 1.0 ; float fb = u_time ; fb *= fa ;".split(" ")},{a:"cond",d:[{a:"if",g:["GENERATED_MESH"],h:{a:"grp",d:[{a:"txt",b:"float fc = eZ ; vec3 fd = bA + vec3 ( fc , 0.0 , 0.0 ) ; vec3 fe = bA + vec3 ( 0.0 , fc , 0.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr", i:2},"FOAM",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["dS","=","bA",";"]}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 fd = bA + vec3 ( 0.05 , 0.0 , 0.0 ) ; vec3 fe = bA + vec3 ( 0.0 , 0.05 , 0.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SHORE_PARAMS"],h:{a:"grp",d:[{a:"txt",b:"vec3 ff = eJ ( fd . xy ) ; vec3 fg = eJ ( fe . xy ) ; eY ( fd , fb , ff ) ; eY ( fe , fb , fg ) ; eY ( bA , fb , dT ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"eY ( fd , fb , vec3 ( 0.0 ) ) ; eY ( fe , fb , vec3 ( 0.0 ) ) ; eY ( bA , fb , vec3 ( 0.0 ) ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["GENERATED_MESH","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( a_position . z < 0.0 ) { bA . z = WATER_LEVEL - 1.0 ; fd . z = bA . z ; fe . z = bA . z ; }".split(" ")}]}}]},{a:"txt",b:"vec3 fh = normalize ( fd - bA ) ; vec3 Q = normalize ( fe - bA ) ; j = normalize ( cross ( fh , Q ) ) ; float fi = dot ( j , UP_VECTOR ) ; float aB = clamp ( 0.8 - fi , 0.0 , 1.0 ) ; j = mix ( j , UP_VECTOR , aB ) ;".split(" ")}]}},{a:"elif",g:["GENERATED_MESH",{a:"logic_negative_expr", i:1}],h:{a:"grp",d:[{a:"txt",b:"j = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"j = vec3 ( 0.0 , 0.0 , 1.0 ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_NORMALMAPS",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DYNAMIC",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["GENERATED_MESH",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = O ( a_tbn_quat , vec3 ( 1.0 , 0.0 , 0.0 ) ) ;".split(" ")}]}}, {a:"elif",g:["DYNAMIC",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec3 Q = vec3 ( 1.0 , 0.0 , 0.0 ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:"k = Q ; dR = cross ( j , k ) ;".split(" ")}]}}]},{a:"txt",b:"h = bA ; bw = u_camera_eye - bA ; vec4 bC = vec4 ( ad ( u_view_tsr , bA ) , 1.0 ) ; vec4 f = u_proj_matrix * bC ;".split(" ")},{a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"float fj = f . x ; float fk = f . y ; float fl = f . w ; l . x = ( fj + fl ) / 2.0 ; l . y = ( fk + fl ) / 2.0 ; l . z = fl ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFRACTIVE","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_or_expr",i:4}],h:{a:"grp",d:[{a:"txt",b:"m = - bC . z / u_view_max_depth ;".split(" ")}]}}]},{a:"txt",b:["gl_Position","=","f",";","}"]}]};a["postprocessing/antialiasing.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"AA_METHOD",b:["AA_METHOD_FXAA_LIGHT"]},{a:"var",c:"AA_QUALITY",b:["AA_QUALITY_LOW"]},{a:"include",o:"precision_statement.glslf"}, {a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform sampler2D u_color ; uniform vec2 u_texel_size ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ;".split(" ")},{a:"cond",d:[{a:"if",g:["AA_METHOD","AA_METHOD_FXAA_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_REDUCE_MIN",b:["(","1.0","/","128.0",")"]},{a:"define",c:"FXAA_REDUCE_MUL",b:["(","1.0","/","8.0",")"]},{a:"define",c:"FXAA_SPAN_MAX",b:["8.0"]},{a:"txt",b:"vec4 fn ( float x , float y ) { vec2 fm = A + vec2 ( x , y ) * u_texel_size ; return GLSL_TEXTURE ( u_color , fm ) ; } vec4 fG ( ) { vec4 fo = fn ( - 1.0 , - 1.0 ) ; vec4 fp = fn ( 1.0 , - 1.0 ) ; vec4 fq = fn ( - 1.0 , 1.0 ) ; vec4 fr = fn ( 1.0 , 1.0 ) ; vec4 fs = fn ( 0.0 , 0.0 ) ; float fu = ft ( fs ) ; float fv = ft ( fo ) ; float fw = ft ( fp ) ; float fx = ft ( fq ) ; float fy = ft ( fr ) ; float fz = min ( fu , min ( min ( fv , fw ) , min ( fx , fy ) ) ) ; float fA = max ( fu , max ( max ( fv , fw ) , max ( fx , fy ) ) ) ; vec2 be ; be . x = - ( ( fv + fw ) - ( fx + fy ) ) ; be . y = ( ( fv + fx ) - ( fw + fy ) ) ; float fB = max ( ( fv + fw + fx + fy ) * ( 0.25 * FXAA_REDUCE_MUL ) , FXAA_REDUCE_MIN ) ; float fC = 1.0 / ( min ( abs ( be . x ) , abs ( be . y ) ) + fB ) ; be = min ( vec2 ( FXAA_SPAN_MAX , FXAA_SPAN_MAX ) , max ( vec2 ( - FXAA_SPAN_MAX , - FXAA_SPAN_MAX ) , be * fC ) ) * u_texel_size ; vec4 fD = 0.5 * ( GLSL_TEXTURE ( u_color , A + be * ( 1.0 / 3.0 - 0.5 ) ) + GLSL_TEXTURE ( u_color , A + be * ( 2.0 / 3.0 - 0.5 ) ) ) ; vec4 fE = fD * 0.5 + 0.25 * ( GLSL_TEXTURE ( u_color , A + be * - 0.5 ) + GLSL_TEXTURE ( u_color , A + be * 0.5 ) ) ; float fF = ft ( fE ) ; if ( ( fF < fz ) || ( fF > fA ) ) return fD ; else return fE ; }".split(" ")}]}}, {a:"elif",g:["AA_METHOD","AA_METHOD_FXAA_QUALITY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_GREEN_AS_LUMA",b:["1"]},{a:"include",o:"fxaa.glslf"},{a:"cond",d:[{a:"if",g:["AA_QUALITY","AA_QUALITY_HIGH",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PRESET",b:["39"]},{a:"define",c:"FXAA_QUALITY_SUBPIX",b:["1.00"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD",b:["0.063"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD_MIN",b:["0.0312"]}]}},{a:"elif",g:["AA_QUALITY","AA_QUALITY_MEDIUM", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PRESET",b:["20"]},{a:"define",c:"FXAA_QUALITY_SUBPIX",b:["0.65"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD",b:["0.166"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD_MIN",b:["0.0625"]}]}},{a:"elif",g:["AA_QUALITY","AA_QUALITY_LOW",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PRESET",b:["12"]},{a:"define",c:"FXAA_QUALITY_SUBPIX",b:["0.50"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD",b:["0.166"]},{a:"define",c:"FXAA_QUALITY_EDGE_THRESHOLD_MIN", b:["0.0833"]}]}}]}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["AA_METHOD","AA_METHOD_FXAA_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = fG ( ) ;".split(" ")}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_FXAA_QUALITY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 fH = u_texel_size ; GLSL_OUT_FRAG_COLOR = fI ( A , u_color , fH , FXAA_QUALITY_SUBPIX , FXAA_QUALITY_EDGE_THRESHOLD , FXAA_QUALITY_EDGE_THRESHOLD_MIN ) ;".split(" ")}]}}]},{a:"txt", b:["}"]}]};a["postprocessing/bloom_blur.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec2 u_texel_size ; uniform sampler2D u_color ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec2 eY = vec2 ( 0.0 , 0.0 ) ; vec2 cx = u_texel_size ; vec4 fJ = GLSL_TEXTURE ( u_color , A ) ; GLSL_OUT_FRAG_COLOR = fJ * 0.0875447373698 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0858112354248 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0858112354248 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0808139781061 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0808139781061 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0731235112908 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0731235112908 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0635705267419 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0635705267419 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0530985673112 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0530985673112 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0426125984122 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0426125984122 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0328565115809 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0328565115809 ; eY += cx ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A + eY ) * 0.0243407024472 ; GLSL_OUT_FRAG_COLOR += GLSL_TEXTURE ( u_color , A - eY ) * 0.0243407024472 ; GLSL_OUT_FRAG_COLOR = max ( 0.7 * fJ , GLSL_OUT_FRAG_COLOR ) ; }".split(" ")}]}; a["postprocessing/bloom_combine.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_main ; uniform sampler2D u_bloom ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 fK = GLSL_TEXTURE ( u_main , A ) ; vec4 fL = GLSL_TEXTURE ( u_bloom , A ) ; GLSL_OUT_FRAG_COLOR = fK + fL ; }".split(" ")}]};a["postprocessing/coc.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var", c:"PRECISION",b:["highp"]},{a:"var",c:"COC_TYPE",b:["COC_ALL"]},{a:"txt",b:["precision","PRECISION","sampler2D",";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"depth_fetch.glslf"},{a:"txt",b:"uniform sampler2D u_color ; uniform sampler2D u_depth ;".split(" ")},{a:"cond",d:[{a:"if",g:["COC_TYPE","COC_COMBINE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_coc_fg",";"]}]}}]},{a:"txt",b:"uniform float u_view_max_depth ; uniform float u_dof_dist ; uniform float u_dof_front_start ; uniform float u_dof_front_end ; uniform float u_dof_rear_start ; uniform float u_dof_rear_end ; uniform vec2 u_camera_range ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 aG = GLSL_TEXTURE ( u_color , A ) ; if ( u_dof_dist > 0.0 ) { float fN = fM ( u_depth , A , u_camera_range ) ; fN *= u_view_max_depth ; float fO = 0.0 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["COC_TYPE","COC_COMBINE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 fP = GLSL_TEXTURE ( u_coc_fg , A ) ; float fQ = fP . a ;".split(" ")}]}}]},{a:"txt",b:"if ( fN < u_dof_dist ) fO = ( u_dof_dist - fN - u_dof_front_start ) / ( u_dof_front_end - u_dof_front_start ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["COC_TYPE","COC_FOREGROUND",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"else fO = ( fN - u_dof_dist - u_dof_rear_start ) / ( u_dof_rear_end - u_dof_rear_start ) ;".split(" ")}]}}]}, {a:"txt",b:"fO = clamp ( fO , 0.0 , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["COC_TYPE","COC_COMBINE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"fO = max ( fO , fQ ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COC_TYPE","COC_FOREGROUND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( fO ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( aG . xyz * fO , fO ) ;".split(" ")}]}}]},{a:"txt",b:"} else GLSL_OUT_FRAG_COLOR = vec4 ( aG . xyz , 0.0 ) ; }".split(" ")}]}; a["postprocessing/compositing.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform sampler2D u_color ; uniform float u_brightness ; uniform float u_contrast ; uniform float u_exposure ; uniform float u_saturation ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 fR = GLSL_TEXTURE ( u_color , A ) ; vec3 aG = fR . rgb ; if ( u_brightness < 0.0 ) aG = aG * ( 1.0 + u_brightness ) ; else aG = aG + ( ( 1.0 - aG ) * u_brightness ) ; aG = ( aG - 0.5 ) * ( tan ( ( u_contrast + 1.0 ) * M_PI_4 ) ) + 0.5 ; aG *= u_exposure ; float cZ = ft ( vec4 ( aG , 0.0 ) ) ; aG = mix ( vec3 ( cZ ) , aG , u_saturation ) ; GLSL_OUT_FRAG_COLOR = vec4 ( aG , fR . a ) ; }".split(" ")}]}; a["postprocessing/depth_pack.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"txt",b:["precision","PRECISION","sampler2D",";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"pack.glslf"},{a:"include",o:"depth_fetch.glslf"},{a:"txt",b:"uniform sampler2D u_depth ; uniform vec2 u_camera_range ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { GLSL_OUT_FRAG_COLOR = fS ( clamp ( fM ( u_depth , A , u_camera_range ) , 0.0 , 0.999999 ) ) ; }".split(" ")}]}; a["postprocessing/dof.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"DOF_TYPE",b:["DOF_SIMPLE"]},{a:"txt",b:["precision","PRECISION","sampler2D",";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["DOF_TYPE","DOF_BOKEH",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform highp sampler2D u_sharp ; uniform highp sampler2D u_blurred1 ; uniform highp sampler2D u_blurred2 ; uniform float u_dof_dist ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"include",o:"depth_fetch.glslf"},{a:"txt",b:"uniform sampler2D u_sharp ; uniform sampler2D u_blurred ; uniform sampler2D u_depth ; uniform float u_view_max_depth ; uniform float u_dof_dist ; uniform float u_dof_front_end ; uniform float u_dof_rear_end ; uniform vec2 u_camera_range ;".split(" ")}]}}]},{a:"txt",b:"GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 fT = GLSL_TEXTURE ( u_sharp , A ) ; if ( u_dof_dist > 0.0 ) {".split(" ")},{a:"cond",d:[{a:"if", g:["DOF_TYPE","DOF_BOKEH",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float fO ; vec4 fU = GLSL_TEXTURE ( u_blurred1 , A ) ; vec4 fV = GLSL_TEXTURE ( u_blurred2 , A ) ; vec4 fW = min ( fU . rgba , fV . rgba ) ; fO = fW . a ; if ( fO > 0.0 ) { fW = vec4 ( fW . rgb / fO , fT . a ) ; GLSL_OUT_FRAG_COLOR = mix ( fT , fW , min ( fO * 5.0 , 1.0 ) ) ; } else GLSL_OUT_FRAG_COLOR = fT ;".split(" ")}]}},{a:"elif",g:["DOF_TYPE","DOF_SIMPLE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float fN = fM ( u_depth , A , u_camera_range ) ; fN *= u_view_max_depth ; float fX ; if ( fN < u_dof_dist ) fX = ( u_dof_dist - fN ) / u_dof_front_end ; else fX = ( fN - u_dof_dist ) / u_dof_rear_end ; fX = clamp ( fX , 0.0 , 1.0 ) ; vec4 fY = GLSL_TEXTURE ( u_blurred , A ) ; GLSL_OUT_FRAG_COLOR = mix ( fT , fY , fX ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT_FRAG_COLOR","=","fT",";"]}]}}]},{a:"txt",b:"} else GLSL_OUT_FRAG_COLOR = fT ; }".split(" ")}]};a["postprocessing/glow.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_src_color ; uniform sampler2D u_glow_mask_small ; uniform sampler2D u_glow_mask_large ; uniform float u_glow_mask_small_coeff ; uniform float u_glow_mask_large_coeff ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 fZ = GLSL_TEXTURE ( u_src_color , A ) ; vec4 f_ = GLSL_TEXTURE ( u_glow_mask_small , A ) ; vec4 gc = GLSL_TEXTURE ( u_glow_mask_large , A ) ; GLSL_OUT_FRAG_COLOR = fZ ; if ( gc . a != 0.0 ) { float gd = u_glow_mask_large_coeff * gc . a ; gd = clamp ( gd , 0.0 , 1.0 ) ; GLSL_OUT_FRAG_COLOR . rgb = mix ( GLSL_OUT_FRAG_COLOR . rgb , gc . rgb / gc . a , gd ) ; GLSL_OUT_FRAG_COLOR . a = mix ( GLSL_OUT_FRAG_COLOR . a , 1.0 , gd ) ; } if ( f_ . a != 0.0 ) { float ge = u_glow_mask_small_coeff * f_ . a ; ge = clamp ( ge , 0.0 , 1.0 ) ; GLSL_OUT_FRAG_COLOR . rgb = mix ( GLSL_OUT_FRAG_COLOR . rgb , f_ . rgb / f_ . a , ge ) ; GLSL_OUT_FRAG_COLOR . a = mix ( GLSL_OUT_FRAG_COLOR . a , 1.0 , ge ) ; } }".split(" ")}]}; a["postprocessing/god_rays.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"DEPTH_RGBA",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"STEPS_PER_PASS",b:["10.0"]},{a:"txt",b:["precision","PRECISION","sampler2D",";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"depth_fetch.glslf"},{a:"include",o:"procedural.glslf"},{a:"include",o:"pack.glslf"},{a:"txt",b:"uniform float u_time ; uniform float u_radial_blur_step ; uniform sampler2D u_input ;".split(" ")}, {a:"cond",d:[{a:"if",g:["DEPTH_RGBA"],h:{a:"grp",d:[{a:"txt",b:["uniform","vec2","u_camera_range",";"]}]}}]},{a:"cond",d:[{a:"if",g:["DEPTH_RGBA","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN float gf ; GLSL_IN vec2 gh ;".split(" ")}]}}]},{a:"txt",b:"GLSL_IN vec2 A ; GLSL_IN vec4 gi ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec2 cx = ( gi . xy - A ) ; float aC = length ( cx ) ; vec2 gj = u_radial_blur_step * cx / aC ; float gk = aC / u_radial_blur_step ; gj *= min ( gk , STEPS_PER_PASS ) / STEPS_PER_PASS ; gk = max ( gk , STEPS_PER_PASS ) ; vec2 gl = A ; float gm = 0.0 ; const int gn = int ( STEPS_PER_PASS ) ; int go = int ( gk + 0.5 ) ; for ( int bQ = 0 ; bQ < gn ; bQ += 1 ) { if ( bQ <= go ) {".split(" ")}, {a:"cond",d:[{a:"if",g:["DEPTH_RGBA"],h:{a:"grp",d:[{a:"txt",b:"float fN = fM ( u_input , gl , u_camera_range ) ; gm += max ( ( 1.0 - pow ( aC , 0.3 ) ) * step ( 0.9 , fN ) , 0.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 gp = GLSL_TEXTURE ( u_input , gl ) ; gm += cv ( gp ) ;".split(" ")}]}}]},{a:"txt",b:"} gl += gj ; }".split(" ")},{a:"cond",d:[{a:"if",g:["DEPTH_RGBA","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 bE = A + gh ; float gq = eW ( vec2 ( 2.5 * ( bE . x ) , 2.5 * ( bE . y ) + 1.0 * u_time ) ) . x + 0.75 * eW ( vec2 ( 5.0 * ( bE . x ) - 0.66 * u_time , 5.0 * ( bE . y ) + 0.66 * u_time ) ) . x + 0.5 * eL ( vec2 ( 7.5 * ( bE . x ) + 0.33 * u_time , 7.5 * ( bE . y ) - 0.33 * u_time ) ) ; gq *= clamp ( 1.2 - sqrt ( 0.2 * aC ) , 0.0 , 1.0 ) * gf ; gm = max ( gq , gm ) ;".split(" ")}]}}]}, {a:"txt",b:"GLSL_OUT_FRAG_COLOR = fS ( gm / STEPS_PER_PASS ) ; }".split(" ")}]};a["postprocessing/god_rays.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"DEPTH_RGBA",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"math.glslv"},{a:"txt",b:"uniform mat4 u_view_proj_matrix ; uniform vec3 u_sun_direction ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEPTH_RGBA","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform vec4 u_camera_quat ; uniform float u_cam_water_depth ;".split(" ")}]}}]}, {a:"txt",b:["GLSL_IN","vec2","a_bb_vertex",";"]},{a:"cond",d:[{a:"if",g:["DEPTH_RGBA","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT float gf ; GLSL_OUT vec2 gh ;".split(" ")}]}}]},{a:"txt",b:"GLSL_OUT vec2 A ; GLSL_OUT vec4 gi ; void main ( ) { A = a_bb_vertex ; vec3 be = normalize ( u_sun_direction ) ; gi = u_view_proj_matrix * vec4 ( be , 0.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DEPTH_RGBA","WATER_EFFECTS",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"if ( u_cam_water_depth < 0.0 ) { gf = 1.0 ; vec3 gs = vec3 ( 0.0 , 1.0 , 0.0 ) ; vec3 gt = O ( u_camera_quat , gs ) ; gt = normalize ( gt ) ; float gu = dot ( gt , vec3 ( 0.0 , 1.0 , 0.0 ) ) ; float gv = atan ( gt . x , gt . z ) ; gh = vec2 ( - gv , acos ( gu ) ) ; } else { gf = 0.0 ; }".split(" ")}]}}]},{a:"txt",b:"gi . xy = 0.5 * ( gi . xy / gi . w + 1.0 ) ; gi += 99999.0 * step ( gi . z , 0.0 ) ; gl_Position = vec4 ( 2.0 * a_bb_vertex . xy - 1.0 , 0.0 , 1.0 ) ; }".split(" ")}]};a["postprocessing/god_rays_combine.glslf"]= {a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"SAFARI_CANVAS_ALPHA_HACK",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"include",o:"pack.glslf"},{a:"txt",b:"uniform sampler2D u_main ; uniform sampler2D u_god_rays ; uniform float u_god_rays_intensity ; uniform vec3 u_sun_intensity ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 gw = GLSL_TEXTURE ( u_main , A ) ; vec3 gx = clamp ( u_sun_intensity , 0.4 , 0.8 ) ; bY ( gw . rgb ) ; float gy = cv ( GLSL_TEXTURE ( u_god_rays , A ) ) ; vec3 gz = gw . rgb + u_god_rays_intensity * vec3 ( gy ) * gx ; aM ( gz ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SAFARI_CANVAS_ALPHA_HACK"],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( gz , max ( 0.01 , gw . a ) ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( gz , gw . a ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]};a["postprocessing/luminance.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_input ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 fK = GLSL_TEXTURE ( u_input , A ) ; float gA = dot ( fK . rgb , vec3 ( 0.2126 , 0.7152 , 0.0722 ) ) ; GLSL_OUT_FRAG_COLOR = vec4 ( vec3 ( gA ) , 1.0 ) ; }".split(" ")}]}; a["postprocessing/luminance_av.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_input ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { float gA ; float gB = 0.0 ; float w = 0.025 ; float bO = 0.025 ; for ( int bQ = 0 ; bQ < 20 ; bQ += 1 ) { bO = 0.025 ; for ( int gC = 0 ; gC < 20 ; gC += 1 ) { gA = max ( GLSL_TEXTURE ( u_input , vec2 ( w , bO ) ) . r , 0.01 ) ; gB += log ( gA ) ; bO += 0.05 ; } w += 0.05 ; } float gD = exp ( gB / 400.0 ) ; GLSL_OUT_FRAG_COLOR = vec4 ( vec3 ( gD ) , 1.0 ) ; }".split(" ")}]}; a["postprocessing/luminance_trunced.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_main ; uniform sampler2D u_luminance ; uniform sampler2D u_average_lum ; uniform float u_bloom_edge_lum ; GLSL_IN vec2 A ; GLSL_IN float gE ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { float gD = GLSL_TEXTURE ( u_average_lum , vec2 ( 0.5 ) ) . r ; float gF = GLSL_TEXTURE ( u_luminance , A ) . r ; vec4 aG = GLSL_TEXTURE ( u_main , A ) ; float gG = gF / gD ; float gH = u_bloom_edge_lum ; GLSL_OUT_FRAG_COLOR = aG * max ( gG - gH , 0.0 ) * gE ; }".split(" ")}]}; a["postprocessing/luminance_trunced.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec4 u_camera_quat ; uniform vec3 u_sun_direction ; uniform float u_bloom_key ; GLSL_IN vec2 a_position ; GLSL_OUT vec2 A ; GLSL_OUT float gE ; void gP ( in vec4 gI , in vec3 gJ , out vec3 gK ) { float gL = gI . w * gJ . x + gI . y * gJ . z - gI . z * gJ . y ; float gM = gI . w * gJ . y + gI . z * gJ . x - gI . x * gJ . z ; float gN = gI . w * gJ . z + gI . x * gJ . y - gI . y * gJ . x ; float gO = - gI . x * gJ . x - gI . y * gJ . y - gI . z * gJ . z ; gK . x = gL * gI . w - gO * gI . x - gM * gI . z + gN * gI . y ; gK . y = gM * gI . w - gO * gI . y - gN * gI . x + gL * gI . z ; gK . z = gN * gI . w - gO * gI . z - gL * gI . y + gM * gI . x ; } void main ( ) { A = 2.0 * a_position ; vec3 gt ; gP ( u_camera_quat , UP_VECTOR , gt ) ; gE = dot ( - gt , u_sun_direction ) * u_bloom_key ; gE *= max ( sign ( u_sun_direction . z ) , 0.0 ) ; gl_Position = vec4 ( 4.0 * ( a_position . xy - 0.25 ) , 0.0 , 1.0 ) ; }".split(" ")}]}; a["postprocessing/motion_blur.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_mb_tex_curr ; uniform sampler2D u_mb_tex_accum ; uniform float u_motion_blur_exp ; uniform float u_motion_blur_decay_threshold ; float gQ = 0.0042 ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 gR = GLSL_TEXTURE ( u_mb_tex_curr , A ) ; vec4 gS = GLSL_TEXTURE ( u_mb_tex_accum , A ) ; if ( length ( gR - gS ) > u_motion_blur_decay_threshold ) { vec4 gT = ( 1.0 - u_motion_blur_exp ) * gR + u_motion_blur_exp * gS ; vec4 gU = gT - gS ; vec4 gV = gR - gS ; vec4 cx = min ( max ( abs ( gU ) , vec4 ( gQ ) ) , abs ( gV ) ) * sign ( gU ) ; GLSL_OUT_FRAG_COLOR = gS + cx ; } else { GLSL_OUT_FRAG_COLOR = gR ; } }".split(" ")}]}; a["postprocessing/outline.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform sampler2D u_outline_src ; uniform sampler2D u_outline_mask ; uniform sampler2D u_outline_mask_blurred ; uniform vec3 u_outline_color ; uniform float u_draw_outline ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 gW = GLSL_TEXTURE ( u_outline_src , A ) ; GLSL_OUT_FRAG_COLOR = gW ; if ( u_draw_outline != 0.0 ) { vec4 gX = GLSL_TEXTURE ( u_outline_mask , A ) ; vec4 gY = GLSL_TEXTURE ( u_outline_mask_blurred , A ) ; float gZ = gY . a - gX . a ; if ( gZ != 0.0 ) { float g_ = smoothstep ( 0.0 , 1.0 , gY . a ) ; if ( gX . a == 0.0 ) { vec3 ha = u_outline_color ; aM ( ha ) ; vec4 hb = vec4 ( clamp ( ha , 0.0 , 1.0 ) , 1.0 ) ; GLSL_OUT_FRAG_COLOR = mix ( gW , hb , g_ ) ; } } } }".split(" ")}]}; a["postprocessing/performance.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform sampler2D u_color ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { vec4 aG = vec4 ( 0.0 ) ; for ( int bQ = 0 ; bQ < 10 ; bQ ++ ) { vec2 hc = vec2 ( fract ( A * vec2 ( bQ ) * vec2 ( 1.431 , 3.921 ) ) ) ; aG += 0.01 * GLSL_TEXTURE ( u_color , hc ) ; } GLSL_OUT_FRAG_COLOR = aG ; }".split(" ")}]};a["postprocessing/postprocessing.glslf"]= {a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"POST_EFFECT",b:["POST_EFFECT_NONE"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec2 u_texel_size ; uniform sampler2D u_color ;".split(" ")},{a:"cond",d:[{a:"if",g:["POST_EFFECT","FLIP_CUBEMAP_COORDS",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform int u_tex_number ; uniform vec2 u_delta ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["POST_EFFECT","POST_EFFECT_DOF_BLUR",{a:"equal_expr",i:2}], h:{a:"grp",d:[{a:"txt",b:["uniform","float","u_dof_bokeh_intensity",";"]}]}}]},{a:"txt",b:"GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) {".split(" ")},{a:"cond",d:[{a:"if",g:["POST_EFFECT","POST_EFFECT_NONE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , A ) ;".split(" ")}]}},{a:"elif",g:["POST_EFFECT","POST_EFFECT_GRAYSCALE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 da = GLSL_TEXTURE ( u_color , A ) ; GLSL_OUT_FRAG_COLOR . rgb = vec3 ( ( da . r + da . g + da . b ) / 3.0 ) ; GLSL_OUT_FRAG_COLOR . a = 1.0 ;".split(" ")}]}}, {a:"elif",g:["POST_EFFECT","POST_EFFECT_BLUR",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 eY = vec2 ( 0.0 , 0.0 ) ; vec2 cx = u_texel_size ; vec4 aG ; aG = GLSL_TEXTURE ( u_color , A ) ; GLSL_OUT_FRAG_COLOR = aG * 0.2270270270 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.1945945946 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.1945945946 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.1216216216 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.1216216216 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.0540540541 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.0540540541 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.0162162162 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * 0.0162162162 ;".split(" ")}]}}, {a:"elif",g:["POST_EFFECT","POST_EFFECT_GLOW_BLUR",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 eY = vec2 ( 0.0 , 0.0 ) ; vec2 cx = u_texel_size ; vec4 aG ; aG = GLSL_TEXTURE ( u_color , A ) ; GLSL_OUT_FRAG_COLOR = aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.152507 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.141763 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.141763 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.113861 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.113861 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.079019 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.079019 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.047383 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.047383 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.024549 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.024549 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.01099 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.01099 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.00425 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.00425 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.00142 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; GLSL_OUT_FRAG_COLOR += aG * ( 1.0 - step ( 0.0 , - aG . a ) ) * 0.00142 ; GLSL_OUT_FRAG_COLOR = clamp ( GLSL_OUT_FRAG_COLOR , 0.0 , 1.0 ) ;".split(" ")}]}}, {a:"elif",g:["POST_EFFECT","POST_EFFECT_DOF_BLUR",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 eY = vec2 ( 0.0 , 0.0 ) ; vec2 cx = u_texel_size ; vec4 aG ; vec4 hd ; vec4 he ; float fO ; float hf = u_dof_bokeh_intensity ; aG = GLSL_TEXTURE ( u_color , A ) ; hd = aG ; he = aG ; fO = aG . a ; cx = fO * cx ; for ( int bQ = 0 ; bQ < 12 ; bQ += 2 ) { eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; hd += aG ; he = max ( he , aG ) ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; hd += aG ; he = max ( he , aG ) ; } hd /= 13.0 ; GLSL_OUT_FRAG_COLOR = mix ( hd , he , hf ) ;".split(" ")}]}}, {a:"elif",g:["POST_EFFECT","POST_EFFECT_ALPHA_BLUR",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 eY = vec2 ( 0.0 , 0.0 ) ; vec2 cx = u_texel_size ; vec4 aG ; vec4 hd ; vec4 he ; aG = GLSL_TEXTURE ( u_color , A ) ; he = max ( he , aG ) ; hd = aG ; hd . a = aG . a * 0.2270270270 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.1945945946 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.1945945946 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.1216216216 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.1216216216 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.0540540541 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.0540540541 ; eY += cx ; aG = GLSL_TEXTURE ( u_color , A + eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.0162162162 ; aG = GLSL_TEXTURE ( u_color , A - eY ) ; he . a = max ( he . a , aG . a ) ; hd . a += aG . a * 0.0162162162 ; GLSL_OUT_FRAG_COLOR = mix ( hd , he , 0.5 ) ;".split(" ")}]}}, {a:"elif",g:["POST_EFFECT","POST_EFFECT_EXTEND",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 cx = u_texel_size ; vec4 aG = GLSL_TEXTURE ( u_color , A ) ; GLSL_OUT_FRAG_COLOR = aG ; if ( aG . a == 0.0 ) { aG = GLSL_TEXTURE ( u_color , A + cx ) ; if ( aG . a > 0.0 ) GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 , 1.0 , 1.0 , aG . a ) ; else { aG = GLSL_TEXTURE ( u_color , A - cx ) ; if ( aG . a > 0.0 ) GLSL_OUT_FRAG_COLOR = vec4 ( 1.0 , 1.0 , 1.0 , aG . a ) ; } }".split(" ")}]}},{a:"elif",g:["POST_EFFECT", "FLIP_CUBEMAP_COORDS",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float hg = u_delta [ 0 ] ; float hh = u_delta [ 1 ] ; float hi = 1.0 / 3.0 ; float hj = 0.5 ; vec2 hk = vec2 ( hi , hj ) ; if ( u_tex_number == 0 ) { vec2 bE = mat2 ( 0.0 , - 1.0 , 1.0 , 0.0 ) * A * hk + vec2 ( 2.0 * hi , hj ) ; bE [ 0 ] = max ( bE [ 0 ] , 2.0 * hi + hg ) ; bE [ 1 ] = max ( bE [ 1 ] , hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( bE [ 0 ] , hj - bE [ 1 ] ) ) ; } else if ( u_tex_number == 1 ) { vec2 bE = mat2 ( 0.0 , - 1.0 , 1.0 , 0.0 ) * A * hk + vec2 ( 0.0 , hj ) ; bE [ 0 ] = max ( bE [ 0 ] , hg ) ; bE [ 1 ] = min ( bE [ 1 ] , hj - hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( hi - bE [ 0 ] , bE [ 1 ] ) ) ; } else if ( u_tex_number == 2 ) { vec2 bE = A * hk + vec2 ( 2.0 * hi , hj ) ; bE [ 0 ] = max ( bE [ 0 ] , 2.0 * hi + hg ) ; bE [ 1 ] = min ( bE [ 1 ] , 1.0 - hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( bE [ 0 ] , 1.5 - bE [ 1 ] ) ) ; } else if ( u_tex_number == 3 ) { vec2 bE = A * hk + vec2 ( hi , 0.0 ) ; bE [ 0 ] = max ( bE [ 0 ] , hi + hg ) ; bE [ 0 ] = min ( bE [ 0 ] , 2.0 * hi - hg ) ; bE [ 1 ] = min ( bE [ 1 ] , hj - hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( 1.0 - bE [ 0 ] , bE [ 1 ] ) ) ; } else if ( u_tex_number == 4 ) { vec2 bE = A * hk + vec2 ( hi , hj ) ; bE [ 0 ] = max ( bE [ 0 ] , hi + hg ) ; bE [ 0 ] = min ( bE [ 0 ] , 2.0 * hi - hg ) ; bE [ 1 ] = min ( bE [ 1 ] , 1.0 - hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( bE [ 0 ] , 3.0 * hj - bE [ 1 ] ) ) ; } else { vec2 bE = A * hk + vec2 ( 0.0 , hj ) ; bE [ 0 ] = max ( bE [ 0 ] , hg ) ; bE [ 1 ] = min ( bE [ 1 ] , 1.0 - hh ) ; bE [ 1 ] = max ( bE [ 1 ] , hj + hh ) ; GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_color , vec2 ( hi - bE [ 0 ] , bE [ 1 ] ) ) ; }".split(" ")}]}}]}, {a:"txt",b:["}"]}]};a["postprocessing/postprocessing.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"std.glsl"},{a:"txt",b:"GLSL_IN vec2 a_position ; GLSL_OUT vec2 A ; void main ( ) { A = 2.0 * a_position ; gl_Position = vec4 ( 4.0 * ( a_position . xy - 0.25 ) , 0.0 , 1.0 ) ; }".split(" ")}]};a["postprocessing/smaa.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"SMAA_PASS",b:["SMAA_RESOLVE"]},{a:"var",c:"SMAA_REPROJECTION",b:["0"]},{a:"var",c:"SMAA_PREDICATION", b:["0"]},{a:"var",c:"AA_METHOD",b:["AA_METHOD_SMAA_LOW"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"pack.glslf"},{a:"txt",b:["uniform","sampler2D","u_color",";"]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_RESOLVE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_color_prev",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_blend",";"]}]}}]}, {a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_velocity_tex",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2},"SMAA_PREDICATION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["uniform","sampler2D","u_predication_tex",";"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"uniform sampler2D u_search_tex ; uniform sampler2D u_area_tex ; uniform vec4 u_subsample_indices ;".split(" ")}]}}]}, {a:"txt",b:"uniform vec2 u_texel_size ; GLSL_IN vec2 A ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec4","hl",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec4 hm ; GLSL_IN vec4 hn ; GLSL_IN vec4 ho ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec2","hp",";"]}]}}]},{a:"txt",b:["GLSL_OUT","vec4", "GLSL_OUT_FRAG_COLOR",";"]},{a:"cond",d:[{a:"if",g:["AA_METHOD","AA_METHOD_SMAA_LOW",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_THRESHOLD",b:["0.15"]},{a:"define",c:"SMAA_DISABLE_DIAG_DETECTION",b:["1"]},{a:"define",c:"SMAA_DISABLE_CORNER_DETECTION",b:["1"]}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_SMAA_MEDIUM",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_THRESHOLD",b:["0.1"]},{a:"define",c:"SMAA_DISABLE_DIAG_DETECTION",b:["1"]},{a:"define",c:"SMAA_DISABLE_CORNER_DETECTION", b:["1"]}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_SMAA_HIGH",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_THRESHOLD",b:["0.1"]},{a:"define",c:"SMAA_DISABLE_DIAG_DETECTION",b:["0"]},{a:"define",c:"SMAA_MAX_SEARCH_STEPS_DIAG",b:["8"]},{a:"define",c:"SMAA_CORNER_ROUNDING",b:["25"]}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_SMAA_ULTRA",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_THRESHOLD",b:["0.05"]},{a:"define",c:"SMAA_DISABLE_DIAG_DETECTION",b:["0"]},{a:"define",c:"SMAA_MAX_SEARCH_STEPS_DIAG", b:["16"]},{a:"define",c:"SMAA_CORNER_ROUNDING",b:["25"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_THRESHOLD",h:{a:"grp",d:[{a:"define",c:"SMAA_THRESHOLD",b:["0.1"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_DEPTH_THRESHOLD",h:{a:"grp",d:[{a:"define",c:"SMAA_DEPTH_THRESHOLD",b:["(","0.1","*","SMAA_THRESHOLD",")"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_MAX_SEARCH_STEPS_DIAG",h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS_DIAG",b:["8"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_CORNER_ROUNDING",h:{a:"grp", d:[{a:"define",c:"SMAA_CORNER_ROUNDING",b:["25"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR",h:{a:"grp",d:[{a:"define",c:"SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR",b:["2.0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_PREDICATION",h:{a:"grp",d:[{a:"define",c:"SMAA_PREDICATION",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_PREDICATION_THRESHOLD",h:{a:"grp",d:[{a:"define",c:"SMAA_PREDICATION_THRESHOLD",b:["0.01"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_PREDICATION_SCALE",h:{a:"grp", d:[{a:"define",c:"SMAA_PREDICATION_SCALE",b:["2.0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_PREDICATION_STRENGTH",h:{a:"grp",d:[{a:"define",c:"SMAA_PREDICATION_STRENGTH",b:["0.4"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_REPROJECTION",h:{a:"grp",d:[{a:"define",c:"SMAA_REPROJECTION",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_REPROJECTION_WEIGHT_SCALE",h:{a:"grp",d:[{a:"define",c:"SMAA_REPROJECTION_WEIGHT_SCALE",b:["30.0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_MAX_SEARCH_STEPS",h:{a:"grp",d:[{a:"define", c:"SMAA_MAX_SEARCH_STEPS",b:["16"]}]}}]},{a:"define",c:"SMAA_AREATEX_MAX_DISTANCE",b:["16"]},{a:"define",c:"SMAA_AREATEX_MAX_DISTANCE_DIAG",b:["20"]},{a:"define",c:"SMAA_AREATEX_PIXEL_SIZE",b:"( 1.0 / vec2 ( 160.0 , 560.0 ) )".split(" ")},{a:"define",c:"SMAA_AREATEX_SUBTEX_SIZE",b:["(","1.0","/","7.0",")"]},{a:"define",c:"SMAA_SEARCHTEX_SIZE",b:"vec2 ( 66.0 , 33.0 )".split(" ")},{a:"define",c:"SMAA_SEARCHTEX_PACKED_SIZE",b:"vec2 ( 64.0 , 16.0 )".split(" ")},{a:"define",c:"SMAA_CORNER_ROUNDING_NORM", b:"( float ( SMAA_CORNER_ROUNDING ) / 100.0 )".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 ht ( vec2 bE , sampler2D hq ) { float p = GLSL_TEXTURE ( hq , bE ) . r ; float hr = GLSL_TEXTURE ( hq , hm . xy ) . r ; float hs = GLSL_TEXTURE ( hq , hm . zw ) . r ; return vec3 ( p , hr , hs ) ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 hx ( vec2 bE , sampler2D hu ) { vec3 hv = ht ( bE , hu ) ; vec2 cx = abs ( hv . xx - hv . yz ) ; vec2 hw = step ( SMAA_PREDICATION_THRESHOLD , cx ) ; return SMAA_PREDICATION_SCALE * SMAA_THRESHOLD * ( 1.0 - SMAA_PREDICATION_STRENGTH * hw ) ; }".split(" ")}]}}]}, {a:"txt",b:"void hB ( bvec2 hy , inout vec2 hz , vec2 hA ) { if ( hy . x ) hz . x = hA . x ; if ( hy . y ) hz . y = hA . y ; } void hB ( bvec4 hy , inout vec4 hz , vec4 hA ) { hB ( hy . xy , hz . xy , hA . xy ) ; hB ( hy . zw , hz . zw , hA . zw ) ; } vec2 hC ( vec2 x ) { return sign ( x ) * floor ( abs ( x ) + .5 ) ; } vec4 hC ( vec4 x ) { return sign ( x ) * floor ( abs ( x ) + .5 ) ; }".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"vec2 hP ( vec2 bE , sampler2D hD".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PREDICATION"],h:{a:"grp",d:[{a:"txt",b:[",","sampler2D","hu"]}]}}]},{a:"txt",b:[")","{"]},{a:"cond",d:[{a:"if",g:["SMAA_PREDICATION"],h:{a:"grp",d:[{a:"txt",b:"vec2 hE = hx ( bE , hu ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec2 hE = vec2 ( SMAA_THRESHOLD , SMAA_THRESHOLD ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 hF = vec3 ( 0.2126 , 0.7152 , 0.0722 ) ; float hG = dot ( GLSL_TEXTURE ( hD , bE ) . rgb , hF ) ; float hH = dot ( GLSL_TEXTURE ( hD , hm . xy ) . rgb , hF ) ; float hI = dot ( GLSL_TEXTURE ( hD , hm . zw ) . rgb , hF ) ; vec4 cx ; cx . xy = abs ( hG - vec2 ( hH , hI ) ) ; vec2 hw = step ( hE , cx . xy ) ; if ( dot ( hw , vec2 ( 1.0 , 1.0 ) ) == 0.0 ) discard ; float hJ = dot ( GLSL_TEXTURE ( hD , hn . xy ) . rgb , hF ) ; float hK = dot ( GLSL_TEXTURE ( hD , hn . zw ) . rgb , hF ) ; cx . zw = abs ( hG - vec2 ( hJ , hK ) ) ; vec2 hL = max ( cx . xy , cx . zw ) ; float hM = dot ( GLSL_TEXTURE ( hD , ho . xy ) . rgb , hF ) ; float hN = dot ( GLSL_TEXTURE ( hD , ho . zw ) . rgb , hF ) ; cx . zw = abs ( vec2 ( hH , hI ) - vec2 ( hM , hN ) ) ; hL = max ( hL . xy , cx . zw ) ; float hO = max ( hL . x , hL . y ) ; hw . xy *= step ( hO , SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR * cx . xy ) ; return hw ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SMAA_DISABLE_DIAG_DETECTION",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec2 hR ( vec2 hQ ) { hQ . r = hQ . r * abs ( 5.0 * hQ . r - 5.0 * 0.75 ) ; return hC ( hQ ) ; } vec4 hR ( vec4 hQ ) { hQ . rb = hQ . rb * abs ( 5.0 * hQ . rb - 5.0 * 0.75 ) ; return hC ( hQ ) ; } vec2 hT ( sampler2D hS , vec2 bE , vec2 be , out vec2 hQ ) { vec4 fm = vec4 ( bE , - 1.0 , 1.0 ) ; vec3 t = vec3 ( u_texel_size , 1.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS_DIAG ; bQ ++ ) { if ( fm . z < float ( SMAA_MAX_SEARCH_STEPS_DIAG - 1 ) && fm . w > 0.9 ) { fm . xyz += t * vec3 ( be , 1.0 ) ; hQ = GLSL_TEXTURE ( hS , fm . xy , 0.0 ) . rg ; fm . w = dot ( hQ , vec2 ( 0.5 , 0.5 ) ) ; } } return fm . zw ; } vec2 hU ( sampler2D hS , vec2 bE , vec2 be , out vec2 hQ ) { vec4 fm = vec4 ( bE , - 1.0 , 1.0 ) ; fm . x += 0.25 * u_texel_size . x ; vec3 t = vec3 ( u_texel_size , 1.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS_DIAG ; bQ ++ ) { if ( fm . z < float ( SMAA_MAX_SEARCH_STEPS_DIAG - 1 ) && fm . w > 0.9 ) { fm . xyz = t * vec3 ( be , 1.0 ) + fm . xyz ; hQ = GLSL_TEXTURE ( hS , fm . xy , 0.0 ) . rg ; hQ = hR ( hQ ) ; fm . w = dot ( hQ , vec2 ( 0.5 , 0.5 ) ) ; } } return fm . zw ; } vec2 hW ( sampler2D hV , vec2 aC , vec2 hQ , float eY ) { vec2 bE = vec2 ( SMAA_AREATEX_MAX_DISTANCE_DIAG , SMAA_AREATEX_MAX_DISTANCE_DIAG ) * hQ + aC ; bE = SMAA_AREATEX_PIXEL_SIZE * bE + 0.5 * SMAA_AREATEX_PIXEL_SIZE ; bE . x += 0.5 ; bE . y += SMAA_AREATEX_SUBTEX_SIZE * eY ; return GLSL_TEXTURE ( hV , bE , 0.0 ) . rg ; } vec2 ia ( sampler2D hS , sampler2D hV , vec2 bE , vec2 hQ , vec4 hX ) { vec2 hF = vec2 ( 0.0 , 0.0 ) ; vec4 df ; vec2 hY ; if ( hQ . r > 0.0 ) { df . xz = hT ( hS , bE , vec2 ( - 1.0 , 1.0 ) , hY ) ; df . x += float ( hY . y > 0.9 ) ; } else df . xz = vec2 ( 0.0 , 0.0 ) ; df . yw = hT ( hS , bE , vec2 ( 1.0 , - 1.0 ) , hY ) ; if ( df . x + df . y > 2.0 ) { vec4 hZ = vec4 ( - df . x + 0.25 , df . x , df . y , - df . y - 0.25 ) * u_texel_size . xyxy + bE . xyxy ; vec4 da ; da . xy = GLSL_TEXTURE ( hS , hZ . xy + u_texel_size * vec2 ( - 1 , 0 ) , 0.0 ) . rg ; da . zw = GLSL_TEXTURE ( hS , hZ . zw + u_texel_size * vec2 ( 1 , 0 ) , 0.0 ) . rg ; da . yxwz = hR ( da . xyzw ) ; vec2 h_ = vec2 ( 2.0 , 2.0 ) * da . xz + da . yw ; hB ( bvec2 ( step ( 0.9 , df . zw ) ) , h_ , vec2 ( 0.0 , 0.0 ) ) ; hF += hW ( hV , df . xy , h_ , hX . z ) ; } df . xz = hU ( hS , bE , vec2 ( - 1 , - 1 ) , hY ) ; if ( GLSL_TEXTURE ( hS , bE + u_texel_size * vec2 ( 1 , 0 ) , 0.0 ) . r > 0.0 ) { df . yw = hU ( hS , bE , vec2 ( 1 , 1 ) , hY ) ; df . y += float ( hY . y > 0.9 ) ; } else df . yw = vec2 ( 0.0 , 0.0 ) ; if ( df . x + df . y > 2.0 ) { vec4 hZ = vec4 ( - df . x , - df . x , df . y , df . y ) * u_texel_size . xyxy + bE . xyxy ; vec4 da ; da . x = GLSL_TEXTURE ( hS , hZ . xy + u_texel_size * vec2 ( - 1 , 0 ) , 0.0 ) . g ; da . y = GLSL_TEXTURE ( hS , hZ . xy + u_texel_size * vec2 ( 0 , - 1 ) , 0.0 ) . r ; da . zw = GLSL_TEXTURE ( hS , hZ . zw + u_texel_size * vec2 ( 1 , 0 ) , 0.0 ) . gr ; vec2 h_ = vec2 ( 2.0 , 2.0 ) * da . xz + da . yw ; hB ( bvec2 ( step ( 0.9 , df . zw ) ) , h_ , vec2 ( 0 , 0 ) ) ; hF += hW ( hV , df . xy , h_ , hX . w ) . gr ; } return hF ; }".split(" ")}]}}]}, {a:"txt",b:"float id ( sampler2D ib , vec2 hQ , float eY ) { vec2 hk = SMAA_SEARCHTEX_SIZE * vec2 ( 0.5 , - 1.0 ) ; vec2 ic = SMAA_SEARCHTEX_SIZE * vec2 ( eY , 1.0 ) ; hk += vec2 ( - 1.0 , 1.0 ) ; ic += vec2 ( 0.5 , - 0.5 ) ; hk *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE ; ic *= 1.0 / SMAA_SEARCHTEX_PACKED_SIZE ; return GLSL_TEXTURE ( ib , hk * hQ + ic , 0.0 ) . r ; } float ie ( sampler2D hS , sampler2D ib , vec2 bE , float hY ) { vec2 hQ = vec2 ( 0.0 , 1.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS ; bQ ++ ) { if ( bE . x > hY && hQ . g > 0.8281 && hQ . r == 0.0 ) { hQ = GLSL_TEXTURE ( hS , bE , 0.0 ) . rg ; bE = - vec2 ( 2.0 , 0.0 ) * u_texel_size + bE ; } } float eY = - ( 255.0 / 127.0 ) * id ( ib , hQ , 0.0 ) + 3.25 ; return u_texel_size . x * eY + bE . x ; } float ig ( sampler2D hS , sampler2D ib , vec2 bE , float hY ) { vec2 hQ = vec2 ( 0.0 , 1.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS ; bQ ++ ) { if ( bE . x < hY && hQ . g > 0.8281 && hQ . r == 0.0 ) { hQ = GLSL_TEXTURE ( hS , bE , 0.0 ) . rg ; bE = vec2 ( 2.0 , 0.0 ) * u_texel_size + bE ; } } float eY = - ( 255.0 / 127.0 ) * id ( ib , hQ , 0.5 ) + 3.25 ; return - u_texel_size . x * eY + bE . x ; } float ih ( sampler2D hS , sampler2D ib , vec2 bE , float hY ) { vec2 hQ = vec2 ( 1.0 , 0.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS ; bQ ++ ) { if ( bE . y > hY && hQ . r > 0.8281 && hQ . g == 0.0 ) { hQ = GLSL_TEXTURE ( hS , bE , 0.0 ) . rg ; bE = - vec2 ( 0.0 , 2.0 ) * u_texel_size + bE ; } } float eY = - ( 255.0 / 127.0 ) * id ( ib , hQ . gr , 0.0 ) + 3.25 ; return u_texel_size . y * eY + bE . y ; } float ii ( sampler2D hS , sampler2D ib , vec2 bE , float hY ) { vec2 hQ = vec2 ( 1.0 , 0.0 ) ; for ( int bQ = 0 ; bQ < SMAA_MAX_SEARCH_STEPS ; bQ ++ ) { if ( bE . y < hY && hQ . r > 0.8281 && hQ . g == 0.0 ) { hQ = GLSL_TEXTURE ( hS , bE , 0.0 ) . rg ; bE = vec2 ( 0.0 , 2.0 ) * u_texel_size + bE ; } } float eY = - ( 255.0 / 127.0 ) * id ( ib , hQ . gr , 0.5 ) + 3.25 ; return - u_texel_size . y * eY + bE . y ; } vec2 il ( sampler2D hV , vec2 aC , float ij , float ik , float eY ) { vec2 bE = vec2 ( SMAA_AREATEX_MAX_DISTANCE , SMAA_AREATEX_MAX_DISTANCE ) * hC ( 4.0 * vec2 ( ij , ik ) ) + aC ; bE = SMAA_AREATEX_PIXEL_SIZE * bE + 0.5 * SMAA_AREATEX_PIXEL_SIZE ; bE . y = SMAA_AREATEX_SUBTEX_SIZE * eY + bE . y ; return GLSL_TEXTURE ( hV , bE , 0.0 ) . rg ; } void ip ( sampler2D hS , inout vec2 hF , vec4 bE , vec2 df ) {".split(" ")}, {a:"cond",d:[{a:"if",g:["SMAA_DISABLE_CORNER_DETECTION",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec2 im = step ( df . xy , df . yx ) ; vec2 io = ( 1.0 - SMAA_CORNER_ROUNDING_NORM ) * im ; io /= im . x + im . y ; vec2 aB = vec2 ( 1.0 , 1.0 ) ; aB . x -= io . x * GLSL_TEXTURE ( hS , bE . xy + u_texel_size * vec2 ( 0 , 1 ) , 0.0 ) . r ; aB . x -= io . y * GLSL_TEXTURE ( hS , bE . zw + u_texel_size * vec2 ( 1 , 1 ) , 0.0 ) . r ; aB . y -= io . x * GLSL_TEXTURE ( hS , bE . xy + u_texel_size * vec2 ( 0 , - 2 ) , 0.0 ) . r ; aB . y -= io . y * GLSL_TEXTURE ( hS , bE . zw + u_texel_size * vec2 ( 1 , - 2 ) , 0.0 ) . r ; hF *= clamp ( aB , 0.0 , 1.0 ) ;".split(" ")}]}}]}, {a:"txt",b:"} void iq ( sampler2D hS , inout vec2 hF , vec4 bE , vec2 df ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_DISABLE_CORNER_DETECTION",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"vec2 im = step ( df . xy , df . yx ) ; vec2 io = ( 1.0 - SMAA_CORNER_ROUNDING_NORM ) * im ; io /= im . x + im . y ; vec2 aB = vec2 ( 1.0 , 1.0 ) ; aB . x -= io . x * GLSL_TEXTURE ( hS , bE . xy + u_texel_size * vec2 ( 1 , 0 ) , 0.0 ) . g ; aB . x -= io . y * GLSL_TEXTURE ( hS , bE . zw + u_texel_size * vec2 ( 1 , 1 ) , 0.0 ) . g ; aB . y -= io . x * GLSL_TEXTURE ( hS , bE . xy + u_texel_size * vec2 ( - 2 , 0 ) , 0.0 ) . g ; aB . y -= io . y * GLSL_TEXTURE ( hS , bE . zw + u_texel_size * vec2 ( - 2 , 1 ) , 0.0 ) . g ; hF *= clamp ( aB , 0.0 , 1.0 ) ;".split(" ")}]}}]}, {a:"txt",b:["}"]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 it ( vec2 bE , vec2 ir , sampler2D hS , sampler2D hV , sampler2D ib , vec4 hX ) { vec4 hF = vec4 ( 0.0 , 0.0 , 0.0 , 0.0 ) ; vec2 hQ = GLSL_TEXTURE ( hS , bE ) . rg ; if ( hQ . g > 0.0 ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_DISABLE_DIAG_DETECTION",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"hF . rg = ia ( hS , hV , bE , hQ , hX ) ; if ( hF . r == - hF . g ) {".split(" ")}]}}]}, {a:"txt",b:"vec2 df ; vec3 hZ ; hZ . x = ie ( hS , ib , hm . xy , ho . x ) ; hZ . y = hn . y ; df . x = hZ . x ; float ij = GLSL_TEXTURE ( hS , hZ . xy , 0.0 ) . r ; hZ . z = ig ( hS , ib , hm . zw , ho . y ) ; df . y = hZ . z ; df = abs ( hC ( df / u_texel_size . xx - ir . xx ) ) ; vec2 is = sqrt ( df ) ; float ik = GLSL_TEXTURE ( hS , hZ . zy + u_texel_size * vec2 ( 1 , 0 ) , 0.0 ) . r ; hF . rg = il ( hV , is , ij , ik , hX . y ) ; hZ . y = bE . y ; ip ( hS , hF . rg , hZ . xyzy , df ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SMAA_DISABLE_DIAG_DETECTION",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"} else hQ . r = 0.0 ;".split(" ")}]}}]},{a:"txt",b:"} if ( hQ . r > 0.0 ) { vec2 df ; vec3 hZ ; hZ . y = ih ( hS , ib , hn . xy , ho . z ) ; hZ . x = hm . x ; df . x = hZ . y ; float ij = GLSL_TEXTURE ( hS , hZ . xy , 0.0 ) . g ; hZ . z = ii ( hS , ib , hn . zw , ho . w ) ; df . y = hZ . z ; df = abs ( hC ( df / u_texel_size . yy - ir . yy ) ) ; vec2 is = sqrt ( df ) ; float ik = GLSL_TEXTURE ( hS , hZ . xz + u_texel_size * vec2 ( 0 , 1 ) , 0.0 ) . g ; hF . ba = il ( hV , is , ij , ik , hX . x ) ; hZ . x = bE . x ; iq ( hS , hF . ba , hZ . xyxz , df ) ; } return hF ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 iC ( vec2 bE , sampler2D hD , sampler2D iu".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:[",","sampler2D","iv"]}]}}]},{a:"txt",b:") { vec4 a ; a . x = GLSL_TEXTURE ( iu , hl . xy ) . a ; a . y = GLSL_TEXTURE ( iu , hl . zw ) . g ; a . wz = GLSL_TEXTURE ( iu , bE ) . xz ; if ( dot ( a , vec4 ( 1.0 , 1.0 , 1.0 , 1.0 ) ) < 1e-5 ) { vec4 aG = GLSL_TEXTURE ( hD , bE , 0.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:"vec4 iw = GLSL_TEXTURE ( iv , A ) ; vec2 cS = 2.0 * ix ( iw ) - 1.0 ; aG . a = sqrt ( 2.0 * length ( cS ) ) ;".split(" ")}]}}]},{a:"txt",b:"return aG ; } else { bool bO = max ( a . x , a . z ) > max ( a . y , a . w ) ; vec4 iy = vec4 ( 0.0 , a . y , 0.0 , a . w ) ; vec2 iz = a . yw ; hB ( bvec4 ( bO , bO , bO , bO ) , iy , vec4 ( a . x , 0.0 , a . z , 0.0 ) ) ; hB ( bvec2 ( bO , bO ) , iz , a . xz ) ; iz /= dot ( iz , vec2 ( 1.0 , 1.0 ) ) ; vec4 iA = iy * vec4 ( u_texel_size , - u_texel_size ) + bE . xyxy ; vec4 aG = iz . x * GLSL_TEXTURE ( hD , iA . xy , 0.0 ) ; aG += iz . y * GLSL_TEXTURE ( hD , iA . zw , 0.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:"vec4 iw = GLSL_TEXTURE ( iv , iA . xy ) ; vec2 iB = 2.0 * ix ( iw ) - 1.0 ; vec2 cS = iz . x * iB ; iw = GLSL_TEXTURE ( iv , iA . zw ) ; iB = 2.0 * ix ( iw ) - 1.0 ; cS += iz . y * iB ; aG . a = sqrt ( 2.0 * length ( cS ) ) ;".split(" ")}]}}]},{a:"txt",b:["return","aG",";","}","}"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_RESOLVE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 iH ( vec2 bE , sampler2D iD , sampler2D iE".split(" ")}, {a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:[",","sampler2D","iv"]}]}}]},{a:"txt",b:[")","{"]},{a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:"vec4 iw = GLSL_TEXTURE ( iv , A ) ; vec2 cS ; cS = 2.0 * ix ( iw ) - 1.0 ; vec4 iF = GLSL_TEXTURE ( iD , bE ) ; vec4 iG = GLSL_TEXTURE ( iE , bE - cS ) ; float cx = abs ( iF . a * iF . a - iG . a * iG . a ) / 2.0 ; float bU = 0.5 * clamp ( 1.0 - sqrt ( cx ) * SMAA_REPROJECTION_WEIGHT_SCALE , 0.0 , 1.0 ) ; vec4 aG = mix ( iF , iG , bU ) ; aG . a = 1.0 ; return aG ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 iF = GLSL_TEXTURE ( iD , bE ) ; vec4 iG = GLSL_TEXTURE ( iE , bE ) ; return mix ( iF , iG , 0.5 ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 aG = vec4 ( hP ( A , u_color".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PREDICATION"],h:{a:"grp",d:[{a:"txt",b:[",","u_predication_tex"]}]}}]},{a:"txt",b:") , 0.0 , 0.0 ) ;".split(" ")}]}}, {a:"elif",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 aG = it ( A , hp , u_color , u_area_tex , u_search_tex , u_subsample_indices ) ;".split(" ")}]}},{a:"elif",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 aG = iC ( A , u_color , u_blend".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:[",","u_velocity_tex"]}]}}]},{a:"txt",b:[")",";"]}]}},{a:"elif",g:["SMAA_PASS", "SMAA_RESOLVE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 aG = vec4 ( iH ( A , u_color , u_color_prev".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_REPROJECTION"],h:{a:"grp",d:[{a:"txt",b:[",","u_velocity_tex"]}]}}]},{a:"txt",b:[")",")",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 aG = GLSL_TEXTURE ( u_color , A ) ;".split(" ")}]}}]},{a:"txt",b:["GLSL_OUT_FRAG_COLOR","=","aG",";","}"]}]};a["postprocessing/smaa.glslv"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"SMAA_PASS", b:["SMAA_RESOLVE"]},{a:"var",c:"AA_METHOD",b:["AA_METHOD_SMAA_LOW"]},{a:"include",o:"std.glsl"},{a:"txt",b:"uniform vec2 u_texel_size ; GLSL_IN vec2 a_position ; GLSL_OUT vec2 A ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec4","hl",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT vec4 hm ; GLSL_OUT vec4 hn ; GLSL_OUT vec4 ho ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_OUT","vec2","hp",";"]}]}}]},{a:"cond",d:[{a:"if",g:["AA_METHOD","AA_METHOD_SMAA_LOW",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS",b:["4"]}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_SMAA_MEDIUM",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS",b:["8"]}]}},{a:"elif",g:["AA_METHOD","AA_METHOD_SMAA_HIGH",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS",b:["16"]}]}},{a:"elif", g:["AA_METHOD","AA_METHOD_SMAA_ULTRA",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS",b:["32"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"SMAA_MAX_SEARCH_STEPS",h:{a:"grp",d:[{a:"define",c:"SMAA_MAX_SEARCH_STEPS",b:["16"]}]}}]},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"void iI ( vec2 bE ) { hm = u_texel_size . xyxy * vec4 ( - 1.0 , 0.0 , 0.0 , - 1.0 ) + bE . xyxy ; hn = u_texel_size . xyxy * vec4 ( 1.0 , 0.0 , 0.0 , 1.0 ) + bE . xyxy ; ho = u_texel_size . xyxy * vec4 ( - 2.0 , 0.0 , 0.0 , - 2.0 ) + bE . xyxy ; }".split(" ")}]}}, {a:"elif",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"void iJ ( vec2 bE , out vec2 ir ) { ir = bE / u_texel_size ; hm = u_texel_size . xyxy * vec4 ( - 0.25 , - 0.125 , 1.25 , - 0.125 ) + bE . xyxy ; hn = u_texel_size . xyxy * vec4 ( - 0.125 , - 0.25 , - 0.125 , 1.25 ) + bE . xyxy ; ho = u_texel_size . xxyy * vec4 ( - 2.0 , 2.0 , - 2.0 , 2.0 ) * float ( SMAA_MAX_SEARCH_STEPS ) + vec4 ( hm . xz , hn . yw ) ; }".split(" ")}]}},{a:"elif",g:["SMAA_PASS", "SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"void iK ( vec2 bE ) { hl = u_texel_size . xyxy * vec4 ( 1.0 , 0.0 , 0.0 , 1.0 ) + bE . xyxy ; }".split(" ")}]}}]},{a:"txt",b:"void main ( ) { A = 2.0 * a_position ;".split(" ")},{a:"cond",d:[{a:"if",g:["SMAA_PASS","SMAA_EDGE_DETECTION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["iI","(","A",")",";"]}]}},{a:"elif",g:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"iJ ( A , hp ) ;".split(" ")}]}}, {a:"elif",g:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["iK","(","A",")",";"]}]}}]},{a:"txt",b:"gl_Position = vec4 ( 4.0 * ( a_position . xy - 0.25 ) , 0.0 , 1.0 ) ; }".split(" ")}]};a["postprocessing/ssao.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"SSAO_WHITE",b:["0"]},{a:"var",c:"SSAO_QUALITY",b:["SSAO_QUALITY_8"]},{a:"var",c:"SSAO_HEMISPHERE",b:["0"]},{a:"txt",b:["precision","PRECISION","sampler2D", ";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"depth_fetch.glslf"},{a:"txt",b:"uniform sampler2D u_color ; uniform sampler2D u_depth ; uniform sampler2D u_ssao_special_tex ; uniform vec2 u_camera_range ; uniform vec2 u_texel_size ; uniform float u_ssao_radius_increase ; uniform float u_ssao_influence ; uniform float u_ssao_dist_factor ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; float iL ( in vec2 fm ) { return fM ( u_depth , fm , u_camera_range ) ; } void main ( ) { vec3 fR = GLSL_TEXTURE ( u_color , A ) . rgb ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SSAO_WHITE"],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( fR , 1.0 ) ; return ;".split(" ")}]}}]},{a:"txt",b:"vec3 iM = normalize ( 2.0 * GLSL_TEXTURE ( u_ssao_special_tex , A * 0.25 / u_texel_size ) . rgb - 1.0 ) ; float fN = iL ( A ) ; float iN = fN * ( u_camera_range . y - u_camera_range . x ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SSAO_QUALITY","SSAO_QUALITY_8",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const float iO = 8.0 ; const int iP = 1 ;".split(" ")}]}}, {a:"elif",g:["SSAO_QUALITY","SSAO_QUALITY_16",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const float iO = 16.0 ; const int iP = 2 ;".split(" ")}]}},{a:"elif",g:["SSAO_QUALITY","SSAO_QUALITY_24",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const float iO = 24.0 ; const int iP = 3 ;".split(" ")}]}},{a:"elif",g:["SSAO_QUALITY","SSAO_QUALITY_32",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const float iO = 32.0 ; const int iP = 4 ;".split(" ")}]}}]},{a:"txt",b:"float iQ = u_ssao_radius_increase * 0.001 ; const float iR = 1.0 + 2.4 / iO ; float iS = 0.0 ; for ( int bQ = 0 ; bQ < iP ; bQ ++ ) for ( int x = - 1 ; x <= 1 ; x += 2 ) for ( int y = - 1 ; y <= 1 ; y += 2 ) for ( int z = - 1 ; z <= 1 ; z += 2 ) { vec3 iT = reflect ( normalize ( vec3 ( x , y , z ) ) , iM ) * ( iQ *= iR ) ; vec3 iU = vec3 ( A , iN ) ; iU += vec3 ( iT . xy , iT . z * iN * 2.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SSAO_HEMISPHERE"],h:{a:"grp",d:[{a:"txt",b:"iU . z -= 1.4 * ( iU . z - iN ) * step ( iN , iU . z ) ;".split(" ")}]}}]},{a:"txt",b:"float iV = iL ( iU . xy ) * ( u_camera_range . y - u_camera_range . x ) ; float iW = clamp ( ( iN - iV ) / iV , 0.0 , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SSAO_HEMISPHERE"],h:{a:"grp",d:[{a:"txt",b:"iS += mix ( 1.0 , iW , step ( iV , iU . z ) ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"iS += mix ( step ( iU . z , iV ) , 0.5 , iW ) ;".split(" ")}]}}]}, {a:"txt",b:"} iS = iS / iO ;".split(" ")},{a:"cond",d:[{a:"if",g:["SSAO_HEMISPHERE"],h:{a:"grp",d:[{a:"txt",b:"iS = clamp ( iS * iS + 0.6 * iS , 0.0 , 1.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"iS = clamp ( iS * iS + iS , 0.0 , 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:"float iX = u_ssao_influence * ( 1.0 - u_ssao_dist_factor * fN ) ; iS = mix ( 1.0 , iS , iX ) ; GLSL_OUT_FRAG_COLOR = vec4 ( fR , iS ) ; }".split(" ")}]};a["postprocessing/ssao_blur.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]}, {a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"SSAO_BLUR_DEPTH",b:["0"]},{a:"txt",b:["precision","PRECISION","sampler2D",";"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["SSAO_BLUR_DEPTH"],h:{a:"grp",d:[{a:"include",o:"depth_fetch.glslf"}]}}]},{a:"txt",b:"uniform sampler2D u_ssao_mask ; uniform vec2 u_texel_size ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ;".split(" ")},{a:"cond",d:[{a:"if",g:["SSAO_BLUR_DEPTH"],h:{a:"grp",d:[{a:"txt", b:"uniform sampler2D u_depth ; uniform vec2 u_camera_range ; uniform float u_ssao_blur_discard_value ; float iL ( in vec2 fm ) { return fM ( u_depth , fm , u_camera_range ) ; }".split(" ")}]}}]},{a:"txt",b:"void main ( ) { float iY = 0.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["SSAO_BLUR_DEPTH"],h:{a:"grp",d:[{a:"txt",b:"float iZ = iL ( A ) ; float bU = 0.0 ; float i_ = u_ssao_blur_discard_value * 100.0 ;".split(" ")}]}}]},{a:"txt",b:"vec2 ja = vec2 ( - 2.0 ) ; for ( int bQ = 0 ; bQ < 4 ; ++ bQ ) { for ( int gC = 0 ; gC < 4 ; ++ gC ) { vec2 eY = ( ja + vec2 ( float ( bQ ) , float ( gC ) ) ) * u_texel_size ; float jb = GLSL_TEXTURE ( u_ssao_mask , A + eY ) . a ;".split(" ")}, {a:"cond",d:[{a:"if",g:["SSAO_BLUR_DEPTH"],h:{a:"grp",d:[{a:"txt",b:"float jc = iL ( A + eY ) ; float jd = 1.0 - clamp ( abs ( jc - iZ ) * i_ , 0.0 , 1.0 ) ; iY += jb * jd ; bU += jd ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["iY","+=","jb",";"]}]}}]},{a:"txt",b:["}","}"]},{a:"cond",d:[{a:"if",g:["SSAO_BLUR_DEPTH"],h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( GLSL_TEXTURE ( u_ssao_mask , A ) . rgb , iY / bU ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GLSL_OUT_FRAG_COLOR = vec4 ( GLSL_TEXTURE ( u_ssao_mask , A ) . rgb , iY / 16.0 ) ;".split(" ")}]}}]}, {a:"txt",b:["}"]}]};a["postprocessing/stereo.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"var",c:"ANAGLYPH",b:["0"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"txt",b:"uniform sampler2D u_sampler_left ; uniform sampler2D u_sampler_right ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ;".split(" ")},{a:"cond",d:[{a:"if",g:["ANAGLYPH",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"uniform int u_enable_hmd_stereo ; uniform vec4 u_distortion_params ; uniform vec4 u_chromatic_aberration_coefs ; void jn ( vec2 bE , vec2 ac , float cM , sampler2D je ) { vec2 jf = ( bE - ac ) * 2.0 ; jf /= cM ; float jg = jf . x * jf . x + jf . y * jf . y ; vec2 jh = jf * ( 1.0 + u_distortion_params [ 0 ] * jg + u_distortion_params [ 1 ] * jg * jg ) ; vec2 ji = jh * 0.5 / ( 1.0 + u_distortion_params [ 0 ] + u_distortion_params [ 1 ] ) ; if ( length ( u_chromatic_aberration_coefs ) > 0.0 ) { vec2 jj = ji * ( 1.0 + u_chromatic_aberration_coefs [ 0 ] + jg * u_chromatic_aberration_coefs [ 1 ] ) + ac ; vec2 jk = ji + ac ; vec2 jl = ji * ( 1.0 + u_chromatic_aberration_coefs [ 2 ] + jg * u_chromatic_aberration_coefs [ 3 ] ) + ac ; if ( clamp ( jl , 0.0 , 1.0 ) != jl ) { GLSL_OUT_FRAG_COLOR = vec4 ( 0.0 ) ; } else { vec4 jm = GLSL_TEXTURE ( je , jk ) ; GLSL_OUT_FRAG_COLOR [ 0 ] = GLSL_TEXTURE ( je , jj ) . x ; GLSL_OUT_FRAG_COLOR [ 1 ] = jm . y ; GLSL_OUT_FRAG_COLOR [ 2 ] = GLSL_TEXTURE ( je , jl ) . z ; GLSL_OUT_FRAG_COLOR [ 3 ] = jm . w ; } } else { ji = ji * cM + ac ; if ( clamp ( ji , 0.0 , 1.0 ) != ji ) { GLSL_OUT_FRAG_COLOR = vec4 ( 0.0 ) ; } else { GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( je , ji ) ; } } }".split(" ")}]}}]}, {a:"txt",b:["void","main","(",")","{"]},{a:"cond",d:[{a:"if",g:["ANAGLYPH"],h:{a:"grp",d:[{a:"txt",b:"vec4 jo = GLSL_TEXTURE ( u_sampler_left , A ) ; vec4 jp = GLSL_TEXTURE ( u_sampler_right , A ) ; vec3 jq = vec3 ( jo [ 0 ] , jo [ 1 ] , jo [ 2 ] ) ; bY ( jq ) ; vec3 jr = vec3 ( jp [ 0 ] , jp [ 1 ] , jp [ 2 ] ) ; bY ( jr ) ; mat3 js = mat3 ( 0.437 , - 0.062 , - 0.048 , 0.449 , - 0.062 , - 0.050 , 0.164 , - 0.024 , - 0.017 ) ; mat3 jt = mat3 ( - 0.011 , 0.377 , - 0.026 , - 0.032 , 0.761 , - 0.093 , - 0.007 , 0.009 , 1.234 ) ; vec3 aG = clamp ( js * jq , 0.0 , 1.0 ) + clamp ( jt * jr , 0.0 , 1.0 ) ; aM ( aG ) ; GLSL_OUT_FRAG_COLOR = vec4 ( aG , jo [ 3 ] + jp [ 3 ] ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"if ( u_enable_hmd_stereo != 0 ) { if ( A [ 0 ] < 0.5 ) { vec2 bE = vec2 ( 2.0 * A [ 0 ] , A [ 1 ] ) ; vec2 ac = vec2 ( 0.5 - ( u_distortion_params [ 3 ] - 0.5 ) / 2.0 , u_distortion_params [ 2 ] ) ; float cM = 2.0 * u_distortion_params [ 3 ] ; jn ( bE , ac , cM , u_sampler_left ) ; } else { vec2 bE = vec2 ( 2.0 * ( A [ 0 ] - 0.5 ) , A [ 1 ] ) ; vec2 ac = vec2 ( 0.5 + ( u_distortion_params [ 3 ] - 0.5 ) / 2.0 , u_distortion_params [ 2 ] ) ; float cM = 2.0 * u_distortion_params [ 3 ] ; jn ( bE , ac , cM , u_sampler_right ) ; } } else { GLSL_OUT_FRAG_COLOR = GLSL_TEXTURE ( u_sampler_left , A ) ; }".split(" ")}]}}]}, {a:"txt",b:["}"]}]};a["postprocessing/velocity.glslf"]={a:"grp",d:[{a:"version",b:["GLSL_VERSION"]},{a:"include",o:"precision_statement.glslf"},{a:"include",o:"std.glsl"},{a:"include",o:"pack.glslf"},{a:"txt",b:"uniform sampler2D u_depth ; uniform mat4 u_view_proj_inverse ; uniform mat4 u_view_proj_prev ; GLSL_IN vec2 A ; GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR ; void main ( ) { float fN = GLSL_TEXTURE ( u_depth , A ) . x ; vec4 ju = vec4 ( A * 2.0 - 1.0 , 2.0 * fN - 1.0 , 1.0 ) ; vec4 cd = u_view_proj_inverse * ju ; vec4 jv = cd / cd . w ; vec4 jw = u_view_proj_prev * jv ; jw /= jw . w ; vec2 cS = ( ju . xy - jw . xy ) / 4.0 + 0.5 ; cS = clamp ( cS , 0.0 , 1.0 ) ; GLSL_OUT_FRAG_COLOR = fS ( cS ) ; }".split(" ")}]}; a["include/blending.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"BLENDING_GLSLF",h:{a:"grp",d:[{a:"define",c:"BLENDING_GLSLF",b:[""]},{a:"txt",b:"vec3 jy ( vec3 rgb ) { vec4 jx = vec4 ( _0_0 , - _1_0 / 3.0 , 2.0 / 3.0 , - _1_0 ) ; vec4 p = mix ( vec4 ( rgb . bg , jx . wz ) , vec4 ( rgb . gb , jx . xy ) , step ( rgb . b , rgb . g ) ) ; vec4 q = mix ( vec4 ( p . xyw , rgb . r ) , vec4 ( rgb . r , p . yzx ) , step ( p . x , rgb . r ) ) ; float df = q . x - min ( q . w , q . y ) ; float hQ = 1.0e-10 ; return vec3 ( abs ( q . z + ( q . w - q . y ) / ( 6.0 * df + hQ ) ) , df / ( q . x + hQ ) , q . x ) ; } vec3 jA ( vec3 jz ) { vec4 jx = vec4 ( _1_0 , 2.0 / 3.0 , _1_0 / 3.0 , 3.0 ) ; vec3 p = abs ( fract ( vec3 ( jz . r , jz . r , jz . r ) + jx . xyz ) * 6.0 - jx . www ) ; return jz . b * mix ( jx . xxx , clamp ( p - jx . xxx , _0_0 , _1_0 ) , jz . g ) ; } vec3 jE ( vec3 jB , vec3 jC , float jD ) { return mix ( jB , jC , jD ) ; } vec3 jF ( vec3 jB , vec3 jC , float jD ) { return jD * jB + jC ; } vec3 jG ( vec3 jB , vec3 jC , float jD ) { return jC - jD * jB ; } vec3 jI ( vec3 jB , vec3 jC , float jD ) { float jH = _1_0 - jD ; return ( vec3 ( jH ) + jD * jB ) * jC ; } vec3 jJ ( vec3 jB , vec3 jC , float jD ) { vec3 jH = vec3 ( _1_0 - jD ) ; return vec3 ( _1_0 ) - ( jH + jD * ( vec3 ( _1_0 ) - jB ) ) * ( vec3 ( _1_0 ) - jC ) ; } vec3 jK ( vec3 jB , vec3 jC , float jD ) { vec3 jH = vec3 ( _1_0 - jD ) ; return mix ( jC * ( jH + 2.0 * jD * jB ) , vec3 ( _1_0 ) - ( jH + 2.0 * jD * ( vec3 ( _1_0 ) - jB ) ) * ( vec3 ( _1_0 ) - jC ) , step ( 0.5 , jC ) ) ; } vec3 jL ( vec3 jB , vec3 jC , float jD ) { return mix ( jC , abs ( jB - jC ) , jD ) ; } vec3 jM ( vec3 jB , vec3 jC , float jD ) { return mix ( jC , jC / ( jB + step ( jB , vec3 ( _0_0 ) ) ) , jD ) ; } vec3 jN ( vec3 jB , vec3 jC , float jD ) { return mix ( jC , min ( jB , jC ) , jD ) ; } vec3 jO ( vec3 jB , vec3 jC , float jD ) { return max ( jD * jB , jC ) ; } vec3 jS ( vec3 jB , vec3 jC , float jD ) { vec3 jP = jy ( jC ) ; if ( jP . y != _0_0 ) { vec3 jQ = jy ( jB ) ; vec3 jR = jA ( vec3 ( jP . x , jQ . yz ) ) ; return mix ( jB , jR , jD ) ; } return jB ; } vec3 jT ( vec3 jB , vec3 jC , float jD ) { vec3 jP = jy ( jB ) ; if ( jP . y != _0_0 ) { vec3 jQ = jy ( jC ) ; return jA ( vec3 ( jP . x , mix ( jP . y , jQ . y , jD ) , jP . z ) ) ; } return jB ; } vec3 jU ( vec3 jB , vec3 jC , float jD ) { vec3 jP = jy ( jB ) ; vec3 jQ = jy ( jC ) ; return jA ( vec3 ( jP . xy , mix ( jP . z , jQ . z , jD ) ) ) ; } vec3 jV ( vec3 jB , vec3 jC , float jD ) { vec3 jP = jy ( jC ) ; if ( jP . y != _0_0 ) { vec3 jQ = jy ( jB ) ; vec3 jR = jA ( vec3 ( jP . xy , jQ . z ) ) ; return mix ( jB , jR , jD ) ; } return jB ; } vec3 jX ( vec3 jB , vec3 jC , float jD ) { vec3 jW = vec3 ( _1_0 ) - ( vec3 ( _1_0 ) - jC ) * ( vec3 ( _1_0 ) - jB ) ; return mix ( jB , ( ( vec3 ( _1_0 ) - jB ) * jC * jB ) + jB * jW , jD ) ; } vec3 jY ( vec3 jB , vec3 jC , float jD ) { return jB + jD * ( 2.0 * jC - _1_0 ) ; } float kb ( float jZ , float j_ , float jD , float ka ) { float jH = _1_0 - ka ; return ( jH + jD * jZ ) * j_ ; } float kc ( float jZ , float j_ , float jD , float ka ) { float jH = _1_0 - ka ; return _1_0 - ( jH + jD * ( _1_0 - jZ ) ) * ( _1_0 - j_ ) ; } float kd ( float jZ , float j_ , float jD , float ka ) { float jH = _1_0 - ka ; return mix ( j_ * ( jH + 2.0 * jD * jZ ) , _1_0 - ( jH + 2.0 * jD * ( _1_0 - jZ ) ) * ( _1_0 - j_ ) , step ( 0.5 , j_ ) ) ; }".split(" ")}]}}]}]}; a["include/caustics.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"CAUSTICS_GLSLF",h:{a:"grp",d:[{a:"define",c:"CAUSTICS_GLSLF",b:[""]},{a:"var",c:"SUN_NUM",b:["0"]},{a:"var",c:"CAUST_SCALE",b:["0.25"]},{a:"var",c:"CAUST_SPEED",b:["vec2","(","0.0",")"]},{a:"var",c:"CAUST_BRIGHT",b:["0.5"]},{a:"include",o:"procedural.glslf"},{a:"include",o:"math.glslv"},{a:"define",c:"CAUSTICS_VIEW_DISTANCE",b:["100.0"]},{a:"txt",b:"void bt ( inout vec3 aG , float ke , float eK , vec4 bs , vec3 P , vec3 kf , vec3 kg , vec4 kh , vec3 bd , float bp ) { if ( bp > CAUSTICS_VIEW_DISTANCE ) return ; vec3 ki = bd + P ; ki . xz = 10.0 * sin ( 0.1 * ki . xz ) ; vec3 kk = O ( kj ( kh ) , ki ) ; vec2 bE = kk . xz ; vec3 kl = kf ; float km = max ( dot ( P , kl ) , 0.0 ) ; float kn = 0.025 ; vec2 ko = CAUST_SPEED * eK ; bE . s += 0.25 * sin ( dot ( bd + eK , vec3 ( 1.0 ) ) ) ; bE . t += 0.35 * ( - sin ( dot ( bd - eK , vec3 ( - 0.7 ) ) ) ) ; bE . st += 0.15 * cos ( 4.0 * ke - ko . x ) + 1.5 * sin ( ke - 0.3 * ko . y ) ; float hk = CAUST_SCALE * ( 1.0 + max ( 0.1 * ke , 0.0 ) ) ; vec3 kq = kp ( ( bE / hk ) , kn ) ; kq *= CAUST_BRIGHT ; kq *= kq ; float kr = min ( 0.25 * ke , - ke ) + 1.0 ; kr = max ( kr , 0.0 ) ; float ks = bs [ SUN_NUM ] * km ; float kt = max ( sign ( ke ) , 0.0 ) ; ks = ks + max ( 0.5 * sign ( - P . y ) * kt , 0.0 ) ; ks = min ( ks , 1.0 ) ; aG += kg * kq * kr * ks ; }".split(" ")}]}}]}]}; a["include/color_util.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"COLOR_UTIL_GLSLF",h:{a:"grp",d:[{a:"define",c:"COLOR_UTIL_GLSLF",b:[""]},{a:"define",c:"PREMULTIPLY_ALPHA",b:["1"]},{a:"var",c:"SRGB",b:["SRGB_NONE"]},{a:"include",o:"std.glsl"},{a:"txt",b:"void bY ( inout float aG ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SRGB","SRGB_SIMPLE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aG = pow ( aG , 2.2 ) ;".split(" ")}]}},{a:"elif",g:["SRGB","SRGB_PROPER",{a:"equal_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:"if ( aG <= 0.04045 ) aG = aG / 12.92 ; else aG = pow ( aG + 0.055 / 1.055 , 2.4 ) ;".split(" ")}]}}]},{a:"txt",b:"} void aM ( inout float aG ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SRGB","SRGB_SIMPLE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aG = pow ( aG , 2.2 ) ;".split(" ")}]}},{a:"elif",g:["SRGB","SRGB_PROPER",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( aG <= 0.00031308 ) aG = aG * 12.92 ; else aG = 1.055 * pow ( aG , 1.0 / 2.4 ) - 0.055 ;".split(" ")}]}}]},{a:"txt", b:"} void bY ( inout vec3 aG ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SRGB","SRGB_SIMPLE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aG = pow ( aG , vec3 ( 2.2 ) ) ;".split(" ")}]}},{a:"elif",g:["SRGB","SRGB_PROPER",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"bY ( aG . r ) ; bY ( aG . g ) ; bY ( aG . b ) ;".split(" ")}]}}]},{a:"txt",b:"} void aM ( inout vec3 aG ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SRGB","SRGB_SIMPLE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aG = pow ( aG , vec3 ( 1.0 / 2.2 ) ) ;".split(" ")}]}}, {a:"elif",g:["SRGB","SRGB_PROPER",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"aM ( aG . r ) ; aM ( aG . g ) ; aM ( aG . b ) ;".split(" ")}]}}]},{a:"txt",b:"} void aN ( inout vec3 aG , in float J ) {".split(" ")},{a:"cond",d:[{a:"if",g:["PREMULTIPLY_ALPHA"],h:{a:"grp",d:[{a:"txt",b:"aG = aG * J ;".split(" ")}]}}]},{a:"txt",b:"} float ft ( vec4 aG ) { vec3 ku = vec3 ( 0.299 , 0.587 , 0.114 ) ; float kv = dot ( aG . rgb , ku ) ; return kv ; }".split(" ")}]}}]}]};a["include/depth_fetch.glslf"]={a:"grp", d:[{a:"cond",d:[{a:"ifndef",c:"DEPTH_FETCH_GLSLF",h:{a:"grp",d:[{a:"define",c:"DEPTH_FETCH_GLSLF",b:[""]},{a:"txt",b:"float fM ( in sampler2D kw , in vec2 fm , in vec2 kx ) { float fN = GLSL_TEXTURE ( kw , fm ) . r ; float dj = kx . x ; float ky = kx . y ; float kz = 2.0 * dj / ( dj + ky - ( 2.0 * fN - 1.0 ) * ( ky - dj ) ) ; return kz ; }".split(" ")}]}}]}]};a["include/dynamic_grass.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"DYNAMIC_GRASS_GLSLV",h:{a:"grp",d:[{a:"define",c:"DYNAMIC_GRASS_GLSLV", b:[""]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"DYNAMIC_GRASS",b:["0"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"var",c:"GRASS_TEXTURE_SIZE",b:["1024.0"]},{a:"cond",d:[{a:"if",g:["DYNAMIC_GRASS"],h:{a:"grp",d:[{a:"include",o:"math.glslv"},{a:"include",o:"to_world.glslv"},{a:"txt",b:"vec2 kD ( vec3 N , float kA , vec2 kB ) { vec2 kC = vec2 ( ( N . x - kB . x ) / kA , ( N . y - kB . y ) / kA ) ; return fract ( kC ) ; } vec2 kE ( vec2 gl , float kA , vec2 kB ) { return vec2 ( gl . x * kA , gl . y * kA ) + kB ; } aj kF ( ) { return aj ( vec3 ( - 10000.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) , vec3 ( 0.0 ) ) ; }".split(" ")}, {a:"cond",d:[{a:"if",g:["GLSL3"],h:{a:"grp",d:[{a:"txt",b:"vec4 kP ( sampler2D kG , vec2 kH ) { float kI = 1.0 / GRASS_TEXTURE_SIZE ; vec4 kJ = GLSL_TEXTURE ( kG , kH ) ; vec4 kK = GLSL_TEXTURE ( kG , kH + vec2 ( kI , 0.0 ) ) ; vec4 kL = GLSL_TEXTURE ( kG , kH + vec2 ( 0.0 , kI ) ) ; vec4 kM = GLSL_TEXTURE ( kG , kH + vec2 ( kI , kI ) ) ; float a = fract ( kH . x * GRASS_TEXTURE_SIZE ) ; vec4 kN = mix ( kJ , kK , a ) ; vec4 kO = mix ( kL , kM , a ) ; float b = fract ( kH . y * GRASS_TEXTURE_SIZE ) ; return mix ( kN , kO , b ) ; }".split(" ")}]}}]}, {a:"txt",b:"aj aP ( vec3 N , vec3 Q , vec3 kQ , vec3 R , vec3 P , vec3 ac , PRECISION sampler2D kR , sampler2D kS , vec3 kT , float kU , vec3 kV , vec4 kW , mat3 M ) { vec3 kX = O ( kW , vec3 ( 0.0 , 0.0 , - 1.0 ) ) ; float kY = - kX . x ; float kZ = kX . y ; vec2 kB = vec2 ( kV . x - kU * ( 1.0 + kY ) / 2.0 , kV . y - kU * ( 1.0 - kZ ) / 2.0 ) ; vec2 k_ = kD ( ac , kU , kB ) ; float la = kU / 2.0 ; vec2 lb = abs ( kE ( k_ - vec2 ( 0.5 ) , kU , vec2 ( 0.0 ) ) ) ; float lc = la * ( 1.0 + sqrt ( 2.0 ) ) / 2.0 ; if ( length ( lb ) > lc ) return kF ( ) ; float ld = kU / kT . z ; vec2 le = ( k_ - vec2 ( 0.5 ) ) * ld + vec2 ( 0.5 ) ; vec3 lf = kX * ( kU / kT . z - 1.0 ) / 2.0 ; le . x += lf . x ; le . y += lf . y ; vec4 lg = GLSL_TEXTURE ( kS , le ) ; float hk = lg . r ; if ( hk < u_scale_threshold ) return kF ( ) ; float lh = kT . y - kT . x ;".split(" ")}, {a:"cond",d:[{a:"if",g:["GLSL3"],h:{a:"grp",d:[{a:"txt",b:"float bN = kT . y - ( kP ( kR , le ) ) . r * lh ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"float bN = kT . y - ( GLSL_TEXTURE ( kR , le ) ) . r * lh ;".split(" ")}]}}]},{a:"txt",b:"vec2 li = N . xy - ac . xy ; ac . xy = kE ( k_ , kU , kB ) ; ac . z = bN ; N . xy = ac . xy + li ; N . z *= hk ; N . z += bN ; vec3 aG = lg . gba ;".split(" ")},{a:"cond",d:[{a:"if",g:["BILLBOARD"],h:{a:"grp",d:[{a:"txt",b:"N -= ac ; mat3 lj = ah ( kV , ac , M ) ; aj al = ak ( N , ac , Q , kQ , R , P , lj ) ; al . ac = ac ; al . aG = aG ; return lk ( al ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"return lk ( aj ( N , ac , Q , kQ , R , P , aG ) ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]}}]}]};a["include/environment.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"ENVIRONMENT_GLSLF",h:{a:"grp",d:[{a:"define",c:"ENVIRONMENT_GLSLF",b:[""]},{a:"var",c:"USE_ENVIRONMENT_LIGHT",b:["0"]},{a:"var",c:"SKY_COLOR",b:["0"]},{a:"var",c:"SKY_TEXTURE",b:["0"]},{a:"txt",b:"vec3 ce ( vec3 P ) {".split(" ")},{a:"cond",d:[{a:"if",g:["USE_ENVIRONMENT_LIGHT"],h:{a:"grp",d:[{a:"cond", d:[{a:"if",g:["SKY_TEXTURE"],h:{a:"grp",d:[{a:"txt",b:"return GLSL_TEXTURE_CUBE ( u_sky_texture , P ) . rgb ;".split(" ")}]}},{a:"elif",g:["SKY_COLOR"],h:{a:"grp",d:[{a:"txt",b:"float ll = 0.5 * P . z + 0.5 ; return mix ( u_horizon_color , u_zenith_color , ll ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"return vec3 ( 1.0 ) ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"return vec3 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]};a["include/fog.glslf"]={a:"grp",d:[{a:"cond", d:[{a:"ifndef",c:"FOG_GLSLF",h:{a:"grp",d:[{a:"define",c:"FOG_GLSLF",b:[""]},{a:"var",c:"USE_FOG",b:["0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"FOG_TYPE",b:["QUADRATIC"]},{a:"var",c:"PROCEDURAL_FOG",b:["0"]},{a:"include",o:"std.glsl"},{a:"include",o:"color_util.glslf"},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"txt",b:"void lq ( inout vec3 aG , in float lm , in float bN , in vec4 ln ) { float lo = clamp ( ( lm - u_fog_params . z ) / u_fog_params . y , 0.0 , 1.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FOG_TYPE","QUADRATIC",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["lo","*=","lo",";"]}]}},{a:"elif",g:["FOG_TYPE","LINEAR",{a:"equal_expr",i:2}],h:{a:"grp",d:[]}},{a:"elif",g:["FOG_TYPE","INVERSE_QUADRATIC",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"lo = sqrt ( lo ) ;".split(" ")}]}}]},{a:"txt",b:"if ( u_fog_params . w > 0.0 ) { if ( bN > u_fog_params . w ) lo = 0.0 ; else { float lp = ( u_fog_params . w - max ( bN , 0.0 ) ) / u_fog_params . w ; lo *= lp * lp ; } } ln . a = 1.0 - ( 1.0 - lo ) * ( 1.0 - u_fog_params . x ) ; aG = mix ( aG , ln . rgb , ln . a ) ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:"vec3 lv ( in mat4 lr , in vec3 C ) { vec3 ls = mix ( lr [ 0 ] . rgb , lr [ 1 ] . rgb , max ( sign ( C . x ) , 0.0 ) ) ; vec3 lt = mix ( lr [ 2 ] . rgb , lr [ 3 ] . rgb , max ( sign ( C . z ) , 0.0 ) ) ; vec3 lu = vec3 ( lr [ 0 ] . a , lr [ 1 ] . a , lr [ 2 ] . a ) ; vec3 aG = mix ( ls , lt , abs ( C . z ) ) ; aG = mix ( aG , lu , abs ( C . y ) ) ; bY ( aG ) ; return aG ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"], h:{a:"grp",d:[{a:"txt",b:"void lx ( inout float lw ) { lw -= 0.5 ; lw = 4.0 * ( lw * lw * lw ) + 0.5 ; } void lD ( inout vec3 aG , in float lm , in vec3 C , in float dO , in vec4 ly , in float eB ) { float lz = max ( C . z , 0.0 ) ; float lA = max ( lm - max ( dO / lz , 0.0 ) , 0.0 ) ; float lB = ly . w * lA ; vec3 dP = vec3 ( 0.0 , 0.02 , 0.05 ) ; vec3 lC = ly . rgb ; lB = min ( lB , 1.0 ) ; lx ( lB ) ; lB *= clamp ( 2.0 - eB , 0.0 , 1.0 ) ; vec3 dQ = mix ( lC , dP , min ( lz , 1.0 ) ) ; dO = clamp ( - dO * 0.03 , 0.0 , 0.8 ) ; dQ *= 1.0 - dO ; aG = mix ( aG , dQ , lB ) ; }".split(" ")}]}}]}, {a:"txt",b:"void bu ( inout vec3 aG , float lm , vec3 C , float bq ) {".split(" ")},{a:"cond",d:[{a:"if",g:["USE_FOG"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["PROCEDURAL_FOG"],h:{a:"grp",d:[{a:"txt",b:"vec3 lr = lv ( u_cube_fog , C ) ; vec4 dQ = vec4 ( lr , u_fog_color_density . a ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec4","dQ","=","u_fog_color_density",";"]}]}}]},{a:"txt",b:"lq ( aG , lm , h . z , dQ ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WATER_EFFECTS"],h:{a:"grp",d:[{a:"txt", b:"lD ( aG , lm , C , u_cam_water_depth , u_underwater_fog_color_density , bq ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]};a["include/fxaa.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"FXAA_GLSLF",h:{a:"grp",d:[{a:"define",c:"FXAA_GLSLF",b:[""]},{a:"var",c:"FXAA_BLEND4WEB",b:["1"]},{a:"var",c:"FXAA_QUALITY_P12",b:["0.0"]},{a:"cond",d:[{a:"ifndef",c:"FXAA_PS3",h:{a:"grp",d:[{a:"define",c:"FXAA_PS3",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_360",h:{a:"grp",d:[{a:"define",c:"FXAA_360",b:["0"]}]}}]}, {a:"cond",d:[{a:"ifndef",c:"FXAA_360_OPT",h:{a:"grp",d:[{a:"define",c:"FXAA_360_OPT",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_PC",h:{a:"grp",d:[{a:"define",c:"FXAA_PC",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_PC_CONSOLE",h:{a:"grp",d:[{a:"define",c:"FXAA_PC_CONSOLE",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_GLSL_120",h:{a:"grp",d:[{a:"define",c:"FXAA_GLSL_120",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_GLSL_130",h:{a:"grp",d:[{a:"define",c:"FXAA_GLSL_130",b:["0"]}]}}]},{a:"cond", d:[{a:"ifndef",c:"FXAA_HLSL_3",h:{a:"grp",d:[{a:"define",c:"FXAA_HLSL_3",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_HLSL_4",h:{a:"grp",d:[{a:"define",c:"FXAA_HLSL_4",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_HLSL_5",h:{a:"grp",d:[{a:"define",c:"FXAA_HLSL_5",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_GREEN_AS_LUMA",h:{a:"grp",d:[{a:"define",c:"FXAA_GREEN_AS_LUMA",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_EARLY_EXIT",h:{a:"grp",d:[{a:"define",c:"FXAA_EARLY_EXIT",b:["1"]}]}}]},{a:"cond", d:[{a:"ifndef",c:"FXAA_DISCARD",h:{a:"grp",d:[{a:"define",c:"FXAA_DISCARD",b:["0"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_FAST_PIXEL_OFFSET",h:{a:"grp",d:[{a:"cond",d:[{a:"ifdef",c:"GL_EXT_gpu_shader4",h:{a:"grp",d:[{a:"define",c:"FXAA_FAST_PIXEL_OFFSET",b:["1"]}]}}]},{a:"cond",d:[{a:"ifdef",c:"GL_NV_gpu_shader5",h:{a:"grp",d:[{a:"define",c:"FXAA_FAST_PIXEL_OFFSET",b:["1"]}]}}]},{a:"cond",d:[{a:"ifdef",c:"GL_ARB_gpu_shader5",h:{a:"grp",d:[{a:"define",c:"FXAA_FAST_PIXEL_OFFSET",b:["1"]}]}}]},{a:"cond", d:[{a:"ifndef",c:"FXAA_FAST_PIXEL_OFFSET",h:{a:"grp",d:[{a:"define",c:"FXAA_FAST_PIXEL_OFFSET",b:["0"]}]}}]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_GATHER4_ALPHA",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["FXAA_HLSL_5",1,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_GATHER4_ALPHA",b:["1"]}]}}]},{a:"cond",d:[{a:"ifdef",c:"GL_ARB_gpu_shader5",h:{a:"grp",d:[{a:"define",c:"FXAA_GATHER4_ALPHA",b:["1"]}]}}]},{a:"cond",d:[{a:"ifdef",c:"GL_NV_gpu_shader5",h:{a:"grp",d:[{a:"define",c:"FXAA_GATHER4_ALPHA", b:["1"]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_GATHER4_ALPHA",h:{a:"grp",d:[{a:"define",c:"FXAA_GATHER4_ALPHA",b:["0"]}]}}]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:[1],h:{a:"grp",d:[{a:"define",c:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:[0],h:{a:"grp",d:[{a:"define",c:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",b:["4.0"]}]}}]},{a:"cond",d:[{a:"if",g:[0],h:{a:"grp",d:[{a:"define",c:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS", b:["2.0"]}]}}]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:[1],h:{a:"grp",d:[{a:"define",c:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",b:["0.125"]}]}},{a:"else",h:{a:"grp",d:[{a:"define",c:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",b:["0.25"]}]}}]}]}}]},{a:"cond",d:[{a:"ifndef",c:"FXAA_QUALITY_PRESET",h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PRESET",b:["12"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",10,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define", c:"FXAA_QUALITY_PS",b:["3"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P1",b:["3.0"]},{a:"define",c:"FXAA_QUALITY_P2",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",11,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["4"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["3.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET", 12,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["5"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",13,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["6"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1", b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",14,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["7"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4", b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",15,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["8"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6", b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["12.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",20,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["3"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P1",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P2",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",21,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["4"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define", c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",22,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["5"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET", 23,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["6"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",24,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["7"]},{a:"define",c:"FXAA_QUALITY_P0", b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["3.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",25,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["8"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2", b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",26,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["9"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3", b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P8",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",27,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["10"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3", b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P8",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P9",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",28,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["11"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2", b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P8",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P9",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P10",b:["8.0"]}]}}]},{a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PRESET",29,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["12"]},{a:"define",c:"FXAA_QUALITY_P0", b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P2",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P6",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P8",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P9",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P10",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P11",b:["8.0"]}]}}]},{a:"cond", d:[{a:"if",g:["FXAA_QUALITY_PRESET",39,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"define",c:"FXAA_QUALITY_PS",b:["12"]},{a:"define",c:"FXAA_QUALITY_P0",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P1",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P2",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P3",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P4",b:["1.0"]},{a:"define",c:"FXAA_QUALITY_P5",b:["1.5"]},{a:"define",c:"FXAA_QUALITY_P6",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P7",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P8",b:["2.0"]}, {a:"define",c:"FXAA_QUALITY_P9",b:["2.0"]},{a:"define",c:"FXAA_QUALITY_P10",b:["4.0"]},{a:"define",c:"FXAA_QUALITY_P11",b:["8.0"]}]}}]},{a:"include",o:"color_util.glslf"},{a:"txt",b:"float lE ( float x ) { return clamp ( x , 0.0 , 1.0 ) ; }".split(" ")},{a:"cond",d:[{a:"if",g:["FXAA_BLEND4WEB",1,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 lF ( sampler2D t , vec2 p ) { return GLSL_TEXTURE ( t , p ) ; } vec4 lH ( sampler2D t , vec2 p , vec2 lG , vec2 r ) { return GLSL_TEXTURE ( t , p + ( lG * r ) ) ; }".split(" ")}]}}]}, {a:"txt",b:"vec4 fI ( vec2 eD , sampler2D hq , vec2 lI , float lJ , float lK , float lL ) { vec2 lM ; lM . x = eD . x ; lM . y = eD . y ;".split(" ")},{a:"cond",d:[{a:"if",g:["FXAA_GATHER4_ALPHA",1,{a:"equal_expr",i:2}],h:{a:"grp",d:[]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 lN = lF ( hq , lM ) ; float fu = ft ( lN ) ; float lO = ft ( lH ( hq , lM , vec2 ( 0 , 1 ) , lI . xy ) ) ; float lP = ft ( lH ( hq , lM , vec2 ( 1 , 0 ) , lI . xy ) ) ; float lQ = ft ( lH ( hq , lM , vec2 ( 0 , - 1 ) , lI . xy ) ) ; float lR = ft ( lH ( hq , lM , vec2 ( - 1 , 0 ) , lI . xy ) ) ;".split(" ")}]}}]}, {a:"txt",b:"float lS = max ( lO , fu ) ; float lT = min ( lO , fu ) ; float lU = max ( lP , lS ) ; float lV = min ( lP , lT ) ; float lW = max ( lQ , lR ) ; float lX = min ( lQ , lR ) ; float lY = max ( lW , lU ) ; float lZ = min ( lX , lV ) ; float l_ = lY * lK ; float ma = lY - lZ ; float mb = max ( lL , l_ ) ; bool mc = ma < mb ; if ( mc ) return lN ;".split(" ")},{a:"cond",d:[{a:"if",g:["FXAA_GATHER4_ALPHA",0,{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float fv = ft ( lH ( hq , lM , vec2 ( - 1 , - 1 ) , lI . xy ) ) ; float fy = ft ( lH ( hq , lM , vec2 ( 1 , 1 ) , lI . xy ) ) ; float fw = ft ( lH ( hq , lM , vec2 ( 1 , - 1 ) , lI . xy ) ) ; float fx = ft ( lH ( hq , lM , vec2 ( - 1 , 1 ) , lI . xy ) ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[]}}]},{a:"txt",b:"float md = lQ + lO ; float me = lR + lP ; float mf = 1.0 / ma ; float mg = md + me ; float mh = ( - 2.0 * fu ) + md ; float mi = ( - 2.0 * fu ) + me ; float mj = fw + fy ; float mk = fv + fw ; float ml = ( - 2.0 * lP ) + mj ; float mm = ( - 2.0 * lQ ) + mk ; float mn = fv + fx ; float mo = fx + fy ; float mp = ( abs ( mh ) * 2.0 ) + abs ( ml ) ; float mq = ( abs ( mi ) * 2.0 ) + abs ( mm ) ; float mr = ( - 2.0 * lR ) + mn ; float ms = ( - 2.0 * lO ) + mo ; float mt = abs ( mr ) + mp ; float mu = abs ( ms ) + mq ; float mv = mn + mj ; float mw = lI . x ; bool mx = mt >= mu ; float my = mg * 2.0 + mv ; if ( ! mx ) lQ = lR ; if ( ! mx ) lO = lP ; if ( mx ) mw = lI . y ; float mz = ( my * ( 1.0 / 12.0 ) ) - fu ; float mA = lQ - fu ; float mB = lO - fu ; float mC = lQ + fu ; float mD = lO + fu ; bool mE = abs ( mA ) >= abs ( mB ) ; float mF = max ( abs ( mA ) , abs ( mB ) ) ; if ( mE ) mw = - mw ; float mG = lE ( abs ( mz ) * mf ) ; vec2 mH ; mH . x = lM . x ; mH . y = lM . y ; vec2 mI ; mI . x = ( ! mx ) ? 0.0 : lI . x ; mI . y = ( mx ) ? 0.0 : lI . y ; if ( ! mx ) mH . x += mw * 0.5 ; if ( mx ) mH . y += mw * 0.5 ; vec2 mJ ; mJ . x = mH . x - mI . x * FXAA_QUALITY_P0 ; mJ . y = mH . y - mI . y * FXAA_QUALITY_P0 ; vec2 mK ; mK . x = mH . x + mI . x * FXAA_QUALITY_P0 ; mK . y = mH . y + mI . y * FXAA_QUALITY_P0 ; float mL = ( ( - 2.0 ) * mG ) + 3.0 ; float mM = ft ( lF ( hq , mJ ) ) ; float mN = mG * mG ; float mO = ft ( lF ( hq , mK ) ) ; if ( ! mE ) mC = mD ; float mP = mF * 1.0 / 4.0 ; float mQ = fu - mC * 0.5 ; float mR = mL * mN ; bool mS = mQ < 0.0 ; mM -= mC * 0.5 ; mO -= mC * 0.5 ; bool mT = abs ( mM ) >= mP ; bool mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P1 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P1 ; bool mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P1 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P1 ; if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P2 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P2 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P2 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P2 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",3,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P3 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P3 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P3 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P3 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",4,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P4 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P4 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P4 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P4 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",5,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P5 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P5 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P5 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P5 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",6,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P6 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P6 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P6 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P6 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",7,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P7 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P7 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P7 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P7 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",8,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P8 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P8 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P8 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P8 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",9,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P9 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P9 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P9 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P9 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",10,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P10 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P10 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P10 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P10 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",11,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P11 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P11 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P11 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P11 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_QUALITY_PS",12,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( mV ) { if ( ! mT ) mM = ft ( lF ( hq , mJ . xy ) ) ; if ( ! mU ) mO = ft ( lF ( hq , mK . xy ) ) ; if ( ! mT ) mM = mM - mC * 0.5 ; if ( ! mU ) mO = mO - mC * 0.5 ; mT = abs ( mM ) >= mP ; mU = abs ( mO ) >= mP ; if ( ! mT ) mJ . x -= mI . x * FXAA_QUALITY_P12 ; if ( ! mT ) mJ . y -= mI . y * FXAA_QUALITY_P12 ; mV = ( ! mT ) || ( ! mU ) ; if ( ! mU ) mK . x += mI . x * FXAA_QUALITY_P12 ; if ( ! mU ) mK . y += mI . y * FXAA_QUALITY_P12 ; }".split(" ")}]}}]}, {a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"txt",b:"} float mW = lM . x - mJ . x ; float mX = mK . x - lM . x ; if ( ! mx ) mW = lM . y - mJ . y ; if ( ! mx ) mX = mK . y - lM . y ; bool mY = ( mM < 0.0 ) != mS ; float mZ = ( mX + mW ) ; bool m_ = ( mO < 0.0 ) != mS ; float na = 1.0 / mZ ; bool nb = mW < mX ; float nc = min ( mW , mX ) ; bool nd = nb ? mY : m_ ; float ne = mR * mR ; float nf = ( nc * ( - na ) ) + 0.5 ; float ng = ne * lJ ; float nh = nd ? nf : 0.0 ; float ni = max ( nh , ng ) ; if ( ! mx ) lM . x += ni * mw ; if ( mx ) lM . y += ni * mw ;".split(" ")}, {a:"cond",d:[{a:"if",g:["FXAA_DISCARD",1,{a:"equal_expr",i:2},"FXAA_BLEND4WEB",1,{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return lF ( hq , lM ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"return vec4 ( lF ( hq , lM ) . xyz , fu ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]};a["include/halo_color.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"HALO_COLOR_GLSLF",h:{a:"grp",d:[{a:"define",c:"HALO_COLOR_GLSLF",b:[""]},{a:"var",c:"NUM_RINGS",b:["0"]},{a:"var", c:"NUM_LINES",b:["0"]},{a:"var",c:"NUM_STARS",b:["0"]},{a:"var",c:"SKY_STARS",b:["0"]},{a:"var",c:"WAVES_HEIGHT",b:["1.0"]},{a:"var",c:"WATER_EFFECTS",b:["0"]},{a:"var",c:"DISABLE_FOG",b:["0"]},{a:"cond",d:[{a:"if",g:["NUM_RINGS","NUM_LINES",{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const int nj = NUM_RINGS ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"const int nj = NUM_LINES ;".split(" ")}]}}]},{a:"txt",b:"float nk ( float x ) { return x - floor ( x * ( 1.0 / 0.01 ) ) * 0.01 ; }".split(" ")}, {a:"cond",d:[{a:"if",g:["NUM_RINGS"],h:{a:"grp",d:[{a:"txt",b:"void nr ( inout float nl , in float nm [ nj ] , in float nn ) { for ( int a = 0 ; a < NUM_RINGS ; a ++ ) { float no = 40.0 * nm [ a ] ; float np = 300.0 * ( nk ( no ) - 0.005 ) ; float nq = no ; float lo = abs ( nq * ( u_halo_size * np - nn ) ) ; nl += 1.0 - min ( lo , 1.0 ) ; } }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_LINES"],h:{a:"grp",d:[{a:"txt",b:"void nw ( inout float ns , in float nm [ nj ] , in float aC ) { for ( int a = 0 ; a < NUM_LINES ; a ++ ) { float nt = nm [ a ] ; float nu = nt ; float nv = 1000.0 * ( nk ( nt ) - 0.005 ) ; float lo = 20.0 * abs ( nu * A . x + nv * A . y ) ; ns += 1.0 - min ( lo , 1.0 ) ; } ns *= aC ; }".split(" ")}]}}]}, {a:"txt",b:"void nA ( inout float aC , in vec2 bE ) { float nx , bm ; bm = atan ( bE . y , bE . x ) ; bm *= ( 1.0 + 0.25 * float ( NUM_STARS ) ) ; float ny = cos ( bm ) ; float nz = sin ( bm ) ; bm = ( ny * bE . x + nz * bE . y ) * ( ny * bE . y - nz * bE . x ) ; nx = abs ( bm ) ; if ( nx < 1.0 ) { nx = ( 0.01 * u_halo_size ) / ( nx ) ; aC *= sqrt ( min ( nx , 1.0 ) ) ; } } vec4 aV ( ) { float aC = ( A . x * A . x + A . y * A . y ) ; float nn = sqrt ( aC ) ; aC = max ( 1.0 - aC , 0.0 ) ; aC = pow ( aC , u_halo_hardness ) ; float J = u_diffuse_color . a ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NUM_RINGS","NUM_LINES",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float nm [ nj ] ; for ( int bQ = 0 ; bQ < nj ; bQ ++ ) { nm [ bQ ] = fract ( aU / float ( bQ + 1 ) ) - 1.0 ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_RINGS"],h:{a:"grp",d:[{a:"txt",b:"float nl = 0.0 ; nr ( nl , nm , nn ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_LINES"],h:{a:"grp",d:[{a:"txt",b:"float ns = 0.0 ; nw ( ns , nm , aC ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_STARS"], h:{a:"grp",d:[{a:"txt",b:"nA ( aC , A ) ;".split(" ")}]}}]},{a:"txt",b:"aC *= J ; vec3 aG = u_diffuse_color . rgb ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_RINGS"],h:{a:"grp",d:[{a:"txt",b:"nl *= aC ; aG += u_halo_rings_color * nl ; aC += nl ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_LINES"],h:{a:"grp",d:[{a:"txt",b:"ns *= J ; aG += u_halo_lines_color * ns ; aC += ns ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["SKY_STARS"],h:{a:"grp",d:[{a:"txt",b:"aC *= max ( 1.0 - 2.0 * u_sun_intensity . x , 0.0 ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WATER_EFFECTS","DISABLE_FOG",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float kr = u_halo_stars_blend * ( aT . y - u_halo_stars_height ) ; aC *= clamp ( kr , 0.0 , 1.0 ) ; aC *= min ( u_cam_water_depth + 2.0 * WAVES_HEIGHT , 1.0 ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:"vec4 nB = vec4 ( aG , aC ) ; return nB ; }".split(" ")}]}}]}]};a["include/lighting_nodes.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"LIGHTING_NODES_GLSLF",h:{a:"grp", d:[{a:"define",c:"LIGHTING_NODES_GLSLF",b:[""]},{a:"include",o:"std.glsl"},{a:"node",c:"LIGHTING_BEGIN",m:[],l:[{a:"node_out",c:"nP",f:["vec3"],e:!1},{a:"node_out",c:"nQ",f:["vec3"],e:!1},{a:"node_out",c:"nR",f:["vec3"],e:!1},{a:"node_out",c:"nS",f:["vec3"],e:!0},{a:"node_out",c:"nT",f:["vec3"],e:!0},{a:"node_out",c:"nU",f:["vec2"],e:!0},{a:"node_out",c:"nV",f:["vec2"],e:!0},{a:"node_out",c:"nW",f:["vec4"],e:!0},{a:"node_out",c:"nX",f:["float"],e:!0},{a:"node_out",c:"nY",f:["vec4"],e:!0}],j:[{a:"txt", b:"nP = nC ; nQ = nD ; nR = nE ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nS"],j:[{a:"txt",b:["nS","=","nF",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nT"],j:[{a:"txt",b:["nT","=","nH",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nV"],j:[{a:"txt",b:["nV","=","nJ",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nU"],j:[{a:"txt",b:["nU","=","nK",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nW"],j:[{a:"txt",b:["nW","=","nL",";"]}]}]},{a:"node_cond",d:[{a:"node_if", g:["USE_OUT_nX"],j:[{a:"txt",b:["nX","=","nM",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_nY"],j:[{a:"txt",b:["nY","=","nN",";"]}]}]}]},{a:"node",c:"LIGHTING_AMBIENT",m:[],l:[{a:"node_in",c:"nZ",f:["vec3"],e:!1},{a:"node_in",c:"n_",f:["vec3"],e:!1},{a:"node_in",c:"oa",f:["vec3"],e:!1},{a:"node_out",c:"ob",f:["vec4"],e:!1},{a:"node_out",c:"oc",f:["vec3"],e:!1}],j:[{a:"txt",b:"ob = vec4 ( nZ + oa * n_ , _0_0 ) ; oc = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"LIGHTING_LAMP",m:[{a:"node_var", c:"LAMP_TYPE",b:["HEMI"]},{a:"node_var",c:"LAMP_IND",b:["0"]},{a:"node_var",c:"LAMP_SPOT_SIZE",b:["0.8"]},{a:"node_var",c:"LAMP_SPOT_BLEND",b:["0.03"]},{a:"node_var",c:"LAMP_LIGHT_DIST",b:["30.0"]},{a:"node_var",c:"LAMP_SHADOW_MAP_IND",b:["-","1"]},{a:"node_var",c:"LAMP_USE_SPHERE",b:["0"]}],l:[{a:"node_in",c:"od",f:["vec4"],e:!1},{a:"node_out",c:"oe",f:["vec3"],e:!1},{a:"node_out",c:"of",f:["vec2"],e:!1},{a:"node_out",c:"og",f:["vec3"],e:!1},{a:"node_out",c:"oh",f:["float"],e:!1}],j:[{a:"txt",b:"of = vec2 ( u_light_positions [ LAMP_IND ] . w , u_light_color_intensities [ LAMP_IND ] . w ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","HEMI",{a:"equal_expr",i:2}],j:[{a:"txt",b:["oh","=","_0_5",";"]}]},{a:"node_else",j:[{a:"txt",b:["oh","=","_0_0",";"]}]}]},{a:"txt",b:"og = u_light_color_intensities [ LAMP_IND ] . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_SHADOW_MAP_IND",1,{a:"negative_expr",i:1},{a:"non_equal_expr",i:2}],j:[{a:"txt",b:"og *= od [ LAMP_SHADOW_MAP_IND ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2},"LAMP_TYPE", "POINT",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vec3 oi = u_light_positions [ LAMP_IND ] . xyz ; oe = oi - nG ; float aC = length ( oe ) ; float oj = LAMP_LIGHT_DIST / ( LAMP_LIGHT_DIST + aC * aC ) ; oe = normalize ( oe ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vec3 ok = u_light_directions [ LAMP_IND ] ; float ol = dot ( oe , ok ) ; ol *= smoothstep ( _0_0 , _1_0 , ( ol - LAMP_SPOT_SIZE ) / LAMP_SPOT_BLEND ) ; oj *= ol ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["LAMP_USE_SPHERE"],j:[{a:"txt",b:"oj *= max ( LAMP_LIGHT_DIST - aC , _0_0 ) / LAMP_LIGHT_DIST ;".split(" ")}]}]},{a:"txt",b:["og","*=","oj",";"]}]},{a:"node_else",j:[{a:"txt",b:"oe = u_light_directions [ LAMP_IND ] ;".split(" ")}]}]}]},{a:"node",c:"DIFFUSE_FRESNEL",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"om",f:["vec3"],e:!1},{a:"node_in",c:"on",f:["vec2"],e:!1},{a:"node_in",c:"oo",f:["vec3"],e:!1},{a:"node_in",c:"op",f:["float"],e:!1}, {a:"node_in",c:"oq",f:["vec2"],e:!1},{a:"node_out",c:"or",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( om , B . xyz ) ; oo = cross ( os , B . xyz ) ; oo = - normalize ( oo ) ;".split(" ")}]}]},{a:"txt",b:"or = _0_0 ; if ( on . r != _0_0 ) { float ot = ( _1_0 - op ) * dot ( oo , om ) + op ; if ( oq [ 0 ] == _0_0 ) { or = _1_0 ; } else { float t = _1_0 + abs ( ot ) ; t = oq [ 1 ] + ( _1_0 - oq [ 1 ] ) * pow ( t , oq [ 0 ] ) ; or = clamp ( t , _0_0 , _1_0 ) ; } or = max ( or , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_LAMBERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ou",f:["vec3"],e:!1},{a:"node_in",c:"ov",f:["vec2"],e:!1},{a:"node_in",c:"ow",f:["vec3"],e:!1},{a:"node_in",c:"ox",f:["float"],e:!1},{a:"node_out",c:"oy",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( ou , B . xyz ) ; ow = cross ( os , B . xyz ) ; ow = - normalize ( ow ) ;".split(" ")}]}]},{a:"txt",b:"oy = _0_0 ; if ( ov . r != _0_0 ) { float ot = ( _1_0 - ox ) * dot ( ow , ou ) + ox ; oy = max ( ot , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_OREN_NAYAR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oz",f:["vec3"],e:!1},{a:"node_in",c:"oA",f:["vec2"],e:!1},{a:"node_in",c:"oB",f:["vec3"],e:!1},{a:"node_in",c:"oC",f:["float"],e:!1},{a:"node_in",c:"oD",f:["vec2"],e:!1},{a:"node_out",c:"oE",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oz , B . xyz ) ; oB = cross ( os , B . xyz ) ; oB = - normalize ( oB ) ;".split(" ")}]}]},{a:"txt", b:"oE = _0_0 ; if ( oA . r != _0_0 ) { float ot = ( _1_0 - oC ) * dot ( oB , oz ) + oC ; if ( oD [ 0 ] > _0_0 ) { float oF = max ( dot ( oB , nI ) , _0_0 ) ; float oG = oD [ 0 ] * oD [ 0 ] ; float cg = _1_0 - _0_5 * ( oG / ( oG + 0.33 ) ) ; vec3 oH = oz - ot * oB ; vec3 oI = nI - oF * oB ; if ( length ( oH ) == _0_0 || length ( oI ) == _0_0 || abs ( ot ) > _1_0 || abs ( oF ) > _1_0 ) oE = ot * cg ; else { float oJ = acos ( ot ) ; float oK = acos ( oF ) ; vec3 oL = normalize ( oH ) ; vec3 oM = normalize ( oI ) ; float a , b ; a = max ( oJ , oK ) ; b = min ( oJ , oK ) ; b *= 0.95 ; float t = max ( dot ( oL , oM ) , _0_0 ) ; float oN = 0.45 * ( oG / ( oG + 0.09 ) ) ; oE = ot * ( cg + ( oN * t * sin ( a ) * tan ( b ) ) ) ; } } else oE = ot ; oE = max ( oE , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_MINNAERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oO",f:["vec3"],e:!1},{a:"node_in",c:"oP",f:["vec2"],e:!1},{a:"node_in",c:"oQ",f:["vec3"],e:!1},{a:"node_in",c:"oR",f:["float"],e:!1},{a:"node_in",c:"oS",f:["vec2"],e:!1},{a:"node_out",c:"oT",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oO , B . xyz ) ; oQ = cross ( os , B . xyz ) ; oQ = - normalize ( oQ ) ;".split(" ")}]}]},{a:"txt", b:"oT = _0_0 ; if ( oP . r != _0_0 ) { float ot = ( _1_0 - oR ) * dot ( oQ , oO ) + oR ; float oF = max ( dot ( oQ , nI ) , _0_0 ) ; if ( oS [ 0 ] <= _1_0 ) oT = ot * pow ( max ( oF * ot , 0.1 ) , oS [ 0 ] - _1_0 ) ; else oT = ot * pow ( 1.0001 - oF , oS [ 0 ] - _1_0 ) ; oT = max ( oT , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oU",f:["vec3"],e:!1},{a:"node_in",c:"oV",f:["vec2"],e:!1},{a:"node_in",c:"oW",f:["vec3"],e:!1}, {a:"node_in",c:"oX",f:["float"],e:!1},{a:"node_in",c:"oY",f:["vec2"],e:!1},{a:"node_out",c:"oZ",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oU , B . xyz ) ; oW = cross ( os , B . xyz ) ; oW = - normalize ( oW ) ;".split(" ")}]}]},{a:"txt",b:"oZ = _0_0 ; if ( oV . r != _0_0 ) { float ot = ( _1_0 - oX ) * dot ( oW , oU ) + oX ; float o_ = acos ( ot ) ; if ( o_ < oY [ 0 ] ) oZ = _1_0 ; else if ( o_ > ( oY [ 0 ] + oY [ 1 ] ) || oY [ 1 ] == _0_0 ) oZ = _0_0 ; else oZ = _1_0 - ( ( o_ - oY [ 0 ] ) / oY [ 1 ] ) ; oZ = max ( oZ , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"SPECULAR_PHONG",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pa",f:["vec3"],e:!1},{a:"node_in",c:"pb",f:["vec2"],e:!1},{a:"node_in",c:"pc",f:["vec3"],e:!1},{a:"node_in",c:"pd",f:["float"],e:!1},{a:"node_in",c:"pe",f:["vec2"],e:!1},{a:"node_out",c:"pf",f:["float"],e:!1}],j:[{a:"txt",b:"pf = _0_0 ; if ( pb . g != _0_0 ) { vec3 pg = normalize ( pa + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pd == _0_0 ) { pf = dot ( B . xyz , pg ) ; pf = sqrt ( _1_0 - pf * pf ) ; }".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"pf = ( _1_0 - pd ) * max ( dot ( pc , pg ) , _0_0 ) + pd ;".split(" ")}]}]},{a:"txt",b:"pf = pow ( pf , pe [ 0 ] ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_COOKTORR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ph",f:["vec3"],e:!1},{a:"node_in",c:"pi",f:["vec2"],e:!1},{a:"node_in",c:"pj",f:["vec3"],e:!1},{a:"node_in",c:"pk",f:["float"],e:!1},{a:"node_in",c:"pl",f:["vec2"],e:!1},{a:"node_out",c:"pm",f:["float"],e:!1}],j:[{a:"txt",b:"pm = _0_0 ; if ( pi . g != _0_0 ) { vec3 pg = normalize ( ph + nI ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pk == _0_0 ) { pm = dot ( B . xyz , pg ) ; pm = sqrt ( _1_0 - pm * pm ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"pm = max ( dot ( pj , pg ) , _0_0 ) ; pm = ( _1_0 - pk ) * pm + pk ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float oF = max ( dot ( B . xyz , nI ) , _0_0 ) ; oF = sqrt ( _1_0 - oF * oF ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float oF = max ( dot ( pj , nI ) , _0_0 ) ;".split(" ")}]}]}, {a:"txt",b:"pm = pow ( pm , pl [ 0 ] ) ; pm = pm / ( 0.1 + oF ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_WARDISO",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pn",f:["vec3"],e:!1},{a:"node_in",c:"po",f:["vec2"],e:!1},{a:"node_in",c:"pr",f:["vec3"],e:!1},{a:"node_in",c:"pu",f:["float"],e:!1},{a:"node_in",c:"pv",f:["vec2"],e:!1},{a:"node_out",c:"pw",f:["float"],e:!1}],j:[{a:"txt",b:"pw = _0_0 ; if ( po . g != _0_0 ) { vec3 pg = normalize ( pn + nI ) ;".split(" ")},{a:"node_cond", d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = _0_0 ; float oF = _0_0 ; float py = _0_0 ; if ( pu == _0_0 ) { px = dot ( B . xyz , pg ) ; oF = dot ( B . xyz , nI ) ; py = dot ( B . xyz , pn ) ; px = sqrt ( _1_0 - px * px ) ; oF = sqrt ( _1_0 - oF * oF ) ; py = sqrt ( _1_0 - py * py ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = max ( dot ( pr , pg ) , 0.01 ) ; float oF = max ( dot ( pr , nI ) , 0.01 ) ; float py = max ( dot ( pr , pn ) , 0.01 ) ;".split(" ")}]}]}, {a:"txt",b:"float bm = tan ( acos ( px ) ) ; float J = max ( pv [ 0 ] , 0.01 ) ; pw = py * ( _1_0 / ( 4.0 * M_PI * J * J ) ) * ( exp ( - ( bm * bm ) / ( J * J ) ) / ( sqrt ( oF * py ) ) ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pz",f:["vec3"],e:!1},{a:"node_in",c:"pA",f:["vec2"],e:!1},{a:"node_in",c:"pB",f:["vec3"],e:!1},{a:"node_in",c:"pC",f:["float"],e:!1},{a:"node_in",c:"pD",f:["vec2"],e:!1},{a:"node_out",c:"pE",f:["float"], e:!1}],j:[{a:"txt",b:"pE = _0_0 ; if ( pA . g != _0_0 ) { vec3 bO = normalize ( pz + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float pF = dot ( bO , B . xyz ) ; float bm = pD [ 0 ] + pD [ 1 ] ; if ( pC == _0_0 ) bm = acos ( sqrt ( _1_0 - pF * pF ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float bm = acos ( dot ( bO , pB ) ) ;".split(" ")}]}]},{a:"txt",b:"if ( bm < pD [ 0 ] ) pE = _1_0 ; else if ( bm >= pD [ 0 ] + pD [ 1 ] || pD [ 1 ] == _0_0 ) pE = _0_0 ; else pE = _1_0 - ( bm - pD [ 0 ] ) / pD [ 1 ] ; }".split(" ")}]}, {a:"node",c:"SPECULAR_BLINN",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pG",f:["vec3"],e:!1},{a:"node_in",c:"pH",f:["vec2"],e:!1},{a:"node_in",c:"pI",f:["vec3"],e:!1},{a:"node_in",c:"pJ",f:["float"],e:!1},{a:"node_in",c:"pK",f:["vec2"],e:!1},{a:"node_out",c:"pL",f:["float"],e:!1}],j:[{a:"txt",b:"float pM = pK [ 0 ] ; float pN = pK [ 1 ] ; pL = _0_0 ; if ( pH . g != _0_0 ) { if ( pM < 1.0 || pN == _0_0 ) pL = _0_0 ; else { if ( pN < 100.0 ) pN = sqrt ( 1.0 / pN ) ; else pN = 10.0 / pN ; vec3 pg = normalize ( nI + pG ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = 0.0 ; if ( pJ == _0_0 ) { float pO = dot ( B . xyz , pg ) ; px = sqrt ( _1_0 - pO * pO ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = ( _1_0 - pJ ) * max ( dot ( pI , pg ) , _0_0 ) + pJ ;".split(" ")}]}]},{a:"txt",b:"if ( px < _0_0 ) pL = _0_0 ; else { float oF = max ( dot ( pI , nI ) , 0.01 ) ; float py = dot ( pI , pG ) ; if ( py <= 0.01 ) pL = _0_0 ; else { float pP = max ( dot ( nI , pg ) , 0.01 ) ; float a = _1_0 ; float b = ( 2.0 * px * oF ) / pP ; float da = ( 2.0 * px * py ) / pP ; float g = min ( min ( a , b ) , da ) ; float p = sqrt ( pow ( pM , 2.0 ) + pow ( pP , 2.0 ) - _1_0 ) ; float lw = pow ( p - pP , 2.0 ) / pow ( p + pP , 2.0 ) * ( _1_0 + pow ( pP * ( p + pP ) - _1_0 , 2.0 ) / pow ( pP * ( p - pP ) + _1_0 , 2.0 ) ) ; float o_ = acos ( px ) ; pL = max ( lw * g * exp ( - pow ( o_ , 2.0 ) / ( 2.0 * pow ( pN , 2.0 ) ) ) , _0_0 ) ; } } } }".split(" ")}]}, {a:"node",c:"LIGHTING_APPLY",m:[],l:[{a:"node_in",c:"pQ",f:["vec4"],e:!1},{a:"node_in",c:"pR",f:["vec3"],e:!1},{a:"node_in",c:"pS",f:["float"],e:!1},{a:"node_in",c:"pT",f:["float"],e:!1},{a:"node_in",c:"pU",f:["vec3"],e:!1},{a:"node_in",c:"pV",f:["vec3"],e:!1},{a:"node_in",c:"pW",f:["vec4"],e:!1},{a:"node_in",c:"pX",f:["vec3"],e:!1},{a:"node_in",c:"pY",f:["vec3"],e:!1},{a:"node_in",c:"pZ",f:["vec3"],e:!1},{a:"node_in",c:"p_",f:["float"],e:!1},{a:"node_out",c:"qa",f:["vec4"],e:!1},{a:"node_out",c:"qb", f:["vec3"],e:!1}],j:[{a:"txt",b:"qb = pR + pZ * pY * pT ; qa = pQ + vec4 ( pZ * pX * pS , pT ) ;".split(" ")}]},{a:"node",c:"LIGHTING_END",m:[],l:[{a:"node_in",c:"qc",f:["vec4"],e:!1},{a:"node_in",c:"qd",f:["vec3"],e:!1}],j:[{a:"txt",b:"D = qc . rgb ; nO = qd ;".split(" ")}]},{a:"nodes_global"},{a:"txt",b:"void cp ( vec3 nC , vec3 nD , vec3 nE , vec3 nF , vec3 nG , vec3 nH , vec3 nI , vec2 nJ , vec2 nK , vec4 nL , float nM , vec4 nN , out vec3 D , out vec3 nO ) {".split(" ")},{a:"nodes_main"},{a:"txt", b:["}"]}]}}]}]};a["include/math.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"MATH_GLSLV",h:{a:"grp",d:[{a:"define",c:"MATH_GLSLV",b:[""]},{a:"var",c:"EPSILON",b:["0.000001"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"USE_POSITION_CLIP",b:["0"]},{a:"var",c:"SOFT_PARTICLES",b:["0"]},{a:"include",o:"std.glsl"},{a:"txt",b:"struct aj { vec3 N ; vec3 ac ; vec3 Q ; vec3 aq ; vec3 R ; vec3 P ; vec3 aG ; } ; bool ei ( vec3 a , vec3 b ) { return any ( lessThan ( abs ( a - b ) , vec3 ( EPSILON ) ) ) ; } vec3 O ( in vec4 q , in vec3 ki ) { return ki + 2.0 * cross ( q . xyz , cross ( q . xyz , ki ) + q . w * ki ) ; } vec4 kj ( in vec4 gI ) { return vec4 ( - gI . xyz , gI . w ) ; } vec4 qe ( in vec4 a , in vec4 b ) { vec4 gK ; gK . x = a . x * b . w + a . w * b . x + a . y * b . z - a . z * b . y ; gK . y = a . y * b . w + a . w * b . y + a . z * b . x - a . x * b . z ; gK . z = a . z * b . w + a . w * b . z + a . x * b . y - a . y * b . x ; gK . w = a . w * b . w - a . x * b . x - a . y * b . y - a . z * b . z ; return gK ; } vec4 cI ( in vec3 qf , in float qg ) { vec4 gK ; qg = qg * 0.5 ; float s = sin ( qg ) ; gK . x = s * qf [ 0 ] ; gK . y = s * qf [ 1 ] ; gK . z = s * qf [ 2 ] ; gK . w = cos ( qg ) ; return gK ; } vec4 qj ( in vec3 be , in vec3 qh ) { vec4 gK ; float df = dot ( qh , be ) ; vec3 qi = cross ( qh , be ) ; gK . xyz = qi . xyz ; gK . w = 1.0 + df ; return normalize ( gK ) ; } vec3 ql ( vec4 qk , vec4 gI , vec3 gJ ) { vec3 gK = gJ * qk . w ; gK = O ( gI , gK ) ; gK += qk . xyz ; return gK ; } vec3 ad ( mat3 qm , vec3 gJ ) { vec3 gK = gJ * qm [ 1 ] [ 0 ] ; vec4 gI = vec4 ( qm [ 1 ] [ 1 ] , qm [ 1 ] [ 2 ] , qm [ 2 ] [ 0 ] , qm [ 2 ] [ 1 ] ) ; gK = O ( gI , gK ) ; gK += qm [ 0 ] ; return gK ; } vec3 qn ( vec4 qk , vec4 gI , vec3 be ) { vec3 gK = be * qk . w ; gK = O ( gI , gK ) ; return gK ; } vec3 T ( mat3 qm , vec3 be ) { vec3 gK = be * qm [ 1 ] [ 0 ] ; vec4 gI = vec4 ( qm [ 1 ] [ 1 ] , qm [ 1 ] [ 2 ] , qm [ 2 ] [ 0 ] , qm [ 2 ] [ 1 ] ) ; gK = O ( gI , gK ) ; return gK ; } vec3 qo ( vec4 qk , vec4 gI , vec3 gJ ) { vec3 gK = gJ - qk . xyz ; gK = O ( kj ( gI ) , gK ) ; gK /= qk . w ; return gK ; } vec3 qr ( vec4 qk , vec4 gI , vec3 be ) { return O ( kj ( gI ) , be ) / qk . w ; } mat4 qu ( ) { return mat4 ( _1_0 , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 ) ; } mat4 qv ( float bm ) { return mat4 ( _1_0 , _0_0 , _0_0 , _0_0 , _0_0 , cos ( bm ) , sin ( bm ) , _0_0 , _0_0 , - sin ( bm ) , cos ( bm ) , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 ) ; } mat4 qw ( float bm ) { return mat4 ( cos ( bm ) , _0_0 , - sin ( bm ) , _0_0 , _0_0 , _1_0 , _0_0 , _0_0 , sin ( bm ) , _0_0 , cos ( bm ) , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 ) ; } mat4 qx ( float bm ) { return mat4 ( cos ( bm ) , sin ( bm ) , _0_0 , _0_0 , - sin ( bm ) , cos ( bm ) , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 , _0_0 , _0_0 , _0_0 , _0_0 , _1_0 ) ; } aj lk ( in aj ki ) { return aj ( ki . N , ki . ac , normalize ( ki . Q ) , normalize ( ki . aq ) , normalize ( ki . R ) , normalize ( ki . P ) , ki . aG ) ; }".split(" ")}, {a:"cond",d:[{a:"if",g:["SOFT_PARTICLES","REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2},"REFRACTIVE","USE_POSITION_CLIP",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:"vec3 as ( vec4 f ) { float fj = f . x ; float fk = f . y ; float fl = f . w ; vec3 qy ; qy . x = ( fj + fl ) / 2.0 ; qy . y = ( fk + fl ) / 2.0 ; qy . z = fl ; return qy ; }".split(" ")}]}}]},{a:"txt",b:"mat3 cG ( ) { return mat3 ( _0_0 , _0_0 , _0_0 , _1_0 , _0_0 , _0_0 , _0_0 , _1_0 , _0_0 ) ; } mat4 aR ( mat3 t ) { mat4 qz ; qz [ 0 ] [ 0 ] = ( _1_0 - ( t [ 1 ] [ 2 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) + t [ 2 ] [ 0 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) ) ) * t [ 1 ] [ 0 ] ; qz [ 0 ] [ 1 ] = ( t [ 1 ] [ 1 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) + t [ 2 ] [ 1 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 0 ] [ 2 ] = ( t [ 1 ] [ 1 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) - t [ 2 ] [ 1 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 0 ] [ 3 ] = _0_0 ; qz [ 1 ] [ 0 ] = ( t [ 1 ] [ 1 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) - t [ 2 ] [ 1 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 1 ] [ 1 ] = ( _1_0 - ( t [ 1 ] [ 1 ] * ( t [ 1 ] [ 1 ] + t [ 1 ] [ 1 ] ) + t [ 2 ] [ 0 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) ) ) * t [ 1 ] [ 0 ] ; qz [ 1 ] [ 2 ] = ( t [ 1 ] [ 2 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) + t [ 2 ] [ 1 ] * ( t [ 1 ] [ 1 ] + t [ 1 ] [ 1 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 1 ] [ 3 ] = _0_0 ; qz [ 2 ] [ 0 ] = ( t [ 1 ] [ 1 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) + t [ 2 ] [ 1 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 2 ] [ 1 ] = ( t [ 1 ] [ 2 ] * ( t [ 2 ] [ 0 ] + t [ 2 ] [ 0 ] ) - t [ 2 ] [ 1 ] * ( t [ 1 ] [ 1 ] + t [ 1 ] [ 1 ] ) ) * t [ 1 ] [ 0 ] ; qz [ 2 ] [ 2 ] = ( _1_0 - ( t [ 1 ] [ 1 ] * ( t [ 1 ] [ 1 ] + t [ 1 ] [ 1 ] ) + t [ 1 ] [ 2 ] * ( t [ 1 ] [ 2 ] + t [ 1 ] [ 2 ] ) ) ) * t [ 1 ] [ 0 ] ; qz [ 2 ] [ 3 ] = _0_0 ; qz [ 3 ] [ 0 ] = t [ 0 ] [ 0 ] ; qz [ 3 ] [ 1 ] = t [ 0 ] [ 1 ] ; qz [ 3 ] [ 2 ] = t [ 0 ] [ 2 ] ; qz [ 3 ] [ 3 ] = 1.0 ; return qz ; } mat3 aO ( in mat3 qm , in mat3 qA ) { mat3 gK ; vec3 gJ = qA [ 0 ] ; vec4 qk = vec4 ( qm [ 0 ] , qm [ 1 ] [ 0 ] ) ; vec4 gI = vec4 ( qm [ 1 ] [ 1 ] , qm [ 1 ] [ 2 ] , qm [ 2 ] [ 0 ] , qm [ 2 ] [ 1 ] ) ; gK [ 0 ] = ql ( qk , gI , gJ ) ; gK [ 1 ] [ 0 ] = qm [ 1 ] [ 0 ] * qA [ 1 ] [ 0 ] ; gK [ 1 ] [ 1 ] = qm [ 1 ] [ 1 ] * qA [ 2 ] [ 1 ] + qm [ 2 ] [ 1 ] * qA [ 1 ] [ 1 ] + qm [ 1 ] [ 2 ] * qA [ 2 ] [ 0 ] - qm [ 2 ] [ 0 ] * qA [ 1 ] [ 2 ] ; gK [ 1 ] [ 2 ] = qm [ 1 ] [ 2 ] * qA [ 2 ] [ 1 ] + qm [ 2 ] [ 1 ] * qA [ 1 ] [ 2 ] + qm [ 2 ] [ 0 ] * qA [ 1 ] [ 1 ] - qm [ 1 ] [ 1 ] * qA [ 2 ] [ 0 ] ; gK [ 2 ] [ 0 ] = qm [ 2 ] [ 0 ] * qA [ 2 ] [ 1 ] + qm [ 2 ] [ 1 ] * qA [ 2 ] [ 0 ] + qm [ 1 ] [ 1 ] * qA [ 1 ] [ 2 ] - qm [ 1 ] [ 2 ] * qA [ 1 ] [ 1 ] ; gK [ 2 ] [ 1 ] = qm [ 2 ] [ 1 ] * qA [ 2 ] [ 1 ] - qm [ 1 ] [ 1 ] * qA [ 1 ] [ 1 ] - qm [ 1 ] [ 2 ] * qA [ 1 ] [ 2 ] - qm [ 2 ] [ 0 ] * qA [ 2 ] [ 0 ] ; return gK ; } mat3 cK ( in vec4 gI , in mat3 qm ) { mat3 gK ; gK [ 0 ] = qm [ 0 ] ; gK [ 1 ] [ 0 ] = qm [ 1 ] [ 0 ] ; gK [ 1 ] [ 1 ] = gI [ 0 ] ; gK [ 1 ] [ 2 ] = gI [ 1 ] ; gK [ 2 ] [ 0 ] = gI [ 2 ] ; gK [ 2 ] [ 1 ] = gI [ 3 ] ; return gK ; }".split(" ")}]}}]}]}; a["include/mirror.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"MIRROR_GLSLF",h:{a:"grp",d:[{a:"define",c:"MIRROR_GLSLF",b:[""]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2},"REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2},{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"include",o:"color_util.glslf"}, {a:"include",o:"math.glslv"},{a:"define",c:"REFL_BUMP",b:["0.1"]},{a:"txt",b:"float qB ( in vec3 C , vec3 dX , float ec , float eb ) { vec3 d_ = normalize ( dX + C ) ; float ea = 1.0 - dot ( C , d_ ) ; float r = eb + ( 1.0 - eb ) * pow ( ea , ec ) ; return r ; } void cq ( inout vec3 qC , vec3 C , vec3 P , float qD , mat3 M ) { vec3 dX = reflect ( - C , P ) ; float ec = u_fresnel_params [ 2 ] ; float eb = u_fresnel_params [ 3 ] ; float r = 1.0 ; if ( ec != 0.0 ) r = qB ( C , dX , ec , eb ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 dZ = GLSL_TEXTURE_CUBE ( u_cube_reflection , dX ) . xyz ;".split(" ")}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_NONE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 qE = u_refl_plane . xyz * dot ( P , u_refl_plane . xyz ) ; vec3 qF = P - qE ; vec2 qG = T ( M , qF ) . xy ; vec2 qH = l . xy / l . z ; qH += qG * REFL_BUMP ; vec3 dZ = GLSL_TEXTURE ( u_plane_reflection , qH ) . rgb ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 dZ = vec3 ( 1.0 ) ; qD = 0.0 ;".split(" ")}]}}]}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_MIRRORMAP",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 dZ = GLSL_TEXTURE_CUBE ( u_mirrormap , dX ) . xyz ;".split(" ")}]}}]},{a:"txt",b:"bY ( dZ . rgb ) ; qC = mix ( qC , dZ , qD * r ) ; } vec3 qK ( vec3 qC , vec3 qI , vec3 C , vec3 P , float qJ , mat3 M ) {".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt", b:"vec3 dX = reflect ( - C , P ) ; vec3 dZ = GLSL_TEXTURE_CUBE ( u_cube_reflection , dX ) . xyz ; bY ( dZ ) ; dZ *= qI ;".split(" ")}]}},{a:"elif",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2},"REFLECTION_PASS","REFL_PASS_NONE",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 qE = u_refl_plane . xyz * dot ( P , u_refl_plane . xyz ) ; vec3 qF = P - qE ; vec2 qG = T ( M , qF ) . xy ; vec2 qH = l . xy / l . z ; qH += qG * REFL_BUMP ; vec3 dZ = GLSL_TEXTURE ( u_plane_reflection , qH ) . rgb ; bY ( dZ ) ; dZ *= qI ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","dZ","=","qI",";"]}]}}]},{a:"txt",b:"return mix ( qC , dZ , qJ ) ; }".split(" ")}]}}]}]}}]}]};a["include/nodes.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"NODES_GLSLF",h:{a:"grp",d:[{a:"define",c:"NODES_GLSLF",b:[""]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"var",c:"DOUBLE_SIDED_LIGHTING",b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"USE_REFRACTION",b:["0"]},{a:"var",c:"HAS_REFRACT_TEXTURE",b:["0"]}, {a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"REFLECTION_TYPE",b:["REFL_NONE"]},{a:"var",c:"USE_DERIVATIVES_EXT",b:["0"]},{a:"var",c:"CAMERA_TYPE",b:["CAM_TYPE_PERSP"]},{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_BSDF_BEGIN",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"mirror.glslf"},{a:"include",o:"shadow.glslf"},{a:"include",o:"environment.glslf"}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION","USE_REFRACTION",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"include", o:"refraction.glslf"}]}}]},{a:"include",o:"color_util.glslf"},{a:"include",o:"math.glslv"},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["GLSL_IN","vec3","qL",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_B4W_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:"vec3 qO ( in vec3 qM , in float qN ) { vec3 eq = vec3 ( _0_0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_REFRACTION"],h:{a:"grp",d:[{a:"txt",b:"eq = cs ( l , qM . xy * qN ) ;".split(" ")}]}}, {a:"elif",g:["HAS_REFRACT_TEXTURE"],h:{a:"grp",d:[{a:"txt",b:"eq = GLSL_TEXTURE ( u_refractmap , l . xy / l . z ) . rgb ; bY ( eq ) ;".split(" ")}]}}]},{a:"txt",b:["return","eq",";","}"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_SEPHSV",{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:"vec3 jy ( vec3 rgb ) { vec4 jx = vec4 ( _0_0 , - _1_0 / 3.0 , 2.0 / 3.0 , - _1_0 ) ; vec4 p = mix ( vec4 ( rgb . bg , jx . wz ) , vec4 ( rgb . gb , jx . xy ) , step ( rgb . b , rgb . g ) ) ; vec4 q = mix ( vec4 ( p . xyw , rgb . r ) , vec4 ( rgb . r , p . yzx ) , step ( p . x , rgb . r ) ) ; float df = q . x - min ( q . w , q . y ) ; float hQ = 1.0e-10 ; return vec3 ( abs ( q . z + ( q . w - q . y ) / ( 6.0 * df + hQ ) ) , df / ( q . x + hQ ) , q . x ) ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_COMBHSV",{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:"vec3 jA ( vec3 jz ) { vec4 jx = vec4 ( _1_0 , 2.0 / 3.0 , _1_0 / 3.0 , 3.0 ) ; vec3 p = abs ( fract ( vec3 ( jz . r , jz . r , jz . r ) + jx . xyz ) * 6.0 - jx . www ) ; return jz . b * mix ( jx . xxx , clamp ( p - jx . xxx , _0_0 , _1_0 ) , jz . g ) ; }".split(" ")}]}}]},{a:"cond", d:[{a:"if",g:["USE_NODE_GEOMETRY_UV","USE_NODE_B4W_PARALLAX","USE_NODE_UV_MERGED","USE_NODE_TEX_COORD_UV","USE_NODE_UVMAP",{a:"logical_or_expr",i:5}],h:{a:"grp",d:[{a:"txt",b:"vec3 qP ( vec2 gl ) { return vec3 ( gl * 2.0 - vec2 ( _1_0 , _1_0 ) , _0_0 ) ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_TEXTURE_COLOR","USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec2 qQ ( vec3 gJ ) { return vec2 ( gJ . xy * _0_5 + vec2 ( _0_5 , _0_5 ) ) ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float qV ( vec3 qR , vec3 qS , float qT ) { float da = abs ( dot ( qR , qS ) ) ; float g = qT * qT - 1.0 + da * da ; float qU ; if ( g > 0.0 ) { g = sqrt ( g ) ; float cg = ( g - da ) / ( g + da ) ; float oN = ( da * ( g + da ) - 1.0 ) / ( da * ( g - da ) + 1.0 ) ; qU = 0.5 * cg * cg * ( 1.0 + oN * oN ) ; } else { qU = 1.0 ; } return qU ; }".split(" ")}]}}]},{a:"node",c:"CAMERA", m:[],l:[{a:"node_out",c:"rq",f:["vec3"],e:!0},{a:"node_out",c:"rs",f:["float"],e:!0},{a:"node_out",c:"rt",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rq"],j:[{a:"txt",b:"rq = normalize ( rn . xyz ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rs"],j:[{a:"txt",b:"rs = abs ( rn . z ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rt"],j:[{a:"txt",b:"rt = length ( rn . xyz ) ;".split(" ")}]}]}]},{a:"node",c:"COMBRGB",m:[],l:[{a:"node_in",c:"ru",f:["float"], e:!1},{a:"node_in",c:"rv",f:["float"],e:!1},{a:"node_in",c:"rw",f:["float"],e:!1},{a:"node_out",c:"rx",f:["vec3"],e:!1}],j:[{a:"txt",b:"rx = vec3 ( ru , rv , rw ) ;".split(" ")}]},{a:"node",c:"COMBHSV",m:[],l:[{a:"node_in",c:"ry",f:["float"],e:!1},{a:"node_in",c:"rz",f:["float"],e:!1},{a:"node_in",c:"rA",f:["float"],e:!1},{a:"node_out",c:"rB",f:["vec3"],e:!1}],j:[{a:"txt",b:"rB = jA ( vec3 ( ry , rz , rA ) ) ;".split(" ")}]},{a:"node",c:"EMPTY_UV",m:[],l:[{a:"node_out",c:"rC",f:["vec3"],e:!1}],j:[{a:"txt", b:"rC = vec3 ( - _1_0 , - _1_0 , _0_0 ) ;".split(" ")}]},{a:"node",c:"EMPTY_VC",m:[],l:[{a:"node_out",c:"rD",f:["vec3"],e:!1}],j:[{a:"txt",b:"rD = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_UV",m:[],l:[{a:"node_out",c:"rE",f:["vec3"],e:!1},{a:"node_param",c:"qW",f:["GLSL_IN","vec2"],e:!1}],j:[{a:"txt",b:"rE = qP ( qW ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_OR",m:[],l:[{a:"node_out",c:"rF",f:["vec3"],e:!1}],j:[{a:"txt",b:"rF = 2.0 * qL - vec3 ( _1_0 ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC", m:[],l:[{a:"node_out",c:"rG",f:["vec3"],e:!1},{a:"node_param",c:"qX",f:["GLSL_IN","vec3"],e:!1}],j:[{a:"txt",b:"rG = max ( vec3 ( _0_0 ) , qX ) ; bY ( rG ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC1",m:[],l:[{a:"node_out",c:"rH",f:["float"],e:!1},{a:"node_param",c:"qY",f:["GLSL_IN","float"],e:!1}],j:[{a:"txt",b:"rH = max ( _0_0 , qY ) ; bY ( rH ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC2",m:[],l:[{a:"node_out",c:"rI",f:["float"],e:!1},{a:"node_out",c:"rJ",f:["float"],e:!1},{a:"node_param",c:"qZ", f:["GLSL_IN","vec2"],e:!1}],j:[{a:"txt",b:"rI = max ( _0_0 , qZ [ 0 ] ) ; rJ = max ( _0_0 , qZ [ 1 ] ) ; bY ( rI ) ; bY ( rJ ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC3",m:[],l:[{a:"node_out",c:"rK",f:["float"],e:!1},{a:"node_out",c:"rL",f:["float"],e:!1},{a:"node_out",c:"rM",f:["float"],e:!1},{a:"node_param",c:"q_",f:["GLSL_IN","vec3"],e:!1}],j:[{a:"txt",b:"rK = max ( _0_0 , q_ [ 0 ] ) ; rL = max ( _0_0 , q_ [ 1 ] ) ; rM = max ( _0_0 , q_ [ 2 ] ) ; bY ( rK ) ; bY ( rL ) ; bY ( rM ) ;".split(" ")}]}, {a:"node",c:"GEOMETRY_NO",m:[],l:[{a:"node_out",c:"rN",f:["vec3"],e:!1}],j:[{a:"txt",b:"rN = rl . xyz ;".split(" ")}]},{a:"node",c:"GEOMETRY_FB",m:[],l:[{a:"node_out",c:"rO",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"rO = ( gl_FrontFacing ) ? _0_0 : _1_0 ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"rO = ( gl_FrontFacing ) ? _1_0 : _0_0 ;".split(" ")}]}]}]},{a:"node",c:"GEOMETRY_BF",m:[],l:[{a:"node_out",c:"rP", f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"rP = ( gl_FrontFacing ) ? _1_0 : _0_0 ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"rP = ( gl_FrontFacing ) ? _0_0 : _1_0 ;".split(" ")}]}]}]},{a:"node",c:"GEOMETRY_VW",m:[],l:[{a:"node_out",c:"rQ",f:["vec3"],e:!1}],j:[{a:"txt",b:"rQ = - T ( u_view_tsr_frag , nI ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_LO",m:[],l:[{a:"node_out",c:"rR",f:["vec3"],e:!1}],j:[{a:"txt",b:"rR = rn . xyz ;".split(" ")}]}, {a:"node",c:"GEOMETRY_GL",m:[],l:[{a:"node_out",c:"rS",f:["vec3"],e:!1}],j:[{a:"txt",b:["rS","=","nG",";"]}]},{a:"node",c:"GEOMETRY_IN",m:[],l:[{a:"node_out",c:"rT",f:["vec3"],e:!1}],j:[{a:"txt",b:["rT","=","nI",";"]}]},{a:"node",c:"NEW_GEOMETRY",m:[],l:[{a:"node_out",c:"rU",f:["vec3"],e:!1},{a:"node_out",c:"rV",f:["vec3"],e:!1},{a:"node_out",c:"rW",f:["vec3"],e:!1},{a:"node_out",c:"rX",f:["vec3"],e:!1},{a:"node_out",c:"rY",f:["vec3"],e:!1},{a:"node_out",c:"rZ",f:["vec3"],e:!1},{a:"node_out",c:"r_", f:["float"],e:!1},{a:"node_out",c:"sa",f:["float"],e:!1}],j:[{a:"txt",b:"rU = vec3 ( _0_0 ) ; rV = vec3 ( _0_0 ) ; rW = vec3 ( _0_0 ) ; rX = vec3 ( _0_0 ) ; rY = vec3 ( _0_0 ) ; rZ = vec3 ( _0_0 ) ; r_ = _0_0 ; sa = _0_0 ;".split(" ")}]},{a:"node",c:"HUE_SAT",m:[],l:[{a:"node_in",c:"sb",f:["float"],e:!1},{a:"node_in",c:"sc",f:["float"],e:!1},{a:"node_in",c:"sd",f:["float"],e:!1},{a:"node_in",c:"se",f:["float"],e:!1},{a:"node_in",c:"sf",f:["vec3"],e:!1},{a:"node_out",c:"sg",f:["vec3"],e:!1}],j:[{a:"txt", b:"vec3 jz = jy ( sf ) ; jz [ 0 ] += ( sb - _0_5 ) ; if ( jz [ 0 ] > _1_0 ) jz [ 0 ] -= _1_0 ; else if ( jz [ 0 ] < _0_0 ) jz [ 0 ] += _1_0 ; jz *= vec3 ( _1_0 , sc , sd ) ; jz = mix ( vec3 ( _1_0 ) , mix ( vec3 ( _0_0 ) , jz , step ( vec3 ( _0_0 ) , jz ) ) , step ( jz , vec3 ( _1_0 ) ) ) ; sg = mix ( sf , jA ( jz ) , se ) ;".split(" ")}]},{a:"node",c:"INVERT",m:[],l:[{a:"node_in",c:"sh",f:["float"],e:!1},{a:"node_in",c:"si",f:["vec3"],e:!1},{a:"node_out",c:"sj",f:["vec3"],e:!1}],j:[{a:"txt",b:"sj = mix ( si , vec3 ( _1_0 ) - si , sh ) ;".split(" ")}]}, {a:"node",c:"LAMP",m:[{a:"node_var",c:"LAMP_TYPE",b:["HEMI"]},{a:"node_var",c:"LAMP_INDEX",b:["0"]},{a:"node_var",c:"LAMP_USE_SPHERE",b:["0"]},{a:"node_var",c:"LAMP_SPOT_SIZE",b:["0.8"]},{a:"node_var",c:"LAMP_SPOT_BLEND",b:["0.03"]},{a:"node_var",c:"LAMP_LIGHT_DIST",b:["30.0"]}],l:[{a:"node_out",c:"sk",f:["vec3"],e:!0},{a:"node_out",c:"sl",f:["vec3"],e:!1},{a:"node_out",c:"sm",f:["float"],e:!1},{a:"node_out",c:"sn",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sk"],j:[{a:"txt", b:"sk = u_lamp_light_color_intensities [ LAMP_INDEX ] ;".split(" ")}]}]},{a:"txt",b:"vec3 so = u_lamp_light_directions [ LAMP_INDEX ] ; vec3 sr = u_lamp_light_positions [ LAMP_INDEX ] ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2},"LAMP_TYPE","POINT",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"sl = - h + sr ; sm = length ( sl ) ; sl = normalize ( sl ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sn"],j:[{a:"txt",b:"sn = LAMP_LIGHT_DIST / ( LAMP_LIGHT_DIST + sm * sm ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"float ol = dot ( sl , so ) ; ol *= smoothstep ( _0_0 , _1_0 , ( ol - LAMP_SPOT_SIZE ) / LAMP_SPOT_BLEND ) ; sn *= ol ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["LAMP_USE_SPHERE"],j:[{a:"txt",b:"sn *= max ( LAMP_LIGHT_DIST - sm , _0_0 ) / LAMP_LIGHT_DIST ;".split(" ")}]}]}]}]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sl"],j:[{a:"txt",b:["sl","=","so",";"]}]}]},{a:"node_cond",d:[{a:"node_if", g:["USE_OUT_sm"],j:[{a:"txt",b:"sm = length ( sr - h ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sn"],j:[{a:"txt",b:["sn","=","_1_0",";"]}]}]}]}]}]},{a:"node",c:"NORMAL",m:[],l:[{a:"node_in",c:"su",f:["vec3"],e:!1},{a:"node_out",c:"sv",f:["vec3"],e:!0},{a:"node_out",c:"sw",f:["float"],e:!0},{a:"node_param",c:"rc",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sv"],j:[{a:"txt",b:["sv","=","rc",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sw"],j:[{a:"txt", b:"sw = - dot ( su , rc ) ;".split(" ")}]}]}]},{a:"node",c:"B4W_VECTOR_VIEW",m:[],l:[{a:"node_in",c:"sx",f:["vec3"],e:!1},{a:"node_out",c:"sy",f:["vec3"],e:!1}],j:[{a:"txt",b:"sy = - T ( u_view_tsr_frag , sx ) ;".split(" ")}]},{a:"node",c:"BSDF_BEGIN",m:[],l:[{a:"node_in",c:"sz",f:["vec3"],e:!1},{a:"node_in",c:"sA",f:["vec3"],e:!1},{a:"node_in",c:"sB",f:["float"],e:!1},{a:"node_in",c:"sC",f:["vec3"],e:!1},{a:"node_in",c:"sD",f:["float"],e:!1},{a:"node_in",c:"sE",f:["float"],e:!1},{a:"node_in",c:"sF", f:["vec3"],e:!1},{a:"node_in",c:"sG",f:["vec3"],e:!1},{a:"node_in",c:"sH",f:["float"],e:!1},{a:"node_out",c:"sI",f:["vec3"],e:!1},{a:"node_out",c:"sJ",f:["vec3"],e:!1},{a:"node_out",c:"sK",f:["vec3"],e:!1},{a:"node_out",c:"sL",f:["vec3"],e:!1},{a:"node_out",c:"sM",f:["vec3"],e:!1},{a:"node_out",c:"sN",f:["vec4"],e:!1},{a:"node_out",c:"sO",f:["vec4"],e:!1},{a:"node_out",c:"sP",f:["vec3"],e:!1},{a:"node_out",c:"sQ",f:["float"],e:!1},{a:"node_out",c:"sR",f:["vec3"],e:!1},{a:"node_out",c:"sS",f:["float"], e:!1}],j:[{a:"txt",b:"sK = sA ; sL = sC ; sM = sF ; sP = sC ; sQ = sE ; sR = sG ; sS = sH ; sI = ro * sK ; sJ = rp * u_environment_energy * ce ( sM ) ; sO = ch ( sK ) ; G = sO ; sN [ 0 ] = sB ; sN [ 1 ] = sD ; sN [ 2 ] = sE ;".split(" ")}]},{a:"node",c:"BSDF_END",m:[],l:[{a:"node_in",c:"sT",f:["vec4"],e:!1},{a:"node_in",c:"sU",f:["vec3"],e:!1},{a:"node_in",c:"sV",f:["vec3"],e:!1},{a:"node_in",c:"sW",f:["vec3"],e:!1},{a:"node_in",c:"sX",f:["float"],e:!1},{a:"node_in",c:"sY",f:["vec3"],e:!1},{a:"node_in", c:"sZ",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_TYPE","REFL_CUBE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"D = qK ( sT . rgb , sW , nI , sV , sX , mat3 ( _0_0 ) ) ;".split(" ")}]},{a:"node_elif",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"D = qK ( sT . rgb , sW , nI , sV , sX , u_view_tsr_frag ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"D = sT . rgb ;".split(" ")}]}]},{a:"txt",b:"D += sU ; D = mix ( D , sY , sZ ) ; sV ;".split(" ")}]},{a:"node", c:"BSDF_COMPUTE",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"s_",f:["vec3"],e:!1},{a:"node_in",c:"ta",f:["vec2"],e:!1},{a:"node_in",c:"tb",f:["vec3"],e:!1},{a:"node_in",c:"tc",f:["float"],e:!1},{a:"node_in",c:"td",f:["vec4"],e:!1},{a:"node_out",c:"te",f:["float"],e:!1},{a:"node_out",c:"tf",f:["float"],e:!1}],j:[{a:"txt",b:"vec3 qS = tb ; float tg = clamp ( td [ 0 ] , _0_0 , _1_0 ) ; float th = clamp ( td [ 1 ] , _0_0 , _1_0 ) ; float qJ = td [ 2 ] ; vec3 pg = normalize ( nI + s_ ) ; float ot = ( _1_0 - tc ) * dot ( qS , s_ ) + tc ; float ti = ( _1_0 - tc ) * max ( dot ( s_ , pg ) , _0_0 ) + tc ; float tj = ( _1_0 - tc ) * max ( dot ( tb , pg ) , _0_0 ) + tc ; te = _0_0 ; if ( ta . r != _0_0 ) { if ( tg > _0_0 ) { float oF = max ( dot ( qS , nI ) , _0_0 ) ; float oG = tg * tg ; float cg = _1_0 - _0_5 * ( oG / ( oG + 0.33 ) ) ; vec3 oH = s_ - ot * qS ; vec3 oI = nI - oF * qS ; if ( length ( oH ) == _0_0 || length ( oI ) == _0_0 || abs ( ot ) > _1_0 || abs ( oF ) > _1_0 ) te = ot * cg ; else { float oJ = acos ( ot ) ; float oK = acos ( oF ) ; vec3 oL = normalize ( oH ) ; vec3 oM = normalize ( oI ) ; float a , b ; a = max ( oJ , oK ) ; b = min ( oJ , oK ) ; b *= 0.95 ; float t = max ( dot ( oL , oM ) , _0_0 ) ; float oN = 0.45 * ( oG / ( oG + 0.09 ) ) ; te = ot * ( cg + ( oN * t * sin ( a ) * tan ( b ) ) ) ; } } else te = ot ; te = max ( te , _0_0 ) ; } float J = th ; float tk = J * J ; float tl = ( tj * tk - tj ) * tj + _1_0 ; float cd = tk / ( M_PI * tl * tl ) ; float tm ; float tn ; float to = pow ( _1_0 - ti , 5.0 ) ; tm = _1_0 ; tn = to ; float jx = J / 2.0 ; float tr = jx * jx ; float tu = _1_0 - tr ; float tv = _1_0 / ( ti * ti * tu + tr ) ; tm *= tv ; tn *= tv ; float tw = mix ( 0.04 , _1_0 , qJ ) ; float tx = mix ( tn , tm , tw ) ; tf = max ( ot * cd * tx , _0_0 ) ;".split(" ")}]}, {a:"node",c:"BSDF_ANISOTROPIC",m:[],l:[{a:"node_in",c:"ty",f:["vec3"],e:!1},{a:"node_in",c:"tz",f:["float"],e:!1},{a:"node_in",c:"tA",f:["float"],e:!1},{a:"node_in",c:"tB",f:["float"],e:!1},{a:"node_in",c:"tC",f:["vec3"],e:!1},{a:"node_in",c:"tD",f:["vec3"],e:!1},{a:"node_out",c:"tE",f:["vec3"],e:!1}],j:[{a:"txt",b:"tE = ty ; tz ; tA ; tB ; tC ; tD ;".split(" ")}]},{a:"node",c:"BSDF_DIFFUSE",m:[{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in",c:"tF",f:["vec3"],e:!1},{a:"node_in",c:"tG",f:["float"], e:!1},{a:"node_in",c:"tH",f:["vec3"],e:!1},{a:"node_out",c:"tI",f:["vec3"],e:!1},{a:"node_out",c:"tJ",f:["vec3"],e:!1},{a:"node_out",c:"tK",f:["float"],e:!1},{a:"node_out",c:"tL",f:["vec3"],e:!1},{a:"node_out",c:"tM",f:["float"],e:!1},{a:"node_out",c:"tN",f:["float"],e:!1},{a:"node_out",c:"tO",f:["vec3"],e:!1},{a:"node_out",c:"tP",f:["vec3"],e:!1},{a:"node_out",c:"tQ",f:["float"],e:!1}],j:[{a:"txt",b:"tJ = tF ; tK = tG ; tN = _0_0 ; tQ = _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"], j:[{a:"txt",b:["tO","=","tH",";"]}]},{a:"node_else",j:[{a:"txt",b:["tO","=","nH",";"]}]}]},{a:"txt",b:"tI ; tL ; tM ; tP ;".split(" ")}]},{a:"node",c:"BSDF_GLASS",m:[],l:[{a:"node_in",c:"tR",f:["vec3"],e:!1},{a:"node_in",c:"tS",f:["float"],e:!1},{a:"node_in",c:"tT",f:["float"],e:!1},{a:"node_in",c:"tU",f:["vec3"],e:!1},{a:"node_out",c:"tV",f:["vec3"],e:!1}],j:[{a:"txt",b:"tV = tR ; tS ; tT ; tU ;".split(" ")}]},{a:"node",c:"BSDF_GLOSSY",m:[{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in", c:"tW",f:["vec3"],e:!1},{a:"node_in",c:"tX",f:["float"],e:!1},{a:"node_in",c:"tY",f:["vec3"],e:!1},{a:"node_out",c:"tZ",f:["vec3"],e:!1},{a:"node_out",c:"t_",f:["vec3"],e:!1},{a:"node_out",c:"ua",f:["float"],e:!1},{a:"node_out",c:"ub",f:["vec3"],e:!1},{a:"node_out",c:"uc",f:["float"],e:!1},{a:"node_out",c:"ud",f:["float"],e:!1},{a:"node_out",c:"ue",f:["vec3"],e:!1},{a:"node_out",c:"uf",f:["vec3"],e:!1},{a:"node_out",c:"ug",f:["float"],e:!1}],j:[{a:"txt",b:"ub = tW ; uc = tX ; ud = _1_0 ; ug = _0_0 ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"],j:[{a:"txt",b:["ue","=","tY",";"]}]},{a:"node_else",j:[{a:"txt",b:["ue","=","nH",";"]}]}]},{a:"txt",b:"tZ ; t_ ; ua ; uf ;".split(" ")}]},{a:"node",c:"BSDF_HAIR",m:[],l:[{a:"node_in",c:"uh",f:["vec3"],e:!1},{a:"node_in",c:"ui",f:["float"],e:!1},{a:"node_in",c:"uj",f:["float"],e:!1},{a:"node_in",c:"uk",f:["float"],e:!1},{a:"node_out",c:"ul",f:["vec3"],e:!1}],j:[{a:"txt",b:"ul = uh ; ui ; uj ; uk ;".split(" ")}]},{a:"node",c:"BSDF_TRANSPARENT",m:[], l:[{a:"node_in",c:"um",f:["vec3"],e:!1},{a:"node_out",c:"un",f:["vec3"],e:!1}],j:[{a:"txt",b:["un","=","um",";"]}]},{a:"node",c:"BSDF_TRANSLUCENT",m:[],l:[{a:"node_in",c:"uo",f:["vec3"],e:!1},{a:"node_in",c:"up",f:["vec3"],e:!1},{a:"node_out",c:"uq",f:["vec3"],e:!1}],j:[{a:"txt",b:"uq = uo ; up ;".split(" ")}]},{a:"node",c:"BSDF_REFRACTION",m:[],l:[{a:"node_in",c:"ur",f:["vec3"],e:!1},{a:"node_in",c:"us",f:["float"],e:!1},{a:"node_in",c:"ut",f:["float"],e:!1},{a:"node_in",c:"uu",f:["vec3"],e:!1}, {a:"node_out",c:"uv",f:["vec3"],e:!1}],j:[{a:"txt",b:"uv [ 0 ] = uv [ 1 ] = uv [ 2 ] = _0_0 ; ur ; us ; ut ; uu ;".split(" ")}]},{a:"node",c:"BSDF_TOON",m:[],l:[{a:"node_in",c:"uw",f:["vec3"],e:!1},{a:"node_in",c:"ux",f:["float"],e:!1},{a:"node_in",c:"uy",f:["float"],e:!1},{a:"node_in",c:"uz",f:["vec3"],e:!1},{a:"node_out",c:"uA",f:["vec3"],e:!1}],j:[{a:"txt",b:"uA = uw ; ux ; uy ; uz ;".split(" ")}]},{a:"node",c:"BSDF_VELVET",m:[],l:[{a:"node_in",c:"uB",f:["vec3"],e:!1},{a:"node_in",c:"uC",f:["float"], e:!1},{a:"node_in",c:"uD",f:["vec3"],e:!1},{a:"node_out",c:"uE",f:["vec3"],e:!1}],j:[{a:"txt",b:"uE = uB ; uC ; uD ;".split(" ")}]},{a:"node",c:"SUBSURFACE_SCATTERING",m:[],l:[{a:"node_in",c:"uF",f:["vec3"],e:!1},{a:"node_in",c:"uG",f:["float"],e:!1},{a:"node_in",c:"uH",f:["vec3"],e:!1},{a:"node_in",c:"uI",f:["float"],e:!1},{a:"node_in",c:"uJ",f:["float"],e:!1},{a:"node_in",c:"uK",f:["vec3"],e:!1},{a:"node_out",c:"uL",f:["vec3"],e:!1}],j:[{a:"txt",b:"uL [ 0 ] = uL [ 1 ] = uL [ 2 ] = _0_0 ; uF ; uH ; uI ; uJ ; uK ; uG ;".split(" ")}]}, {a:"node",c:"EMISSION",m:[],l:[{a:"node_in",c:"uM",f:["vec3"],e:!1},{a:"node_in",c:"uN",f:["float"],e:!1},{a:"node_out",c:"uO",f:["vec3"],e:!1},{a:"node_out",c:"uP",f:["vec3"],e:!1},{a:"node_out",c:"uQ",f:["float"],e:!1},{a:"node_out",c:"uR",f:["vec3"],e:!1},{a:"node_out",c:"uS",f:["float"],e:!1},{a:"node_out",c:"uT",f:["float"],e:!1},{a:"node_out",c:"uU",f:["vec3"],e:!1},{a:"node_out",c:"uV",f:["vec3"],e:!1},{a:"node_out",c:"uW",f:["float"],e:!1}],j:[{a:"txt",b:"uV = uN * uM ; uT = _0_0 ; uW = _1_0 ; uU = nH ; uO ; uP ; uQ ; uR ; uS ;".split(" ")}]}, {a:"node",c:"AMBIENT_OCCLUSION",m:[],l:[{a:"node_in",c:"uX",f:["vec3"],e:!1},{a:"node_out",c:"uY",f:["vec3"],e:!1}],j:[{a:"txt",b:"uY [ 0 ] = uY [ 1 ] = uY [ 2 ] = _0_0 ; uX ;".split(" ")}]},{a:"node",c:"HOLDOUT",m:[],l:[{a:"node_out",c:"uZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"uZ [ 0 ] = uZ [ 1 ] = uZ [ 2 ] = _0_0 ;".split(" ")}]},{a:"node",c:"VOLUME_ABSORPTION",m:[],l:[{a:"node_in",c:"u_",f:["vec3"],e:!1},{a:"node_in",c:"va",f:["float"],e:!1},{a:"node_out",c:"vb",f:["vec3"],e:!1}],j:[{a:"txt",b:"vb [ 0 ] = vb [ 1 ] = vb [ 2 ] = _0_0 ; u_ ; va ;".split(" ")}]}, {a:"node",c:"VOLUME_SCATTER",m:[],l:[{a:"node_in",c:"vc",f:["vec3"],e:!1},{a:"node_in",c:"vd",f:["float"],e:!1},{a:"node_in",c:"ve",f:["float"],e:!1},{a:"node_out",c:"vf",f:["vec3"],e:!1}],j:[{a:"txt",b:"vf [ 0 ] = vf [ 1 ] = vf [ 2 ] = _0_0 ; vc ; vd ; ve ;".split(" ")}]},{a:"node",c:"BUMP",m:[{a:"node_var",c:"INVERT",b:["0"]},{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in",c:"vg",f:["float"],e:!1},{a:"node_in",c:"vh",f:["float"],e:!1},{a:"node_in",c:"vi",f:["float"],e:!1},{a:"node_in", c:"vj",f:["vec3"],e:!1},{a:"node_out",c:"vk",f:["vec3"],e:!1}],j:[{a:"txt",b:"float aC = vh ; float fX = vg ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["INVERT"],j:[{a:"txt",b:["aC","=","-","1.0",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"],j:[{a:"txt",b:["vec3","P","=","vj",";"]}]},{a:"node_else",j:[{a:"txt",b:["vec3","P","=","nH",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_DERIVATIVES_EXT"],j:[{a:"txt",b:"vec3 vl = dFdx ( nG ) ; vec3 vm = dFdy ( nG ) ; vec3 vn = cross ( vm , P ) ; vec3 vo = cross ( P , vl ) ; float db = dot ( vl , vn ) ; float vp = abs ( db ) ; vec3 vq = dFdx ( vi ) * vn + dFdy ( vi ) * vo ; fX = max ( fX , 0.0 ) ; vk = normalize ( vp * P - aC * sign ( db ) * vq ) ; vk = normalize ( fX * vk + ( 1.0 - fX ) * P ) ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:["vk","=","P",";"]}]}]}]},{a:"node",c:"NORMAL_MAP",m:[{a:"node_var",c:"SPACE",b:["NM_TANGENT"]}],l:[{a:"node_in",c:"vr",f:["float"],e:!1},{a:"node_in",c:"vs",f:["vec4"],e:!1},{a:"node_out",c:"vt",f:["vec3"],e:!1}],j:[{a:"txt",b:["vec3","vu","=","nH",";"]},{a:"node_cond",d:[{a:"node_if",g:["SPACE","NM_TANGENT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vt = 2.0 * vs . xyz - _1_0 ; vt = rm * vt ;".split(" ")}]},{a:"node_elif",g:["SPACE","NM_OBJECT",{a:"equal_expr",i:2},"SPACE", "NM_FDAGE_OBJECT",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vt = 2.0 * vs . xyz - _1_0 ; vt . yz *= - 1.0 ; vt = T ( u_model_tsr , vt ) ;".split(" ")}]},{a:"node_elif",g:["SPACE","NM_WORLD",{a:"equal_expr",i:2},"SPACE","NM_FDAGE_WORLD",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vt = 2.0 * vs . xyz - _1_0 ; vt . yz *= - 1.0 ;".split(" ")}]}]},{a:"txt",b:"vt = normalize ( mix ( vu , vt , vr ) ) ;".split(" ")}]},{a:"node",c:"VECT_TRANSFORM",m:[{a:"node_var", c:"CONVERT_TYPE",b:["VT_WORLD_TO_OBJECT"]},{a:"node_var",c:"VECTOR_TYPE",b:["VT_VECTOR"]}],l:[{a:"node_in",c:"vv",f:["vec3"],e:!1},{a:"node_out",c:"vw",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_WORLD",{a:"equal_expr",i:2},"CONVERT_TYPE","VT_OBJECT_TO_OBJECT",{a:"equal_expr",i:2},"CONVERT_TYPE","VT_CAMERA_TO_CAMERA",{a:"equal_expr",i:2},{a:"logical_or_expr",i:3}],j:[{a:"txt",b:["vw","=","vv",";"]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["VECTOR_TYPE", "VT_POINT",{a:"equal_expr",i:2}],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_frag , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_model_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_model_tsr , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE", "VT_OBJECT_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_model_tsr , vv ) ; vw = ad ( u_view_tsr_frag , vw ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_inverse , vv ) ; vw = ad ( u_model_tsr_inverse , vw ) ;".split(" ")}]}]}]},{a:"node_else",j:[{a:"node_cond", d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_frag , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_model_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_model_tsr , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt", b:"vw = T ( u_model_tsr , vv ) ; vw = T ( u_view_tsr_frag , vw ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_inverse , vv ) ; vw = T ( u_model_tsr_inverse , vw ) ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["VECTOR_TYPE","VT_NORMAL",{a:"equal_expr",i:2}],j:[{a:"txt", b:"vw = normalize ( vw ) ;".split(" ")}]}]}]}]}]},{a:"node",c:"BLACKBODY",m:[],l:[{a:"node_in",c:"vx",f:["float"],e:!1},{a:"node_out",c:"vy",f:["vec3"],e:!1}],j:[{a:"txt",b:"vy [ 0 ] = vy [ 1 ] = vy [ 2 ] = _0_0 ; vx ;".split(" ")}]},{a:"node",c:"WAVELENGTH",m:[],l:[{a:"node_in",c:"vz",f:["float"],e:!1},{a:"node_out",c:"vA",f:["vec3"],e:!1}],j:[{a:"txt",b:"vA [ 0 ] = vA [ 1 ] = vA [ 2 ] = _0_0 ; vz ;".split(" ")}]},{a:"node",c:"SEPXYZ",m:[],l:[{a:"node_in",c:"vB",f:["vec3"],e:!1},{a:"node_out",c:"vC", f:["float"],e:!1},{a:"node_out",c:"vD",f:["float"],e:!1},{a:"node_out",c:"vE",f:["float"],e:!1}],j:[{a:"txt",b:"vC = vB [ 0 ] ; vD = vB [ 1 ] ; vE = vB [ 2 ] ;".split(" ")}]},{a:"node",c:"COMBXYZ",m:[],l:[{a:"node_in",c:"vF",f:["float"],e:!1},{a:"node_in",c:"vG",f:["float"],e:!1},{a:"node_in",c:"vH",f:["float"],e:!1},{a:"node_out",c:"vI",f:["vec3"],e:!1}],j:[{a:"txt",b:"vI [ 0 ] = vF ; vI [ 1 ] = vG ; vI [ 2 ] = vH ;".split(" ")}]},{a:"node",c:"BRIGHTCONTRAST",m:[],l:[{a:"node_in",c:"vJ",f:["vec3"], e:!1},{a:"node_in",c:"vK",f:["float"],e:!1},{a:"node_in",c:"vL",f:["float"],e:!1},{a:"node_out",c:"vM",f:["vec3"],e:!1}],j:[{a:"txt",b:"float b = vK - vL * _0_5 ; vM = max ( ( _1_0 + vL ) * vJ + b , vec3 ( _0_0 ) ) ;".split(" ")}]},{a:"node",c:"LIGHT_FALLOFF",m:[],l:[{a:"node_in",c:"vN",f:["float"],e:!1},{a:"node_in",c:"vO",f:["float"],e:!1},{a:"node_out",c:"vP",f:["float"],e:!1},{a:"node_out",c:"vQ",f:["float"],e:!1},{a:"node_out",c:"vR",f:["float"],e:!1}],j:[{a:"txt",b:"vP = vQ = vR = _0_0 ; vN ; vO ;".split(" ")}]}, {a:"node",c:"TEX_SKY",m:[],l:[{a:"node_in",c:"vS",f:["vec3"],e:!1},{a:"node_out",c:"vT",f:["vec3"],e:!1}],j:[{a:"txt",b:"vT [ 0 ] = vT [ 1 ] = vT [ 2 ] = _0_0 ; vS ;".split(" ")}]},{a:"node",c:"TEX_NOISE",m:[],l:[{a:"node_in",c:"vU",f:["vec3"],e:!1},{a:"node_in",c:"vV",f:["float"],e:!1},{a:"node_in",c:"vW",f:["float"],e:!1},{a:"node_in",c:"vX",f:["float"],e:!1},{a:"node_out",c:"vY",f:["vec3"],e:!1},{a:"node_out",c:"vZ",f:["float"],e:!1}],j:[{a:"txt",b:"vY [ 0 ] = vY [ 1 ] = vY [ 2 ] = _0_0 ; vZ = _1_0 ; vU ; vV ; vW ; vX ;".split(" ")}]}, {a:"node",c:"TEX_WAVE",m:[],l:[{a:"node_in",c:"v_",f:["vec3"],e:!1},{a:"node_in",c:"wa",f:["float"],e:!1},{a:"node_in",c:"wb",f:["float"],e:!1},{a:"node_in",c:"wc",f:["float"],e:!1},{a:"node_in",c:"wd",f:["float"],e:!1},{a:"node_out",c:"we",f:["vec3"],e:!1},{a:"node_out",c:"wf",f:["float"],e:!1}],j:[{a:"txt",b:"we [ 0 ] = we [ 1 ] = we [ 2 ] = _0_0 ; wf = _1_0 ; v_ ; wa ; wb ; wc ; wd ;".split(" ")}]},{a:"node",c:"TEX_VORONOI",m:[],l:[{a:"node_in",c:"wg",f:["vec3"],e:!1},{a:"node_in",c:"wh",f:["float"], e:!1},{a:"node_out",c:"wi",f:["vec3"],e:!1},{a:"node_out",c:"wj",f:["float"],e:!1}],j:[{a:"txt",b:"wi [ 0 ] = wi [ 1 ] = wi [ 2 ] = _0_0 ; wj = _1_0 ; wg ; wh ;".split(" ")}]},{a:"node",c:"TEX_MUSGRAVE",m:[],l:[{a:"node_in",c:"wk",f:["vec3"],e:!1},{a:"node_in",c:"wl",f:["float"],e:!1},{a:"node_in",c:"wm",f:["float"],e:!1},{a:"node_in",c:"wn",f:["float"],e:!1},{a:"node_in",c:"wo",f:["float"],e:!1},{a:"node_in",c:"wp",f:["float"],e:!1},{a:"node_in",c:"wq",f:["float"],e:!1},{a:"node_out",c:"wr",f:["vec3"], e:!1},{a:"node_out",c:"ws",f:["float"],e:!1}],j:[{a:"txt",b:"wr [ 0 ] = wr [ 1 ] = wr [ 2 ] = _0_0 ; ws = _1_0 ; wk ; wl ; wm ; wn ; wo ; wp ; wq ;".split(" ")}]},{a:"node",c:"TEX_GRADIENT",m:[],l:[{a:"node_in",c:"wt",f:["vec3"],e:!1},{a:"node_out",c:"wu",f:["vec3"],e:!1},{a:"node_out",c:"wv",f:["float"],e:!1}],j:[{a:"txt",b:"wu [ 0 ] = wu [ 1 ] = wu [ 2 ] = _0_0 ; wv = _1_0 ; wt ;".split(" ")}]},{a:"node",c:"TEX_MAGIC",m:[],l:[{a:"node_in",c:"wA",f:["vec3"],e:!1},{a:"node_in",c:"wB",f:["float"], e:!1},{a:"node_in",c:"wC",f:["float"],e:!1},{a:"node_out",c:"wD",f:["vec3"],e:!1},{a:"node_out",c:"wE",f:["float"],e:!1}],j:[{a:"txt",b:"wD [ 0 ] = wD [ 1 ] = wD [ 2 ] = _0_0 ; wE = _1_0 ; wA ; wB ; wC ;".split(" ")}]},{a:"node",c:"TEX_CHECKER",m:[],l:[{a:"node_in",c:"wF",f:["vec3"],e:!1},{a:"node_in",c:"wG",f:["vec3"],e:!1},{a:"node_in",c:"wH",f:["vec3"],e:!1},{a:"node_in",c:"wI",f:["float"],e:!1},{a:"node_out",c:"wJ",f:["vec3"],e:!1},{a:"node_out",c:"wK",f:["float"],e:!1}],j:[{a:"txt",b:"wJ [ 0 ] = wJ [ 1 ] = wJ [ 2 ] = _0_0 ; wK = _1_0 ; wF ; wG ; wH ; wI ;".split(" ")}]}, {a:"node",c:"TEX_BRICK",m:[],l:[{a:"node_in",c:"wL",f:["vec3"],e:!1},{a:"node_in",c:"wM",f:["vec3"],e:!1},{a:"node_in",c:"wN",f:["vec3"],e:!1},{a:"node_in",c:"wO",f:["vec3"],e:!1},{a:"node_in",c:"wP",f:["float"],e:!1},{a:"node_in",c:"wQ",f:["float"],e:!1},{a:"node_in",c:"wR",f:["float"],e:!1},{a:"node_in",c:"wS",f:["float"],e:!1},{a:"node_in",c:"wT",f:["float"],e:!1},{a:"node_out",c:"wU",f:["vec3"],e:!1},{a:"node_out",c:"wV",f:["float"],e:!1}],j:[{a:"txt",b:"wU [ 0 ] = wU [ 1 ] = wU [ 2 ] = _0_0 ; wV = _1_0 ; wL ; wM ; wN ; wO ; wP ; wQ ; wR ; wS ; wT ;".split(" ")}]}, {a:"node",c:"ADD_SHADER",m:[],l:[{a:"node_in",c:"wW",f:["vec3"],e:!1},{a:"node_in",c:"wX",f:["vec3"],e:!1},{a:"node_out",c:"wY",f:["vec3"],e:!1}],j:[{a:"txt",b:"wY = clamp ( wW + wX , vec3 ( _0_0 ) , vec3 ( _1_0 ) ) ;".split(" ")}]},{a:"node",c:"MIX_SHADER",m:[],l:[{a:"node_in",c:"wZ",f:["float"],e:!1},{a:"node_in",c:"w_",f:["vec3"],e:!1},{a:"node_in",c:"xa",f:["vec3"],e:!1},{a:"node_in",c:"xb",f:["vec3"],e:!1},{a:"node_in",c:"xc",f:["float"],e:!1},{a:"node_in",c:"xd",f:["vec3"],e:!1},{a:"node_in", c:"xe",f:["float"],e:!1},{a:"node_in",c:"xf",f:["float"],e:!1},{a:"node_in",c:"xg",f:["vec3"],e:!1},{a:"node_in",c:"xh",f:["vec3"],e:!1},{a:"node_in",c:"xi",f:["float"],e:!1},{a:"node_in",c:"xj",f:["vec3"],e:!1},{a:"node_in",c:"xk",f:["float"],e:!1},{a:"node_in",c:"xl",f:["vec3"],e:!1},{a:"node_in",c:"xm",f:["float"],e:!1},{a:"node_in",c:"xn",f:["float"],e:!1},{a:"node_in",c:"xo",f:["vec3"],e:!1},{a:"node_in",c:"xp",f:["vec3"],e:!1},{a:"node_in",c:"xq",f:["float"],e:!1},{a:"node_out",c:"xr",f:["vec3"], e:!1},{a:"node_out",c:"xs",f:["vec3"],e:!1},{a:"node_out",c:"xt",f:["float"],e:!1},{a:"node_out",c:"xu",f:["vec3"],e:!1},{a:"node_out",c:"xv",f:["float"],e:!1},{a:"node_out",c:"xA",f:["float"],e:!1},{a:"node_out",c:"xB",f:["vec3"],e:!1},{a:"node_out",c:"xC",f:["vec3"],e:!1},{a:"node_out",c:"xD",f:["float"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( wZ , _0_0 , _1_0 ) ; xs = mix ( xb , xj , xE ) ; xt = mix ( xc , xk , xE ) ; if ( xf > _0_0 ) { if ( xn > _0_0 ) { xu = mix ( xd , xl , xE ) ; xv = mix ( xe , xm , xE ) ; } else { xu = xd ; xv = xe ; } } else { xu = xl ; xv = xm ; } if ( xi > _0_0 ) { if ( xq > _0_0 ) { xC = mix ( xh , xp , xE ) ; } else { xC = xh ; } } else { xC = xp ; } xA = mix ( xf , xn , xE ) ; xB = mix ( xg , xo , xE ) ; xD = mix ( xi , xq , xE ) ;".split(" ")}]}, {a:"node",c:"UV_MERGED",m:[],l:[{a:"node_out",c:"xF",f:["vec3"],e:!1},{a:"node_out",c:"xG",f:["vec3"],e:!1},{a:"node_param",c:"rd",f:["GLSL_IN","vec2"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xF"],j:[{a:"txt",b:"xF = qP ( rd ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xG"],j:[{a:"txt",b:"xG = vec3 ( rd , _0_0 ) ;".split(" ")}]}]}]},{a:"node",c:"TEX_COORD_UV",m:[],l:[{a:"node_out",c:"xH",f:["vec3"],e:!1},{a:"node_param",c:"re",f:["GLSL_IN","vec2"],e:!1}],j:[{a:"txt", b:"xH = vec3 ( re , _0_0 ) ;".split(" ")}]},{a:"node",c:"TEX_COORD_NO",m:[],l:[{a:"node_out",c:"xI",f:["vec3"],e:!1}],j:[{a:"txt",b:["xI","=","nH",";"]}]},{a:"node",c:"TEX_COORD_GE",m:[],l:[{a:"node_out",c:"xJ",f:["vec3"],e:!1}],j:[{a:"txt",b:["xJ","=","qL",";"]}]},{a:"node",c:"TEX_COORD_OB",m:[],l:[{a:"node_out",c:"xK",f:["vec3"],e:!1}],j:[{a:"txt",b:"xK = ad ( u_model_tsr_inverse , nG ) ;".split(" ")}]},{a:"node",c:"TEX_COORD_CA",m:[],l:[{a:"node_out",c:"xL",f:["vec3"],e:!1}],j:[{a:"txt",b:"xL . xy = rn . xy ; xL . z = _1_0 ;".split(" ")}]}, {a:"node",c:"TEX_COORD_WI",m:[],l:[{a:"node_out",c:"xM",f:["vec3"],e:!1}],j:[{a:"txt",b:"xM . xy = l . xy / l . z ; xM . z = _0_0 ;".split(" ")}]},{a:"node",c:"TEX_COORD_RE",m:[],l:[{a:"node_out",c:"xN",f:["vec3"],e:!1}],j:[{a:"txt",b:"xN = reflect ( - nI , nH ) ;".split(" ")}]},{a:"node",c:"UVMAP",m:[],l:[{a:"node_out",c:"xO",f:["vec3"],e:!1},{a:"node_param",c:"rf",f:["GLSL_IN","vec2"],e:!1}],j:[{a:"txt",b:"xO = vec3 ( rf , _0_0 ) ;".split(" ")}]},{a:"node",c:"PARTICLE_INFO",m:[],l:[{a:"node_out", c:"xP",f:["float"],e:!1},{a:"node_out",c:"xQ",f:["float"],e:!1},{a:"node_out",c:"xR",f:["float"],e:!1},{a:"node_out",c:"xS",f:["vec3"],e:!1},{a:"node_out",c:"xT",f:["float"],e:!1},{a:"node_out",c:"xU",f:["vec3"],e:!1},{a:"node_out",c:"xV",f:["vec3"],e:!1}],j:[{a:"txt",b:"xP = _0_0 ; xQ = _0_0 ; xR = _0_0 ; xS = vec3 ( _0_0 ) ; xT = _0_0 ; xU = xS ; xV = xS ;".split(" ")}]},{a:"node",c:"HAIR_INFO",m:[],l:[{a:"node_out",c:"xW",f:["float"],e:!1},{a:"node_out",c:"xX",f:["float"],e:!1},{a:"node_out",c:"xY", f:["float"],e:!1},{a:"node_out",c:"xZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"xW = _0_0 ; xX = _0_0 ; xY = _0_0 ; xZ = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"OBJECT_INFO",m:[{a:"node_var",c:"USE_LOCATION_OUT",b:["0"]},{a:"node_var",c:"USE_OBJ_IND_OUT",b:["0"]},{a:"node_var",c:"USE_MAT_IND_OUT",b:["0"]},{a:"node_var",c:"USE_RANDOM_OUT",b:["0"]}],l:[{a:"node_out",c:"x_",f:["vec3"],e:!1},{a:"node_out",c:"ya",f:["float"],e:!1},{a:"node_out",c:"yb",f:["float"],e:!1},{a:"node_out",c:"yc",f:["float"],e:!1}], j:[{a:"node_cond",d:[{a:"node_if",g:["USE_LOCATION_OUT"],j:[{a:"txt",b:"x_ = u_model_tsr [ 0 ] . xyz ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OBJ_IND_OUT"],j:[{a:"txt",b:"ya = u_obj_info . r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MAT_IND_OUT"],j:[{a:"txt",b:"yb = u_obj_info . g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_RANDOM_OUT"],j:[{a:"txt",b:"yc = u_obj_info . b ;".split(" ")}]}]}]},{a:"node",c:"WIREFRAME",m:[],l:[{a:"node_in",c:"yd",f:["float"], e:!1},{a:"node_out",c:"ye",f:["float"],e:!1}],j:[{a:"txt",b:["ye","=","yd",";"]}]},{a:"node",c:"TANGENT",m:[],l:[{a:"node_out",c:"yf",f:["vec3"],e:!1}],j:[{a:"txt",b:"yf = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"LAYER_WEIGHT",m:[{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in",c:"yg",f:["float"],e:!1},{a:"node_in",c:"yh",f:["vec3"],e:!1},{a:"node_out",c:"yi",f:["float"],e:!1},{a:"node_out",c:"yj",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"],j:[{a:"txt",b:"vec3 bW = normalize ( yh ) ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:["vec3","bW","=","nH",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["CAMERA_TYPE","CAM_TYPE_PERSP",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vec3 yk = normalize ( nI ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:["vec3","yk","=","u_camera_direction",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_yi"],j:[{a:"txt",b:"float qT = max ( _1_0 - yg , 0.00001 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"non_equal_expr",i:2}],j:[{a:"txt", b:"qT = gl_FrontFacing == false ? qT : _1_0 / qT ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"qT = gl_FrontFacing ? qT : _1_0 / qT ;".split(" ")}]}]},{a:"txt",b:"yi = qV ( yk , bW , qT ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:["yi","=","_0_0",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_yj"],j:[{a:"txt",b:"yj = abs ( dot ( yk , bW ) ) ; float dI = yg ; if ( dI != _0_5 ) { dI = clamp ( dI , _0_0 , 0.99999 ) ; dI = ( dI < _0_5 ) ? 2.0 * dI : _0_5 / ( _1_0 - dI ) ; yj = pow ( yj , dI ) ; } yj = _1_0 - yj ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:["yj","=","_0_0",";"]}]}]}]},{a:"node",c:"LIGHT_PATH",m:[],l:[{a:"node_out",c:"yl",f:["float"],e:!1},{a:"node_out",c:"ym",f:["float"],e:!1},{a:"node_out",c:"yn",f:["float"],e:!1},{a:"node_out",c:"yo",f:["float"],e:!1},{a:"node_out",c:"yp",f:["float"],e:!1},{a:"node_out",c:"yq",f:["float"],e:!1},{a:"node_out",c:"yr",f:["float"],e:!1},{a:"node_out",c:"ys",f:["float"],e:!1},{a:"node_out",c:"yt",f:["float"],e:!1},{a:"node_out",c:"yu",f:["float"],e:!1},{a:"node_out",c:"yv", f:["float"],e:!1}],j:[{a:"txt",b:"yl = ym = yn = _0_0 ; yo = yp = yq = _0_0 ; yr = yv = yt = yu = _0_0 ; ys = _0_0 ;".split(" ")}]},{a:"node",c:"ATTRIBUTE",m:[],l:[{a:"node_out",c:"yA",f:["vec3"],e:!1},{a:"node_out",c:"yB",f:["vec3"],e:!1},{a:"node_out",c:"yC",f:["float"],e:!1}],j:[{a:"txt",b:"yA = yB = vec3 ( _0_0 ) ; yC = _0_0 ;".split(" ")}]},{a:"node",c:"SCRIPT",m:[],l:[],j:[]},{a:"node",c:"CURVE_VEC",m:[{a:"node_var",c:"READ_R",b:["0"]},{a:"node_var",c:"READ_G",b:["0"]},{a:"node_var",c:"READ_B", b:["0"]},{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yD",f:["float"],e:!1},{a:"node_in",c:"yE",f:["vec3"],e:!1},{a:"node_out",c:"yF",f:["vec3"],e:!1}],j:[{a:"txt",b:["yF","=","yE",";"]},{a:"node_cond",d:[{a:"node_if",g:["READ_R"],j:[{a:"txt",b:"yF . r = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . r + 0.5 , NODE_TEX_ROW ) ) . r - 0.5 ) * 2.0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_G"],j:[{a:"txt",b:"yF . g = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . g + 0.5 , NODE_TEX_ROW ) ) . g - 0.5 ) * 2.0 ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["READ_B"],j:[{a:"txt",b:"yF . b = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . b + 0.5 , NODE_TEX_ROW ) ) . b - 0.5 ) * 2.0 ;".split(" ")}]}]},{a:"txt",b:"yF = mix ( yE , yF , yD ) ;".split(" ")}]},{a:"node",c:"CURVE_RGB",m:[{a:"node_var",c:"READ_A",b:["0"]},{a:"node_var",c:"READ_R",b:["0"]},{a:"node_var",c:"READ_G",b:["0"]},{a:"node_var",c:"READ_B",b:["0"]},{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yG",f:["float"],e:!1},{a:"node_in",c:"yH", f:["vec3"],e:!1},{a:"node_out",c:"yI",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["READ_A"],j:[{a:"txt",b:"float r = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . r , NODE_TEX_ROW ) ) . a ; float g = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . g , NODE_TEX_ROW ) ) . a ; float b = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . b , NODE_TEX_ROW ) ) . a ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float r = yH . r ; float g = yH . g ; float b = yH . b ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if", g:["READ_R"],j:[{a:"txt",b:"yI . r = GLSL_TEXTURE ( u_nodes_texture , vec2 ( r , NODE_TEX_ROW ) ) . r ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yI . r = r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_G"],j:[{a:"txt",b:"yI . g = GLSL_TEXTURE ( u_nodes_texture , vec2 ( g , NODE_TEX_ROW ) ) . g ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yI . g = g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_B"],j:[{a:"txt",b:"yI . b = GLSL_TEXTURE ( u_nodes_texture , vec2 ( b , NODE_TEX_ROW ) ) . b ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"yI . b = b ;".split(" ")}]}]},{a:"txt",b:"yI = mix ( yH , yI , yG ) ;".split(" ")}]},{a:"node",c:"VALTORGB",m:[{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yJ",f:["float"],e:!1},{a:"node_out",c:"yK",f:["vec3"],e:!1},{a:"node_out",c:"yL",f:["float"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yJ , NODE_TEX_ROW ) ) ; yK = yM . rgb ; yL = yM . a ;".split(" ")}]},{a:"node",c:"MAPPING",m:[{a:"node_var",c:"MAPPING_SCALE_DEF",b:["0"]}, {a:"node_var",c:"MAPPING_SCALE",b:["vec3","(","1.0",")"]},{a:"node_var",c:"MAPPING_TRANS_DEF",b:["0"]},{a:"node_var",c:"MAPPING_TRANS",b:["vec3","(","0.0",")"]},{a:"node_var",c:"MAPPING_TRS_MATRIX_DEF",b:["0"]},{a:"node_var",c:"MAPPING_TRS_MATRIX",b:["mat4","(","1.0",")"]},{a:"node_var",c:"MAPPING_MIN_CLIP_DEF",b:["0"]},{a:"node_var",c:"MAPPING_MIN_CLIP",b:["vec3","(","0.0",")"]},{a:"node_var",c:"MAPPING_MAX_CLIP_DEF",b:["0"]},{a:"node_var",c:"MAPPING_MAX_CLIP",b:["vec3","(","1.0",")"]},{a:"node_var", c:"MAPPING_IS_NORMAL",b:["0"]}],l:[{a:"node_in",c:"yN",f:["vec3"],e:!1},{a:"node_out",c:"yO",f:["vec3"],e:!1}],j:[{a:"txt",b:["yO","=","yN",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_SCALE_DEF"],j:[{a:"txt",b:"yO = yO * MAPPING_SCALE ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_TRANS_DEF"],j:[{a:"txt",b:"yO = yO + MAPPING_TRANS ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_TRS_MATRIX_DEF"],j:[{a:"txt",b:"yO = ( MAPPING_TRS_MATRIX * vec4 ( yO , _1_0 ) ) . xyz ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["MAPPING_MIN_CLIP_DEF"],j:[{a:"txt",b:"yO = max ( yO , MAPPING_MIN_CLIP ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_MAX_CLIP_DEF"],j:[{a:"txt",b:"yO = min ( yO , MAPPING_MAX_CLIP ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_IS_NORMAL"],j:[{a:"txt",b:"yO = normalize ( yO ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ADD",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yP",f:["float"],e:!1},{a:"node_in",c:"yQ",f:["float"], e:!1},{a:"node_out",c:"yR",f:["float"],e:!1}],j:[{a:"txt",b:"yR = yP + yQ ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"yR = clamp ( yR , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_SUBTRACT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yS",f:["float"],e:!1},{a:"node_in",c:"yT",f:["float"],e:!1},{a:"node_out",c:"yU",f:["float"],e:!1}],j:[{a:"txt",b:"yU = yS - yT ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt", b:"yU = clamp ( yU , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MULTIPLY",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yV",f:["float"],e:!1},{a:"node_in",c:"yW",f:["float"],e:!1},{a:"node_out",c:"yX",f:["float"],e:!1}],j:[{a:"txt",b:"yX = yV * yW ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"yX = clamp ( yX , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_DIVIDE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yY", f:["float"],e:!1},{a:"node_in",c:"yZ",f:["float"],e:!1},{a:"node_out",c:"y_",f:["float"],e:!1}],j:[{a:"txt",b:"y_ = ( yZ != _0_0 ) ? yY / yZ : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"y_ = clamp ( y_ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_SINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"za",f:["float"],e:!1},{a:"node_in",c:"zb",f:["float"],e:!1},{a:"node_out",c:"zc",f:["float"],e:!1}],j:[{a:"txt",b:"zc = sin ( za ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zc = clamp ( zc , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zb",";"]}]},{a:"node",c:"MATH_COSINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zd",f:["float"],e:!1},{a:"node_in",c:"ze",f:["float"],e:!1},{a:"node_out",c:"zf",f:["float"],e:!1}],j:[{a:"txt",b:"zf = cos ( zd ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zf = clamp ( zf , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt", b:["ze",";"]}]},{a:"node",c:"MATH_TANGENT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zg",f:["float"],e:!1},{a:"node_in",c:"zh",f:["float"],e:!1},{a:"node_out",c:"zi",f:["float"],e:!1}],j:[{a:"txt",b:"zi = tan ( zg ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zi = clamp ( zi , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zh",";"]}]},{a:"node",c:"MATH_ARCSINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zj",f:["float"], e:!1},{a:"node_in",c:"zk",f:["float"],e:!1},{a:"node_out",c:"zl",f:["float"],e:!1}],j:[{a:"txt",b:"zl = ( zj <= _1_0 && zj >= - _1_0 ) ? asin ( zj ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zl = clamp ( zl , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zk",";"]}]},{a:"node",c:"MATH_ARCCOSINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zm",f:["float"],e:!1},{a:"node_in",c:"zn",f:["float"],e:!1},{a:"node_out",c:"zo",f:["float"], e:!1}],j:[{a:"txt",b:"zo = ( zm <= _1_0 && zm >= - _1_0 ) ? acos ( zm ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zo = clamp ( zo , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zn",";"]}]},{a:"node",c:"MATH_ARCTANGENT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zp",f:["float"],e:!1},{a:"node_in",c:"zq",f:["float"],e:!1},{a:"node_out",c:"zr",f:["float"],e:!1}],j:[{a:"txt",b:"zr = atan ( zp ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if", g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zr = clamp ( zr , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zq",";"]}]},{a:"node",c:"MATH_POWER",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zs",f:["float"],e:!1},{a:"node_in",c:"zt",f:["float"],e:!1},{a:"node_out",c:"zu",f:["float"],e:!1}],j:[{a:"txt",b:"if ( zs < _0_0 && zt != floor ( zt ) ) zu = _0_0 ; else if ( zt == _0_0 ) zu = _1_0 ; else if ( zs < _0_0 ) zu = mix ( _1_0 , - _1_0 , sign ( mod ( - zt , 2.0 ) ) ) * pow ( - zs , zt ) ; else if ( zs == _0_0 ) zu = _0_0 ; else zu = pow ( zs , zt ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zu = clamp ( zu , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_LOGARITHM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zv",f:["float"],e:!1},{a:"node_in",c:"zA",f:["float"],e:!1},{a:"node_out",c:"zB",f:["float"],e:!1}],j:[{a:"txt",b:"zB = ( zv > _0_0 && zA > _0_0 ) ? log2 ( zv ) / log2 ( zA ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zB = clamp ( zB , _0_0 , _1_0 ) ;".split(" ")}]}]}]}, {a:"node",c:"MATH_MINIMUM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zC",f:["float"],e:!1},{a:"node_in",c:"zD",f:["float"],e:!1},{a:"node_out",c:"zE",f:["float"],e:!1}],j:[{a:"txt",b:"zE = min ( zC , zD ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zE = clamp ( zE , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MAXIMUM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zF",f:["float"],e:!1},{a:"node_in",c:"zG",f:["float"], e:!1},{a:"node_out",c:"zH",f:["float"],e:!1}],j:[{a:"txt",b:"zH = max ( zF , zG ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zH = clamp ( zH , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ROUND",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zI",f:["float"],e:!1},{a:"node_in",c:"zJ",f:["float"],e:!1},{a:"node_out",c:"zK",f:["float"],e:!1}],j:[{a:"txt",b:"zK = floor ( zI + _0_5 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"], j:[{a:"txt",b:"zK = clamp ( zK , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zJ",";"]}]},{a:"node",c:"MATH_LESS_THAN",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zL",f:["float"],e:!1},{a:"node_in",c:"zM",f:["float"],e:!1},{a:"node_out",c:"zN",f:["float"],e:!1}],j:[{a:"txt",b:"zN = ( zL < zM ) ? _1_0 : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zN = clamp ( zN , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_GREATER_THAN",m:[{a:"node_var", c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zO",f:["float"],e:!1},{a:"node_in",c:"zP",f:["float"],e:!1},{a:"node_out",c:"zQ",f:["float"],e:!1}],j:[{a:"txt",b:"zQ = ( zO > zP ) ? _1_0 : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zQ = clamp ( zQ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MODULO",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zR",f:["float"],e:!1},{a:"node_in",c:"zS",f:["float"],e:!1},{a:"node_out",c:"zT", f:["float"],e:!1}],j:[{a:"txt",b:"zT = abs ( zS ) > 0.000001 ? mod ( zR , zS ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zT = clamp ( zT , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ABSOLUTE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zU",f:["float"],e:!1},{a:"node_in",c:"zV",f:["float"],e:!1},{a:"node_out",c:"zW",f:["float"],e:!1}],j:[{a:"txt",b:"zW = abs ( zU ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"], j:[{a:"txt",b:"zW = clamp ( zW , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zV",";"]}]},{a:"node",c:"MIX_RGB_MIX",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zX",f:["float"],e:!1},{a:"node_in",c:"zY",f:["vec3"],e:!1},{a:"node_in",c:"zZ",f:["vec3"],e:!1},{a:"node_out",c:"z_",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( zX , _0_0 , _1_0 ) ; z_ = mix ( zY , zZ , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"z_ = clamp ( z_ , _0_0 , _1_0 ) ;".split(" ")}]}]}]}, {a:"node",c:"MIX_RGB_ADD",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Aa",f:["float"],e:!1},{a:"node_in",c:"Ab",f:["vec3"],e:!1},{a:"node_in",c:"Ac",f:["vec3"],e:!1},{a:"node_out",c:"Ad",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Aa , _0_0 , _1_0 ) ; Ad = mix ( Ab , Ab + Ac , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ad = clamp ( Ad , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_MULTIPLY",m:[{a:"node_var", c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ae",f:["float"],e:!1},{a:"node_in",c:"Af",f:["vec3"],e:!1},{a:"node_in",c:"Ag",f:["vec3"],e:!1},{a:"node_out",c:"Ah",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ae , _0_0 , _1_0 ) ; Ah = mix ( Af , Af * Ag , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ah = clamp ( Ah , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SUBTRACT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in", c:"Ai",f:["float"],e:!1},{a:"node_in",c:"Aj",f:["vec3"],e:!1},{a:"node_in",c:"Ak",f:["vec3"],e:!1},{a:"node_out",c:"Al",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ai , _0_0 , _1_0 ) ; Al = mix ( Aj , Aj - Ak , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Al = clamp ( Al , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SCREEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Am",f:["float"],e:!1},{a:"node_in",c:"An", f:["vec3"],e:!1},{a:"node_in",c:"Ao",f:["vec3"],e:!1},{a:"node_out",c:"Ap",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Am , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; Ap = vec3 ( _1_0 ) - ( vec3 ( Aq ) + xE * ( vec3 ( _1_0 ) - Ao ) ) * ( vec3 ( _1_0 ) - An ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ap = clamp ( Ap , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DIVIDE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ar", f:["float"],e:!1},{a:"node_in",c:"As",f:["vec3"],e:!1},{a:"node_in",c:"At",f:["vec3"],e:!1},{a:"node_out",c:"Au",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ar , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; At += step ( At , vec3 ( _0_0 ) ) ; Au = Aq * As + xE * As / At ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Au = clamp ( Au , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DIFFERENCE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in", c:"Av",f:["float"],e:!1},{a:"node_in",c:"Aw",f:["vec3"],e:!1},{a:"node_in",c:"Ax",f:["vec3"],e:!1},{a:"node_out",c:"Ay",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Av , _0_0 , _1_0 ) ; Ay = mix ( Aw , abs ( Aw - Ax ) , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ay = clamp ( Ay , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DARKEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Az",f:["float"],e:!1},{a:"node_in", c:"AA",f:["vec3"],e:!1},{a:"node_in",c:"AB",f:["vec3"],e:!1},{a:"node_out",c:"AC",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Az , _0_0 , _1_0 ) ; AC = min ( AA . rgb , AB . rgb * xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AC = clamp ( AC , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_LIGHTEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AD",f:["float"],e:!1},{a:"node_in",c:"AE",f:["vec3"],e:!1},{a:"node_in", c:"AF",f:["vec3"],e:!1},{a:"node_out",c:"AG",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AD , _0_0 , _1_0 ) ; AG = max ( AE . rgb , AF . rgb * xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AG = clamp ( AG , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_OVERLAY",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AH",f:["float"],e:!1},{a:"node_in",c:"AI",f:["vec3"],e:!1},{a:"node_in",c:"AJ",f:["vec3"],e:!1},{a:"node_out", c:"AK",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AH , _0_0 , _1_0 ) ; vec3 AL = vec3 ( _1_0 - xE ) ; AK = mix ( AI * ( AL + 2.0 * xE * AJ ) , vec3 ( _1_0 ) - ( AL + 2.0 * xE * ( vec3 ( _1_0 ) - AJ ) ) * ( vec3 ( _1_0 ) - AI ) , step ( _0_5 , AI ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AK = clamp ( AK , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DODGE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AM",f:["float"], e:!1},{a:"node_in",c:"AN",f:["vec3"],e:!1},{a:"node_in",c:"AO",f:["vec3"],e:!1},{a:"node_out",c:"AP",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AM , _0_0 , _1_0 ) ; vec3 AQ = vec3 ( _1_0 ) - xE * AO ; vec3 AR = clamp ( AN / AQ , _0_0 , _1_0 ) ; AP = mix ( mix ( AR , vec3 ( _1_0 ) , step ( AQ , vec3 ( _0_0 ) ) ) , AN , step ( AN , vec3 ( _0_0 ) ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AP = clamp ( AP , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node", c:"MIX_RGB_BURN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AS",f:["float"],e:!1},{a:"node_in",c:"AT",f:["vec3"],e:!1},{a:"node_in",c:"AU",f:["vec3"],e:!1},{a:"node_out",c:"AV",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AS , _0_0 , _1_0 ) ; vec3 jH = vec3 ( _1_0 - xE ) ; vec3 AQ = jH + xE * AU ; vec3 AR = clamp ( vec3 ( _1_0 ) - ( vec3 ( _1_0 ) - AT ) / AQ , _0_0 , _1_0 ) ; AV = mix ( AR , vec3 ( _0_0 ) , step ( AQ , vec3 ( _0_0 ) ) ) ;".split(" ")},{a:"node_cond", d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AV = clamp ( AV , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_HUE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AW",f:["float"],e:!1},{a:"node_in",c:"AX",f:["vec3"],e:!1},{a:"node_in",c:"AY",f:["vec3"],e:!1},{a:"node_out",c:"AZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AW , _0_0 , _1_0 ) ; vec3 jz , A_ , AQ ; AZ = AX ; A_ = jy ( AY ) ; if ( A_ . y != _0_0 ) { jz = jy ( AZ ) ; jz . x = A_ . x ; AQ = jA ( jz ) ; AZ = mix ( AZ , AQ , xE ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AZ = clamp ( AZ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SATURATION",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ba",f:["float"],e:!1},{a:"node_in",c:"Bb",f:["vec3"],e:!1},{a:"node_in",c:"Bc",f:["vec3"],e:!1},{a:"node_out",c:"Bd",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ba , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; Bd = Bb ; vec3 jz , A_ ; jz = jy ( Bd ) ; if ( jz . y != _0_0 ) { A_ = jy ( Bc ) ; jz . y = Aq * jz . y + xE * A_ . y ; Bd = jA ( jz ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bd = clamp ( Bd , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_VALUE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Be",f:["float"],e:!1},{a:"node_in",c:"Bf",f:["vec3"],e:!1},{a:"node_in",c:"Bg",f:["vec3"],e:!1},{a:"node_out",c:"Bh",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Be , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; vec3 jz , A_ ; jz = jy ( Bf ) ; A_ = jy ( Bg ) ; jz . z = Aq * jz . z + xE * A_ . z ; Bh = jA ( jz ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bh = clamp ( Bh , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_COLOR",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Bi",f:["float"],e:!1},{a:"node_in",c:"Bj",f:["vec3"],e:!1},{a:"node_in",c:"Bk",f:["vec3"],e:!1},{a:"node_out",c:"Bl",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Bi , _0_0 , _1_0 ) ; vec3 jz , A_ , AQ ; Bl = Bj ; A_ = jy ( Bk ) ; if ( A_ . y != _0_0 ) { jz = jy ( Bl ) ; jz . x = A_ . x ; jz . y = A_ . y ; AQ = jA ( jz ) ; Bl = mix ( Bl , AQ , xE ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bl = clamp ( Bl , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SOFT_LIGHT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Bm",f:["float"],e:!1},{a:"node_in",c:"Bn",f:["vec3"],e:!1},{a:"node_in",c:"Bo",f:["vec3"],e:!1},{a:"node_out",c:"Bp",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Bm , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; vec3 Bq = Bo + Bn - Bo * Bn ; Bp = Bn * ( vec3 ( Aq ) + vec3 ( xE ) * ( ( vec3 ( _1_0 ) - Bn ) * Bo + Bq ) ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bp = clamp ( Bp , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_LINEAR_LIGHT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Br",f:["float"],e:!1},{a:"node_in",c:"Bs",f:["vec3"],e:!1},{a:"node_in",c:"Bt",f:["vec3"],e:!1},{a:"node_out",c:"Bu",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Br , _0_0 , _1_0 ) ; Bu = Bs + xE * ( 2.0 * Bt - vec3 ( _1_0 ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if", g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bu = clamp ( Bu , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"OUTPUT",m:[],l:[{a:"node_in",c:"Bv",f:["vec3"],e:!1},{a:"node_in",c:"Bw",f:["float"],e:!1}],j:[{a:"txt",b:"D = Bv ; H = Bw ;".split(" ")}]},{a:"node",c:"OUTPUT_MATERIAL",m:[],l:[{a:"node_in",c:"Bx",f:["vec3"],e:!1},{a:"node_in",c:"By",f:["vec3"],e:!1},{a:"node_in",c:"Bz",f:["float"],e:!1}],j:[{a:"txt",b:["D","=","Bx",";"]}]},{a:"node",c:"MATERIAL_BEGIN",m:[{a:"node_var",c:"MATERIAL_EXT",b:["0"]}, {a:"node_var",c:"USE_MATERIAL_NORMAL",b:["0"]},{a:"node_var",c:"USE_MATERIAL_DIFFUSE",b:["0"]},{a:"node_var",c:"SHADELESS_MAT",b:["0"]}],l:[{a:"node_in",c:"BA",f:["vec3"],e:!1},{a:"node_in",c:"BB",f:["vec3"],e:!1},{a:"node_in",c:"BC",f:["float"],e:!1},{a:"node_in",c:"BD",f:["vec3"],e:!0},{a:"node_in",c:"BE",f:["float"],e:!0},{a:"node_out",c:"BF",f:["vec3"],e:!1},{a:"node_out",c:"BG",f:["vec3"],e:!1},{a:"node_out",c:"BH",f:["vec3"],e:!1},{a:"node_out",c:"BI",f:["vec3"],e:!1},{a:"node_out",c:"BJ",f:["vec3"], e:!1},{a:"node_out",c:"BK",f:["vec2"],e:!1},{a:"node_out",c:"BL",f:["vec2"],e:!1},{a:"node_out",c:"BM",f:["vec4"],e:!1},{a:"node_param",c:"rh",f:["const","vec2"],e:!1},{a:"node_param",c:"ri",f:["const","vec3"],e:!1}],j:[{a:"txt",b:"BH = clamp ( BA , _0_0 , _1_0 ) ; BI = ri [ 0 ] * clamp ( BB , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_NORMAL"],j:[{a:"txt",b:"BJ = normalize ( BD ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:["BJ","=","nH",";"]}]}]},{a:"node_cond", d:[{a:"node_if",g:["SHADELESS_MAT",{a:"logic_negative_expr",i:1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MATERIAL_EXT"],j:[{a:"txt",b:"BF = BE * BH ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"BF = ro * BH ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_DIFFUSE"],j:[{a:"txt",b:["BH","*=","BC",";"]}]}]},{a:"txt",b:"BG = rp * u_environment_energy * ce ( BJ ) ; BM = ch ( BH ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],j:[{a:"txt",b:"BK = vec2 ( rh [ 0 ] , rh [ 1 ] ) ; BL = vec2 ( ri [ 1 ] , ri [ 2 ] ) ;".split(" ")}]}]}, {a:"txt",b:["G","=","BM",";"]}]},{a:"node_else",j:[{a:"txt",b:"BF = vec3 ( _0_0 ) ; BG = vec3 ( _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATERIAL_END",m:[{a:"node_var",c:"MATERIAL_EXT",b:["0"]},{a:"node_var",c:"USE_MATERIAL_DIFFUSE",b:["0"]},{a:"node_var",c:"USE_MATERIAL_SPECULAR",b:["0"]}],l:[{a:"node_in",c:"BN",f:["vec4"],e:!1},{a:"node_in",c:"BO",f:["vec3"],e:!1},{a:"node_in",c:"BP",f:["vec3"],e:!1},{a:"node_in",c:"BQ",f:["float"],e:!0},{a:"node_in",c:"BR",f:["float"],e:!0},{a:"node_in",c:"BS", f:["float"],e:!0},{a:"node_out",c:"BT",f:["vec3"],e:!0},{a:"node_out",c:"BU",f:["float"],e:!0},{a:"node_out",c:"BV",f:["vec3"],e:!0},{a:"node_out",c:"BW",f:["vec3"],e:!0},{a:"node_out",c:"BX",f:["vec3"],e:!0},{a:"node_param",c:"rj",f:["float"],e:!1},{a:"node_param",c:"rk",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BT"],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_DIFFUSE"],j:[{a:"txt",b:"BT = BN . rgb ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"BT = vec3 ( _0_0 ) ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["MATERIAL_EXT","REFLECTION_TYPE","REFL_NONE",{a:"non_equal_expr",i:2},{a:"logical_and_expr",i:2}],j:[{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_TYPE","REFL_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"cq ( BT , nI , BP , BQ , u_view_tsr_frag ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"cq ( BT , nI , BP , BQ , mat3 ( _0_0 ) ) ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:["BT","+=","BO",";"]}]}]}]}]},{a:"node_cond", d:[{a:"node_if",g:["USE_OUT_BV"],j:[{a:"txt",b:["BV","=","BP",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["MATERIAL_EXT"],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BW"],j:[{a:"txt",b:"BW = BN . rgb ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BX"],j:[{a:"txt",b:["BX","=","BO",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BU"],j:[{a:"txt",b:"BU = clamp ( BS , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:"float t = max ( max ( BO . r , BO . g ) , BO . b ) * BR ; BU = clamp ( BS * ( _1_0 - t ) + t , _0_0 , _1_0 ) ;".split(" ")}]}]}]}]}]}, {a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BU"],j:[{a:"txt",b:"BU = clamp ( rj , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:"float t = max ( max ( BO . r , BO . g ) , BO . b ) * rk ; BU = rj * ( _1_0 - t ) + t ;".split(" ")}]}]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:["E","=","BO",";"]}]},{a:"node_else",j:[{a:"txt",b:"E = vec3 ( _0_0 ) ;".split(" ")}]}]},{a:"txt",b:["F","=","BP", ";"]}]},{a:"node",c:"LIGHTING_AMBIENT",m:[],l:[{a:"node_in",c:"nZ",f:["vec3"],e:!1},{a:"node_in",c:"n_",f:["vec3"],e:!1},{a:"node_in",c:"oa",f:["vec3"],e:!1},{a:"node_out",c:"ob",f:["vec4"],e:!1},{a:"node_out",c:"oc",f:["vec3"],e:!1}],j:[{a:"txt",b:"ob = vec4 ( nZ + oa * n_ , _0_0 ) ; oc = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"LIGHTING_LAMP",m:[{a:"node_var",c:"LAMP_TYPE",b:["HEMI"]},{a:"node_var",c:"LAMP_IND",b:["0"]},{a:"node_var",c:"LAMP_SPOT_SIZE",b:["0.8"]},{a:"node_var",c:"LAMP_SPOT_BLEND", b:["0.03"]},{a:"node_var",c:"LAMP_LIGHT_DIST",b:["30.0"]},{a:"node_var",c:"LAMP_SHADOW_MAP_IND",b:["-","1"]},{a:"node_var",c:"LAMP_USE_SPHERE",b:["0"]}],l:[{a:"node_in",c:"od",f:["vec4"],e:!1},{a:"node_out",c:"oe",f:["vec3"],e:!1},{a:"node_out",c:"of",f:["vec2"],e:!1},{a:"node_out",c:"og",f:["vec3"],e:!1},{a:"node_out",c:"oh",f:["float"],e:!1}],j:[{a:"txt",b:"of = vec2 ( u_light_positions [ LAMP_IND ] . w , u_light_color_intensities [ LAMP_IND ] . w ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if", g:["LAMP_TYPE","HEMI",{a:"equal_expr",i:2}],j:[{a:"txt",b:["oh","=","_0_5",";"]}]},{a:"node_else",j:[{a:"txt",b:["oh","=","_0_0",";"]}]}]},{a:"txt",b:"og = u_light_color_intensities [ LAMP_IND ] . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_SHADOW_MAP_IND",1,{a:"negative_expr",i:1},{a:"non_equal_expr",i:2}],j:[{a:"txt",b:"og *= od [ LAMP_SHADOW_MAP_IND ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2},"LAMP_TYPE","POINT",{a:"equal_expr", i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vec3 oi = u_light_positions [ LAMP_IND ] . xyz ; oe = oi - nG ; float aC = length ( oe ) ; og *= LAMP_LIGHT_DIST / ( LAMP_LIGHT_DIST + aC * aC ) ; oe = normalize ( oe ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vec3 ok = u_light_directions [ LAMP_IND ] ; float ol = dot ( oe , ok ) ; ol *= smoothstep ( _0_0 , _1_0 , ( ol - LAMP_SPOT_SIZE ) / LAMP_SPOT_BLEND ) ; og *= ol ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["LAMP_USE_SPHERE"],j:[{a:"txt",b:"og *= max ( LAMP_LIGHT_DIST - aC , _0_0 ) / LAMP_LIGHT_DIST ;".split(" ")}]}]}]},{a:"node_else",j:[{a:"txt",b:"oe = u_light_directions [ LAMP_IND ] ;".split(" ")}]}]}]},{a:"node",c:"DIFFUSE_FRESNEL",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"om",f:["vec3"],e:!1},{a:"node_in",c:"on",f:["vec2"],e:!1},{a:"node_in",c:"oo",f:["vec3"],e:!1},{a:"node_in",c:"op",f:["float"],e:!1},{a:"node_in",c:"oq",f:["vec2"], e:!1},{a:"node_out",c:"or",f:["float"],e:!1}],j:[{a:"txt",b:["vec3","qS","=","oo",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( om , B . xyz ) ; qS = cross ( os , B . xyz ) ; qS = - normalize ( qS ) ;".split(" ")}]}]},{a:"txt",b:"or = _0_0 ; if ( on . r != _0_0 ) { float ot = ( _1_0 - op ) * dot ( qS , om ) + op ; if ( oq [ 0 ] == _0_0 ) { or = _1_0 ; } else { float t = _1_0 + abs ( ot ) ; t = oq [ 1 ] + ( _1_0 - oq [ 1 ] ) * pow ( t , oq [ 0 ] ) ; or = clamp ( t , _0_0 , _1_0 ) ; } or = max ( or , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_LAMBERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ou",f:["vec3"],e:!1},{a:"node_in",c:"ov",f:["vec2"],e:!1},{a:"node_in",c:"ow",f:["vec3"],e:!1},{a:"node_in",c:"ox",f:["float"],e:!1},{a:"node_out",c:"oy",f:["float"],e:!1}],j:[{a:"txt",b:["vec3","qS","=","ow",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( ou , B . xyz ) ; qS = cross ( os , B . xyz ) ; qS = - normalize ( qS ) ;".split(" ")}]}]},{a:"txt", b:"oy = _0_0 ; if ( ov . r != _0_0 ) { float ot = ( _1_0 - ox ) * dot ( qS , ou ) + ox ; oy = max ( ot , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_OREN_NAYAR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oz",f:["vec3"],e:!1},{a:"node_in",c:"oA",f:["vec2"],e:!1},{a:"node_in",c:"oB",f:["vec3"],e:!1},{a:"node_in",c:"oC",f:["float"],e:!1},{a:"node_in",c:"oD",f:["vec2"],e:!1},{a:"node_out",c:"oE",f:["float"],e:!1}],j:[{a:"txt",b:["vec3","qS","=","oB",";"]},{a:"node_cond", d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oz , B . xyz ) ; qS = cross ( os , B . xyz ) ; qS = - normalize ( qS ) ;".split(" ")}]}]},{a:"txt",b:"oE = _0_0 ; if ( oA . r != _0_0 ) { float ot = ( _1_0 - oC ) * dot ( qS , oz ) + oC ; if ( oD [ 0 ] > _0_0 ) { float oF = max ( dot ( qS , nI ) , _0_0 ) ; float oG = oD [ 0 ] * oD [ 0 ] ; float cg = _1_0 - _0_5 * ( oG / ( oG + 0.33 ) ) ; vec3 oH = oz - ot * qS ; vec3 oI = nI - oF * qS ; if ( length ( oH ) == _0_0 || length ( oI ) == _0_0 || abs ( ot ) > _1_0 || abs ( oF ) > _1_0 ) oE = ot * cg ; else { float oJ = acos ( ot ) ; float oK = acos ( oF ) ; vec3 oL = normalize ( oH ) ; vec3 oM = normalize ( oI ) ; float a , b ; a = max ( oJ , oK ) ; b = min ( oJ , oK ) ; b *= 0.95 ; float t = max ( dot ( oL , oM ) , _0_0 ) ; float oN = 0.45 * ( oG / ( oG + 0.09 ) ) ; oE = ot * ( cg + ( oN * t * sin ( a ) * tan ( b ) ) ) ; } } else oE = ot ; oE = max ( oE , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_MINNAERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oO",f:["vec3"],e:!1},{a:"node_in",c:"oP",f:["vec2"],e:!1},{a:"node_in",c:"oQ",f:["vec3"],e:!1},{a:"node_in",c:"oR",f:["float"],e:!1},{a:"node_in",c:"oS",f:["vec2"],e:!1},{a:"node_out",c:"oT",f:["float"],e:!1}],j:[{a:"txt",b:["vec3","qS","=","oQ",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oO , B . xyz ) ; qS = cross ( os , B . xyz ) ; qS = - normalize ( qS ) ;".split(" ")}]}]}, {a:"txt",b:"oT = _0_0 ; if ( oP . r != _0_0 ) { float ot = ( _1_0 - oR ) * dot ( qS , oO ) + oR ; float oF = max ( dot ( qS , nI ) , _0_0 ) ; if ( oS [ 0 ] <= _1_0 ) oT = ot * pow ( max ( oF * ot , 0.1 ) , oS [ 0 ] - _1_0 ) ; else oT = ot * pow ( 1.0001 - oF , oS [ 0 ] - _1_0 ) ; oT = max ( oT , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oU",f:["vec3"],e:!1},{a:"node_in",c:"oV",f:["vec2"],e:!1},{a:"node_in",c:"oW",f:["vec3"], e:!1},{a:"node_in",c:"oX",f:["float"],e:!1},{a:"node_in",c:"oY",f:["vec2"],e:!1},{a:"node_out",c:"oZ",f:["float"],e:!1}],j:[{a:"txt",b:["vec3","qS","=","oW",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oU , B . xyz ) ; qS = cross ( os , B . xyz ) ; qS = - normalize ( qS ) ;".split(" ")}]}]},{a:"txt",b:"oZ = _0_0 ; if ( oV . r != _0_0 ) { float ot = ( _1_0 - oX ) * dot ( qS , oU ) + oX ; float o_ = acos ( ot ) ; if ( o_ < oY [ 0 ] ) oZ = _1_0 ; else if ( o_ > ( oY [ 0 ] + oY [ 1 ] ) || oY [ 1 ] == _0_0 ) oZ = _0_0 ; else oZ = _1_0 - ( ( o_ - oY [ 0 ] ) / oY [ 1 ] ) ; oZ = max ( oZ , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"SPECULAR_PHONG",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pa",f:["vec3"],e:!1},{a:"node_in",c:"pb",f:["vec2"],e:!1},{a:"node_in",c:"pc",f:["vec3"],e:!1},{a:"node_in",c:"pd",f:["float"],e:!1},{a:"node_in",c:"pe",f:["vec2"],e:!1},{a:"node_out",c:"pf",f:["float"],e:!1}],j:[{a:"txt",b:"pf = _0_0 ; if ( pb . g == _1_0 ) { vec3 pg = normalize ( pa + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pd == _0_0 ) { pf = dot ( B . xyz , pg ) ; pf = sqrt ( _1_0 - pf * pf ) ; }".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"pf = ( _1_0 - pd ) * max ( dot ( pc , pg ) , _0_0 ) + pd ;".split(" ")}]}]},{a:"txt",b:"pf = pow ( pf , pe [ 0 ] ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_COOKTORR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ph",f:["vec3"],e:!1},{a:"node_in",c:"pi",f:["vec2"],e:!1},{a:"node_in",c:"pj",f:["vec3"],e:!1},{a:"node_in",c:"pk",f:["float"],e:!1},{a:"node_in",c:"pl",f:["vec2"],e:!1},{a:"node_out",c:"pm",f:["float"],e:!1}],j:[{a:"txt",b:"pm = _0_0 ; if ( pi . g != _0_0 ) { vec3 pg = normalize ( ph + nI ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pk == _0_0 ) { pm = dot ( B . xyz , pg ) ; pm = sqrt ( _1_0 - pm * pm ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"pm = max ( dot ( pj , pg ) , _0_0 ) ; pm = ( _1_0 - pk ) * pm + pk ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float oF = max ( dot ( B . xyz , nI ) , _0_0 ) ; oF = sqrt ( _1_0 - oF * oF ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float oF = max ( dot ( pj , nI ) , _0_0 ) ;".split(" ")}]}]}, {a:"txt",b:"pm = pow ( pm , pl [ 0 ] ) ; pm = pm / ( 0.1 + oF ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_WARDISO",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pn",f:["vec3"],e:!1},{a:"node_in",c:"po",f:["vec2"],e:!1},{a:"node_in",c:"pr",f:["vec3"],e:!1},{a:"node_in",c:"pu",f:["float"],e:!1},{a:"node_in",c:"pv",f:["vec2"],e:!1},{a:"node_out",c:"pw",f:["float"],e:!1}],j:[{a:"txt",b:"pw = _0_0 ; if ( po . g == _1_0 ) { vec3 pg = normalize ( pn + nI ) ;".split(" ")},{a:"node_cond", d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = _0_0 ; float oF = _0_0 ; float py = _0_0 ; if ( pu == _0_0 ) { px = dot ( B . xyz , pg ) ; oF = dot ( B . xyz , nI ) ; py = dot ( B . xyz , pn ) ; px = sqrt ( _1_0 - px * px ) ; oF = sqrt ( _1_0 - oF * oF ) ; py = sqrt ( _1_0 - py * py ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = max ( dot ( pr , pg ) , 0.01 ) ; float oF = max ( dot ( pr , nI ) , 0.01 ) ; float py = max ( dot ( pr , pn ) , 0.01 ) ;".split(" ")}]}]}, {a:"txt",b:"float bm = tan ( acos ( px ) ) ; float J = max ( pv [ 0 ] , 0.01 ) ; pw = py * ( _1_0 / ( 4.0 * M_PI * J * J ) ) * ( exp ( - ( bm * bm ) / ( J * J ) ) / ( sqrt ( oF * py ) ) ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pz",f:["vec3"],e:!1},{a:"node_in",c:"pA",f:["vec2"],e:!1},{a:"node_in",c:"pB",f:["vec3"],e:!1},{a:"node_in",c:"pC",f:["float"],e:!1},{a:"node_in",c:"pD",f:["vec2"],e:!1},{a:"node_out",c:"pE",f:["float"], e:!1}],j:[{a:"txt",b:"pE = _0_0 ; if ( pA . g == _1_0 ) { vec3 bO = normalize ( pz + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float pF = dot ( bO , B . xyz ) ; float bm = pD [ 0 ] + pD [ 1 ] ; if ( pC == _0_0 ) bm = acos ( sqrt ( _1_0 - pF * pF ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float bm = acos ( dot ( bO , pB ) ) ;".split(" ")}]}]},{a:"txt",b:"if ( bm < pD [ 0 ] ) pE = _1_0 ; else if ( bm >= pD [ 0 ] + pD [ 1 ] || pD [ 1 ] == _0_0 ) pE = _0_0 ; else pE = _1_0 - ( bm - pD [ 0 ] ) / pD [ 1 ] ; }".split(" ")}]}, {a:"node",c:"SPECULAR_BLINN",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pG",f:["vec3"],e:!1},{a:"node_in",c:"pH",f:["vec2"],e:!1},{a:"node_in",c:"pI",f:["vec3"],e:!1},{a:"node_in",c:"pJ",f:["float"],e:!1},{a:"node_in",c:"pK",f:["vec2"],e:!1},{a:"node_out",c:"pL",f:["float"],e:!1}],j:[{a:"txt",b:"float pM = pK [ 0 ] ; float pN = pK [ 1 ] ; pL = _0_0 ; if ( pH . g == _1_0 ) { if ( pM < 1.0 || pN == _0_0 ) pL = _0_0 ; else { if ( pN < 100.0 ) pN = sqrt ( 1.0 / pN ) ; else pN = 10.0 / pN ; vec3 pg = normalize ( nI + pG ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = 0.0 ; if ( pJ == _0_0 ) { float pO = dot ( B . xyz , pg ) ; px = sqrt ( _1_0 - pO * pO ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = ( _1_0 - pJ ) * max ( dot ( pI , pg ) , _0_0 ) + pJ ;".split(" ")}]}]},{a:"txt",b:"if ( px < _0_0 ) pL = _0_0 ; else { float oF = max ( dot ( pI , nI ) , 0.01 ) ; float py = dot ( pI , pG ) ; if ( py <= 0.01 ) pL = _0_0 ; else { float pP = max ( dot ( nI , pg ) , 0.01 ) ; float a = _1_0 ; float b = ( 2.0 * px * oF ) / pP ; float da = ( 2.0 * px * py ) / pP ; float g = min ( min ( a , b ) , da ) ; float p = sqrt ( pow ( pM , 2.0 ) + pow ( pP , 2.0 ) - _1_0 ) ; float lw = pow ( p - pP , 2.0 ) / pow ( p + pP , 2.0 ) * ( _1_0 + pow ( pP * ( p + pP ) - _1_0 , 2.0 ) / pow ( pP * ( p - pP ) + _1_0 , 2.0 ) ) ; float o_ = acos ( px ) ; pL = max ( lw * g * exp ( - pow ( o_ , 2.0 ) / ( 2.0 * pow ( pN , 2.0 ) ) ) , _0_0 ) ; } } } }".split(" ")}]}, {a:"node",c:"LIGHTING_APPLY",m:[],l:[{a:"node_in",c:"pQ",f:["vec4"],e:!1},{a:"node_in",c:"pR",f:["vec3"],e:!1},{a:"node_in",c:"pS",f:["float"],e:!1},{a:"node_in",c:"pT",f:["float"],e:!1},{a:"node_in",c:"pU",f:["vec3"],e:!1},{a:"node_in",c:"pV",f:["vec3"],e:!1},{a:"node_in",c:"pW",f:["vec4"],e:!1},{a:"node_in",c:"pX",f:["vec3"],e:!1},{a:"node_in",c:"pY",f:["vec3"],e:!1},{a:"node_in",c:"pZ",f:["vec3"],e:!1},{a:"node_in",c:"p_",f:["float"],e:!1},{a:"node_out",c:"qa",f:["vec4"],e:!1},{a:"node_out",c:"qb", f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_NODE_B4W_TRANSLUCENCY"],j:[{a:"txt",b:"if ( dot ( pU , pV ) * dot ( nI , pV ) < _0_0 ) { float BY = pW . x ; float BZ = pW . y ; float B_ = pW . z ; float Ca = pW . w ; float Cb = clamp ( abs ( dot ( pU , pV ) ) , _0_0 , _1_0 ) ; float Cc = clamp ( dot ( nI , - pU ) , _0_0 , _1_0 ) ; float Cd = pow ( Cc , BZ ) ; qa = pQ + p_ * vec4 ( pZ * Cb * pow ( pX , vec3 ( BY ) ) , _1_0 ) ; qa += B_ * mix ( vec4 ( pX , _1_0 ) , vec4 ( _1_0 ) , Ca ) * p_ * vec4 ( pZ * Cb * vec3 ( Cd ) , _1_0 ) ; qb = pR ; } else { qb = pR + pZ * pY * pT ; qa = pQ + vec4 ( pZ * pX * pS , pT ) ; }".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"qb = pR + pZ * pY * pT ; qa = pQ + vec4 ( pZ * pX * pS , pT ) ;".split(" ")}]}]}]},{a:"node",c:"RGB",m:[{a:"node_var",c:"RGB_IND",b:["0"]}],l:[{a:"node_out",c:"Ce",f:["vec3"],e:!1}],j:[{a:"txt",b:"Ce = u_node_rgbs [ RGB_IND ] ;".split(" ")}]},{a:"node",c:"RGBTOBW",m:[],l:[{a:"node_in",c:"Cf",f:["vec3"],e:!1},{a:"node_out",c:"Cg",f:["float"],e:!1}],j:[{a:"txt",b:"Cg = dot ( Cf , vec3 ( 0.35 , 0.45 , 0.2 ) ) ;".split(" ")}]},{a:"node",c:"SEPRGB",m:[],l:[{a:"node_in",c:"Ch", f:["vec3"],e:!1},{a:"node_out",c:"Ci",f:["float"],e:!0},{a:"node_out",c:"Cj",f:["float"],e:!0},{a:"node_out",c:"Ck",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ci"],j:[{a:"txt",b:"Ci = Ch . r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cj"],j:[{a:"txt",b:"Cj = Ch . g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ck"],j:[{a:"txt",b:"Ck = Ch . b ;".split(" ")}]}]}]},{a:"node",c:"SEPHSV",m:[],l:[{a:"node_in",c:"Cl",f:["vec3"],e:!1},{a:"node_out", c:"Cm",f:["float"],e:!0},{a:"node_out",c:"Cn",f:["float"],e:!0},{a:"node_out",c:"Co",f:["float"],e:!0}],j:[{a:"txt",b:"vec3 Cp = jy ( Cl ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cm"],j:[{a:"txt",b:"Cm = Cp . r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cn"],j:[{a:"txt",b:"Cn = Cp . g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Co"],j:[{a:"txt",b:"Co = Cp . b ;".split(" ")}]}]}]},{a:"node",c:"SQUEEZE",m:[],l:[{a:"node_in",c:"Cq",f:["float"],e:!1}, {a:"node_in",c:"Cr",f:["float"],e:!1},{a:"node_in",c:"Cs",f:["float"],e:!1},{a:"node_out",c:"Ct",f:["float"],e:!1}],j:[{a:"txt",b:"Ct = _1_0 / ( _1_0 + pow ( 2.71828183 , - ( Cq - Cs ) * Cr ) ) ;".split(" ")}]},{a:"node",c:"GAMMA",m:[],l:[{a:"node_in",c:"Cu",f:["vec3"],e:!1},{a:"node_in",c:"Cv",f:["float"],e:!1},{a:"node_out",c:"Cw",f:["vec3"],e:!1}],j:[{a:"txt",b:"Cw = Cu ; if ( Cw . x > _0_0 ) Cw . x = pow ( Cu . x , Cv ) ; if ( Cw . y > _0_0 ) Cw . y = pow ( Cu . y , Cv ) ; if ( Cw . z > _0_0 ) Cw . z = pow ( Cu . z , Cv ) ;".split(" ")}]}, {a:"node",c:"B4W_SRGB_TO_LINEAR",m:[],l:[{a:"node_in",c:"Cx",f:["vec3"],e:!1},{a:"node_out",c:"Cy",f:["vec3"],e:!1}],j:[{a:"txt",b:"Cy = max ( vec3 ( _0_0 ) , Cx ) ; Cy = pow ( Cy , vec3 ( 2.2 ) ) ;".split(" ")}]},{a:"node",c:"B4W_LINEAR_TO_SRGB",m:[],l:[{a:"node_in",c:"Cz",f:["vec3"],e:!1},{a:"node_out",c:"CA",f:["vec3"],e:!1}],j:[{a:"txt",b:"CA = max ( vec3 ( _0_0 ) , Cz ) ; CA = pow ( CA , vec3 ( _1_0 / 2.2 ) ) ;".split(" ")}]},{a:"node",c:"TEXTURE_EMPTY",m:[],l:[{a:"node_out",c:"CB",f:["vec3"], e:!1},{a:"node_out",c:"CC",f:["vec3"],e:!1},{a:"node_out",c:"CD",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CB"],j:[{a:"txt",b:"CB [ 2 ] = CB [ 1 ] = CB [ 0 ] = _0_0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CC"],j:[{a:"txt",b:"CC [ 2 ] = CC [ 1 ] = CC [ 0 ] = _0_0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CD"],j:[{a:"txt",b:["CD","=","_0_0",";"]}]}]}]},{a:"node",c:"TEXTURE_ENVIRONMENT",m:[],l:[{a:"node_in",c:"CE",f:["vec3"],e:!1},{a:"node_out", c:"CF",f:["vec3"],e:!0},{a:"node_out",c:"CG",f:["float"],e:!0},{a:"node_param",c:"node_TEXTURE_ENVIRONMENT_var_texture",f:["uniform","samplerCube"],e:!1}],j:[{a:"txt",b:"vec3 CH = vec3 ( CE . x , CE . y , CE . z ) ; vec4 yM = GLSL_TEXTURE_CUBE ( node_TEXTURE_ENVIRONMENT_var_texture , CH ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CF"],j:[{a:"txt",b:"CF = yM . xyz ; bY ( CF ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CG"],j:[{a:"txt",b:"CG = yM . w ;".split(" ")}]}]}]}, {a:"node",c:"TEXTURE_COLOR",m:[{a:"node_var",c:"NON_COLOR",b:["0"]},{a:"node_var",c:"CONVERT_UV",b:["0"]},{a:"node_var",c:"USE_uv2",b:["0"]},{a:"node_var",c:"USE_uv3",b:["0"]},{a:"node_var",c:"USE_uv4",b:["0"]}],l:[{a:"node_in",c:"CI",f:["vec3"],e:!0},{a:"node_in",c:"CJ",f:["vec3"],e:!0},{a:"node_in",c:"CK",f:["vec3"],e:!0},{a:"node_in",c:"CL",f:["vec3"],e:!0},{a:"node_out",c:"CM",f:["vec3"],e:!0},{a:"node_out",c:"CN",f:["float"],e:!0},{a:"node_out",c:"CO",f:["vec3"],e:!0},{a:"node_out",c:"CP",f:["float"], e:!0},{a:"node_out",c:"CQ",f:["vec3"],e:!0},{a:"node_out",c:"CR",f:["float"],e:!0},{a:"node_out",c:"CS",f:["vec3"],e:!0},{a:"node_out",c:"CT",f:["float"],e:!0},{a:"node_param",c:"node_TEXTURE_COLOR_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_UV"],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CI ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , CI . xy ) ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CM"],j:[{a:"txt",b:"CM = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CM",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CN"],j:[{a:"txt",b:"CN = yM . w ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv2"],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_UV"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CJ ) ) ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , CJ . xy ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CO"],j:[{a:"txt",b:"CO = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CO",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CP"],j:[{a:"txt",b:"CP = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv3"],j:[{a:"node_cond",d:[{a:"node_if", g:["CONVERT_UV"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CK ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , CK . xy ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CQ"],j:[{a:"txt",b:"CQ = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CQ",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CR"],j:[{a:"txt", b:"CR = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv4"],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_UV"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CL ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , CL . xy ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CS"],j:[{a:"txt",b:"CS = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr", i:1}],j:[{a:"txt",b:["bY","(","CS",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CT"],j:[{a:"txt",b:"CT = yM . w ;".split(" ")}]}]}]}]}]},{a:"node",c:"TEXTURE_NORMAL",m:[{a:"node_var",c:"USE_uv2",b:["0"]},{a:"node_var",c:"USE_uv3",b:["0"]},{a:"node_var",c:"USE_uv4",b:["0"]}],l:[{a:"node_in",c:"CU",f:["vec3"],e:!0},{a:"node_in",c:"CV",f:["vec3"],e:!0},{a:"node_in",c:"CW",f:["vec3"],e:!0},{a:"node_in",c:"CX",f:["vec3"],e:!0},{a:"node_out",c:"CY",f:["vec3"],e:!0},{a:"node_out",c:"CZ", f:["float"],e:!0},{a:"node_out",c:"C_",f:["vec3"],e:!0},{a:"node_out",c:"Da",f:["float"],e:!0},{a:"node_out",c:"Db",f:["vec3"],e:!0},{a:"node_out",c:"Dc",f:["float"],e:!0},{a:"node_out",c:"Dd",f:["vec3"],e:!0},{a:"node_out",c:"De",f:["float"],e:!0},{a:"node_param",c:"node_TEXTURE_NORMAL_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CU ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CY"],j:[{a:"txt",b:"CY = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CZ"],j:[{a:"txt",b:"CZ = yM . w ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv2"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CV ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_C_"],j:[{a:"txt",b:"C_ = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Da"],j:[{a:"txt",b:"Da = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv3"], j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CW ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Db"],j:[{a:"txt",b:"Db = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dc"],j:[{a:"txt",b:"Dc = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv4"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CX ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dd"], j:[{a:"txt",b:"Dd = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_De"],j:[{a:"txt",b:"De = yM . w ;".split(" ")}]}]}]}]}]},{a:"node",c:"VALUE",m:[{a:"node_var",c:"VALUE_IND",b:["0"]}],l:[{a:"node_out",c:"Df",f:["float"],e:!1}],j:[{a:"txt",b:"Df = u_node_values [ VALUE_IND ] ;".split(" ")}]},{a:"node",c:"VECT_MATH_ADD",m:[],l:[{a:"node_in",c:"Dg",f:["vec3"],e:!1},{a:"node_in",c:"Dh",f:["vec3"],e:!1},{a:"node_out",c:"Di",f:["vec3"],e:!1},{a:"node_out", c:"Dj",f:["float"],e:!0}],j:[{a:"txt",b:"Di = Dg + Dh ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dj"],j:[{a:"txt",b:"Dj = ( abs ( Di [ 0 ] ) + abs ( Di [ 1 ] ) + abs ( Di [ 2 ] ) ) / 3.0 ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_SUBTRACT",m:[],l:[{a:"node_in",c:"Dk",f:["vec3"],e:!1},{a:"node_in",c:"Dl",f:["vec3"],e:!1},{a:"node_out",c:"Dm",f:["vec3"],e:!1},{a:"node_out",c:"Dn",f:["float"],e:!0}],j:[{a:"txt",b:"Dm = Dk - Dl ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dn"], j:[{a:"txt",b:"Dn = ( abs ( Dm [ 0 ] ) + abs ( Dm [ 1 ] ) + abs ( Dm [ 2 ] ) ) / 3.0 ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_AVERAGE",m:[],l:[{a:"node_in",c:"Do",f:["vec3"],e:!1},{a:"node_in",c:"Dp",f:["vec3"],e:!1},{a:"node_out",c:"Dq",f:["vec3"],e:!1},{a:"node_out",c:"Dr",f:["float"],e:!0}],j:[{a:"txt",b:"Dq = Do + Dp ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dr"],j:[{a:"txt",b:"Dr = length ( Dq ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dq"],j:[{a:"txt", b:"Dq = normalize ( Dq ) ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_DOT_PRODUCT",m:[],l:[{a:"node_in",c:"Ds",f:["vec3"],e:!1},{a:"node_in",c:"Dt",f:["vec3"],e:!1},{a:"node_out",c:"Du",f:["vec3"],e:!1},{a:"node_out",c:"Dv",f:["float"],e:!0}],j:[{a:"txt",b:"Du = vec3 ( _0_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dv"],j:[{a:"txt",b:"Dv = dot ( Ds , Dt ) ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_CROSS_PRODUCT",m:[],l:[{a:"node_in",c:"Dw",f:["vec3"],e:!1},{a:"node_in",c:"Dx",f:["vec3"], e:!1},{a:"node_out",c:"Dy",f:["vec3"],e:!1},{a:"node_out",c:"Dz",f:["float"],e:!0}],j:[{a:"txt",b:"Dy = cross ( Dw , Dx ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dz"],j:[{a:"txt",b:"Dz = length ( Dy ) ; Dy /= Dz ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"Dy = normalize ( Dy ) ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_NORMALIZE",m:[],l:[{a:"node_in",c:"DA",f:["vec3"],e:!1},{a:"node_in",c:"DB",f:["vec3"],e:!1},{a:"node_out",c:"DC",f:["vec3"],e:!1},{a:"node_out",c:"DD",f:["float"], e:!0}],j:[{a:"txt",b:"DC = normalize ( DA ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_DD"],j:[{a:"txt",b:"DD = length ( DA ) ;".split(" ")}]}]},{a:"txt",b:["DB",";"]}]},{a:"node",c:"FRESNEL",m:[{a:"node_var",c:"USE_FRESNEL_NORMAL",b:["0"]}],l:[{a:"node_in",c:"DE",f:["float"],e:!1},{a:"node_in",c:"DF",f:["vec3"],e:!1},{a:"node_out",c:"DG",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_FRESNEL_NORMAL"],j:[{a:"txt",b:"vec3 bW = normalize ( DF ) ;".split(" ")}]},{a:"node_else", j:[{a:"txt",b:["vec3","bW","=","nH",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["CAMERA_TYPE","CAM_TYPE_PERSP",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vec3 yk = normalize ( nI ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:["vec3","yk","=","u_camera_direction",";"]}]}]},{a:"txt",b:"float qT = max ( DE , 0.00001 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"qT = gl_FrontFacing == false ? qT : _1_0 / qT ;".split(" ")}]},{a:"node_else", j:[{a:"txt",b:"qT = gl_FrontFacing ? qT : _1_0 / qT ;".split(" ")}]}]},{a:"txt",b:"DG = qV ( yk , bW , qT ) ;".split(" ")}]},{a:"node",c:"B4W_REFLECT",m:[],l:[{a:"node_in",c:"DH",f:["vec3"],e:!1},{a:"node_in",c:"DI",f:["vec3"],e:!1},{a:"node_out",c:"DJ",f:["vec3"],e:!1}],j:[{a:"txt",b:"DJ = reflect ( T ( u_view_tsr_inverse , DH ) , DI ) ;".split(" ")}]},{a:"node",c:"B4W_REFLECT_WORLD",m:[],l:[{a:"node_in",c:"DK",f:["vec3"],e:!1},{a:"node_out",c:"DL",f:["vec3"],e:!1}],j:[{a:"txt",b:"DL = reflect ( - nI . xyz , DK ) ;".split(" ")}]}, {a:"node",c:"B4W_PARALLAX",m:[],l:[{a:"node_in",c:"DM",f:["vec3"],e:!1},{a:"node_in",c:"DN",f:["float"],e:!1},{a:"node_in",c:"DO",f:["const","float"],e:!1},{a:"node_in",c:"DP",f:["const","float"],e:!1},{a:"node_out",c:"DQ",f:["vec3"],e:!1},{a:"node_param",c:"node_B4W_PARALLAX_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"txt",b:"float bp = length ( rn ) ; if ( bp < DP ) { vec2 bE = qQ ( DM ) ; float bI = clamp ( _0_5 * ( DP - bp ) , _0_0 , _1_0 ) ; float hk = DN * bI ; vec3 bK = normalize ( nI * rm ) ; float bL = _1_0 / DO ; vec2 bM = bK . xy * hk / ( DO * bK . z ) ; float bN = _1_0 ; float bO = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bE ) . a ; for ( float bQ = 1.0 ; bQ <= DO ; bQ ++ ) { if ( bO < bN ) { bN -= bL ; bE -= bM ; bO = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bE ) . a ; } } vec2 bR = bE + bM ; float bS = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bR ) . a - ( bN + bL ) ; float bT = bO - bN ; float bU = bT / ( bT - bS ) ; bE = bU * bR + ( _1_0 - bU ) * bE ; DQ = qP ( bE ) ; } else DQ = DM ;".split(" ")}]}, {a:"node",c:"B4W_CLAMP",m:[],l:[{a:"node_in",c:"DR",f:["vec3"],e:!1},{a:"node_out",c:"DS",f:["vec3"],e:!1}],j:[{a:"txt",b:"DS = clamp ( DR , _0_0 , _1_0 ) ;".split(" ")}]},{a:"node",c:"B4W_REFRACTION",m:[],l:[{a:"node_in",c:"DT",f:["vec3"],e:!1},{a:"node_in",c:"DU",f:["float"],e:!1},{a:"node_out",c:"DV",f:["vec3"],e:!1}],j:[{a:"txt",b:"DV = qO ( DT , DU ) ;".split(" ")}]},{a:"node",c:"B4W_TRANSLUCENCY",m:[],l:[{a:"node_in",c:"DW",f:["float"],e:!1},{a:"node_in",c:"DX",f:["float"],e:!1},{a:"node_in", c:"DY",f:["float"],e:!1},{a:"node_in",c:"DZ",f:["float"],e:!1},{a:"node_in",c:"D_",f:["float"],e:!1},{a:"node_out",c:"Ea",f:["float"],e:!0},{a:"node_out",c:"Eb",f:["vec4"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ea"],j:[{a:"txt",b:["Ea","=","DW",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Eb"],j:[{a:"txt",b:"Eb = vec4 ( DX , DY , DZ , D_ ) ;".split(" ")}]}]}]},{a:"node",c:"B4W_TIME",m:[],l:[{a:"node_out",c:"Ec",f:["float"],e:!1}],j:[{a:"txt",b:["Ec","=","u_time",";"]}]},{a:"node", c:"B4W_SMOOTHSTEP",m:[],l:[{a:"node_in",c:"Ed",f:["float"],e:!1},{a:"node_in",c:"Ee",f:["float"],e:!1},{a:"node_in",c:"Ef",f:["float"],e:!1},{a:"node_out",c:"Eg",f:["float"],e:!1}],j:[{a:"txt",b:"Eg = smoothstep ( Ee , Ef , Ed ) ;".split(" ")}]},{a:"node",c:"B4W_GLOW_OUTPUT",m:[],l:[{a:"node_in",c:"Eh",f:["vec3"],e:!1},{a:"node_in",c:"Ei",f:["float"],e:!1}],j:[{a:"txt",b:"D = Eh ; H = Ei ;".split(" ")}]},{a:"node",c:"B4W_VECTOSCAL",m:[],l:[{a:"node_in",c:"Ej",f:["vec3"],e:!1},{a:"node_out",c:"Ek", f:["float"],e:!1}],j:[{a:"txt",b:"Ek = ( Ej . r + Ej . g + Ej . b ) / 3.0 ;".split(" ")}]},{a:"node",c:"B4W_SCALTOVEC",m:[],l:[{a:"node_in",c:"El",f:["float"],e:!1},{a:"node_out",c:"Em",f:["vec3"],e:!1}],j:[{a:"txt",b:"Em [ 0 ] = El ; Em [ 1 ] = El ; Em [ 2 ] = El ;".split(" ")}]},{a:"nodes_global"},{a:"txt",b:"void I ( in vec3 nI , out vec3 D , out vec3 E , out vec3 F , out vec4 G , out float H ) { D = vec3 ( _0_0 ) ; E = vec3 ( _0_0 ) ; F = vec3 ( _0_0 ) ; G = vec4 ( _0_0 ) ; H = _0_0 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO","USE_NODE_NORMAL_MAP","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:11}],h:{a:"grp",d:[{a:"txt",b:"vec3 P = normalize ( j ) ; vec3 bF = P ;".split(" ")},{a:"cond",d:[{a:"if",g:["DOUBLE_SIDED_LIGHTING","USE_NODE_GEOMETRY_NO",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_PASS", "REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( gl_FrontFacing == false )".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["if","(","gl_FrontFacing",")"]}]}}]},{a:"txt",b:"bF = bF ; else bF = - bF ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DOUBLE_SIDED_LIGHTING"],h:{a:"grp",d:[{a:"txt",b:["vec3","nH","=","bF",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","nH","=","P",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_NO"],h:{a:"grp",d:[{a:"txt",b:["vec3","rl", "=","bF",";"]}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 R = cross ( bF , k . xyz ) * k . w ; R = normalize ( R ) ; vec3 Q = cross ( R , bF ) * k . w ; mat3 rm = mat3 ( Q , R , bF ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 nG = h ; vec4 rn = i ; float ro = u_emit ; float rp = u_ambient ;".split(" ")},{a:"nodes_main"},{a:"txt",b:["}"]}]}}]}]};a["include/nodes.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"NODES_GLSLV",h:{a:"grp",d:[{a:"define",c:"NODES_GLSLV", b:[""]},{a:"var",c:"PARTICLE_BATCH",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:2},"PARTICLE_BATCH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"GLSL_IN vec3 a_orco_tex_coord ; GLSL_OUT vec3 qL ;".split(" ")}]}}]},{a:"node",c:"TEX_COORD_UV",m:[],l:[{a:"node_param",c:"node_TEX_COORD_UV_var_a_uv",f:["GLSL_IN","vec2"],e:!1},{a:"node_param",c:"re",f:["GLSL_OUT","vec2"],e:!1}],j:[{a:"txt",b:["re","=","node_TEX_COORD_UV_var_a_uv", ";"]}]},{a:"node",c:"UV_MERGED",m:[],l:[{a:"node_param",c:"node_UV_MERGED_var_a_uv",f:["GLSL_IN","vec2"],e:!1},{a:"node_param",c:"rd",f:["GLSL_OUT","vec2"],e:!1}],j:[{a:"txt",b:["rd","=","node_UV_MERGED_var_a_uv",";"]}]},{a:"node",c:"UVMAP",m:[],l:[{a:"node_param",c:"node_UVMAP_var_a_uv",f:["GLSL_IN","vec2"],e:!1},{a:"node_param",c:"rf",f:["GLSL_OUT","vec2"],e:!1}],j:[{a:"txt",b:["rf","=","node_UVMAP_var_a_uv",";"]}]},{a:"node",c:"GEOMETRY_UV",m:[],l:[{a:"node_param",c:"node_GEOMETRY_UV_var_a_uv", f:["GLSL_IN","vec2"],e:!1},{a:"node_param",c:"qW",f:["GLSL_OUT","vec2"],e:!1}],j:[{a:"txt",b:["qW","=","node_GEOMETRY_UV_var_a_uv",";"]}]},{a:"node",c:"GEOMETRY_VC",m:[],l:[{a:"node_param",c:"node_GEOMETRY_VC_var_a_vertex_color",f:["GLSL_IN","vec3"],e:!1},{a:"node_param",c:"En",f:["GLSL_OUT","vec3"],e:!1}],j:[{a:"txt",b:["En","=","node_GEOMETRY_VC_var_a_vertex_color",";"]}]},{a:"node",c:"GEOMETRY_VC1",m:[],l:[{a:"node_param",c:"node_GEOMETRY_VC1_var_a_vertex_color",f:["GLSL_IN","float"],e:!1},{a:"node_param", c:"Eo",f:["GLSL_OUT","float"],e:!1}],j:[{a:"txt",b:["Eo","=","node_GEOMETRY_VC1_var_a_vertex_color",";"]}]},{a:"node",c:"GEOMETRY_VC2",m:[],l:[{a:"node_param",c:"node_GEOMETRY_VC2_var_a_vertex_color",f:["GLSL_IN","vec2"],e:!1},{a:"node_param",c:"Ep",f:["GLSL_OUT","vec2"],e:!1}],j:[{a:"txt",b:["Ep","=","node_GEOMETRY_VC2_var_a_vertex_color",";"]}]},{a:"node",c:"GEOMETRY_VC3",m:[],l:[{a:"node_param",c:"node_GEOMETRY_VC3_var_a_vertex_color",f:["GLSL_IN","vec3"],e:!1},{a:"node_param",c:"Eq",f:["GLSL_OUT", "vec3"],e:!1}],j:[{a:"txt",b:["Eq","=","node_GEOMETRY_VC3_var_a_vertex_color",";"]}]},{a:"nodes_global"},{a:"txt",b:["void","I","(",")","{"]},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["qL","=","a_orco_tex_coord",";"]}]}}]},{a:"nodes_main"},{a:"txt",b:["}"]}]}}]}]};a["include/pack.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PACK_GLSLF",h:{a:"grp",d:[{a:"define",c:"PACK_GLSLF",b:[""]},{a:"txt",b:"vec4 fS ( const in float hA ) { vec4 eG = vec4 ( _255_0 * _255_0 * _255_0 , _255_0 * _255_0 , _255_0 , _1_0 ) ; vec4 Er = vec4 ( _0_0 , _1_0 / _255_0 , _1_0 / _255_0 , _1_0 / _255_0 ) ; vec4 iS = fract ( hA * eG ) ; iS -= iS . xxyz * Er ; return iS ; } float cv ( const in vec4 Es ) { float fN ; vec4 eG = vec4 ( _1_0 / ( _255_0 * _255_0 * _255_0 ) , _1_0 / ( _255_0 * _255_0 ) , _1_0 / _255_0 , _1_0 ) ; fN = dot ( Es , eG ) ; return fN ; } vec4 fS ( const in vec2 gJ ) { vec2 eG = vec2 ( _255_0 , _1_0 ) ; vec2 Er = vec2 ( _0_0 , _1_0 / _255_0 ) ; vec4 iS = fract ( gJ . xxyy * eG . xyxy ) ; iS -= iS . xxzz * Er . xyxy ; if ( gJ . r == _1_0 ) iS . rg = vec2 ( _0_0 , _1_0 ) ; if ( gJ . g == _1_0 ) iS . ba = vec2 ( _0_0 , _1_0 ) ; return iS ; } vec2 ix ( const in vec4 Et ) { vec2 gJ ; vec2 eG = vec2 ( _1_0 / _255_0 , _1_0 ) ; gJ . r = dot ( Et . rg , eG ) ; gJ . g = dot ( Et . ba , eG ) ; return gJ ; }".split(" ")}]}}]}]}; a["include/particles.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PARTICLES_GLSLV",h:{a:"grp",d:[{a:"define",c:"PARTICLES_GLSLV",b:[""]},{a:"var",c:"EPSILON",b:["0.000001"]},{a:"var",c:"COLOR_RAMP_LENGTH",b:["0"]},{a:"var",c:"WORLD_SPACE",b:["0"]},{a:"var",c:"USE_COLOR_RAMP",b:["0"]},{a:"include",o:"math.glslv"},{a:"txt",b:"struct cD { float cM ; vec3 N ; float J ; vec3 aG ; float bm ; vec3 cS ; vec3 cT ; float cU ; } ;".split(" ")},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",0,{a:"g_expr",i:2}], h:{a:"grp",d:[{a:"txt",b:"void Ex ( inout vec3 aG , float Eu , vec4 js , vec4 jt ) { float Ev = jt . x - js . x ; float Ew = ( Eu - js . x ) / Ev ; aG = mix ( aG , jt . yzw , clamp ( Ew , 0.0 , 1.0 ) ) ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 EA ( float t , float Ey , vec4 Ez [ COLOR_RAMP_LENGTH ] ) { float Eu = t / Ey ; vec3 aG = Ez [ 0 ] . yzw ;".split(" ")},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",1,{a:"g_expr",i:2}], h:{a:"grp",d:[{a:"txt",b:"Ex ( aG , Eu , Ez [ 0 ] , Ez [ 1 ] ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",2,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"Ex ( aG , Eu , Ez [ 1 ] , Ez [ 2 ] ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",3,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"Ex ( aG , Eu , Ez [ 2 ] , Ez [ 3 ] ) ;".split(" ")}]}}]},{a:"txt",b:["return","aG",";","}"]}]}}]},{a:"txt",b:"float EG ( float t , float Ey , float EB , float EC ) { float ED = max ( 0.01 , min ( Ey , EB ) ) ; float EE = max ( 0.01 , min ( Ey , EC ) ) ; float EF = Ey - EE ; float J = clamp ( t / ED , 0.0 , 1.0 ) - step ( EF , t ) * ( t - EF ) / EE ; return J ; } cD cE ( ) { cD sp ; float t ; float Ey = a_p_data [ 0 ] ; float EH = a_p_data [ 1 ] ; if ( u_p_cyclic == 1 ) { t = mod ( u_p_time , u_p_length ) - EH ; if ( t < 0.0 ) t += u_p_length ; } if ( u_p_cyclic != 1 ) { t = u_p_time - EH ; } if ( t < 0.0 || t >= Ey ) { sp . cM = 0.0001 ; sp . N = vec3 ( 99999.0 , 0.0 , 0.0 ) ; } if ( ! ( t < 0.0 || t >= Ey ) ) { vec3 bz = O ( a_tbn_quat , vec3 ( 0.0 , 1.0 , 0.0 ) ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["WORLD_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 eD = a_position ; vec3 qS = bz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 eD = ad ( u_model_tsr , a_position ) ; vec3 qS = T ( u_model_tsr , bz ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 EI = u_p_nfactor * qS ; EI += a_p_vels . xyz ; EI . z -= u_p_gravity * t / 2.0 ; float EJ = max ( u_p_mass , EPSILON ) ; EI += ( u_p_wind_fac * u_wind / EJ ) * t / 2.0 ; sp . cU = t ; sp . cS = EI ; sp . cT = bz * a_p_vels . w ; sp . N = eD + EI * t ; sp . bm = a_p_vels . w * t ;".split(" ")}, {a:"cond",d:[{a:"if",g:["USE_COLOR_RAMP"],h:{a:"grp",d:[{a:"txt",b:"sp . cM = GLSL_TEXTURE ( u_color_ramp_tex , vec2 ( t / u_p_max_lifetime , 0.5 ) ) . g ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"sp . cM = 1.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COLOR_RAMP_LENGTH",0,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"sp . aG = EA ( t , u_p_max_lifetime , u_p_color_ramp ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"sp . aG = vec3 ( 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:"sp . J = EG ( t , a_p_data [ 0 ] , u_p_fade_in , u_p_fade_out ) ; } return sp ; }".split(" ")}]}}]}]}; a["include/particles_nodes.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PARTICLES_NODES_GLSLF",h:{a:"grp",d:[{a:"define",c:"PARTICLES_NODES_GLSLF",b:[""]},{a:"var",c:"CAUSTICS",b:["0"]},{a:"var",c:"DOUBLE_SIDED_LIGHTING",b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"PARTICLE_BATCH",b:["0"]},{a:"var",c:"NUM_LIGHTS",b:["0"]},{a:"var",c:"CALC_TBN_SPACE",b:["0"]},{a:"cond",d:[{a:"if",g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_BSDF_BEGIN",{a:"logical_or_expr",i:2}],h:{a:"grp", d:[{a:"include",o:"environment.glslf"}]}}]},{a:"include",o:"color_util.glslf"},{a:"include",o:"math.glslv"},{a:"cond",d:[{a:"if",g:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_SEPHSV",{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:"vec3 jy ( vec3 rgb ) { vec4 jx = vec4 ( _0_0 , - _1_0 / 3.0 , 2.0 / 3.0 , - _1_0 ) ; vec4 p = mix ( vec4 ( rgb . bg , jx . wz ) , vec4 ( rgb . gb , jx . xy ) , step ( rgb . b , rgb . g ) ) ; vec4 q = mix ( vec4 ( p . xyw , rgb . r ) , vec4 ( rgb . r , p . yzx ) , step ( p . x , rgb . r ) ) ; float df = q . x - min ( q . w , q . y ) ; float hQ = 1.0e-10 ; return vec3 ( abs ( q . z + ( q . w - q . y ) / ( 6.0 * df + hQ ) ) , df / ( q . x + hQ ) , q . x ) ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_COMBHSV",{a:"logical_or_expr",i:6}],h:{a:"grp",d:[{a:"txt",b:"vec3 jA ( vec3 jz ) { vec4 jx = vec4 ( _1_0 , 2.0 / 3.0 , _1_0 / 3.0 , 3.0 ) ; vec3 p = abs ( fract ( vec3 ( jz . r , jz . r , jz . r ) + jx . xyz ) * 6.0 - jx . www ) ; return jz . b * mix ( jx . xxx , clamp ( p - jx . xxx , _0_0 , _1_0 ) , jz . g ) ; }".split(" ")}]}}]},{a:"cond", d:[{a:"if",g:["USE_NODE_GEOMETRY_UV","USE_NODE_B4W_PARALLAX","USE_NODE_UV_MERGED",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec3 qP ( vec2 gl ) { return vec3 ( gl * 2.0 - vec2 ( _1_0 , _1_0 ) , _0_0 ) ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_TEXTURE_COLOR","USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"txt",b:"vec2 qQ ( vec3 gJ ) { return vec2 ( gJ . xy * _0_5 + vec2 ( _0_5 , _0_5 ) ) ; }".split(" ")}]}}]},{a:"node",c:"CAMERA", m:[],l:[{a:"node_out",c:"rq",f:["vec3"],e:!0},{a:"node_out",c:"rs",f:["float"],e:!0},{a:"node_out",c:"rt",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rq"],j:[{a:"txt",b:"rq = normalize ( rn . xyz ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rs"],j:[{a:"txt",b:"rs = abs ( rn . z ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_rt"],j:[{a:"txt",b:"rt = length ( rn . xyz ) ;".split(" ")}]}]}]},{a:"node",c:"COMBRGB",m:[],l:[{a:"node_in",c:"ru",f:["float"], e:!1},{a:"node_in",c:"rv",f:["float"],e:!1},{a:"node_in",c:"rw",f:["float"],e:!1},{a:"node_out",c:"rx",f:["vec3"],e:!1}],j:[{a:"txt",b:"rx = vec3 ( ru , rv , rw ) ;".split(" ")}]},{a:"node",c:"COMBHSV",m:[],l:[{a:"node_in",c:"ry",f:["float"],e:!1},{a:"node_in",c:"rz",f:["float"],e:!1},{a:"node_in",c:"rA",f:["float"],e:!1},{a:"node_out",c:"rB",f:["vec3"],e:!1}],j:[{a:"txt",b:"rB = jA ( vec3 ( ry , rz , rA ) ) ;".split(" ")}]},{a:"node",c:"EMPTY_UV",m:[],l:[{a:"node_out",c:"rC",f:["vec3"],e:!1}],j:[{a:"txt", b:"rC = vec3 ( - _1_0 , - _1_0 , _0_0 ) ;".split(" ")}]},{a:"node",c:"EMPTY_VC",m:[],l:[{a:"node_out",c:"rD",f:["vec3"],e:!1}],j:[{a:"txt",b:"rD = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_UV",m:[],l:[{a:"node_out",c:"rE",f:["vec3"],e:!1}],j:[{a:"txt",b:"rE = qP ( A ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_OR",m:[],l:[{a:"node_out",c:"rF",f:["vec3"],e:!1}],j:[{a:"txt",b:"rF = 2.0 * vec3 ( A , _0_0 ) - vec3 ( _1_0 ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC",m:[],l:[{a:"node_out",c:"rG", f:["vec3"],e:!1}],j:[{a:"txt",b:"rG = vec3 ( _1_0 ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC1",m:[],l:[{a:"node_out",c:"rH",f:["float"],e:!1}],j:[{a:"txt",b:["rH","=","_1_0",";"]}]},{a:"node",c:"GEOMETRY_VC2",m:[],l:[{a:"node_out",c:"rI",f:["float"],e:!1},{a:"node_out",c:"rJ",f:["float"],e:!1}],j:[{a:"txt",b:"rI = _1_0 ; rJ = _1_0 ;".split(" ")}]},{a:"node",c:"GEOMETRY_VC3",m:[],l:[{a:"node_out",c:"rK",f:["float"],e:!1},{a:"node_out",c:"rL",f:["float"],e:!1},{a:"node_out",c:"rM",f:["float"],e:!1}], j:[{a:"txt",b:"rK = _1_0 ; rL = _1_0 ; rM = _1_0 ;".split(" ")}]},{a:"node",c:"GEOMETRY_NO",m:[],l:[{a:"node_out",c:"rN",f:["vec3"],e:!1}],j:[{a:"txt",b:"rN = rl . xyz ;".split(" ")}]},{a:"node",c:"GEOMETRY_FB",m:[],l:[{a:"node_out",c:"rO",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],j:[{a:"txt",b:"rO = ( gl_FrontFacing ) ? _0_0 : _1_0 ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"rO = ( gl_FrontFacing ) ? _1_0 : _0_0 ;".split(" ")}]}]}]}, {a:"node",c:"GEOMETRY_VW",m:[],l:[{a:"node_out",c:"rQ",f:["vec3"],e:!1}],j:[{a:"txt",b:"rQ = - T ( u_view_tsr_frag , nI ) ;".split(" ")}]},{a:"node",c:"GEOMETRY_LO",m:[],l:[{a:"node_out",c:"rR",f:["vec3"],e:!1}],j:[{a:"txt",b:"rR [ 0 ] = rn [ 0 ] ; rR [ 1 ] = rn [ 1 ] ; rR [ 2 ] = rn [ 2 ] ;".split(" ")}]},{a:"node",c:"GEOMETRY_GL",m:[],l:[{a:"node_out",c:"rS",f:["vec3"],e:!1}],j:[{a:"txt",b:"rS = vec3 ( nG . r , nG . g , nG . b ) ;".split(" ")}]},{a:"node",c:"NEW_GEOMETRY",m:[],l:[{a:"node_out", c:"rU",f:["vec3"],e:!1},{a:"node_out",c:"rV",f:["vec3"],e:!1},{a:"node_out",c:"rW",f:["vec3"],e:!1},{a:"node_out",c:"rX",f:["vec3"],e:!1},{a:"node_out",c:"rY",f:["vec3"],e:!1},{a:"node_out",c:"rZ",f:["vec3"],e:!1},{a:"node_out",c:"r_",f:["float"],e:!1},{a:"node_out",c:"sa",f:["float"],e:!1}],j:[{a:"txt",b:"rU = vec3 ( _0_0 ) ; rV = vec3 ( _0_0 ) ; rW = vec3 ( _0_0 ) ; rX = vec3 ( _0_0 ) ; rY = vec3 ( _0_0 ) ; rZ = vec3 ( _0_0 ) ; r_ = _0_0 ; sa = _0_0 ;".split(" ")}]},{a:"node",c:"HUE_SAT",m:[],l:[{a:"node_in", c:"sb",f:["float"],e:!1},{a:"node_in",c:"sc",f:["float"],e:!1},{a:"node_in",c:"sd",f:["float"],e:!1},{a:"node_in",c:"se",f:["float"],e:!1},{a:"node_in",c:"sf",f:["vec3"],e:!1},{a:"node_out",c:"sg",f:["vec3"],e:!1}],j:[{a:"txt",b:"vec3 jz = jy ( sf ) ; jz [ 0 ] += ( sb - _0_5 ) ; if ( jz [ 0 ] > _1_0 ) jz [ 0 ] -= _1_0 ; else if ( jz [ 0 ] < _0_0 ) jz [ 0 ] += _1_0 ; jz *= vec3 ( _1_0 , sc , sd ) ; jz = mix ( vec3 ( _1_0 ) , mix ( vec3 ( _0_0 ) , jz , step ( vec3 ( _0_0 ) , jz ) ) , step ( jz , vec3 ( _1_0 ) ) ) ; sg = mix ( sf , jA ( jz ) , se ) ;".split(" ")}]}, {a:"node",c:"INVERT",m:[],l:[{a:"node_in",c:"sh",f:["float"],e:!1},{a:"node_in",c:"si",f:["vec3"],e:!1},{a:"node_out",c:"sj",f:["vec3"],e:!1}],j:[{a:"txt",b:"sj = mix ( si , vec3 ( _1_0 ) - si , sh ) ;".split(" ")}]},{a:"node",c:"LAMP",m:[{a:"node_var",c:"LAMP_TYPE",b:["HEMI"]},{a:"node_var",c:"LAMP_INDEX",b:["0"]},{a:"node_var",c:"LAMP_USE_SPHERE",b:["0"]},{a:"node_var",c:"LAMP_SPOT_SIZE",b:["0.8"]},{a:"node_var",c:"LAMP_SPOT_BLEND",b:["0.03"]},{a:"node_var",c:"LAMP_LIGHT_DIST",b:["30.0"]}],l:[{a:"node_out", c:"sk",f:["vec3"],e:!0},{a:"node_out",c:"sl",f:["vec3"],e:!1},{a:"node_out",c:"sm",f:["float"],e:!1},{a:"node_out",c:"sn",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sk"],j:[{a:"txt",b:"sk = u_lamp_light_color_intensities [ LAMP_INDEX ] ;".split(" ")}]}]},{a:"txt",b:"vec3 so = u_lamp_light_directions [ LAMP_INDEX ] ; vec3 sr = u_lamp_light_positions [ LAMP_INDEX ] ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2},"LAMP_TYPE","POINT",{a:"equal_expr", i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"sl = - h + sr ; sm = length ( sl ) ; sl = normalize ( sl ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sn"],j:[{a:"txt",b:"sn = LAMP_LIGHT_DIST / ( LAMP_LIGHT_DIST + sm * sm ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"float ol = dot ( sl , so ) ; ol *= smoothstep ( _0_0 , _1_0 , ( ol - LAMP_SPOT_SIZE ) / LAMP_SPOT_BLEND ) ; sn *= ol ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if", g:["LAMP_USE_SPHERE"],j:[{a:"txt",b:"sn *= max ( LAMP_LIGHT_DIST - sm , _0_0 ) / LAMP_LIGHT_DIST ;".split(" ")}]}]}]}]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sl"],j:[{a:"txt",b:["sl","=","so",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sm"],j:[{a:"txt",b:"sm = length ( sr - h ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sn"],j:[{a:"txt",b:["sn","=","_1_0",";"]}]}]}]}]}]},{a:"node",c:"NORMAL",m:[],l:[{a:"node_in",c:"su",f:["vec3"],e:!1},{a:"node_out", c:"sv",f:["vec3"],e:!0},{a:"node_out",c:"sw",f:["float"],e:!0},{a:"node_param",c:"rc",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sv"],j:[{a:"txt",b:["sv","=","rc",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_sw"],j:[{a:"txt",b:"sw = - dot ( su , rc ) ;".split(" ")}]}]}]},{a:"node",c:"B4W_VECTOR_VIEW",m:[],l:[{a:"node_in",c:"sx",f:["vec3"],e:!1},{a:"node_out",c:"sy",f:["vec3"],e:!1}],j:[{a:"txt",b:"sy = - T ( u_view_tsr_frag , sx ) ;".split(" ")}]},{a:"node",c:"BSDF_BEGIN", m:[],l:[{a:"node_in",c:"sz",f:["vec3"],e:!1},{a:"node_in",c:"sA",f:["vec3"],e:!1},{a:"node_in",c:"sB",f:["float"],e:!1},{a:"node_in",c:"sC",f:["vec3"],e:!1},{a:"node_in",c:"sD",f:["float"],e:!1},{a:"node_in",c:"sE",f:["float"],e:!1},{a:"node_in",c:"sF",f:["vec3"],e:!1},{a:"node_in",c:"sG",f:["vec3"],e:!1},{a:"node_in",c:"sH",f:["float"],e:!1},{a:"node_out",c:"sI",f:["vec3"],e:!1},{a:"node_out",c:"sJ",f:["vec3"],e:!1},{a:"node_out",c:"sK",f:["vec3"],e:!1},{a:"node_out",c:"sL",f:["vec3"],e:!1},{a:"node_out", c:"sM",f:["vec3"],e:!1},{a:"node_out",c:"sN",f:["vec4"],e:!1},{a:"node_out",c:"sO",f:["vec4"],e:!1},{a:"node_out",c:"sP",f:["vec3"],e:!1},{a:"node_out",c:"sQ",f:["float"],e:!1},{a:"node_out",c:"sR",f:["vec3"],e:!1},{a:"node_out",c:"sS",f:["float"],e:!1}],j:[{a:"txt",b:"sK = sA ; sL = sC ; sM = sF ; sP = sC ; sQ = sE ; sR = sG ; sS = sH ; sI = ro * sK ; sJ = rp * u_environment_energy * ce ( sM ) ; sO = ch ( sK ) ; G = sO ; sN [ 0 ] = sB ; sN [ 1 ] = sD ; sN [ 2 ] = sE ;".split(" ")}]},{a:"node",c:"BSDF_END", m:[],l:[{a:"node_in",c:"sT",f:["vec4"],e:!1},{a:"node_in",c:"sU",f:["vec3"],e:!1},{a:"node_in",c:"sV",f:["vec3"],e:!1},{a:"node_in",c:"sW",f:["vec3"],e:!1},{a:"node_in",c:"sX",f:["float"],e:!1},{a:"node_in",c:"sY",f:["vec3"],e:!1},{a:"node_in",c:"sZ",f:["float"],e:!1}],j:[{a:"txt",b:"D = sT . rgb + sU ; D = mix ( D , sY , sZ ) ; sV ;".split(" ")}]},{a:"node",c:"BSDF_COMPUTE",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"s_",f:["vec3"],e:!1},{a:"node_in",c:"ta",f:["vec2"],e:!1}, {a:"node_in",c:"tb",f:["vec3"],e:!1},{a:"node_in",c:"tc",f:["float"],e:!1},{a:"node_in",c:"td",f:["vec4"],e:!1},{a:"node_out",c:"te",f:["float"],e:!1},{a:"node_out",c:"tf",f:["float"],e:!1}],j:[{a:"txt",b:"vec3 qS = tb ; float tg = clamp ( td [ 0 ] , _0_0 , _1_0 ) ; float th = clamp ( td [ 1 ] , _0_0 , _1_0 ) ; float qJ = td [ 2 ] ; vec3 pg = normalize ( nI + s_ ) ; float ot = ( _1_0 - tc ) * dot ( qS , s_ ) + tc ; float ti = ( _1_0 - tc ) * max ( dot ( s_ , pg ) , _0_0 ) + tc ; float tj = ( _1_0 - tc ) * max ( dot ( tb , pg ) , _0_0 ) + tc ; te = _0_0 ; if ( ta . r != _0_0 ) { if ( tg > _0_0 ) { float oF = max ( dot ( qS , nI ) , _0_0 ) ; float oG = tg * tg ; float cg = _1_0 - _0_5 * ( oG / ( oG + 0.33 ) ) ; vec3 oH = s_ - ot * qS ; vec3 oI = nI - oF * qS ; if ( length ( oH ) == _0_0 || length ( oI ) == _0_0 || abs ( ot ) > _1_0 || abs ( oF ) > _1_0 ) te = ot * cg ; else { float oJ = acos ( ot ) ; float oK = acos ( oF ) ; vec3 oL = normalize ( oH ) ; vec3 oM = normalize ( oI ) ; float a , b ; a = max ( oJ , oK ) ; b = min ( oJ , oK ) ; b *= 0.95 ; float t = max ( dot ( oL , oM ) , _0_0 ) ; float oN = 0.45 * ( oG / ( oG + 0.09 ) ) ; te = ot * ( cg + ( oN * t * sin ( a ) * tan ( b ) ) ) ; } } else te = ot ; te = max ( te , _0_0 ) ; } float J = th ; float tk = J * J ; float tl = ( tj * tk - tj ) * tj + _1_0 ; float cd = tk / ( M_PI * tl * tl ) ; float tm ; float tn ; float to = pow ( _1_0 - ti , 5.0 ) ; tm = _1_0 ; tn = to ; float jx = J / 2.0 ; float tr = jx * jx ; float tu = _1_0 - tr ; float tv = _1_0 / ( ti * ti * tu + tr ) ; tm *= tv ; tn *= tv ; float tw = mix ( 0.04 , _1_0 , qJ ) ; float tx = mix ( tn , tm , tw ) ; tf = max ( ot * cd * tx , _0_0 ) ;".split(" ")}]}, {a:"node",c:"BSDF_ANISOTROPIC",m:[],l:[{a:"node_in",c:"ty",f:["vec3"],e:!1},{a:"node_in",c:"tz",f:["float"],e:!1},{a:"node_in",c:"tA",f:["float"],e:!1},{a:"node_in",c:"tB",f:["float"],e:!1},{a:"node_in",c:"tC",f:["vec3"],e:!1},{a:"node_in",c:"tD",f:["vec3"],e:!1},{a:"node_out",c:"tE",f:["vec3"],e:!1}],j:[{a:"txt",b:"tE = ty ; tz ; tA ; tB ; tC ; tD ;".split(" ")}]},{a:"node",c:"BSDF_DIFFUSE",m:[{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in",c:"tF",f:["vec3"],e:!1},{a:"node_in",c:"tG",f:["float"], e:!1},{a:"node_in",c:"tH",f:["vec3"],e:!1},{a:"node_out",c:"tI",f:["vec3"],e:!1},{a:"node_out",c:"tJ",f:["vec3"],e:!1},{a:"node_out",c:"tK",f:["float"],e:!1},{a:"node_out",c:"tL",f:["vec3"],e:!1},{a:"node_out",c:"tM",f:["float"],e:!1},{a:"node_out",c:"tN",f:["float"],e:!1},{a:"node_out",c:"tO",f:["vec3"],e:!1},{a:"node_out",c:"tP",f:["vec3"],e:!1},{a:"node_out",c:"tQ",f:["float"],e:!1}],j:[{a:"txt",b:"tJ = tF ; tK = tG ; tN = _0_0 ; tQ = _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"], j:[{a:"txt",b:["tO","=","tH",";"]}]},{a:"node_else",j:[{a:"txt",b:["tO","=","nH",";"]}]}]},{a:"txt",b:"tI ; tL ; tM ; tP ;".split(" ")}]},{a:"node",c:"BSDF_GLASS",m:[],l:[{a:"node_in",c:"tR",f:["vec3"],e:!1},{a:"node_in",c:"tS",f:["float"],e:!1},{a:"node_in",c:"tT",f:["float"],e:!1},{a:"node_in",c:"tU",f:["vec3"],e:!1},{a:"node_out",c:"tV",f:["vec3"],e:!1}],j:[{a:"txt",b:"tV = tR ; tS ; tT ; tU ;".split(" ")}]},{a:"node",c:"BSDF_GLOSSY",m:[{a:"node_var",c:"USE_NORMAL_IN",b:["0"]}],l:[{a:"node_in", c:"tW",f:["vec3"],e:!1},{a:"node_in",c:"tX",f:["float"],e:!1},{a:"node_in",c:"tY",f:["vec3"],e:!1},{a:"node_out",c:"tZ",f:["vec3"],e:!1},{a:"node_out",c:"t_",f:["vec3"],e:!1},{a:"node_out",c:"ua",f:["float"],e:!1},{a:"node_out",c:"ub",f:["vec3"],e:!1},{a:"node_out",c:"uc",f:["float"],e:!1},{a:"node_out",c:"ud",f:["float"],e:!1},{a:"node_out",c:"ue",f:["vec3"],e:!1},{a:"node_out",c:"uf",f:["vec3"],e:!1},{a:"node_out",c:"ug",f:["float"],e:!1}],j:[{a:"txt",b:"ub = tW ; uc = tX ; ud = _1_0 ; ug = _0_0 ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["USE_NORMAL_IN"],j:[{a:"txt",b:["ue","=","tY",";"]}]},{a:"node_else",j:[{a:"txt",b:["ue","=","nH",";"]}]}]},{a:"txt",b:"tZ ; t_ ; ua ;".split(" ")}]},{a:"node",c:"BSDF_HAIR",m:[],l:[{a:"node_in",c:"uh",f:["vec3"],e:!1},{a:"node_in",c:"ui",f:["float"],e:!1},{a:"node_in",c:"uj",f:["float"],e:!1},{a:"node_in",c:"uk",f:["float"],e:!1},{a:"node_out",c:"ul",f:["vec3"],e:!1}],j:[{a:"txt",b:"ul = uh ; ui ; uj ; uk ;".split(" ")}]},{a:"node",c:"BSDF_TRANSPARENT",m:[],l:[{a:"node_in", c:"um",f:["vec3"],e:!1},{a:"node_out",c:"un",f:["vec3"],e:!1}],j:[{a:"txt",b:["un","=","um",";"]}]},{a:"node",c:"BSDF_TRANSLUCENT",m:[],l:[{a:"node_in",c:"uo",f:["vec3"],e:!1},{a:"node_in",c:"up",f:["vec3"],e:!1},{a:"node_out",c:"uq",f:["vec3"],e:!1}],j:[{a:"txt",b:"uq = uo ; up ;".split(" ")}]},{a:"node",c:"BSDF_REFRACTION",m:[],l:[{a:"node_in",c:"ur",f:["vec3"],e:!1},{a:"node_in",c:"us",f:["float"],e:!1},{a:"node_in",c:"ut",f:["float"],e:!1},{a:"node_in",c:"uu",f:["vec3"],e:!1},{a:"node_out",c:"uv", f:["vec3"],e:!1}],j:[{a:"txt",b:"uv [ 0 ] = uv [ 1 ] = uv [ 2 ] = _0_0 ; ur ; us ; ut ; uu ;".split(" ")}]},{a:"node",c:"BSDF_TOON",m:[],l:[{a:"node_in",c:"uw",f:["vec3"],e:!1},{a:"node_in",c:"ux",f:["float"],e:!1},{a:"node_in",c:"uy",f:["float"],e:!1},{a:"node_in",c:"uz",f:["vec3"],e:!1},{a:"node_out",c:"uA",f:["vec3"],e:!1}],j:[{a:"txt",b:"uA = uw ; ux ; uy ; uz ;".split(" ")}]},{a:"node",c:"BSDF_VELVET",m:[],l:[{a:"node_in",c:"uB",f:["vec3"],e:!1},{a:"node_in",c:"uC",f:["float"],e:!1},{a:"node_in", c:"uD",f:["vec3"],e:!1},{a:"node_out",c:"uE",f:["vec3"],e:!1}],j:[{a:"txt",b:"uE = uB ; uC ; uD ;".split(" ")}]},{a:"node",c:"SUBSURFACE_SCATTERING",m:[],l:[{a:"node_in",c:"uF",f:["vec3"],e:!1},{a:"node_in",c:"uG",f:["float"],e:!1},{a:"node_in",c:"uH",f:["vec3"],e:!1},{a:"node_in",c:"uI",f:["float"],e:!1},{a:"node_in",c:"uJ",f:["float"],e:!1},{a:"node_in",c:"uK",f:["vec3"],e:!1},{a:"node_out",c:"uL",f:["vec3"],e:!1}],j:[{a:"txt",b:"uL [ 0 ] = uL [ 1 ] = uL [ 2 ] = _0_0 ; uF ; uH ; uI ; uJ ; uK ; uG ;".split(" ")}]}, {a:"node",c:"EMISSION",m:[],l:[{a:"node_in",c:"uM",f:["vec3"],e:!1},{a:"node_in",c:"uN",f:["float"],e:!1},{a:"node_out",c:"uO",f:["vec3"],e:!1},{a:"node_out",c:"uP",f:["vec3"],e:!1},{a:"node_out",c:"uQ",f:["float"],e:!1},{a:"node_out",c:"uR",f:["vec3"],e:!1},{a:"node_out",c:"uS",f:["float"],e:!1},{a:"node_out",c:"uT",f:["float"],e:!1},{a:"node_out",c:"uU",f:["vec3"],e:!1},{a:"node_out",c:"uV",f:["vec3"],e:!1},{a:"node_out",c:"uW",f:["float"],e:!1}],j:[{a:"txt",b:"uV = uN * uM ; uT = _0_0 ; uW = _1_0 ; uU = nH ; uO ; uP ; uQ ; uR ; uS ;".split(" ")}]}, {a:"node",c:"AMBIENT_OCCLUSION",m:[],l:[{a:"node_in",c:"uX",f:["vec3"],e:!1},{a:"node_out",c:"uY",f:["vec3"],e:!1}],j:[{a:"txt",b:"uY [ 0 ] = uY [ 1 ] = uY [ 2 ] = _0_0 ; uX ;".split(" ")}]},{a:"node",c:"HOLDOUT",m:[],l:[{a:"node_out",c:"uZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"uZ [ 0 ] = uZ [ 1 ] = uZ [ 2 ] = _0_0 ;".split(" ")}]},{a:"node",c:"VOLUME_ABSORPTION",m:[],l:[{a:"node_in",c:"u_",f:["vec3"],e:!1},{a:"node_in",c:"va",f:["float"],e:!1},{a:"node_out",c:"vb",f:["vec3"],e:!1}],j:[{a:"txt",b:"vb [ 0 ] = vb [ 1 ] = vb [ 2 ] = _0_0 ; u_ ; va ;".split(" ")}]}, {a:"node",c:"VOLUME_SCATTER",m:[],l:[{a:"node_in",c:"vc",f:["vec3"],e:!1},{a:"node_in",c:"vd",f:["float"],e:!1},{a:"node_in",c:"ve",f:["float"],e:!1},{a:"node_out",c:"vf",f:["vec3"],e:!1}],j:[{a:"txt",b:"vf [ 0 ] = vf [ 1 ] = vf [ 2 ] = _0_0 ; vc ; vd ; ve ;".split(" ")}]},{a:"node",c:"BUMP",m:[],l:[{a:"node_in",c:"EO",f:["float"],e:!1},{a:"node_in",c:"EP",f:["float"],e:!1},{a:"node_in",c:"vi",f:["float"],e:!1},{a:"node_in",c:"EQ",f:["vec3"],e:!1},{a:"node_out",c:"vk",f:["vec3"],e:!1}],j:[{a:"txt", b:"vk = EQ ; EO ; EP ; vi ;".split(" ")}]},{a:"node",c:"NORMAL_MAP",m:[{a:"node_var",c:"SPACE",b:["NM_TANGENT"]}],l:[{a:"node_in",c:"vr",f:["float"],e:!1},{a:"node_in",c:"vs",f:["vec3"],e:!1},{a:"node_out",c:"vt",f:["vec3"],e:!1}],j:[{a:"txt",b:["vec3","vu","=","nH",";"]},{a:"node_cond",d:[{a:"node_if",g:["SPACE","NM_TANGENT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vt = rm * ( vs . xyz - _0_5 ) ;".split(" ")}]},{a:"node_elif",g:["SPACE","NM_OBJECT",{a:"equal_expr",i:2},"SPACE","NM_FDAGE_OBJECT",{a:"equal_expr", i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vt = vs . xyz - _0_5 ; vt . yz *= - 1.0 ; vt = T ( u_model_tsr , vt ) ;".split(" ")}]},{a:"node_elif",g:["SPACE","NM_WORLD",{a:"equal_expr",i:2},"SPACE","NM_FDAGE_WORLD",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vt = vs . xyz - _0_5 ; vt . yz *= - 1.0 ;".split(" ")}]}]},{a:"txt",b:"vt = normalize ( mix ( vu , vt , vr ) ) ;".split(" ")}]},{a:"node",c:"VECT_TRANSFORM",m:[{a:"node_var",c:"CONVERT_TYPE",b:["VT_WORLD_TO_OBJECT"]},{a:"node_var", c:"VECTOR_TYPE",b:["VT_VECTOR"]}],l:[{a:"node_in",c:"vv",f:["vec3"],e:!1},{a:"node_out",c:"vw",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_WORLD",{a:"equal_expr",i:2},"CONVERT_TYPE","VT_OBJECT_TO_OBJECT",{a:"equal_expr",i:2},"CONVERT_TYPE","VT_CAMERA_TO_CAMERA",{a:"equal_expr",i:2},{a:"logical_or_expr",i:3}],j:[{a:"txt",b:["vw","=","vv",";"]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["VECTOR_TYPE","VT_POINT",{a:"equal_expr",i:2}],j:[{a:"node_cond", d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_frag , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_model_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_model_tsr , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{a:"equal_expr",i:2}], j:[{a:"txt",b:"vw = ad ( u_model_tsr , vv ) ; vw = ad ( u_view_tsr_frag , vw ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = ad ( u_view_tsr_inverse , vv ) ; vw = ad ( u_model_tsr_inverse , vw ) ;".split(" ")}]}]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["CONVERT_TYPE","VT_WORLD_TO_CAMERA", {a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_frag , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_model_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_model_tsr , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_model_tsr , vv ) ; vw = T ( u_view_tsr_frag , vw ) ;".split(" ")}]}, {a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_inverse , vv ) ;".split(" ")}]},{a:"node_elif",g:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = T ( u_view_tsr_inverse , vv ) ; vw = T ( u_model_tsr_inverse , vw ) ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["VECTOR_TYPE","VT_NORMAL",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vw = normalize ( vw ) ;".split(" ")}]}]}]}]}]},{a:"node",c:"BLACKBODY",m:[], l:[{a:"node_in",c:"vx",f:["float"],e:!1},{a:"node_out",c:"vy",f:["vec3"],e:!1}],j:[{a:"txt",b:"vy [ 0 ] = vy [ 1 ] = vy [ 2 ] = _0_0 ; vx ;".split(" ")}]},{a:"node",c:"WAVELENGTH",m:[],l:[{a:"node_in",c:"vz",f:["float"],e:!1},{a:"node_out",c:"vA",f:["vec3"],e:!1}],j:[{a:"txt",b:"vA [ 0 ] = vA [ 1 ] = vA [ 2 ] = _0_0 ; vz ;".split(" ")}]},{a:"node",c:"SEPXYZ",m:[],l:[{a:"node_in",c:"vB",f:["vec3"],e:!1},{a:"node_out",c:"vC",f:["float"],e:!1},{a:"node_out",c:"vD",f:["float"],e:!1},{a:"node_out",c:"vE", f:["float"],e:!1}],j:[{a:"txt",b:"vC = vB [ 0 ] ; vD = vB [ 1 ] ; vE = vB [ 2 ] ;".split(" ")}]},{a:"node",c:"COMBXYZ",m:[],l:[{a:"node_in",c:"vF",f:["float"],e:!1},{a:"node_in",c:"vG",f:["float"],e:!1},{a:"node_in",c:"vH",f:["float"],e:!1},{a:"node_out",c:"vI",f:["vec3"],e:!1}],j:[{a:"txt",b:"vI [ 0 ] = vF ; vI [ 1 ] = vG ; vI [ 2 ] = vH ;".split(" ")}]},{a:"node",c:"BRIGHTCONTRAST",m:[],l:[{a:"node_in",c:"vJ",f:["vec3"],e:!1},{a:"node_in",c:"vK",f:["float"],e:!1},{a:"node_in",c:"vL",f:["float"], e:!1},{a:"node_out",c:"vM",f:["vec3"],e:!1}],j:[{a:"txt",b:"float b = vK - vL * _0_5 ; vM = max ( ( _1_0 + vL ) * vJ + b , vec3 ( _0_0 ) ) ;".split(" ")}]},{a:"node",c:"LIGHT_FALLOFF",m:[],l:[{a:"node_in",c:"vN",f:["float"],e:!1},{a:"node_in",c:"vO",f:["float"],e:!1},{a:"node_out",c:"vP",f:["float"],e:!1},{a:"node_out",c:"vQ",f:["float"],e:!1},{a:"node_out",c:"vR",f:["float"],e:!1}],j:[{a:"txt",b:"vP = vQ = vR = _0_0 ; vN ; vO ;".split(" ")}]},{a:"node",c:"TEX_IMAGE",m:[],l:[{a:"node_in",c:"ER",f:["vec3"], e:!1},{a:"node_out",c:"ES",f:["vec3"],e:!1},{a:"node_out",c:"ET",f:["float"],e:!1}],j:[{a:"txt",b:"ES [ 0 ] = ES [ 1 ] = ES [ 2 ] = _0_0 ; ET = _1_0 ; ER ;".split(" ")}]},{a:"node",c:"TEX_ENVIRONMENT",m:[],l:[{a:"node_in",c:"EU",f:["vec3"],e:!1},{a:"node_out",c:"EV",f:["vec3"],e:!1}],j:[{a:"txt",b:"EV [ 0 ] = EV [ 1 ] = EV [ 2 ] = _0_0 ; EU ;".split(" ")}]},{a:"node",c:"TEX_SKY",m:[],l:[{a:"node_in",c:"vS",f:["vec3"],e:!1},{a:"node_out",c:"vT",f:["vec3"],e:!1}],j:[{a:"txt",b:"vT [ 0 ] = vT [ 1 ] = vT [ 2 ] = _0_0 ; vS ;".split(" ")}]}, {a:"node",c:"TEX_NOISE",m:[],l:[{a:"node_in",c:"vU",f:["vec3"],e:!1},{a:"node_in",c:"vV",f:["float"],e:!1},{a:"node_in",c:"vW",f:["float"],e:!1},{a:"node_in",c:"vX",f:["float"],e:!1},{a:"node_out",c:"vY",f:["vec3"],e:!1},{a:"node_out",c:"vZ",f:["float"],e:!1}],j:[{a:"txt",b:"vY [ 0 ] = vY [ 1 ] = vY [ 2 ] = _0_0 ; vZ = _1_0 ; vU ; vV ; vW ; vX ;".split(" ")}]},{a:"node",c:"TEX_WAVE",m:[],l:[{a:"node_in",c:"v_",f:["vec3"],e:!1},{a:"node_in",c:"wa",f:["float"],e:!1},{a:"node_in",c:"wb",f:["float"], e:!1},{a:"node_in",c:"wc",f:["float"],e:!1},{a:"node_in",c:"wd",f:["float"],e:!1},{a:"node_out",c:"we",f:["vec3"],e:!1},{a:"node_out",c:"wf",f:["float"],e:!1}],j:[{a:"txt",b:"we [ 0 ] = we [ 1 ] = we [ 2 ] = _0_0 ; wf = _1_0 ; v_ ; wa ; wb ; wc ; wd ;".split(" ")}]},{a:"node",c:"TEX_VORONOI",m:[],l:[{a:"node_in",c:"wg",f:["vec3"],e:!1},{a:"node_in",c:"wh",f:["float"],e:!1},{a:"node_out",c:"wi",f:["vec3"],e:!1},{a:"node_out",c:"wj",f:["float"],e:!1}],j:[{a:"txt",b:"wi [ 0 ] = wi [ 1 ] = wi [ 2 ] = _0_0 ; wj = _1_0 ; wg ; wh ;".split(" ")}]}, {a:"node",c:"TEX_MUSGRAVE",m:[],l:[{a:"node_in",c:"wk",f:["vec3"],e:!1},{a:"node_in",c:"wl",f:["float"],e:!1},{a:"node_in",c:"wm",f:["float"],e:!1},{a:"node_in",c:"wn",f:["float"],e:!1},{a:"node_in",c:"wo",f:["float"],e:!1},{a:"node_in",c:"wp",f:["float"],e:!1},{a:"node_in",c:"wq",f:["float"],e:!1},{a:"node_out",c:"wr",f:["vec3"],e:!1},{a:"node_out",c:"ws",f:["float"],e:!1}],j:[{a:"txt",b:"wr [ 0 ] = wr [ 1 ] = wr [ 2 ] = _0_0 ; ws = _1_0 ; wk ; wl ; wm ; wn ; wo ; wp ; wq ;".split(" ")}]},{a:"node", c:"TEX_GRADIENT",m:[],l:[{a:"node_in",c:"wt",f:["vec3"],e:!1},{a:"node_out",c:"wu",f:["vec3"],e:!1},{a:"node_out",c:"wv",f:["float"],e:!1}],j:[{a:"txt",b:"wu [ 0 ] = wu [ 1 ] = wu [ 2 ] = _0_0 ; wv = _1_0 ; wt ;".split(" ")}]},{a:"node",c:"TEX_MAGIC",m:[],l:[{a:"node_in",c:"wA",f:["vec3"],e:!1},{a:"node_in",c:"wB",f:["float"],e:!1},{a:"node_in",c:"wC",f:["float"],e:!1},{a:"node_out",c:"wD",f:["vec3"],e:!1},{a:"node_out",c:"wE",f:["float"],e:!1}],j:[{a:"txt",b:"wD [ 0 ] = wD [ 1 ] = wD [ 2 ] = _0_0 ; wE = _1_0 ; wA ; wB ; wC ;".split(" ")}]}, {a:"node",c:"TEX_CHECKER",m:[],l:[{a:"node_in",c:"wF",f:["vec3"],e:!1},{a:"node_in",c:"wG",f:["vec3"],e:!1},{a:"node_in",c:"wH",f:["vec3"],e:!1},{a:"node_in",c:"wI",f:["float"],e:!1},{a:"node_out",c:"wJ",f:["vec3"],e:!1},{a:"node_out",c:"wK",f:["float"],e:!1}],j:[{a:"txt",b:"wJ [ 0 ] = wJ [ 1 ] = wJ [ 2 ] = _0_0 ; wK = _1_0 ; wF ; wG ; wH ; wI ;".split(" ")}]},{a:"node",c:"TEX_BRICK",m:[],l:[{a:"node_in",c:"wL",f:["vec3"],e:!1},{a:"node_in",c:"wM",f:["vec3"],e:!1},{a:"node_in",c:"wN",f:["vec3"],e:!1}, {a:"node_in",c:"wO",f:["vec3"],e:!1},{a:"node_in",c:"wP",f:["float"],e:!1},{a:"node_in",c:"wQ",f:["float"],e:!1},{a:"node_in",c:"wR",f:["float"],e:!1},{a:"node_in",c:"wS",f:["float"],e:!1},{a:"node_in",c:"wT",f:["float"],e:!1},{a:"node_out",c:"wU",f:["vec3"],e:!1},{a:"node_out",c:"wV",f:["float"],e:!1}],j:[{a:"txt",b:"wU [ 0 ] = wU [ 1 ] = wU [ 2 ] = _0_0 ; wV = _1_0 ; wL ; wM ; wN ; wO ; wP ; wQ ; wR ; wS ; wT ;".split(" ")}]},{a:"node",c:"ADD_SHADER",m:[],l:[{a:"node_in",c:"wW",f:["vec3"],e:!1}, {a:"node_in",c:"wX",f:["vec3"],e:!1},{a:"node_out",c:"wY",f:["vec3"],e:!1}],j:[{a:"txt",b:"wY = clamp ( wW + wX , vec3 ( _0_0 ) , vec3 ( _1_0 ) ) ;".split(" ")}]},{a:"node",c:"MIX_SHADER",m:[],l:[{a:"node_in",c:"wZ",f:["float"],e:!1},{a:"node_in",c:"w_",f:["vec3"],e:!1},{a:"node_in",c:"xa",f:["vec3"],e:!1},{a:"node_in",c:"xb",f:["vec3"],e:!1},{a:"node_in",c:"xc",f:["float"],e:!1},{a:"node_in",c:"xd",f:["vec3"],e:!1},{a:"node_in",c:"xe",f:["float"],e:!1},{a:"node_in",c:"xf",f:["float"],e:!1},{a:"node_in", c:"xg",f:["vec3"],e:!1},{a:"node_in",c:"xh",f:["vec3"],e:!1},{a:"node_in",c:"xi",f:["float"],e:!1},{a:"node_in",c:"xj",f:["vec3"],e:!1},{a:"node_in",c:"xk",f:["float"],e:!1},{a:"node_in",c:"xl",f:["vec3"],e:!1},{a:"node_in",c:"xm",f:["float"],e:!1},{a:"node_in",c:"xn",f:["float"],e:!1},{a:"node_in",c:"xo",f:["vec3"],e:!1},{a:"node_in",c:"xp",f:["vec3"],e:!1},{a:"node_in",c:"xq",f:["float"],e:!1},{a:"node_out",c:"xr",f:["vec3"],e:!1},{a:"node_out",c:"xs",f:["vec3"],e:!1},{a:"node_out",c:"xt",f:["float"], e:!1},{a:"node_out",c:"xu",f:["vec3"],e:!1},{a:"node_out",c:"xv",f:["float"],e:!1},{a:"node_out",c:"xA",f:["float"],e:!1},{a:"node_out",c:"xB",f:["vec3"],e:!1},{a:"node_out",c:"xC",f:["vec3"],e:!1},{a:"node_out",c:"xD",f:["float"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( wZ , _0_0 , _1_0 ) ; xs = mix ( xb , xj , xE ) ; xt = mix ( xc , xk , xE ) ; if ( xf > _0_0 ) { if ( xn > _0_0 ) { xu = mix ( xd , xl , xE ) ; xv = mix ( xe , xm , xE ) ; } else { xu = xd ; xv = xe ; } } else { xu = xl ; xv = xm ; } if ( xi > _0_0 ) { if ( xq > _0_0 ) { xC = mix ( xh , xp , xE ) ; } else { xC = xh ; } } else { xC = xp ; } xA = mix ( xf , xn , xE ) ; xB = mix ( xg , xo , xE ) ; xD = mix ( xi , xq , xE ) ;".split(" ")}]}, {a:"node",c:"UV_MERGED",m:[],l:[{a:"node_out",c:"xF",f:["vec3"],e:!1},{a:"node_out",c:"xG",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xF"],j:[{a:"txt",b:"xF = qP ( A ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xG"],j:[{a:"txt",b:"xG = vec3 ( A , _0_0 ) ;".split(" ")}]}]}]},{a:"node",c:"TEX_COORD_UV",m:[],l:[{a:"node_out",c:"xH",f:["vec3"],e:!1}],j:[{a:"txt",b:"xH = vec3 ( A , _0_0 ) ;".split(" ")}]},{a:"node",c:"TEX_COORD_NO",m:[],l:[{a:"node_out",c:"xI",f:["vec3"], e:!1}],j:[{a:"txt",b:["xI","=","nH",";"]}]},{a:"node",c:"TEX_COORD_GE",m:[],l:[{a:"node_out",c:"xJ",f:["vec3"],e:!1}],j:[{a:"txt",b:"xJ = vec3 ( A , _0_0 ) ;".split(" ")}]},{a:"node",c:"TEX_COORD_OB",m:[],l:[{a:"node_out",c:"xK",f:["vec3"],e:!1}],j:[{a:"txt",b:"xK [ 0 ] = xK [ 1 ] = xK [ 2 ] = _1_0 ;".split(" ")}]},{a:"node",c:"TEX_COORD_CA",m:[],l:[{a:"node_out",c:"xL",f:["vec3"],e:!1}],j:[{a:"txt",b:"xL [ 0 ] = rn [ 0 ] ; xL [ 1 ] = rn [ 1 ] ; xL [ 2 ] = _1_0 ;".split(" ")}]},{a:"node",c:"TEX_COORD_WI", m:[],l:[{a:"node_out",c:"xM",f:["vec3"],e:!1}],j:[{a:"txt",b:"xM [ 0 ] = xM [ 1 ] = xM [ 2 ] = _1_0 ;".split(" ")}]},{a:"node",c:"TEX_COORD_RE",m:[],l:[{a:"node_out",c:"xN",f:["vec3"],e:!1}],j:[{a:"txt",b:"xN [ 0 ] = xN [ 1 ] = xN [ 2 ] = _1_0 ;".split(" ")}]},{a:"node",c:"UVMAP",m:[],l:[{a:"node_out",c:"xO",f:["vec3"],e:!1}],j:[{a:"txt",b:"xO = vec3 ( A , _0_0 ) ;".split(" ")}]},{a:"node",c:"PARTICLE_INFO",m:[],l:[{a:"node_out",c:"xP",f:["float"],e:!1},{a:"node_out",c:"xQ",f:["float"],e:!1},{a:"node_out", c:"xR",f:["float"],e:!1},{a:"node_out",c:"xS",f:["vec3"],e:!1},{a:"node_out",c:"xT",f:["float"],e:!1},{a:"node_out",c:"xU",f:["vec3"],e:!1},{a:"node_out",c:"xV",f:["vec3"],e:!1},{a:"node_param",c:"EK",f:["GLSL_IN","vec4"],e:!0},{a:"node_param",c:"EL",f:["GLSL_IN","vec3"],e:!0},{a:"node_param",c:"EM",f:["GLSL_IN","vec3"],e:!0},{a:"node_param",c:"EN",f:["GLSL_IN","vec3"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["PARTICLE_BATCH"],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xP"],j:[{a:"txt",b:"xP = EK [ 0 ] ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xQ"],j:[{a:"txt",b:"xQ = EK [ 1 ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xR"],j:[{a:"txt",b:"xR = EK [ 2 ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xS"],j:[{a:"txt",b:["xS","=","EL",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xT"],j:[{a:"txt",b:"xT = EK [ 3 ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xU"],j:[{a:"txt",b:["xU","=","EM",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_xV"], j:[{a:"txt",b:["xV","=","EN",";"]}]}]}]},{a:"node_else",j:[{a:"txt",b:"xP = _0_0 ; xQ = _0_0 ; xR = _0_0 ; xS = vec3 ( _0_0 ) ; xT = _0_0 ; xU = xS ; xV = xS ;".split(" ")}]}]}]},{a:"node",c:"HAIR_INFO",m:[],l:[{a:"node_out",c:"xW",f:["float"],e:!1},{a:"node_out",c:"xX",f:["float"],e:!1},{a:"node_out",c:"xY",f:["float"],e:!1},{a:"node_out",c:"xZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"xW = _0_0 ; xX = _0_0 ; xY = _0_0 ; xZ = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"OBJECT_INFO",m:[],l:[{a:"node_out", c:"x_",f:["vec3"],e:!1},{a:"node_out",c:"ya",f:["float"],e:!1},{a:"node_out",c:"yb",f:["float"],e:!1},{a:"node_out",c:"yc",f:["float"],e:!1}],j:[{a:"txt",b:"ya = _0_0 ; yb = _0_0 ; yc = _0_0 ; x_ = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"WIREFRAME",m:[],l:[{a:"node_in",c:"yd",f:["float"],e:!1},{a:"node_out",c:"ye",f:["float"],e:!1}],j:[{a:"txt",b:["ye","=","yd",";"]}]},{a:"node",c:"TANGENT",m:[],l:[{a:"node_out",c:"yf",f:["vec3"],e:!1}],j:[{a:"txt",b:"yf = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node", c:"LAYER_WEIGHT",m:[],l:[{a:"node_in",c:"EW",f:["float"],e:!1},{a:"node_in",c:"EX",f:["vec3"],e:!1},{a:"node_out",c:"yi",f:["float"],e:!1},{a:"node_out",c:"yj",f:["float"],e:!1}],j:[{a:"txt",b:"yi = yj = _0_0 ; EX ; EW ;".split(" ")}]},{a:"node",c:"LIGHT_PATH",m:[],l:[{a:"node_out",c:"yl",f:["float"],e:!1},{a:"node_out",c:"ym",f:["float"],e:!1},{a:"node_out",c:"yn",f:["float"],e:!1},{a:"node_out",c:"yo",f:["float"],e:!1},{a:"node_out",c:"yp",f:["float"],e:!1},{a:"node_out",c:"yq",f:["float"],e:!1}, {a:"node_out",c:"yr",f:["float"],e:!1},{a:"node_out",c:"ys",f:["float"],e:!1},{a:"node_out",c:"yt",f:["float"],e:!1},{a:"node_out",c:"yu",f:["float"],e:!1}],j:[{a:"txt",b:"yl = ym = yn = _0_0 ; yo = yp = yq = _0_0 ; yr = yr = yt = yu = _0_0 ; ys = _0_0 ;".split(" ")}]},{a:"node",c:"ATTRIBUTE",m:[],l:[{a:"node_out",c:"yA",f:["vec3"],e:!1},{a:"node_out",c:"yB",f:["vec3"],e:!1},{a:"node_out",c:"yC",f:["float"],e:!1}],j:[{a:"txt",b:"yA = yB = vec3 ( _0_0 ) ; yC = _0_0 ;".split(" ")}]},{a:"node",c:"SCRIPT", m:[],l:[],j:[]},{a:"node",c:"CURVE_VEC",m:[{a:"node_var",c:"READ_R",b:["0"]},{a:"node_var",c:"READ_G",b:["0"]},{a:"node_var",c:"READ_B",b:["0"]},{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yD",f:["float"],e:!1},{a:"node_in",c:"yE",f:["vec3"],e:!1},{a:"node_out",c:"yF",f:["vec3"],e:!1}],j:[{a:"txt",b:["yF","=","yE",";"]},{a:"node_cond",d:[{a:"node_if",g:["READ_R"],j:[{a:"txt",b:"yF . r = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . r + 0.5 , NODE_TEX_ROW ) ) . r - 0.5 ) * 2.0 ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["READ_G"],j:[{a:"txt",b:"yF . g = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . g + 0.5 , NODE_TEX_ROW ) ) . g - 0.5 ) * 2.0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_B"],j:[{a:"txt",b:"yF . b = ( GLSL_TEXTURE ( u_nodes_texture , vec2 ( 0.5 * yE . b + 0.5 , NODE_TEX_ROW ) ) . b - 0.5 ) * 2.0 ;".split(" ")}]}]},{a:"txt",b:"yF = mix ( yE , yF , yD ) ;".split(" ")}]},{a:"node",c:"CURVE_RGB",m:[{a:"node_var",c:"READ_A",b:["0"]},{a:"node_var",c:"READ_R", b:["0"]},{a:"node_var",c:"READ_G",b:["0"]},{a:"node_var",c:"READ_B",b:["0"]},{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yG",f:["float"],e:!1},{a:"node_in",c:"yH",f:["vec3"],e:!1},{a:"node_out",c:"yI",f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["READ_A"],j:[{a:"txt",b:"float r = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . r , NODE_TEX_ROW ) ) . a ; float g = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . g , NODE_TEX_ROW ) ) . a ; float b = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yH . b , NODE_TEX_ROW ) ) . a ;".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"float r = yH . r ; float g = yH . g ; float b = yH . b ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_R"],j:[{a:"txt",b:"yI . r = GLSL_TEXTURE ( u_nodes_texture , vec2 ( r , NODE_TEX_ROW ) ) . r ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yI . r = r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["READ_G"],j:[{a:"txt",b:"yI . g = GLSL_TEXTURE ( u_nodes_texture , vec2 ( g , NODE_TEX_ROW ) ) . g ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yI . g = g ;".split(" ")}]}]}, {a:"node_cond",d:[{a:"node_if",g:["READ_B"],j:[{a:"txt",b:"yI . b = GLSL_TEXTURE ( u_nodes_texture , vec2 ( b , NODE_TEX_ROW ) ) . b ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"yI . b = b ;".split(" ")}]}]},{a:"txt",b:"yI = mix ( yH , yI , yG ) ;".split(" ")}]},{a:"node",c:"VALTORGB",m:[{a:"node_var",c:"NODE_TEX_ROW",b:["0.0"]}],l:[{a:"node_in",c:"yJ",f:["float"],e:!1},{a:"node_out",c:"yK",f:["vec3"],e:!1},{a:"node_out",c:"yL",f:["float"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( u_nodes_texture , vec2 ( yJ , NODE_TEX_ROW ) ) ; yK = yM . rgb ; yL = yM . a ;".split(" ")}]}, {a:"node",c:"MAPPING",m:[{a:"node_var",c:"MAPPING_SCALE_DEF",b:["0"]},{a:"node_var",c:"MAPPING_SCALE",b:["vec3","(","1.0",")"]},{a:"node_var",c:"MAPPING_TRANS_DEF",b:["0"]},{a:"node_var",c:"MAPPING_TRANS",b:["vec3","(","0.0",")"]},{a:"node_var",c:"MAPPING_TRS_MATRIX_DEF",b:["0"]},{a:"node_var",c:"MAPPING_TRS_MATRIX",b:["mat4","(","1.0",")"]},{a:"node_var",c:"MAPPING_MIN_CLIP_DEF",b:["0"]},{a:"node_var",c:"MAPPING_MIN_CLIP",b:["vec3","(","0.0",")"]},{a:"node_var",c:"MAPPING_MAX_CLIP_DEF",b:["0"]}, {a:"node_var",c:"MAPPING_MAX_CLIP",b:["vec3","(","1.0",")"]},{a:"node_var",c:"MAPPING_IS_NORMAL",b:["0"]}],l:[{a:"node_in",c:"yN",f:["vec3"],e:!1},{a:"node_out",c:"yO",f:["vec3"],e:!1}],j:[{a:"txt",b:["yO","=","yN",";"]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_SCALE_DEF"],j:[{a:"txt",b:"yO = yO * MAPPING_SCALE ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_TRANS_DEF"],j:[{a:"txt",b:"yO = yO + MAPPING_TRANS ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_TRS_MATRIX_DEF"], j:[{a:"txt",b:"yO = ( MAPPING_TRS_MATRIX * vec4 ( yO , _1_0 ) ) . xyz ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_MIN_CLIP_DEF"],j:[{a:"txt",b:"yO = max ( yO , MAPPING_MIN_CLIP ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_MAX_CLIP_DEF"],j:[{a:"txt",b:"yO = min ( yO , MAPPING_MAX_CLIP ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAPPING_IS_NORMAL"],j:[{a:"txt",b:"yO = normalize ( yO ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ADD",m:[{a:"node_var",c:"MATH_USE_CLAMP", b:["0"]}],l:[{a:"node_in",c:"yP",f:["float"],e:!1},{a:"node_in",c:"yQ",f:["float"],e:!1},{a:"node_out",c:"yR",f:["float"],e:!1}],j:[{a:"txt",b:"yR = yP + yQ ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"yR = clamp ( yR , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_SUBTRACT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yS",f:["float"],e:!1},{a:"node_in",c:"yT",f:["float"],e:!1},{a:"node_out",c:"yU",f:["float"],e:!1}],j:[{a:"txt",b:"yU = yS - yT ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"yU = clamp ( yU , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MULTIPLY",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yV",f:["float"],e:!1},{a:"node_in",c:"yW",f:["float"],e:!1},{a:"node_out",c:"yX",f:["float"],e:!1}],j:[{a:"txt",b:"yX = yV * yW ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"yX = clamp ( yX , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_DIVIDE", m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"yY",f:["float"],e:!1},{a:"node_in",c:"yZ",f:["float"],e:!1},{a:"node_out",c:"y_",f:["float"],e:!1}],j:[{a:"txt",b:"y_ = ( yZ != _0_0 ) ? yY / yZ : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"y_ = clamp ( y_ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_SINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"za",f:["float"],e:!1},{a:"node_in",c:"zb",f:["float"],e:!1}, {a:"node_out",c:"zc",f:["float"],e:!1}],j:[{a:"txt",b:"zc = sin ( za ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zc = clamp ( zc , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zb",";"]}]},{a:"node",c:"MATH_COSINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zd",f:["float"],e:!1},{a:"node_in",c:"ze",f:["float"],e:!1},{a:"node_out",c:"zf",f:["float"],e:!1}],j:[{a:"txt",b:"zf = cos ( zd ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"], j:[{a:"txt",b:"zf = clamp ( zf , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["ze",";"]}]},{a:"node",c:"MATH_TANGENT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zg",f:["float"],e:!1},{a:"node_in",c:"zh",f:["float"],e:!1},{a:"node_out",c:"zi",f:["float"],e:!1}],j:[{a:"txt",b:"zi = tan ( zg ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zi = clamp ( zi , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zh",";"]}]},{a:"node",c:"MATH_ARCSINE",m:[{a:"node_var", c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zj",f:["float"],e:!1},{a:"node_in",c:"zk",f:["float"],e:!1},{a:"node_out",c:"zl",f:["float"],e:!1}],j:[{a:"txt",b:"zl = ( zj <= _1_0 && zj >= - _1_0 ) ? asin ( zj ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zl = clamp ( zl , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zk",";"]}]},{a:"node",c:"MATH_ARCCOSINE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zm",f:["float"],e:!1},{a:"node_in", c:"zn",f:["float"],e:!1},{a:"node_out",c:"zo",f:["float"],e:!1}],j:[{a:"txt",b:"zo = ( zm <= _1_0 && zm >= - _1_0 ) ? acos ( zm ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zo = clamp ( zo , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zn",";"]}]},{a:"node",c:"MATH_ARCTANGENT",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zp",f:["float"],e:!1},{a:"node_in",c:"zq",f:["float"],e:!1},{a:"node_out",c:"zr",f:["float"],e:!1}],j:[{a:"txt", b:"zr = atan ( zp ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zr = clamp ( zr , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zq",";"]}]},{a:"node",c:"MATH_POWER",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zs",f:["float"],e:!1},{a:"node_in",c:"zt",f:["float"],e:!1},{a:"node_out",c:"zu",f:["float"],e:!1}],j:[{a:"txt",b:"if ( zs < _0_0 && zt != floor ( zt ) ) zu = _0_0 ; else if ( zt == _0_0 ) zu = _1_0 ; else if ( zs < _0_0 ) zu = mix ( _1_0 , - _1_0 , sign ( mod ( - zt , 2.0 ) ) ) * pow ( - zs , zt ) ; else if ( zs == _0_0 ) zu = _0_0 ; else zu = pow ( zs , zt ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zu = clamp ( zu , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_LOGARITHM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zv",f:["float"],e:!1},{a:"node_in",c:"zA",f:["float"],e:!1},{a:"node_out",c:"zB",f:["float"],e:!1}],j:[{a:"txt",b:"zB = ( zv > _0_0 && zA > _0_0 ) ? log2 ( zv ) / log2 ( zA ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zB = clamp ( zB , _0_0 , _1_0 ) ;".split(" ")}]}]}]}, {a:"node",c:"MATH_MINIMUM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zC",f:["float"],e:!1},{a:"node_in",c:"zD",f:["float"],e:!1},{a:"node_out",c:"zE",f:["float"],e:!1}],j:[{a:"txt",b:"zE = min ( zC , zD ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zE = clamp ( zE , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MAXIMUM",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zF",f:["float"],e:!1},{a:"node_in",c:"zG",f:["float"], e:!1},{a:"node_out",c:"zH",f:["float"],e:!1}],j:[{a:"txt",b:"zH = max ( zF , zG ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zH = clamp ( zH , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ROUND",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zI",f:["float"],e:!1},{a:"node_in",c:"zJ",f:["float"],e:!1},{a:"node_out",c:"zK",f:["float"],e:!1}],j:[{a:"txt",b:"zK = floor ( zI + _0_5 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"], j:[{a:"txt",b:"zK = clamp ( zK , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zJ",";"]}]},{a:"node",c:"MATH_LESS_THAN",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zL",f:["float"],e:!1},{a:"node_in",c:"zM",f:["float"],e:!1},{a:"node_out",c:"zN",f:["float"],e:!1}],j:[{a:"txt",b:"zN = ( zL < zM ) ? _1_0 : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zN = clamp ( zN , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_GREATER_THAN",m:[{a:"node_var", c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zO",f:["float"],e:!1},{a:"node_in",c:"zP",f:["float"],e:!1},{a:"node_out",c:"zQ",f:["float"],e:!1}],j:[{a:"txt",b:"zQ = ( zO > zP ) ? _1_0 : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zQ = clamp ( zQ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_MODULO",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zR",f:["float"],e:!1},{a:"node_in",c:"zS",f:["float"],e:!1},{a:"node_out",c:"zT", f:["float"],e:!1}],j:[{a:"txt",b:"zT = abs ( zS ) > 0.000001 ? mod ( zR , zS ) : _0_0 ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"],j:[{a:"txt",b:"zT = clamp ( zT , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MATH_ABSOLUTE",m:[{a:"node_var",c:"MATH_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zU",f:["float"],e:!1},{a:"node_in",c:"zV",f:["float"],e:!1},{a:"node_out",c:"zW",f:["float"],e:!1}],j:[{a:"txt",b:"zW = abs ( zU ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MATH_USE_CLAMP"], j:[{a:"txt",b:"zW = clamp ( zW , _0_0 , _1_0 ) ;".split(" ")}]}]},{a:"txt",b:["zV",";"]}]},{a:"node",c:"MIX_RGB_MIX",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"zX",f:["float"],e:!1},{a:"node_in",c:"zY",f:["vec3"],e:!1},{a:"node_in",c:"zZ",f:["vec3"],e:!1},{a:"node_out",c:"z_",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( zX , _0_0 , _1_0 ) ; z_ = mix ( zY , zZ , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"z_ = clamp ( z_ , _0_0 , _1_0 ) ;".split(" ")}]}]}]}, {a:"node",c:"MIX_RGB_ADD",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Aa",f:["float"],e:!1},{a:"node_in",c:"Ab",f:["vec3"],e:!1},{a:"node_in",c:"Ac",f:["vec3"],e:!1},{a:"node_out",c:"Ad",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Aa , _0_0 , _1_0 ) ; Ad = mix ( Ab , Ab + Ac , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ad = clamp ( Ad , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_MULTIPLY",m:[{a:"node_var", c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ae",f:["float"],e:!1},{a:"node_in",c:"Af",f:["vec3"],e:!1},{a:"node_in",c:"Ag",f:["vec3"],e:!1},{a:"node_out",c:"Ah",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ae , _0_0 , _1_0 ) ; Ah = mix ( Af , Af * Ag , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ah = clamp ( Ah , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SUBTRACT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in", c:"Ai",f:["float"],e:!1},{a:"node_in",c:"Aj",f:["vec3"],e:!1},{a:"node_in",c:"Ak",f:["vec3"],e:!1},{a:"node_out",c:"Al",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ai , _0_0 , _1_0 ) ; Al = mix ( Aj , Aj - Ak , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Al = clamp ( Al , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SCREEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Am",f:["float"],e:!1},{a:"node_in",c:"An", f:["vec3"],e:!1},{a:"node_in",c:"Ao",f:["vec3"],e:!1},{a:"node_out",c:"Ap",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Am , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; Ap = vec3 ( _1_0 ) - ( vec3 ( Aq ) + xE * ( vec3 ( _1_0 ) - Ao ) ) * ( vec3 ( _1_0 ) - An ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ap = clamp ( Ap , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DIVIDE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ar", f:["float"],e:!1},{a:"node_in",c:"As",f:["vec3"],e:!1},{a:"node_in",c:"At",f:["vec3"],e:!1},{a:"node_out",c:"Au",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ar , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; At += step ( At , vec3 ( _0_0 ) ) ; Au = Aq * As + xE * As / At ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Au = clamp ( Au , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DIFFERENCE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in", c:"Av",f:["float"],e:!1},{a:"node_in",c:"Aw",f:["vec3"],e:!1},{a:"node_in",c:"Ax",f:["vec3"],e:!1},{a:"node_out",c:"Ay",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Av , _0_0 , _1_0 ) ; Ay = mix ( Aw , abs ( Aw - Ax ) , xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Ay = clamp ( Ay , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DARKEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Az",f:["float"],e:!1},{a:"node_in", c:"AA",f:["vec3"],e:!1},{a:"node_in",c:"AB",f:["vec3"],e:!1},{a:"node_out",c:"AC",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Az , _0_0 , _1_0 ) ; AC = min ( AA . rgb , AB . rgb * xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AC = clamp ( AC , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_LIGHTEN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AD",f:["float"],e:!1},{a:"node_in",c:"AE",f:["vec3"],e:!1},{a:"node_in", c:"AF",f:["vec3"],e:!1},{a:"node_out",c:"AG",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AD , _0_0 , _1_0 ) ; AG = max ( AE . rgb , AF . rgb * xE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AG = clamp ( AG , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_OVERLAY",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AH",f:["float"],e:!1},{a:"node_in",c:"AI",f:["vec3"],e:!1},{a:"node_in",c:"AJ",f:["vec3"],e:!1},{a:"node_out", c:"AK",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AH , _0_0 , _1_0 ) ; vec3 AL = vec3 ( _1_0 - xE ) ; AK = mix ( AI * ( AL + 2.0 * xE * AJ ) , vec3 ( _1_0 ) - ( AL + 2.0 * xE * ( vec3 ( _1_0 ) - AJ ) ) * ( vec3 ( _1_0 ) - AI ) , step ( _0_5 , AI ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AK = clamp ( AK , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_DODGE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AM",f:["float"], e:!1},{a:"node_in",c:"AN",f:["vec3"],e:!1},{a:"node_in",c:"AO",f:["vec3"],e:!1},{a:"node_out",c:"AP",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AM , _0_0 , _1_0 ) ; vec3 AQ = vec3 ( _1_0 ) - xE * AO ; vec3 AR = clamp ( AN / AQ , _0_0 , _1_0 ) ; AP = mix ( mix ( AR , vec3 ( _1_0 ) , step ( AQ , vec3 ( _0_0 ) ) ) , AN , step ( AN , vec3 ( _0_0 ) ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AP = clamp ( AP , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node", c:"MIX_RGB_BURN",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AS",f:["float"],e:!1},{a:"node_in",c:"AT",f:["vec3"],e:!1},{a:"node_in",c:"AU",f:["vec3"],e:!1},{a:"node_out",c:"AV",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AS , _0_0 , _1_0 ) ; vec3 jH = vec3 ( _1_0 - xE ) ; vec3 AQ = jH + xE * AU ; vec3 AR = clamp ( vec3 ( _1_0 ) - ( vec3 ( _1_0 ) - AT ) / AQ , _0_0 , _1_0 ) ; AV = mix ( AR , vec3 ( _0_0 ) , step ( AQ , vec3 ( _0_0 ) ) ) ;".split(" ")},{a:"node_cond", d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AV = clamp ( AV , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_HUE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"AW",f:["float"],e:!1},{a:"node_in",c:"AX",f:["vec3"],e:!1},{a:"node_in",c:"AY",f:["vec3"],e:!1},{a:"node_out",c:"AZ",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( AW , _0_0 , _1_0 ) ; vec3 jz , A_ , AQ ; AZ = AX ; A_ = jy ( AY ) ; if ( A_ . y != _0_0 ) { jz = jy ( AZ ) ; jz . x = A_ . x ; AQ = jA ( jz ) ; AZ = mix ( AZ , AQ , xE ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"AZ = clamp ( AZ , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SATURATION",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Ba",f:["float"],e:!1},{a:"node_in",c:"Bb",f:["vec3"],e:!1},{a:"node_in",c:"Bc",f:["vec3"],e:!1},{a:"node_out",c:"Bd",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Ba , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; Bd = Bb ; vec3 jz , A_ ; jz = jy ( Bd ) ; if ( jz . y != _0_0 ) { A_ = jy ( Bc ) ; jz . y = Aq * jz . y + xE * A_ . y ; Bd = jA ( jz ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bd = clamp ( Bd , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_VALUE",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Be",f:["float"],e:!1},{a:"node_in",c:"Bf",f:["vec3"],e:!1},{a:"node_in",c:"Bg",f:["vec3"],e:!1},{a:"node_out",c:"Bh",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Be , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; vec3 jz , A_ ; jz = jy ( Bf ) ; A_ = jy ( Bg ) ; jz . z = Aq * jz . z + xE * A_ . z ; Bh = jA ( jz ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bh = clamp ( Bh , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_COLOR",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Bi",f:["float"],e:!1},{a:"node_in",c:"Bj",f:["vec3"],e:!1},{a:"node_in",c:"Bk",f:["vec3"],e:!1},{a:"node_out",c:"Bl",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Bi , _0_0 , _1_0 ) ; vec3 jz , A_ , AQ ; Bl = Bj ; A_ = jy ( Bk ) ; if ( A_ . y != _0_0 ) { jz = jy ( Bl ) ; jz . x = A_ . x ; jz . y = A_ . y ; AQ = jA ( jz ) ; Bl = mix ( Bl , AQ , xE ) ; }".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bl = clamp ( Bl , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_SOFT_LIGHT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Bm",f:["float"],e:!1},{a:"node_in",c:"Bn",f:["vec3"],e:!1},{a:"node_in",c:"Bo",f:["vec3"],e:!1},{a:"node_out",c:"Bp",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Bm , _0_0 , _1_0 ) ; float Aq = _1_0 - xE ; vec3 Bq = Bo + Bn - Bo * Bn ; Bp = Bn * ( vec3 ( Aq ) + vec3 ( xE ) * ( ( vec3 ( _1_0 ) - Bn ) * Bo + Bq ) ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bp = clamp ( Bp , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"MIX_RGB_LINEAR_LIGHT",m:[{a:"node_var",c:"MIX_RGB_USE_CLAMP",b:["0"]}],l:[{a:"node_in",c:"Br",f:["float"],e:!1},{a:"node_in",c:"Bs",f:["vec3"],e:!1},{a:"node_in",c:"Bt",f:["vec3"],e:!1},{a:"node_out",c:"Bu",f:["vec3"],e:!1}],j:[{a:"txt",b:"float xE = clamp ( Br , _0_0 , _1_0 ) ; Bu = Bs + xE * ( 2.0 * Bt - vec3 ( _1_0 ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if", g:["MIX_RGB_USE_CLAMP"],j:[{a:"txt",b:"Bu = clamp ( Bu , _0_0 , _1_0 ) ;".split(" ")}]}]}]},{a:"node",c:"OUTPUT",m:[],l:[{a:"node_in",c:"Bv",f:["vec3"],e:!1},{a:"node_in",c:"Bw",f:["float"],e:!1}],j:[{a:"txt",b:"D = Bv ; H = Bw ;".split(" ")}]},{a:"node",c:"MATERIAL_BEGIN",m:[{a:"node_var",c:"MATERIAL_EXT",b:["0"]},{a:"node_var",c:"USE_MATERIAL_NORMAL",b:["0"]},{a:"node_var",c:"USE_MATERIAL_DIFFUSE",b:["0"]},{a:"node_var",c:"SHADELESS_MAT",b:["0"]}],l:[{a:"node_in",c:"BA",f:["vec3"],e:!1},{a:"node_in", c:"BB",f:["vec3"],e:!1},{a:"node_in",c:"BC",f:["float"],e:!1},{a:"node_in",c:"BD",f:["vec3"],e:!0},{a:"node_in",c:"BE",f:["float"],e:!0},{a:"node_out",c:"BF",f:["vec3"],e:!1},{a:"node_out",c:"BG",f:["vec3"],e:!1},{a:"node_out",c:"BH",f:["vec3"],e:!1},{a:"node_out",c:"BI",f:["vec3"],e:!1},{a:"node_out",c:"BJ",f:["vec3"],e:!1},{a:"node_out",c:"BK",f:["vec2"],e:!1},{a:"node_out",c:"BL",f:["vec2"],e:!1},{a:"node_out",c:"BM",f:["vec4"],e:!1},{a:"node_param",c:"rh",f:["const","vec2"],e:!0},{a:"node_param", c:"ri",f:["const","vec3"],e:!1}],j:[{a:"txt",b:"BH = clamp ( BA , _0_0 , _1_0 ) ; BI = ri [ 0 ] * clamp ( BB , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_NORMAL"],j:[{a:"txt",b:"BJ = normalize ( BD ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:["BJ","=","nH",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["SHADELESS_MAT",{a:"logic_negative_expr",i:1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MATERIAL_EXT"],j:[{a:"txt",b:"BF = BE * BH ;".split(" ")}]},{a:"node_else",j:[{a:"txt", b:"BF = ro * BH ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_DIFFUSE"],j:[{a:"txt",b:["BH","*=","BC",";"]}]}]},{a:"txt",b:"BG = rp * u_environment_energy * ce ( BJ ) ; BM = vec4 ( 1.0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NUM_LIGHTS",0,{a:"g_expr",i:2}],j:[{a:"txt",b:"BK = vec2 ( rh [ 0 ] , rh [ 1 ] ) ; BL = vec2 ( ri [ 1 ] , ri [ 2 ] ) ;".split(" ")}]}]},{a:"txt",b:["G","=","BM",";"]}]},{a:"node_else",j:[{a:"txt",b:"BF = vec3 ( _0_0 ) ; BG = vec3 ( _1_0 ) ;".split(" ")}]}]}]}, {a:"node",c:"MATERIAL_END",m:[{a:"node_var",c:"MATERIAL_EXT",b:["0"]},{a:"node_var",c:"USE_MATERIAL_DIFFUSE",b:["0"]},{a:"node_var",c:"USE_MATERIAL_SPECULAR",b:["0"]}],l:[{a:"node_in",c:"BN",f:["vec4"],e:!1},{a:"node_in",c:"BO",f:["vec3"],e:!1},{a:"node_in",c:"BP",f:["vec3"],e:!1},{a:"node_in",c:"BQ",f:["float"],e:!0},{a:"node_in",c:"BR",f:["float"],e:!0},{a:"node_in",c:"BS",f:["float"],e:!0},{a:"node_out",c:"BT",f:["vec3"],e:!0},{a:"node_out",c:"BU",f:["float"],e:!0},{a:"node_out",c:"BV",f:["vec3"], e:!0},{a:"node_out",c:"BW",f:["vec3"],e:!0},{a:"node_out",c:"BX",f:["vec3"],e:!0},{a:"node_param",c:"rj",f:["float"],e:!1},{a:"node_param",c:"rk",f:["float"],e:!1}],j:[{a:"txt",b:["BQ",";"]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BT"],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_DIFFUSE"],j:[{a:"txt",b:"BT = BN . rgb ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"BT = vec3 ( _0_0 ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:["BT","+=","BO", ";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BV"],j:[{a:"txt",b:["BV","=","BP",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["MATERIAL_EXT"],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BW"],j:[{a:"txt",b:"BW = BN . rgb ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BX"],j:[{a:"txt",b:["BX","=","BO",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BU"],j:[{a:"txt",b:"BU = clamp ( BS , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"], j:[{a:"txt",b:"float t = max ( max ( BO . r , BO . g ) , BO . b ) * BR ; BU = clamp ( BS * ( _1_0 - t ) + t , _0_0 , _1_0 ) ;".split(" ")}]}]}]}]}]},{a:"node_else",j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_BU"],j:[{a:"txt",b:"BU = clamp ( rj , _0_0 , _1_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"],j:[{a:"txt",b:"float t = max ( max ( BO . r , BO . g ) , BO . b ) * rk ; BU = rj * ( _1_0 - t ) + t ;".split(" ")}]}]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_MATERIAL_SPECULAR"], j:[{a:"txt",b:["E","=","BO",";"]}]},{a:"node_else",j:[{a:"txt",b:"E = vec3 ( _0_0 ) ;".split(" ")}]}]},{a:"txt",b:["F","=","BP",";"]}]},{a:"node",c:"LIGHTING_AMBIENT",m:[],l:[{a:"node_in",c:"nZ",f:["vec3"],e:!1},{a:"node_in",c:"n_",f:["vec3"],e:!1},{a:"node_in",c:"oa",f:["vec3"],e:!1},{a:"node_out",c:"ob",f:["vec4"],e:!1},{a:"node_out",c:"oc",f:["vec3"],e:!1}],j:[{a:"txt",b:"ob = vec4 ( nZ + oa * n_ , _0_0 ) ; oc = vec3 ( _0_0 ) ;".split(" ")}]},{a:"node",c:"LIGHTING_LAMP",m:[{a:"node_var",c:"LAMP_TYPE", b:["HEMI"]},{a:"node_var",c:"LAMP_IND",b:["0"]},{a:"node_var",c:"LAMP_SPOT_SIZE",b:["0.8"]},{a:"node_var",c:"LAMP_SPOT_BLEND",b:["0.03"]},{a:"node_var",c:"LAMP_LIGHT_DIST",b:["30.0"]},{a:"node_var",c:"LAMP_SHADOW_MAP_IND",b:["-","1"]}],l:[{a:"node_in",c:"od",f:["vec4"],e:!1},{a:"node_out",c:"oe",f:["vec3"],e:!1},{a:"node_out",c:"of",f:["vec2"],e:!1},{a:"node_out",c:"og",f:["vec3"],e:!1},{a:"node_out",c:"oh",f:["float"],e:!1}],j:[{a:"txt",b:"of = vec2 ( u_light_positions [ LAMP_IND ] . w , u_light_color_intensities [ LAMP_IND ] . w ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","HEMI",{a:"equal_expr",i:2}],j:[{a:"txt",b:["oh","=","_0_5",";"]}]},{a:"node_else",j:[{a:"txt",b:["oh","=","_0_0",";"]}]}]},{a:"txt",b:"og = u_light_color_intensities [ LAMP_IND ] . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_SHADOW_MAP_IND",1,{a:"negative_expr",i:1},{a:"non_equal_expr",i:2}],j:[{a:"txt",b:"og *= od [ LAMP_SHADOW_MAP_IND ] ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2},"LAMP_TYPE", "POINT",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],j:[{a:"txt",b:"vec3 oi = u_light_positions [ LAMP_IND ] . xyz ; oe = oi - nG ; float aC = length ( oe ) ; og *= LAMP_LIGHT_DIST / ( LAMP_LIGHT_DIST + aC * aC ) ; oe = normalize ( oe ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["LAMP_TYPE","SPOT",{a:"equal_expr",i:2}],j:[{a:"txt",b:"vec3 ok = u_light_directions [ LAMP_IND ] ; float ol = dot ( oe , ok ) ; ol *= smoothstep ( _0_0 , _1_0 , ( ol - LAMP_SPOT_SIZE ) / LAMP_SPOT_BLEND ) ; og *= ol ;".split(" ")}]}]}]}, {a:"node_else",j:[{a:"txt",b:"oe = u_light_directions [ LAMP_IND ] ;".split(" ")}]}]}]},{a:"node",c:"DIFFUSE_FRESNEL",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"om",f:["vec3"],e:!1},{a:"node_in",c:"on",f:["vec2"],e:!1},{a:"node_in",c:"oo",f:["vec3"],e:!1},{a:"node_in",c:"op",f:["float"],e:!1},{a:"node_in",c:"oq",f:["vec2"],e:!1},{a:"node_out",c:"or",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( om , k . xyz ) ; oo = cross ( os , k . xyz ) ; oo = - normalize ( oo ) ;".split(" ")}]}]}, {a:"txt",b:"or = _0_0 ; if ( on . r != _0_0 ) { float ot = ( _1_0 - op ) * dot ( oo , om ) + op ; if ( oq [ 0 ] == _0_0 ) { or = _1_0 ; } else { float t = _1_0 + abs ( ot ) ; t = oq [ 1 ] + ( _1_0 - oq [ 1 ] ) * pow ( t , oq [ 0 ] ) ; or = clamp ( t , _0_0 , _1_0 ) ; } or = max ( or , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_LAMBERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ou",f:["vec3"],e:!1},{a:"node_in",c:"ov",f:["vec2"],e:!1},{a:"node_in",c:"ow",f:["vec3"], e:!1},{a:"node_in",c:"ox",f:["float"],e:!1},{a:"node_out",c:"oy",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( ou , k . xyz ) ; ow = cross ( os , k . xyz ) ; ow = - normalize ( ow ) ;".split(" ")}]}]},{a:"txt",b:"oy = _0_0 ; if ( ov . r != _0_0 ) { float ot = ( _1_0 - ox ) * dot ( ow , ou ) + ox ; oy = max ( ot , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_OREN_NAYAR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in", c:"oz",f:["vec3"],e:!1},{a:"node_in",c:"oA",f:["vec2"],e:!1},{a:"node_in",c:"oB",f:["vec3"],e:!1},{a:"node_in",c:"oC",f:["float"],e:!1},{a:"node_in",c:"oD",f:["vec2"],e:!1},{a:"node_out",c:"oE",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oz , k . xyz ) ; oB = cross ( os , k . xyz ) ; oB = - normalize ( oB ) ;".split(" ")}]}]},{a:"txt",b:"oE = _0_0 ; if ( oA . r != _0_0 ) { float ot = ( _1_0 - oC ) * dot ( oB , oz ) + oC ; if ( oD [ 0 ] > _0_0 ) { float oF = max ( dot ( oB , nI ) , _0_0 ) ; float oG = oD [ 0 ] * oD [ 0 ] ; float cg = _1_0 - _0_5 * ( oG / ( oG + 0.33 ) ) ; vec3 oH = oz - ot * oB ; vec3 oI = nI - oF * oB ; if ( length ( oH ) == _0_0 || length ( oI ) == _0_0 || abs ( ot ) > _1_0 || abs ( oF ) > _1_0 ) oE = ot * cg ; else { float oJ = acos ( ot ) ; float oK = acos ( oF ) ; vec3 oL = normalize ( oH ) ; vec3 oM = normalize ( oI ) ; float a , b ; a = max ( oJ , oK ) ; b = min ( oJ , oK ) ; b *= 0.95 ; float t = max ( dot ( oL , oM ) , _0_0 ) ; float oN = 0.45 * ( oG / ( oG + 0.09 ) ) ; oE = ot * ( cg + ( oN * t * sin ( a ) * tan ( b ) ) ) ; } } else oE = ot ; oE = max ( oE , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"DIFFUSE_MINNAERT",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oO",f:["vec3"],e:!1},{a:"node_in",c:"oP",f:["vec2"],e:!1},{a:"node_in",c:"oQ",f:["vec3"],e:!1},{a:"node_in",c:"oR",f:["float"],e:!1},{a:"node_in",c:"oS",f:["vec2"],e:!1},{a:"node_out",c:"oT",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oO , k . xyz ) ; oQ = cross ( os , k . xyz ) ; oQ = - normalize ( oQ ) ;".split(" ")}]}]},{a:"txt", b:"oT = _0_0 ; if ( oP . r != _0_0 ) { float ot = ( _1_0 - oR ) * dot ( oQ , oO ) + oR ; float oF = max ( dot ( oQ , nI ) , _0_0 ) ; if ( oS [ 0 ] <= _1_0 ) oT = ot * pow ( max ( oF * ot , 0.1 ) , oS [ 0 ] - _1_0 ) ; else oT = ot * pow ( 1.0001 - oF , oS [ 0 ] - _1_0 ) ; oT = max ( oT , _0_0 ) ; }".split(" ")}]},{a:"node",c:"DIFFUSE_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"oU",f:["vec3"],e:!1},{a:"node_in",c:"oV",f:["vec2"],e:!1},{a:"node_in",c:"oW",f:["vec3"],e:!1}, {a:"node_in",c:"oX",f:["float"],e:!1},{a:"node_in",c:"oY",f:["vec2"],e:!1},{a:"node_out",c:"oZ",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"vec3 os = cross ( oU , k . xyz ) ; oW = cross ( os , k . xyz ) ; oW = - normalize ( oW ) ;".split(" ")}]}]},{a:"txt",b:"oZ = _0_0 ; if ( oV . r != _0_0 ) { float ot = ( _1_0 - oX ) * dot ( oW , oU ) + oX ; float o_ = acos ( ot ) ; if ( o_ < oY [ 0 ] ) oZ = _1_0 ; else if ( o_ > ( oY [ 0 ] + oY [ 1 ] ) || oY [ 1 ] == _0_0 ) oZ = _0_0 ; else oZ = _1_0 - ( ( o_ - oY [ 0 ] ) / oY [ 1 ] ) ; oZ = max ( oZ , _0_0 ) ; }".split(" ")}]}, {a:"node",c:"SPECULAR_PHONG",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pa",f:["vec3"],e:!1},{a:"node_in",c:"pb",f:["vec2"],e:!1},{a:"node_in",c:"pc",f:["vec3"],e:!1},{a:"node_in",c:"pd",f:["float"],e:!1},{a:"node_in",c:"pe",f:["vec2"],e:!1},{a:"node_out",c:"pf",f:["float"],e:!1}],j:[{a:"txt",b:"pf = _0_0 ; if ( pb . g == _1_0 ) { vec3 pg = normalize ( pa + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pd == _0_0 ) { pf = dot ( k . xyz , pg ) ; pf = sqrt ( _1_0 - pf * pf ) ; }".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"pf = ( _1_0 - pd ) * max ( dot ( pc , pg ) , _0_0 ) + pd ;".split(" ")}]}]},{a:"txt",b:"pf = pow ( pf , pe [ 0 ] ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_COOKTORR",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"ph",f:["vec3"],e:!1},{a:"node_in",c:"pi",f:["vec2"],e:!1},{a:"node_in",c:"pj",f:["vec3"],e:!1},{a:"node_in",c:"pk",f:["float"],e:!1},{a:"node_in",c:"pl",f:["vec2"],e:!1},{a:"node_out",c:"pm",f:["float"],e:!1}],j:[{a:"txt",b:"pm = _0_0 ; if ( pi . g != _0_0 ) { vec3 pg = normalize ( ph + nI ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"if ( pk == _0_0 ) { pm = dot ( B . xyz , pg ) ; pm = sqrt ( _1_0 - pm * pm ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"pm = max ( dot ( pj , pg ) , _0_0 ) ; pm = ( _1_0 - pk ) * pm + pk ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float oF = max ( dot ( B . xyz , nI ) , _0_0 ) ; oF = sqrt ( _1_0 - oF * oF ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float oF = max ( dot ( pj , nI ) , _0_0 ) ;".split(" ")}]}]}, {a:"txt",b:"pm = pow ( pm , pl [ 0 ] ) ; pm = pm / ( 0.1 + oF ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_WARDISO",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pn",f:["vec3"],e:!1},{a:"node_in",c:"po",f:["vec2"],e:!1},{a:"node_in",c:"pr",f:["vec3"],e:!1},{a:"node_in",c:"pu",f:["float"],e:!1},{a:"node_in",c:"pv",f:["vec2"],e:!1},{a:"node_out",c:"pw",f:["float"],e:!1}],j:[{a:"txt",b:"pw = _0_0 ; if ( po . g == _1_0 ) { vec3 pg = normalize ( pn + nI ) ;".split(" ")},{a:"node_cond", d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = _0_0 ; float oF = _0_0 ; float py = _0_0 ; if ( pu == _0_0 ) { px = dot ( k . xyz , pg ) ; oF = dot ( k . xyz , nI ) ; py = dot ( k . xyz , pn ) ; px = sqrt ( _1_0 - px * px ) ; oF = sqrt ( _1_0 - oF * oF ) ; py = sqrt ( _1_0 - py * py ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = max ( dot ( pr , pg ) , 0.01 ) ; float oF = max ( dot ( pr , nI ) , 0.01 ) ; float py = max ( dot ( pr , pn ) , 0.01 ) ;".split(" ")}]}]}, {a:"txt",b:"float bm = tan ( acos ( px ) ) ; float J = max ( pv [ 0 ] , 0.01 ) ; pw = py * ( _1_0 / ( 4.0 * M_PI * J * J ) ) * ( exp ( - ( bm * bm ) / ( J * J ) ) / ( sqrt ( oF * py ) ) ) ; }".split(" ")}]},{a:"node",c:"SPECULAR_TOON",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pz",f:["vec3"],e:!1},{a:"node_in",c:"pA",f:["vec2"],e:!1},{a:"node_in",c:"pB",f:["vec3"],e:!1},{a:"node_in",c:"pC",f:["float"],e:!1},{a:"node_in",c:"pD",f:["vec2"],e:!1},{a:"node_out",c:"pE",f:["float"], e:!1}],j:[{a:"txt",b:"pE = _0_0 ; if ( pA . g == _1_0 ) { vec3 bO = normalize ( pz + nI ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float pF = dot ( bO , k . xyz ) ; float bm = pD [ 0 ] + pD [ 1 ] ; if ( pC == _0_0 ) bm = acos ( sqrt ( _1_0 - pF * pF ) ) ;".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float bm = acos ( dot ( bO , pB ) ) ;".split(" ")}]}]},{a:"txt",b:"if ( bm < pD [ 0 ] ) pE = _1_0 ; else if ( bm >= pD [ 0 ] + pD [ 1 ] || pD [ 1 ] == _0_0 ) pE = _0_0 ; else pE = _1_0 - ( bm - pD [ 0 ] ) / pD [ 1 ] ; }".split(" ")}]}, {a:"node",c:"SPECULAR_BLINN",m:[{a:"node_var",c:"MAT_USE_TBN_SHADING",b:["0"]}],l:[{a:"node_in",c:"pG",f:["vec3"],e:!1},{a:"node_in",c:"pH",f:["vec2"],e:!1},{a:"node_in",c:"pI",f:["vec3"],e:!1},{a:"node_in",c:"pJ",f:["float"],e:!1},{a:"node_in",c:"pK",f:["vec2"],e:!1},{a:"node_out",c:"pL",f:["float"],e:!1}],j:[{a:"txt",b:"pL = _0_0 ; if ( pH . g == _1_0 ) { if ( pK [ 0 ] < 1.0 || pK [ 1 ] == _0_0 ) pL = _0_0 ; else { if ( pK [ 1 ] < 100.0 ) pK [ 1 ] = sqrt ( 1.0 / pK [ 1 ] ) ; else pK [ 1 ] = 10.0 / pK [ 1 ] ; vec3 pg = normalize ( nI + pG ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["MAT_USE_TBN_SHADING"],j:[{a:"txt",b:"float px = 0.0 ; if ( pJ == _0_0 ) { float pO = dot ( k . xyz , pg ) ; px = sqrt ( _1_0 - pO * pO ) ; }".split(" ")}]},{a:"node_else",j:[{a:"txt",b:"float px = ( _1_0 - pJ ) * max ( dot ( pI , pg ) , _0_0 ) + pJ ;".split(" ")}]}]},{a:"txt",b:"if ( px < _0_0 ) pL = _0_0 ; else { float oF = max ( dot ( pI , nI ) , 0.01 ) ; float py = dot ( pI , pG ) ; if ( py <= 0.01 ) pL = _0_0 ; else { float pP = max ( dot ( nI , pg ) , 0.01 ) ; float a = _1_0 ; float b = ( 2.0 * px * oF ) / pP ; float da = ( 2.0 * px * py ) / pP ; float g = min ( min ( a , b ) , da ) ; float p = sqrt ( pow ( pK [ 0 ] , 2.0 ) + pow ( pP , 2.0 ) - _1_0 ) ; float lw = pow ( p - pP , 2.0 ) / pow ( p + pP , 2.0 ) * ( _1_0 + pow ( pP * ( p + pP ) - _1_0 , 2.0 ) / pow ( pP * ( p - pP ) + _1_0 , 2.0 ) ) ; float o_ = acos ( px ) ; pL = max ( lw * g * exp ( - pow ( o_ , 2.0 ) / ( 2.0 * pow ( pK [ 1 ] , 2.0 ) ) ) , _0_0 ) ; } } } }".split(" ")}]}, {a:"node",c:"LIGHTING_APPLY",m:[],l:[{a:"node_in",c:"pQ",f:["vec4"],e:!1},{a:"node_in",c:"pR",f:["vec3"],e:!1},{a:"node_in",c:"pS",f:["float"],e:!1},{a:"node_in",c:"pT",f:["float"],e:!1},{a:"node_in",c:"pU",f:["vec3"],e:!1},{a:"node_in",c:"pV",f:["vec3"],e:!1},{a:"node_in",c:"pW",f:["vec4"],e:!1},{a:"node_in",c:"pX",f:["vec3"],e:!1},{a:"node_in",c:"pY",f:["vec3"],e:!1},{a:"node_in",c:"pZ",f:["vec3"],e:!1},{a:"node_in",c:"p_",f:["float"],e:!1},{a:"node_out",c:"qa",f:["vec4"],e:!1},{a:"node_out",c:"qb", f:["vec3"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_NODE_B4W_TRANSLUCENCY"],j:[{a:"txt",b:"if ( dot ( pU , pV ) * dot ( nI , pV ) < _0_0 ) { float BY = pW . x ; float BZ = pW . y ; float B_ = pW . z ; float Ca = pW . w ; float Cb = clamp ( abs ( dot ( pU , pV ) ) , _0_0 , _1_0 ) ; float Cc = clamp ( dot ( nI , - pU ) , _0_0 , _1_0 ) ; float Cd = pow ( Cc , BZ ) ; qa = pQ + p_ * vec4 ( pZ * Cb * pow ( pX , vec3 ( BY ) ) , _1_0 ) ; qa += B_ * mix ( vec4 ( pX , _1_0 ) , vec4 ( _1_0 ) , Ca ) * p_ * vec4 ( pZ * Cb * vec3 ( Cd ) , _1_0 ) ; qb = pR ; } else { qb = pR + pZ * pY * pT ; qa = pQ + vec4 ( pZ * pX * pS , pT ) ; }".split(" ")}]}, {a:"node_else",j:[{a:"txt",b:"qb = pR + pZ * pY * pT ; qa = pQ + vec4 ( pZ * pX * pS , pT ) ;".split(" ")}]}]}]},{a:"node",c:"RGB",m:[{a:"node_var",c:"RGB_IND",b:["0"]}],l:[{a:"node_out",c:"Ce",f:["vec3"],e:!1}],j:[{a:"txt",b:"Ce = u_node_rgbs [ RGB_IND ] ;".split(" ")}]},{a:"node",c:"RGBTOBW",m:[],l:[{a:"node_in",c:"Cf",f:["vec3"],e:!1},{a:"node_out",c:"Cg",f:["float"],e:!1}],j:[{a:"txt",b:"Cg = dot ( Cf , vec3 ( 0.35 , 0.45 , 0.2 ) ) ;".split(" ")}]},{a:"node",c:"SEPRGB",m:[],l:[{a:"node_in",c:"Ch", f:["vec3"],e:!1},{a:"node_out",c:"Ci",f:["float"],e:!0},{a:"node_out",c:"Cj",f:["float"],e:!0},{a:"node_out",c:"Ck",f:["float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ci"],j:[{a:"txt",b:"Ci = Ch . r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cj"],j:[{a:"txt",b:"Cj = Ch . g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ck"],j:[{a:"txt",b:"Ck = Ch . b ;".split(" ")}]}]}]},{a:"node",c:"SEPHSV",m:[],l:[{a:"node_in",c:"Cl",f:["vec3"],e:!1},{a:"node_out", c:"Cm",f:["float"],e:!0},{a:"node_out",c:"Cn",f:["float"],e:!0},{a:"node_out",c:"Co",f:["float"],e:!0}],j:[{a:"txt",b:"vec3 Cp = jy ( Cl ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cm"],j:[{a:"txt",b:"Cm = Cp . r ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Cn"],j:[{a:"txt",b:"Cn = Cp . g ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Co"],j:[{a:"txt",b:"Co = Cp . b ;".split(" ")}]}]}]},{a:"node",c:"SQUEEZE",m:[],l:[{a:"node_in",c:"Cq",f:["float"],e:!1}, {a:"node_in",c:"Cr",f:["float"],e:!1},{a:"node_in",c:"Cs",f:["float"],e:!1},{a:"node_out",c:"Ct",f:["float"],e:!1}],j:[{a:"txt",b:"Ct = _1_0 / ( _1_0 + pow ( 2.71828183 , - ( Cq - Cs ) * Cr ) ) ;".split(" ")}]},{a:"node",c:"GAMMA",m:[],l:[{a:"node_in",c:"Cu",f:["vec3"],e:!1},{a:"node_in",c:"Cv",f:["float"],e:!1},{a:"node_out",c:"Cw",f:["vec3"],e:!1}],j:[{a:"txt",b:"Cw = Cu ; if ( Cw . x > _0_0 ) Cw . x = pow ( Cu . x , Cv ) ; if ( Cw . y > _0_0 ) Cw . y = pow ( Cu . y , Cv ) ; if ( Cw . z > _0_0 ) Cw . z = pow ( Cu . z , Cv ) ;".split(" ")}]}, {a:"node",c:"B4W_SRGB_TO_LINEAR",m:[],l:[{a:"node_in",c:"Cx",f:["vec3"],e:!1},{a:"node_out",c:"Cy",f:["vec3"],e:!1}],j:[{a:"txt",b:"Cy = max ( vec3 ( _0_0 ) , Cx ) ; Cy = pow ( Cy , vec3 ( 2.2 ) ) ;".split(" ")}]},{a:"node",c:"B4W_LINEAR_TO_SRGB",m:[],l:[{a:"node_in",c:"Cz",f:["vec3"],e:!1},{a:"node_out",c:"CA",f:["vec3"],e:!1}],j:[{a:"txt",b:"CA = max ( vec3 ( _0_0 ) , Cz ) ; CA = pow ( CA , vec3 ( _1_0 / 2.2 ) ) ;".split(" ")}]},{a:"node",c:"TEXTURE_EMPTY",m:[],l:[{a:"node_out",c:"CB",f:["vec3"], e:!1},{a:"node_out",c:"CC",f:["vec3"],e:!1},{a:"node_out",c:"CD",f:["float"],e:!1}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CB"],j:[{a:"txt",b:"CB [ 2 ] = CB [ 1 ] = CB [ 0 ] = _0_0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CC"],j:[{a:"txt",b:"CC [ 2 ] = CC [ 1 ] = CC [ 0 ] = _0_0 ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CD"],j:[{a:"txt",b:["CD","=","_0_0",";"]}]}]}]},{a:"node",c:"TEXTURE_ENVIRONMENT",m:[],l:[{a:"node_in",c:"CE",f:["vec3"],e:!1},{a:"node_out", c:"CF",f:["vec3"],e:!0},{a:"node_out",c:"CG",f:["float"],e:!0},{a:"node_param",c:"node_TEXTURE_ENVIRONMENT_var_texture",f:["uniform","samplerCube"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE_CUBE ( node_TEXTURE_ENVIRONMENT_var_texture , CE ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CF"],j:[{a:"txt",b:"CF = yM . xyz ; bY ( CF ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CG"],j:[{a:"txt",b:"CG = yM . w ;".split(" ")}]}]}]},{a:"node",c:"TEXTURE_COLOR",m:[{a:"node_var", c:"NON_COLOR",b:["0"]},{a:"node_var",c:"USE_uv2",b:["0"]},{a:"node_var",c:"USE_uv3",b:["0"]},{a:"node_var",c:"USE_uv4",b:["0"]}],l:[{a:"node_in",c:"CI",f:["vec3"],e:!0},{a:"node_in",c:"CJ",f:["vec3"],e:!0},{a:"node_in",c:"CK",f:["vec3"],e:!0},{a:"node_in",c:"CL",f:["vec3"],e:!0},{a:"node_out",c:"CM",f:["vec3"],e:!0},{a:"node_out",c:"CN",f:["float"],e:!0},{a:"node_out",c:"CO",f:["vec3"],e:!0},{a:"node_out",c:"CP",f:["float"],e:!0},{a:"node_out",c:"CQ",f:["vec3"],e:!0},{a:"node_out",c:"CR",f:["float"], e:!0},{a:"node_out",c:"CS",f:["vec3"],e:!0},{a:"node_out",c:"CT",f:["float"],e:!0},{a:"node_param",c:"node_TEXTURE_COLOR_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CI ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CM"],j:[{a:"txt",b:"CM = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CM",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if", g:["USE_OUT_CN"],j:[{a:"txt",b:"CN = yM . w ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv2"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CJ ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CO"],j:[{a:"txt",b:"CO = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CO",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CP"],j:[{a:"txt",b:"CP = yM . w ;".split(" ")}]}]}]}]}, {a:"node_cond",d:[{a:"node_if",g:["USE_uv3"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CK ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CQ"],j:[{a:"txt",b:"CQ = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CQ",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CR"],j:[{a:"txt",b:"CR = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv4"],j:[{a:"txt", b:"yM = GLSL_TEXTURE ( node_TEXTURE_COLOR_var_texture , qQ ( CL ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CS"],j:[{a:"txt",b:"CS = yM . xyz ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["NON_COLOR",{a:"logic_negative_expr",i:1}],j:[{a:"txt",b:["bY","(","CS",")",";"]}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CT"],j:[{a:"txt",b:"CT = yM . w ;".split(" ")}]}]}]}]}]},{a:"node",c:"TEXTURE_NORMAL",m:[{a:"node_var",c:"USE_uv2",b:["0"]},{a:"node_var",c:"USE_uv3",b:["0"]}, {a:"node_var",c:"USE_uv4",b:["0"]}],l:[{a:"node_in",c:"CU",f:["vec3"],e:!0},{a:"node_in",c:"CV",f:["vec3"],e:!0},{a:"node_in",c:"CW",f:["vec3"],e:!0},{a:"node_in",c:"CX",f:["vec3"],e:!0},{a:"node_out",c:"CY",f:["vec3"],e:!0},{a:"node_out",c:"CZ",f:["float"],e:!0},{a:"node_out",c:"C_",f:["vec3"],e:!0},{a:"node_out",c:"Da",f:["float"],e:!0},{a:"node_out",c:"Db",f:["vec3"],e:!0},{a:"node_out",c:"Dc",f:["float"],e:!0},{a:"node_out",c:"Dd",f:["vec3"],e:!0},{a:"node_out",c:"De",f:["float"],e:!0},{a:"node_param", c:"node_TEXTURE_NORMAL_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"txt",b:"vec4 yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CU ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CY"],j:[{a:"txt",b:"CY = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_CZ"],j:[{a:"txt",b:"CZ = yM . w ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv2"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CV ) ) ;".split(" ")}, {a:"node_cond",d:[{a:"node_if",g:["USE_OUT_C_"],j:[{a:"txt",b:"C_ = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Da"],j:[{a:"txt",b:"Da = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv3"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CW ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Db"],j:[{a:"txt",b:"Db = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond", d:[{a:"node_if",g:["USE_OUT_Dc"],j:[{a:"txt",b:"Dc = yM . w ;".split(" ")}]}]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_uv4"],j:[{a:"txt",b:"yM = GLSL_TEXTURE ( node_TEXTURE_NORMAL_var_texture , qQ ( CX ) ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dd"],j:[{a:"txt",b:"Dd = normalize ( rm * ( yM . xyz - _0_5 ) ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_De"],j:[{a:"txt",b:"De = yM . w ;".split(" ")}]}]}]}]}]},{a:"node",c:"VALUE",m:[{a:"node_var",c:"VALUE_IND", b:["0"]}],l:[{a:"node_out",c:"Df",f:["float"],e:!1}],j:[{a:"txt",b:"Df = u_node_values [ VALUE_IND ] ;".split(" ")}]},{a:"node",c:"VECT_MATH_ADD",m:[],l:[{a:"node_in",c:"Dg",f:["vec3"],e:!1},{a:"node_in",c:"Dh",f:["vec3"],e:!1},{a:"node_out",c:"Di",f:["vec3"],e:!1},{a:"node_out",c:"Dj",f:["float"],e:!0}],j:[{a:"txt",b:"Di = Dg + Dh ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dj"],j:[{a:"txt",b:"Dj = ( abs ( Di [ 0 ] ) + abs ( Di [ 1 ] ) + abs ( Di [ 2 ] ) ) / 3.0 ;".split(" ")}]}]}]}, {a:"node",c:"VECT_MATH_SUBTRACT",m:[],l:[{a:"node_in",c:"Dk",f:["vec3"],e:!1},{a:"node_in",c:"Dl",f:["vec3"],e:!1},{a:"node_out",c:"Dm",f:["vec3"],e:!1},{a:"node_out",c:"Dn",f:["float"],e:!0}],j:[{a:"txt",b:"Dm = Dk - Dl ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dn"],j:[{a:"txt",b:"Dn = ( abs ( Dm [ 0 ] ) + abs ( Dm [ 1 ] ) + abs ( Dm [ 2 ] ) ) / 3.0 ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_AVERAGE",m:[],l:[{a:"node_in",c:"Do",f:["vec3"],e:!1},{a:"node_in",c:"Dp",f:["vec3"],e:!1}, {a:"node_out",c:"Dq",f:["vec3"],e:!1},{a:"node_out",c:"Dr",f:["float"],e:!0}],j:[{a:"txt",b:"Dq = Do + Dp ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dr"],j:[{a:"txt",b:"Dr = length ( Dq ) ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dq"],j:[{a:"txt",b:"Dq = normalize ( Dq ) ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_DOT_PRODUCT",m:[],l:[{a:"node_in",c:"Ds",f:["vec3"],e:!1},{a:"node_in",c:"Dt",f:["vec3"],e:!1},{a:"node_out",c:"Du",f:["vec3"],e:!1},{a:"node_out",c:"Dv", f:["float"],e:!0}],j:[{a:"txt",b:"Du = vec3 ( _0_0 ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dv"],j:[{a:"txt",b:"Dv = dot ( Ds , Dt ) ;".split(" ")}]}]}]},{a:"node",c:"VECT_MATH_CROSS_PRODUCT",m:[],l:[{a:"node_in",c:"Dw",f:["vec3"],e:!1},{a:"node_in",c:"Dx",f:["vec3"],e:!1},{a:"node_out",c:"Dy",f:["vec3"],e:!1},{a:"node_out",c:"Dz",f:["float"],e:!0}],j:[{a:"txt",b:"Dy = cross ( Dw , Dx ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Dz"],j:[{a:"txt",b:"Dz = length ( Dy ) ;".split(" ")}]}]}]}, {a:"node",c:"VECT_MATH_NORMALIZE",m:[],l:[{a:"node_in",c:"DA",f:["vec3"],e:!1},{a:"node_in",c:"DB",f:["vec3"],e:!1},{a:"node_out",c:"DC",f:["vec3"],e:!1},{a:"node_out",c:"DD",f:["float"],e:!0}],j:[{a:"txt",b:"DC = normalize ( DA ) ;".split(" ")},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_DD"],j:[{a:"txt",b:"DD = length ( DA ) ;".split(" ")}]}]},{a:"txt",b:["DB",";"]}]},{a:"node",c:"B4W_REFLECT",m:[],l:[{a:"node_in",c:"DH",f:["vec3"],e:!1},{a:"node_in",c:"DI",f:["vec3"],e:!1},{a:"node_out",c:"DJ", f:["vec3"],e:!1}],j:[{a:"txt",b:"DJ = reflect ( T ( u_view_tsr_inverse , DH ) , DI ) ;".split(" ")}]},{a:"node",c:"B4W_REFLECT_WORLD",m:[],l:[{a:"node_in",c:"DK",f:["vec3"],e:!1},{a:"node_out",c:"DL",f:["vec3"],e:!1}],j:[{a:"txt",b:"vec3 EY = - nI . xyz ; DL = reflect ( EY , DK ) ;".split(" ")}]},{a:"node",c:"B4W_PARALLAX",m:[],l:[{a:"node_in",c:"DM",f:["vec3"],e:!1},{a:"node_in",c:"DN",f:["float"],e:!1},{a:"node_in",c:"DO",f:["const","float"],e:!1},{a:"node_in",c:"DP",f:["const","float"],e:!1},{a:"node_out", c:"DQ",f:["vec3"],e:!1},{a:"node_param",c:"node_B4W_PARALLAX_var_texture",f:["uniform","sampler2D"],e:!1}],j:[{a:"txt",b:"float bp = length ( rn ) ; if ( bp < DP ) { vec2 bE = qQ ( DM ) ; float bI = clamp ( _0_5 * ( DP - bp ) , _0_0 , _1_0 ) ; float hk = DN * bI ; vec3 bK = normalize ( nI * rm ) ; float bL = _1_0 / DO ; vec2 bM = bK . xy * hk / ( DO * bK . z ) ; float bN = _1_0 ; float bO = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bE ) . a ; for ( float bQ = 1.0 ; bQ <= DO ; bQ ++ ) { if ( bO < bN ) { bN -= bL ; bE -= bM ; bO = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bE ) . a ; } } vec2 bR = bE + bM ; float bS = GLSL_TEXTURE ( node_B4W_PARALLAX_var_texture , bR ) . a - ( bN + bL ) ; float bT = bO - bN ; float bU = bT / ( bT - bS ) ; bE = bU * bR + ( _1_0 - bU ) * bE ; DQ = qP ( bE ) ; } else DQ = DM ;".split(" ")}]}, {a:"node",c:"B4W_CLAMP",m:[],l:[{a:"node_in",c:"DR",f:["vec3"],e:!1},{a:"node_out",c:"DS",f:["vec3"],e:!1}],j:[{a:"txt",b:"DS = clamp ( DR , _0_0 , _1_0 ) ;".split(" ")}]},{a:"node",c:"B4W_REFRACTION",m:[],l:[{a:"node_in",c:"DT",f:["vec3"],e:!1},{a:"node_in",c:"DU",f:["float"],e:!1},{a:"node_out",c:"DV",f:["vec3"],e:!1}],j:[{a:"txt",b:["DV","=","DT",";"]}]},{a:"node",c:"B4W_TRANSLUCENCY",m:[],l:[{a:"node_in",c:"DW",f:["float"],e:!1},{a:"node_in",c:"DX",f:["float"],e:!1},{a:"node_in",c:"DY",f:["float"], e:!1},{a:"node_in",c:"DZ",f:["float"],e:!1},{a:"node_in",c:"D_",f:["float"],e:!1},{a:"node_out",c:"Ea",f:["float"],e:!0},{a:"node_out",c:"Eb",f:["vec4"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Ea"],j:[{a:"txt",b:["Ea","=","DW",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["USE_OUT_Eb"],j:[{a:"txt",b:"Eb = vec4 ( DX , DY , DZ , D_ ) ;".split(" ")}]}]}]},{a:"node",c:"B4W_TIME",m:[],l:[{a:"node_out",c:"Ec",f:["float"],e:!1}],j:[{a:"txt",b:["Ec","=","u_time",";"]}]},{a:"node",c:"B4W_SMOOTHSTEP", m:[],l:[{a:"node_in",c:"Ed",f:["float"],e:!1},{a:"node_in",c:"Ee",f:["float"],e:!1},{a:"node_in",c:"Ef",f:["float"],e:!1},{a:"node_out",c:"Eg",f:["float"],e:!1}],j:[{a:"txt",b:"Eg = smoothstep ( Ee , Ef , Ed ) ;".split(" ")}]},{a:"node",c:"B4W_GLOW_OUTPUT",m:[],l:[{a:"node_in",c:"Eh",f:["vec3"],e:!1},{a:"node_in",c:"Ei",f:["float"],e:!1}],j:[{a:"txt",b:"D = Eh ; H = Ei ;".split(" ")}]},{a:"node",c:"B4W_VECTOSCAL",m:[],l:[{a:"node_in",c:"Ej",f:["vec3"],e:!1},{a:"node_out",c:"Ek",f:["float"],e:!1}], j:[{a:"txt",b:"Ek = ( Ej . r + Ej . g + Ej . b ) / 3.0 ;".split(" ")}]},{a:"node",c:"B4W_SCALTOVEC",m:[],l:[{a:"node_in",c:"El",f:["float"],e:!1},{a:"node_out",c:"Em",f:["vec3"],e:!1}],j:[{a:"txt",b:"Em [ 0 ] = El ; Em [ 1 ] = El ; Em [ 2 ] = El ;".split(" ")}]},{a:"nodes_global"},{a:"txt",b:"void I ( in vec3 nI , out vec3 D , out vec3 E , out vec3 F , out vec4 G , out float H ) { D = vec3 ( _0_0 ) ; E = vec3 ( _0_0 ) ; F = vec3 ( _0_0 ) ; G = vec4 ( _0_0 ) ; H = _0_0 ;".split(" ")},{a:"cond",d:[{a:"if", g:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO","USE_NODE_NORMAL_MAP","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{a:"logical_or_expr",i:11}],h:{a:"grp",d:[{a:"txt",b:"vec3 P = normalize ( j ) ; vec3 bF = P ;".split(" ")},{a:"cond",d:[{a:"if",g:["DOUBLE_SIDED_LIGHTING","USE_NODE_GEOMETRY_NO",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"if ( gl_FrontFacing == false )".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["if","(","gl_FrontFacing",")"]}]}}]},{a:"txt",b:"bF = bF ; else bF = - bF ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["DOUBLE_SIDED_LIGHTING"],h:{a:"grp",d:[{a:"txt",b:["vec3","nH","=","bF",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","nH","=","P",";"]}]}}]},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_NO"],h:{a:"grp",d:[{a:"txt",b:["vec3","rl","=","bF",";"]}]}}]}]}}]}, {a:"cond",d:[{a:"if",g:["CALC_TBN_SPACE"],h:{a:"grp",d:[{a:"txt",b:"vec3 R = cross ( bF , k . xyz ) * k . w ; R = normalize ( R ) ; vec3 Q = cross ( R , bF ) * k . w ; mat3 rm = mat3 ( Q , R , bF ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 nG = h ; vec4 rn = i ; float ro = u_emit ; float rp = u_ambient ;".split(" ")},{a:"nodes_main"},{a:"txt",b:["}"]}]}}]}]};a["include/particles_nodes.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PARTICLES_NODES_GLSLV",h:{a:"grp",d:[{a:"define",c:"PARTICLES_NODES_GLSLV", b:[""]},{a:"node",c:"TEX_COORD_UV",m:[],l:[],j:[{a:"txt",b:["A","=","Fd",";"]}]},{a:"node",c:"UV_MERGED",m:[],l:[],j:[{a:"txt",b:["A","=","Fd",";"]}]},{a:"node",c:"UVMAP",m:[],l:[],j:[{a:"txt",b:["A","=","Fd",";"]}]},{a:"node",c:"GEOMETRY_UV",m:[],l:[],j:[{a:"txt",b:["A","=","Fd",";"]}]},{a:"node",c:"PARTICLE_INFO",m:[{a:"node_var",c:"PART_INFO_SIZE",b:["0"]},{a:"node_var",c:"PART_INFO_AGE",b:["0"]},{a:"node_var",c:"PART_INFO_LT",b:["0"]},{a:"node_var",c:"PART_INFO_LOC",b:["0"]},{a:"node_var",c:"PART_INFO_IND", b:["0"]},{a:"node_var",c:"PART_INFO_VEL",b:["0"]},{a:"node_var",c:"PART_INFO_A_VEL",b:["0"]}],l:[{a:"node_param",c:"EK",f:["GLSL_OUT","vec4"],e:!0},{a:"node_param",c:"EL",f:["GLSL_OUT","vec3"],e:!0},{a:"node_param",c:"EM",f:["GLSL_OUT","vec3"],e:!0},{a:"node_param",c:"EN",f:["GLSL_OUT","vec3"],e:!0},{a:"node_param",c:"node_PARTICLE_INFO_var_a_p_indices",f:["GLSL_IN","float"],e:!0}],j:[{a:"node_cond",d:[{a:"node_if",g:["PART_INFO_SIZE"],j:[{a:"txt",b:"EK [ 3 ] = Fc ;".split(" ")}]}]},{a:"node_cond", d:[{a:"node_if",g:["PART_INFO_AGE"],j:[{a:"txt",b:"EK [ 1 ] = Fb ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["PART_INFO_LT"],j:[{a:"txt",b:"EK [ 2 ] = Fe ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["PART_INFO_LOC"],j:[{a:"txt",b:["EL","=","EZ",";"]}]}]},{a:"node_cond",d:[{a:"node_if",g:["PART_INFO_IND"],j:[{a:"txt",b:"EK [ 0 ] = node_PARTICLE_INFO_var_a_p_indices ;".split(" ")}]}]},{a:"node_cond",d:[{a:"node_if",g:["PART_INFO_VEL"],j:[{a:"txt",b:["EM","=","E_",";"]}]}]},{a:"node_cond", d:[{a:"node_if",g:["PART_INFO_A_VEL"],j:[{a:"txt",b:["EN","=","Fa",";"]}]}]}]},{a:"nodes_global"},{a:"txt",b:"void I ( in vec3 EZ , in vec3 E_ , in vec3 Fa , in float Fb , in float Fc , in vec2 Fd , in float Fe ) {".split(" ")},{a:"cond",d:[{a:"if",g:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["A","=","Fd",";"]}]}}]},{a:"nodes_main"},{a:"txt",b:["}"]}]}}]}]};a["include/precision_statement.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PRECISION_STATEMENT_GLSLF", h:{a:"grp",d:[{a:"define",c:"PRECISION_STATEMENT_GLSLF",b:[""]},{a:"var",c:"PRECISION",b:["highp"]},{a:"txt",b:["precision","PRECISION","float",";"]}]}}]}]};a["include/procedural.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"PROCEDURAL_GLSLF",h:{a:"grp",d:[{a:"define",c:"PROCEDURAL_GLSLF",b:[""]},{a:"txt",b:"vec4 Ff ( vec4 x ) { return x - floor ( x * ( _1_0 / 289.0 ) ) * 289.0 ; } vec3 Ff ( vec3 x ) { return x - floor ( x * ( _1_0 / 289.0 ) ) * 289.0 ; } vec2 Ff ( vec2 x ) { return x - floor ( x * ( _1_0 / 289.0 ) ) * 289.0 ; } vec4 Fg ( vec4 x ) { return x - floor ( x * ( _1_0 / 7.0 ) ) * 7.0 ; } vec4 Fh ( vec4 x ) { return Ff ( ( 34.0 * x + 5.0 ) * x ) ; }".split(" ")}, {a:"define",c:"K",b:["0.142857142857"]},{a:"define",c:"K2",b:["0.0714285714285"]},{a:"define",c:"JITTER",b:["0.7"]},{a:"txt",b:"vec2 eW ( vec2 Fi ) { vec2 Fj = Ff ( floor ( Fi ) ) ; vec2 Fk = fract ( Fi ) ; vec4 Fl = Fk . x + vec4 ( - 0.5 , - 1.5 , - 0.5 , - 1.5 ) ; vec4 Fm = Fk . y + vec4 ( - 0.5 , - 0.5 , - 1.5 , - 1.5 ) ; vec4 p = Fh ( Fj . x + vec4 ( _0_0 , _1_0 , _0_0 , _1_0 ) ) ; p = Fh ( p + Fj . y + vec4 ( _0_0 , _0_0 , _1_0 , _1_0 ) ) ; vec4 Fn = Fg ( p ) * K + K2 ; vec4 Fo = Fg ( floor ( p * K ) ) * K + K2 ; vec4 Fp = Fl + JITTER * Fn ; vec4 Fq = Fm + JITTER * Fo ; vec4 df = Fp * Fp + Fq * Fq ;".split(" ")}, {a:"cond",d:[{a:"if",g:[1],h:{a:"grp",d:[{a:"txt",b:"df . xy = min ( df . xy , df . zw ) ; df . x = min ( df . x , df . y ) ; return df . xx ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"df . xy = ( df . x < df . y ) ? df . xy : df . yx ; df . xz = ( df . x < df . z ) ? df . xz : df . zx ; df . xw = ( df . x < df . w ) ? df . xw : df . wx ; df . y = min ( df . y , df . z ) ; df . y = min ( df . y , df . w ) ; return sqrt ( df . xy ) ;".split(" ")}]}}]},{a:"txt",b:"} vec3 kp ( vec2 Fi , float Fr ) { vec2 Fj = Ff ( floor ( Fi ) ) ; vec2 Fk = fract ( Fi ) ; vec4 Fl = Fk . x + vec4 ( - 0.5 , - 1.5 , - 0.5 , - 1.5 ) ; vec4 Fm = Fk . y + vec4 ( - 0.5 , - 0.5 , - 1.5 , - 1.5 ) ; vec4 p = Fh ( Fj . x + vec4 ( _0_0 , _1_0 , _0_0 , _1_0 ) ) ; p = Fh ( p + Fj . y + vec4 ( _0_0 , _0_0 , _1_0 , _1_0 ) ) ; vec4 Fn = Fg ( p ) * K + K2 ; vec4 Fo = Fg ( floor ( p * K ) ) * K + K2 ; vec4 Fp = Fl + JITTER * Fn ; vec4 Fq = Fm + JITTER * Fo ; vec4 Fs = Fp * Fp + Fq * Fq ; Fp += Fr ; Fq += Fr ; vec4 Ft = Fp * Fp + Fq * Fq ; Fp += Fr ; Fq += Fr ; vec4 Fu = Fp * Fp + Fq * Fq ; Fs . xy = min ( Fs . xy , Fs . zw ) ; Fs . x = min ( Fs . x , Fs . y ) ; Ft . xy = min ( Ft . xy , Ft . zw ) ; Ft . x = min ( Ft . x , Ft . y ) ; Fu . xy = min ( Fu . xy , Fu . zw ) ; Fu . x = min ( Fu . x , Fu . y ) ; return vec3 ( Fs . x , Ft . x , Fu . x ) ; } vec3 Fv ( vec3 x ) { return Ff ( ( ( x * 34.0 ) + _1_0 ) * x ) ; } float eL ( vec2 ki ) { const vec4 Fw = vec4 ( 0.211324865405187 , 0.366025403784439 , - 0.577350269189626 , 0.024390243902439 ) ; vec2 bQ = floor ( ki + dot ( ki , Fw . yy ) ) ; vec2 Fx = ki - bQ + dot ( bQ , Fw . xx ) ; vec2 Fy ; Fy = ( Fx . x > Fx . y ) ? vec2 ( _1_0 , _0_0 ) : vec2 ( _0_0 , _1_0 ) ; vec4 Fz = Fx . xyxy + Fw . xxzz ; Fz . xy -= Fy ; bQ = Ff ( bQ ) ; vec3 p = Fv ( Fv ( bQ . y + vec3 ( _0_0 , Fy . y , _1_0 ) ) + bQ . x + vec3 ( _0_0 , Fy . x , _1_0 ) ) ; vec3 ap = max ( 0.5 - vec3 ( dot ( Fx , Fx ) , dot ( Fz . xy , Fz . xy ) , dot ( Fz . zw , Fz . zw ) ) , _0_0 ) ; ap = ap * ap ; ap = ap * ap ; vec3 x = 2.0 * fract ( p * Fw . www ) - _1_0 ; vec3 bO = abs ( x ) - 0.5 ; vec3 Fn = floor ( x + 0.5 ) ; vec3 FA = x - Fn ; ap *= 1.79284291400159 - 0.85373472095314 * ( FA * FA + bO * bO ) ; vec3 g ; g . x = FA . x * Fx . x + bO . x * Fx . y ; g . yz = FA . yz * Fz . xz + bO . yz * Fz . yw ; return 130.0 * dot ( ap , g ) ; } vec2 FD ( vec2 fm ) { float Fs = dot ( fm , vec2 ( 12.9898 , 78.233 ) ) ; float Ft = dot ( fm , vec2 ( 12.9898 , 78.233 ) * 2.0 ) ; float FB = fract ( sin ( Fs ) * 43758.5453 ) * 2.0 - _1_0 ; float FC = fract ( sin ( Ft ) * 43758.5453 ) * 2.0 - _1_0 ; return vec2 ( FB , FC ) ; }".split(" ")}]}}]}]}; a["include/refraction.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"REFRACTION_GLSLF",h:{a:"grp",d:[{a:"define",c:"REFRACTION_GLSLF",b:[""]},{a:"var",c:"REFRACTIVE",b:["0"]},{a:"var",c:"USE_REFRACTION_CORRECTION",b:["0"]},{a:"cond",d:[{a:"if",g:["REFRACTIVE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["USE_REFRACTION_CORRECTION"],h:{a:"grp",d:[{a:"include",o:"pack.glslf"}]}}]},{a:"include",o:"color_util.glslf"},{a:"cond",d:[{a:"if",g:["USE_REFRACTION_CORRECTION"],h:{a:"grp",d:[{a:"txt",b:"float el ( in float cw , inout vec2 ek , in vec2 dU ) { vec4 FE = GLSL_TEXTURE ( u_scene_depth , ek ) ; float em = cv ( FE ) ; if ( em < m ) { ek = dU ; return cw ; } else { return em ; } return cw ; }".split(" ")}]}}]}, {a:"txt",b:"vec3 cs ( in vec3 qy , in vec2 FF ) { vec2 dU = qy . xy / qy . z ; vec2 ek = dU + FF ;".split(" ")},{a:"cond",d:[{a:"if",g:["USE_REFRACTION_CORRECTION"],h:{a:"grp",d:[{a:"txt",b:"vec4 cu = GLSL_TEXTURE_PROJ ( u_scene_depth , qy ) ; float cw = cv ( cu ) ; el ( cw , ek , dU ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 eq = GLSL_TEXTURE ( u_refractmap , ek ) . rgb ; bY ( eq ) ; return eq ; }".split(" ")}]}}]}]}}]}]};a["include/scale_texcoord.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"SCALE_TEXCOORD_GLSLV", h:{a:"grp",d:[{a:"define",c:"SCALE_TEXCOORD_GLSLV",b:[""]},{a:"txt",b:"vec2 ao ( vec2 bE , vec3 FG ) { return ( bE + 0.5 ) * FG . xy - 0.5 ; }".split(" ")}]}}]}]};a["include/shadow.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"SHADOW_GLSLF",h:{a:"grp",d:[{a:"define",c:"SHADOW_GLSLF",b:[""]},{a:"var",c:"PRECISION",b:["highp"]},{a:"var",c:"SHADOW_TEX_RES",b:["2048.0"]},{a:"var",c:"CSM_FADE_LAST_CASCADE",b:["0"]},{a:"var",c:"CSM_BLEND_BETWEEN_CASCADES",b:["0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]}, {a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"var",c:"COMPARED_MODE",b:["0"]},{a:"var",c:"POISSON_DISK_NUM",b:["NO_SOFT_SHADOWS"]},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"procedural.glslf"}]}}]},{a:"cond",d:[{a:"if", g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"const float FH = 0.1 ; const float FI = 0.1 ; const float FJ = - 0.01 ; const float FK = 0.05 ;".split(" ")},{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","POISSON_X_16",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 FL = vec4 ( 0.14383161 , 0.34495938 , - 0.38277543 , - 0.26496911 ) ; vec4 FM = vec4 ( 0.53742981 , 0.19984126 , 0.79197514 , - 0.094184101 ) ; vec4 FN = vec4 ( - 0.94201624 , - 0.91588581 , - 0.2418884 , 0.44323325 ) ; vec4 FO = vec4 ( - 0.81544232 , 0.94558609 , - 0.81409955 , 0.97484398 ) ; vec4 FP = vec4 ( - 0.1410079 , 0.2938776 , 0.27676845 , - 0.41893023 ) ; vec4 FQ = vec4 ( - 0.4737342 , 0.78641367 , 0.19090188 , - 0.9293887 ) ; vec4 FR = vec4 ( - 0.39906216 , 0.45771432 , 0.99706507 , - 0.97511554 ) ; vec4 FS = vec4 ( - 0.87912464 , - 0.76890725 , 0.9143759 , 0.7564837 ) ;".split(" ")}]}}, {a:"elif",g:["POISSON_DISK_NUM","POISSON_X_8",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 FL = vec2 ( - 0.37192261 , 0.47109537 ) ; vec2 FM = vec2 ( - 0.6807477 , 0.69048062 ) ; vec2 FN = vec2 ( 0.11615683 , - 0.91318524 ) ; vec2 FO = vec2 ( 0.93688596 , - 0.16948928 ) ; vec2 FP = vec2 ( - 0.89699117 , 0.74092316 ) ; vec2 FQ = vec2 ( 0.38263656 , - 0.66119884 ) ; vec2 FR = vec2 ( - 0.08193062 , - 0.21275223 ) ; vec2 FS = vec2 ( 0.05578877 , 0.84225623 ) ;".split(" ")}]}},{a:"elif",g:["POISSON_DISK_NUM", "POISSON_X_4",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 FL = vec2 ( - 0.51808083 , 0.0 ) ; vec2 FM = vec2 ( 0.5741194 , 0.0 ) ; vec2 FN = vec2 ( - 0.68048857 , 0.0 ) ; vec2 FO = vec2 ( 0.82934988 , 0.0 ) ; vec2 FP = vec2 ( 0.70009436 , 0.0 ) ; vec2 FQ = vec2 ( - 0.78790467 , 0.0 ) ; vec2 FR = vec2 ( - 0.58619489 , 0.0 ) ; vec2 FS = vec2 ( 0.41902178 , 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"bool FU ( vec2 hZ , float FT ) { return all ( lessThanEqual ( hZ , vec2 ( 1.0 + FT ) ) ) && all ( greaterThanEqual ( hZ , vec2 ( 0.0 - FT ) ) ) ; } float Ga ( float FV , float FW , mat2 FX , vec3 FY , float FZ , PRECISION GLSL_SMPLR2D_SHDW F_ ) {".split(" ")}, {a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec2 hZ , eY ; eY . x = FV ; eY . y = FW ; eY = FX * eY ; hZ = FY . xy + eY * FZ / SHADOW_TEX_RES ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec2 hZ = FY . xy ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"if ( ! FU ( hZ , FJ ) ) return 1.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["COMPARED_MODE"],h:{a:"grp", d:[{a:"txt",b:"return GLSL_TEXTURE ( F_ , vec3 ( hZ , FY . z ) ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"return step ( FY . z , GLSL_TEXTURE ( F_ , hZ ) . r ) ;".split(" ")}]}}]},{a:"txt",b:"} float Gf ( vec3 FY , PRECISION GLSL_SMPLR2D_SHDW F_ , float FZ ) { float Gb = 0.0 ; FY . z = clamp ( FY . z , 0.0 , 1.0 ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float Gc = FD ( FY . xy ) . x * M_PI ; float Gd = cos ( Gc ) ; float Ge = sin ( Gc ) ; mat2 FX = mat2 ( Gd , Ge , - Ge , Gd ) ; for ( int bQ = 0 ; bQ < POISSON_DISK_NUM ; bQ ++ ) { Gb += Ga ( FL [ bQ ] , FP [ bQ ] , FX , FY , FZ , F_ ) ; Gb += Ga ( FM [ bQ ] , FQ [ bQ ] , FX , FY , FZ , F_ ) ; Gb += Ga ( FN [ bQ ] , FR [ bQ ] , FX , FY , FZ , F_ ) ; Gb += Ga ( FO [ bQ ] , FS [ bQ ] , FX , FY , FZ , F_ ) ; } return clamp ( Gb / ( float ( POISSON_DISK_NUM ) * 4.0 ) , 0.0 , 1.0 ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"return Ga ( 0.0 , 0.0 , mat2 ( 0.0 ) , FY , FZ , F_ ) ;".split(" ")}]}}]},{a:"txt",b:"} float Go ( vec3 Gg , PRECISION GLSL_SMPLR2D_SHDW Gh , vec3 Gi , PRECISION GLSL_SMPLR2D_SHDW Gj , float Gk , float Gl , float aB ) { float Gm , Gn ; Gg . z = clamp ( Gg . z , 0.0 , 1.0 ) ; Gi . z = clamp ( Gi . z , 0.0 , 1.0 ) ; Gm = 0.0 ; Gn = 0.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float Gc = FD ( Gg . xy ) . x * M_PI ; float Gd = cos ( Gc ) ; float Ge = sin ( Gc ) ; mat2 FX = mat2 ( Gd , Ge , - Ge , Gd ) ; for ( int bQ = 0 ; bQ < POISSON_DISK_NUM ; bQ ++ ) { Gm += Ga ( FL [ bQ ] , FP [ bQ ] , FX , Gg , Gk , Gh ) ; Gm += Ga ( FM [ bQ ] , FQ [ bQ ] , FX , Gg , Gk , Gh ) ; Gm += Ga ( FN [ bQ ] , FR [ bQ ] , FX , Gg , Gk , Gh ) ; Gm += Ga ( FO [ bQ ] , FS [ bQ ] , FX , Gg , Gk , Gh ) ; } for ( int bQ = 0 ; bQ < POISSON_DISK_NUM ; bQ ++ ) { Gn += Ga ( FL [ bQ ] , FP [ bQ ] , FX , Gi , Gl , Gj ) ; Gn += Ga ( FM [ bQ ] , FQ [ bQ ] , FX , Gi , Gl , Gj ) ; Gn += Ga ( FN [ bQ ] , FR [ bQ ] , FX , Gi , Gl , Gj ) ; Gn += Ga ( FO [ bQ ] , FS [ bQ ] , FX , Gi , Gl , Gj ) ; } Gm = mix ( Gm , Gn , aB ) ; Gm /= ( float ( POISSON_DISK_NUM ) * 4.0 ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"Gm += Ga ( 0.0 , 0.0 , mat2 ( 0.0 ) , Gg , Gk , Gh ) ; Gn += Ga ( 0.0 , 0.0 , mat2 ( 0.0 ) , Gi , Gl , Gj ) ; Gm = mix ( Gm , Gn , aB ) ;".split(" ")}]}}]},{a:"txt",b:"return clamp ( Gm , 0.0 , 1.0 ) ; } float Gp ( vec2 hZ ) { float a = min ( hZ . x , hZ . y ) ; float b = min ( 1.0 - hZ . x , 1.0 - hZ . y ) ; return min ( a , b ) ; } float Gr ( float tv , float Gq ) { if ( Gq >= 0.0 && Gq <= FI ) tv = ( tv - 1.0 ) / FI * Gq + 1.0 ; return tv ; } float Gw ( vec3 Gs , vec3 Gt , PRECISION GLSL_SMPLR2D_SHDW Gh , PRECISION GLSL_SMPLR2D_SHDW Gj , float Gk , float Gl , float Gu , float fN ) { float tv ;".split(" ")}, {a:"cond",d:[{a:"if",g:["CSM_BLEND_BETWEEN_CASCADES"],h:{a:"grp",d:[{a:"txt",b:"float Gq = Gp ( Gs . xy ) ; if ( - fN > Gu && Gq >= 0.0 && Gq <= FH && FU ( Gt . xy , 0.0 ) ) { float Gv = 1.0 - Gq / FH ; tv = Go ( Gs , Gh , Gt , Gj , Gk , Gl , Gv ) ; } else".split(" ")}]}}]},{a:"txt",b:"tv = Gf ( Gs , Gh , Gk ) ; return tv ; } float Gy ( vec3 Gx , PRECISION GLSL_SMPLR2D_SHDW F_ , float FZ , float Gu , float fN ) { float tv = Gf ( Gx , F_ , FZ ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["CSM_FADE_LAST_CASCADE"], h:{a:"grp",d:[{a:"txt",b:"if ( - fN > Gu ) { float Gq = Gp ( Gx . xy ) ; tv = Gr ( tv , Gq ) ; }".split(" ")}]}}]},{a:"txt",b:"return tv ; } vec4 dD ( float fN ) { float tv = 1.0 ;".split(" ")},{a:"cond",d:[{a:"if",g:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{a:"non_equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["vec4","Gz","=","u_pcf_blur_radii",";"]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 Gz = vec4 ( 0.0 ) ;".split(" ")}]}}]},{a:"txt",b:"vec3 Gg = n . xyz / n . w ; if ( n . w < 0.0 ) Gg . z = 0.0 ;".split(" ")}, {a:"cond",d:[{a:"if",g:["CSM_SECTION1","NUM_CAST_LAMPS",1,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 Gi = o . xyz / o . w ; if ( o . w < 0.0 ) Gi . z = 0.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2","NUM_CAST_LAMPS",2,{a:"g_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 GA = u . xyz / u . w ; if ( u . w < 0.0 ) GA . z = 0.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3","NUM_CAST_LAMPS",3,{a:"g_expr",i:2},{a:"logical_or_expr", i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 GB = v . xyz / v . w ; if ( v . w < 0.0 ) GB . z = 0.0 ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1"],h:{a:"grp",d:[{a:"txt",b:"if ( FU ( Gg . xy , 0.0 ) ) { tv = Gw ( Gg , Gi , u_shadow_map0 , u_shadow_map1 , Gz [ 0 ] , Gz [ 1 ] , u_csm_center_dists [ 0 ] , fN ) ; }".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"if ( FU ( Gg . xy , FK ) ) { tv = Gy ( Gg , u_shadow_map0 , Gz [ 0 ] , u_csm_center_dists [ 0 ] , fN ) ; }".split(" ")}]}}]},{a:"cond", d:[{a:"if",g:["CSM_SECTION1"],h:{a:"grp",d:[{a:"txt",b:"else { if ( FU ( Gi . xy , 0.0 ) ) {".split(" ")},{a:"cond",d:[{a:"if",g:["CSM_SECTION2"],h:{a:"grp",d:[{a:"txt",b:"tv = Gw ( Gi , GA , u_shadow_map1 , u_shadow_map2 , Gz [ 1 ] , Gz [ 2 ] , u_csm_center_dists [ 1 ] , fN ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"tv = Gy ( Gi , u_shadow_map1 , Gz [ 1 ] , u_csm_center_dists [ 1 ] , fN ) ;".split(" ")}]}}]},{a:"txt",b:["}"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2"],h:{a:"grp",d:[{a:"txt", b:"else { if ( FU ( GA . xy , 0.0 ) ) {".split(" ")},{a:"cond",d:[{a:"if",g:["CSM_SECTION3"],h:{a:"grp",d:[{a:"txt",b:"tv = Gw ( GA , GB , u_shadow_map2 , u_shadow_map3 , Gz [ 2 ] , Gz [ 3 ] , u_csm_center_dists [ 2 ] , fN ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"tv = Gy ( GA , u_shadow_map2 , Gz [ 2 ] , u_csm_center_dists [ 2 ] , fN ) ;".split(" ")}]}}]},{a:"txt",b:["}"]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3"],h:{a:"grp",d:[{a:"txt",b:"else { if ( FU ( GB . xy , 0.0 ) ) tv = Gy ( GB , u_shadow_map3 , Gz [ 3 ] , u_csm_center_dists [ 3 ] , fN ) ; }".split(" ")}]}}]}, {a:"txt",b:["}"]}]}}]},{a:"txt",b:["}"]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",1,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float GC = Gf ( Gi , u_shadow_map1 , Gz [ 0 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["float","GC","=","0.0",";"]}]}}]},{a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",2,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float GD = Gf ( GA , u_shadow_map2 , Gz [ 0 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["float","GD","=","0.0",";"]}]}}]},{a:"cond", d:[{a:"if",g:["NUM_CAST_LAMPS",3,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"float GE = Gf ( GB , u_shadow_map3 , Gz [ 0 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:["float","GE","=","1.0",";"]}]}}]},{a:"txt",b:"return vec4 ( tv , GC , GD , GE ) ; }".split(" ")}]}}]},{a:"txt",b:"vec4 ch ( inout vec3 cd ) {".split(" ")},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 Gb = GLSL_TEXTURE ( u_shadow_mask , l . xy / l . z ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",3,{a:"l_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"cd *= Gb . a ;".split(" ")}]}}]},{a:"txt",b:["return","Gb",";"]}]}},{a:"elif",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 Gb = dD ( i . z ) ; return Gb ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"return vec4 ( 1.0 ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]};a["include/shadow.glslv"]= {a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"SHADOW_GLSLV",h:{a:"grp",d:[{a:"define",c:"SHADOW_GLSLV",b:[""]},{a:"var",c:"MAC_OS_SHADOW_HACK",b:["0"]},{a:"var",c:"SHADOW_TEX_RES",b:["2048.0"]},{a:"var",c:"SHADOW_USAGE",b:["NO_SHADOWS"]},{a:"var",c:"NUM_CAST_LAMPS",b:["0"]},{a:"var",c:"CSM_SECTION1",b:["0"]},{a:"var",c:"CSM_SECTION2",b:["0"]},{a:"var",c:"CSM_SECTION3",b:["0"]},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{a:"equal_expr",i:2},"SHADOW_USAGE", "SHADOW_MAPPING_BLEND",{a:"equal_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"include",o:"math.glslv"},{a:"txt",b:"vec4 GI ( mat4 GF , vec4 GG , mat4 GH ) { vec2 dF = ( GF * GH [ 3 ] ) . xy ; float dG = SHADOW_TEX_RES / 2.0 ; dF = floor ( dF * dG + 0.5 ) / dG - dF ; vec4 FY = GF * GG ; FY . xy += dF ; FY . xyz = 0.5 * ( FY . xyz + FY . w ) ; return FY ; } void bD ( vec3 eD , vec3 GJ ) {".split(" ")},{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"mat4 GH = aR ( u_v_light_tsr [ 0 ] ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"mat4 GH = aR ( mat3 ( u_v_light_ts [ 0 ] , u_v_light_r [ 0 ] , 0.0 ) ) ;".split(" ")}]}}]},{a:"txt",b:"vec4 GK = GH * vec4 ( eD + u_normal_offset * GJ , 1.0 ) ; n = GI ( u_p_light_matrix0 , GK , GH ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",1,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"GH = aR ( u_v_light_tsr [ 1 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GH = aR ( mat3 ( u_v_light_ts [ 1 ] , u_v_light_r [ 1 ] , 0.0 ) ) ;".split(" ")}]}}]}, {a:"txt",b:"GK = GH * vec4 ( eD + u_normal_offset * GJ , 1.0 ) ; o = GI ( u_p_light_matrix1 , GK , GH ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",2,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"GH = aR ( u_v_light_tsr [ 2 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GH = aR ( mat3 ( u_v_light_ts [ 2 ] , u_v_light_r [ 2 ] , 0.0 ) ) ;".split(" ")}]}}]},{a:"txt",b:"GK = GH * vec4 ( eD + u_normal_offset * GJ , 1.0 ) ; u = GI ( u_p_light_matrix2 , GK , GH ) ;".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["NUM_CAST_LAMPS",3,{a:"g_expr",i:2}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MAC_OS_SHADOW_HACK"],h:{a:"grp",d:[{a:"txt",b:"GH = aR ( u_v_light_tsr [ 3 ] ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"GH = aR ( mat3 ( u_v_light_ts [ 3 ] , u_v_light_r [ 3 ] , 0.0 ) ) ;".split(" ")}]}}]},{a:"txt",b:"GK = GH * vec4 ( eD + u_normal_offset * GJ , 1.0 ) ; v = GI ( u_p_light_matrix3 , GK , GH ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION1"],h:{a:"grp",d:[{a:"txt", b:"o = GI ( u_p_light_matrix1 , GK , GH ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION2"],h:{a:"grp",d:[{a:"txt",b:"u = GI ( u_p_light_matrix2 , GK , GH ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["CSM_SECTION3"],h:{a:"grp",d:[{a:"txt",b:"v = GI ( u_p_light_matrix3 , GK , GH ) ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]}}]}]};a["include/skin.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"SKIN_GLSLV",h:{a:"grp",d:[{a:"define",c:"SKIN_GLSLV",b:[""]},{a:"var",c:"DISABLE_TANGENT_SKINNING", b:["0"]},{a:"var",c:"SKINNED",b:["0"]},{a:"var",c:"FRAMES_BLENDING",b:["0"]},{a:"cond",d:[{a:"if",g:["SKINNED"],h:{a:"grp",d:[{a:"include",o:"math.glslv"},{a:"define",c:"SKIN_SLERP",b:["0"]},{a:"cond",d:[{a:"if",g:["SKIN_SLERP"],h:{a:"grp",d:[{a:"txt",b:"vec4 GS ( in vec4 gI , in vec4 GL , in float GM ) { float GN = gI [ 0 ] * GL [ 0 ] + gI [ 1 ] * GL [ 1 ] + gI [ 2 ] * GL [ 2 ] + gI [ 3 ] * GL [ 3 ] ; if ( GN < 0.0 ) { GL *= - 1.0 ; GN = - GN ; } if ( abs ( GN ) >= 1.0 ) return gI ; float GO = acos ( GN ) ; float GP = sqrt ( 1.0 - GN * GN ) ; if ( abs ( GP ) < 0.001 ) return vec4 ( gI * 0.5 + GL * 0.5 ) ; float GQ = sin ( ( 1.0 - GM ) * GO ) / GP ; float GR = sin ( GM * GO ) / GP ; return gI * GQ + GL * GR ; }".split(" ")}]}}]}, {a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"vec3 Hf ( in vec3 N , in vec4 GT , in vec4 GU , in vec4 GV , in vec4 GW , in float GX ) { vec3 GY = ql ( u_arm_rel_trans , u_arm_rel_quat , N ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKIN_SLERP"],h:{a:"grp",d:[{a:"txt",b:"vec4 gI = GS ( GT , GU , GX ) ; vec4 GZ = mix ( GV , GW , GX ) ; vec3 G_ = O ( gI , GY ) ; vec3 Ha = G_ * GZ . w + GZ . xyz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Hb = O ( GT , GY ) ; vec3 Hc = O ( GU , GY ) ; vec3 Hd = Hb * GV . w + GV . xyz ; vec3 He = Hc * GW . w + GW . xyz ; vec3 Ha = mix ( Hd , He , GX ) ;".split(" ")}]}}]}, {a:"txt",b:"return qo ( u_arm_rel_trans , u_arm_rel_quat , Ha ) ; } vec3 Hl ( in vec3 Hg , in vec4 GT , in vec4 GU , in float GX ) { vec3 Hh = qn ( u_arm_rel_trans , u_arm_rel_quat , Hg ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["SKIN_SLERP"],h:{a:"grp",d:[{a:"txt",b:"vec4 gI = GS ( GT , GU , GX ) ; vec3 Hi = O ( gI , Hh ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Hj = O ( GT , Hh ) ; vec3 Hk = O ( GU , Hh ) ; vec3 Hi = mix ( Hj , Hk , GX ) ;".split(" ")}]}}]},{a:"txt",b:"return qr ( u_arm_rel_trans , u_arm_rel_quat , Hi ) ; }".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Hf ( in vec3 N , in vec4 GT , in vec4 GV ) { vec3 GY = ql ( u_arm_rel_trans , u_arm_rel_quat , N ) ; vec3 G_ = O ( GT , GY ) ; vec3 Ha = G_ * GV . w + GV . xyz ; return qo ( u_arm_rel_trans , u_arm_rel_quat , Ha ) ; } vec3 Hl ( in vec3 Hg , in vec4 GT ) { vec3 Hh = qn ( u_arm_rel_trans , u_arm_rel_quat , Hg ) ; vec3 Hi = O ( GT , Hh ) ; return qr ( u_arm_rel_trans , u_arm_rel_quat , Hi ) ; }".split(" ")}]}}]},{a:"txt",b:"void _ ( inout vec3 N , inout vec3 Q , inout vec3 R , inout vec3 P ) {".split(" ")}, {a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:["float","Hm","=","u_frame_factor",";"]}]}}]},{a:"txt",b:"if ( a_influence . y > 0.0 ) { vec3 iU = vec3 ( 0.0 , 0.0 , 0.0 ) ; vec3 Hn = vec3 ( 0.0 , 0.0 , 0.0 ) ; vec3 Ho = vec3 ( 0.0 , 0.0 , 0.0 ) ; vec3 Hp = vec3 ( 0.0 , 0.0 , 0.0 ) ; vec4 Hq = a_influence ; for ( int bQ = 0 ; bQ < 4 ; bQ ++ ) { int Hr = int ( Hq [ bQ ] ) ; float Hs = fract ( Hq [ bQ ] ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt", b:"Hn += Hs * Hl ( Q , u_quatsb [ Hr ] , u_quatsa [ Hr ] , Hm ) ; Ho += Hs * Hl ( R , u_quatsb [ Hr ] , u_quatsa [ Hr ] , Hm ) ; Hp += Hs * Hl ( P , u_quatsb [ Hr ] , u_quatsa [ Hr ] , Hm ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"iU += Hs * Hf ( N , u_quatsb [ Hr ] , u_transb [ Hr ] ) ; Hp += Hs * Hl ( P , u_quatsb [ Hr ] ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_TANGENT_SKINNING",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"Hn += Hs * Hl ( Q , u_quatsb [ Hr ] ) ; Ho += Hs * Hl ( R , u_quatsb [ Hr ] ) ;".split(" ")}]}}]}]}}]}, {a:"txt",b:["}"]},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"int Hr = int ( Hq [ 0 ] ) ; float Hs = fract ( Hq [ 0 ] ) ; iU += Hs * Hf ( N , u_quatsb [ Hr ] , u_quatsa [ Hr ] , u_transb [ Hr ] , u_transa [ Hr ] , Hm ) ; Hr = int ( Hq [ 1 ] ) ; Hs = fract ( Hq [ 1 ] ) ; iU += Hs * Hf ( N , u_quatsb [ Hr ] , u_quatsa [ Hr ] , u_transb [ Hr ] , u_transa [ Hr ] , Hm ) ; Hr = int ( Hq [ 2 ] ) ; Hs = fract ( Hq [ 2 ] ) ; iU += Hs * Hf ( N , u_quatsb [ Hr ] , u_quatsa [ Hr ] , u_transb [ Hr ] , u_transa [ Hr ] , Hm ) ; Hr = int ( Hq [ 3 ] ) ; Hs = fract ( Hq [ 3 ] ) ; iU += Hs * Hf ( N , u_quatsb [ Hr ] , u_quatsa [ Hr ] , u_transb [ Hr ] , u_transa [ Hr ] , Hm ) ;".split(" ")}]}}]}, {a:"txt",b:"N = iU ; P = Hp ;".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_TANGENT_SKINNING",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"Q = Hn ; R = Ho ;".split(" ")}]}}]},{a:"txt",b:"} if ( ! ( a_influence . y > 0.0 ) ) { int Ht = int ( a_influence [ 0 ] - 1.0 ) ; if ( Ht > - 1 ) {".split(" ")},{a:"cond",d:[{a:"if",g:["FRAMES_BLENDING"],h:{a:"grp",d:[{a:"txt",b:"N = Hf ( N , u_quatsb [ Ht ] , u_quatsa [ Ht ] , u_transb [ Ht ] , u_transa [ Ht ] , Hm ) ; Q = Hl ( Q , u_quatsb [ Ht ] , u_quatsa [ Ht ] , Hm ) ; R = Hl ( R , u_quatsb [ Ht ] , u_quatsa [ Ht ] , Hm ) ; P = Hl ( P , u_quatsb [ Ht ] , u_quatsa [ Ht ] , Hm ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"N = Hf ( N , u_quatsb [ Ht ] , u_transb [ Ht ] ) ; P = Hl ( P , u_quatsb [ Ht ] ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["DISABLE_TANGENT_SKINNING",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"Q = Hl ( Q , u_quatsb [ Ht ] ) ; R = Hl ( R , u_quatsb [ Ht ] ) ;".split(" ")}]}}]}]}}]},{a:"txt",b:["}","}","}"]}]}}]}]}}]}]};a["include/sky_blending.glslf"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"SKY_BLENDING_GLSLF",h:{a:"grp",d:[{a:"define",c:"SKY_BLENDING_GLSLF", b:[""]},{a:"include",o:"std.glsl"},{a:"include",o:"blending.glslf"},{a:"var",c:"WO_SKYREAL",b:["0"]},{a:"var",c:"WO_SKYBLEND",b:["0"]},{a:"var",c:"BLENDTYPE",b:["MIX"]},{a:"var",c:"MTEX_RGBTOINT",b:["0"]},{a:"var",c:"WOMAP_HORIZ",b:["0"]},{a:"var",c:"WOMAP_ZENUP",b:["0"]},{a:"var",c:"WOMAP_ZENDOWN",b:["0"]},{a:"var",c:"WOMAP_BLEND",b:["0"]},{a:"var",c:"MTEX_NEGATIVE",b:["0"]},{a:"txt",b:"vec3 Hu ( vec3 jB , vec3 jC , float aB , float ka ) { float jD = aB * ka ;".split(" ")},{a:"cond",d:[{a:"if",g:["BLENDTYPE", "MIX",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jE ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","ADD",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jF ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","SUBTRACT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jG ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","MULTIPLY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jI ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE", "SCREEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jJ ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","OVERLAY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jK ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","DIFFERENCE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jL ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","DIVIDE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jM ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE", "DARKEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jN ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","LIGHTEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jO ( jB , jC , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","HUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jS ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","SATURATION",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jT ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE", "VALUE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jU ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","COLOR",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jV ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","SOFT_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jX ( jC , jB , jD ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","LINEAR_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jY ( jC , jB , jD ) ;".split(" ")}]}}]},{a:"txt", b:"return vec3 ( 1.0 , 0.0 , 1.0 ) ; } float Hv ( float jZ , float j_ , float aB , float ka ) { vec3 jB = vec3 ( jZ ) , jC = vec3 ( j_ ) ; float jD = aB * ka ;".split(" ")},{a:"cond",d:[{a:"if",g:["BLENDTYPE","MIX",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jE ( jC , jB , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","ADD",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jF ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","SUBTRACT",{a:"equal_expr",i:2}],h:{a:"grp", d:[{a:"txt",b:"return jG ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","MULTIPLY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return kb ( jZ , j_ , jD , ka ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","SCREEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return kc ( jZ , j_ , jD , ka ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","OVERLAY",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return kd ( jZ , j_ , jD , ka ) ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","DIFFERENCE", {a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jL ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","DIVIDE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jM ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","DARKEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jN ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","LIGHTEN",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jO ( jB , jC , jD ) . x ;".split(" ")}]}},{a:"elif", g:["BLENDTYPE","SOFT_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jX ( jC , jB , jD ) . x ;".split(" ")}]}},{a:"elif",g:["BLENDTYPE","LINEAR_LIGHT",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"return jY ( jC , jB , jD ) . x ;".split(" ")}]}}]},{a:"txt",b:"return 0.0 ; } vec3 dN ( vec3 dJ , vec3 dK , vec4 dM , float dI , vec3 dL ) { float Hw = 1.0 ; Hw = dM . a ;".split(" ")},{a:"cond",d:[{a:"if",g:["MTEX_RGBTOINT"],h:{a:"grp",d:[{a:"txt",b:"Hw = ft ( dM ) ;".split(" ")}]}}]},{a:"cond", d:[{a:"if",g:["MTEX_NEGATIVE"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MTEX_RGBTOINT",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"dM = vec4 ( vec3 ( 1.0 ) - dM . rgb , dM . a ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"Hw = 1.0 - Hw ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WOMAP_HORIZ","WOMAP_ZENUP","WOMAP_ZENDOWN",{a:"logical_or_expr",i:3}],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MTEX_RGBTOINT"],h:{a:"grp",d:[{a:"txt",b:"dM = vec4 ( u_sky_tex_color , 1.0 ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"Hw = dM . a ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WOMAP_HORIZ"],h:{a:"grp",d:[{a:"txt",b:"dJ = Hu ( dM . rgb , dJ , Hw , u_sky_tex_fac [ 1 ] ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WOMAP_ZENUP","WOMAP_ZENDOWN",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:["float","Hx","=","0.0",";"]},{a:"cond",d:[{a:"if",g:["WO_SKYREAL"],h:{a:"grp",d:[{a:"txt",b:"if ( dot ( dL , vec3 ( 0.0 , 0.0 , 1.0 ) ) >= 0.0 ) {".split(" ")},{a:"cond",d:[{a:"if",g:["WOMAP_ZENUP"], h:{a:"grp",d:[{a:"txt",b:"Hx = u_sky_tex_fac [ 2 ] ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:[";"]}]}}]},{a:"txt",b:["}"]},{a:"cond",d:[{a:"if",g:["WOMAP_ZENDOWN"],h:{a:"grp",d:[{a:"txt",b:"else Hx = u_sky_tex_fac [ 3 ] ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["WOMAP_ZENUP"],h:{a:"grp",d:[{a:"txt",b:"Hx = u_sky_tex_fac [ 2 ] ;".split(" ")}]}},{a:"elif",g:["WOMAP_ZENDOWN"],h:{a:"grp",d:[{a:"txt",b:"Hx = u_sky_tex_fac [ 3 ] ;".split(" ")}]}}]}]}}]},{a:"txt", b:"if ( Hx != 0.0 ) dK = Hu ( dM . rgb , dK , Hw , Hx ) ;".split(" ")}]}}]}]}}]},{a:"cond",d:[{a:"if",g:["WOMAP_BLEND"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["MTEX_RGBTOINT",{a:"logic_negative_expr",i:1}],h:{a:"grp",d:[{a:"txt",b:"Hw = dot ( dM . rgb , vec3 ( 0.2126 , 0.7152 , 0.0722 ) ) ;".split(" ")}]}}]},{a:"txt",b:"dI = Hv ( u_sky_tex_dvar , dI , Hw , u_sky_tex_fac [ 0 ] ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["WO_SKYBLEND"],h:{a:"grp",d:[{a:"txt",b:"vec3 dH = mix ( dJ , dK , dI ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:["vec3","dH","=","dJ",";"]}]}}]},{a:"txt",b:["return","dH",";","}"]}]}}]}]};a["include/std.glsl"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"STD_ENUMS_GLSL",h:{a:"grp",d:[{a:"define",c:"STD_ENUMS_GLSL",b:[""]},{a:"var",c:"CONSTANTS_HACK",b:["0"]},{a:"define",c:"TEXTURE_COORDS_NONE",b:["0"]},{a:"define",c:"TEXTURE_COORDS_UV_ORCO",b:["1"]},{a:"define",c:"TEXTURE_COORDS_NORMAL",b:["2"]},{a:"define",c:"TEXTURE_BLEND_TYPE_MIX",b:["1"]},{a:"define",c:"TEXTURE_BLEND_TYPE_MULTIPLY", b:["2"]},{a:"define",c:"SHADOW_SRC_NONE",b:["1"]},{a:"define",c:"SHADOW_SRC_DEPTH",b:["2"]},{a:"define",c:"SHADOW_SRC_MASK",b:["3"]},{a:"define",c:"SHADOW_DST_NONE",b:["1"]},{a:"define",c:"SHADOW_DST_DEPTH",b:["2"]},{a:"define",c:"SHADOW_DST_MASK",b:["3"]},{a:"define",c:"NO_SHADOWS",b:["1"]},{a:"define",c:"SHADOW_CASTING",b:["2"]},{a:"define",c:"SHADOW_MASK_GENERATION",b:["3"]},{a:"define",c:"SHADOW_MAPPING_OPAQUE",b:["4"]},{a:"define",c:"SHADOW_MAPPING_BLEND",b:["5"]},{a:"define",c:"POISSON_X_16", b:["4"]},{a:"define",c:"POISSON_X_8",b:["2"]},{a:"define",c:"POISSON_X_4",b:["1"]},{a:"define",c:"NO_SOFT_SHADOWS",b:["0"]},{a:"define",c:"SPECULAR_PHONG",b:["1"]},{a:"define",c:"SPECULAR_COOKTORR",b:["2"]},{a:"define",c:"SPECULAR_WARDISO",b:["3"]},{a:"define",c:"SPECULAR_BLINN",b:["4"]},{a:"define",c:"SPECULAR_TOON",b:["5"]},{a:"define",c:"DIFFUSE_LAMBERT",b:["1"]},{a:"define",c:"DIFFUSE_OREN_NAYAR",b:["2"]},{a:"define",c:"DIFFUSE_FRESNEL",b:["3"]},{a:"define",c:"DIFFUSE_MINNAERT",b:["4"]},{a:"define", c:"DIFFUSE_TOON",b:["5"]},{a:"define",c:"MIX",b:["0"]},{a:"define",c:"ADD",b:["1"]},{a:"define",c:"SUBTRACT",b:["2"]},{a:"define",c:"MULTIPLY",b:["3"]},{a:"define",c:"SCREEN",b:["4"]},{a:"define",c:"OVERLAY",b:["5"]},{a:"define",c:"DIFFERENCE",b:["6"]},{a:"define",c:"DIVIDE",b:["7"]},{a:"define",c:"DARKEN",b:["8"]},{a:"define",c:"LIGHTEN",b:["9"]},{a:"define",c:"HUE",b:["10"]},{a:"define",c:"SATURATION",b:["11"]},{a:"define",c:"VALUE",b:["12"]},{a:"define",c:"COLOR",b:["13"]},{a:"define",c:"SOFT_LIGHT", b:["14"]},{a:"define",c:"LINEAR_LIGHT",b:["15"]},{a:"define",c:"REFL_NONE",b:["0"]},{a:"define",c:"REFL_MIRRORMAP",b:["1"]},{a:"define",c:"REFL_PLANE",b:["2"]},{a:"define",c:"REFL_CUBE",b:["3"]},{a:"define",c:"INVERSE_QUADRATIC",b:["0"]},{a:"define",c:"LINEAR",b:["1"]},{a:"define",c:"QUADRATIC",b:["2"]},{a:"define",c:"HEMI",b:["1"]},{a:"define",c:"SPOT",b:["2"]},{a:"define",c:"POINT",b:["3"]},{a:"define",c:"SUN",b:["4"]},{a:"define",c:"DOF_SIMPLE",b:["0"]},{a:"define",c:"DOF_BOKEH",b:["1"]},{a:"define", c:"COC_ALL",b:["0"]},{a:"define",c:"COC_FOREGROUND",b:["1"]},{a:"define",c:"COC_COMBINE",b:["2"]},{a:"define",c:"VT_WORLD_TO_WORLD",b:["0"]},{a:"define",c:"VT_WORLD_TO_OBJECT",b:["1"]},{a:"define",c:"VT_WORLD_TO_CAMERA",b:["2"]},{a:"define",c:"VT_OBJECT_TO_WORLD",b:["3"]},{a:"define",c:"VT_OBJECT_TO_OBJECT",b:["4"]},{a:"define",c:"VT_OBJECT_TO_CAMERA",b:["5"]},{a:"define",c:"VT_CAMERA_TO_WORLD",b:["6"]},{a:"define",c:"VT_CAMERA_TO_OBJECT",b:["7"]},{a:"define",c:"VT_CAMERA_TO_CAMERA",b:["8"]},{a:"define", c:"VT_POINT",b:["0"]},{a:"define",c:"VT_VECTOR",b:["1"]},{a:"define",c:"VT_NORMAL",b:["2"]},{a:"define",c:"NM_TANGENT",b:["0"]},{a:"define",c:"NM_OBJECT",b:["1"]},{a:"define",c:"NM_WORLD",b:["2"]},{a:"define",c:"NM_FDAGE_OBJECT",b:["3"]},{a:"define",c:"NM_FDAGE_WORLD",b:["4"]},{a:"define",c:"BILLBOARD_ALIGN_VIEW",b:["1"]},{a:"define",c:"BILLBOARD_ALIGN_XY",b:["2"]},{a:"define",c:"BILLBOARD_ALIGN_YZ",b:["3"]},{a:"define",c:"BILLBOARD_ALIGN_ZX",b:["4"]},{a:"define",c:"POST_EFFECT_NONE",b:["1"]}, {a:"define",c:"POST_EFFECT_GRAYSCALE",b:["2"]},{a:"define",c:"POST_EFFECT_BLUR",b:["3"]},{a:"define",c:"POST_EFFECT_GLOW_BLUR",b:["4"]},{a:"define",c:"POST_EFFECT_DOF_BLUR",b:["5"]},{a:"define",c:"POST_EFFECT_ALPHA_BLUR",b:["6"]},{a:"define",c:"POST_EFFECT_EXTEND",b:["7"]},{a:"define",c:"FLIP_CUBEMAP_COORDS",b:["8"]},{a:"define",c:"DV_NONE",b:["0"]},{a:"define",c:"DV_OPAQUE_WIREFRAME",b:["1"]},{a:"define",c:"DV_TRANSPARENT_WIREFRAME",b:["2"]},{a:"define",c:"DV_FRONT_BACK_VIEW",b:["3"]},{a:"define", c:"DV_BOUNDINGS",b:["4"]},{a:"define",c:"DV_CLUSTERS_VIEW",b:["5"]},{a:"define",c:"DV_BATCHES_VIEW",b:["6"]},{a:"define",c:"DV_RENDER_TIME",b:["7"]},{a:"define",c:"SSAO_QUALITY_8",b:["1"]},{a:"define",c:"SSAO_QUALITY_16",b:["2"]},{a:"define",c:"SSAO_QUALITY_24",b:["3"]},{a:"define",c:"SSAO_QUALITY_32",b:["4"]},{a:"define",c:"AA_METHOD_FXAA_LIGHT",b:["1"]},{a:"define",c:"AA_METHOD_FXAA_QUALITY",b:["2"]},{a:"define",c:"AA_QUALITY_LOW",b:["0"]},{a:"define",c:"AA_QUALITY_MEDIUM",b:["1"]},{a:"define", c:"AA_QUALITY_HIGH",b:["2"]},{a:"define",c:"SMAA_RESOLVE",b:["1"]},{a:"define",c:"SMAA_EDGE_DETECTION",b:["2"]},{a:"define",c:"SMAA_BLENDING_WEIGHT_CALCULATION",b:["3"]},{a:"define",c:"SMAA_NEIGHBORHOOD_BLENDING",b:["4"]},{a:"define",c:"AA_METHOD_SMAA_LOW",b:["1"]},{a:"define",c:"AA_METHOD_SMAA_MEDIUM",b:["2"]},{a:"define",c:"AA_METHOD_SMAA_HIGH",b:["3"]},{a:"define",c:"AA_METHOD_SMAA_ULTRA",b:["4"]},{a:"define",c:"REFL_PASS_NONE",b:["0"]},{a:"define",c:"REFL_PASS_PLANE",b:["1"]},{a:"define",c:"REFL_PASS_CUBE", b:["2"]},{a:"define",c:"SRGB_NONE",b:["0"]},{a:"define",c:"SRGB_SIMPLE",b:["1"]},{a:"define",c:"SRGB_PROPER",b:["2"]},{a:"define",c:"CAM_TYPE_ORTHO",b:["0"]},{a:"define",c:"CAM_TYPE_PERSP",b:["1"]},{a:"define",c:"M_PI",b:["3.14159265359"]},{a:"define",c:"M_PI_4",b:["0.785398163"]},{a:"define",c:"INV_PI",b:["0.318309886"]},{a:"define",c:"UP_VECTOR",b:"vec3 ( 0.0 , 0.0 , 1.0 )".split(" ")},{a:"define",c:"RIGHT_VECTOR",b:"vec3 ( 1.0 , 0.0 , 0.0 )".split(" ")},{a:"define",c:"TOWARD_VECTOR",b:"vec3 ( 0.0 , - 1.0 , 0.0 )".split(" ")}, {a:"cond",d:[{a:"if",g:["CONSTANTS_HACK"],h:{a:"grp",d:[{a:"txt",b:"float _0_0 = 0.0 ; float _0_5 = 0.5 ; float _1_0 = 1.0 ; float _255_0 = 255.0 ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"define",c:"_0_0",b:["0.0"]},{a:"define",c:"_0_5",b:["0.5"]},{a:"define",c:"_1_0",b:["1.0"]},{a:"define",c:"_255_0",b:["255.0"]}]}}]}]}}]}]};a["include/to_world.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"TO_WORLD_GLSLV",h:{a:"grp",d:[{a:"define",c:"TO_WORLD_GLSLV",b:[""]},{a:"include",o:"math.glslv"},{a:"var", c:"BILLBOARD_ALIGN",b:["BILLBOARD_ALIGN_VIEW"]},{a:"var",c:"USE_INSTANCED_PARTCLS",b:["0"]},{a:"var",c:"BILLBOARD_SPHERICAL",b:["0"]},{a:"var",c:"BILLBOARD_RANDOM",b:["0"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"var",c:"BILLBOARD_JITTERED",b:["0"]},{a:"var",c:"BILLBOARD_PRES_GLOB_ORIENTATION",b:["0"]},{a:"var",c:"STATIC_BATCH",b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"define",c:"MAX_BILLBOARD_ANGLE",b:["M_PI_4"]},{a:"cond",d:[{a:"if",g:["BILLBOARD_SPHERICAL","BILLBOARD",{a:"logic_negative_expr", i:1},"BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"mat3 aX ( vec3 Hy , mat3 M ) { vec4 Hz = vec4 ( M [ 1 ] [ 1 ] , M [ 1 ] [ 2 ] , M [ 2 ] [ 0 ] , M [ 2 ] [ 1 ] ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec4 HA = cI ( RIGHT_VECTOR , - M_PI / 2.0 ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec4 HA = cI ( RIGHT_VECTOR , M_PI / 2.0 ) ;".split(" ")}]}}]}, {a:"txt",b:"Hz = qe ( HA , Hz ) ; Hz = kj ( Hz ) ; mat3 aY = cG ( ) ; aY [ 0 ] = Hy ; aY = cK ( Hz , aY ) ; return aY ; }".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"mat3 HC ( vec3 kV , vec3 Hy ) { vec3 HB = kV - Hy ; HB . z = 0.0 ; HB = normalize ( HB ) ; vec4 Hz = qj ( HB , TOWARD_VECTOR ) ; mat3 aY = cG ( ) ; aY [ 0 ] = Hy ; aY = cK ( Hz , aY ) ; return aY ; }".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["BILLBOARD_JITTERED"],h:{a:"grp",d:[{a:"txt",b:"mat3 ai ( in vec3 HD , float HE , float HF , float HG , vec3 aQ , mat3 S ) { float HH = fract ( length ( aQ ) / 0.17 ) ; float HI = HG + HH / 10.0 ; float HJ = HH ; if ( HG != 0.0 ) HJ /= HG ; HD *= 1.0 + 0.5 * sin ( HE ) ; float HK = length ( HD ) * HF * sin ( 2.0 * 3.14 * HE * HI + HJ ) ; vec4 HL = cI ( TOWARD_VECTOR , HK ) ; vec4 HM = vec4 ( S [ 1 ] [ 1 ] , S [ 1 ] [ 2 ] , S [ 2 ] [ 0 ] , S [ 2 ] [ 1 ] ) ; HM = qe ( HM , HL ) ; S = cK ( HM , S ) ; return S ; }".split(" ")}]}}]}, {a:"txt",b:"mat3 ah ( in vec3 kV , in vec3 ae , in mat3 M ) {".split(" ")},{a:"cond",d:[{a:"if",g:["BILLBOARD_SPHERICAL","BILLBOARD",{a:"logic_negative_expr",i:1},"BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW",{a:"equal_expr",i:2},{a:"logical_and_expr",i:2},{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"mat3 lj = aX ( ae , M ) ;".split(" ")}]}},{a:"elif",g:["BILLBOARD_RANDOM"],h:{a:"grp",d:[{a:"txt",b:"float HH = fract ( ( ae . x * 1.43 - ae . z * 0.123 + ae . y * 6.1 ) ) ; float HN = 2.0 * M_PI * HH ; vec4 HO = vec4 ( M [ 1 ] [ 1 ] , M [ 1 ] [ 2 ] , M [ 2 ] [ 0 ] , M [ 2 ] [ 1 ] ) ; float HP = asin ( 2.0 * ( HO . x * HO . y - HO . z * HO . w ) ) ; float gZ = HP - HN ; if ( gZ < 0.0 ) gZ = 2.0 * M_PI + gZ ; float HQ = HN ; if ( gZ <= MAX_BILLBOARD_ANGLE ) HQ += gZ ; else if ( gZ <= M_PI - MAX_BILLBOARD_ANGLE ) HQ += MAX_BILLBOARD_ANGLE * ( 2.0 * gZ - M_PI ) / ( 2.0 * MAX_BILLBOARD_ANGLE - M_PI ) ; else if ( gZ <= M_PI + MAX_BILLBOARD_ANGLE ) HQ += gZ - M_PI ; else if ( gZ <= 2.0 * M_PI - MAX_BILLBOARD_ANGLE ) HQ += MAX_BILLBOARD_ANGLE * ( 2.0 * gZ - M_PI ) / ( 2.0 * MAX_BILLBOARD_ANGLE - M_PI ) + M_PI ; else HQ += gZ - 2.0 * M_PI ; vec4 HR = cI ( UP_VECTOR , HQ ) ; mat3 lj ; lj [ 0 ] = ae ; lj [ 1 ] [ 0 ] = 1.0 ; lj = cK ( HR , lj ) ;".split(" ")}]}}, {a:"else",h:{a:"grp",d:[{a:"txt",b:"mat3 lj = HC ( kV , ae ) ;".split(" ")}]}}]},{a:"txt",b:["return","lj",";","}"]},{a:"cond",d:[{a:"if",g:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{a:"logic_negative_expr",i:1},{a:"logical_and_expr",i:2},"USE_INSTANCED_PARTCLS",{a:"logical_or_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"mat3 af ( in vec3 kV , in vec3 ae , in mat3 M , in mat3 S ) { mat3 lj = ah ( kV , ae , M ) ; S [ 0 ] = vec3 ( 0.0 , 0.0 , 0.0 ) ; lj = aO ( lj , S ) ; return lj ; }".split(" ")}]}}]}, {a:"txt",b:"aj ak ( in vec3 eD , in vec3 HS , in vec3 HT , in vec3 HU , in vec3 HV , in vec3 HW , in mat3 S ) { eD = ad ( S , eD ) ; HS = ad ( S , HS ) ; HT = T ( S , HT ) ; HU = T ( S , HU ) ; HV = T ( S , HV ) ; HW = T ( S , HW ) ; return lk ( aj ( eD , HS , HT , HU , HV , HW , vec3 ( 0.0 ) ) ) ; }".split(" ")}]}}]}]};a["include/wind_bending.glslv"]={a:"grp",d:[{a:"cond",d:[{a:"ifndef",c:"WIND_BENDING_GLSLV",h:{a:"grp",d:[{a:"define",c:"WIND_BENDING_GLSLV",b:[""]},{a:"var",c:"WIND_BEND",b:["0"]}, {a:"var",c:"MAIN_BEND_COL",b:["0"]},{a:"var",c:"DETAIL_BEND",b:["0"]},{a:"var",c:"BEND_CENTER_ONLY",b:["0"]},{a:"var",c:"REFLECTION_PASS",b:["REFL_PASS_NONE"]},{a:"var",c:"BILLBOARD",b:["0"]},{a:"include",o:"std.glsl"},{a:"cond",d:[{a:"if",g:["WIND_BEND"],h:{a:"grp",d:[{a:"txt",b:"void Ii ( inout vec3 bd , in vec3 HX , in float HY , in float HZ , in float eK , in vec3 HD , in float H_ , in mat4 by ) {".split(" ")},{a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD", {a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 Ia = ( by * vec4 ( bd , 1.0 ) ) . xyz ; vec3 Ib = ( by * vec4 ( HX , 1.0 ) ) . xyz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Ia = bd ; vec3 Ib = HX ;".split(" ")}]}}]},{a:"txt",b:"float dg = length ( Ib ) ; float Ic = HZ * ( 1.0 + 0.1 * fract ( dg ) ) ; float Id = HY * H_ * ( 1.0 + sin ( 2.0 * 3.14 * eK * Ic + dg ) ) ; float Ie = ( Ia . z - Ib . z ) * abs ( Id ) ; Ie += 1.0 ; Ie *= Ie ; Ie = Ie * Ie - Ie ; vec3 If = Ia ; If . xy += HD . xy * Ie * sign ( Id ) ; vec3 Ig = If - Ib ; if ( all ( equal ( Ig , vec3 ( 0.0 ) ) ) ) bd = HX ; else {".split(" ")}, {a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"Ig = ( by * vec4 ( Ig , 0.0 ) ) . xyz ;".split(" ")}]}}]},{a:"txt",b:"float Ih = length ( Ia - Ib ) ; bd = HX + normalize ( Ig ) * Ih ; } }".split(" ")},{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"vec4 Ij ( vec4 x ) { return x * x * ( 3.0 - 2.0 * x ) ; } vec4 Ik ( vec4 x ) { return abs ( fract ( x + 0.5 ) * 2.0 - 1.0 ) ; } vec4 Il ( vec4 x ) { return Ij ( Ik ( x ) ) ; } void Ix ( inout vec3 bd , in float eK , in vec3 P , in vec3 HD , in vec3 HX , in float Im , in float In , in float Io , in vec3 Ip , in mat4 by ) { float Iq ; float Ir ; float Is ; vec2 It ; vec4 Iu ; vec2 Iv ; vec3 Iw ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"vec3 Ia = ( by * vec4 ( bd , 1.0 ) ) . xyz ; vec3 Ib = ( by * vec4 ( HX , 1.0 ) ) . xyz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Ia = bd ; vec3 Ib = HX ;".split(" ")}]}}]},{a:"txt",b:"Iq = dot ( Ib , vec3 ( 1.0 ) ) ; Ir = Iq + Ip . g ; Is = dot ( Ia , vec3 ( Ip . g ) ) ; It = ( eK + vec2 ( Is , Ir ) ) ; Iu = ( ( fract ( ( It . xxyy * vec4 ( 1.975 , 0.793 , 0.375 , 0.193 ) ) ) * 2.0 ) - 1.0 ) * length ( HD ) * Im ; Iu = Il ( Iu ) ; Iv = Iu . xz + Iu . yw ; Iv . y = 0.5 - Iv . y ; Iw = Iv . xxy * Ip . rrb * vec3 ( In * P . x , In * P . y , Io ) ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"Iw = ( by * vec4 ( Iw , 0.0 ) ) . xyz ;".split(" ")}]}}]},{a:"txt",b:["bd","+=","Iw",";","}"]}]}}]},{a:"txt",b:"void am ( inout vec3 N , inout vec3 ac , in vec3 P , in mat4 by ) { vec3 Iy = u_wind * 1.0 + 0.7 * sin ( u_time ) ;".split(" ")},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:"vec3 Iz = ac ; vec3 IA = a_emitter_center ;".split(" ")}, {a:"cond",d:[{a:"if",g:["REFLECTION_PASS","REFL_PASS_PLANE",{a:"equal_expr",i:2},"BILLBOARD",{a:"logical_and_expr",i:2}],h:{a:"grp",d:[{a:"txt",b:"IA = ( by * vec4 ( IA , 1.0 ) ) . xyz ;".split(" ")}]}}]}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"vec3 Iz = N ; vec3 IA = ac ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["MAIN_BEND_COL"],h:{a:"grp",d:[{a:"cond",d:[{a:"if",g:["DETAIL_BEND"],h:{a:"grp",d:[{a:"txt",b:"Ix ( Iz , u_time , P , Iy , IA , au_detail_bending_freq , au_detail_bending_amp , au_branch_bending_amp , a_bending_col_detail , by ) ;".split(" ")}]}}]}, {a:"txt",b:"Ii ( Iz , IA , au_wind_bending_amp , au_wind_bending_freq , u_time , Iy , a_bending_col_main , by ) ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"Ii ( Iz , IA , au_wind_bending_amp , au_wind_bending_freq , u_time , Iy , 1.0 , by ) ;".split(" ")}]}}]},{a:"cond",d:[{a:"if",g:["BEND_CENTER_ONLY"],h:{a:"grp",d:[{a:"txt",b:"N += Iz - ac ; ac = Iz ;".split(" ")}]}},{a:"else",h:{a:"grp",d:[{a:"txt",b:"N = Iz ; ac = IA ;".split(" ")}]}}]},{a:"txt",b:["}"]}]}}]}]}}]}]}};fdage.module.animation=function(a,q){var f=q("__animation"),c=q("__armature"),b=q("__obj_util"),g=q("__print"),p=q("__tsr");a.SLOT_0=f.SLOT_0;a.SLOT_1=f.SLOT_1;a.SLOT_2=f.SLOT_2;a.SLOT_3=f.SLOT_3;a.SLOT_4=f.SLOT_4;a.SLOT_5=f.SLOT_5;a.SLOT_6=f.SLOT_6;a.SLOT_7=f.SLOT_7;a.SLOT_ALL=f.SLOT_ALL;a.OBJ_ANIM_TYPE_NONE=f.OBJ_ANIM_TYPE_NONE;a.OBJ_ANIM_TYPE_ARMATURE=f.OBJ_ANIM_TYPE_ARMATURE;a.OBJ_ANIM_TYPE_OBJECT=f.OBJ_ANIM_TYPE_OBJECT;a.OBJ_ANIM_TYPE_VERTEX=f.OBJ_ANIM_TYPE_VERTEX;a.OBJ_ANIM_TYPE_SOUND=f.OBJ_ANIM_TYPE_SOUND; a.OBJ_ANIM_TYPE_PARTICLES=f.OBJ_ANIM_TYPE_PARTICLES;a.OBJ_ANIM_TYPE_MATERIAL=f.OBJ_ANIM_TYPE_MATERIAL;a.AB_CYCLIC=f.AB_CYCLIC;a.AB_FINISH_RESET=f.AB_FINISH_RESET;a.AB_FINISH_STOP=f.AB_FINISH_STOP;var D=p.create();a.is_animated=function(a){return f.is_animated(a)};a.get_anim_names=function(a){return f.FC(a)?f.get_anim_names(a):[]};a.get_current_anim_name=function(a,b){if(!f.is_animated(a))return null;b=b||f.SLOT_0;return f.GL(a,b)};a.apply=function(a,b,c){if(c>f.SLOT_7)g.error("Can't apply animation to slot "+ c+' for object "'+a.name+'". Object can have maximum of 8 animation slots');else{c=c||f.SLOT_0;if(f.is_animated(a)){var p=f.get_slot_num_by_anim(a,b);if(-1!=p&&p!=c){g.error('Animation "'+b+'" is already applied to object "'+a.name+'" (slot "'+p+'").');return}}f.RE(a,b)?f.apply(a,null,b,c):g.error('No fcurves in action "'+b+'"')}};a.apply_ext=function(a,b,c){if(c>f.SLOT_7)g.error("Can't apply animation to slot "+c+' for object "'+a.name+'". Object can have maximum of 8 animation slots');else{c=c|| f.SLOT_0;var p=b[0];if(f.is_animated(a)){var m=f.get_slot_num_by_anim(a,p);if(-1!=m&&m!=c){g.error('Animation "'+p+'" is already applied to object "'+a.name+'" (slot "'+m+'").');return}}f.RE(a,p)?f.apply(a,b.slice(1),p,c):g.error('No fcurves in action "'+p+'"')}};a.remove=function(a){f.remove(a)};a.remove_slot_animation=function(a,b){f.is_animated(a)&&(b=b||f.SLOT_0,f.remove_slot_animation(a,b))};a.apply_def=function(a){f.apply_def(a)};a.play=function(a,b,c){f.is_animated(a)?(c=c||f.SLOT_0,f.play(a, b,c),f.DQ(a,0,c,!0)):g.error('Object "'+a.name+'" has no applied animation')};a.stop=function(a,b){f.is_animated(a)&&(b=b||f.SLOT_0,f.stop(a,b))};a.is_play=function(a,b){if(!f.is_animated(a))return!1;b=b||f.SLOT_0;return f.is_play(a,b)};a.set_frame=function(a,b,c){f.is_animated(a)&&(c=c||f.SLOT_0,f.set_frame(a,b,c))};a.set_first_frame=function(a,b){f.is_animated(a)&&f.set_first_frame(a,b)};a.set_last_frame=function(a,b){if(f.is_animated(a)){b=b||f.SLOT_0;var c=f.get_anim_start_frame(a,b),g=f.get_anim_length(a, b);f.set_frame(a,c+g-f.LF,b)}};a.get_frame=function(a,b){if(!f.is_animated(a))return 0;b=b||f.SLOT_0;return f.oB(a,b)};a.set_speed=function(a,b,c){f.is_animated(a)&&(c=c||f.SLOT_0,f.set_speed(a,b||1,c))};a.get_speed=function(a,b){if(!f.is_animated(a))return 0;b=b||f.SLOT_0;return a.ba[b]?f.get_speed(a,b):0};a.get_anim_start_frame=function(a,b){return f.is_animated(a)&&(b=b||f.SLOT_0,a.ba[b])?f.get_anim_start_frame(a,b):-1};a.get_anim_length=function(a,b){return f.is_animated(a)&&(b=b||f.SLOT_0,a.ba[b])? f.get_anim_length(a,b):-1};a.set_behavior=function(a,b,c){f.is_animated(a)&&(c=c||f.SLOT_0,f.set_behavior(a,b,c))};a.get_behavior=function(a,b){if(!f.is_animated(a))return null;b=b||f.SLOT_0;return f.get_behavior(a,b)};a.apply_smoothing=function(a,b,c,g){g=g||f.SLOT_0;f.is_animated(a)&&f.apply_smoothing(a,b,c,g)};a.frame_to_sec=function(a){return f.frame_to_sec(a)};a.get_bone_translation=function(a,f,n){g.lb("get_bone_translation","armature.get_bone_tsr");if(!b.is_armature(a))return null;if(!c.Un(a, f))return g.error('There is no bone: "',f,'" in "',a.name,'".'),null;n||(n=new Float32Array(3));c.get_bone_tsr(a,f,!1,!1,D);n[0]=D[0];n[1]=D[1];n[2]=D[2];return n};a.get_first_armature_object=function(){g.L("get_first_armature_object() deprecated");return null};a.get_slot_num_by_anim=function(a,b){return f.is_animated(a)&&b?f.get_slot_num_by_anim(a,b):-1};a.get_anim_type=function(a,b){return f.is_animated(a)?f.get_anim_type(a,b):null};a.apply_to_first_empty_slot=function(a,b){return f.apply_to_first_empty_slot(a, b)};a.get_skel_mix_factor=function(a){return a.k.Jg};a.set_skel_mix_factor=function(a,c,n){b.is_armature(a)?(c=Math.min(Math.max(c,0),1),a.k.Jg!=c&&f.set_skel_mix_factor(a,c,n||0)):g.error("Can't blend animation. Object \""+a.name+'" is not armature')}};fdage.module.anchors=function(a,q){var f=q("__anchors");q("__print");a.attach_move_cb=f.attach_move_cb;a.detach_move_cb=f.detach_move_cb;a.is_anchor=f.is_anchor;a.get_element_id=f.get_element_id;a.update=function(){f.update(!0)}};fdage.module.armature=function(a,q){var f=q("__armature"),c=q("__obj_util"),b=q("__transform"),g=q("__print");a.get_bone_tsr=function(a,b,e){if(!c.is_armature(a))return null;if(!f.Un(a,b))return g.error('There is no bone: "',b,'" in "',a.name,'".'),null;e||(e=new Float32Array(8));f.get_bone_tsr(a,b,!1,!1,e);return e};a.get_bone_tsr_rel=function(a,b,e){if(!c.is_armature(a))return null;if(!f.Un(a,b))return g.error('There is no bone: "',b,'" in "',a.name,'".'),null;e||(e=new Float32Array(8));f.get_bone_tsr(a, b,!1,!0,e);return e};a.set_bone_tsr=function(a,q,e){c.is_armature(a)&&(f.Un(a,q)?(f.set_bone_tsr(a,q,e,!1),b.B(a)):g.error('There is no bone: "',q,'" in "',a.name,'".'))};a.set_bone_tsr_rel=function(a,q,e){c.is_armature(a)&&(f.Un(a,q)?(f.set_bone_tsr(a,q,e,!0),b.B(a)):g.error('There is no bone: "',q,'" in "',a.name,'".'))}};fdage.module.assets=function(a,q){var f=q("__assets");a.AT_ARRAYBUFFER=f.AT_ARRAYBUFFER;a.AT_JSON=f.AT_JSON;a.AT_TEXT=f.AT_TEXT;a.AT_AUDIOBUFFER=f.AT_AUDIOBUFFER;a.AT_IMAGE_ELEMENT=f.AT_IMAGE_ELEMENT;a.AT_AUDIO_ELEMENT=f.AT_AUDIO_ELEMENT;a.enqueue=function(a,b,g,p){if(a.length)if(a.id)f.enqueue(a,b,g,p);else{for(var q=[],e=0;eb.dist_lim.max){n.error("target_setup(): Wrong distance limits object"); return}b.dist_lim.min=Math.max(b.dist_lim.min,0);b.dist_lim.max=Math.max(b.dist_lim.max,0)}if(b.tp&&("number"!=typeof b.tp.min_y||"number"!=typeof b.tp.max_y||b.tp.min_y>b.tp.max_y))n.error("target_setup(): Wrong pivot limits object");else{c.nq(a);a.k.jb=c.MS_TARGET_CONTROLS;var d=b.pos||k.get_trans_view(a.k.n);c.AD(a,d,b.pivot,b.horiz_rot_lim,b.vert_rot_lim,b.dist_lim,b.tp,b.use_panning||!1);m.B(a);u.sync_transform(a);c.em(a)}}else n.error("target_setup(): Wrong vertical limits object");else n.error("target_setup(): Wrong horizontal limits object"); else n.error("target_setup(): Wrong camera object")};a.target_rotate=function(a,b,d,e,f){c.is_target_camera(a)?(c.rotate_target_camera(a,b,d,e||!1,f||!1),m.B(a),u.sync_transform(a)):n.error("target_rotate(): Wrong camera object or camera move style")};a.target_set_trans_pivot=function(a,b,d){c.is_target_camera(a)?(b=b||k.get_trans_view(a.k.n),d=d||a.k.pivot,c.set_trans_pivot(a,b,d),m.B(a),u.sync_transform(a)):n.error("target_set_trans_pivot(): Wrong camera object or camera move style")};a.target_set_pivot_translation= function(a,b){c.is_target_camera(a)?(c.jP(a,b),m.B(a),u.sync_transform(a)):n.error("target_set_pivot_translation(): Wrong camera object or camera move style")};a.target_set_distance=function(a,b){if(c.is_target_camera(a)){var d=m.um(a,a.k.pivot),e=Math.max(0,b);m.move_local(a,0,0,e-d);m.B(a);u.sync_transform(a)}else n.error("target_set_distance(): Wrong camera object or camera move style")};a.target_get_distance=function(a){return c.is_target_camera(a)?m.um(a,a.k.pivot):(n.error("target_get_distance(): Wrong camera object or camera move style"), 0)};a.target_zoom_object=function(a,b){if(c.is_target_camera(a)){var d=m.get_object_center(b,!1,x),f=m.get_object_size(b),g=t.get_active(),g=e.da(a,g).W[0],g=c.iB(g)/2,f=f/Math.sin(g),g=m.um(a,d);c.set_trans_pivot(a,k.get_trans_view(a.k.n),d);m.B(a);m.move_local(a,0,0,f-g);m.B(a);u.sync_transform(a)}else n.error("target_zoom_object(): Wrong camera object or camera move style")};a.target_get_pivot=function(a,b){if(!c.is_target_camera(a))return n.error("target_get_pivot(): Wrong camera object or camera move style"), null;b=b||new Float32Array(3);y.copy(a.k.pivot,b);return b};a.target_set_distance_limits=function(a,b){if(c.is_target_camera(a)){if(b){if("number"!=typeof b.min||"number"!=typeof b.max||b.min>b.max){n.error("target_set_distance_limits(): Wrong limits object");return}b.min=Math.max(b.min,0);b.max=Math.max(b.max,0)}c.SO(a,b);m.B(a);u.sync_transform(a)}else n.error("target_set_distance_limits(): Wrong camera object or camera move style")};a.target_get_distance_limits=function(a,b){if(!c.is_target_camera(a))return n.error("target_get_distance_limits(): Wrong camera object or camera move style"), null;var d=a.k;return d.hb?(b=b||{},b.min=d.hb.min,b.max=d.hb.max,b):null};a.target_set_vertical_limits=function(a,b){c.is_target_camera(a)?!b||"number"==typeof b.down&&"number"==typeof b.up?(c.wD(a,b),m.B(a),u.sync_transform(a)):n.error("target_set_vertical_limits(): Wrong limits object"):n.error("target_set_vertical_limits(): Wrong camera object or camera move style")};a.target_get_vertical_limits=function(a,b,d){if(!c.is_target_camera(a))return n.error("target_get_vertical_limits(): Wrong camera object or camera move style"), null;a=a.k;return a.ea?(b=b||{},d?(b.down=a.ea.Ol,b.up=a.ea.Zm):(b.down=a.ea.down,b.up=a.ea.up),b.camera_space=d||!1,b):null};a.target_set_horizontal_limits=function(a,b){c.is_target_camera(a)?!b||"number"==typeof b.left&&"number"==typeof b.right?(c.tD(a,b),m.B(a),u.sync_transform(a)):n.error("target_set_horizontal_limits(): Wrong limits object"):n.error("target_set_horizontal_limits(): Wrong camera object or camera move style")};a.target_get_horizontal_limits=function(a,b,d){if(!c.is_target_camera(a))return n.error("target_get_horizontal_limits(): Wrong camera object or camera move style"), null;a=a.k;return a.Za?(b=b||{},d?(b.left=a.Za.km,b.right=a.Za.Cm):(b.left=a.Za.left,b.right=a.Za.right),b.camera_space=d||!1,b):null};a.target_set_pivot_limits=function(a,b){c.is_target_camera(a)?b&&("number"!=typeof b.min_z||"number"!=typeof b.max_z||b.min_z>b.max_z)?n.error("target_set_pivot_limits(): Wrong limits object"):(c.fP(a,b),m.B(a),u.sync_transform(a)):n.error("target_set_pivot_limits(): Wrong camera object or camera move style")};a.target_get_pivot_limits=function(a,b){if(!c.is_target_camera(a))return n.error("target_get_pivot_limits(): Wrong camera object or camera move style"), null;var d=a.k;return d.xd?(b=b||{},b.min_z=d.xd.min_z,b.max_z=d.xd.max_z,b):null};a.target_pan_pivot=function(a,b,d){if(c.is_target_camera(a)){var e=a.k;e.use_panning&&(x[0]=b,x[1]=-d,x[2]=0,k.transform_dir_vec3(x,e.n,x),y.add(e.pivot,x,e.pivot),b=k.get_trans_view(e.n),y.add(b,x,b),m.B(a),u.sync_transform(a))}else n.error("target_pan_pivot(): wrong object")};a.target_switch_panning=function(a,b){if(!c.is_target_camera(a))return n.error("target_switch_panning(): Wrong camera object or camera move style"), null;a.k.use_panning=b};a.hover_setup_rel=function(b,e){a.hover_setup(b,{pos:e.pos,pivot:e.pivot});var f="undefined"==typeof e.dist_interval?0:Math.max(e.dist_interval,0),g="undefined"==typeof e.angle_interval?0:Math.max(e.angle_interval,0),k="undefined"==typeof e.t?.5:d.clamp(e.t,0,1),n=a.hover_get_distance_limits(b,A);n.min=Math.max(n.min-k*f,0);n.max+=(1-k)*f;f=a.hover_get_vertical_limits(b,K);f.down=d.clamp(f.down+k*g,-Math.PI/2,0);f.up=d.clamp(f.up-(1-k)*g,-Math.PI/2,0);c.hover_set_distance_limits(b, n);c.hover_set_vertical_limits(b,f);m.B(b);u.sync_transform(b);c.em(b)};a.hover_setup=function(a,b){if(e.is_camera(a)){if(b.dist_lim){if("number"!=typeof b.dist_lim.min||"number"!=typeof b.dist_lim.max||b.dist_lim.min>b.dist_lim.max){n.error("hover_setup(): Wrong distance limits object");return}b.dist_lim.min=Math.max(b.dist_lim.min,0);b.dist_lim.max=Math.max(b.dist_lim.max,0)}if(b.hover_angle_lim&&("number"!=typeof b.hover_angle_lim.down||"number"!=typeof b.hover_angle_lim.up||b.hover_angle_lim.down< b.hover_angle_lim.up))n.error("hover_setup(): Wrong hover angle limits object");else if(b.horiz_trans_lim&&("number"!=typeof b.horiz_trans_lim.min||"number"!=typeof b.horiz_trans_lim.max||b.horiz_trans_lim.min>b.horiz_trans_lim.max))n.error("hover_setup(): Wrong horizontal translation limits object");else if(b.vert_trans_lim&&("number"!=typeof b.vert_trans_lim.min||"number"!=typeof b.vert_trans_lim.max||b.vert_trans_lim.min>b.vert_trans_lim.max))n.error("hover_setup(): Wrong vertical translation limits object"); else{c.nq(a);a.k.jb=c.MS_HOVER_CONTROLS;var d=b.pos||k.get_trans_view(a.k.n);c.zD(a,d,b.pivot,b.dist_lim,b.hover_angle_lim,b.horiz_trans_lim,b.vert_trans_lim,b.enable_horiz_rot||!1);m.B(a);u.sync_transform(a);c.em(a)}}else n.error("hover_setup(): Wrong camera object")};a.hover_rotate=function(a,b,d,e,f){c.is_hover_camera(a)?(c.rotate_hover_camera(a,b,d,e||!1,f||!1),m.B(a),u.sync_transform(a)):n.error("hover_rotate(): Wrong camera object or camera move style")};a.hover_set_pivot_translation=function(a, b){c.is_hover_camera(a)?(c.set_hover_pivot(a,b),m.B(a),u.sync_transform(a)):n.error("hover_set_pivot_translation(): Wrong camera object or camera move style")};a.hover_get_pivot=function(a,b){if(!c.is_hover_camera(a))return n.error("hover_get_pivot(): Wrong camera object or camera move style"),null;b=b||new Float32Array(3);y.copy(a.k.Kb,b);return b};a.hover_get_distance=function(a){return c.is_hover_camera(a)?m.um(a,a.k.Kb):(n.error("hover_get_distance(): Wrong camera object or camera move style"), 0)};a.hover_set_vertical_limits=function(a,b){c.is_hover_camera(a)?"number"!=typeof b.down||"number"!=typeof b.up||b.downb.max?n.error("hover_set_distance_limits(): Wrong limits object"):(b.min=Math.max(b.min,0),b.max=Math.max(b.max,0),c.hover_set_distance_limits(a,b),m.B(a),u.sync_transform(a)):n.error("hover_set_distance_limits(): Wrong camera object or camera move style")};a.hover_get_distance_limits=function(a,b){if(!c.is_hover_camera(a))return n.error("hover_get_distance_limits(): Wrong camera object or camera move style"), null;var d=a.k;b=b||{};b.min=d.hb.min;b.max=d.hb.max;return b};a.hover_set_vert_trans_limits=function(a,b){c.is_hover_camera(a)?b&&("number"!=typeof b.min||"number"!=typeof b.max||b.min>b.max)?n.error("hover_set_vert_trans_limits(): Wrong limits object"):(c.mP(a,b),m.B(a),u.sync_transform(a)):n.error("hover_set_vert_trans_limits(): Wrong camera object or camera move style")};a.hover_get_vert_trans_limits=function(a,b){if(!c.is_hover_camera(a))return n.error("hover_get_vert_trans_limits(): Wrong camera object or camera move style"), null;var d=a.k;return d.mc?(b=b||{},b.min=d.mc.min,b.max=d.mc.max,b):null};a.hover_set_horiz_trans_limits=function(a,b){c.is_hover_camera(a)?b&&("number"!=typeof b.min||"number"!=typeof b.max||b.min>b.max)?n.error("hover_set_horiz_trans_limits(): Wrong limits object"):(c.XO(a,b),m.B(a),u.sync_transform(a)):n.error("hover_set_horiz_trans_limits(): Wrong camera object or camera move style")};a.hover_get_horiz_trans_limits=function(a,b){if(!c.is_hover_camera(a))return n.error("hover_get_horiz_trans_limits(): Wrong camera object or camera move style"), null;var d=a.k;return d.lc?(b=b||{},b.min=d.lc.min,b.max=d.lc.max,b):null};a.hover_switch_horiz_rotation=function(a,b){if(!c.is_hover_camera(a))return n.error("hover_switch_horiz_rotation(): Wrong camera object or camera move style"),null;a.k.Sg=b};a.is_static_camera=c.is_static_camera;a.is_target_camera=c.is_target_camera;a.is_eye_camera=c.is_eye_camera;a.is_hover_camera=c.is_hover_camera;a.set_move_style=function(a,b){if(!e.is_camera(a))return n.error("set_move_style(): Wrong camera object"),!1; if(b!=c.MS_STATIC&&b!=c.MS_EYE_CONTROLS&&b!=c.MS_TARGET_CONTROLS&&b!=c.MS_HOVER_CONTROLS)return n.error("set_move_style(): Wrong move style"),!1;c.set_move_style(a,b);m.B(a);u.sync_transform(a);return!0};a.get_move_style=function(a){return e.is_camera(a)?c.get_move_style(a):(n.error("get_move_style(): Wrong camera object"),null)};a.set_translation=function(a,b){if(e.is_camera(a)){var d=a.k;if(c.is_target_camera(a)){var f=k.get_trans_view(d.n),f=y.subtract(b,f,x);y.add(f,d.pivot,d.pivot)}else c.is_hover_camera(a)&& (f=k.get_trans_view(d.n),f=y.subtract(b,f,x),y.add(f,d.Kb,d.Kb));m.set_translation(a,b);m.B(a);u.sync_transform(a)}else n.error("set_translation(): Wrong camera object")};a.get_translation=function(a,b){if(!e.is_camera(a))return n.error("get_translation(): Wrong camera object"),null;b=b||new Float32Array(3);return m.get_translation(a,b)};a.rotate_camera=function(a,b,d,f,g){e.is_camera(a)?(f=f||!1,g=g||!1,c.is_target_camera(a)?c.rotate_target_camera(a,b,d,f,g):c.is_eye_camera(a)?c.rotate_eye_camera(a, b,d,f,g):c.is_hover_camera(a)?c.rotate_hover_camera(a,b,d,f,g):c.is_static_camera(a)?n.warn("rotate_camera(): not supported for STATIC cameras"):n.error("rotate_camera(): Wrong camera move style"),m.B(a),u.sync_transform(a)):n.error("rotate_camera(): Wrong camera object")};a.set_velocities=function(a,b){if(e.is_camera(a)){var c=a.k;"number"==typeof b.trans&&(c.Gj=d.clamp(b.trans,0,Infinity));"number"==typeof b.rot&&(c.Fj=d.clamp(b.rot,0,Infinity));"number"==typeof b.zoom&&(c.Hj=d.clamp(b.zoom,0,.99))}else n.error("set_velocities(): Wrong camera object")}; a.get_velocities=function(a,b){if(!e.is_camera(a))return n.error("get_velocities(): Wrong camera object"),null;var c=a.k;b=b||{};b.trans=c.Gj;b.rot=c.Fj;b.zoom=c.Hj;return b};a.is_look_up=function(a){if(!e.is_camera(a))return n.error("is_look_up(): Wrong camera object"),!1;a=k.get_quat_view(a.k.n);return 0<=d.quat_to_dir(a,d.AXIS_MZ,x)[1]};a.get_camera_angles=function(a,b){if(!e.is_camera(a))return n.error("get_camera_angles(): Wrong camera object"),null;b=b||new Float32Array(2);c.get_camera_angles(a, b);return b};a.get_camera_angles_char=function(a,b){if(!e.is_camera(a))return n.error("get_camera_angles_char(): Wrong camera object"),null;b=b||new Float32Array(2);c.get_camera_angles_char(a,b);return b};a.get_camera_angles_dir=function(a,b){b=b||new Float32Array(2);var e=y.normalize(a,x),e=d.wx(d.AXIS_MZ,e,E);d.correct_cam_quat_up(e,!0);c.Kv(e,b);return b};a.set_stereo_distance=function(a,b){if(e.is_camera(a))for(var d=t.get_active(),d=e.da(a,d).W,f=0;fq)q=.25;c.EH(a,b,n,q);D.B(a);g.sync_transform(a)}else p.error("append_semi_soft_cam(): wrong object type, only EYE camera objects can be parented.")};a.append_stiff_trans=function(a,b,f){c.KH(a,b,f);D.B(a);g.sync_transform(a)};a.append_copy_trans=function(a,b,f){c.xH(a,b,f);D.B(a); g.sync_transform(a)};a.append_stiff_trans_rot=function(a,b,f,p){c.LH(a,b,f,p);D.B(a);g.sync_transform(a)};a.append_track=function(a,b){3==b.length?c.OH(a,b):c.NH(a,b);D.B(a);g.sync_transform(a)};a.append_follow=function(a,b,f,p){3==b.length?c.BH(a,b,f,p):c.AH(a,b,f,p);D.B(a);g.sync_transform(a)};a.append_stiff_viewport=function(a,b,f){c.append_stiff_viewport(a,b,f);D.B(a);g.sync_transform(a)};a.remove=function(a){a.bc&&c.remove(a)};a.get_parent=function(a){p.lb("constraints.get_parent","objects.get_parent"); return b.get_parent(a)}};fdage.module.container=function(a,q){var f=q("__container"),c=q("__print");a.get_canvas=f.get_canvas;a.get_canvas_hud=f.get_canvas_hud;a.get_container=f.get_container;a.insert_to_container=function(a,g){2!=arguments.length?c.error("insert_to_container(): two arguments required"):a&&g&&f.insert_to_container(a,g)};a.set_canvas_offsets=f.set_canvas_offsets;a.update_canvas_offsets=f.update_canvas_offsets;a.client_to_canvas_coords=f.client_to_canvas_coords;a.force_offsets_updating=f.force_offsets_updating; a.resize=function(a,g,p){a&&g||c.warn("Wrong canvas container dimensions: "+a+"x"+g+". Zero dimensions aren't allowed. Resized to: "+f.au+"x"+f.$t+".");f.resize(a,g,p)};a.resize_to_container=function(a){f.resize_to_container(a||!1)}};fdage.module.data=function(a,q){var f=q("__data"),c=q("__loader");q("__print");a.load=f.load;a.unload=function(a){f.unload(a|0)};a.set_debug_resources_root=f.set_debug_resources_root;a.is_primary_loaded=f.is_primary_loaded;a.is_idle=c.Gk;a.load_and_add_new=f.load;a.cleanup=a.unload;a.activate_media=f.activate_media;a.prefetch=f.prefetch;a.unfetch=f.unfetch};fdage.module.debug=function(a,q){function f(a){var b={};if(!a)return b;a=a.split("\n");for(var c=0;c","OPS",e.ALL_OPS,"ATT",e.ATTRIBS,"TEX",e.TEX_OPS, "\t\tFRAG ->","OPS",d.ALL_OPS,"TEX",d.TEX_OPS,f);z.groupCollapsed("directives");for(var h=c.Va.Jh.slice().sort(),f=0;fa[d]+c||b[d]d;d++)x.Pl(e);r.gl_debug=c;window.setTimeout(function(){m.gO(e);var a=e.Le;b(a,f.width*f.height*40/(a/1E3)/Math.pow(10,9))},100)}else b(0,0);else window.setTimeout(function(){a.test_performance(b)},100)};a.calc_vbo_garbage_byte_size=m.calc_vbo_garbage_byte_size;a.show_vbo_garbage_info=m.show_vbo_garbage_info;a.print_batches_stat=m.print_batches_stat;a.start_debug=function(a){J=[];Z=!0;a=q(a);for(var b in a)"function"===typeof a[b]&&(a[b]= p(a[b],b))};a.check_debug_result=function(){return Z};a.test=function(a,b){try{return b(),!0}catch(c){return Z=!1,console.error(a+" test was failed. ",c),!1}};a.pix=function(a){var b=t.BB(),c=t.AB(),d=b/2,e=c/2;t.resize(b,c,!1);b=M.get_active().s.Na;(c=F.fL(b))||l.q("Couldn't find onscreen subscene");b=c.p;d=t.Vq(d,e,I,c.p);d[1]=b.height-d[1];d=x.mx(b.pe,d[0],d[1]);D(a,d,1)};a.eqs=function(a,b){if(JSON.stringify(a)!=JSON.stringify(b))throw"Wrong result. Function: "+B;};a.eqv=D;a.eqf=function(a,b, c){if("number"!=typeof b)throw"Wrong expected data type.";c=c?c:1E-6;if(b>a+c||ba?15*a:15*(a-24),b.vert_position=k,f(b)):D.error("There is no sun on the scene")};a.set_date=function(a){(d=a.getDate())?1582==d&&10==a.uT&&4a.uK&&D.error("The dates 5 through 14 October, 1582, do not exist in the Gregorian system!"): D.error("There is no year 0 in the Julian system!")};a.set_max_sun_angle=function(a){y=Math.min(Math.max(a,0),90)};a.get_light_params=function(a){if(p.is_lamp(a))var b=a.ib;else return D.error("get_light_params(): Wrong object"),null;if(a=c(a))switch(a){case "SPOT":var d={light_type:a,light_color:new Float32Array(3),light_energy:b.Me,light_spot_blend:b.Rp,light_spot_size:b.il,light_distance:b.distance};d.light_color.set(b.color);break;case "POINT":d={light_type:a,light_color:new Float32Array(3),light_energy:b.Me, light_distance:b.distance};d.light_color.set(b.color);break;default:d={light_type:a,light_color:new Float32Array(3),light_energy:b.Me},d.light_color.set(b.color)}return d?d:null};a.get_light_type=c;a.set_light_params=function(a,c){if(p.is_lamp(a)){var d=a.ib,f=e.get_active(),g=!1;"number"==typeof c.light_energy&&b.set_light_energy(d,c.light_energy);"object"==typeof c.light_color&&b.set_light_color(d,c.light_color);"number"==typeof c.light_spot_blend&&(b.$O(d,c.light_spot_blend),g=!0);"number"==typeof c.light_spot_size&& (b.aP(d,c.light_spot_size),g=!0);"number"==typeof c.light_distance&&(b.ZO(d,c.light_distance),g=!0);e.$m(a,f);g&&e.lQ(f)}else D.error("set_light_params(): Wrong object")};a.get_light_energy=function(a){return p.is_lamp(a)?a.ib.Me:(D.error("get_light_energy(): Wrong object"),0)};a.set_light_energy=function(a,c){if(p.is_lamp(a)){var d=e.get_active();b.set_light_energy(a.ib,c);e.$m(a,d)}else D.error("set_light_energy(): Wrong object")};a.get_light_color=function(a,b){if(!p.is_lamp(a))return D.error("get_light_color(): Wrong object"), null;b=b||new Float32Array(3);b.set(a.ib.color);return b};a.set_light_color=function(a,c){if(p.is_lamp(a)){var d=e.get_active();b.set_light_color(a.ib,c);e.$m(a,d)}else D.error("set_light_color(): Wrong object")}};fdage.module.logic_nodes=function(a,q){var f=q("__logic_nodes");a.append_custom_callback=function(a,b){f.zH(a,b)};a.remove_custom_callback=function(a){f.nO(a)};a.run_entrypoint=function(a,b){f.FO(a,b)}};fdage.module.material=function(a,q){function f(a,b){for(var c=a.F[0].M,e=0;eq?(q+=c,q=Math.min(0,q)):g.error("Wrong steering direction"); b.vehicle_throttle(a,p.clamp(q,-1,1))}else g.L("No physics for object "+a.name)};a.vehicle_steer=function(a,c){b.ia(a)?(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a)||g.error("Wrong object"),b.vehicle_steer(a,p.clamp(c,-1,1))):g.L("No physics for object "+a.name)};a.vehicle_steer_inc=function(a,c,f){if(b.ia(a)){b.is_vehicle_chassis(a)||b.is_vehicle_hull(a)||g.error("Wrong object");c=p.clamp(c,0,1);var q=a.v.Nm;-1==f||1==f?q=Math.max(-1,Math.min(q+f*c,1)):0==f&&0<=q?(q-=c,q=Math.max(0,q)):0==f&&0> q?(q+=c,q=Math.min(0,q)):g.error("Wrong steering direction");b.vehicle_steer(a,p.clamp(q,-1,1))}else g.L("No physics for object "+a.name)};a.vehicle_brake=function(a,c){b.ia(a)?(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a)||g.error("Wrong object"),b.vehicle_brake(a,p.clamp(c,0,1))):g.L("No physics for object "+a.name)};a.vehicle_brake_inc=function(a,c){if(b.ia(a)){b.is_vehicle_chassis(a)||b.is_vehicle_hull(a)||g.error("Wrong object");c=p.clamp(c,-1,1);var f=a.v.Nn;b.vehicle_brake(a,p.clamp(f+f*c, 0,1))}else g.L("No physics for object "+a.name)};a.is_vehicle_chassis=function(a){return b.is_vehicle_chassis(a)};a.is_vehicle_hull=function(a){return b.is_vehicle_hull(a)};a.get_vehicle_name=function(a){if(!b.ia(a))return g.L("No physics for object "+a.name),null;if(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a))return a.ze.name;g.error("Wrong object");return null};a.get_vehicle_throttle=function(a){if(!b.ia(a))return g.L("No physics for object "+a.name),null;if(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a))return a.v.Ql; g.error("Wrong object");return null};a.get_vehicle_steering=function(a){if(!b.ia(a))return g.L("No physics for object "+a.name),null;if(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a))return a.v.Nm;g.error("Wrong object")};a.get_vehicle_brake=function(a){if(!b.ia(a))return g.L("No physics for object "+a.name),null;if(b.is_vehicle_chassis(a)||b.is_vehicle_hull(a))return a.v.Nn;g.error("Wrong object")};a.get_vehicle_speed=function(a){if(!b.ia(a))return g.L("No physics for object "+a.name),null;if(b.is_vehicle_chassis(a)|| b.is_vehicle_hull(a))return b.get_vehicle_speed(a);g.error("Wrong object")};a.is_character=function(a){return b.is_character(a)};a.set_character_move_dir=function(a,c,f){b.ia(a)?b.set_character_move_dir(a,c,f):g.L("No physics for object "+a.name)};a.set_character_move_type=function(a,c){b.ia(a)?b.set_character_move_type(a,c):g.L("No physics for object "+a.name)};a.set_character_walk_velocity=function(a,c){b.ia(a)?b.set_character_walk_velocity(a,c):g.L("No physics for object "+a.name)};a.set_character_run_velocity= function(a,c){b.ia(a)?b.set_character_run_velocity(a,c):g.L("No physics for object "+a.name)};a.set_character_fly_velocity=function(a,c){b.ia(a)?b.set_character_fly_velocity(a,c):g.L("No physics for object "+a.name)};a.character_jump=function(a){b.ia(a)?b.character_jump(a):g.L("No physics for object "+a.name)};a.character_rotation_inc=function(a,c,f){b.ia(a)?b.character_rotation_inc(a,c,f):g.L("No physics for object "+a.name)};a.set_character_rotation=function(a,c,f){b.ia(a)?b.set_character_rotation(a, c,f):g.L("No physics for object "+a.name)};a.set_character_rotation_v=function(a,c){b.ia(a)?b.set_character_rotation_v(a,c):g.L("No physics for object "+a.name)};a.set_character_rotation_h=function(a,c){b.ia(a)?b.set_character_rotation_h(a,c):g.L("No physics for object "+a.name)};a.append_collision_test=function(a,c,f,p){b.ia(a)?b.append_collision_test(a,c||"ANY",f,p||!1):g.L("No physics for object "+a.name)};a.remove_collision_test=function(a,c,f){b.ia(a)?b.remove_collision_test(a,c||"ANY",f):g.L("No physics for object "+ a.name)};a.apply_collision_impulse_test=function(a,c){b.ia(a)?b.apply_collision_impulse_test(a,c):g.L("No physics for object "+a.name)};a.clear_collision_impulse_test=function(a){b.ia(a)?b.clear_collision_impulse_test(a):g.L("No physics for object "+a.name)};a.append_ray_test=function(a,c,f,p,m,k){a=a||null;if(null==a||b.ia(a))return b.append_ray_test(a,c,f,p||"ANY",m,k||!1,!1,!1,!1);g.L("No physics for object "+a.name)};a.append_ray_test_ext=function(a,c,f,p,m,k,d,q,D){a=a||null;if(null==a||b.ia(a))return b.append_ray_test(a, c,f,p||"ANY",m,k||!1,d||!1,q||!1,D||!1);g.L("No physics for object "+a.name)};a.remove_ray_test=function(a){b.WB(a)?b.remove_ray_test(a):g.error("Wrong ray test ID")};a.change_ray_test_from_to=function(a,c,f){b.WB(a)?b.change_ray_test_from_to(a,c,f):g.error("Wrong ray test ID")};a.apply_constraint=function(a,c,f,p,m,k,d,q,D,v){b.ia(c)&&b.ia(m)?b.apply_constraint(a,c,f,p,m,k,d,q,D,v):g.error("Wrong objects")};a.clear_constraint=function(a){b.ia(a)&&b.rM(a)?b.clear_constraint(a):g.error("Wrong object")}; a.pull_to_constraint_pivot=function(a,c,f,p,m,k){b.ia(a)&&b.ia(p)?b.pull_to_constraint_pivot(a,c,f,p,m,k):g.error("Wrong objects")};a.navmesh_get_island=function(a,c,n){n||(n=f);if(b.ia(a)){var p=a.C.jp;return p?D.navmesh_get_island(p,c,n):(g.error(a.name+" is not a navigation mesh object"),null)}g.L("No physics for object "+a.name)};a.navmesh_find_path=function(a,p,n,q){if(b.ia(a)){var m=a.C.jp;if(!m)return g.error(a.name+" is not a navigation mesh object"),null;q=q||{};a={};a.do_not_pull_string= Boolean(q.do_not_pull_string);a.distance_to_closest=q.distance_to_closest||f;a.distance_to_farthest=q.distance_to_farthest||c;a.island=q.island||0;a.allowed_distance=q.allowed_distance||Number.MAX_VALUE;a.return_normals=q.return_normals||!1;return D.navmesh_find_path(m,p,n,a)}g.L("No physics for object "+a.name)}};fdage.module.rgb=function(a,q){q("__print");var f=q("__util"),c=new Float32Array(3);a.create=function(){return new Float32Array(3)};a.from_values=function(a,c,f){var q=new Float32Array(3);q[0]=a;q[1]=c;q[2]=f;return q};a.set=function(a,c,f,q){q[0]=a;q[1]=c;q[2]=f;return q};a.css_to_rgb=function(a,c,p,q){q=q||new Float32Array(3);q[0]=a/255;q[1]=c/255;q[2]=p/255;f.TD(q,q);return q};a.rgb_to_css=function(a){a=f.ww(a,c);return[Math.round(255*a[0]),Math.round(255*a[1]),Math.round(255*a[2])]};a.rgb_to_css_hex= function(a){function g(a){a=Math.round(255*a).toString(16);return 1==a.length?"0"+a:a}a=f.ww(a,c);return"#"+g(a[0])+g(a[1])+g(a[2])}}; fdage.module.rgba=function(a,q){q("__print");var f=q("__util"),c=new Float32Array(3);a.create=function(){var a=new Float32Array(4);a[3]=1;return a};a.from_values=function(a,c,f,q){var e=new Float32Array(4);e[0]=a;e[1]=c;e[2]=f;e[3]=q;return e};a.set=function(a,c,f,q,e){e[0]=a;e[1]=c;e[2]=f;e[3]=q;return e};a.css_to_rgba=function(a,c,p,q,e){e=e||new Float32Array(4);e[0]=a/255;e[1]=c/255;e[2]=p/255;e[3]=q;f.TD(e,e);return e};a.rgba_to_css=function(a){var g=f.ww(a,c);return[Math.round(255*g[0]),Math.round(255* g[1]),Math.round(255*g[2]),a[3]]}};fdage.module.scenes=function(a,q){function f(){var a=g.get_canvas();return e.pick_object(a.clientWidth/2,a.clientHeight/2)}var c=q("__batch"),b=q("__camera"),g=q("__container"),p=q("__data"),D=q("__graph"),e=q("__objects"),u=q("__obj_util"),n=q("__print"),t=q("__scenes"),m=q("__subscene"),k=q("__util");a.DATA_ID_ALL=e.DATA_ID_ALL;a.set_active=function(a){var b=t.No();t.set_active(k.keysearch("name",a,b))};a.get_active=function(){return t.sa()?t.get_active().name:""};a.get_scenes=function(){for(var a= t.No(),b=[],c=0;cya&&(d-=S-Math.max(ra,ya)),e+=d,ka.vD(e),A.update(),v.update(),E.update(),k(e,d),c(d));ya=b;a&&a.isPresenting&&a.submitFrame()}}function m(a,b,c){if(aa)if(aa.$P)aa.$P(a,b,c);else{c=atob(aa.toDataURL(b,c).split(",")[1]);for(var d=new Uint8Array(c.length),e=0;ewindow.innerHeight||0>e.bottom?(d&&(c=w.is_paused()),w.pause(),d=!1):c||d||(w.resume(),d=!0)}a++})}function b(a,b,c,d){var e=document.createElement("canvas"),f=document.getElementById(a); f||(J.error('Warning: canvas container "'+a+'" not found, appending to body'),f=document.body);e.style.position="absolute";e.style.left=0;e.style.top=0;e.style.width=f.offsetWidth+"px";e.style.height=f.offsetHeight+"px";e.width=f.offsetWidth*window.devicePixelRatio;e.height=f.offsetHeight*window.devicePixelRatio;b?(a=document.createElement("canvas"),a.style.position="absolute",e.style.left=0,e.style.top=0,a.style.pointerEvents="none"):a=null;f.appendChild(e);if(!w.init(e,a))return c&&v("Browser could not initialize WebGL", "For more info visit","https://www.4dage.com/",d),!1;a&&E.insert_to_container(a,"LAST");return!0}function g(a,b){a?(b&&(document.getElementById(b).style.display="block"),Q=document.getElementById(a)):(Q=document.createElement("div"),Q.innerHTML=0,Q.style.cssText="position:absolute;top: 23px;right: 20px;text-shadow: 0px 0px 6px #fff;font-size: 40px;line-height: 50px;font-weight: bold;color: #000;",E.insert_to_container(Q,"JUST_AFTER_CANVAS"))}function p(a,b){var c= String(a);b&&(c+="/"+String(b));Q.innerHTML=c}function D(a){a=document.getElementById(a);var b=a.cloneNode(!0);a.parentNode.replaceChild(b,a);return b}function e(a,b,c){var d=Math.max(x.hover_get_distance(a),1),e=Z.get_rotation(a,G);b=I.quat_to_dir(e,b,U);b[2]=0;C.normalize(b,b);C.scale(b,d*c,b);c=Z.get_translation(a,ia);C.add(c,b,c);x.set_translation(a,c)}function u(a,b){var c=x.hover_get_vertical_limits(a,aa);if(c.up!=c.down){var d=x.get_camera_angles(a,T)[1],c=(c.down-d)/(c.down-c.up),d=x.hover_get_distance_limits(a, aa),c=Math.max(c,2/d.max);x.hover_rotate(a,0,c*b)}}function n(a,b,c,d){Z.move_local(a,5*b,5*c,5*d)}function t(a,b,c){var d=x.target_get_distance(a),e=Math.abs(b);c=Math.pow(e*c,1-Math.pow(e*c,.15));Z.move_local(a,0,0,0>b?.001a[3])}function z(a){return a[0]&&(a[1]||a[2]||.1a[2])}function E(a){return a[0]&&(a[1]||.1=Math.PI/4?I.AXIS_Y:I.AXIS_MZ,e(a,b,.5*aa.trans*c)):Q?t(a,-aa.zoom,c):n(a,0,0,-aa.trans*c);break;case "BACKWARD":K?Ca[0]=-1:M?(b=x.get_camera_angles(a,T)[1],b=Math.abs(b)>=Math.PI/4?I.AXIS_MY:I.AXIS_Z,e(a,b,.5*aa.trans*c)):Q?t(a,aa.zoom, c):n(a,0,0,aa.trans*c);break;case "UP":M?u(a,30*-aa.zoom*c):K||n(a,0,aa.trans*c,0);break;case "DOWN":M?u(a,30*aa.zoom*c):K||n(a,0,-aa.trans*c,0);break;case "LEFT":K?Ca[1]=1:M?e(a,I.AXIS_MX,.5*aa.trans*c):n(a,-aa.trans*c,0,0);break;case "RIGHT":K?Ca[1]=-1:M?e(a,I.AXIS_X,.5*aa.trans*c):n(a,aa.trans*c,0,0);break;case "ROT_LEFT":Q?x.target_rotate(a,.75*-aa.rot*c,0):x.eye_rotate(a,.75*aa.rot*c,0);break;case "ROT_RIGHT":Q?x.target_rotate(a,.75*aa.rot*c,0):x.eye_rotate(a,.75*-aa.rot*c,0);break;case "ROT_UP":Q? x.target_rotate(a,0,.75*-aa.rot*c):x.eye_rotate(a,0,.75*aa.rot*c);break;case "ROT_DOWN":Q?x.target_rotate(a,0,.75*aa.rot*c):x.eye_rotate(a,0,.75*-aa.rot*c)}else switch(b){case "FORWARD":case "BACKWARD":K&&(Ca[0]=0);break;case "LEFT":case "RIGHT":K&&(Ca[1]=0)}K&&(r.set_character_move_dir(K,Ca[0],Ca[1]),a=x.get_camera_angles_char(a,ja),r.set_character_rotation(K,a[0],a[1]))}W=a;V=b;ka=c;var H=B.get_active_camera();y(H);var Q=!1,K=null,M=!1;switch(x.get_move_style(H)){case x.MS_TARGET_CONTROLS:Q=!a; break;case x.MS_EYE_CONTROLS:K=B.get_first_character();break;case x.MS_STATIC:return;case x.MS_HOVER_CONTROLS:M=!0}var aa=x.get_velocities(H,qa);a=A.create_elapsed_sensor();if(r.has_simulated_physics(H)){var ma=A.create_collision_sensor(H,null,!0);A.create_sensor_manifold(H,"CAMERA_COLLISION",A.CT_POSITIVE,[ma],null,function(a,b){var c=A.get_sensor_payload(a,b,0).coll_dist;if(0>c){var d=A.get_sensor_payload(a,b,0).coll_norm,e=U;C.scale(d,-.25*c,e);c=Z.get_translation(a,ia);C.add(c,e,c);Z.set_translation_v(a, c)}})}if(K){var ma=Z.get_translation(H),R=Z.get_rotation(H),R=I.cam_quat_to_mesh_quat(R);ma[2]-=.5;r.set_transform(K,ma,R);F.append_stiff_trans(H,K,[0,0,.5]);var Ca=new Float32Array(2),za=!0;r.set_character_move_type(K,r.CM_FLY);A.create_kb_sensor_manifold(H,"TOGGLE_CHAR_MOVE_TYPE",A.CT_SHOT,A.KEY_C,function(){za=!za;r.set_character_move_type(K,za?r.CM_FLY:r.CM_WALK)})}var Ja=l.check_enable_gamepad_indices(),ma=Ja.length?Ja[Ja.length-1]:0,Aa,fa,X,Y,Ya,Oa,eb,Ra,da,Ta;b?Aa=fa=X=Y=Ya=Oa=b=ma=eb=Ra=da= Ta=A.create_custom_sensor(0):(Aa=A.create_keyboard_sensor(A.KEY_W),fa=A.create_keyboard_sensor(A.KEY_S),X=A.create_keyboard_sensor(A.KEY_A),Y=A.create_keyboard_sensor(A.KEY_D),Ya=A.create_keyboard_sensor(A.KEY_R),Oa=A.create_keyboard_sensor(A.KEY_F),b=A.create_gamepad_btn_sensor(l.GMPD_BUTTON_6,ma),ma=A.create_gamepad_btn_sensor(l.GMPD_BUTTON_7,ma),eb=A.create_keyboard_sensor(A.KEY_UP),Ra=A.create_keyboard_sensor(A.KEY_DOWN),da=A.create_keyboard_sensor(A.KEY_LEFT),Ta=A.create_keyboard_sensor(A.KEY_RIGHT)); var R=A.create_gamepad_axis_sensor(l.GMPD_AXIS_0,Ja),ha=A.create_gamepad_axis_sensor(l.GMPD_AXIS_1,Ja),P=A.create_gamepad_axis_sensor(l.GMPD_AXIS_2,Ja),Ja=A.create_gamepad_axis_sensor(l.GMPD_AXIS_3,Ja);M||(A.create_sensor_manifold(H,"FORWARD",A.CT_CONTINUOUS,[a,Aa,ha],G,J),A.create_sensor_manifold(H,"BACKWARD",A.CT_CONTINUOUS,[a,fa,ha],E,J));Q?(A.create_sensor_manifold(H,"ROT_UP",A.CT_CONTINUOUS,[a,eb,Ya,Ja],v,J),A.create_sensor_manifold(H,"ROT_DOWN",A.CT_CONTINUOUS,[a,Ra,Oa,Ja],z,J),A.create_sensor_manifold(H, "ROT_LEFT",A.CT_CONTINUOUS,[a,da,X,P],v,J),A.create_sensor_manifold(H,"ROT_RIGHT",A.CT_CONTINUOUS,[a,Ta,Y,P],z,J)):M?(A.create_sensor_manifold(H,"LEFT",A.CT_CONTINUOUS,[a,da,X,R],v,J),A.create_sensor_manifold(H,"RIGHT",A.CT_CONTINUOUS,[a,Ta,Y,R],z,J),A.create_sensor_manifold(H,"FORWARD",A.CT_CONTINUOUS,[a,eb,Aa,ha],v,J),A.create_sensor_manifold(H,"BACKWARD",A.CT_CONTINUOUS,[a,Ra,fa,ha],z,J),A.create_sensor_manifold(H,"UP",A.CT_CONTINUOUS,[a,Oa,Ja],E,J),A.create_sensor_manifold(H,"DOWN",A.CT_CONTINUOUS, [a,Ya,Ja],G,J)):(A.create_sensor_manifold(H,"UP",A.CT_CONTINUOUS,[a,Ya,b],D,J),A.create_sensor_manifold(H,"DOWN",A.CT_CONTINUOUS,[a,Oa,ma],D,J),A.create_sensor_manifold(H,"LEFT",A.CT_CONTINUOUS,[a,X,R],G,J),A.create_sensor_manifold(H,"RIGHT",A.CT_CONTINUOUS,[a,Y,R],E,J),A.create_sensor_manifold(H,"ROT_UP",A.CT_CONTINUOUS,[a,eb,Ja],G,J),A.create_sensor_manifold(H,"ROT_DOWN",A.CT_CONTINUOUS,[a,Ra,Ja],E,J),A.create_sensor_manifold(H,"ROT_LEFT",A.CT_CONTINUOUS,[a,da,P],G,J),A.create_sensor_manifold(H, "ROT_RIGHT",A.CT_CONTINUOUS,[a,Ta,P],E,J));if(!c){var Ma=0;c=A.create_mouse_wheel_sensor(d);var Ga=0,Ja=A.create_touch_zoom_sensor(d);A.create_sensor_manifold(H,"MOUSE_WHEEL",A.CT_LEVEL,[c],null,function(a,b,c){1==c&&(b=A.get_sensor_value(a,b,0),x.get_velocities(a,aa),Q||M?Ma=k(a,b,aa.zoom,Ma,Q):(aa.trans*=1+b*aa.zoom,x.set_velocities(a,aa)))});A.create_sensor_manifold(H,"TOUCH_ZOOM",A.CT_LEVEL,[Ja],null,function(a,b,c){1==c&&(c=A.get_sensor_value(a,b,0),x.get_velocities(a,aa),A.get_sensor_payload(a, b,0)===A.PL_MULTITOUCH_MOVE_ZOOM&&(Ga=k(a,c,.03*aa.zoom,Ga,Q)))});A.create_sensor_manifold(H,"ZOOM_INTERPOL",A.CT_POSITIVE,[a],null,function(a,b){if(Q||M)if(1E-5a[0]},m),A.create_sensor_manifold(H,"GMPD_PAN_X_NEG",A.CT_CONTINUOUS,[R],function(a){return.1a[0]},m),A.create_sensor_manifold(H,"GMPD_PAN_X_NEG",A.CT_CONTINUOUS,[P],function(a){return.1Math.PI/4?I.AXIS_MY:I.AXIS_Z,.2*(f+g))),x.hover_rotate(a,k+m+p,0)):(x.eye_rotate(a,.5*(d+h),.5*(f+g)),K&&(k=x.get_camera_angles_char(a,ja),r.set_character_rotation(K,k[0],k[1])))}});A.create_kb_sensor_manifold(H,"DEC_STEREO_DIST",A.CT_SHOT,A.KEY_LEFT_SQ_BRACKET,function(a){var b=x.get_stereo_distance(a);x.set_stereo_distance(a,.9*b)});A.create_kb_sensor_manifold(H, "INC_STEREO_DIST",A.CT_SHOT,A.KEY_RIGHT_SQ_BRACKET,function(a){var b=x.get_stereo_distance(a);x.set_stereo_distance(a,1.1*b)})}function y(a){var b=x.get_move_style(a),c=A.create_callback_sensor(function(){var c=x.get_move_style(a),d=c!=b;b=c;return d});A.create_sensor_manifold(a,"CHANGE_MOVE_STYLE",A.CT_POSITIVE,[c],null,function(){H();d(W,V,ka)})}function H(){var a=B.get_active_camera();A.check_sensor_manifold(a,"TOGGLE_CHAR_MOVE_TYPE")&&B.get_first_character()&&F.remove(a);for(var b="FORWARD BACKWARD ROT_UP ROT_DOWN ROT_LEFT ROT_RIGHT UP DOWN LEFT RIGHT MOUSE_WHEEL TOUCH_ZOOM ZOOM_INTERPOL MOUSE_X MOUSE_Y TOUCH_X TOUCH_Y ROT_TRANS_INTERPOL CHANGE_MOVE_STYLE TOGGLE_CHAR_MOVE_TYPE".split(" "), c=0;c'+c.replace("https://www.","")+"";e.appendChild(f);e.appendChild(h);document.body.appendChild(e)}function z(a,b,c,d,e){function f(){var g=performance.now()-h;e(b+g*(c-b)/d);(g>=d||!a.parentNode)&&w.remove_loop_cb(f)}var h=performance.now();w.append_loop_cb(f)}q("animation");var x=q("camera"),M=q("config"),F=q("constraints"),E=q("container"),A=q("controls"),K=q("data"),h=q("debug"),l=q("input"),w=q("main"),r=q("physics"),J=q("print"), B=q("scenes"),Z=q("transform"),I=q("util"),C=q("vec3"),N=1,Q=null,W=!1,V=!1,ka=!1,ja=new Float32Array(2),T=new Float32Array(2),U=new Float32Array(3),ia=new Float32Array(3);new Float32Array(3);var G=new Float32Array(4),qa={},aa={};a.init=function(a){function d(){var a=b(m,H,B,n),e=E.get_canvas();if(a){var u=E.get_container();E.resize_to_container();z&&(g(r,t),w.set_fps_callback(p));x&&(f(),c());q&&w.append_loop_cb(function(){u.style.height=u.clientWidth/q+"px"});l&&w.append_loop_cb(function(){E.resize_to_container()}); G&&w.append_loop_cb(function(){E.force_offsets_updating()});v&&M.reset_limits();D==M.P_AUTO?h.test_performance(function(a,b){0==a?(J.log("QUALITY TEST RESULT: UNSUPPORTED, using HIGH"),M.apply_quality(M.P_HIGH)):1.5>b?(J.log("QUALITY TEST RESULT: LOW ("+b.toFixed(1)+" GB/s)"),M.apply_quality(M.P_LOW)):(J.log("QUALITY TEST RESULT: HIGH ("+b.toFixed(1)+" GB/s)"),M.apply_quality(M.P_HIGH));k(e,!0)}):k(e,!0)}else k(e,!1)}function e(a){a.keyCode==A.KEY_P&&(w.is_paused()?w.resume():w.pause())}function k(){} a=a||{};var l=!1,m=null,n=null,r=null,q=0,t=null,u=!0,v=!1,x=!0,B=!0,C=!1,z=!1,y=!1,G=!1,D=M.get("quality"),F;for(F in a)switch(F){case "canvas_container_id":m=a.canvas_container_id;break;case "callback":k=a.callback;break;case "autoresize":l=a.autoresize;break;case "show_hud_debug_info":y=a.show_hud_debug_info;break;case "sfx_mix_mode":C=a.sfx_mix_mode;break;case "show_fps":z=a.show_fps;break;case "track_container_position":G=a.track_container_position;break;case "fps_wrapper_id":t=a.fps_wrapper_id; break;case "fps_elem_id":r=a.fps_elem_id;break;case "error_purge_elements":n=a.error_purge_elements;break;case "report_init_failure":B=a.report_init_failure;break;case "pause_invisible":x=a.pause_invisible;break;case "key_pause_enabled":u=a.key_pause_enabled;break;case "force_container_ratio":q=a.force_container_ratio;break;case "min_capabilities":v=a.min_capabilities;break;case "quality":D=a.quality;break;default:M.set(F,a[F])}D!=M.P_AUTO&&M.set("quality",D);u&&document.addEventListener("keydown", e,!1);M.set("show_hud_debug_info",y);M.set("sfx_mix_mode",C);var H=y||C||null;"complete"==document.readyState?window.setTimeout(d,0):window.addEventListener("load",d,!1);window.addEventListener("unload",function(){K.cleanup()},!1)};a.resize_to_container=function(){J.lb("app.resize_to_container","container.resize_to_container");E.resize_to_container()};a.set_onclick=function(a,b){var c=D(a);c.addEventListener("mouseup",function(){b(c.value)},!1)};a.set_onchange=function(a,b){var c=D(a);c.addEventListener("change", function(){var a=c.checked;b(void 0!=a?a:c.value)},!1)};a.set_onkeypress=function(a,b){var c=D(a);c.addEventListener("keypress",function(a){b(a.keyCode,c.value)},!1)};a.enable_camera_controls=d;a.disable_camera_controls=H;a.set_camera_move_style=function(a){J.Tg("app.set_camera_move_style",["camera.static_setup","camera.eye_setup","camera.target_setup","camera.hover_setup","camera.hover_setup_rel"]);var b=B.get_active_camera();x.set_move_style(b,a)};a.enable_object_controls=function(a){function b(a){return a[0]&& (a[1]||a[2])}function c(a,b,e){if(1==e)switch(e=A.get_sensor_value(a,b,0),b){case "FORWARD":d?r.vehicle_throttle(a,1):Z.move_local(a,0,-1*e,0);break;case "BACKWARD":d?r.vehicle_throttle(a,-1):Z.move_local(a,0,1*e,0);break;case "LEFT":d?r.vehicle_steer(a,-1):Z.move_local(a,1*e,0,0);break;case "RIGHT":d?r.vehicle_steer(a,1):Z.move_local(a,-1*e,0,0)}else switch(b){case "FORWARD":case "BACKWARD":d&&r.vehicle_throttle(a,0);break;case "LEFT":case "RIGHT":d&&r.vehicle_steer(a,0)}}var d=r.is_vehicle_chassis(a)|| r.is_vehicle_hull(a),e=A.create_elapsed_sensor(),f=A.create_keyboard_sensor(A.KEY_W),h=A.create_keyboard_sensor(A.KEY_S),g=A.create_keyboard_sensor(A.KEY_A),k=A.create_keyboard_sensor(A.KEY_D),l=A.create_keyboard_sensor(A.KEY_UP),m=A.create_keyboard_sensor(A.KEY_DOWN),n=A.create_keyboard_sensor(A.KEY_LEFT),p=A.create_keyboard_sensor(A.KEY_RIGHT);A.create_sensor_manifold(a,"FORWARD",A.CT_CONTINUOUS,[e,f,l],b,c);A.create_sensor_manifold(a,"BACKWARD",A.CT_CONTINUOUS,[e,h,m],b,c);A.create_sensor_manifold(a, "LEFT",A.CT_CONTINUOUS,[e,g,n],b,c);A.create_sensor_manifold(a,"RIGHT",A.CT_CONTINUOUS,[e,k,p],b,c)};a.disable_object_controls=function(a){for(var b=["FORWARD","BACKWARD","LEFT","RIGHT"],c=0;cd&&e<=d||c=d)&&(l[b]=f+d+h,g())}if(a&&b&&isFinite(c)&&isFinite(d)&&isFinite(e)){f=f||"";h= h||"";g=g||function(){};var l=a.style,m=b.charAt(0).toUpperCase()+b.slice(1);if(void 0==l[b])if(void 0!=l["webkit"+m])b="webkit"+m;else if(void 0!=l["ms"+m])b="ms"+m;else if(void 0!=l["moz"+m])b="moz"+m;else return;z(a,c,d,e,k)}};a.attr_animate=function(a,b,c,d,e,f){function h(e){a&&(0<=e&&a.setAttribute(b,e),c>d&&e<=d||c=d)&&(a.setAttribute(b,d),f())}a&&b&&isFinite(c)&&isFinite(d)&&isFinite(e)&&(f=f||function(){},z(a,c,d,e,h))};a.queue_animate=function(b){if(b.length){var c=b.shift(),d=c.elem, e=c.prop,f=c.from,h=c.to,g=c.duration,k=c.opt_prefix,l=c.opt_suffix,m=function(){c.cb&&c.cb();a.queue_animate(b)};"css"==c.type?a.css_animate(d,e,f,h,g,k,l,m):"attr"==c.type&&a.attr_animate(d,e,f,h,g,m)}};a.set_camera_smooth_factor=function(a){N=a};a.get_camera_smooth_factor=function(){return N}};fdage.module.camera_anim=function(a,q){function f(a,b,d,e,f){d=n.angle_wrap_0_2pi(b-d);d=Math.min(d,2*Math.PI-d);b=n.angle_wrap_0_2pi(e-b);b=Math.min(b,2*Math.PI-b);if(1E-6>Math.abs(d)||1E-6>2*Math.PI-Math.abs(d))d=0;if(1E-6>Math.abs(b)||1E-6>2*Math.PI-Math.abs(b))b=0;c.is_eye_camera(a)?(f[0]=b,f[1]=d):(f[0]=d,f[1]=b);return f}var c=q("camera"),b=q("controls"),g=q("print"),p=q("scenes"),D=q("time"),e=q("transform"),u=q("tsr"),n=q("util"),t=q("vec3");q("quat");var m=new Float32Array(2),k=new Float32Array(2), d=new Float32Array(3),y=new Float32Array(3),H=new Float32Array(3);new Float32Array(4);var v=u.create(),z=u.create(),x=u.create(),M={},F=!1,E=!1,A=!1,K=!1;a.track_to_target=function(a,f,p,r,q,u,v,x){if(c.is_eye_camera(a)){if(n.is_vector(f))var C=f;else C=d,e.get_object_center(f,!1,C);p=p||1;r=r||2;q=q||1;u=u||1;var z=e.get_translation(a,y);f=t.subtract(C,z,H);var C=c.get_camera_angles(a,m),A=c.get_camera_angles_dir(f,k),E=A[0]-C[0],F=A[1]-C[1],K=Math.abs(Math.acos(Math.cos(E)*Math.cos(F))/p),M=t.length(f)* (1-1/r),T=function(a){return 6*a*(1-a)},U=D.get_timeline(),ia=0,G=function(){b.remove_sensor_manifold(a,"TRACK_TO_TARGET");v&&v()};p=b.create_timeline_sensor();r=b.create_elapsed_sensor();b.create_sensor_manifold(a,"TRACK_TO_TARGET",b.CT_CONTINUOUS,[p,r],null,function(d,f,g){c.is_eye_camera(d)?1==g&&(g=b.get_sensor_value(d,f,0)-U,f=b.get_sensor_value(d,f,1),g=ia&&(c.eye_rotate(a,A[0],A[1],!0,!0),c.eye_set_look_at(a,z),e.move_local(d,0,0,-M),x&&x(),ia++):g=ia&&(c.eye_rotate(a,A[0],A[1],!0,!0),c.eye_set_look_at(a,z),e.move_local(d,0,0,-M),ia++),g=T(g-K-q-u/q),f=g*M*f/q,e.move_local(d,0,0,f)):(c.eye_rotate(a,A[0],A[1],!0,!0),c.eye_set_look_at(a,z),G())):G()})}else g.error("track_to_target(): Wrong camera object or camera move style")};a.auto_rotate=function(a,d,e){function r(d,e,g){if(1==g)if(g=c.get_move_style(d),g==c.MS_STATIC)q(); else if(g!=c.MS_TARGET_CONTROLS&&g!=c.MS_EYE_CONTROLS||!c.has_horizontal_rot_limits(d))u=null,e=b.get_sensor_value(d,e,0),c.rotate_camera(d,e*a,0);else{g=g==c.MS_EYE_CONTROLS?c.eye_get_horizontal_limits(d,M):c.target_get_horizontal_limits(d,M);if(null===u||g.left!=u.left||g.right!=u.right){u=u||{};u.left=g.left;u.right=g.right;v=Math.min(.2,n.angle_wrap_0_2pi(u.right-u.left)/2);g=t;var l=u,p=c.get_camera_angles(g,m)[0];g=f(g,p,l.left,l.right,k);x=a*Math.min(1,g[0]/.2,g[1]/.2)}e=b.get_sensor_value(d, e,0);g=c.get_camera_angles(d,m)[0];g=f(d,g,u.left,u.right,k);g[1]>v&&g[0]>v?x=n.sign(x)*a:g[1] image/svg+xml ')+ "');width: 637px;height: 455px;background-size: 100% 100%;left: 50%;margin-bottom: 40px;-moz-transform: translateX(-50%);-ms-transform: translateX(-50%);-webkit-transform: translateX(-50%);bottom: 0px;";c.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 47px;left: 65px;width: 135px;height: 135px;";e.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 36px;height: 38px;left: 49px;top: 8px;position: absolute;";f.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 38px;height: 36px;top: 47px;left: 84px;position: absolute;";g.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 36px;height: 38px;bottom: 11px;left: 51px;position: absolute;";h.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 38px;height: 36px;top: 47px;left: 13px;position: absolute;";k.style.cssText="position: absolute;top: 55px;left: 434px;width: 150px;height: 150px;";l.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 50px;height: 50px;left: 53px;top: 0px;position: absolute;";m.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 50px;height: 50px;left: 107px;top: 51px;position: absolute;";n.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 50px;height: 50px;left: 53px;bottom: 0px;position: absolute;";p.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 50px;height: 50px;top: 51px;position: absolute;";r.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 222px;left: 183px;width: 85px;height: 85px;";q.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 223px;left: 376px;width: 85px;height: 85px;";t.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 76px;left: 227px;width: 34px;height: 34px;";v.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 76px;left: 376px;width: 34px;height: 34px;";w.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 4px;left: 78px;width: 79px;height: 33px;";x.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 4px;left: 477px;width: 79px;height: 33px;";C.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: -7px;left: 425px;width: 50px;height: 17px;";y.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: -7px;left: 164px;width: 50px;height: 17px;";E.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 68px;left: 274px;width: 92px;height: 92px;";D.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 186px;left: 148px;width: 157px;height: 157px;";F.style.cssText="background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');position: absolute;top: 187px;left: 339px;width: 157px;height: 157px;";b.appendChild(D);b.appendChild(F);c.appendChild(e);c.appendChild(f);c.appendChild(g);c.appendChild(h);b.appendChild(c);k.appendChild(l);k.appendChild(m);k.appendChild(n);k.appendChild(p);b.appendChild(k);b.appendChild(r);b.appendChild(q);b.appendChild(t);b.appendChild(v);b.appendChild(w);b.appendChild(x);b.appendChild(C);a.appendChild(b);b.appendChild(y);b.appendChild(E);J.length=0;z.length=0;B.length=0;Z.length=0;J.push(n, m,p,l,w,x,y,C,t,v,r,q,e,g,h,f,E);z.push('image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml'); B.push(r,r,q,q);Z.push(D,F);for(a=0;aimage/svg+xml', 'image/svg+xml'); u(J,H);u(Z,"#e6e6e6")}function g(a){return[k.create_gamepad_btn_sensor(d.GMPD_BUTTON_0,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_1,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_2,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_3,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_4,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_5,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_6,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_7,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_8,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_9, a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_10,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_11,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_12,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_13,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_14,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_15,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_16,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_17,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_18,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_19,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_20, a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_21,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_22,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_23,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_24,a),k.create_gamepad_btn_sensor(d.GMPD_BUTTON_25,a)]}function p(a){return[k.create_gamepad_axis_sensor(d.GMPD_AXIS_0,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_1,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_2,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_3,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_4,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_5, a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_6,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_7,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_8,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_9,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_10,a),k.create_gamepad_axis_sensor(d.GMPD_AXIS_11,a)]}function D(a,b){var c=document.createElement("input");c.style.cssText="display: inline-block;position = relative;";c.setAttribute("type","radio");c.setAttribute("name","choice");var d=document.createElement("label");d.textContent= b;d.style.cssText="position = relative;display: inline-block;color: white;";a.appendChild(c);a.appendChild(d);return c}function e(a){E.removeChild(A);A=null;switch(a){case "PAD":l.checked=!0;b(E);break;case "WHEEL":h.checked=!0;var c=E;I=!1;var e=document.createElement("div"),f=document.createElement("div"),g=document.createElement("div"),k=document.createElement("div"),m=document.createElement("div"),n=document.createElement("div"),p=document.createElement("div"),r=document.createElement("div"), q=document.createElement("div"),t=document.createElement("div"),v=document.createElement("div"),w=document.createElement("div"),x=document.createElement("div"),C=document.createElement("div"),y=document.createElement("div"),D=document.createElement("div"),F=document.createElement("div"),K=document.createElement("div"),M=document.createElement("div"),ta=document.createElement("div"),na=document.createElement("div"),L=document.createElement("div"),ua=document.createElement("div"),O=document.createElement("div"); a=document.createElement("div");var ea=document.createElement("div"),sa=document.createElement("div"),ba=document.createElement("div"),Ba=document.createElement("div"),oa=document.createElement("div");A=e;var Da="position: absolute;height: auto;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 19px;height: 19px;background-size: 100% 100%;";e.style.cssText="position: absolute;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 397px;height: 455px;-moz-transform: translateX(-50%);-ms-transform: translateX(-50%);-webkit-transform: translateX(-50%);transform: translateX(-50%);background-size: 100% 100%;left: 50%;margin-left: 25px;margin-bottom: 40px;bottom: 0px;";f.style.cssText=Da+"top: 132px;left: 331px;";g.style.cssText=Da+"top: 122px;left: 315px;";k.style.cssText=Da+"top: 122px;left: 347px;";m.style.cssText=Da+"top: 113px;left: 331px;";n.style.cssText="position: absolute;height: auto;background-image: url('data:image/svg+xml;base64,"+ btoa('image/svg+xml')+ "');width: 54px;height: 37px;background-size: 100% 100%;top: 84px;left: 166px;";p.style.cssText="position: absolute;height: auto;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 54px;height: 37px;background-size: 100% 100%;top: 84px;left: 36px;";r.style.cssText=Da+"top: 107px;left: 141px;";q.style.cssText=Da+"top: 107px;left: 90px;";t.style.cssText=Da+"top: 185px;left: 321px;";v.style.cssText=Da+"top: 185px;left: 340px;";w.style.cssText=Da+"top: 179px;left: 358px;";x.style.cssText=Da+"top: 178px;left: 303px;";C.style.cssText=Da+"top: 210px;left: 299px;";y.style.cssText=Da+"top: 279px;left: 299px;";D.style.cssText=Da+"top: 210px;left: 321px;";F.style.cssText=Da+ "top: 279px;left: 321px;";K.style.cssText=Da+"top: 210px;left: 344px;";M.style.cssText=Da+"top: 278px;left: 344px;";ta.style.cssText=Da+"top: 124px;left: 147px;";na.style.cssText=Da+"top: 138px;left: 133px;";L.style.cssText=Da+"top: 124px;left: 82px;";ua.style.cssText=Da+"top: 138px;left: 96px;";O.style.cssText=Da+"top: 278px;left: 367px;";Da="position: absolute;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 19px;height: 46px;background-size: 100% 100%;";a.style.cssText=Da+"top: 291px;left: 50px;";ea.style.cssText=Da+"top: 291px;left: 111px;";sa.style.cssText=Da+"top: 291px;left: 171px;";ba.style.cssText="position: absolute;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 297px;height: 179px;background-size: 100% 100%;top: 43px;left: -25px;";Ba.style.cssText="position: absolute;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 33px;height: 10px;background-size: 100% 100%;top: 159px;left: 324px;";oa.style.cssText="position: absolute;background-image: url('data:image/svg+xml;base64,"+btoa('image/svg+xml')+ "');width: 10px;height: 33px;background-size: 100% 100%;top: 148px;left: 335px;";c.appendChild(e);e.appendChild(a);e.appendChild(ea);e.appendChild(sa);e.appendChild(ba);e.appendChild(Ba);e.appendChild(oa);e.appendChild(f);e.appendChild(g);e.appendChild(k);e.appendChild(m);e.appendChild(n);e.appendChild(p);e.appendChild(r);e.appendChild(q);e.appendChild(t);e.appendChild(v);e.appendChild(w);e.appendChild(x);e.appendChild(C);e.appendChild(y);e.appendChild(D);e.appendChild(F);e.appendChild(K);e.appendChild(M); e.appendChild(ta);e.appendChild(na);e.appendChild(L);e.appendChild(ua);e.appendChild(O);J.length=0;z.length=0;B.length=0;Z.length=0;J.push(f,g,k,m,n,p,r,q,t,v,w,x,C,y,D,F,K,M,ta,na,L,ua,O);z.push('image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml'); Z.push(ba,a,sa,ea,Ba,oa);for(c=0;cimage/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml', 'image/svg+xml'); u(J,H);u(Z,"#e6e6e6")}}function u(a,b){function c(a){a=a.target;if(!(0>x||"G"==a.dataset.ek))if(0!=F){if("R"==a.dataset.ek&&(M=null,document.getElementById("action_label").textContent="Click on the buttons & arrows to setup your controller",F=0),"B"==a.dataset.ek||"GR"==a.dataset.ek){var d=parseFloat(M.dataset.vt);M.style.backgroundImage="url('data:image/svg+xml;base64,"+btoa(z[d])+"')";M.setAttribute("data-colorstate",a.dataset.ek);M=a;d=parseFloat(a.dataset.vt);a.style.backgroundImage="url('data:image/svg+xml;base64,"+ btoa(z[d].replace(b,"#ff0000"))+"')";a.setAttribute("data-colorstate","R")}}else{var d=parseFloat(a.dataset.vt),e="B"==a.dataset.ek?1:2;F=e;a.style.backgroundImage="url('data:image/svg+xml;base64,"+btoa(z[d].replace(b,"#ff0000"))+"')";a.setAttribute("data-colorstate","R");document.getElementById("action_label").textContent=1==e?"Now press the button on the device":"Now move the axis on the device";M=a}}for(var d=0;d=b&&400=a&&400=a||400>=b?"0.3":"1"}var m=q("container"),k=q("controls"),d=q("input"),y=q("storage"),H=/#5276cf/g,v={};v[d.GMPD_BUTTON_12]=d.GMPD_BUTTON_12;v[d.GMPD_BUTTON_13]= d.GMPD_BUTTON_13;v[d.GMPD_BUTTON_15]=d.GMPD_BUTTON_15;v[d.GMPD_BUTTON_14]=d.GMPD_BUTTON_14;v[d.GMPD_BUTTON_3]=d.GMPD_BUTTON_3;v[d.GMPD_BUTTON_0]=d.GMPD_BUTTON_0;v[d.GMPD_BUTTON_1]=d.GMPD_BUTTON_1;v[d.GMPD_BUTTON_2]=d.GMPD_BUTTON_2;v[d.GMPD_BUTTON_5]=d.GMPD_BUTTON_5;v[d.GMPD_BUTTON_7]=d.GMPD_BUTTON_7;v[d.GMPD_BUTTON_4]=d.GMPD_BUTTON_4;v[d.GMPD_BUTTON_6]=d.GMPD_BUTTON_6;v[d.GMPD_BUTTON_8]=d.GMPD_BUTTON_8;v[d.GMPD_BUTTON_9]=d.GMPD_BUTTON_9;v[d.GMPD_BUTTON_10]=d.GMPD_BUTTON_10;v[d.GMPD_BUTTON_11]=d.GMPD_BUTTON_11; v[d.GMPD_BUTTON_16]=d.GMPD_BUTTON_16;var z=[],x=-1,M=null,F=0,E=null,A=null,K=null,h=null,l=null,w=null,r=[],J=[],B=[],Z=[],I=!0,C={};C[d.GMPD_AXIS_0]=-2;C[d.GMPD_AXIS_1]=-2;C[d.GMPD_AXIS_2]=-2;C[d.GMPD_AXIS_3]=-2;C[d.GMPD_AXIS_4]=-2;C[d.GMPD_AXIS_5]=-2;C[d.GMPD_AXIS_6]=-2;C[d.GMPD_AXIS_7]=-2;C[d.GMPD_AXIS_8]=-2;C[d.GMPD_AXIS_9]=-2;C[d.GMPD_AXIS_10]=-2;C[d.GMPD_AXIS_11]=-2;a.show=function(){var a=document.createElement("div");E=a;a.style.cssText="position: absolute;width: 720px;height: 750px;top: 50%;left: 50%;-moz-transform: translateY(-50%) translateX(-50%);-ms-transform: translateY(-50%) translateX(-50%);-webkit-transform: translateY(-50%) translateX(-50%);transform: translateY(-50%) translateX(-50%);background-color: black;border: 4px solid white;border-radius: 35px;box-shadow: 0px 0px 20px 0px rgba(50, 50, 50, 1);"; m.insert_to_container(a,"LAST");b(a);var r=document.createElement("div");r.style.cssText="position: absolute;width: 637px;top: 0px;font-family: sans-serif;text-align: center;margin-top: 40px;-moz-transform: translateX(-50%);-ms-transform: translateX(-50%);-webkit-transform: translateX(-50%);transform: translateX(-50%);left: 50%;";var q=document.createElement("div");q.innerHTML="Select a device";q.style.cssText="color: #fff;display: inline-block;";r.appendChild(q);for(q=0;4>q;q++){var u=g(q),v=function(){return!0}, A=function(a,b){if(b==x)for(var c=0;cu;u++)A=n(u),u==x&&(A.style.backgroundColor="green",K=A),c(u),q.appendChild(A),A.setAttribute("data-device_type", "PAD"),T.push(A),A.addEventListener("click",function(a){var b=f();a=a.target;for(var d=0;dq;q++)u=p(q),v=function(){return!0},A=function(a,b){if(b=="AXES"+x){for(var c=0;cc;c+=2){if(f=a,g=b,e=c,!(e+1>2*Z.length)){l=k.get_sensor_value(f,g,e);f=k.get_sensor_value(f,g,e+1);if(-2c;c++)e=c,e>=Z.length||(l=k.get_sensor_value(a,b,e),-2a;a++)k.remove_sensor_manifold(null,a),k.remove_sensor_manifold(null,"AXES"+a);window.removeEventListener("resize",t)};a.update=function(){for(var a=0;4>a;a++)c(a)}};fdage.module.gyroscope=function(a,q){function f(a){var f=b.create_gyro_angles_sensor(),g=b.create_gyro_quat_sensor(),q=!0;b.create_sensor_manifold(a,"CAMERA_ROTATE_GYRO",b.CT_CONTINUOUS,[f,g],null,function(a,f,g){if(0k&&n[1]n[1]&&(f=-f);g=u[0]-n[0];if(f>Math.PI/2||f<-Math.PI/2)f=0;n[1]>-m&&n[1]<-k&&(g=0)}if(-90==window.orientation){f=n[0]-u[0];if(f>Math.PI/2||f<-Math.PI/2)f=0;g=u[1]-n[1];if(n[0]>d||n[0]Math.PI/2||f<-Math.PI/2)f=0;g=n[1]-u[1];if(n[0]>d||n[0]Math.abs(e)?0:e;d=v.get_camera_angles(k,ja);e=d[1]-e*b;c=-(.05>Math.abs(c)?0:c)*b;e=F.clamp(e,B,Z);v.eye_rotate(k,c,e,!1,!0);x.set_character_rotation(a,d[0]+c+Math.PI,0)}})}var p=0,r=0;z.create_sensor_manifold(null,"FPS_DRAG_PRESS",z.CT_SHOT,[e],function(a){return a[0]},function(a,b,c){1==c&&(a=z.get_sensor_payload(a, b,0).coords,p=a[0],r=a[1])});z.create_sensor_manifold(null,"FPS_DRAG_MOVE",z.CT_CONTINUOUS,[d,e],function(a){return a[0]&&a[1]},function(a,b,c){1==c&&(a=z.get_sensor_payload(a,b,0).coords,I[0]+=(a[0]-p)*h,I[1]+=(a[1]-r)*h,p=a[0],r=a[1])});d=z.create_elapsed_sensor();z.create_sensor_manifold(b,"FPS_SMOOTH_DRAG",z.CT_CONTINUOUS,[d],null,c,f)}}function D(a){r.enable_hmd(r.HMD_ALL_AXES_MOUSE_NONE);a.addEventListener("mousedown",function(){K.request_fullscreen_hmd()},!1)}function e(a){var b=z.create_elapsed_sensor(), c=M.get_active_camera();z.create_sensor_manifold(a,"FPS_CHARECTER_VR_ROT",z.CT_CONTINUOUS,[b],null,function(a){var b=v.get_camera_angles_char(c,ja)[0];x.set_character_rotation(a,b,0)})}function u(){var a=r.check_browser_support()&&!E.detect_mobile(),b=K.get_device_by_type_element(K.DEVICE_HMD);b&&(a=a&&K.get_value_param(b,K.HMD_WEBVR_TYPE)==K.HMD_WEBVR1);return a}function n(a,c,e){function f(a){a=0a?-1:a);a=n+p;var b=l+m;x.set_character_move_dir(c,a,b);e&&e(a,b);h(a,b)}function g(a){a= 0a?-1:a);a=n+p;var b=l+m;x.set_character_move_dir(c,a,b);e&&e(a,b);h(a,b)}function h(a,b){var c=k.Il.id;a||b?0==c&&d(k,1):d(k,0)}E.detect_mobile()&&b(a.parentElement?a.parentElement:a);var k=y(c),l=0,m=0,n=0,p=0;a=[z.KEY_W,K.GMPD_BUTTON_12];var r=[z.KEY_S,K.GMPD_BUTTON_13];E.detect_mobile()&&(a.push("B4W_DEFAULT_BTN_1"),r.push("B4W_DEFAULT_BTN_2"));H(1,a,function(a){n=a;a=n+p;var b=l+m;x.set_character_move_dir(c,a,b);e&&e(a,b);h(a,b)});H(1,r,g);H(1,[z.KEY_D,K.GMPD_BUTTON_15],f);H(1,[z.KEY_A, K.GMPD_BUTTON_14],function(a){l=a;a=n+p;var b=l+m;x.set_character_move_dir(c,a,b);e&&e(a,b);h(a,b)});H(1,[z.KEY_SPACE,K.GMPD_BUTTON_1],function(a){0b.indexOf(d.ru[e]))return}function k(a,b){for(var c=null,d=0;db[h])f.push(z.create_keyboard_sensor(b[h]));else if(326>b[h])for(var k=0;kd?c(1):c(0)};break;case 3:b=z.CT_CONTINUOUS,e=function(a){for(var b=0;bb.id.toUpperCase()?1:0})}}function c(){for(var a=new Float32Array(100),b=0,c=0;100>c;c++)a[c]=20*Math.pow(1E3,b),b+=1/ 99;return a}function b(){var a=g("MASTER"),b=d.get_compressor_params();b&&(a.Y.push(["THRESHOLD",b.threshold,-100,0,100,!1]),a.Y.push(["KNEE",b.knee,0,40,40,!1]),a.Y.push(["RATIO",b.ratio,1,20,20,!1]),a.Y.push(["ATTACK",b.attack,0,1,1E3,!1]),a.Y.push(["RELEASE",b.release,0,1,1E3,!1]));a.Y.push(["VOLUME",d.get_volume(null),0,1,50,!1]);a.mute=d.is_muted(null)?1:0;a.Ff=-1;return a}function g(a){return{id:a,Y:[],Oj:0,mute:-1,Ff:-1,Ub:null}}function p(a){var b=g(k.get_object_name(a));b.mute=d.is_muted(a)? 1:0;b.Ff=0;b.Ub=a;return b}function D(a){if(a.Ub){a.Y.length=0;var b=d.get_positional_params(a.Ub);b&&(a.Y.push(["DIST_REF",b.dist_ref,0,1E3,1E4,!1]),a.Y.push(["ATTENUATION",b.attenuation,0,50,1E3,!1]),a.Y.push(["DIST_MAX",b.dist_max,0,1E4,1E4,!1]));if(b=d.get_filter_params(a.Ub))a.Y.push(["EQ_FREQ",b.freq,20,2E4,100,!0]),a.Y.push(["EQ_Q",b.Q,0,10,100,!1]),a.Y.push(["EQ_GAIN",b.gain,-70,30,100,!1]);a.Y.push(["VOLUME",d.get_volume(a.Ub),0,1,50,!1]);y.clamp(a.Oj,0,a.Y.length-1)}}function e(a){for(var b= 0;bg?m=g:m<-g&&(m=-g));b.oi= m;break;case l:case w:b.cn?m=b.cn:b.oi&&(m=b.oi,b.type==w&&(m*=a)),b.random&&b.kj&&(b.type==w?(b.speed=Math.random()+.1,g=b.vN-b.CN):g=b.max_height-b.min_height,c[0]=10*Math.random()-5+f[0],c[1]=10*Math.random()-5+f[1],c[2]=p-(Math.random()*g-.5*g),b.kj=!1)}m&&(c[2]=p+m);var c=z,g=x,q=M,m=K,u=b.rig,f=b.collider,p=b.destination,v=b.speed,y=b.actions,T=e.get_current_anim_name(u);if(!e.is_play(u)||!y.To||-1==y.To.indexOf(T)){k.get_translation(f,c);var t=p[0]-c[0],U=p[1]-c[1],t=Math.sqrt(t*t+U*U);if(t> 2*v*a)b.state=20,H.horizontal_direction(p,c,q),y=b.rig,e.is_animated(y)&&(u=b.speed,v=e.get_frame(y),y=e.get_anim_length(y),u*=y/24*(1-v/y),.9>t/u&&d.scaleAndAdd(p,q,u-t,p)),t=A,u=F,k.get_rotation(b.collider,t),d.transformQuat(H.AXIS_MY,t,g),u[0]=g[0],u[1]=g[1],u[2]=0,d.normalize(u,u),v=d.dot(u,q),y=a/(Math.abs(Math.acos(v))/Math.PI)*b.rot_speed*b.vx,n.rotationTo(u,q,m),n.rotationTo(H.AXIS_MY,u,t),1<=Math.abs(v)?n.copy(t,m):(n.multiply(m,t,m),n.slerp(t,m,Math.min(y,1),m)),q=a,b.type!=l&&(q=Math.max(q, 1/60),t=E,u=A,n.setAxisAngle(H.AXIS_X,-Math.asin(-g[2]),u),n.setAxisAngle(H.AXIS_X,-Math.atan(b.oi/(b.speed*q)),t),n.slerp(u,t,q,t),n.multiply(m,t,m)),k.set_rotation_v(f,m),g=M,f=F,H.quat_to_dir(m,H.AXIS_MY,g),d.scale(g,b.speed*a,f),d.add(f,c,f),f[2]=b.type!=h?(p[2]-c[2])*a*.1+c[2]:p[2],k.set_translation_v(b.collider,f);else if(b.type==h)y.move?T&&-1!=y.move.indexOf(T)&&e.is_play(u)?b.state=20:(b.state=10,b.kj=!0):(b.state=10,b.kj=!0);else if(b.type==w||b.type==l)b.kj=!0;if(D(b)&&(c=b.rig,!e.is_play(c))){m= null;switch(b.state){case 10:m=b.actions;m=m.To?H.random_from_array(m.To):null;break;case 20:m=e.get_current_anim_name(b.rig),g=p=b.actions,g.Wh&&-1==g.Wh.indexOf(m)&&g.move&&-1!=g.move.indexOf(m)&&.33e;e++)if(c=u.get_sensor_payload(a,b,e).hit_fract){b=c;break a}b=void 0}e=100*b;d.oi=ed.max_height?-10:0;break;case h:a=u.get_sensor_payload(a,b,0);d.Yv=a.hit_pos[2];break;case w:a=u.get_sensor_payload(a, b,0),"CLOSE_GROUND"==b?(d.oi=100*a.hit_fract-1,d.oi=.1>d.oi?.05:0):"CLOSE_WATER"==b&&(d.cn=100*e,d.cn=d.cnd.vN?.02:0)}else d.oi=0}function b(){for(var a=0;a=v.length))for(var a=0;a