QC4DC4D6޿޿JFIFHHhICC_PROFILEXlcms0mntrRGB XYZ  acspMSFT-lcms desc@cprtHNwtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$mluc enUS$sRGB IEC61966-2.1mluc enUS2No copyright, use freelyXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT{L&f\CCM" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ҶҼ[SV:hWW&_=ޭOxF@NNY-ܿͦ_[i\mus\?t ח6ܞ 'Gu-GǺJF}^גd]4&/|s\w,FЄb)ΝOħAJ ˒Nr̷+ ,q3,5Zuk_cK !FjN:MҍhTJaVJZ-恬[GY^J`^m>4nk7.ZY-쮵hmα]ul;{ BI`ʊ uZ_l~1.i}EqKxKKѬInmu&cye44m3]($ `SQ~#kQ\xi-<cXign#kE$Eeeie.\MiԴf=b[[/ M-kkFx /ީ,׊Sn]X_0TFiקiҭ*ӕ ׊')IUɸ_JU$)bq0xxabl<0Ԏ"^ B.. tcY,o^h ;M3F5 ä6-m,f$m(aYO>ԵMKMWVTuQ|mL^=^;zJxZԢ5B<4V7 R|GS]oUnj'n zy"wGAteEE?Oz`>Nhs:}8>N8=:gbxH=yQOeut:ֽ~Ǔp'9<Hu9>{v#t]o_/)q=;{wǠ&01c׷|t9;cԜssӧ8N~']ֽuE91=֔ qG)N0}AC0iFzz=Cv`'M(3ӏAۦ}z8:dgۡ'9㎇9^_ߧC]?~חd8'';:wgq1|—<ܟn[Z}. m E?ӷ9>g#=:d})>guךvx,:pi76Ⱥ'#kmSMm^R`` `{(q'K7şuK=+3IamKiU׶fƙ[K\Uh'9?lo^jZeh燮KiqddUӌCl+'R&WvW60-5W\%xX}n^!0Ћ+:u\)VMҔҼ |7C/ ^J>>ʜb*8xŧRJ-sd09}18=ǾG_SߌU{~s7$NGOn:W[_?]m/-w:Mq~<^'FI$gϷ~֕{[/o-;1xV#'|ts{Tђ9?>Cޛ3zq=z gě߳;wpph؟`={O玼Nܒ׶:מ??˿p˷Ԕ}hsG?L_NqoO\}s#=qM{ ~Y=[T_TI=?Ȝz$O\GМGzl~ޚ7qg?=q׾{ѽUo=>:MC;ǜ1G p#z8JAlc#s֋}/8=?^;u&:rq랣3zh9aLt\?~սEO3~֌c3'8=1ߞځیG<>:ѿ?@}><۸9}AN8_O_`zc9#Nzg sg߁랧j #׿PGI8 ~O˷M9O~=O \u=zc?=F}=|~ v~tԓ:zG#4yatDߜ{}y\{_=zp89=.N}Oq=J6Zw@O O:b~Ou'rgd׏Zwק;zz_&=9;sK<zgFI{:qqt'sؓ┏N#_GPAudo%r W'=8o.,uޠte4(}J˺w8V8G֭:JNS*Ԩhъ\ժ_Hn]p'VRQu'^)'htW5|Dޯ4N6owĞ--6B_5ld59㵺zFjjܶ7ooie`T\j]K(G_m-O&$ڗuۖFQ%h!`~Dӭ-tBbZfy9$ߜ\Ȥ瑜2r3sbzc۞4(ᠩP PMXw)9T96۝J'&ܥ7sbӭQ׻B1N8 tRBG}AIN?RA׶jO~=#׭=}sߏq1<k_.A@'^au/ ZZE.-$=4kk;}si6؋{EK./n0I7<~q9\秹'{r Nyj=P<6"4ҧE^q:=՚Է*)RNTkx5ISuөIPUi9+BQpJXq5h޺\uݼ67gJ kLnkG$E̞%٧]/T$bMIh $ZR\_Z:v)M? g[ (VY4.mtf=W<>a|A|/{:ƾ 5h`< \d1İ8{/E`iQXVʬB(ҡ" Ob1 l1P۞}{ T+0i?{![h傜נ9@v1@VIi Ho Si;0\_C&R+&ϑ2%̌#w-+ʀ $r!rēJ82pUl>^Scu2n/<< ;ufbi% LSd|7ٕ>, t?\y'sǦ}zu0cǿ|N w׃s8J=8pp9Vq'Ӏ@|'ێ{7 gדp8oN߷ :y#9~F>Ƿa(Gn#rùg>}>~K1'瞽>ׯo1Cg}S{E9CCqgv1?LqM^>^1Hsv1P3@$lzgKC['se}1Gs랽ij:hXZJ+kVX&ky緺)>$Tu8SE._jY}2n#gspFĮ RcN9nʤjr3yc 8JiI>hJi&4SP)HrNy9P((%(JZ[=Ħ{ۭKR=={RwzvߎIϧ_zG>|? oH8L`c43Ƿ~8Ac s9P#z^~^?\C#Lr>;})`~_A9~=hӡ#y+׷o8~29jf;7 N{t;n}0}Nӏ|p3փ#I$c2y8S>v8{zu: 4_\?;y<t?ϡt ?xO_?=q>_?S:gCaϵО<0>ثrrN2,S|%94gxK)8C\#.h)>^{$NNqMsArQvFp9S:N4qԞn#l^#ӧ=W_B}6gÁ?/NG}=xqp)GLN9Sqߎ8^:cj?/}9t}< {qp8vzq|cOO^8=[֏Ӿ[ӿ0dgr1g\ׯaӿsۊS{u9>p:OOLzp:??N=ΌϿɠ䁃 M~#`nqJ=/~;zww{N39Ґ={Lq܎yzsԟ=:^;}1za~jޢ=CCî=;^=?Ns'zz{n:(vx#>أu~a?]?\rxz~zt?Olzvs yO vr9Ǹim^ݣu.G^ÿ;cl @<'㎹CF^G>?9Þ2=;g?ON[A]gudw{u;pGzR)=G?|Rr?9tQix=?~f`ӹǏOO=濥??Gۿndu?q:w{s|G~{ϧ^O9z-?w y۟#ӨR @Gl8灟Sn^]͇_+{i%Œ\ז-͢Ȇ{xA0K$ -0RX,aϡos뭥I~}41Z~Ћvxe.)dyI#Efba,(c"ZHo4m.hn`hA0ڼ\Z M5 ʟ4S1rNP+ZI0m8/KqM9SGF)$jMJ/ކ)Zm))>e8{Ӷ)<8צNq׎On(1;F3p{#玹8 Ǧ+OB?^w''qϷNGd~'c`X1[#`w.y\N^n'Q}ץ `1uP[j֥/o?oy?.^qupO_301\x}+s9>y1_Dz/ӣ`?yؿXϻ9 "s-9ko8#y=?t_#_=?!wgCЊwQ={qۧ^r(T/^ N{/Gy??WGRc?\}zc>iz~*P_w~X*/w诧?lqYsCMqǨ;#^=9==zqcOg_U_Y~ i_3v?֏_x~|uZz8(<9G׎{(/LpU7;o9tnsO?O3sY^ζV0D׷$).%&4-L#sy9L^\;g?ZR$[M)'~Y4j2viuFQ4Ӕ/Δqr抒M7y)^>G#[<hw?c2Kc:Oմַgd$巖F#G}x@cc5R*t5IV 3ҫR2 nucOPstcZrM5VիaUaW"wR*U*2j ܼX_\./.? #ds=#$c89;rymoo~֢_ܗzbc@;EӉ:㷥ßO~3{t;F9~˷QʎWt3O? Lzz{뚿K]령wuj3'?#On)ޟcߞ?#4j󿧟}v.s=2=x3aӎK$#~ש#__x9>g<}ISqӁz3#=y8tt?sNOg# 2zc=?xێ&Aۜ>1nm?8=3qӜѸt{\ך0\go>1JG_־L5۾]yq1{}?4#ӓ@$qc R_1;~8 p1{uQb==?Oà /㧧o? p8{`8uv/By@קl\(#qï}~s:=LRsq#Qn_ _&y?9T9?Ǯ}sf_װwv_+rzs9?oғǿ^=8c qv9'߮(5q sӷ~LsJy~ {<G^G~;1O_+_uwL<iI_B;9ccS?ڌ}GAsL~?^qK u!2SϠ=GN)}=HGN1tyiq2q߾Aǧz&F}Op=G_NߘO~A'=;øg@>~=Mv~2y=`~{0Ns^qF3Г}88z_o>`2GOaÜ?3׿J^z??_q:z{ 힜cS^~ {d}=NQ}^2:34y?OzL=qI]u?VBd<s!8xOz(_F {îu2K|O?g<~Z9yu@n{yݞsojO1=@>韠u9.S׎#@G~F?=?7o裑?c?Z3NpqۡsS_oϯi=\?<;vPs9ׂi8{}۟|җA9j1鎸GڏO0鷭#9:qӞq׾L0} *SqcsG_tkmO[#߁۷Jnq;qSA^y:ݾ^8oӾzz<D׿1zuN$tas۫~?glq83#Rq@=}18OPӥM:/߅1ӓ9>z8vs /|d__ 1_?P#'۞;iCdzy?<3ӯ>qGN=O^y9h?ou_NS =9H=}xv#'?L3I@8xޏ=4o5oziv@s@?jc:7ۧ<{ '4;u>Rc Qo8z!Wildz K3qIQ ͎K^ۿGEam%I'iF|1h9ϨGN=F sm$a"wOUѷ~I:s׸8ӿ> ǿoPN}u>R9'=)_0q2~YH8/<=g8<~|?N=>Kif2H?4ǡL#'ש Ӧp9Gzt=_Ɇ4_@|cӧ Ƕ?,O\u?:Nq~yJysH_ n@Ͽ_L9OΓ.=:Ӣ@=s'4s\c"]çǂ}2O=hrx}}nctIz{O84yu;Z:GជnxяN#Gp >N>Fz1߈;/Xkz>}^lt䞤sz=0:^Gؘ3oLQ_ ç't=Iv'ۜcLrzҜsCa=3G==H=8}}ߨY_8z})3'ߨzԤu@y8=}=)988\q^A_;\}y=~Ӧ)3HsǯsK׌dgsO㌎}LcxȣAw~`~~zޓ'#nx>q8?Ϸ><~_]Y[y쇮:{=F'QϯQqiObzOO=NۿNh?>})jwo_D=}>y#9}rOzx9}F93ӧ1W30YPqO}gvi~ۦsH\t, (av[gLS;u#qaEEQ09}II9<-~^>q1=z/'6a9r)ʡAO O9A) q~3ב(dӯE/}Zing=N\ʗ2zz\t:us'}:uF:OQY|_:8 zczu sߟ\ߢcoן~xF?Oc<_>e]N`3{i;qg۷$S^0 AR0U0TG# F$@`X(A?.O@?8G_ x qO^y#[N1۹>z? }=F=H}۠<4?\׏@Q랝:9ۨ$z]=/ O'9ӹ뎹;9>\韯ncc$89R}KIOփǜv Q:}qp3dϷ]$cACFGqgӌQ߀}ܜw\u9<=m~⌞p3}z1H}>lt}q=8p3L` }(;ydp8SON8qߎSL?ri8R@8<}.)~z=֏~灎?~=[}tH8lNNӯ=y':yzD8c:qNAl~>#^ӶS׎s_o=t_~ ~t=?Ϸq;c可/^xǏ9='8f gGv}y#\=cdH(ÌwQ@ܳlR~ɀ}v n }pI<ԁF_^{}0r76=rw?O z^ujw_xc=A?ӌc<׾~.x=:ק=G=3O_Abzt{_l//p~s@ϯ#liF@G})88psFzu_U?mo`!Nx@˷=szNqL 3 }}pLܑy^@_.yV'ޝGSߧ'= >OO~DZc9펔{#>Ϟ?J<렙?8C|zS]C. ǣN:9q#?:+q,lJ唣.Ur;}އ= ;ɤ'e;>[:y.h)^Ik+%&;WwI/'IgqAN{qR2;ק?.ROvߧ_9zp{~Hq>z׏֗㧡\ Guk9=SI;==zO^K?ۏCsLϷǯx?_ o_x:c<{ 3oן^} 31֗ncU? h=Dݰ=>z#1@8ۧaI=㯿ϩ4Wwkۏcg!<לюۑߓN~zێߟoK_`va:w8>遏NQsgv~:{uaHpsr#\`|-;鿟ՇsFzl⌟Ϯr}ǯׯ/q1?3S~cAg''ۜp:zzw1lbsG~81'o>Ow>]'cȣGqR:率?_~{P\qOCiH7A{N{ǧ9ԯ^sr:.r>Rooݿ}m+)R4$80ݟ2v089O\u\K88~Y9uWۡwLdI:N_Ӯ8#=Et:CKwgۮ\:}58aJ>=ΐv=3=zNsϦ)_?uזx{sOSר?^V}#w\~/K߇_>maNO;◁ߦ9A#<QPGy[=6sۀ{sӧAzzsǡ3ޟÂhޠ{oLp냒WpzqO}F{QN>i_a#G3ة!ó~ypÕ8z$YLqךCdc `H8X8 A8-o_^\zc8|H9'& iAO=:~o֚+oitÌg}:P{8}3}sޗ;瓟Sq\}/ZmF8LRN3>;Tv=}As{cIuyzr9qӮsG^ ێdw;zzqN88㎿מ}pv/#=u{c`y)x'\_=y({!_abq$ON2+WAGCyCڎ=9^ l1|O|Su}7!'y=zt֗}H$tZ8Lzǿ?NG{ko~=qlg{E;= z}{Nq cj\cדqn%oÂzzyu;82O?}Ld<~1>}߆9b9zS b`+| E &>ӑk: nqppzH+/-<k-꘣vGP{z9z7ӟUTR,,CDCn rq_P?rNi-Vzyl6~jA=cӿ;dԞAǧz^O9={sy,WM?tӧ{=sשt{u9y<@9GGOV9$`T/-\q3NxgA*ê<ԥJyU} ԩbo\ e)7y8S^vק{=?OA>8zېtzQ_7ks:z}@:x페=F8bzn?Ƿ=e 'l}~=:sDN8/81]u]}|6oZt1zL`2NQ RWzOlzr{~4'ޝ],zl.A r/䃎 a*Ŝ6^9ǯ*)UY##zS# 7FE=:n $nG9RAvw%kvoѫ8o0}qװ8r^w:uߡϰOEpgI#uaҗKylV נ@F;d8#[?=Kz'K}`_V8'ߌ;Px '8:`=}OGґ"f Y<=xy&Ov;}yvX*dc89SPIBg$v-n+UUZY2q>TG98w1._;I,)r?{089"]e% UHbL$`Bh`ʢnXsN3^t=z܃Pi[[Z0DA"< Sg<ԧ_0]ExQy\(WD0+ҭ6']FV^i9j匫]=zJtp1^Iǣ K7-OMepr %̧卯햶_$:YK78_{=%D $vzժn1RxSQJ]:Xt8 zӕ~:pKVUҔJzT_8EJ4~BqgNNI}:4~'1җ_OȀ1ӓzs:9ϧJ߽pikj>wpG3Ӯz<`xsc<E/pp:qyGS?<8=+i-^U?d3qҹ}c>5?Kյ$Զ4McG..fThm`i1DPۘ9dx^+?kuoI 2 3wQ3.QUZ06fΟ1َ˧ݣhH/72m5y2]0ļ1ȳ\vS帪pzvsNm|ʭ#4QAc ueKǰKhLPfR]z/TwB R#'0@>:8##<R arؘ䙃5yw,C#lJpk8qgC+bx>;Ṯl]lήb1}JT(ѭ9Sj"\AxX>a<^"iKUa pTaiӚnRh$3*(XRUkrXӢ#0ٻ{mvD`VC4G 1ȱDdqo&Y21: 5 n,`#{"K۳.&K==Br0;걺1>ϡXw FxmEVIӠF`Xʸ8+NU Ov_W6Yj4gUcprN0p$*JqTyRqT\*ִ լ6rݬFbM%QͲݥhR03դC[Os׸#W6,ZwZ,0G=w,ZAŅԋs-bc#mĨ:n'>ۃ< 3ܣZjuR5AnV*r5RMN# +;Zum~=z|#1}}zcSӟzqS>pFI\=:jᵵw_?.z;^|TFt{1s۟Ys:}i1p }vw#ۚs0>[]7)o^^s8=G=sӿ=);z_`r8ێ:}NxY[͌gdĪ;<,vE\pE?O_SONw#zӑ^i5w}}@kkyW4Ɔ nA'zcퟠ=x⫑ 8i# #ns n-c#=9=O|]}?~[J~;' w=wyGv}yI:{P:?A8NAϧ)_߮OH;Osxޔ;q';v=ϦE!eq`g'9)m ~=ʋh9=Ow:E洜Ĥ.־Uv\ol$t0✰C281 p1D9 3"+B}RQ$<% 0BA2I dV(!_$@'0ER0Ș2x>rLQA8oƋzmm謄Oקzgz^ndoJןu>j_[w|{H?B1uנK98Ouo^G_[c0i`5 Z-0jZEZ-VGn xC~ 赿kY(5 x-/kQcotײi}W@ސToy(WRֱo^ɗH:lcZk4rحͼ[:_9mkA>wpVQu[:؊naRNWiʅ8:u%:SUP?cxU^ mzxiPBp^x]9FM+źq֚F?g,>Xy JRaq BT裀|t3\tvzw={f~Co esᄏs#G惜g='㷯K#9=zvxG~sN;sK?NCczOi7mߜ߯=iI냜cӯl ތp2?Zm{ugxLd=y>q{v۷=M =z\q'Ҳ|`__sMSQҜ}8y1{ѧmInbC^cIjTne;{]:fdPVkil6ZVbeX[Euis8 *l"Q5z IǮ= 3W%|mTo \cI7MѵMZ9NS%Ec\:t- ̣ aif؈GS jb)aT⥖ԯ],> XeJX,Ej8\t19]5G.(mRZ|/UN?yԩC,*\0ؙaE/}Ӵ^Im쮂%Le+aUл)@L)/t ^9n%:m++"1Bvۂ ɝOWω5ѵxxJZ.^MJeogau6y$k?s,OO:ş|MDž'xIFqhɮi$wVik׊ K;E+_>!ӭ.[(+6U 6yg Na9ʄPzTA:xPqw i| S\>u`*Jx8qkQW1_i"5Ն R  A#F2:nA%xF- Ozi־][8tiVh13Xz.xoCo u,73_i`{UWk!)4D3H< >ZÄP(˱X؊Y.7-fY~?Cq3,=|5H,nZ2tpį}RXsǍ|.rGq_8ǷPx=?"zC'=@?^ǧ9}3߽k[ӷP {z۟LB#>ޝizc`{?Lcguǥ>C]89sy=21-W)ql֖zw7}Y洟P0&rÌycXe&$bwHwl\0(,8=qӸ֏~ӡz $;|z+owo˺}S'ӡz{w◜qױq积&q:{Q8s=r?<:iQ/-`dzAӎ9ۭ/a< g>^=i3t|qzRc}1߷'֟O{_>_o^A>{wzџϸ9u'b3yw=zt7`xQ ~iH~==9_ϯ|gqߓP}={zOBwb۴rSrql㊍1I|LuC`==^OԎ(KWZӲsb!_^q\wk].=RHAz~ FG5ݥIONry:{gi\i7wVsmZmqsK$WAyֳKnfX.#xd+AHM~AOYkz한vXmKƦ4֚i(Inl㺹Ki'=%*SVRΝTjgxVu*R7Ba*ڛ5+¦)K Bn:OBZ/"-S.ZXV8i{ gsϦ8&;}g.A㓎3׊L^=r2 Ͼ09yzv˧Q9}3Jn@#:~|Nbq?Lcךr9Ў:}Oj,{Z?=umLs>}y p=?iISN{>^O_t؏:{qߌM0Ю3'ȥ>^A18qU㰹c.%2:rs׀+.T *x9YUr9p ²MKQ())O_TMo-/n+sNI8Ra5ܓH㶁L#6j7$*HŸ|A2O[ei2iu>Ym]9v`ioGDقڅF% *oh,)8Þ0 kkF`Gv]j7iiuѷi"hol絼1챕x.~ʬ8Q]ѣW1qJihVU[w8tS,ÜlaZ2lNLofIf剞K`pYnXz,\E˪a0YU:x|T9 SӬGj؊),8[,VoS(r(/:9&"Z%*bWh]|=cבs?N"yqGOӂt'<ׯG_ā_ף3ӯ_ӯ9ۿ}x=@>A\zvHvGLvLR[0M0!al˄#`{T@z+CMÃߏ?7m=?޽Qo+mMBgu~5y'B t8Ϯ*$f#NUJȟ^㣩XԠtJ_?ovzynԞq_P?8<9q@9 \Qվw4zSۊ:zO0qާ'q;.s2:_J?>Vi}|Q|={n}=ۊ8pOA8xҎ|w[ws܎ߖNinpyvO\;旞灌>_; _yGO`{~\ґL}&qO?g9Թ?8c旗nԟat3÷N33:ǜ#^:wׯ4.Za1NOnzuL攃Ip9##>s֎3?yGBq?w~ߎH;ґu'9Ivgԃǧ\;ߟQQM 9y1A܏z1zq0:s=ǡu(_ֿwu}tѿ?c3>h嵴S\Ycjes-ݖgso4]5wuk$ah׌qמ}}ӓ5! :S{5x|.-ZQԢ(Qeӫ:SZRp(QzJ2FPe2Y#.C,kDʰc2eT,b}#sGf jPZ\j&V7\٥5-nnl,.'XG,vҺ xcOƮ ^:Fk:mX])vka;eUjzŬ(mB)ѫ:pZU~i)UBs4Ru!) OJpSJPJ5+ҧVtp*:w~u"Ns'(IH8qq'?R ql`qqN3؟߮zMmemv|ߗ^q8ޓӮI~Tv?N=RS:}yKNX4ײw^v'ڢ7#>}A? u9Ġ;?i>9ǯ??Zƥ u+aGt|Msϟ܊q,WO}{mt#. 2+ٕR9Nq_1D V4:u>/^}.;COK-F+gy~Ż^[b};}Ǜe~u1j5/ [)4J**_ߣZL=u MA9{9&}; 帼Nt!KCpFl<**$zʞ/ **XzCа?k }x]𕖓rBo!k6ZσM=}'-si5A \#JMْOզjP[a%[3)0:BFdj |pA{v ڞ{AhhObiPo ^L\r^&eg,%*qS^sjjQ pC?j8N=0 x[,]Gh% t)ԍ 6sN<-_xJCc׼ohi5;+7&Oqetrn)3*'dH2~b 7?1 6$SYb`@ʋ6!Ha9;v=I=28\Wd\1dp>Wbjƭ)ҧHMT|zEES Q_~63 gy]JZu8F/1J-a*k M}C˜C={ߟq\g4Nߝ ?__S~O}ظ{9'wuA@:uҀO~O^亻u =zOcu;Yk.20r$qBXw3='8lBR8q=s۷caP͸ ʍ%XOW' 0C`O/}z}v}OguA_Eן_ns٨EqJ2 T0za2T>u>#4~_lm|~}6td?LZv}zgǩ4so{R#GA;z? ]usۓI?|z{yߝ3'<徃G{)q}}9#E?.=67t?yӎ9F)O9,ڌOSa~>϶1ҎG8ǰ_N>ׯ=׌ǩ_N8zס4ۧO >?=sl2;|I'Csґ\`ϩNN(~אiO8g=Oîz =i7SԞ3<{G-GC}~:~Wx=@ ϠzuZ?릝~Iy?@uO\POB8<=ׯol;rG\tqb?ӿw[Y Ϩ=y8=;.'[R4m&Y{="mWZL [iYb Z@#?Q~&{mOM9BQRpfe(JQc8iJqӄf%5*BR#8JtԌg :r%HPMp%GJT4Fm;P%Iգ SLQ{#f0\,3$F+ RrsJc E*>z3;$btL+$k,OuϾ1"T(1ԒTi)Ie'^ 2Fe94ԧ?g98S$Z9*S4(;tcp1L}p'ݹߞtg#gߧ^~~_Zt<;c;GSbHӑsq9'8sۧj_ӾN_k=N88'ғcH8xq֓ߓv;񞧮hZEk~~G<~YEۏz9A9}'N=3ޠr:vDQҞ2Fx]֌{÷c#~`=x{tq}~~ONAQ=^?n[Scc @zߩAϯp8q3'g>09i?[?_积\0=3On?ScG8{gө'C2=sӓS^~~^}=׷hN=[n)=~9Ӟx{;#:_ՁoD 8b~~@p# R)s:~::>yr9՟F έ0$C lǦk{>=y; u=}t3߯#\q◓OL}s۲_~}2l>sorz:?;@Ӝzu5'>};u^9wy##ڋ}߇_+P:㟮G^z:01Ob9挞1c؁=1AӟN1ozz?Oi[﷖N}F^ɀNGq g=9AӏzBp=#4d{zx;}xǧ^}ߋ//밸t

N1\z~c4sߞq3t,{5#ק4r? tq99Ǡғ dg9$c9qE_o2pz_qc4u> pO^'NqIq;ן|zQFOq׏^9Fs8ǿN@׎)OLg׶yQ:`vn?^M>z[_ç<8yJ;yϷ{k8otKTCrsks#]֒ݍ'K,,[Uo-lled,:ϛ89nӥe N:uiԩFQhBjr)G0$}I5>VTϭJSV#)ЩRЄ%:Nqe:nIԛ2.oO˛+FL{->[X/nu$1E FYKѷ8Tc};uHqӾro@x}j\={gנq_]zaiw_z~4cH@y4ۃ;t_ֆ@pX ;ßj/}uIu_m~zh9ql:b.?tqcx;TizQ=is$r3ڎ^?~/2sgGߜRvq$Id==v ?^_;qps~;zdsޝz)CxۜӚ?on~gR=}h88aǿ@~}?C\}z vlK_/&t=2q ׷$wFAzFO=~~8^Oo^(zv_ #>x8^}qv7P:q(GAЏ^=M?˷|_O p#}>۞Fy3?<G^;f'ێ;sҋ/O_NҐ 9ON:恓׮;gץ(3랞ߍ_/迯 A~?Nq=s=0:uy#ךhS1^җty oa=O=sԐxޔ=aߞG\cEFׯ>]W=L~<B1`{zx_QJ;{Dǹ99>~O;_?{ N>n-' !k(X."X/]c mƑs:r{Q=(qS٪|B羵%Qޣ\JQMɴsT=]W>onQSQK*Jԕyʬ%h()&yPHfѼ+ h#8ӏn{=~h>}l]i$X<}GZ^_FmKu^[mE'Or:~3I=}{)#9ғo^v=wAߡ'?灁֓p:qϞǮxA?~h::}yێqךL=2==1O_x_C?GNy2R7a##.C)aeH+Lv'ϯNi~}=03 -Zy Q$8lqL22`;̡$р9|XpTq91;S~88 ہ`1<>ߙЏ'ڗ=~=s}qG~/ ߿o{:cO_Ϧ?=v=xz>Ü|PxO;CO_M/S};^EH=x<=N==K#۽>wZ|ג3ۧn_qۮ Lqg#2:A z+mt _ւnrzv~9zcOBz}'=Izgcg=3JzngF7wOn zLxnsӎ(}s?c^q|=t>njo m~w?byס3CA99ZNנAN ߗP~^g=zoL=_8{d1OҌ]uӞ4 3Ӡ{o}~_z8N3G=;4t=szq:{Q` qߧq|]9=M'l@hsO_RGLӏ7ۧ⏖exluxHp{d~=}}{8ϧ#^_~^41O={s޼1 t8;~]?<s)q1ׯ9HH'9펹=9s`׏ʟm=㞴߸LOԠ_ǷO~4z_m_qG}3qߏn??6\g<(AuN0_ҷ3)w,{wyLP<8Ϧ}i?0ݭ:ÿר9>߭7w#>ONip\zl{uZ_p?=ztG\t2I:gc^O<  }r]'~>}tnz0J8s y94003`힧_}5Wc9#{#ӃlwM F}{}:M8[]_?>njc;yx?4Ӓy88##gq}o$g;{gz>s8W]_y;Pz}HӃ=}pqۜgC~\>}s׶=zv6VOϻ~C;׶F0:l?^!$$:=x]z~>~8:RqnߏlF;ǯ<SN~=c|zՃv}㽳,zs9 NI?N=z8Ƿo{q@_Ԟ3Kt嶃r1ç4pړ<tG~ss׷xB5^_u#׷=)@>=qӶ::881ssncZN}s=._O@]Ax'^OP8o\~|aSy@cӾ[=:SQsO-k=/~uSG^˭7ӡu=xX緰_s5/㾠9'Lqǡx'4c0=p=NGSn:g?#cnphyߏ1H8=LךC'ԟ^3Ok>;}8{~>x =gҔc}B)_ÑVM?]A߈8y8>chN?t`O??~8Spxϧ>5^|Z ^z}LPG?' u=c^}8k~~?v]:KAx\Ӷ}}^3c=}3r==Ic9n3#9Lx}] }z'>g篡FZ[_=8ힾIzd>9?:Gu~w-{u8zNzR?wsٽ_LO=`Ӏ:<G׭^~Z] =ϷϵB=FyFz_Lgp㧠GG6~,l/S~CЁIsu?N4rIБy\wSN…˯=\/뵿y?#|u9NL<\ӰywzOM|yߞ0xczgq֓ӓccB|g4z01;n)V@]{mt~@x=?:3>=}z?鎤uJA㧷^;vޞ4z0q鞝3swHy'真Iߜ9=nGAz \G_Gy Zkw_?O8l? wҌ;qlwߑH9\$PsҝǏ{{}ȧmo5~_ zgLwsh랼z#֌u:w{IN֝?᮷gӟ=1Qs$c{^8_JNyzwWM|l~y_/1>pFsӌct||vMpN=qӫp8Fߟ [<ǯ{=Cď98N?c81{z})kZ:~>?ր{ӨC$P9zt?Ӳs]wudg}Iӿ9CO~؎3RcCkykC_v< =;`s~s2R~Ms~t"oOmCkZu;}zu69׷Hz cc:g{P=F%}˧`|_'ǏR?=03׿Er:u^Qv܌ssqoMv-{׮x:ۿl`p}pu'ӎ9}9=c۩$⟧^ތ^{dǿN>"@gp|zLssLk}:zo osn<8y{?F?19Lqޔqמ\▿%~?Co?Ax8R:cTqۜ?߯nOSHA=p{wLNu<^ߦV_/y]=?_R v<c{@`$E8^cqK_߷z_v9ۨZ gGOjO1cyR@:|0{v[_3~==Ǡ y1ON{;cNx'˿v}mW0 Nz=84tϠ')zz۞4r={uGo i_/N34g:$ޘ^dq)[ߧ[_\L Zz]u=3q=>}3n)G8?\g~)Hc?3ҍ\>_Ϸ/|g?'L}=1O=?.')sߞ':}h_;~k:t}):Qn lv`g8ݺ AcII}xio?}{`c=''N}hOJ-?~f/zdz#}oJ:qt9=^;)Gc玼qNrzbO?|뭭ۑ?>sӧרoÜ)0r;@;B}(o?0߷aI|s~p>cqKϧONz{?-~q&{~:i1æF==.}srqM&zd;q^9⎘y#'#21F/~nG{r.ЁCg!2:9s߯OOJAqӜ9_y[M ϧ\0}.\{z{s#3O3G=z{sK~~O7#zv??R:s>Z>=;s= =4' ӞI`F3w?:~ӯ8_Ճ^សs38=zvs??˞ӱ'ww+^3R1": cczc;ь{ |9"zt\{?/u//ïូv: ёq=9`ӂ;tݿ!ǷGk#r /l 3` s^=izu9>=)ky|^^{`gxCOo~~uF0}:t#(^={dtQV}//.G\zqu9^<8Ӄ!9=Wϯ`29rH>cПߎz19sKl{qߞ"׃~#Co_A:~8>slv:ToǏAǮqo}zך5]?^wPAgߖ9?C&z=y銇6Ώۃߎy xpꛫn啾g]y8˾~OC#{ڢU?>둓)>n9L7̻ztY[Deŏ*l;aj\~Pz~x6ol_juՒYZ;kڈXYmc5F&I٘5,9bړmʥf;I땸qJ Gǰ?ҏ`vBqS'O}9'߷pp'lӰŷqM|1'>n?:>?(q}e薟ס99=qo0;u 0L?7NGmAmݎ=y]u K{c:r3hLJzҋ~}|7u\qQu/Z]Ӥ{}ݽ=s;{|wrM 9y6'tc':dZͿ{>l~ݷcxZWVq9=ӯPx=?r8A9=} ŷQq|qNM|#pzQu}5+nh2s:~<9ttE93`7cbV?\gwsG2UgdI9Zo==ߑϷMͷAy~.ߺ?-/vKKg s} r;{vn95^s4y=:ݿ^~mG=;f[}m-.;Ў ziq^Gt^y}&O~3Euu%-}׷im{OSb82zP}~ ?/={G-}8?N81._=%[[nO1Ԇ??}<u?z?ptmϱ91{AӎqE~0{߹7ßӧUZZ/^wK1q߾1O;zu}=x~mn c~{:>8}}O޸瞸gӚ;t@ 1/wٶcwg-N:kp^Zͦ,O"IdӁGc꿯2JQd,4$Ӵ(7FQvjQRBN(J3j2IJI3WJ' +FQ*#S#FZT*,p%xgN=^3&1'^ӈt=r{~} =3:u p8=<}h ~p?8)ϡ>=i@㓒>~?L_ ^1|}:wOzt֗1~_nׯC(;okul\#lRvI\8ʬTdb6&-R l+%ŭ ,v8hPVqڔ{g댏i53\+r)$)'ڔkrrY)sDqO\(hNO>9J ~C#:tF=QsK?F:߯x 1Onz קpscQڗ;F9pGPNAcJ@Y{G=2}Ǡ?SA=9Nz<|1} ~xG^`^=h8ug=~_vPvQ{[-{v ~GL{u8L=9ASN֛Iӿo=z#=}z`ӯA'[>}{<:qM~?=N ;ۑn??ZLg:g8ב_py uϿq{v79߀!K6hu]:'ސxrHSYDMie}-SQ[+8y;CО;s=9TA 9/cXե2qFRH9 ZQSzB4tݹ(mF躑SWibSuZyQrtE{a8I^άiWjG sE"I ȒE$m9#wHdu*T E<ۦ99Ǯ:S|)H4;Z=ɢ}UGGM"Iծh=:+4-ONϟl L~F*ng M:S)F- s%)Q%KU*0*j:.V:SՌf*+%:rdx㞙:Rsq}sp{早]ysc~M?Ma6# ?^Q1Az=ZA?Q@8<ϯ?0 `t?=)F{}3c>_XO>߯:y ~3Ӧs;x)FOQ<ǷwЎp??AeG~~O<c<=I<*3vz?On#uPq{ǧN}w)'{]6Be,EM櫛(]H-]bp]1AqאH#>ҌzG zsxmC+(ԜF lfnIۥB\f979rJ-'\c".dAr$ypoqvQq\qҗ;=z:sIFGGۧsǶI\ӧ?\U]{wLh'9F:r{2{s>@nݎ1'q/nğa1׌~נߦ9Ap?Zq8gO^I#?1ڔ\w˧W#s J ㌌q?zR}:ׯzszhy5o/wZ;=89^(bǯ\qx'?3Q?/ ㎽SN۞y8qy%9? t$~߰קo~sW~^rz:Rۂ}{`yM<|֕.'~?j=|~GIx#2zצr2z֜;/˿N?_^^ޝP]E:t$s{s8S}=q;_S0o^}szgg>~N) @{=Ώ]}_4=x<y3LH{oJPx˷'L):9<J5_U[Ãx9ϱoF:֤Ԋ]\e%(Nԧ(SN9JG=zpժG)M))'\e RRHJTҩJH}:{ ?l w1Qמ?_班.3ߠƽeۿϯB{`v c~M8=ל19탐;q?Ϩ>Znz~D=qzwoA!׃#{8=p  v;~]>|oׯo=Rs)X㎹8㧷9?Q}= )s#׽+;t_;K p3##Ϯhcu9֔zS}}@9w?O{r;Ǔ{:|Zj $^pCNxNu:'|s|^([ ^u'``}~)Oͧ{1~~8B~V0^zz_qFz:~|) >SoÊo^rOU_釛^Ƕ1s>9#@9qO$usۂ=Ǡ;ҋ߈wo?'sE #1w/߰O?'^|2YzNsϷLzG@I<SAΏO=o}{z}{unIӿZ\#^?zLߡ#=}?\Oꃿw_AIL=9 9cZv==qq^O9?޷wXIxJZE'<339_FEem4Cko-: .dNn價lil YLRZwwAwi:Ikuo RDy_NN+o U/&3FAJNU \)R $c{}OL/~ӯmxq9DZJ3?H{N\ ד`~_HcOP9'G#Z{xLz#A|)q^>S^^wO|^ޔg`㿿Iǿ#v>}= `uw''' cQǷzgO\0=<:g۽;Oӱ?E\=?TOg='Lw>y8x鎟\R`gԏۜu9R=}81_74_h$}0O\z=N;pO >~sz\v_w[=AO~܎x'9?ZO|zsߧAZ0x_QG|BsۏnМtcx38`G >p;e?^NLR:|_N}p=r3)[צA@wN~HS{}xyu}m?>2{O#לlzKr{@x:C۽?˰/-O9uA<^FG#x ^c9Os!pHroߥ'=rOs1Ax{wG#)=pIz>9O~ǮնNsӶ9rGcyxO}=>Ԙ㑞x?=hk~!~`8rO=Cqu>~_rUr8F~#?V{m⼻2Nz`_SاLPu'ֲ JX4RL/FQ/)we0x2.D"Gy%΂~n~4R7q7g<Мa(IsBpF2%Ju)M%:s99JJp<|NQ'(N2`r~LCO=1Ͽlsߠ8_wvݿ1=~g'''W3 {w׿C}֌d9Qߧ_p}>^d{גq>ߨ}Oz_Ԍﶾه};wcF3I:rgwC);g8Nq|=9_^0@~>j坮g{_yaڅLv7^N76Mʬpj׿?wG8ǯl=GsjZ$)FQR(FRM8QiI78-Qe E2(2R(QdF2Rk˼% 7zO;m t׏Ʃyq<~=߃5[0_/t wohs^_OsmH<{Zw<9}NUnu= PK}WJ4mkH`宣jv֬VKwxMݽՔ. L<3} ) zݺOGi̺&xim Bbj\yoK8I(,rQ)ʦ^V RUWJUp.U}LW(Rci#)Aa yf:yNcķ 9-c~lq~`v)p:c(z?lqGO[N?NF9R<<OQ׮~~N=GzcO~Kmo]רqOOӿ>CCzr38:}_zy~ ;9{9A=2{qJ1Q^r}7wN]Fzs~{ (dÌ:׷|~u{zwNRӪ^{i>4"Ʌ~/oﯧl,Io/-t Kyoon`&y_Aӯ<9&c"5]_O2_i2D$et[?E!g|CK4{|7qksO_6>mw}Z^zw|9ҵ{8Ե/ǭ{6WqĒxI[y,i=tFX!t˿e[e|]ҭ1iwqxT&AՓƺU+Ah-5[m/LEgc&u qns62ҲX~jr?e Sѧ U,mJ*Rρ~MBRRrԎq^xnHT^ڵQVPPx x|M*|AqgϰwDb?m$}F_qq M\iroA{9޾Ѿ,hZN"G^NJGw ƑqY@Xu;SYۤItmxƷo OmßGƭy|sjU̺&k71O Ǫ6zƓio( O1V,CM^\*}^{z:1S`yQGxa𵪷a()Pԧ֥,=NU1pT_qXC {⇊45M2Y֮,UI+BSfK[(RH4ov5Otf㦱v+};CMCvzZşt}b 5Ds ri,ҤWΉ_ / 7ԶvW 3ZDl$ea 1*w=ͱw0 qtiT&hn4p咕SjTjy8g"Q:qSQp܅{ʾ&0JSU դ./ᨼaĩ 7Py7zdWhi~tMQthcM#㝮eh|Zjv|&tج4Dږ5Ӡ诧]6jR}k=egĜRJ]RUGORiYڧ}(RK[2XOn[ u MX=XPWMsCjnYK:%o*iꚎCmjUƟne;G4HI$2Y!HX'7:wMw?yz6 Co&C`6⋍6m/S|)=㋽2(.ox5 ;_ޡ'kqr_\ WDw.ok.S_׃uhZNS[k*O5$K9n#i{*JZ [NGI PP u*#)~}q\Kӣ'C VJ8IXVԱYNxNΕ'q\ui^>%8ix5&մM7QTI#Rc2$ 23o@\@h#oxzQ>TY?(g2J9"'w?C\pnW;婉uז T*r"9ΜMm✿tN4qaOJ*ÖSNUUT׽,g:#߅x^nOyynP nqp8Q^I3hrh殍%'uNfQWM#+UM[/ 1J$:qڴΨIi*iOvU{(*=}?*(C|Dy}WР2 m#_9\QE5}aNE&}@?^h__p2;{E7g3ێ?\sE-&)۵!dӭPkok?:aZ7-e1ZIAwc;}SӵHoxgڴ:=LǘF2~Ο}VեR-4:u#I59F]\~FM*㇨b!RzSM5*uiNPZi(z; [8@ȏ}p(8cߔ́=x=;Ѵgשx:(;|ƶ͇~q`>珧QG~AGߠ?N:8QI|?אmw&'~Ƀ!A'{yKqP_?Ƀ"6W-]NʀX݂f;A$2I4iQS(A n eJ6U*$JDdN`7 Lqu*ʛʟ?43'Zz<}򶓥6 :H(V:kTOS>0Kq}1IҎW^:v_?*ʟ_'? {<j/Mυ珷S8E:w_p쿸/kVv,i9?+ӹ<'J<-;cފ(t/pTMO@?+x OL޴U*(TP* 0U@UQUj17v|n}yc뮷4+^ҔҕV?@$? 1''' '? Marker'@'A'"'#'$'C'D'>'2'3'4'5'7?'9I2q?\qa3@ !TD-54?zG{@$@ "?!TD-JH?zG{NOP@$9w9y9x@$9ފ?!TD-9ރ@$9ޅ?WJD9ބ?9ކ?zG{9s9y?333333?У =p?ҏ\(?Q??GzH??ffffff?\(?zG?=p =?\(\??ᙙ?\(?zG?(\)?\(\000000  ?QR?(\)?\(\ @ϕZC?!TD-1HvV@_;?';???  alias2 ^DG?mL` ?? X S<= LM?yst@Y??e ????Ҿ3h?1.0-sin(x*PI/2)UUUUUV?R7@?UUUUUVR7@UUUUUV?~:+?UUUUUV~:+UUUUUV>{yUV?UUUUUV{yUV????QR?ST?N N!N#N$N%N&N"D Y ZD2L@$Mk@>???333333e ???sin(x * PI)???????????????D!?????????陙 @$ ? e ???sin(x * PI)??????? ?e ???sin(x * PI)????????zG{! ("%-?01???ealias2 alias2 gR?e ???sin(x * PI)???????QYSWealias2`Lnet.maxon.animation.autoweight.heatmapEFGIe ???sin(x * PI)??????? ?@$e ???sin(x * PI)???????}~?KLST?ٙU? =p?(\)?(\)MN?O?PD!????????Q???R??YZ?[alias2?zG{??zG{R_L_pqr@>L alias2`1alias2alias2?zG{ ?zG{? ?zG{ R_ L_ (?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}D2m' L?Mm@?ixnwxXYZ?WJD[qy@z{t   ? ?????e ????Ҿ3f?1.0-sin(x*PI/2)UUUUUV?R7@?UUUUUVR7@UUUUUV?~T6?UUUUUV~T6UUUUUV>{yUV?UUUUUV{yUV????t@m(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}t@@@@@@???t(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}N!mm(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}9ޕLNOMPe ????sin(x * PI)????????@Y?y?@>????e ????Ҿ3f?1.0-sin(x*PI/2)UUUUUV?R7@?UUUUUVR7@UUUUUV?~T6?UUUUUV~T6UUUUUV>{yUV?UUUUUV{yUV????(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}?@4??@4??@4?(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}tNL???N?M@$O?33@PQSR( @I@Y??&LMNOP?Q@IR?ST?Ut9-t'@@'?ə'?ٙ'tP'u'v2R@R ?R @@@'?R ?(e ?sin(x * PI)????tOPYtTVWZ\]^_`adbefcghitPtM?L@ !TD-NgUv?u?wx@IdtL??tLtL?&M?NO?PQR StNLUQR@4T?!TD-S VXW`tL?\]t@?~9z{6?@$@$@I@I?WJD?陙e ???I$I$?a&?I$I$?Nt?mm?0\j?I$I$?G* ?mm?T?mm?+??*0.5*sin(2.0*PI*x)+0.5!8??!8ĀZ4@??Z4@?VP?VP?B?B?Ri>?Ri>?f#?f#S??S!8??!8????e ???I$I$?qE?I$I$??n?mm?Z?I$I$?Zx?mm??n?mm?qE??*0.5*cos(2.0*PI*x)+0.5+% ??+% ?f[H?f[H?%1?%1?׍wЈ?׍wЈˎ 4??ˎ 47VEv??7VEvB??B+% ??+% ????e ???sin(x * PI)???????e ???sin(x * PI)???????e ????sin(x * PI)???????9?m#$@I%?陙?陙?陙&?WJD'.(?)?*?+?,?-?L@$?M@$N?~9O?e ??UUUUUU??UUUUUU?zXL??sin(x*PI/2)!RE??!RE> \??> \"b*??"b*Ѐ+?>+????alias2@$@$????@4?@YN"N#?333333?333333?333333N$N%?N'N(N-(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}@$@$e?@$e ????<??sin(x * PI)/v??/vv-{6R?????e ????Ҿ3f?1.0-sin(x*PI/2)UUUUUV?R7@?UUUUUVR7@UUUUUV?~T6?UUUUUV~T6UUUUUV>{yUV?UUUUUV{yUV???? V T;: U_G(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)} ? ? f.D!????????...???.???..?...e ???sin(x * PI)???????2 @>??333333e ???sin(x * PI)????????.?.?1(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}N!N"n?h?@4? F????@Y??e ???sin(x * PI)????????333333@@e ???sin(x * PI)????????e ???sin(x * PI)???????e ????sin(x * PI)??????? G DL@I???        ???    @!TD- @@    ???  alias2alias2?N!(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@N'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}   C''L@I???        ???    @!TD- @@    ???  alias2alias2?LM@YN A?@ e ???sin(x * PI)???????e ???sin(x * PI)???????LM@YON(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@Y'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}m?@YL09@$@4 ?????@@$(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}e ????sin(x * PI)????????(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?ə'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r?)s)t)z)|)}&L?M?!TD-NOP&@I9ޖPL?QRSN?&LMtL?ixnwM@NQOP ?e ???sin(x * PI)????????333333@Y9ޮLMYN@YO@YPQ@YR@ !TD-~9ާL@IM?N?P?R?T?V?X?Z?OQSUWY[tTU&LM??# W{ Ealias2 ?@_Iq?\qS1rs?WPvtu?WPvxwv(?e ???sin(x * PI)333333?333333333333?333333????'''''''''@Y('?'@>'@I')'')((((?!TD-)))) ) ) ) ))))''@&''@'@''''''''''alias2''*1(((alias2(((((((((((()i)))k)alias2)l?p =q)m???)n)o?)p)q)r)s)t)z)|)}N!N" Y PKtiV repository/PKtiV,jrepository/databaseidK-M+J-/,/+NNKPKtiV repository/PKtiV,j$)repository/databaseidPK|x 1\'56nZ./resource/modules/c4dplugin/ocio/config.ociouqsrtÂE ?A@?ffffff?QR?=p =BC?D@jVXtex\0S'  ?ə???!TD-?ə?AB,?nFMAXON CINEMA 4D Studio (R16) 16.050 vwxyz~{|}Ualias2]alias2dBABĶh0Maxon Cinema 4D 2023.1.3 l?zG{?zG{`[4{    ?33@ ?PbM 1?      ? ? ? @ 0  @      ?33@  ?6 ?33@     ?H ?6   ?33@    ?W:   ?33@ ?6 ?ff` ?  > ?33@    ?z@  ? @ff` @Y ? c ?33@ ? ?     ?  @. ?PbM ? ! " #@                                          ?z@ @` @ ? @ ? ? @  !  .d        @     @  @0 A.   @  @0  A. @ @      ??? { | } ~    *  # " & $ % '  z H J I K  _ agoal1|řalias2 `nO0 `88@  GzP K  agoal1Qalias2 ^DGPmW  r LMN?X?[?\?Z?Y?TUV@$W@Y^]_O?Q?RS   ^????" * Transparency * ?!"#$?%(alias2)alias2*alias2+alias2,alias2-alias20?123?ə4?56789:alias2;alias2A???B?DE?Calias2Q???R?TU?Salias2ab?ocdefghi?!TD-j?klalias2malias2nalias2p?q?r?s?xalias2yalias2zalias2{alias2????alias2alias2alias2alias2?zG{@???alias2alias2alias2alias2??333333????rW?4?ArҺ? JP|?u7?7$?| ?ƣ1Dq?Ť?!H|vv?!H|vv?!H|vvalias2alias2alias2alias2???@alias2alias2alias2alias2@Y@ ?PbM@]@alias2Balias2QCalias2Dalias2Ealias2Falias2Galias2Halias2Ialias2Aalias2Lalias2 ?     4?陙?陙?陙5?6?7>o?r?p??????? `??? a? b? c ??? ? ?  (??? )? *? + ??? ? T ??? ? ?  ??? ?Tbca?U?ə?lmk?V d??E e??? f@Y g h??@@?ə'~'????ə?qs?@@$??@$             @  @  64      alias2 @ ^???ٙ09 Layer 1 ?!"#$?%?(alias2)alias2*alias2+alias2,alias2-alias20?123?ə4?56789:alias2;alias2A?r ?r ?r BDE?Calias2Q???R?TU?Salias2ab?ocdefghi?!TD-j?klalias2malias2nalias2p?q?r?s?xalias2yalias2zalias2{alias2????alias2alias2alias2alias2?zG{@???alias2alias2alias2alias2??333333????rW?4?ArҺ? JP|?u7?7$?| ?ƣ1Dq?Ť?!H|vv?!H|vv?!H|vvalias2alias2alias2alias2???@alias2alias2alias2alias2@Y@ ?PbM@ Layer 2      ?ə ! " # $? %? (alias2 )alias2 *alias2 +alias2 ,alias2 -alias2 0? 1 2 3?ə 4? 5 6 7 8 9 :alias2 ;alias2 A??? B? D E? Calias2 Q??? R T U? Salias2 a b? o c d e f g h i?!TD- j? k lalias2 malias2 nalias2 p? q? r? s? xalias2 yalias2 zalias2 {alias2 ? ? ? ? alias2 alias2 alias2 alias2     ?zG{ @  ? ? ? alias2 alias2 alias2 alias2 ? ?333333 ? ? ? ?rW?4?ArҺ ? JP|?u7?7$ ?| ?ƣ1Dq?Ť ?!H|vv?!H|vv?!H|vv alias2 alias2 alias2 alias2      ? ?QR ? @ alias2 alias2 alias2 alias2  @Y   @  ?PbM   @    agoal1 OřNodealias2 ^DG̞dL NodeJFIFHHhICC_PROFILEXlcms0mntrRGB XYZ  acspMSFT-lcms desc@cprtHNwtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$mluc enUS$sRGB IEC61966-2.1mluc enUS2No copyright, use freelyXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT{L&f\CCZZ" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Vvo.$b}|/"[jeet]Hɾij)u/2l( <_EZe/w*|/"ϝU(Awʿa;_6_kj,/]{2l( <_EZ._}̫/x.sm^\=}\1 Z:-Eބy{}mRUcVoVe$a/_ )(((+F5w|M}_oCyz/mRUcVoVe$c/_ )(((+F5w|M}_oCyz/mRUcVoVe$c/_ )(((+F5w|M}_oCyz/mRUcVoVe$c/_ )(((+F5w|M}_oCyz/mRU +߱]Ǵ/Oۯ%*{.5\KEyۯ%u]D]?n蟪KHj+~{?_/Gۯ%_ރx=^K=W?tF׿ut}."_.n>/#ѫF5Qu]D]pw׿jL_G{ $/~;.ف:com.autodesk.arnold.nodespace$0MAXONnet.maxon.nbmDatav%net.maxon.datatype.ionimbushelperdata_nodes _startNode _soloNode _pathData _uuidData*C#net.maxon.node.class.nodesystemdataversion dbversion nodesystemuint64uint32net.maxon.node.datatype.ionodechildrentargets  targetAttribs  flagsbasebaseId baseVersionbaseArgs updatePolicy attribs net.maxon.datatype.idramp_rgb@A6jTQc30ANDgL3aM0n1jH5<gradient _9position$net.maxon.interface.datadictionary-C_implint32net.maxon.datatype.internedid,net.maxon.description.data.base.defaultvaluenet.maxon.datatype.datafloat64?bias#? interpolation#nonecolor#'net.maxon.parametrictype.col<4,float64>rgbaz$? 7g?yS??_1#?&#?'#()#?K=?gB??_5&#?)# yr+?:k_?NgÊ??#?'#(_4'#(#?)#Oslz? aޚ?5!X??&#?_7&#?#ffffff?)#g?^?-:1g??'#(_3)#AԻ?{5f0? ɇ??#333333?'#(&#?_8'#(&#?)#3U,?o9r?rB??#?'#(_10)#z$? 7g?yS??#?&#?'#(_6'#(&#?#333333?)#z$?Qe??# <(net.maxon.datatype.id,net.maxon.interface.datadictionary-C)5/ 5#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData =_data > char$net.maxon.node.attribute.insertindexint64/@6@3@1@0@8@2@4@ @ 7@ type#>outputnet.maxon.interface.cstring-C!flat@C8xBvL$TDJptfxf0RoG4RU),float32)5//(int64,net.maxon.parametrictype.vec<2,float32>)5/'net.maxon.parametrictype.vec<2,float32>xyfloat32CNCCmaterialcom.autodesk.arnold.material@O P QXDBCdistance@PkUflldKKhhraOziXsS8ZRCD%ramp_rgb@A6jTQc30ANDgL3aM0n1jH5UVz??? coord_space#pattern#%com.autodesk.arnold.shader.cell_noise@O P QaCCflat@C8xBvL$TDJptfxf0RoG4RUCDmaterial filefC:/Program Files/Maxon Cinema 4D 2023/resource/modules/mvp_widgets.module/icons/category/functions.svg net.maxon.mvp.graphnodeselection  D(net.maxon.graph.interface.nodepath-C,net.maxon.datatype.internedid)5/ Z net.maxon.mvp.graphportselection net.maxon.mvp.graphwireselection @widgetDataBlackBoxOut  0net.maxon.mvp.serializationV2_0.blackbox.graph.1 *net.maxon.mvp.serializationV2_0.data.graph 1(float32,net.maxon.parametrictype.vec<2,float32>)5/Ga?{C(\A0net.maxon.mvp.serializationV2_0.blackbox.graph.0 ~ ?,B j ZbX 6  alias2 ^DGXGN 6  agoal1Cřalias2 ^DG3N? 6  alias2 ^DG2tdʘ 6  alias2 ^DG)d 6  alias2 ^DG̞dM :com.autodesk.arnold.nodespaceG              @ agoal1@3ř" V@jvfffffWXYZ???ٙDisplay Color agoal1 U{ Spherealias2 ^DG6m!M ( Sphere ; ,ym38?m3+Ye ???sin(x * PI)????????(hdd3~&'@N}-@V>ܾf={;N?-vBP0$ ~o"#Q<SFRw3K2* 5`:'x͍BtP~-qR72^5 o=>B[9pgY}/W7͍Bn2{$ԚN+z\͍BL}yS4?d̰fe ???sin(x * PI)????????@wܔ]ߝcmJf`[28[g3pܴ8ðH>EozE|_jTE͍Bc c %%xmel^(\Zx>^$ ɶV{> ހNOqyC}#p͍B;ݹ:{]F>f_%a+Ko͍BRL,hg\`&zw7ߥ6}<h;?wM?jS)>]둉w͍B;vm?;>VB͍B@?(nR͍Bj͍B2u:?E*J*͍BW͍Bu͍Bb͍BY}͍Bҫjyc'ꨜ>p:c O,< 2'͍B50MWxwv\\"YbQ4]0<͍B4iEQ| 8>oi,"!?Y͍B!r͍B"n?|{@8y ?PbM|r\ q3h]f=?J?A:??doc9?A:}defaultAc ͍BUxzC ͍B(H@8K Upa1yjGN<>?@SL@}ؖ?@~5dQ + [a",?z@P?#mA,?r/q?uD?IOQ?dyFd*U(?udefault!r,)BcGHN?[V@D0W;Pe}8g>rLΫ$ =$ Wo;͍B HA] -R882ќ206 field!MPK?kUV@J.{Uc!ya?t ?tR?K- ?e+ ?N?uedefaultTCl?G:!x3XMSe ͍B sphere|͍BD2TIU)W")?/a}j=n@$S.3dDQ!"VpMUJ$BCW*P53[j.Y`ID>vn*;nHh':͍Ba,=0W1LPn9w4y>@ϵ< F͍B7_eO QA`\H fielde |?ce ???sin(x * PI)????????MGg e`KCK @VusH3R?Q+`&S ?b\oūYZrp#J ??bb?0-?YY@3`͍B3b͍B??XL"h~1vV9͍B85e(w;?LCt"r? fv?uG|I#|?#?M~{4Zy7=[f9=iUI  fV?Y?^C?0*?wXFXf?^Vdefaulti#^ڴX[j/+!5͍B"Q @$L9:<CRS1~Kd?J?? 6?)_4gdG?$defaultgF?N.dlh iZ3?2=0?"l?cEe?9?s+6(?;:A~?9LldefaultE풦 Z"[$=C]q؍LU @(+Rh><bOcb M?c{͍BL)`OuVx>[#`R;عMC͍Bqrs=6tuwx group1$OPW!4HYfl"P:57alias2q alias2q%Balias2q=alias2on S?K xGG XμVTH}zQalias2RSWV ;Galias2'' yk].;#e\ "?5@P,@Oe ???sin(x * PI)????????C D!ZE`EWo<_?KZKZTJ-h\ zcXWhen this option is enabled, hair curves are generated via the Hair Render effect in the render settings. In some situations where the standard method fails, this is the only way to generate curves properly. For instance when hair is grown along a Spline or length is controlled by a vertex map. Note, that this option is not supported in the IPR because of performance reasons. Also note, that it does not support motion blur.D5IVtqU?!ΔQe ???sin(x * PI)????????S`Aalias2_v&v^?W-C}^^e ???sin(x * PI)????????LFZY[r?)8\?333333fd?4?ư ? #3OH*"vel.x vel.y vel.zgd/zZ:{6Q&_ͧG/ 3j@͙~  W\w>s~D0(WQb r3eE6aO3`Dk "6 . ?B?B@=6 agoal1"Arnold Parametersalias2 ^DGmWW Be*#$01Arnold Parameters ?WJD???ٙ agoal1 y Phongalias2 ^DG6m"M  @{2Fիn?????????" L@/@/@/Q@4ѕ3hSMNOPR???ٙDisplay Color agoal1xCubealias2 ^DG$Mmy; 'Cube  ?WJD???ٙ agoal1' Phongalias2 ^DG$Mmz;  ??@Y@Y@Y?UUUS ?alias2 Ořalias2???ٙ agoal1xMaterialalias2 ^DGňm>  @aF+@/XQ ?????????" @r@B?@@jalias2 !TD-@ !TD-!TD-?!TD-@@Y@!TD-?!TD-WZXY@@[\@@cbih@È? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q?@ ?@ !TD-?ffffff@ialias2^_)*35=hi@jl@m@@n@o@d @9Q@Vjh@]ɢ,}io&@???ٙDisplay Color* agoal1řRenderCamalias2 ^DG Ng  Camera Hډ@w7a:R???B:7Unk??????" @&hr!@ݼz Ĝ;;alias2Display Color???ٙ agoal1/ř Planealias26ř `nO0 v 0 Plane  ??@Y@Y@Y?UUUS ?alias2 Ořalias2???ٙ agoal1-řMaterialalias2 ^DG=dO  nb*@???!TD-???nb*@?<&3\?&3\?  ~@@@@t@Rv?rx?d@t@n???@>@$?@>?PbM?o\@o]@o^?Pc@X:\VISUAL3\vj clips\PROTOTYPES\CUBE_EXPLORE\frames\cube_explore_FULL_ONE$@!TD-?!TD-!TD-??PQ[#\RSRUVWXZ?~@`}|ZX@Y@[\]^_`suo[ XXlcms0mntrRGB XYZ  acspMSFT-lcms desc@cprtHNwtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$mluc enUS$sRGB IEC61966-2.1mluc enUS2No copyright, use freelyXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT{L&f\TF'(a'%d@RAWBCDGEFMN?O?IKJLQUV!4!5!6#(#)#*#+#,''f''''''''''alias2????'&H???ٙ agoal1Xřalias2 `nO0 `8 2  ,c4dtoa_render_stat.logNhB?&K}@?&K|]d@ol٦LMPOh???Some effects, like hair, particles, etc. are iterative and require executing the simulation from frame 0 when changing frames during motion blur. However it is not required if the simulation is cached and this option can be disabled to save time.]^_`Frames: 64lmnpvwxyz{sautot|45678?zG{< ?9:@;  }-f? In order to run the Arnold denoiser you need to render images via the Arnold EXR driver with variance AOVs enabled.arnold.log"arnold_stats.json&arnold_profile.jsonhi<scene> <samples> | frame <frame> | <render_time> | <date> <time>jklm@(n?陙?陙?陙o?333333p?333333?333333?333333txyz{! NK @$H%@$l&uR?Qp+ovd$ . 喝?k?s57@ݏRjz:xB첚~:Mu[ [X{ײ9J ier&i{:0hXE͍BIE K8O@5,֎8k*@icp1R52f7alias2̞c?a?PbM|r`WvFY/:Xr2P i]7~эhq4c Z)vnݱ?c(w9mtegF9Z ~5lhaa9[$J{D@!Q}vт*RzpߓSq܉bCZY  $OCIOzTƉ~pg!⼺U2ACES 1.0 SDR-video (sRGB)~*Un-tone-mapped (sRGB)  S8No GPU devices are available RDevices:Q2Camera (AA) Samples : 9 Diffuse Samples : 0 (max : 0) Specular Samples : 0 (max : 0) Transmission Samples : 0 (max : 63) Total (no lights) : 9 (max : 72) 180.00971eZ agoal1vř Arnoldalias2 ^DGd: Bd Arnold$eZN~5lhaa9[$J{D! NK '?' $Magic Bullet Looksalias2 ^DGmdO #$Magic Bullet LooksMAXON*net.maxon.fileid.magicbulletlooksvideopostv$net.maxon.interface.datadictionary-C_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData_datacharnet.maxon.datatype.internedid sessionDatanet.maxon.datatype.dataucharstrengthfloat64? savePreviewbool$     ?333333 ?PbM 1?      ? ? ? @ 0  @      ?333333  ?6C- ?333333  @  @0    ?333333 ?6C- > ?333333    ?zG{ A. @  @0    ?333333 ?6C- ?ffffff ?  > ?333333    ?zG{ A. @ @   ? @ffffff @Y ? c ?333333 ? ?     ?  @. ?PbM ? ! " #@   { |   } ~                                  *    # " & $ % '      @` @ ? @ ? ? @  ! ? Z          I  Octane Rendereralias2 `nO0 m/  Octane Renderer$ T(@$'@)׈`                              Hardwarealias2 `nO0 u$&1 %"Viewport Renderer$3 K /j_denoisedunh?u\w]w[?~$Rb|>V  6?&"_denoisedt8Re@dIWW (???pή_denoised嶰(denoise_albedo_noisy|<_{?,%w??fB????7BV{?B?'e2N?<B???? xB*#?xv?R8?W+HB????yBCyo?02?5 ?c= B????2D5?[u&1M3?! A#^gautog,cb?ǣ7?@]e6MC{**`RNo light groups are defined in the scene.*adPlease open the Light Manager to add light groups. ڀz{kTNOTE: This feature is not available in single-layer Arnold drivers (e.g. jpeg, png, etc.)ce cme ???sin(x * PI)????????9D͙e ???sin(x * PI)????????pe ???sin(x * PI)????????u'e ???sin(x * PI)????????* agoal1 Wř(Arnold color correctalias2 ^DGdjz BArnold Imager ealias2 Wř* agoal1&y4Arnold Intel OIDN denoiseralias2 ^DGdiz BNArnold Imager$          alias2 ^DGd; tVVVvxsur+   alias2 `nO0 `8 ,  8?(?"?L@ @M@N??7Q@#%$&?陙?  6'??  :<@4=@i>??@BC׺׾@$@ L9@Yd    )+*?,./V0?=>R?zG{S?ٙ???p =q??ə?ə?ə?陙?陙?陙                            p??L?MJNUMVYZCHIONRS    T?U? agoal1@.řalias2 `nO0 a87 @@А}%V9+@@@@@@?zG{??@B@B?@@jalias2 !TD-@ !TD-!TD-?!TD-@@Y@!TD-?!TD-WZXY@@[\@@cbih@È? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q?@ ?@ !TD-?ffffff@ialias2^_)*35=hi@jl@m@@n@o@d @9Q=P@K=P9W@E y]@u V@>lblʝ@CldDD+???B:7Unkalias2řalias2 8?(?"?L@ @M@N??7Q@#%$&?陙?  6'??  :<@4=@i>??@BC׺׾@$@ L9@Yd    )+*?,./V0?=>R?zG{S?ٙ???p =q??ə?ə?ə?陙?陙?陙                            p??L?MJNUMVYZCHIONRS    T?U? alias2 `nO0 a84 @@А}%V9+@@@@@@?zG{??@B@B?:T @@jalias2 !TD-@ !TD-!TD-?!TD-@@Y@!TD-?!TD-WZXY@@[\@@cbih@È? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q?@ ?@ !TD-?ffffff@ialias2^_)*35=hi@jl@m@@n@o@d @9QAd]n@&7Afkv????!TD-չRalias2alias2 8?(?"?L@ @M@N??7Q@#%$&?陙?  6'??  :<@4=@i>??@BC׺׾@$@ L9@Yd    )+*?,./V0?=>R?zG{S?ٙ???p =q??ə?ə?ə?陙?陙?陙                            p??L?MJNUMVYZCHIONRS    T?U? alias2 `nO0 a81 @@А}%V9+@@@@@@?zG{??@B@B?n7B@@jalias2 !TD-@ !TD-!TD-?!TD-@@Y@!TD-?!TD-WZXY@@[\@@cbih@È? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q?@ ?@ !TD-?ffffff@ialias2^_)*35=hi@jl@m@@n@o@d @9Q%-#w@@JKLHo@P4ɰ ????!TD-չRalias2alias2 8?(?"?L@ @M@N??7Q@#%$&?陙?  6'??  :<@4=@i>??@BC׺׾@$@ L9@Yd    )+*?,./V0?=>R?zG{S?ٙ???p =q??ə?ə?ə?陙?陙?陙                            p??L?MJNUMVYZCHIONRS    T?U? alias2 `nO0 a8. @@А}%V9+@@@@@@?zG{??@B@B?B4r@@jalias2 !TD-@ !TD-!TD-?!TD-@@Y@!TD-?!TD-WZXY@@[\@@cbih@È? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q? =p? =p?Q?@ ?@ !TD-?ffffff@ialias2^_)*35=hi@jl@m@@n@o@d @9Q@y7@R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid'net.maxon.animation.autoweight.boneglowR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolMAXONnet.maxon.fileid.c4dcorerefvX(net.maxon.datatype.internedid,R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid&net.maxon.animation.autoweight.heatmapR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolMAXONnet.maxon.fileid.c4dcorerefvX(net.maxon.datatype.internedid,R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid,net.maxon.animation.autoweight.voxelboneglowR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolMAXONnet.maxon.fileid.c4dcorerefvX(net.maxon.datatype.internedid,R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid'net.maxon.animation.autoweight.boneglowR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolMAXONnet.maxon.fileid.c4dcorerefvX(net.maxon.datatype.internedid,R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid&net.maxon.animation.autoweight.heatmapR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolMAXONnet.maxon.fileid.c4dcorerefvX(net.maxon.datatype.internedid,R,net.maxon.datatype.id,bool)_0_1_2_3net.maxon.datatype.internedid,net.maxon.animation.autoweight.voxelboneglowR_impl#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData _data charnet.maxon.datatype.idboolalias2alias2alias2 CWeights Handler  alias2 ^DGChd K0Volume Save Manager Hook  alias2 ^DGChd .UV Display 3D SceneHook  alias2 ^DGChd } uvhook  alias2 ^DGChd % (ScatterPlacementHook  alias2 ^DGChd  Tool System HookMAXONnet.maxon.symmetryv+R8net.maxon.toolservice.toolserviceclasses.symmetryservice _settings_common _contexts _contextId$net.maxon.interface.datadictionary-C_impl+R>(net.maxon.datatype.id,R)_0_1net.maxon.datatype.id#net.maxon.symmetry.context.modeling&R #net.maxon.datadictionarydefaultbase_mode @_keyType _fastData _data  char net.maxon.datatype.internedid ???ٙ alias2 ^DGChd !Simulation " ?zG{Z@Yy?>@?A@@B??C? QR!o"a?%?&?$\z{|}~?? =p @@$@$@@??Q?QL?zG{M?nml ef'?]_^g?6C-h?i?6C-j@YEPD?2@NGr@t?u@v@w?scdTV[WXYUZ=*+,-./12345679:;<IOff???ٙ agoal1`5ř Simulation Scenealias2 ^DGChdmalias2`5ř ! Simulation Scene ?????????  alias2 ^DGChd _NE_SceneHook  alias2 `nO0 i# Take Hook  N f'alias2ř'alias2Xř agoal1křMainalias2 `nO0 i$ Take  '' Overridesalias2 `nO0 i%  Folder Node '' Othersalias2 `nO0 i+  Folder Node '' Layersalias2 `nO0 i*  Folder Node ''F Materialsalias2 `nO0 i)  Folder Node ''K Shadersalias2 `nO0 i(  Folder Node ''> Tagsalias2 `nO0 i'  Folder Node ''# Objectsalias2 `nO0 i&  Folder Nodealias2kř  alias2 `nO0 `8 BCombineAc18_AutoCombine_SceneHook  alias2 `nO0 `8  PLKHUD  alias2 `nO0 `8 c$RenderManager Hook  alias2 `nO0 `8 (Sound Scrubbing Hook \B\B alias2 `nO0 `8 \@ To Do  alias2 `nO0 `8 \?Animation  alias2 `nO0 `8 "BaseSettings Hook   agoal1@břalias2 `nO0 `8 SBSettings'',''''%'alias2@3ř''&  a ?')'+u2u0u1u3  alias2 `nO0 `8  SBSettings'',''''%'alias2@3ř''&')'+u2u0u1u3  alias2 `nO0 `8  SBSettings'',''''%'alias2@3ř''&')'+u2u0u1u3  alias2 `nO0 `8  SBSettings'',''''%'alias2@3ř''&')'+u2u0u1u3   agoal13řalias2 `nO0 `8  \+TLSettings'',''''%'alias2''&o@?')'+N5N!N"@@N#AKEAN(?@.N0?N&,N1N' Z N*ˉkN)@pFɫN2N3TN7N/N.N,N4alias2  alias2 `nO0 `8  \+TLSettings'',''''%'alias2''&')'+N5N!N"@.N#@G@.N(?@.N0?N&,N1N'Z JN*N)?N2N3TN7N/N.N,N4alias2  alias2 `nO0 `8 \+TLSettings'',''''%'alias2''&')'+N5N!N"@.N#@G@.N(?@.N0?N&,N1N'Z JN*N)?N2N3TN7N/N.N,N4alias2  alias2 `nO0 `8 \+TLSettings'',''''%'alias2''&')'+N5N!N"@.N#@G@.N(?@.N0?N&,N1N'Z JN*N)?N2N3TN7N/N.N,N4alias2# Objectsalias2# Cameraalias2'# Cubealias20# Planealias2(# Spherealias2> Tagsalias2e> *#$01Arnold Parametersalias2> Phongalias2> Texturealias2F Materialsalias2GF Matalias2K Shadersalias2K Arnold Imageralias26 Shadersalias266 alias2 Render Settingsalias2M Post Effectsalias2 Layersalias2 (Undef. Layer)alias2 Layeralias26ř Scene Hookalias2! Sculpting Layeralias2 Substancesalias2Р Substancesalias2 Volume Filteralias2  C4DCoreWrapperalias2  alias2 ^DGChdm  jPersistentHook ' agoal1}xalias2 ^DGChdi rMAXONnet.maxon.nbmDatav%net.maxon.datatype.ionimbushelperdata_nodes _startNode _soloNode _pathData _uuidData*C#net.maxon.node.class.nodesystemdataversion dbversion nodesystemuint64uint32net.maxon.node.datatype.ionodechildrentargets  targetAttribs  flagsbasebaseId baseVersionbaseArgs updatePolicy attribs net.maxon.datatype.idnet.maxon.neutron.scene.root>net.maxon.neutron.op.outputnet.maxon.interface.cstring-C>net.maxon.neutron.op.output$net.maxon.interface.datadictionary-C_implint32net.maxon.neutron.op.root#net.maxon.datadictionarydefaultbase_mode@_keyType _fastData &_data ' charnet.maxon.datatype.data,(net.maxon.graph.interface.nodepath-C,uchar)_0_1$net.maxon.graph.interface.nodepath-Cpath )),float32)+,/(int64,net.maxon.parametrictype.vec<2,float32>)+,'net.maxon.parametrictype.vec<2,float32>xyfloat32C'net.maxon.node.attribute.internalhiddenboolout 5 6 7C<in 5 6 7Cnet.maxon.nbo.sceneisgroupwidgetDataBlackBoxOut 0net.maxon.mvp.serializationV2_0.blackbox.graph.0 *net.maxon.mvp.serializationV2_0.data.graph1(float32,net.maxon.parametrictype.vec<2,float32>)+,?0net.maxon.mvp.serializationV2_0.blackbox.graph.1 G? Scene Nodes  alias2 `nO0 `8  MoGraphSceneHook  alias2 `nO0 `8 A  alias2 ^DGChdf +gozScenehook  alias2 `nO0 `8 cStrNotFound  alias2 `nO0 `8 Sculpt Objects  alias2 `nO0 `8 "HairHighlightHook  alias2 `nO0 `8 Mesh Check Hook  alias2 `nO0 `8 *Modeling Objects Hook  agoal13řalias2 `nO0 `8 9oSnap Scenehook "  WorkPlanealias2 `nO0 `8 !WorkPlane ?????????   "Modeling Settingsalias2 `nO0 `8 9ތ"Modeling Settings  alias2 `nO0 `8 Doodle Hook  alias2 `nO0 `8 ubStereoscopic  alias2 `nO0 `8  m$ViewportExtHookHUD@@0=CQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0 *!(Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0tY%Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0t3UmQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0I l;ZQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0@,1Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0M#Q0P@@()_*+  .A/A,A-A?D& alias2  _?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&'Perspective'9''%'&''0%뜨tQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0/bQ0P?Pc@5333333()o*+  .A/A,A-A?D& alias2  ?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0K ڇn Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0'fC A0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0{9jv Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0O Q0PAA()o*+  .A/A,A-A?D& alias2  _?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0/h Q0P@k@()_*+  .A/A,A-A?D& alias2  _?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&',Grid Spacing : 1000 cm'z''%'&''06ż멒8Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0Yg>9Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0K̜-r:Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0PR~;Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''04_jP<Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0'Ss;=Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0:V>Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0ZD56?Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0ĈcQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0GXu7Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0+ -{Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0ΐl!Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0Qd*iQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0جw qQ0P@@()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&'Top'''%'&''0=0{Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0=oQ0PAA()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0gQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0$wA0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0lPݲFQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''05rŤQ0PAA()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0>4AQ0P@@o()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&'.Grid Spacing : 10000 cm'z''%'&''0f6gκQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0bz+-Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0__mGQ0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0R_a3Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0'f Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''03kFу+!Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0nm7"Q0P@@()6*+  .A/A,A-A?D& alias2  6?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&' Right'''%'&''0I!6;Z9#Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0%և$Q0PAA()6*+  .A/A,A-A?D& alias2  6?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0:Y/{!%Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0|&A0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''00?'Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0tN6(Q0PAA()6*+  .A/A,A-A?D& alias2  6?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0ZHB')Q0P@@o()6*+  .A/A,A-A?D& alias2  6?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&'*Grid Spacing : 100 cm'n''%'&''0w/}I8t*Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''04cE+Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0XWd1 1,Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0#ԷZ-Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0>>m.Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0er\]/Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0 F0&(0Q0P@@()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&' Front'''%'&''0C E<|C1Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0s @4F2Q0PAA()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0+@5֥-3Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0tja,4A0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''08,fh5Q0PAA()*+  .A/A,A-A?D& alias2   !"#$%21D&''''%'&''0"2_6Q0PAA()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&''''%'&''0KQ 47Q0P@@o()5*+  .A/A,A-A?D& alias2  5?陙?陙?陙 ?ə?ə?ə!??p =q?"#$%21D&'*Grid Spacing : 100 cm'n''%'&''  alias2 `nO0 `8  N0ViewportExtHookhighlight  alias2 `nO0 `8  O MeasureSceneHookokay  alias2 ^DGChdS *MeshObject Scene Hook  alias2 ^DGChdR vLod Hook  alias2 `nO0 `8 0Annotation Tag SceneHook ? alias2 `nO0 `8 G Sniper  alias2 ^DGChdO Redshift    alias2 `nO0 `8 F GvHook@$??@$??@$?  alias2 ^DGChdM 5&Material Scene Hook  alias2 `nO0 `8 (TargetDistancePicker  alias2 ^DGChdK Ќ&BodyPaint SceneHook6   agoal16ř Layeralias2 `nO0 WRx ?e24?2zϚ}?% ?@$??@$??Yviװݐ6Q礚ʩxi$ {N jDA6W;ΥȓG:O.Rdg7{N jDA6W;ΥȓG:O.Rdg7{N jDA6W;ΥȓG:O.Rdg7{N jDA6W;ΥȓG:O.Rdg7{N jDA6W;ΥȓG:?$ W̄} b>-g~2 uq HBe:kuӈLĀ} b>-g~2 uq HBe:kuӈLĀ} b>-g~2 uq HBe:kuӈLĀ} b>-g~2 uq HBe:kuӈLĀ} b>-g~2 uq HBe:kuӈLĀ} b>IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:\m_| C/o4a! 'Z ^IafCƋwS:uMAXON'net.maxon.drawport.fileid.shadercachedxv.net.maxon.drawport.datatype.shadercachedirectx_id _contextData_versionnet.maxon.datatype.id net.maxon.drawport.cache.directx9net.maxon.drawport.datatype.shadercachecontextinfodirectx_vendor_driverVersion _featureLevel _typeHash _shaderCachenet.maxon.interface.cstring-CNVIDIA516.94int64uint32/2net.maxon.drawport.datatype.shadercacheitemdirectx _specification_compilerVersion  _globalStages _parameterHandlesCache _vertexAttributes _uniformVariables _textureVariables_bufferVariables_imageBufferVariables_varyingVariables_outputColorVariables _validItems(net.maxon.drawport.drawportspecification _flags_drawPassTypeHash_shadingLanguageId_shadingLanguageVersion_drawportTypeId_drawportSubtypeId_drawportVersion_stageFlagsOffset_data wuint64h]!@oyp0wdcharucharh]!@@^h,@! A!@̣.T r i#pW) -@¦cp¦cp¦cp=net.maxon.drawport.datatype.shadercacheitemglobalstagedirectx _typePrefix_lastShaderIndex_noises. _stageFlags_customStructs_globalsAfterHeader_globalsBeforeParams_globalsAfterParams_codev2net.maxon.drawport.programfactorycustomstructarray _structData8net.maxon.drawport.programfactorycustomstructarraystructnamememberssizeHintProjectionData_v583381422454918v mat4 projectionMatrix; mat4 worldViewProjectionMatrix; vec4 eyePosition; vec4 viewportSize; vec4 pixelSize; ShadingContext_v656947531117878B mat3x4 objectMatrix; mat3 normalMatrix; vec3 worldCoordinates; N#undef ShadingContext #define ShadingContext ShadingContext_v656947531117878 ?K#define localvar_worldViewProjectionMatrix_0v projectionbuffer_0v.worldViewProjectionMatrix ShadingContext sc; VARYING_OUT(worldCoordinates) = vec3(0.0); VARYING_OUT(uvw) = vec3(0.0, 0.0, 0.0); VARYING_OUT(normal) = vec3(0.0, 1.0, 0.0); VARYING_OUT(originalNormal) = vec3(0.0, 1.0, 0.0); sc.objectMatrix = uniforms.shader0v.objectMatrix; sc.normalMatrix = uniforms.shader0v.normalMatrix; sc.worldCoordinates = mul(sc.objectMatrix, vec4(stageInput.objectPosition.xyz, 1.0)); VARYING_OUT(worldCoordinates) = sc.worldCoordinates; VARYING_OUT(uvw) = stageInput.uvw.xyz; OutPosition = mul(localvar_worldViewProjectionMatrix_0v, vec4(sc.worldCoordinates, 1.0)); vec3 localvar_normal_0v = mul(sc.normalMatrix, stageInput.phongNormal); VARYING_OUT(normal) = localvar_normal_0v; VARYING_OUT(originalNormal) = localvar_normal_0v; t????T????g????o????m????fProjectionData_f583381422454918<ShadingContext_f656947531117878 vec3 worldCoordinates; vec3 uvw; vec3 worldPhongNormal; vec3 originalWorldPhongNormal; vec3 eyePosition; vec4 eyeDirection; float frontFacing; "ParallelLightData_f123237168497281 vec4 color_contrast; vec4 position; vec4 direction_falloffGradientMultiplier; vec4 falloff; vec4 shadowColor_shadowStrength; P!AmbientLightData_f123234604479128 vec4 color; AreaLightData_f70368747180173 vec4 color_contrast; vec4 position_brightness; mat3x3 m; mat3x3 im; vec4 falloff; vec2 radius; float falloffGradientMultiplier; vec4 backsideColor; vec4 shadowColor_shadowStrength; LightSet_f710440345226666 ParallelLightData_f123237168497281 distant[3]; AmbientLightData_f123234604479128 ambient[1]; AreaLightData_f70368747180173 area[1]; ?N#undef ShadingContext #define ShadingContext ShadingContext_f656947531117878 '2void maxon_ProjectionUVWF(inout ShadingContext sc, vec2 offset, vec2 invScale, out vec3 uvw, out vec3 duvwX, out vec3 duvwY) { uvw = sc.uvw; uvw.xy -= offset; // don't use dFdx(uvw) here, see // http://stackoverflow.com/questions/20272272/standard-derivatives-from-fragment-shader-dfdx-dfdy-dont-run-correctly-in-a duvwX = vec3(dFdx(uvw.x), dFdx(uvw.y), dFdx(uvw.z)); duvwY = vec3(dFdy(uvw.x), dFdy(uvw.y), dFdy(uvw.z)); #define AdjustValue(x) if (x < -0.5) x = -1.0 - x; else if (x > 0.5) x = 1.0 - x; #define AdjustVector(v) \ AdjustValue(v.x) \ AdjustValue(v.y) \ AdjustValue(v.z) AdjustVector(duvwX); AdjustVector(duvwY); #undef AdjustValue #undef AdjustVector duvwX.xy *= invScale.xy; duvwY.xy *= invScale.xy; uvw.xy *= invScale; } void maxon_ProjectionTile(vec3 uvwI, vec3 duvwXI, vec3 duvwYI, bool tile, bool seamless, out vec3 uvw, out vec3 duvwX, out vec3 duvwY) { if (tile) { if (seamless) { uvw = mod(uvwI, 2.0); if (uvw.x > 1.0) uvw.x = 2.0 - uvw.x; if (uvw.y > 1.0) uvw.y = 2.0 - uvw.y; if (uvw.z > 1.0) uvw.z = 2.0 - uvw.z; } else { uvw = fract(uvwI); } } else { uvw = uvwI; } duvwX = duvwXI; duvwY = duvwYI; } void maxon_Multiply3(vec3 a, vec3 b, float c, out vec3 result) { result = a * b * c; } mat3 AreaLightCoordinateSystem(vec3 N) { vec3 S, T; if (abs(N.x) > abs(N.y)) T = normalize(vec3(-N.z, 0.0, N.x)); else T = normalize(vec3(0.0, -N.z, N.y)); S = cross(N, T); return mat3(S, T, N); } float AreaLightIntegrateEdge(vec3 v1, vec3 v2) { float cosTheta = dot(v1, v2); cosTheta = clamp(cosTheta, -0.9999, 0.9999); float theta = acos(cosTheta); float res = cross(v1, v2).z * theta / sin(theta); return res; } void AreaLightClipQuadToHorizon(inout vec3 L[5], inout int n) { // detect clipping config int config = 0; if (L[0].z > 0.0) config += 1; if (L[1].z > 0.0) config += 2; if (L[2].z > 0.0) config += 4; if (L[3].z > 0.0) config += 8; // clip n = 0; if (config == 0) { // clip all } else if (config == 1) // V1 clip V2 V3 V4 { n = 3; L[1] = -L[1].z * L[0] + L[0].z * L[1]; L[2] = -L[3].z * L[0] + L[0].z * L[3]; } else if (config == 2) // V2 clip V1 V3 V4 { n = 3; L[0] = -L[0].z * L[1] + L[1].z * L[0]; L[2] = -L[2].z * L[1] + L[1].z * L[2]; } else if (config == 3) // V1 V2 clip V3 V4 { n = 4; L[2] = -L[2].z * L[1] + L[1].z * L[2]; L[3] = -L[3].z * L[0] + L[0].z * L[3]; } else if (config == 4) // V3 clip V1 V2 V4 { n = 3; L[0] = -L[3].z * L[2] + L[2].z * L[3]; L[1] = -L[1].z * L[2] + L[2].z * L[1]; } else if (config == 5) // V1 V3 clip V2 V4) impossible { n = 0; } else if (config == 6) // V2 V3 clip V1 V4 { n = 4; L[0] = -L[0].z * L[1] + L[1].z * L[0]; L[3] = -L[3].z * L[2] + L[2].z * L[3]; } else if (config == 7) // V1 V2 V3 clip V4 { n = 5; L[4] = -L[3].z * L[0] + L[0].z * L[3]; L[3] = -L[3].z * L[2] + L[2].z * L[3]; } else if (config == 8) // V4 clip V1 V2 V3 { n = 3; L[0] = -L[0].z * L[3] + L[3].z * L[0]; L[1] = -L[2].z * L[3] + L[3].z * L[2]; L[2] = L[3]; } else if (config == 9) // V1 V4 clip V2 V3 { n = 4; L[1] = -L[1].z * L[0] + L[0].z * L[1]; L[2] = -L[2].z * L[3] + L[3].z * L[2]; } else if (config == 10) // V2 V4 clip V1 V3) impossible { n = 0; } else if (config == 11) // V1 V2 V4 clip V3 { n = 5; L[4] = L[3]; L[3] = -L[2].z * L[3] + L[3].z * L[2]; L[2] = -L[2].z * L[1] + L[1].z * L[2]; } else if (config == 12) // V3 V4 clip V1 V2 { n = 4; L[1] = -L[1].z * L[2] + L[2].z * L[1]; L[0] = -L[0].z * L[3] + L[3].z * L[0]; } else if (config == 13) // V1 V3 V4 clip V2 { n = 5; L[4] = L[3]; L[3] = L[2]; L[2] = -L[1].z * L[2] + L[2].z * L[1]; L[1] = -L[1].z * L[0] + L[0].z * L[1]; } else if (config == 14) // V2 V3 V4 clip V1 { n = 5; L[4] = -L[0].z * L[3] + L[3].z * L[0]; L[0] = -L[0].z * L[1] + L[1].z * L[0]; } else if (config == 15) // V1 V2 V3 V4 { n = 4; } if (n == 3) L[3] = L[0]; if (n == 4) L[4] = L[0]; } float AreaLightSide(vec3 P, vec3 lightPosition, mat3 lightOrientation) { float d = dot(P - lightPosition, vec3(lightOrientation[0].z, lightOrientation[1].z, lightOrientation[2].z)); return step(0.0, d); } float AreaLightSideFactor(vec3 P, vec3 lightPosition, mat3 lightOrientation, bool lightDoublesided) { return lightDoublesided ? 1.0 : AreaLightSide(P, lightPosition, lightOrientation); } float AreaLightIntegrateCosine(vec3 P, vec3 lightPosition, vec2 lightSize, mat3 transformation, mat3 lightOrientationTransposed, vec3 lightSize3d) { vec3 corners[5]; corners[0] = mul((lightPosition + mul((lightSize3d * vec3(-1.0, -1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[1] = mul((lightPosition + mul((lightSize3d * vec3(+1.0, -1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[2] = mul((lightPosition + mul((lightSize3d * vec3(+1.0, +1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[3] = mul((lightPosition + mul((lightSize3d * vec3(-1.0, +1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[4] = corners[3]; int n = 0; AreaLightClipQuadToHorizon(corners, n); if (n == 0) return 0.0; for (int i = 0; i < 5; ++i) corners[i] = normalize(corners[i]); float sum = 0.0; sum += AreaLightIntegrateEdge(corners[0], corners[1]); sum += AreaLightIntegrateEdge(corners[1], corners[2]); sum += AreaLightIntegrateEdge(corners[2], corners[3]); if (n >= 4) sum += AreaLightIntegrateEdge(corners[3], corners[4]); if (n == 5) sum += AreaLightIntegrateEdge(corners[4], corners[0]); return sum; } float AreaLightCalculateLambert(vec3 P, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation, mat3 lightOrientationInverse) { mat3 transformation = transpose(AreaLightCoordinateSystem(N)); vec3 lightSize3d = vec3(lightSize.xy, 0); float sum = AreaLightIntegrateCosine(P, lightPosition, lightSize, transformation, lightOrientationInverse, lightSize3d); return abs(sum) / (PI2); } float AreaLightCalculateMirror(vec3 P, vec3 V, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation) { vec3 R = reflect(-V, N); P = mul((P - lightPosition), lightOrientation); R = mul(R, lightOrientation); float t = -P.z / R.z; if (t < 0.0) return 0.0; vec2 uv = P.xy + R.xy * t; if (abs(uv.x) < lightSize.x && abs(uv.y) < lightSize.y) return 1.0; else return 0.0; } float AreaLightCalculateLTC(vec3 P, vec3 V, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation, mat3 lightOrientationInverse, float roughness, SAMPLER2D_TYPEDEF(ltcMatrixTable), SAMPLER2D_TYPEDEF(ltcAmplitudeTable)) { float NdotV = dot(V, N); vec2 coord = vec2(roughness, acos(NdotV) / (PI05)); vec4 ltcVector = texture(SAMPLER_ACCESS(ltcMatrixTable), coord); float ltcAmplitude = texture(SAMPLER_ACCESS(ltcAmplitudeTable), coord).r; mat3 inverseMatrix = mat3( vec3(1.0, 0.0, ltcVector.y), vec3(0.0, ltcVector.z, 0.0), vec3(ltcVector.w, 0.0, ltcVector.x) ); vec3 T1 = normalize(V - N * dot(V, N)); vec3 T2 = cross(N, T1); mat3 transformation = mul(transpose(mat3(T1, T2, N)), inverseMatrix); vec3 lightSize3d = vec3(lightSize.xy, 0.0); float sum = AreaLightIntegrateCosine(P, lightPosition, lightSize, transformation, lightOrientationInverse, lightSize3d); return ltcAmplitude * abs(sum) / (PI2); } void maxon_AreaLightReflectionLambert(inout ShadingContext sc, vec3 N, vec3 lightPosition, mat3x3 lightMatrix, mat3x3 inverseLightMatrix, vec2 lightSize, float intensity, out float reflection) { reflection = AreaLightCalculateLambert(sc.worldCoordinates.xyz.xyz, N, lightPosition, lightSize, lightMatrix, inverseLightMatrix); reflection *= intensity; } void maxon_Multiply(float a, float b, out float result) { result = a * b; } void maxon_AreaLightCalcColor(float reflection, float brightness, vec3 lightColor, float iblOcclusionIn, float layerStrength, vec3 layerTrans, vec3 layerColor, vec3 fresnelColor, float reflectionStrength, out vec3 color, out float iblOcclusionOut) { color = lightColor * brightness * reflection * /*layerStrength * */layerTrans * layerColor * fresnelColor * reflectionStrength; // reflectionStrength is already multiplied by layerStrength iblOcclusionOut = iblOcclusionIn * clamp(1.0 - reflection, 0.0, 1.0); } void maxon_Multiply(vec3 a, vec3 b, out vec3 result) { result = a * b; } void maxon_ReflectanceLayerLambertOrenNayar(inout ShadingContext sc, float strength, float incoming, float outgoing, out vec3 bsdf) { float cosThetaI = incoming; float cosThetaO = outgoing; if (cosThetaO * cosThetaI > 1e-3) { // XMBLambert::ComputeF bsdf.rgb = vec3(PI * strength); } else { bsdf.rgb = vec3(0.0); } } void maxon_Multiply(vec3 a, float b, out vec3 result) { result = a * b; } void maxon_AreaLightReflection(inout ShadingContext sc, vec3 N, vec3 lightPosition, mat3x3 lightMatrix, mat3x3 inverseLightMatrix, vec2 lightSize, float intensity, float roughness, SAMPLER2D_TYPEDEF(matrixTexture), SAMPLER2D_TYPEDEF(amplitudeTexture), out float reflection) { if (roughness < 1e-3) reflection = AreaLightCalculateMirror(sc.worldCoordinates.xyz, sc.eyeDirection.xyz, N, lightPosition, lightSize, lightMatrix); else reflection = AreaLightCalculateLTC(sc.worldCoordinates.xyz, sc.eyeDirection.xyz, N, lightPosition, lightSize, lightMatrix, inverseLightMatrix, roughness, SAMPLER_ACCESS(matrixTexture), SAMPLER_ACCESS(amplitudeTexture)); reflection *= intensity; } void maxon_MakeVec3(float a, out vec3 result) { result = vec3(a); } void maxon_ReflectanceFresnelDielectric(inout ShadingContext sc, vec3 etaI, vec3 etaT, float outgoing, out vec3 fresnel) { float cosI = abs(dot(sc.eyeDirection.xyz, sc.worldPhongNormal)); float cosT, rParl, rPerp; // XMBFresnelDielectric::Evaluate cosI = clamp(cosI, -1.0, 1.0); float cosSqrt = sqrt(max(0.0, 1.0 - cosI * cosI)); vec3 sinT = etaI / etaT * cosSqrt; cosI = abs(cosI); if (sinT.x >= 1.0) { fresnel.x = 1.0; } else { cosT = sqrt(max(0.0, 1.0 - sinT.x * sinT.x)); rParl = ((etaT.x * cosI) - (etaI.x * cosT)) / ((etaT.x * cosI) + (etaI.x * cosT)); rPerp = ((etaI.x * cosI) - (etaT.x * cosT)) / ((etaI.x * cosI) + (etaT.x * cosT)); fresnel.x = (rParl * rParl + rPerp * rPerp) * .5; } if (sinT.y >= 1.0) { fresnel.y = 1.0; } else { cosT = sqrt(max(0.0, 1.0 - sinT.y * sinT.y)); rParl = ((etaT.y * cosI) - (etaI.y * cosT)) / ((etaT.y * cosI) + (etaI.y * cosT)); rPerp = ((etaI.y * cosI) - (etaT.y * cosT)) / ((etaI.y * cosI) + (etaT.y * cosT)); fresnel.y = (rParl * rParl + rPerp * rPerp) * .5; } if (sinT.z >= 1.0) { fresnel.z = 1.0; } else { cosT = sqrt(max(0.0, 1.0 - sinT.z * sinT.z)); rParl = ((etaT.z * cosI) - (etaI.z * cosT)) / ((etaT.z * cosI) + (etaI.z * cosT)); rPerp = ((etaI.z * cosI) - (etaT.z * cosT)) / ((etaI.z * cosI) + (etaT.z * cosT)); fresnel.z = (rParl * rParl + rPerp * rPerp) * .5; } } void maxon_Mix(vec3 x, vec3 y, vec3 a, out vec3 result) { result = mix(x, y, a); } void maxon_ReflectanceLayerGGX(float strength, float expCutoff, float incoming, float outgoing, float NdotH, out vec3 bsdf) { // XMBGGX::ComputeD float fCosThetaI = incoming; float fCosThetaO = outgoing; if (NdotH > 1e-3 && fCosThetaO * fCosThetaI > 1e-3) { float z2 = NdotH * NdotH; float tanTheta2 = 1.0 - z2; tanTheta2 = tanTheta2 <= 0.0 ? 0.0 : (tanTheta2 / z2); // XMBFrame::TanTheta2 float cosTheta2 = z2; float fRoot = expCutoff / (cosTheta2 * (expCutoff * expCutoff + tanTheta2)); fRoot = fRoot * fRoot / PI; // XMBBlurryTorrance::ComputeF float fG = 1.0; // XMBGGX::ComputeG = ComputeG1 * ComputeG1 // check XMBFrame::IsSameHemisphere for both vectors if (incoming * NdotH <= 0.0 || outgoing * NdotH <= 0.0) { fG = 0.0; } else { float tanTheta, root2; tanTheta = 1.0 - incoming * incoming; // XMBFrame::TanTheta tanTheta = tanTheta <= 0.0 ? 0.0 : abs(sqrt(tanTheta) / incoming); // XMBFrame::TanTheta if (tanTheta > 1e-3) { root2 = expCutoff * tanTheta; fG = 2.0 / (1.0 + sqrt(1.0 + root2 * root2)); } tanTheta = 1.0 - outgoing * outgoing; // XMBFrame::TanTheta tanTheta = tanTheta <= 0.0 ? 0.0 : abs(sqrt(tanTheta) / outgoing); // XMBFrame::TanTheta if (tanTheta > 1e-3) { root2 = expCutoff * tanTheta; fG *= 2.0 / (1.0 + sqrt(1.0 + root2 * root2)); } } fG *= strength; bsdf.rgb = vec3(fRoot * PI * fG / (4.0 * fCosThetaO * fCosThetaI)); // from XReflectionLayers::CalculateSpecular bsdf.rgb *= 2.0 * PI * abs(fCosThetaO); } else { bsdf.rgb = vec3(0.0); } } void maxon_ReflectanceCalcGlobalTransF(vec3 globalTransIn, vec3 layerTrans, vec3 fresnel, out vec3 globalTransOut) { globalTransOut = globalTransIn * (1.0 - vec_average(layerTrans) * vec_average(fresnel)); } #define localvar_worldViewProjectionMatrix_0f projectionbuffer_0f.worldViewProjectionMatrix ShadingContext sc; sc.eyePosition = projectionbuffer_0f.eyePosition.xyz; sc.worldCoordinates = VARYING_IN(worldCoordinates); sc.uvw = VARYING_IN(uvw); sc.worldPhongNormal = SafeNormalize(VARYING_IN(normal)); sc.originalWorldPhongNormal = SafeNormalize(VARYING_IN(originalNormal)); sc.eyeDirection.xyz = sc.eyePosition - sc.worldCoordinates; sc.eyeDirection.w = length(sc.eyeDirection.xyz); if (sc.eyeDirection.w > 0.0) sc.eyeDirection.xyz /= sc.eyeDirection.w; sc.frontFacing = InFrontFacing ? 1.0 : -1.0; vec3 localvar_12_result_5f; // Mmaterial.input (Index: 4, ID: 0) ---> vec3 color, diffusion, luminance, transparency; vec3 H; vec4 N = vec4(sc.worldPhongNormal, sc.frontFacing); vec4 L; vec3 lightColorD, lightColorS; vec4 lightColorArea; vec3 illuminationModelSumBlend, illuminationModelSumNoBlend; float alpha = 1.0; illuminationModelSumBlend = vec3(0.0); illuminationModelSumNoBlend = vec3(0.0); transparency = vec3(0.0); float globalDiffusion = 1.0; // <--- Mmaterial.input // Mmaterial.f.u (Index: 4, ID: 4) ---> // <--- Mmaterial.f.u // NimbusViewportNode.textureArraySamplerResource (Index: 5, ID: 5) ---> // <--- NimbusViewportNode.textureArraySamplerResource // NimbusViewportNode.layerIndex (Index: 5, ID: 6) ---> // <--- NimbusViewportNode.layerIndex // Projection.u (Index: 2, ID: 7) ---> // <--- Projection.u // Projection.p (Index: 2, ID: 8) ---> vec3 localvar_8_uvw_2f; vec3 localvar_8_duvwX_2f; vec3 localvar_8_duvwY_2f; maxon_ProjectionUVWF(sc, uniforms.shader2f.offset, uniforms.shader2f.scale, localvar_8_uvw_2f, localvar_8_duvwX_2f, localvar_8_duvwY_2f); // <--- Projection.p // Projection.t (Index: 3, ID: 11) ---> vec3 localvar_11_uvw_3f; vec3 localvar_11_duvwX_3f; vec3 localvar_11_duvwY_3f; maxon_ProjectionTile(localvar_8_uvw_2f, localvar_8_duvwX_2f, localvar_8_duvwY_2f, true, false, localvar_11_uvw_3f, localvar_11_duvwX_3f, localvar_11_duvwY_3f); // <--- Projection.t // NimbusViewportNode.textureArraySample (Index: 5, ID: 12) ---> #define localvar_uvw_5f localvar_11_uvw_3f #define localvar_duvwX_5f localvar_8_duvwX_2f #define localvar_duvwY_5f localvar_8_duvwY_2f #define localvar_layer_5f uniforms.shader5f.layer #define localvar_texture_5f shader5f_texture_tex, shader5f_texture_smp #define localvar_result_5f localvar_12_result_5f localvar_result_5f = textureGrad(shader5f_texture_tex, shader5f_texture_smp, vec3(localvar_uvw_5f.xy, float(localvar_layer_5f)), localvar_duvwX_5f.xy, localvar_duvwY_5f.xy).rgb; #undef localvar_uvw_5f #undef localvar_duvwX_5f #undef localvar_duvwY_5f #undef localvar_layer_5f #undef localvar_texture_5f #undef localvar_result_5f // <--- NimbusViewportNode.textureArraySample // Mmaterial.multiply (Index: 4, ID: 13) ---> vec3 localvar_13_result_4f; maxon_Multiply3(uniforms.shader4f.luminance, localvar_12_result_5f, uniforms.shader4f.luminanceMix, localvar_13_result_4f); // <--- Mmaterial.multiply // Mmaterial.fragout (Index: 4, ID: 17) ---> #define localvar_color_4f vec3(0.0) #define localvar_diffusion_4f 1.0 #define localvar_luminance_4f localvar_13_result_4f #define localvar_transparency_4f vec3(0.0) #define localvar_environment_4f vec3(0.0) #define localvar_alpha_4f 1.0 #define localvar_repetition_4f true if (!localvar_repetition_4f) discard; if (localvar_alpha_4f < 0.005) discard; color = localvar_color_4f; diffusion = vec3(localvar_diffusion_4f); transparency = localvar_transparency_4f; alpha = localvar_alpha_4f; N = vec4(sc.worldPhongNormal, sc.frontFacing); luminance = localvar_luminance_4f + localvar_environment_4f; #undef localvar_color_4f #undef localvar_diffusion_4f #undef localvar_luminance_4f #undef localvar_transparency_4f #undef localvar_environment_4f #undef localvar_alpha_4f #undef localvar_repetition_4f // <--- Mmaterial.fragout sc.uvw = VARYING_IN(uvw); vec3 localvar_lightColorSs_6f[4]; vec4 localvar_Ls_6f[4]; vec3 localvar_Hs_6f[4]; float localvar_diffs_6f[4]; #define localvar_lightData_12f lightSet_11f.area[0] vec3 localvar_lightColor_12f = localvar_lightData_12f.color_contrast.rgb; L.xyz = localvar_lightData_12f.position_brightness.xyz - sc.worldCoordinates.xyz; L.w = length(L.xyz); if (L.w > 0.0) L.xyz /= L.w; H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); lightColorArea.a = 1.0; lightColorArea.rgb = localvar_lightColor_12f.rgb; float localvar_lightIntensity_12f = 1.0, localvar_falloffIntensity_12f = 1.0; localvar_lightColor_12f *= localvar_lightIntensity_12f; lightColorD = vec3(0.0); lightColorS = vec3(0.0); localvar_lightColorSs_6f[0] = lightColorS; localvar_Ls_6f[0] = L; localvar_Hs_6f[0] = H; localvar_diffs_6f[0] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_6f[0] = pow(localvar_diffs_6f[0], localvar_lightData_12f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_6f[0]; vec4 localvar_areaLightColor_0_6f = lightColorArea; #define localvar_lightData_13f lightSet_11f.distant[0] vec3 localvar_lightColor_13f = localvar_lightData_13f.color_contrast.rgb; float localvar_lightIntensity_13f = 1.0, localvar_falloffIntensity_13f = 1.0; L.xyz = -localvar_lightData_13f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_13f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_13f.direction_falloffGradientMultiplier.xyz, localvar_lightData_13f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_13f *= localvar_lightIntensity_13f; lightColorD = localvar_lightColor_13f; lightColorS = vec3(0.0); localvar_lightColorSs_6f[1] = lightColorS; localvar_Ls_6f[1] = L; localvar_Hs_6f[1] = H; localvar_diffs_6f[1] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_6f[1] = pow(localvar_diffs_6f[1], localvar_lightData_13f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_6f[1]; #define localvar_lightData_14f lightSet_11f.distant[1] vec3 localvar_lightColor_14f = localvar_lightData_14f.color_contrast.rgb; float localvar_lightIntensity_14f = 1.0, localvar_falloffIntensity_14f = 1.0; L.xyz = -localvar_lightData_14f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_14f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_14f.direction_falloffGradientMultiplier.xyz, localvar_lightData_14f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_14f *= localvar_lightIntensity_14f; lightColorD = localvar_lightColor_14f; lightColorS = localvar_lightColor_14f; localvar_lightColorSs_6f[2] = lightColorS; localvar_Ls_6f[2] = L; localvar_Hs_6f[2] = H; localvar_diffs_6f[2] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_6f[2] = pow(localvar_diffs_6f[2], localvar_lightData_14f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_6f[2]; #define localvar_lightData_15f lightSet_11f.distant[2] vec3 localvar_lightColor_15f = localvar_lightData_15f.color_contrast.rgb; float localvar_lightIntensity_15f = 1.0, localvar_falloffIntensity_15f = 1.0; L.xyz = -localvar_lightData_15f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_15f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_15f.direction_falloffGradientMultiplier.xyz, localvar_lightData_15f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_15f *= localvar_lightIntensity_15f; lightColorD = localvar_lightColor_15f; lightColorS = localvar_lightColor_15f; localvar_lightColorSs_6f[3] = lightColorS; localvar_Ls_6f[3] = L; localvar_Hs_6f[3] = H; localvar_diffs_6f[3] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_6f[3] = pow(localvar_diffs_6f[3], localvar_lightData_15f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_6f[3]; illuminationModelSumBlend += luminance; vec3 localvar_19_N_10f; float localvar_19_outgoing_10f; vec3 localvar_20_position_6f; mat3x3 localvar_20_m_6f; mat3x3 localvar_20_im_6f; vec2 localvar_20_lightSize_6f; float localvar_20_intensity_6f; float localvar_20_brightness_6f; vec3 localvar_20_frontColor_6f; vec3 localvar_20_backColor_6f; float localvar_28_x_10f; float localvar_28_y_10f; float localvar_28_z_10f; float localvar_28_w_10f; vec4 localvar_29_result_10f; float localvar_30_x_10f; float localvar_30_y_10f; float localvar_30_z_10f; float localvar_30_w_10f; vec3 localvar_31_layerIBLReflection_10f; vec3 localvar_34_N_8f; float localvar_34_outgoing_8f; float localvar_35_NdotL_8f; float localvar_35_incoming_8f; float localvar_35_NdotH_8f; vec3 localvar_35_lightColorD_8f; vec3 localvar_35_lightColorS_8f; vec3 localvar_35_L_8f; float localvar_35_L_length_8f; vec3 localvar_35_H_8f; float localvar_40_NdotL_10f; float localvar_40_incoming_10f; float localvar_40_NdotH_10f; vec3 localvar_40_lightColorD_10f; vec3 localvar_40_lightColorS_10f; vec3 localvar_40_L_10f; float localvar_40_L_length_10f; vec3 localvar_40_H_10f; float localvar_51_x_8f; float localvar_51_y_8f; float localvar_51_z_8f; float localvar_51_w_8f; vec4 localvar_52_result_8f; float localvar_53_x_8f; float localvar_53_y_8f; float localvar_53_z_8f; float localvar_53_w_8f; float localvar_56_x_8f; float localvar_56_y_8f; float localvar_56_z_8f; float localvar_56_w_8f; vec3 localvar_68_layerIBLReflection_8f; float localvar_74_NdotL_8f; float localvar_74_incoming_8f; float localvar_74_NdotH_8f; vec3 localvar_74_lightColorD_8f; vec3 localvar_74_lightColorS_8f; vec3 localvar_74_L_8f; float localvar_74_L_length_8f; vec3 localvar_74_H_8f; float localvar_90_NdotL_8f; float localvar_90_incoming_8f; float localvar_90_NdotH_8f; vec3 localvar_90_lightColorD_8f; vec3 localvar_90_lightColorS_8f; vec3 localvar_90_L_8f; float localvar_90_L_length_8f; vec3 localvar_90_H_8f; float localvar_98_NdotL_10f; float localvar_98_incoming_10f; float localvar_98_NdotH_10f; vec3 localvar_98_lightColorD_10f; vec3 localvar_98_lightColorS_10f; vec3 localvar_98_L_10f; float localvar_98_L_length_10f; vec3 localvar_98_H_10f; float localvar_104_NdotL_8f; float localvar_104_incoming_8f; float localvar_104_NdotH_8f; vec3 localvar_104_lightColorD_8f; vec3 localvar_104_lightColorS_8f; vec3 localvar_104_L_8f; float localvar_104_L_length_8f; vec3 localvar_104_H_8f; float localvar_106_NdotL_10f; float localvar_106_incoming_10f; float localvar_106_NdotH_10f; vec3 localvar_106_lightColorD_10f; vec3 localvar_106_lightColorS_10f; vec3 localvar_106_L_10f; float localvar_106_L_length_10f; vec3 localvar_106_H_10f; float localvar_123_NdotL_10f; float localvar_123_incoming_10f; float localvar_123_NdotH_10f; vec3 localvar_123_lightColorD_10f; vec3 localvar_123_lightColorS_10f; vec3 localvar_123_L_10f; float localvar_123_L_length_10f; vec3 localvar_123_H_10f; // uniform-base.1 (Index: 10, ID: 18) ---> // <--- uniform-base.1 // normal.1 (Index: 10, ID: 19) ---> #define localvar_bumpStrength_10f uniforms.shader10f.bumpStrength #define localvar_N_10f localvar_19_N_10f #define localvar_outgoing_10f localvar_19_outgoing_10f if (localvar_bumpStrength_10f >= 1.0) localvar_N_10f = N.xyz; else if (localvar_bumpStrength_10f <= 0.0) localvar_N_10f = sc.originalWorldPhongNormal; else localvar_N_10f = SafeNormalize(mix(sc.originalWorldPhongNormal, N.xyz, localvar_bumpStrength_10f)); localvar_N_10f *= N.w; localvar_outgoing_10f = dot(localvar_N_10f, sc.eyeDirection.xyz); #undef localvar_bumpStrength_10f #undef localvar_N_10f #undef localvar_outgoing_10f // <--- normal.1 // Mmaterial.arealight.0 (Index: 6, ID: 20) ---> #define localvar_position_6f localvar_20_position_6f #define localvar_m_6f localvar_20_m_6f #define localvar_im_6f localvar_20_im_6f #define localvar_lightSize_6f localvar_20_lightSize_6f #define localvar_intensity_6f localvar_20_intensity_6f #define localvar_brightness_6f localvar_20_brightness_6f #define localvar_frontColor_6f localvar_20_frontColor_6f #define localvar_backColor_6f localvar_20_backColor_6f localvar_position_6f = localvar_lightData_12f.position_brightness.xyz; localvar_m_6f = localvar_lightData_12f.m; localvar_im_6f = localvar_lightData_12f.im; localvar_lightSize_6f = localvar_lightData_12f.radius; localvar_intensity_6f = localvar_areaLightColor_0_6f.a; localvar_brightness_6f = localvar_lightData_12f.position_brightness.w; localvar_frontColor_6f = localvar_backColor_6f = localvar_areaLightColor_0_6f.rgb; #undef localvar_position_6f #undef localvar_m_6f #undef localvar_im_6f #undef localvar_lightSize_6f #undef localvar_intensity_6f #undef localvar_brightness_6f #undef localvar_frontColor_6f #undef localvar_backColor_6f // <--- Mmaterial.arealight.0 // layer.arealight-l0 (Index: 10, ID: 21) ---> float localvar_21_reflection_10f; maxon_AreaLightReflectionLambert(sc, localvar_19_N_10f, localvar_20_position_6f, localvar_20_m_6f, localvar_20_im_6f, localvar_20_lightSize_6f, localvar_20_intensity_6f, localvar_21_reflection_10f); // <--- layer.arealight-l0 // layer.arealight-l0-mulstrength (Index: 10, ID: 24) ---> float localvar_24_result_10f; maxon_Multiply(uniforms.shader10f.reflectionStrength, uniforms.shader6f.globalStrengths.x, localvar_24_result_10f); // <--- layer.arealight-l0-mulstrength // layer.arealight-l0-col (Index: 10, ID: 26) ---> vec3 localvar_26_color_10f; float localvar_26_iblOcclusionOut_10f; maxon_AreaLightCalcColor(localvar_21_reflection_10f, localvar_20_brightness_6f, localvar_20_frontColor_6f, 1.000, uniforms.shader10f.layerStrength, uniforms.shader10f.transColor, uniforms.shader10f.colorColor, vec3(1.0), localvar_24_result_10f, localvar_26_color_10f, localvar_26_iblOcclusionOut_10f); // <--- layer.arealight-l0-col // Refl.ibl.strengthmult (Index: 10, ID: 27) ---> float localvar_27_result_10f; maxon_Multiply(uniforms.shader10f.reflectionStrength, uniforms.shader6f.globalStrengths.x, localvar_27_result_10f); // <--- Refl.ibl.strengthmult // decompose-uniform.1 (Index: 10, ID: 28) ---> #define localvar_value_10f uniforms.shader10f.values #define localvar_x_10f localvar_28_x_10f #define localvar_y_10f localvar_28_y_10f #define localvar_z_10f localvar_28_z_10f #define localvar_w_10f localvar_28_w_10f localvar_x_10f = localvar_value_10f.x; localvar_y_10f = localvar_value_10f.y; localvar_z_10f = localvar_value_10f.z; localvar_w_10f = localvar_value_10f.w; #undef localvar_value_10f #undef localvar_x_10f #undef localvar_y_10f #undef localvar_z_10f #undef localvar_w_10f // <--- decompose-uniform.1 // compose-values.1 (Index: 10, ID: 29) ---> #define localvar_x_10f localvar_28_x_10f #define localvar_y_10f localvar_28_y_10f #define localvar_z_10f localvar_28_z_10f #define localvar_w_10f localvar_28_w_10f #define localvar_result_10f localvar_29_result_10f localvar_result_10f.x = localvar_x_10f; localvar_result_10f.y = localvar_y_10f; localvar_result_10f.z = localvar_z_10f; localvar_result_10f.w = localvar_w_10f; #undef localvar_x_10f #undef localvar_y_10f #undef localvar_z_10f #undef localvar_w_10f #undef localvar_result_10f // <--- compose-values.1 // decompose-ibl (Index: 10, ID: 30) ---> #define localvar_value_10f localvar_29_result_10f #define localvar_x_10f localvar_30_x_10f #define localvar_y_10f localvar_30_y_10f #define localvar_z_10f localvar_30_z_10f #define localvar_w_10f localvar_30_w_10f localvar_x_10f = localvar_value_10f.x; localvar_y_10f = localvar_value_10f.y; localvar_z_10f = localvar_value_10f.z; localvar_w_10f = localvar_value_10f.w; #undef localvar_value_10f #undef localvar_x_10f #undef localvar_y_10f #undef localvar_z_10f #undef localvar_w_10f // <--- decompose-ibl // Refl.ibl (Index: 10, ID: 31) ---> #define localvar_normal_10f localvar_19_N_10f #define localvar_layerColor_10f uniforms.shader10f.colorColor #define localvar_reflectionStrength_10f localvar_27_result_10f #define localvar_roughness_10f localvar_30_x_10f #define localvar_layerIblOcclusion_10f localvar_26_iblOcclusionOut_10f #define localvar_layerIBLReflection_10f localvar_31_layerIBLReflection_10f vec3 localvar_iblSample_10f = vec3(1.0); float localvar_roughness2_10f = clamp(localvar_roughness_10f, 0.0, 1.0); float localvar_mipmapLevel_10f = sqrt(localvar_roughness2_10f) * 9.0; localvar_iblSample_10f *= texture(shader10f_environmentTexture_tex, shader10f_environmentTexture_smp, vec4(mul(localvar_normal_10f, uniforms.shader10f.environmentOrientation), 0.0)).rgb; localvar_iblSample_10f *= localvar_layerIblOcclusion_10f; localvar_layerIBLReflection_10f = localvar_layerColor_10f; localvar_layerIBLReflection_10f *= localvar_iblSample_10f; localvar_layerIBLReflection_10f *= localvar_reflectionStrength_10f; #undef localvar_normal_10f #undef localvar_layerColor_10f #undef localvar_reflectionStrength_10f #undef localvar_roughness_10f #undef localvar_layerIblOcclusion_10f #undef localvar_layerIBLReflection_10f // <--- Refl.ibl // Refl.tmult.ibl (Index: 10, ID: 32) ---> vec3 localvar_32_result_10f; maxon_Multiply(uniforms.shader10f.transColor, localvar_31_layerIBLReflection_10f, localvar_32_result_10f); // <--- Refl.tmult.ibl // uniform-base.0 (Index: 8, ID: 33) ---> // <--- uniform-base.0 // normal.0 (Index: 8, ID: 34) ---> #define localvar_bumpStrength_8f uniforms.shader8f.bumpStrength #define localvar_N_8f localvar_34_N_8f #define localvar_outgoing_8f localvar_34_outgoing_8f if (localvar_bumpStrength_8f >= 1.0) localvar_N_8f = N.xyz; else if (localvar_bumpStrength_8f <= 0.0) localvar_N_8f = sc.originalWorldPhongNormal; else localvar_N_8f = SafeNormalize(mix(sc.originalWorldPhongNormal, N.xyz, localvar_bumpStrength_8f)); localvar_N_8f *= N.w; localvar_outgoing_8f = dot(localvar_N_8f, sc.eyeDirection.xyz); #undef localvar_bumpStrength_8f #undef localvar_N_8f #undef localvar_outgoing_8f // <--- normal.0 // Mmaterial.refin (Index: 8, ID: 35) ---> #define localvar_N_in_8f localvar_34_N_8f #define localvar_NdotL_8f localvar_35_NdotL_8f #define localvar_incoming_8f localvar_35_incoming_8f #define localvar_NdotH_8f localvar_35_NdotH_8f #define localvar_lightColorD_8f localvar_35_lightColorD_8f #define localvar_lightColorS_8f localvar_35_lightColorS_8f #define localvar_L_8f localvar_35_L_8f #define localvar_L_length_8f localvar_35_L_length_8f #define localvar_H_8f localvar_35_H_8f localvar_L_8f = localvar_Ls_6f[0].xyz; localvar_L_length_8f = localvar_Ls_6f[0].w; localvar_H_8f = localvar_Hs_6f[0]; localvar_lightColorS_8f = localvar_lightColorSs_6f[0]; localvar_NdotL_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_incoming_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_NdotH_8f = dot(localvar_N_in_8f, localvar_H_8f); #undef localvar_N_in_8f #undef localvar_NdotL_8f #undef localvar_incoming_8f #undef localvar_NdotH_8f #undef localvar_lightColorD_8f #undef localvar_lightColorS_8f #undef localvar_L_8f #undef localvar_L_length_8f #undef localvar_H_8f // <--- Mmaterial.refin // Refl.strengthmult.1 (Index: 10, ID: 39) ---> vec3 localvar_39_result_10f; maxon_Multiply3(uniforms.shader10f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_39_result_10f); // <--- Refl.strengthmult.1 // Mmaterial.refin (Index: 10, ID: 40) ---> #define localvar_N_in_10f localvar_19_N_10f #define localvar_NdotL_10f localvar_40_NdotL_10f #define localvar_incoming_10f localvar_40_incoming_10f #define localvar_NdotH_10f localvar_40_NdotH_10f #define localvar_lightColorD_10f localvar_40_lightColorD_10f #define localvar_lightColorS_10f localvar_40_lightColorS_10f #define localvar_L_10f localvar_40_L_10f #define localvar_L_length_10f localvar_40_L_length_10f #define localvar_H_10f localvar_40_H_10f localvar_L_10f = localvar_Ls_6f[0].xyz; localvar_L_length_10f = localvar_Ls_6f[0].w; localvar_H_10f = localvar_Hs_6f[0]; localvar_lightColorS_10f = localvar_lightColorSs_6f[0]; localvar_NdotL_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_incoming_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_NdotH_10f = dot(localvar_N_in_10f, localvar_H_10f); #undef localvar_N_in_10f #undef localvar_NdotL_10f #undef localvar_incoming_10f #undef localvar_NdotH_10f #undef localvar_lightColorD_10f #undef localvar_lightColorS_10f #undef localvar_L_10f #undef localvar_L_length_10f #undef localvar_H_10f // <--- Mmaterial.refin // orennayar.uniform (Index: 9, ID: 41) ---> // <--- orennayar.uniform // orennayar (Index: 9, ID: 42) ---> vec3 localvar_42_bsdf_9f; maxon_ReflectanceLayerLambertOrenNayar(sc, uniforms.shader9f.strength, localvar_40_incoming_10f, localvar_19_outgoing_10f, localvar_42_bsdf_9f); // <--- orennayar // Refl.cmult (Index: 10, ID: 43) ---> vec3 localvar_43_result_10f; maxon_Multiply(localvar_42_bsdf_9f, uniforms.shader10f.colorColor, localvar_43_result_10f); // <--- Refl.cmult // Refl.tmult.color (Index: 10, ID: 44) ---> vec3 localvar_44_result_10f; maxon_Multiply3(localvar_39_result_10f, localvar_43_result_10f, uniforms.shader10f.layerStrength, localvar_44_result_10f); // <--- Refl.tmult.color // layer.mul (Index: 10, ID: 45) ---> vec3 localvar_45_result_10f; maxon_Multiply(localvar_44_result_10f, vec3(1.0), localvar_45_result_10f); // <--- layer.mul // layer.mul2 (Index: 10, ID: 46) ---> vec3 localvar_46_result_10f; maxon_Multiply(localvar_45_result_10f, localvar_40_NdotL_10f, localvar_46_result_10f); // <--- layer.mul2 // decompose-uniform.0 (Index: 8, ID: 51) ---> #define localvar_value_8f uniforms.shader8f.values #define localvar_x_8f localvar_51_x_8f #define localvar_y_8f localvar_51_y_8f #define localvar_z_8f localvar_51_z_8f #define localvar_w_8f localvar_51_w_8f localvar_x_8f = localvar_value_8f.x; localvar_y_8f = localvar_value_8f.y; localvar_z_8f = localvar_value_8f.z; localvar_w_8f = localvar_value_8f.w; #undef localvar_value_8f #undef localvar_x_8f #undef localvar_y_8f #undef localvar_z_8f #undef localvar_w_8f // <--- decompose-uniform.0 // compose-values.0 (Index: 8, ID: 52) ---> #define localvar_x_8f localvar_51_x_8f #define localvar_y_8f localvar_51_y_8f #define localvar_z_8f localvar_51_z_8f #define localvar_w_8f localvar_51_w_8f #define localvar_result_8f localvar_52_result_8f localvar_result_8f.x = localvar_x_8f; localvar_result_8f.y = localvar_y_8f; localvar_result_8f.z = localvar_z_8f; localvar_result_8f.w = localvar_w_8f; #undef localvar_x_8f #undef localvar_y_8f #undef localvar_z_8f #undef localvar_w_8f #undef localvar_result_8f // <--- compose-values.0 // decompose-ibl (Index: 8, ID: 53) ---> #define localvar_value_8f localvar_52_result_8f #define localvar_x_8f localvar_53_x_8f #define localvar_y_8f localvar_53_y_8f #define localvar_z_8f localvar_53_z_8f #define localvar_w_8f localvar_53_w_8f localvar_x_8f = localvar_value_8f.x; localvar_y_8f = localvar_value_8f.y; localvar_z_8f = localvar_value_8f.z; localvar_w_8f = localvar_value_8f.w; #undef localvar_value_8f #undef localvar_x_8f #undef localvar_y_8f #undef localvar_z_8f #undef localvar_w_8f // <--- decompose-ibl // decompose-refl (Index: 8, ID: 56) ---> #define localvar_value_8f localvar_52_result_8f #define localvar_x_8f localvar_56_x_8f #define localvar_y_8f localvar_56_y_8f #define localvar_z_8f localvar_56_z_8f #define localvar_w_8f localvar_56_w_8f localvar_x_8f = localvar_value_8f.x; localvar_y_8f = localvar_value_8f.y; localvar_z_8f = localvar_value_8f.z; localvar_w_8f = localvar_value_8f.w; #undef localvar_value_8f #undef localvar_x_8f #undef localvar_y_8f #undef localvar_z_8f #undef localvar_w_8f // <--- decompose-refl // layer.arealight0 (Index: 8, ID: 57) ---> float localvar_57_reflection_8f; maxon_AreaLightReflection(sc, localvar_34_N_8f, localvar_20_position_6f, localvar_20_m_6f, localvar_20_im_6f, localvar_20_lightSize_6f, localvar_20_intensity_6f, localvar_56_x_8f, shader6f_areaLightLTCMatrix_tex, shader6f_areaLightLTCMatrix_smp, shader6f_areaLightLTCAmplitude_tex, shader6f_areaLightLTCAmplitude_smp, localvar_57_reflection_8f); // <--- layer.arealight0 // layer.arealight-l0-mulstrength (Index: 8, ID: 58) ---> float localvar_58_result_8f; maxon_Multiply(uniforms.shader8f.reflectionStrength, uniforms.shader6f.globalStrengths.x, localvar_58_result_8f); // <--- layer.arealight-l0-mulstrength // Refl.ior.expand (Index: 8, ID: 61) ---> vec3 localvar_61_result_8f; maxon_MakeVec3(uniforms.shader8f.fresnelIOR, localvar_61_result_8f); // <--- Refl.ior.expand // Refl.diel (Index: 8, ID: 63) ---> vec3 localvar_63_fresnel_8f; maxon_ReflectanceFresnelDielectric(sc, vec3(1.0), localvar_61_result_8f, localvar_34_outgoing_8f, localvar_63_fresnel_8f); // <--- Refl.diel // Refl.expand (Index: 8, ID: 64) ---> vec3 localvar_64_result_8f; maxon_MakeVec3(uniforms.shader8f.fresnelStrength, localvar_64_result_8f); // <--- Refl.expand // Refl.fmix (Index: 8, ID: 65) ---> vec3 localvar_65_result_8f; maxon_Mix(vec3(1.0), localvar_63_fresnel_8f, localvar_64_result_8f, localvar_65_result_8f); // <--- Refl.fmix // layer.arealight-l0-col (Index: 8, ID: 66) ---> vec3 localvar_66_color_8f; float localvar_66_iblOcclusionOut_8f; maxon_AreaLightCalcColor(localvar_57_reflection_8f, localvar_20_brightness_6f, localvar_20_frontColor_6f, 1.000, uniforms.shader8f.layerStrength, uniforms.shader8f.transColor, uniforms.shader8f.colorColor, localvar_65_result_8f, localvar_58_result_8f, localvar_66_color_8f, localvar_66_iblOcclusionOut_8f); // <--- layer.arealight-l0-col // Refl.ibl.strengthmult (Index: 8, ID: 67) ---> float localvar_67_result_8f; maxon_Multiply(uniforms.shader8f.reflectionStrength, uniforms.shader6f.globalStrengths.x, localvar_67_result_8f); // <--- Refl.ibl.strengthmult // Refl.ibl (Index: 8, ID: 68) ---> #define localvar_normal_8f localvar_34_N_8f #define localvar_layerColor_8f uniforms.shader8f.colorColor #define localvar_reflectionStrength_8f localvar_67_result_8f #define localvar_roughness_8f localvar_53_x_8f #define localvar_layerIblOcclusion_8f localvar_66_iblOcclusionOut_8f #define localvar_layerIBLReflection_8f localvar_68_layerIBLReflection_8f vec3 localvar_iblSample_8f = vec3(1.0); float localvar_roughness2_8f = clamp(localvar_roughness_8f, 0.0, 1.0); float localvar_mipmapLevel_8f = sqrt(localvar_roughness2_8f) * 9.0; localvar_iblSample_8f *= textureLod(shader8f_environmentTexture_tex, shader8f_environmentTexture_smp, vec4(mul(reflect(-sc.eyeDirection.xyz, localvar_normal_8f), uniforms.shader8f.environmentOrientation), 0.0), localvar_mipmapLevel_8f).rgb; localvar_iblSample_8f *= texture(shader8f_integratedBSDFTexture_tex, shader8f_integratedBSDFTexture_smp, clamp(vec2(dot(sc.eyeDirection.xyz, localvar_normal_8f), localvar_roughness2_8f), 1.0 / 512.0, 1.0 - 1.0 / 512.0)).r; localvar_iblSample_8f *= localvar_layerIblOcclusion_8f; localvar_layerIBLReflection_8f = localvar_layerColor_8f; localvar_layerIBLReflection_8f *= localvar_iblSample_8f; localvar_layerIBLReflection_8f *= localvar_reflectionStrength_8f; #undef localvar_normal_8f #undef localvar_layerColor_8f #undef localvar_reflectionStrength_8f #undef localvar_roughness_8f #undef localvar_layerIblOcclusion_8f #undef localvar_layerIBLReflection_8f // <--- Refl.ibl // Refl.tmult.ibl (Index: 8, ID: 69) ---> vec3 localvar_69_result_8f; maxon_Multiply(uniforms.shader8f.transColor, localvar_68_layerIBLReflection_8f, localvar_69_result_8f); // <--- Refl.tmult.ibl // Refl.muls3 (Index: 8, ID: 70) ---> vec3 localvar_70_result_8f; maxon_Multiply(localvar_69_result_8f, localvar_65_result_8f, localvar_70_result_8f); // <--- Refl.muls3 // Refl.strengthmult.1 (Index: 8, ID: 72) ---> vec3 localvar_72_result_8f; maxon_Multiply3(uniforms.shader8f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_72_result_8f); // <--- Refl.strengthmult.1 // bgw.uniform (Index: 7, ID: 73) ---> // <--- bgw.uniform // Mmaterial.refin (Index: 8, ID: 74) ---> #define localvar_N_in_8f localvar_34_N_8f #define localvar_NdotL_8f localvar_74_NdotL_8f #define localvar_incoming_8f localvar_74_incoming_8f #define localvar_NdotH_8f localvar_74_NdotH_8f #define localvar_lightColorD_8f localvar_74_lightColorD_8f #define localvar_lightColorS_8f localvar_74_lightColorS_8f #define localvar_L_8f localvar_74_L_8f #define localvar_L_length_8f localvar_74_L_length_8f #define localvar_H_8f localvar_74_H_8f localvar_L_8f = localvar_Ls_6f[3].xyz; localvar_L_length_8f = localvar_Ls_6f[3].w; localvar_H_8f = localvar_Hs_6f[3]; localvar_lightColorS_8f = localvar_lightColorSs_6f[3]; localvar_NdotL_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_incoming_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_NdotH_8f = dot(localvar_N_in_8f, localvar_H_8f); #undef localvar_N_in_8f #undef localvar_NdotL_8f #undef localvar_incoming_8f #undef localvar_NdotH_8f #undef localvar_lightColorD_8f #undef localvar_lightColorS_8f #undef localvar_L_8f #undef localvar_L_length_8f #undef localvar_H_8f // <--- Mmaterial.refin // bsdf (Index: 7, ID: 75) ---> vec3 localvar_75_bsdf_7f; maxon_ReflectanceLayerGGX(uniforms.shader7f.strength, uniforms.shader7f.expCutoff, localvar_74_incoming_8f, localvar_34_outgoing_8f, localvar_74_NdotH_8f, localvar_75_bsdf_7f); // <--- bsdf // Refl.cmult (Index: 8, ID: 76) ---> vec3 localvar_76_result_8f; maxon_Multiply(localvar_75_bsdf_7f, uniforms.shader8f.colorColor, localvar_76_result_8f); // <--- Refl.cmult // Refl.tmult.color (Index: 8, ID: 77) ---> vec3 localvar_77_result_8f; maxon_Multiply3(localvar_72_result_8f, localvar_76_result_8f, uniforms.shader8f.layerStrength, localvar_77_result_8f); // <--- Refl.tmult.color // Refl.muls3 (Index: 8, ID: 78) ---> vec3 localvar_78_result_8f; maxon_Multiply(localvar_77_result_8f, localvar_65_result_8f, localvar_78_result_8f); // <--- Refl.muls3 // layer.mul (Index: 8, ID: 79) ---> vec3 localvar_79_result_8f; maxon_Multiply(localvar_78_result_8f, vec3(1.0), localvar_79_result_8f); // <--- layer.mul // layer.mul2 (Index: 8, ID: 80) ---> vec3 localvar_80_result_8f; maxon_Multiply(localvar_79_result_8f, localvar_74_NdotL_8f, localvar_80_result_8f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 8, ID: 81) ---> vec3 localvar_81_result_8f; maxon_Multiply3(uniforms.shader8f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_81_result_8f); // <--- Refl.strengthmult.1 // bsdf (Index: 7, ID: 82) ---> vec3 localvar_82_bsdf_7f; maxon_ReflectanceLayerGGX(uniforms.shader7f.strength, uniforms.shader7f.expCutoff, localvar_35_incoming_8f, localvar_34_outgoing_8f, localvar_35_NdotH_8f, localvar_82_bsdf_7f); // <--- bsdf // Refl.cmult (Index: 8, ID: 83) ---> vec3 localvar_83_result_8f; maxon_Multiply(localvar_82_bsdf_7f, uniforms.shader8f.colorColor, localvar_83_result_8f); // <--- Refl.cmult // Refl.tmult.color (Index: 8, ID: 84) ---> vec3 localvar_84_result_8f; maxon_Multiply3(localvar_81_result_8f, localvar_83_result_8f, uniforms.shader8f.layerStrength, localvar_84_result_8f); // <--- Refl.tmult.color // Refl.muls3 (Index: 8, ID: 85) ---> vec3 localvar_85_result_8f; maxon_Multiply(localvar_84_result_8f, localvar_65_result_8f, localvar_85_result_8f); // <--- Refl.muls3 // layer.mul (Index: 8, ID: 86) ---> vec3 localvar_86_result_8f; maxon_Multiply(localvar_85_result_8f, vec3(1.0), localvar_86_result_8f); // <--- layer.mul // layer.mul2 (Index: 8, ID: 87) ---> vec3 localvar_87_result_8f; maxon_Multiply(localvar_86_result_8f, localvar_35_NdotL_8f, localvar_87_result_8f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 8, ID: 89) ---> vec3 localvar_89_result_8f; maxon_Multiply3(uniforms.shader8f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_89_result_8f); // <--- Refl.strengthmult.1 // Mmaterial.refin (Index: 8, ID: 90) ---> #define localvar_N_in_8f localvar_34_N_8f #define localvar_NdotL_8f localvar_90_NdotL_8f #define localvar_incoming_8f localvar_90_incoming_8f #define localvar_NdotH_8f localvar_90_NdotH_8f #define localvar_lightColorD_8f localvar_90_lightColorD_8f #define localvar_lightColorS_8f localvar_90_lightColorS_8f #define localvar_L_8f localvar_90_L_8f #define localvar_L_length_8f localvar_90_L_length_8f #define localvar_H_8f localvar_90_H_8f localvar_L_8f = localvar_Ls_6f[2].xyz; localvar_L_length_8f = localvar_Ls_6f[2].w; localvar_H_8f = localvar_Hs_6f[2]; localvar_lightColorS_8f = localvar_lightColorSs_6f[2]; localvar_NdotL_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_incoming_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_NdotH_8f = dot(localvar_N_in_8f, localvar_H_8f); #undef localvar_N_in_8f #undef localvar_NdotL_8f #undef localvar_incoming_8f #undef localvar_NdotH_8f #undef localvar_lightColorD_8f #undef localvar_lightColorS_8f #undef localvar_L_8f #undef localvar_L_length_8f #undef localvar_H_8f // <--- Mmaterial.refin // bsdf (Index: 7, ID: 91) ---> vec3 localvar_91_bsdf_7f; maxon_ReflectanceLayerGGX(uniforms.shader7f.strength, uniforms.shader7f.expCutoff, localvar_90_incoming_8f, localvar_34_outgoing_8f, localvar_90_NdotH_8f, localvar_91_bsdf_7f); // <--- bsdf // Refl.cmult (Index: 8, ID: 92) ---> vec3 localvar_92_result_8f; maxon_Multiply(localvar_91_bsdf_7f, uniforms.shader8f.colorColor, localvar_92_result_8f); // <--- Refl.cmult // Refl.tmult.color (Index: 8, ID: 93) ---> vec3 localvar_93_result_8f; maxon_Multiply3(localvar_89_result_8f, localvar_92_result_8f, uniforms.shader8f.layerStrength, localvar_93_result_8f); // <--- Refl.tmult.color // Refl.muls3 (Index: 8, ID: 94) ---> vec3 localvar_94_result_8f; maxon_Multiply(localvar_93_result_8f, localvar_65_result_8f, localvar_94_result_8f); // <--- Refl.muls3 // layer.mul (Index: 8, ID: 95) ---> vec3 localvar_95_result_8f; maxon_Multiply(localvar_94_result_8f, vec3(1.0), localvar_95_result_8f); // <--- layer.mul // layer.mul2 (Index: 8, ID: 96) ---> vec3 localvar_96_result_8f; maxon_Multiply(localvar_95_result_8f, localvar_90_NdotL_8f, localvar_96_result_8f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 10, ID: 97) ---> vec3 localvar_97_result_10f; maxon_Multiply3(uniforms.shader10f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_97_result_10f); // <--- Refl.strengthmult.1 // Mmaterial.refin (Index: 10, ID: 98) ---> #define localvar_N_in_10f localvar_19_N_10f #define localvar_NdotL_10f localvar_98_NdotL_10f #define localvar_incoming_10f localvar_98_incoming_10f #define localvar_NdotH_10f localvar_98_NdotH_10f #define localvar_lightColorD_10f localvar_98_lightColorD_10f #define localvar_lightColorS_10f localvar_98_lightColorS_10f #define localvar_L_10f localvar_98_L_10f #define localvar_L_length_10f localvar_98_L_length_10f #define localvar_H_10f localvar_98_H_10f localvar_L_10f = localvar_Ls_6f[3].xyz; localvar_L_length_10f = localvar_Ls_6f[3].w; localvar_H_10f = localvar_Hs_6f[3]; localvar_lightColorS_10f = localvar_lightColorSs_6f[3]; localvar_NdotL_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_incoming_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_NdotH_10f = dot(localvar_N_in_10f, localvar_H_10f); #undef localvar_N_in_10f #undef localvar_NdotL_10f #undef localvar_incoming_10f #undef localvar_NdotH_10f #undef localvar_lightColorD_10f #undef localvar_lightColorS_10f #undef localvar_L_10f #undef localvar_L_length_10f #undef localvar_H_10f // <--- Mmaterial.refin // orennayar (Index: 9, ID: 99) ---> vec3 localvar_99_bsdf_9f; maxon_ReflectanceLayerLambertOrenNayar(sc, uniforms.shader9f.strength, localvar_98_incoming_10f, localvar_19_outgoing_10f, localvar_99_bsdf_9f); // <--- orennayar // Refl.cmult (Index: 10, ID: 100) ---> vec3 localvar_100_result_10f; maxon_Multiply(localvar_99_bsdf_9f, uniforms.shader10f.colorColor, localvar_100_result_10f); // <--- Refl.cmult // Refl.tmult.color (Index: 10, ID: 101) ---> vec3 localvar_101_result_10f; maxon_Multiply3(localvar_97_result_10f, localvar_100_result_10f, uniforms.shader10f.layerStrength, localvar_101_result_10f); // <--- Refl.tmult.color // layer.mul (Index: 10, ID: 102) ---> vec3 localvar_102_result_10f; maxon_Multiply(localvar_101_result_10f, vec3(1.0), localvar_102_result_10f); // <--- layer.mul // layer.mul2 (Index: 10, ID: 103) ---> vec3 localvar_103_result_10f; maxon_Multiply(localvar_102_result_10f, localvar_98_NdotL_10f, localvar_103_result_10f); // <--- layer.mul2 // Mmaterial.refin (Index: 8, ID: 104) ---> #define localvar_N_in_8f localvar_34_N_8f #define localvar_NdotL_8f localvar_104_NdotL_8f #define localvar_incoming_8f localvar_104_incoming_8f #define localvar_NdotH_8f localvar_104_NdotH_8f #define localvar_lightColorD_8f localvar_104_lightColorD_8f #define localvar_lightColorS_8f localvar_104_lightColorS_8f #define localvar_L_8f localvar_104_L_8f #define localvar_L_length_8f localvar_104_L_length_8f #define localvar_H_8f localvar_104_H_8f localvar_L_8f = localvar_Ls_6f[1].xyz; localvar_L_length_8f = localvar_Ls_6f[1].w; localvar_H_8f = localvar_Hs_6f[1]; localvar_lightColorS_8f = localvar_lightColorSs_6f[1]; localvar_NdotL_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_incoming_8f = dot(localvar_N_in_8f, localvar_L_8f); localvar_NdotH_8f = dot(localvar_N_in_8f, localvar_H_8f); #undef localvar_N_in_8f #undef localvar_NdotL_8f #undef localvar_incoming_8f #undef localvar_NdotH_8f #undef localvar_lightColorD_8f #undef localvar_lightColorS_8f #undef localvar_L_8f #undef localvar_L_length_8f #undef localvar_H_8f // <--- Mmaterial.refin // Refl.strengthmult.1 (Index: 10, ID: 105) ---> vec3 localvar_105_result_10f; maxon_Multiply3(uniforms.shader10f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_105_result_10f); // <--- Refl.strengthmult.1 // Mmaterial.refin (Index: 10, ID: 106) ---> #define localvar_N_in_10f localvar_19_N_10f #define localvar_NdotL_10f localvar_106_NdotL_10f #define localvar_incoming_10f localvar_106_incoming_10f #define localvar_NdotH_10f localvar_106_NdotH_10f #define localvar_lightColorD_10f localvar_106_lightColorD_10f #define localvar_lightColorS_10f localvar_106_lightColorS_10f #define localvar_L_10f localvar_106_L_10f #define localvar_L_length_10f localvar_106_L_length_10f #define localvar_H_10f localvar_106_H_10f localvar_L_10f = localvar_Ls_6f[2].xyz; localvar_L_length_10f = localvar_Ls_6f[2].w; localvar_H_10f = localvar_Hs_6f[2]; localvar_lightColorS_10f = localvar_lightColorSs_6f[2]; localvar_NdotL_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_incoming_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_NdotH_10f = dot(localvar_N_in_10f, localvar_H_10f); #undef localvar_N_in_10f #undef localvar_NdotL_10f #undef localvar_incoming_10f #undef localvar_NdotH_10f #undef localvar_lightColorD_10f #undef localvar_lightColorS_10f #undef localvar_L_10f #undef localvar_L_length_10f #undef localvar_H_10f // <--- Mmaterial.refin // orennayar (Index: 9, ID: 107) ---> vec3 localvar_107_bsdf_9f; maxon_ReflectanceLayerLambertOrenNayar(sc, uniforms.shader9f.strength, localvar_106_incoming_10f, localvar_19_outgoing_10f, localvar_107_bsdf_9f); // <--- orennayar // Refl.cmult (Index: 10, ID: 108) ---> vec3 localvar_108_result_10f; maxon_Multiply(localvar_107_bsdf_9f, uniforms.shader10f.colorColor, localvar_108_result_10f); // <--- Refl.cmult // Refl.tmult.color (Index: 10, ID: 109) ---> vec3 localvar_109_result_10f; maxon_Multiply3(localvar_105_result_10f, localvar_108_result_10f, uniforms.shader10f.layerStrength, localvar_109_result_10f); // <--- Refl.tmult.color // layer.mul (Index: 10, ID: 110) ---> vec3 localvar_110_result_10f; maxon_Multiply(localvar_109_result_10f, vec3(1.0), localvar_110_result_10f); // <--- layer.mul // layer.mul2 (Index: 10, ID: 111) ---> vec3 localvar_111_result_10f; maxon_Multiply(localvar_110_result_10f, localvar_106_NdotL_10f, localvar_111_result_10f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 8, ID: 113) ---> vec3 localvar_113_result_8f; maxon_Multiply3(uniforms.shader8f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_113_result_8f); // <--- Refl.strengthmult.1 // bsdf (Index: 7, ID: 114) ---> vec3 localvar_114_bsdf_7f; maxon_ReflectanceLayerGGX(uniforms.shader7f.strength, uniforms.shader7f.expCutoff, localvar_104_incoming_8f, localvar_34_outgoing_8f, localvar_104_NdotH_8f, localvar_114_bsdf_7f); // <--- bsdf // Refl.cmult (Index: 8, ID: 115) ---> vec3 localvar_115_result_8f; maxon_Multiply(localvar_114_bsdf_7f, uniforms.shader8f.colorColor, localvar_115_result_8f); // <--- Refl.cmult // Refl.tmult.color (Index: 8, ID: 116) ---> vec3 localvar_116_result_8f; maxon_Multiply3(localvar_113_result_8f, localvar_115_result_8f, uniforms.shader8f.layerStrength, localvar_116_result_8f); // <--- Refl.tmult.color // Refl.muls3 (Index: 8, ID: 117) ---> vec3 localvar_117_result_8f; maxon_Multiply(localvar_116_result_8f, localvar_65_result_8f, localvar_117_result_8f); // <--- Refl.muls3 // layer.mul (Index: 8, ID: 118) ---> vec3 localvar_118_result_8f; maxon_Multiply(localvar_117_result_8f, vec3(1.0), localvar_118_result_8f); // <--- layer.mul // layer.mul2 (Index: 8, ID: 119) ---> vec3 localvar_119_result_8f; maxon_Multiply(localvar_118_result_8f, localvar_104_NdotL_8f, localvar_119_result_8f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 10, ID: 122) ---> vec3 localvar_122_result_10f; maxon_Multiply3(uniforms.shader10f.transColor, vec3(1.0), uniforms.shader6f.globalStrengths.y, localvar_122_result_10f); // <--- Refl.strengthmult.1 // Mmaterial.refin (Index: 10, ID: 123) ---> #define localvar_N_in_10f localvar_19_N_10f #define localvar_NdotL_10f localvar_123_NdotL_10f #define localvar_incoming_10f localvar_123_incoming_10f #define localvar_NdotH_10f localvar_123_NdotH_10f #define localvar_lightColorD_10f localvar_123_lightColorD_10f #define localvar_lightColorS_10f localvar_123_lightColorS_10f #define localvar_L_10f localvar_123_L_10f #define localvar_L_length_10f localvar_123_L_length_10f #define localvar_H_10f localvar_123_H_10f localvar_L_10f = localvar_Ls_6f[1].xyz; localvar_L_length_10f = localvar_Ls_6f[1].w; localvar_H_10f = localvar_Hs_6f[1]; localvar_lightColorS_10f = localvar_lightColorSs_6f[1]; localvar_NdotL_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_incoming_10f = dot(localvar_N_in_10f, localvar_L_10f); localvar_NdotH_10f = dot(localvar_N_in_10f, localvar_H_10f); #undef localvar_N_in_10f #undef localvar_NdotL_10f #undef localvar_incoming_10f #undef localvar_NdotH_10f #undef localvar_lightColorD_10f #undef localvar_lightColorS_10f #undef localvar_L_10f #undef localvar_L_length_10f #undef localvar_H_10f // <--- Mmaterial.refin // orennayar (Index: 9, ID: 124) ---> vec3 localvar_124_bsdf_9f; maxon_ReflectanceLayerLambertOrenNayar(sc, uniforms.shader9f.strength, localvar_123_incoming_10f, localvar_19_outgoing_10f, localvar_124_bsdf_9f); // <--- orennayar // Refl.cmult (Index: 10, ID: 125) ---> vec3 localvar_125_result_10f; maxon_Multiply(localvar_124_bsdf_9f, uniforms.shader10f.colorColor, localvar_125_result_10f); // <--- Refl.cmult // Refl.tmult.color (Index: 10, ID: 126) ---> vec3 localvar_126_result_10f; maxon_Multiply3(localvar_122_result_10f, localvar_125_result_10f, uniforms.shader10f.layerStrength, localvar_126_result_10f); // <--- Refl.tmult.color // layer.mul (Index: 10, ID: 127) ---> vec3 localvar_127_result_10f; maxon_Multiply(localvar_126_result_10f, vec3(1.0), localvar_127_result_10f); // <--- layer.mul // layer.mul2 (Index: 10, ID: 128) ---> vec3 localvar_128_result_10f; maxon_Multiply(localvar_127_result_10f, localvar_123_NdotL_10f, localvar_128_result_10f); // <--- layer.mul2 // layer.globtrans0.mul (Index: 8, ID: 130) ---> vec3 localvar_130_result_8f; maxon_Multiply(uniforms.shader8f.transColor, uniforms.shader8f.layerStrength, localvar_130_result_8f); // <--- layer.globtrans0.mul // layer.globtrans0 (Index: 8, ID: 131) ---> vec3 localvar_131_globalTransOut_8f; maxon_ReflectanceCalcGlobalTransF(vec3(1.0), localvar_130_result_8f, localvar_65_result_8f, localvar_131_globalTransOut_8f); // <--- layer.globtrans0 // Mmaterial.refout (Index: 6, ID: 132) ---> #define localvar_lightColorS_0_6f localvar_35_lightColorS_8f #define localvar_lightColorS_1_6f localvar_104_lightColorS_8f #define localvar_lightColorS_2_6f localvar_90_lightColorS_8f #define localvar_lightColorS_3_6f localvar_74_lightColorS_8f #define localvar_weaken_6f 0.0 #define localvar_layer0_spec_light0_6f localvar_87_result_8f #define localvar_layer0_area_light0_6f localvar_66_color_8f #define localvar_layer0_spec_light1_6f localvar_119_result_8f #define localvar_layer0_area_light1_6f vec3(0.0) #define localvar_layer0_spec_light2_6f localvar_96_result_8f #define localvar_layer0_area_light2_6f vec3(0.0) #define localvar_layer0_spec_light3_6f localvar_80_result_8f #define localvar_layer0_area_light3_6f vec3(0.0) #define localvar_layer0_refl_6f localvar_70_result_8f #define localvar_layer0_globalTrans_6f vec3(1.0) #define localvar_layer1_spec_light0_6f localvar_46_result_10f #define localvar_layer1_area_light0_6f localvar_26_color_10f #define localvar_layer1_spec_light1_6f localvar_128_result_10f #define localvar_layer1_area_light1_6f vec3(0.0) #define localvar_layer1_spec_light2_6f localvar_111_result_10f #define localvar_layer1_area_light2_6f vec3(0.0) #define localvar_layer1_spec_light3_6f localvar_103_result_10f #define localvar_layer1_area_light3_6f vec3(0.0) #define localvar_layer1_refl_6f localvar_32_result_10f #define localvar_layer1_globalTrans_6f localvar_131_globalTransOut_8f illuminationModelSumBlend *= clamp(1.0 - localvar_weaken_6f, 0.0, 1.0); { float localvar_layerMax_6f; vec3 localvar_layerSpecular_6f, localvar_layerColor_6f, localvar_lightColor_6f; vec3 localvar_reflectanceColor_6f = vec3(0.0); // layer Layer 2 localvar_layerColor_6f = vec3(0.0); localvar_layerSpecular_6f = localvar_layer0_spec_light0_6f / PI; localvar_lightColor_6f = localvar_lightColorS_0_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f; localvar_layerColor_6f += localvar_layer0_area_light0_6f; localvar_layerSpecular_6f = localvar_layer0_spec_light1_6f / PI; localvar_lightColor_6f = localvar_lightColorS_1_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f; localvar_layerColor_6f += localvar_layer0_area_light1_6f; localvar_layerSpecular_6f = localvar_layer0_spec_light2_6f / PI; localvar_lightColor_6f = localvar_lightColorS_2_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f; localvar_layerColor_6f += localvar_layer0_area_light2_6f; localvar_layerSpecular_6f = localvar_layer0_spec_light3_6f / PI; localvar_lightColor_6f = localvar_lightColorS_3_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f; localvar_layerColor_6f += localvar_layer0_area_light3_6f; localvar_layerColor_6f += localvar_layer0_refl_6f; illuminationModelSumNoBlend += localvar_layerColor_6f * localvar_layer0_globalTrans_6f; // layer Layer 1 localvar_layerColor_6f = vec3(0.0); localvar_layerSpecular_6f = localvar_layer1_spec_light0_6f / PI; localvar_lightColor_6f = localvar_lightColorS_0_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f * diffusion; localvar_layerColor_6f += localvar_layer1_area_light0_6f; localvar_layerSpecular_6f = localvar_layer1_spec_light1_6f / PI; localvar_lightColor_6f = localvar_lightColorS_1_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f * diffusion; localvar_layerColor_6f += localvar_layer1_area_light1_6f; localvar_layerSpecular_6f = localvar_layer1_spec_light2_6f / PI; localvar_lightColor_6f = localvar_lightColorS_2_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f * diffusion; localvar_layerColor_6f += localvar_layer1_area_light2_6f; localvar_layerSpecular_6f = localvar_layer1_spec_light3_6f / PI; localvar_lightColor_6f = localvar_lightColorS_3_6f; localvar_layerMax_6f = max(localvar_layerSpecular_6f.r, max(localvar_layerSpecular_6f.g, localvar_layerSpecular_6f.b)); localvar_layerColor_6f += localvar_layerSpecular_6f / max(1.0, localvar_layerMax_6f / 16.0) * localvar_lightColor_6f * diffusion; localvar_layerColor_6f += localvar_layer1_area_light3_6f; localvar_layerColor_6f += localvar_layer1_refl_6f; illuminationModelSumNoBlend += localvar_layerColor_6f * localvar_layer1_globalTrans_6f; } #undef localvar_lightColorS_0_6f #undef localvar_lightColorS_1_6f #undef localvar_lightColorS_2_6f #undef localvar_lightColorS_3_6f #undef localvar_weaken_6f #undef localvar_layer0_spec_light0_6f #undef localvar_layer0_area_light0_6f #undef localvar_layer0_spec_light1_6f #undef localvar_layer0_area_light1_6f #undef localvar_layer0_spec_light2_6f #undef localvar_layer0_area_light2_6f #undef localvar_layer0_spec_light3_6f #undef localvar_layer0_area_light3_6f #undef localvar_layer0_refl_6f #undef localvar_layer0_globalTrans_6f #undef localvar_layer1_spec_light0_6f #undef localvar_layer1_area_light0_6f #undef localvar_layer1_spec_light1_6f #undef localvar_layer1_area_light1_6f #undef localvar_layer1_spec_light2_6f #undef localvar_layer1_area_light2_6f #undef localvar_layer1_spec_light3_6f #undef localvar_layer1_area_light3_6f #undef localvar_layer1_refl_6f #undef localvar_layer1_globalTrans_6f // <--- Mmaterial.refout illuminationModelSumBlend *= globalDiffusion; illuminationModelSumNoBlend *= globalDiffusion; f_color.rgb = illuminationModelSumBlend + illuminationModelSumNoBlend; transparency = clamp(transparency, 0.0, 1.0); f_color.a = (1.0 - vec_average(transparency)) * alpha; f_color.rgb = mix(f_color.rgb, uniforms.shader0f.tintColorA.rgb + uniforms.shader0f.tintColorB.rgb * sc.frontFacing, uniforms.shader0f.tintColorA.a); c????1net.maxon.drawport.programfactoryparameterhandles_map4net.maxon.drawport.programfactoryparameterhandledata shaderIndexdata .-#"!%$h@D  +D*) < '&  <( , d HHH.net.maxon.drawport.programfactoryattributeinfo_name _dataType_numComponentsobjectPosition phongNormaluvw%.net.maxon.drawport.programfactoryuniformglobal_stage_type _shaderIndexV_arrayElementSize tintColorA tintColorB objectMatrix normalMatrix textureObjectMatrix luminance luminanceMixinverseTextureSizelayer  textureMatrix inverseTextureTagMatrixoffsetscaleglobalStrengths values layerStrength reflectionStrength bumpStrength colorColor colorMix transColor transMix environmentOrientationopqrstuvfresnelStrength fresnelIOR strengthwz expCutoff.net.maxon.drawport.programfactorytextureglobal _textureType]^_V`textureareaLightLTCMatrixareaLightLTCAmplitude environmentTextureintegratedBSDFTexture-net.maxon.drawport.programfactorybufferglobal] _bufferType^_arrayElementCount_V;projectionbufferBK lightSet5net.maxon.drawport.datatype.shadercachevaryingdirectxinStageoutStagetype8 interpolationworldCoordinates[normaloriginalNormal,net.maxon.drawport.programfactoryoutputcolortarget8indexnet.maxon.datatype.internedid*net.maxon.drawport.framebuffertarget.colorf_color7net.maxon.drawport.datatype.shadercacheitemvaliddirectx _keyHashCode_isComputeProgram_textureBindings_imageBindings_bufferBindings_atomicCounterBindings _stageDatabool 7net.maxon.drawport.datatype.shadercachedirectxstagedataglobalUniformBindingPointnoiseTableBindinggradientTableBindinguniformBufferBinding shaderBinary globalUniformOffsetsglobalUniformSizeuint16int32DXBC-Stp!;<L5!SFI0ISG1objectPositionphongNormaluvwSV_InstanceIDSV_VertexIDOSG1SV_PositionworldCoordinatesTEXCOORDNORMALoriginalNormalPSV0$PobjectPositionphongNormaluvwworldCoordinatesTEXCOORDNORMALoriginalNormalCCCAAD C1C:CACpppSTAT( aDXIL BC!  #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L 2" d##ㄡL L 0@0090\ ,0D3 aKSD /@DtOh`|`A!_0_"J|pq`I` q b4 LBQEAD(0H`|`A!_0_"J4rB omQ$A ,0D3 a?„8M@@e 9s`0G (H*FAPupmT_6"(g {fX\ msA10($bqɿ}YHS\~8"i(a &M%L>8@0DDR,a$g)B.X`qGArf M%L~9 !LtU7_㶍x_( &%PjBE0 p4E0/M%6h@"J|18k+={|ﺮw~!QEAD( z"'! q* "B(rt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@:!#%@!C < y2 l@0 '2L &GCj B("(2 F@ \ ʡ$  0 X0 ʃ fRfcg sBg( ubǚD@by;LFD5c s;+K{sqA ;{*b* *y1Ks cK 6EAnnE&33+ @P`!87177:32 4m@)6M C #+ @b\1X2objectMatrix @ֆ tM lh[gGM-)N. o`Y6 Hlb`q+ã+{S+k KÛ @)6 L̠ ɽѥ5ɥm8n؀ jUx7962;(7170:4 m@6rRW6F6A Vx;794 2}Lئ&P@`@lr@w0A87 @::9.SV_POSITIONd#t&F6&GFW67A p~}&0*zz"ـ `7 GM-ӓTS)k 8S>:originalNormal,7P6z@ 4x t6 H+X M-m+x KP +,! ` oA `@0AP8 Rf&6@p*6L.L@8ɽѥՙ}m ^  &L4 (g0AX`VPXiy ` ./Laa(6a&l0u`55A`9b5۰0Ca^aaòB;;;)$90$ BLe)|2eeU&GWDaa <=>pzKK{s D ($6,;= 0C<*zz"ڰl#0aLaa¡B;;;Æ"$D$J$6 p Br`T ]KYݔ BbW&76%؅ٕM :dx.shaderModelS \[Xܔ@DBWFF67EtCbVvD6EFW6%P:dx.entryPointsSyL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq & l;/TQQCImہ4\BDͰ60 <<mpK(5=mpOD4!@m[DNB4UD/ F//M%Lt?¬c1h&! @|i(a %"!&"*d ,0D3 aWF@- Ӄ1h&! @|i(aIaB&rm F/DNB4UD @rt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@C< y 4@ 0y`#0@2L &GC"Ja@ \ ʡ <(2("(B p)AAA@@0fyLFD5c s;+K{sqA ;{*b* *y1Ks cK 86CAnn@ &D2A6Bـ( (CL dxe `D Bhj 載AͥѥMhPHePL 6, i6pqC{s;szk c۰ ai6pMC݆e 6m@LY}%х%M jPTڰtfphiCt0A .SV_VertexID5`3HM` 4`CbPj\&5A B 2nMݽɱ ɑѕmX:ȴ n>"TEXCOORD1L`@h8=I51mX:<ȴ >:originalNormal5ЃL`@6sPw{ap>&bm?PXWLPͮ%̍nJT!s+K{s M\E2<90272)R ElNnlnJ !sK+K" +Pu\yL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq  l;/TQQCIm[4\BDͰ0 <<mpK(5=mpOD4!@ma eA,QrUv34 # ` yuLjA Hl2b X7# ``u1b `'# ``A&$$A$A$Ō$֌$gPe1# `A`̈A  lpeP3b Aƌ$ge1# `A`̈A  lphP3b nj$ge1# `Ad̈A  lpbP3b ƌ$g e1# `|e1# `|e1# `|e1# `Ap̈A  lphP3b Aƌ$ge1# `A`̈A  lp`P3b nj$g e5# `Ad̈A  lp_p̈A  lp_`͈A  lp_d̈ 4k(e0 B00 0bp  PO&h& h1AS 0  0@ #`聗hB&h AbhB&h A# f~0 B00y1@@A0xN 4/@eb A0xT21F Y8 af A0x\03F y: ΈA  $2 ňA  $2 p 0 p0b ,)A  #`Ȃȁ)&h& h1As {p0 B00 0bp  /hB&h &È 4P p 0  0@ 6u1@Xa҂A0xΡ+`Ia A0x$/1@gbA $XT1@h!`@ w ,cPg@ y A0x!1,3b =<94# `܃<0vxp6:01;<̃B9=ԃ<B(ȃ=8;;C8A;C9@0;<̃B9=ԃ<B(ȃ=8;;C8 Z\$M%Lt?!!F)ɗ` "'$8p4E0 D W b4 LBQK0]"$"i(aH/ p ,0D3 aKSD /@D5]Jp*W b4 LBQK0_ZpEQK0Q_ ISD /@D{OH h0)'H*PxD&9n|`A!_06(\HSD ,R"1uEm:ר@t )ט!Dc ھiQȀp C4 `4E0ZD%bSL_;<]7JJ%::.Xaf̗&Dcb/qsu]G$:n|`A!_0Acb #"%A`|`A!_0_"J4rB omQa2#1h&! @'rB "5PbAK@bAK@bA @2 V• i {_ i%&mTZ ?a!! ^x'@ (xpmT_6"CO@ģ˟|n|!0 |: ZAg I>Lr8 $ISD /@DvOh6!$bqɿ)ɗ` . %8ϋ)ɗ` "'ä)'H*PxDh92&_Dc u~FI | @ Q䗈qL,1^8Nxnۺhg I>Lr8 LgQ䧑„8ML_}5nx5 5#M%L~\ĂR ISD D\(5"p8gQ0 9D\_{~u;p` ؀ 4ɉ Hp `@dNmSla" B L6Y0l>@ B-907 L#M,̍n i -HɕM?@ p -b7777:9 RL9D6]09417/0673#027:6482 (l0673 L)l907790):23:  *l'//b77 L9^ ,'47/134: R /l rMM096 Hj45LP` {А #K @Zqafffv$FVFTFǖV&7ADaF,llm.lMn  66gAi0 P x ٨ ۘ ܂={S+K{sk K0LӰAr fworldViewProjectionMatrix7`PasAͥѥm0`VcsإMm0`\csᕱMm0`hcs6l1m0`!і7@Ѓ BB=6A(cQ1A܁Z[ج $6 p1AXaȗۛ)/02: L1lxA?&hAqzJJzrڀ l7967940 " /L!9Pa ==Il@aDa"͡&FI)iS Ӊl740670 " *L)9)Q .A( "L9 dD^BworldPhongNormal FQboriginalWorldPhongNormal DFR؜  *l2417 R#Ol377:4 r# =lE\EbdFhFpd`1ئ ´#]"uniformsGb@?2A} ÖvF7UFc@Ą)6h0&^Nprojectionbuffer_0fLbg2Aha`ẅ m&a 1  aa ?\_(sXv}  ( H  Ҹ ppX0!2A455 6677 8!8!9A < CQ'u! @'w2A~ ).SV_Position6x B† A+Lڀ6, R 0AhU 0ۆe> ?OP!"TEXCOORDٰ4''2I*aaNOBOFe&THe2Hʟ'S )/(44$ B RaaVUZO\ep+T:SV_IsFrontFace68 3lXXaXW\rYpJJʫ )/02 Bt6̭lXZ[P@\ʆVtPɞJU\A2<27)Є .ͮLnJP!sC #+kz#+c e\|P υ.,..mn 'wR ..l.lJ'u\yL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq UP&1[v]vөe<./m88Nm8,2,V0,߲۞N-uyK/Ge 0XarY3nz,dh@#Qxz]^^r`@`5 h|"/n4(t$ @mc.y|!JJGn8"h g|g b.yy/n"_`| .y| `۶ j|%y/n2ǗY/n$Ǘ&'"Pjz/n,ǟhB۶g|0mkx8&03뉜&i(_0cxi0HASH3W|p+ 5DXIL>aDXIL>BC!  #AI29 %bEB B28K 2rH CF2BH#PAQ9FQ@  m0 I`B L +2" d##ㄡL L@ #9P P P €rd@  In.BWBZ/n`@=OCH~4BR$ b 0 .,`0 5\=sU`0(Ć`!'!$ۨb%&mDB!< >sA1,"@010P@  P@ |`@lt`z0@Lb00n@ PPr@ |`0`@~~N38C8<->C=C9B=C9 F//M%L>8@0DDRLFp9q b4 LBQEAD(@"Je!1&/jymFET*rwh M%LL%bSL_m߸N6Rh0)"(:`bozQR*lؠTp C4 `4E0%bKL47۶:~q b4 LB bKL( R1 J b4 LBQ䧑„8ML_}5nx5T* ,0D3 a?„8M@Iɛ)gY@Art`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@C< y (@0a` !@C < y2 p@ 0`#@ 2L &GC"@)@AIB9DAA J aJ(J4 P3 f8@bPs,"yLFD5c s;+K{sqA ;{*b* *y1Ks cK x6CAnn@@&D4A@3 0A 1Mj<eafphg0A 14< !q$F)G6$((6$(( `@\"cmhQm>H m@Q&"ۀ `(A`@hg 0|bPV` r ΀QA6 0J1(9FA؀Lg(נ E`ikm3p B+&@j˔\]ڛ&E!P&7A( Bu`w(y{c#z{#Ks + `Ah ˰uw yD6Maq`'@ӓTSӆ:ȃ;<:originalNormal ;LY}Aɥѥٕ%M0 b0A(`R) Et&laÂ) E*†C FTLY}QɝM2   u w(y0 Z0B- 9[x ]KYݔ BbW&76%؅ٕM :dx.shaderModelS \[Xܔ إ%MхѕM K\[ܔyL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq 8 @; a~q۶ <PEAD %am p UDT:P `>r <D@3,8;?8mp/0CM~q&0 <<#m pK,_ܶ!P;/̳` ~qۦP <0BDE,~q6P <49RCM~qv 9.A `0# ``9:$ u0b F?6 ,0P1-0P1.q1|cBA0`bሀoa >6}l 10P1<1Ѓ`]Ǻ0ua0DŽ>F1!ψ 0a pD@ 7P)}Lc AYcb0 B#*ЈV=18n,ҡa4!Fa4aF@A0`bA0`A0`A0`Ao@">pD7ː(Yec0!qoaa#%>pb78Ygc0јህoK&>pD7IYic0!(oas)>p7PYYkc0&R O>x1 c<1yb A0`^#&A0``C&A0R&a4FႁTdQPA>iĢCC>&h& ˆ pq 0 C0@F 򱀐|,(c" bqo1 B00#`Y]&h& !>6C|f A0Σ-Db6 F|lc ADŽ>#`_Y,1e)}f ` LVh18NDP'\c4!F`4aF 3M!M!>VC|.;1w0c`džA>6 1!|L3b`  F02h[`@SBg` dP& MeA0zd<7Fa8"P e`8BH e~B&c?!񱟐1ǎA> 'cN |lcB#g@ ;`8" e> 1,7P2 gxzӑ6P2 gx|ӑ6P2 gx~ӑfCM 7!A0?! ȉA0$DlFF`4AFa@ ?)ݨфMфA18nTR7`d4!F`4aF ;M!MA0V%F̃FF`4AFa@ WфMyF WF ٕW#@ DL7 "L70L7A# `ʏ B0 02&|c  @>6|LcF 6 A| q1!,>&|F @z9ƀψ HB'F|F @;1 0(c,AXbI|F @—=`@ | 3b Ҿ#` ˟Z`(g@ $ DA0ETQ @>#` Pqԁ|F @S 08 T2A`>Q|@>#` L b 22A`g@  A0\&V 6, 3B0b RJB  H2S+} ҈ H3c+~ ш H4s+ k>|l 32A0b { A0xW=F @p1 d3b ψK2 H`3.8#` B, HbS. r0b ؘ+B_ 1c|1Qψ Hh.(#` ~ 1@imP`@ $yCKA>#` M$ 6C0"|b8" nEl`#*]fAHzEJHna!0e0Y0ƅ cFAA(@c#T1Vc (|cY=nY20Bfc^AB+Dc#A|L:1>0|cY=nxY3@`fc^AB+Dc#̀C| -1ZHX-|L cY=nY=H` f` }C sA>$!k |L cg# 1tc vcP1B|f ` fؠ {]D { A>6-! |cp|lB>?!@HcAI$cp:2A:5s@>|'B>k!#!f%c%FBMD&cp>2 ?`00tD|%K1 J|L cC>|,B>6o!#!g`R…` 0Zcg1 @>?@>|'jC>!@g`p` ^1cvH @>|7Xl|5|C>F1B, 7,CA`'$cw!b=cv1 |7n ܈n|L cY=n ]p*`` e> )9Q`q*\ \&\F f> )9P`qvAу`OV€NƀLnnn@f$@nnnnn`0`012Џ356 7 89:P;<48=( ' Le T C gP<48=( d& df d d dF X d ddfdd<48=( h& hf x h |C D h hahh&h h&hF n>] >6)9Qaqu>Aу`O]€vƀv@D΀vԀv-'v@vvЀvv`0ӟ0p1П2356 78П9:П;@@@`0l泙01235À l llfll0Aу`gg23@ @1`qP gngggg`0 D1Q ooo@g@8`D1Aу`012 pG p H1pR w: p'p p'pG > S 30@ L1pS <48=(  > =1Ϡ 38 =6@ 3 @<:p3 @=8=n (nHa@ž`!&fnH f@A0TJ*he@ rK>&Lψ @/JmV4b` LR`A'2Pg`@ 00A0`n  @>&|aψ @9KU]V5b`  OR`A&2ؐg`@ %첰10&)@ |l3b XeURSV҈ 8fN+V1XǮM>&1"ψ 0mUN }F jv6A0pު[18)ȥA0`j@>Ɓ|LcD A0` Xg`@ '10m@ §@F +{ i@ 2 cb`1!|F -}*LcKQ+1e?F "-J482118ǴH*pA0pNKx10&*3hX|LcD A0`\ˤ Xg*4>nY?``@ ؊87(RA0pf+}18^*A0`lTՁ*DŽ >F10ff0! |f @ac`?`@ ߚψ pVDV 07|F -§M!MA0 IF`4AFh&c5B1I!džH>6H򱡑|,Xc# &XǎH>XA0pK18*A0˯djF`4AFa@ 8-фMфA18LKjk4!F`4ali b:H0b V5#A0X`G F @j1؂#gv3b ҋ0 H06[#`n[D`W[W 0  0bp \ZhB&h WcV%6 B00b  XC>F8`|cA# 7fW5l1,C(B0!2)VV8++NnjA>v 1d >| >6|lc ADŽ>#`}o ,(B`@SBgJ[ B D^P(l5cP7x @ad QP@5vJ>6|l),Tj%6AXOj'[76|,C)B`UV*|U|F b5@I K>01 | cCoS|̷)>[hH>#` ݚ 1 k;6P` g@ $]뱄A0vǒ LĈX g8"1eHS! ncP0b RكCIb$A0̤ F @"3x(03b F HfV|F @J76(1@IڬG># ` B0 0)j|c  PA>6|Lc*NJV A| y 1!ψ H3gkp1#` ܭ!Yg@ $˵ZA0nNja{F @¹]K>ψ H:k H;kI#` ܯ)ajF|F @pۅ2l vFI0b Rؑ#A0h F @"ss#$8z3b ٥[1 Hgnq&F|F @J;v#)1@IMψ HlneD#` Qa1@ `@ $74!O>#` ] 4wCX`?1@퇺`@ $˷0ψ Hxob#`  |F @;!2F @0,@>#` ]#` Cj A0Bx A0Dx ݄B GT&| {wtC0O _ { G$&|%N702* ,C*B`18cn Ҁ cg1B|ߪ:c8:|3K0 ,*B`%1;ct cs1 | >|l|@>F1B,8 7,C+B`4WRc c| 1B|l >V |lĂ|LdA>F1B,8 7,+B`cUc Hc 1B|Lh!>& | +|vA>&1,8 7`00 7`0 ܙC|81pxX8|L c;YC A> ˅_|3K0 2B-&z@>|lA> #!ᐏ"KvC;>F%^ flC kA>,!c |L c1{c !$c1 |f aa0Y\ȅ~/%c9nBDM`&c#D|$H򱐀 H|L cYqnЇ `at!n `ax!K1c*򱕸 @>f|,O|'B>F1B,8 7D`0 XE|,X򱰀 X|L c#.ccBh/cpNa ``1cr!/cq1 |5j @ h|cYqn0 = `!!0 Z#>|.X]؆|.hC>&1!{ D>!s ݐ |L 3K0 tюL7cA0K0222222@22222@ˈ@a0)L**H++؆,-- ..L//L8 ,L.8 ٜټЂH8لو@a0)K**M++, --..B//M8 ,M.8 뤂봂z\* # 3 3 3 3 3 3 3 3 3 3 3̈@a0)L**H++,-Ќ- ..L//L8 ,L.Ќ8 ڜڼЂJ:ڄڈ@a0)K**M++, --..B//M8 ,M.8 줂촂|^, #`3`3`3`3`3`3@-،- ..L//6 6 6#333`B++ (9 3633330P ls (: B++, -- (: 66660P s (贂: ::- (: ::::0P s (; ,-` (; @;@;@;0P0* * .* @-` (* B/Ш 4* B.8 7(tC #L70Pd QL740ݐ4pC29# `dЋA-A8|Lc#A02`͊F )N>&d򱡒ψ @gc5b` Z|Lc&A02`ಪ˪F yL>&d!ψ @qc]vY#`ePA`&4ؠg`@ 1JA0p2 `@ 1110f/ 6صDŽ >F104| ,Hܦ]V5bp h 3?;#`fA`80 A|3b` j"&`ψ @d aӚJA=#`fAp 0e|L @>&1"ψ 0dPǖ> 29# `fpA 8dd0bp n5#ÛAiAҠ cB#AN },`3K`P9 7n`0p,DYqoP 0 #`g@A 8ed0b` LzV U A|3b` {f&,: t f*p9#yX@,A: t :P e #`gPAJy& pe_ A` A03% F``@ 2Z 1@A0`3 18?  F @/, YA|F 4 A0`H4 X g@  38# oA!aeg@  P3h 10E 3"X >&-A|L`cB@+ >f D3YuuW!fء&*hA|F @7 A0`|4 0l cNJ3uA|LcB@+ >f h3YvvYaf c18M b3F `=ԠcNJ& |,cy<%xApa4 @>&T򱁐  cCz18O r3x`4!F`4aF  E X4M!M \  X`ȩcA.F>$s X |?rψ 8hg0bp ή6 ë4 8hh0b` ̯:h A0t5Ӏ> F`4AFa@ 8_ 4LфMфA18N\4 3`4!F`4a F c1f4,䮁<7 n$H> 1d!C|l3b y S0b ҽz P`&A05A05K4 į ԯ <A>hp}iЧA&h& ˆ @#jo(ш 8%ji0bp #`l  8(j i0b YiiAjhBW?j0 B00#`l&h& ǂI>,@|c# XǒL>L|F \: 5MA06|d2&A06~ɗF2 $A0|6 O| F`4A#W qpD,AW10o|  6t1k | 0 |,c10t  5kg`*Ap[)kg8"hנF adψ 0nL7k7@ g@  ^6,>A@ @ } `eP`c  cdž>#`n0NY@|,3K`P(.È pm`A 0b cX{g0b dUXxf0l |6|# @g+ A|# τ> 1*DŽ>Vc#f33lP|5;E|63lP|#`op`FA0`7 n # o!!0acA  6ψ 0$mX|,n>0P1`>Xh|m >7b`  }F i `n6Y}u|,>#`pA`1 Xg:a@]+2  mn  @>610Ƈn˂ c Y~~0yF  | V8M!MA08 = 3рF F | 7M3pD | A08`t F`4AFa@ 857 }ф1X( 3`>> 4 3n | ,̂cfQ 1X !0| F  8| ,c`@>|,x X c]p,cA]ǂqh  B>|D7k! B>|,xX 3bp ,0  8pp A0pj9@>c džu cúN/c?ِ B>|, XK4cIܐ$!A0p90F I%@A01E}l0@>6k 5F c(T  LA>fԂ|,8X c*ǖ\  `A>|,#(F0bp H0tg@ F9P '-}cagذ|,;X`c/ǰu  A>|zX``c9g@ l9(A0pr:@ ,P@>#`t(5}Lc@l6 6 c v@| >p>$c<džx݈ǂv@c X |,/n N>0𱀀툸ǂ{cA Hu0 00 0bp _%rhB&h Ɓ|l@>6q ǘ->1⊏R|lc$& 𱡃 |F @X;`1HEX;`@a @ \;`퀵A0Pt;p퀵@;"shader10f.transMixshader8f.fresnelStrengthpshader4f.luminance shader10f.bumpStrengthshader5f.inverseTextureSize0shader10f.colorMixshader10f.layerStrengthshader2f.textureMatrix@shader10f.transColorshader2f.offset shader10f.environmentOrientationshader0f.tintColorAshader10f.colorColorshader0f.tintColorBshader10f.valuesshader2f.scaleshader8f.transColor`shader6f.globalStrengthsshader10f.reflectionStrengthshader5f.layer8 shader2f.inverseTextureTagMatrixpshader4f.luminanceMix,shader8f.colorColorPshader7f.strengthshader8f.values0shader8f.layerStrength@shader8f.reflectionStrengthDshader8f.bumpStrengthHshader8f.colorMix\shader8f.transMixlshader8f.fresnelIORtshader8f.environmentOrientationshader9f.strengthshader7f.expCutoffwsIdC]!@oyp0wdsIdC]!@@b>h,@  @̣.T v;<=>?@?#define localvar_worldViewProjectionMatrix_0v projectionbuffer_0v.worldViewProjectionMatrix ShadingContext sc; VARYING_OUT(worldCoordinates) = vec3(0.0); VARYING_OUT(normal) = vec3(0.0, 1.0, 0.0); sc.objectMatrix = uniforms.shader0v.objectMatrix; sc.normalMatrix = uniforms.shader0v.normalMatrix; sc.worldCoordinates = mul(sc.objectMatrix, vec4(stageInput.objectPosition.xyz, 1.0)); VARYING_OUT(worldCoordinates) = sc.worldCoordinates; OutPosition = mul(localvar_worldViewProjectionMatrix_0v, vec4(sc.worldCoordinates, 1.0)); vec3 localvar_normal_0v = mul(sc.normalMatrix, stageInput.phongNormal); VARYING_OUT(normal) = localvar_normal_0v; t????T????g????o????m????fC? vec3 worldPhongNormal; vec3 objectColor; float frontFacing; ?M? ShadingContext sc; sc.worldPhongNormal = SafeNormalize(VARYING_IN(normal)); sc.objectColor = uniforms.shader0f.objectColor; sc.frontFacing = InFrontFacing ? 1.0 : -1.0; // Mmaterial.input (Index: 4, ID: 0) ---> vec3 color, diffusion, luminance, transparency; vec3 H; vec4 N = vec4(sc.worldPhongNormal, sc.frontFacing); vec4 L; vec3 lightColorD, lightColorS; vec4 lightColorArea; vec3 illuminationModelSumBlend, illuminationModelSumNoBlend; float alpha = 1.0; illuminationModelSumBlend = vec3(0.0); illuminationModelSumNoBlend = vec3(0.0); transparency = vec3(0.0); float globalDiffusion = 1.0; // <--- Mmaterial.input // Mmaterial.fragout (Index: 4, ID: 8) ---> #define localvar_color_4f sc.objectColor #define localvar_diffusion_4f 1.0 #define localvar_luminance_4f vec3(0.0) #define localvar_transparency_4f vec3(0.0) #define localvar_environment_4f vec3(0.0) #define localvar_alpha_4f 1.0 #define localvar_repetition_4f true if (!localvar_repetition_4f) discard; color = localvar_color_4f; diffusion = vec3(localvar_diffusion_4f); transparency = localvar_transparency_4f; alpha = localvar_alpha_4f; N = vec4(sc.worldPhongNormal, sc.frontFacing); luminance = localvar_luminance_4f + localvar_environment_4f; #undef localvar_color_4f #undef localvar_diffusion_4f #undef localvar_luminance_4f #undef localvar_transparency_4f #undef localvar_environment_4f #undef localvar_alpha_4f #undef localvar_repetition_4f // <--- Mmaterial.fragout f_picku.rgba = uniforms.shader0f.pickUvec; c????h@DYZpickUvec cd e objectColor;.net.maxon.drawport.framebuffertarget.pickuvec4f_picku0`shader0f.pickUvecshader0f.objectColor wsIdC]!@oyp0wdsIdC]!@@b>h,@  @̣.T v;<=>?@?t????T????g????o????m????fCP vec4 fragCoord; vec3 worldPhongNormal; vec3 objectColor; float frontFacing; ?M? ShadingContext sc; sc.worldPhongNormal = SafeNormalize(VARYING_IN(normal)); sc.fragCoord = InFragCoord; sc.objectColor = uniforms.shader0f.objectColor; sc.frontFacing = InFrontFacing ? 1.0 : -1.0; ivec2 localvar_uvDepthPeel_0f = ivec2(sc.fragCoord.xy); float localvar_depth_0f = GetFramebufferTexel(shader0f_depthTexture_tex, localvar_uvDepthPeel_0f).r; if (localvar_depth_0f >= sc.fragCoord.z - 1.2e-7) discard; // Mmaterial.input (Index: 4, ID: 0) ---> vec3 color, diffusion, luminance, transparency; vec3 H; vec4 N = vec4(sc.worldPhongNormal, sc.frontFacing); vec4 L; vec3 lightColorD, lightColorS; vec4 lightColorArea; vec3 illuminationModelSumBlend, illuminationModelSumNoBlend; float alpha = 1.0; illuminationModelSumBlend = vec3(0.0); illuminationModelSumNoBlend = vec3(0.0); transparency = vec3(0.0); float globalDiffusion = 1.0; // <--- Mmaterial.input // Mmaterial.fragout (Index: 4, ID: 8) ---> #define localvar_color_4f sc.objectColor #define localvar_diffusion_4f 1.0 #define localvar_luminance_4f vec3(0.0) #define localvar_transparency_4f vec3(0.0) #define localvar_environment_4f vec3(0.0) #define localvar_alpha_4f 1.0 #define localvar_repetition_4f true if (!localvar_repetition_4f) discard; color = localvar_color_4f; diffusion = vec3(localvar_diffusion_4f); transparency = localvar_transparency_4f; alpha = localvar_alpha_4f; N = vec4(sc.worldPhongNormal, sc.frontFacing); luminance = localvar_luminance_4f + localvar_environment_4f; #undef localvar_color_4f #undef localvar_diffusion_4f #undef localvar_luminance_4f #undef localvar_transparency_4f #undef localvar_environment_4f #undef localvar_alpha_4f #undef localvar_repetition_4f // <--- Mmaterial.fragout f_picku.rgba = uniforms.shader0f.pickUvec; c????h@DYZ cd e depthTexture;0` wWQ]!@oyp0wdWQ]!@@b>h,@  @̣.T v=>?@?#define localvar_worldViewProjectionMatrix_0v uniforms.shader0v.worldViewProjectionMatrix ShadingContext sc; VARYING_OUT(worldCoordinates) = vec3(0.0); VARYING_OUT(normal) = vec3(0.0, 1.0, 0.0); sc.objectMatrix = uniforms.shader0v.objectMatrix; sc.normalMatrix = uniforms.shader0v.normalMatrix; sc.worldCoordinates = mul(sc.objectMatrix, vec4(stageInput.objectPosition.xyz, 1.0)); VARYING_OUT(worldCoordinates) = sc.worldCoordinates; OutPosition = mul(localvar_worldViewProjectionMatrix_0v, vec4(sc.worldCoordinates, 1.0)); vec3 localvar_normal_0v = mul(sc.normalMatrix, stageInput.phongNormal); VARYING_OUT(normal) = localvar_normal_0v; t????T????g????o????m????fC?M? ShadingContext sc; sc.worldPhongNormal = SafeNormalize(VARYING_IN(normal)); sc.objectColor = uniforms.shader0f.objectColor; sc.frontFacing = InFrontFacing ? 1.0 : -1.0; // Mmaterial.input (Index: 4, ID: 0) ---> vec3 color, diffusion, luminance, transparency; vec3 H; vec4 N = vec4(sc.worldPhongNormal, sc.frontFacing); vec4 L; vec3 lightColorD, lightColorS; vec4 lightColorArea; vec3 illuminationModelSumBlend, illuminationModelSumNoBlend; float alpha = 1.0; illuminationModelSumBlend = vec3(0.0); illuminationModelSumNoBlend = vec3(0.0); transparency = vec3(0.0); float globalDiffusion = 1.0; // <--- Mmaterial.input // Mmaterial.fragout (Index: 4, ID: 8) ---> #define localvar_color_4f sc.objectColor #define localvar_diffusion_4f 1.0 #define localvar_luminance_4f vec3(0.0) #define localvar_transparency_4f vec3(0.0) #define localvar_environment_4f vec3(0.0) #define localvar_alpha_4f 1.0 #define localvar_repetition_4f true if (!localvar_repetition_4f) discard; color = localvar_color_4f; diffusion = vec3(localvar_diffusion_4f); transparency = localvar_transparency_4f; alpha = localvar_alpha_4f; N = vec4(sc.worldPhongNormal, sc.frontFacing); luminance = localvar_luminance_4f + localvar_environment_4f; #undef localvar_color_4f #undef localvar_diffusion_4f #undef localvar_luminance_4f #undef localvar_transparency_4f #undef localvar_environment_4f #undef localvar_alpha_4f #undef localvar_repetition_4f // <--- Mmaterial.fragout f_color.rgb = uniforms.shader0f.highlightColor; f_color.a = 1.0; c????h@DYZworldViewProjectionMatrixhighlightColor cd e DXBCjG1nȮnliK  <L- I SFI0ISG1objectPositionphongNormalSV_InstanceIDSV_VertexIDOSG1htSV_PositionworldCoordinatesNORMALPSV04$4objectPositionphongNormalworldCoordinatesNORMALCCAADC-CSTATD aQDXIL, BC! H #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L g2" d##ㄡL L 0$A0qe0\> F//M%Lt?!B`|`A!_0_"J|pq`I` q b4 LBQEAD(8(B qz4M5\=sUr.BCT!j*@APqFm ,a$g)B.X`qGp3!_,0`8KXI`/ۿQP\$M%Lt?!0i(a %"!&"*ISD D\(5! {)h".AAHSD 44qMz]<>86(b>4srt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@:!#%@!C< y, `@0ـ  2L &GCB B("F@ʠ J < @ p ; 8<)2(Jfcgh r2gi@< cyLFD5c s;+K{sqA ;{*b* *y1Ks cKf a6EAnn4&33+ 4P`Cl &bpD`&ͳ@" 0! ̀ݛUZܛZ]ڛ[S\&MaaHfڀ ֕IyS+k K0H0Ah ]i700:4 $ ڀ ap4Ɖ NILl)N. oX .O2mP0L &E㭎m˔TUғY@ݽɱ ɑѕMlh 70 Bpzj bڀ q 6ڶP6: ALΛZ\]ڛ@۸9ɵm@=m0A `l<ж Bm@0@m 4qIm 0A05 Rf&6@LA*6)L6 e0A@`T@TiPv}@ @*L`a(\6aZ&gY`55Ap bA6,Ԃ-܂- PB.lX=[[pa\`3e6G6VD4Ap`('ٰ\ p 0e )/292$  ` /Hl taALY}AͥѥMdx6,9.B9 P9lX7[_pa\ذ\sP p 0e a@tP 80A@cPÆhwfFVF7%ؕͥM &dx.valverSZY\Y۔)C"W6V'7V67%p*хѥMVإ%MхѕM dK\[ܔyL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq  l;/TQQCIm4\BDͰ&0 <<mpK(5=mpOD4!@mSIUD/HASH^TS18 L$XDXIL aDXIL BC!  #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L ;2" d##ㄡL L@ f`)@DAQ b '!$ۨb%&mD 0PqpͰ(X  AM)bzb0DAIĐUTÐؕp C4 `4E0 DDWʮc1h&! @|i(a %"!&"*h ,0D3 aWF`#.9Prt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@C< y 4@ 0y`#0@2L &GC"Ja@ʠ<(2("(B i@<nyyLFD5c s;+K{sqA ;{*b* *y1Ks cK 86CAnn@ &D2A0Bـ( (Cl <6A(XMyS+zKK{s 6&2A mXʺkȔv&ƶa<®!.n@4lʒ&4A( BAmX ` k 0.SV_VertexID Ā k 6Wge m..mPT hkaQ05@؀ݛۛY[]܆ep`Ȇ$Ĵa8.l .no4`Y65PTacksI#+sU\ܦC2<062)AQ e-L鍬mJ!s+{+#`ԃ/-#`/- A0x!A0xAA0@1H!AA0@!@"shader0v.worldViewProjectionMatrix@pDXBC)eڜl Nm<L>x( D SFI0ISG1 SV_PositionworldCoordinatesNORMALSV_PrimitiveIDSV_IsFrontFaceOSG12(@SV_TargetPSV0 $worldCoordinatesNORMALDCCA Q DSTATaDXIL|BC!  #AI29 %bEB B28K 2RH CF2BH"PAQ)FQ@`?PI`B 92"H d""ㄡL Lp3p4E0 DD&\XR b""@86(@ 90#@aRJ*:j {6X/n@'!$?a!P KbR4i(aS"P` i(a_" &4 )g`@sszw !Hrt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@:d!#%@r!@C<d2L &GCRR%PJ` ʡ$ J ʃTIA!A)P 2@c 3gh9yLFD5c s;+K{sqA ;{*b* *y1Ks cK$ !Q6EAnn,&EGnN̬Ln0BYb` A 9029 Bl H*64AZ[ۛ!q&ɳ@,0.objectColor` ]؆ɸ D̾&IDe*LfH 0K 6L21 $::9.SV_POSITION  ݽɱ ɑѕm@560P &6AH(NORMAL 67 ABworldPhongNormal D¸ɽm0: @pu0A <"uniformsbȠ ` C}! 0A`C LY}AͥѥMk`bdE۰P p 0B A6,B** 00AH K+A))` )/(44$ Md`!NAYR3e4g$Fg6V6AP ,) , U`W[`2eE&wVF7AP Bbm$]ذ p 0B ! -QfFVF7%ؕͥM &dx.valverSZY\Y۔)C"W6V'7V67%p*хѥMإ%MхѕM BK\[ܔyL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq  l;/TQQCIm4\BDͰ&P <49RCM>rra 0A,4J1; # `lEs]ˆA a6b a؂$Ai`# `PxE؈ ,]` 0  `!؀17äA h@b 0b A%$Ad b# `Plshader0f.highlightColor wh]!@oyp0wd;h]!@@~h,@ A @̣.T i#PW) -@¦cp¦cp¦cpv;<=>?@?#define localvar_worldViewProjectionMatrix_0v projectionbuffer_0v.worldViewProjectionMatrix ShadingContext sc; VARYING_OUT(worldCoordinates) = vec3(0.0); VARYING_OUT(normal) = vec3(0.0, 1.0, 0.0); VARYING_OUT(originalNormal) = vec3(0.0, 1.0, 0.0); sc.objectMatrix = uniforms.shader0v.objectMatrix; sc.normalMatrix = uniforms.shader0v.normalMatrix; sc.worldCoordinates = mul(sc.objectMatrix, vec4(stageInput.objectPosition.xyz, 1.0)); VARYING_OUT(worldCoordinates) = sc.worldCoordinates; OutPosition = mul(localvar_worldViewProjectionMatrix_0v, vec4(sc.worldCoordinates, 1.0)); vec3 localvar_normal_0v = mul(sc.normalMatrix, stageInput.phongNormal); VARYING_OUT(normal) = localvar_normal_0v; VARYING_OUT(originalNormal) = localvar_normal_0v; t????T????g????o????m????fB<C vec3 worldCoordinates; vec3 worldPhongNormal; vec3 originalWorldPhongNormal; vec3 eyePosition; vec4 eyeDirection; vec3 objectColor; float frontFacing; EFPGHIJKL?Mjmat3 AreaLightCoordinateSystem(vec3 N) { vec3 S, T; if (abs(N.x) > abs(N.y)) T = normalize(vec3(-N.z, 0.0, N.x)); else T = normalize(vec3(0.0, -N.z, N.y)); S = cross(N, T); return mat3(S, T, N); } float AreaLightIntegrateEdge(vec3 v1, vec3 v2) { float cosTheta = dot(v1, v2); cosTheta = clamp(cosTheta, -0.9999, 0.9999); float theta = acos(cosTheta); float res = cross(v1, v2).z * theta / sin(theta); return res; } void AreaLightClipQuadToHorizon(inout vec3 L[5], inout int n) { // detect clipping config int config = 0; if (L[0].z > 0.0) config += 1; if (L[1].z > 0.0) config += 2; if (L[2].z > 0.0) config += 4; if (L[3].z > 0.0) config += 8; // clip n = 0; if (config == 0) { // clip all } else if (config == 1) // V1 clip V2 V3 V4 { n = 3; L[1] = -L[1].z * L[0] + L[0].z * L[1]; L[2] = -L[3].z * L[0] + L[0].z * L[3]; } else if (config == 2) // V2 clip V1 V3 V4 { n = 3; L[0] = -L[0].z * L[1] + L[1].z * L[0]; L[2] = -L[2].z * L[1] + L[1].z * L[2]; } else if (config == 3) // V1 V2 clip V3 V4 { n = 4; L[2] = -L[2].z * L[1] + L[1].z * L[2]; L[3] = -L[3].z * L[0] + L[0].z * L[3]; } else if (config == 4) // V3 clip V1 V2 V4 { n = 3; L[0] = -L[3].z * L[2] + L[2].z * L[3]; L[1] = -L[1].z * L[2] + L[2].z * L[1]; } else if (config == 5) // V1 V3 clip V2 V4) impossible { n = 0; } else if (config == 6) // V2 V3 clip V1 V4 { n = 4; L[0] = -L[0].z * L[1] + L[1].z * L[0]; L[3] = -L[3].z * L[2] + L[2].z * L[3]; } else if (config == 7) // V1 V2 V3 clip V4 { n = 5; L[4] = -L[3].z * L[0] + L[0].z * L[3]; L[3] = -L[3].z * L[2] + L[2].z * L[3]; } else if (config == 8) // V4 clip V1 V2 V3 { n = 3; L[0] = -L[0].z * L[3] + L[3].z * L[0]; L[1] = -L[2].z * L[3] + L[3].z * L[2]; L[2] = L[3]; } else if (config == 9) // V1 V4 clip V2 V3 { n = 4; L[1] = -L[1].z * L[0] + L[0].z * L[1]; L[2] = -L[2].z * L[3] + L[3].z * L[2]; } else if (config == 10) // V2 V4 clip V1 V3) impossible { n = 0; } else if (config == 11) // V1 V2 V4 clip V3 { n = 5; L[4] = L[3]; L[3] = -L[2].z * L[3] + L[3].z * L[2]; L[2] = -L[2].z * L[1] + L[1].z * L[2]; } else if (config == 12) // V3 V4 clip V1 V2 { n = 4; L[1] = -L[1].z * L[2] + L[2].z * L[1]; L[0] = -L[0].z * L[3] + L[3].z * L[0]; } else if (config == 13) // V1 V3 V4 clip V2 { n = 5; L[4] = L[3]; L[3] = L[2]; L[2] = -L[1].z * L[2] + L[2].z * L[1]; L[1] = -L[1].z * L[0] + L[0].z * L[1]; } else if (config == 14) // V2 V3 V4 clip V1 { n = 5; L[4] = -L[0].z * L[3] + L[3].z * L[0]; L[0] = -L[0].z * L[1] + L[1].z * L[0]; } else if (config == 15) // V1 V2 V3 V4 { n = 4; } if (n == 3) L[3] = L[0]; if (n == 4) L[4] = L[0]; } float AreaLightSide(vec3 P, vec3 lightPosition, mat3 lightOrientation) { float d = dot(P - lightPosition, vec3(lightOrientation[0].z, lightOrientation[1].z, lightOrientation[2].z)); return step(0.0, d); } float AreaLightSideFactor(vec3 P, vec3 lightPosition, mat3 lightOrientation, bool lightDoublesided) { return lightDoublesided ? 1.0 : AreaLightSide(P, lightPosition, lightOrientation); } float AreaLightIntegrateCosine(vec3 P, vec3 lightPosition, vec2 lightSize, mat3 transformation, mat3 lightOrientationTransposed, vec3 lightSize3d) { vec3 corners[5]; corners[0] = mul((lightPosition + mul((lightSize3d * vec3(-1.0, -1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[1] = mul((lightPosition + mul((lightSize3d * vec3(+1.0, -1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[2] = mul((lightPosition + mul((lightSize3d * vec3(+1.0, +1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[3] = mul((lightPosition + mul((lightSize3d * vec3(-1.0, +1.0, 0.0)), lightOrientationTransposed) - P), transformation); corners[4] = corners[3]; int n = 0; AreaLightClipQuadToHorizon(corners, n); if (n == 0) return 0.0; for (int i = 0; i < 5; ++i) corners[i] = normalize(corners[i]); float sum = 0.0; sum += AreaLightIntegrateEdge(corners[0], corners[1]); sum += AreaLightIntegrateEdge(corners[1], corners[2]); sum += AreaLightIntegrateEdge(corners[2], corners[3]); if (n >= 4) sum += AreaLightIntegrateEdge(corners[3], corners[4]); if (n == 5) sum += AreaLightIntegrateEdge(corners[4], corners[0]); return sum; } float AreaLightCalculateLambert(vec3 P, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation, mat3 lightOrientationInverse) { mat3 transformation = transpose(AreaLightCoordinateSystem(N)); vec3 lightSize3d = vec3(lightSize.xy, 0); float sum = AreaLightIntegrateCosine(P, lightPosition, lightSize, transformation, lightOrientationInverse, lightSize3d); return abs(sum) / (PI2); } float AreaLightCalculateMirror(vec3 P, vec3 V, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation) { vec3 R = reflect(-V, N); P = mul((P - lightPosition), lightOrientation); R = mul(R, lightOrientation); float t = -P.z / R.z; if (t < 0.0) return 0.0; vec2 uv = P.xy + R.xy * t; if (abs(uv.x) < lightSize.x && abs(uv.y) < lightSize.y) return 1.0; else return 0.0; } float AreaLightCalculateLTC(vec3 P, vec3 V, vec3 N, vec3 lightPosition, vec2 lightSize, mat3 lightOrientation, mat3 lightOrientationInverse, float roughness, SAMPLER2D_TYPEDEF(ltcMatrixTable), SAMPLER2D_TYPEDEF(ltcAmplitudeTable)) { float NdotV = dot(V, N); vec2 coord = vec2(roughness, acos(NdotV) / (PI05)); vec4 ltcVector = texture(SAMPLER_ACCESS(ltcMatrixTable), coord); float ltcAmplitude = texture(SAMPLER_ACCESS(ltcAmplitudeTable), coord).r; mat3 inverseMatrix = mat3( vec3(1.0, 0.0, ltcVector.y), vec3(0.0, ltcVector.z, 0.0), vec3(ltcVector.w, 0.0, ltcVector.x) ); vec3 T1 = normalize(V - N * dot(V, N)); vec3 T2 = cross(N, T1); mat3 transformation = mul(transpose(mat3(T1, T2, N)), inverseMatrix); vec3 lightSize3d = vec3(lightSize.xy, 0.0); float sum = AreaLightIntegrateCosine(P, lightPosition, lightSize, transformation, lightOrientationInverse, lightSize3d); return ltcAmplitude * abs(sum) / (PI2); } void maxon_Multiply3(vec3 a, vec3 b, float c, out vec3 result) { result = a * b * c; } void maxon_ReflectanceLayerSpecularBlinn(vec4 expCutoff, vec4 facRez, float strength, float incoming, float outgoing, float cosB, out vec3 bsdf) { float fD = 0.0; float cosTheta = incoming; // XMBBlurrySpecular::ComputeD start if (cosB > expCutoff.y) { float fSmooth = outgoing * cosTheta; if (fSmooth > 0.0) { fSmooth = min(10.0 * fSmooth, 1.0); float x= clamp((acos(cosB) - expCutoff.z) * expCutoff.w, 0.0, PI05); float xx = clamp(1.0 - facRez.x * pow(x* facRez.y, facRez.z), 0.0, 1.0); fD = pow(xx, facRez.w) * fSmooth * PI; } } // XMBBlurrySpecular::ComputeD end bsdf = cosTheta != 0.0 ? vec3(fD / cosTheta) * strength : vec3(0.0); } void maxon_Multiply(vec3 a, vec3 b, out vec3 result) { result = a * b; } void maxon_Multiply(vec3 a, float b, out vec3 result) { result = a * b; } S#define localvar_worldViewProjectionMatrix_0f projectionbuffer_0f.worldViewProjectionMatrix ShadingContext sc; sc.eyePosition = projectionbuffer_0f.eyePosition.xyz; sc.worldCoordinates = VARYING_IN(worldCoordinates); sc.worldPhongNormal = SafeNormalize(VARYING_IN(normal)); sc.originalWorldPhongNormal = SafeNormalize(VARYING_IN(originalNormal)); sc.eyeDirection.xyz = sc.eyePosition - sc.worldCoordinates; sc.eyeDirection.w = length(sc.eyeDirection.xyz); if (sc.eyeDirection.w > 0.0) sc.eyeDirection.xyz /= sc.eyeDirection.w; sc.objectColor = uniforms.shader0f.objectColor; sc.frontFacing = InFrontFacing ? 1.0 : -1.0; // Mmaterial.input (Index: 4, ID: 0) ---> vec3 color, diffusion, luminance, transparency; vec3 H; vec4 N = vec4(sc.worldPhongNormal, sc.frontFacing); vec4 L; vec3 lightColorD, lightColorS; vec4 lightColorArea; vec3 illuminationModelSumBlend, illuminationModelSumNoBlend; float alpha = 1.0; illuminationModelSumBlend = vec3(0.0); illuminationModelSumNoBlend = vec3(0.0); transparency = vec3(0.0); float globalDiffusion = 1.0; // <--- Mmaterial.input // Mmaterial.fragout (Index: 4, ID: 8) ---> #define localvar_color_4f sc.objectColor #define localvar_diffusion_4f 1.0 #define localvar_luminance_4f vec3(0.0) #define localvar_transparency_4f vec3(0.0) #define localvar_environment_4f vec3(0.0) #define localvar_alpha_4f 1.0 #define localvar_repetition_4f true if (!localvar_repetition_4f) discard; color = localvar_color_4f; diffusion = vec3(localvar_diffusion_4f); transparency = localvar_transparency_4f; alpha = localvar_alpha_4f; N = vec4(sc.worldPhongNormal, sc.frontFacing); luminance = localvar_luminance_4f + localvar_environment_4f; #undef localvar_color_4f #undef localvar_diffusion_4f #undef localvar_luminance_4f #undef localvar_transparency_4f #undef localvar_environment_4f #undef localvar_alpha_4f #undef localvar_repetition_4f // <--- Mmaterial.fragout vec3 localvar_lightColorSs_5f[4]; vec4 localvar_Ls_5f[4]; vec3 localvar_Hs_5f[4]; float localvar_diffs_5f[4]; #define localvar_lightData_9f lightSet_8f.area[0] vec3 localvar_lightColor_9f = localvar_lightData_9f.color_contrast.rgb; L.xyz = localvar_lightData_9f.position_brightness.xyz - sc.worldCoordinates.xyz; L.w = length(L.xyz); if (L.w > 0.0) L.xyz /= L.w; H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); lightColorArea.a = 1.0; lightColorArea.rgb = localvar_lightColor_9f.rgb; float localvar_lightIntensity_9f = 1.0, localvar_falloffIntensity_9f = 1.0; localvar_lightColor_9f *= localvar_lightIntensity_9f; lightColorD = vec3(0.0); lightColorS = vec3(0.0); localvar_lightColorSs_5f[0] = lightColorS; localvar_Ls_5f[0] = L; localvar_Hs_5f[0] = H; localvar_diffs_5f[0] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_5f[0] = pow(localvar_diffs_5f[0], localvar_lightData_9f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_5f[0]; vec4 localvar_areaLightColor_0_5f = lightColorArea; #define localvar_lightData_10f lightSet_8f.distant[0] vec3 localvar_lightColor_10f = localvar_lightData_10f.color_contrast.rgb; float localvar_lightIntensity_10f = 1.0, localvar_falloffIntensity_10f = 1.0; L.xyz = -localvar_lightData_10f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_10f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_10f.direction_falloffGradientMultiplier.xyz, localvar_lightData_10f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_10f *= localvar_lightIntensity_10f; lightColorD = localvar_lightColor_10f; lightColorS = vec3(0.0); localvar_lightColorSs_5f[1] = lightColorS; localvar_Ls_5f[1] = L; localvar_Hs_5f[1] = H; localvar_diffs_5f[1] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_5f[1] = pow(localvar_diffs_5f[1], localvar_lightData_10f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_5f[1]; #define localvar_lightData_11f lightSet_8f.distant[1] vec3 localvar_lightColor_11f = localvar_lightData_11f.color_contrast.rgb; float localvar_lightIntensity_11f = 1.0, localvar_falloffIntensity_11f = 1.0; L.xyz = -localvar_lightData_11f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_11f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_11f.direction_falloffGradientMultiplier.xyz, localvar_lightData_11f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_11f *= localvar_lightIntensity_11f; lightColorD = localvar_lightColor_11f; lightColorS = localvar_lightColor_11f; localvar_lightColorSs_5f[2] = lightColorS; localvar_Ls_5f[2] = L; localvar_Hs_5f[2] = H; localvar_diffs_5f[2] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_5f[2] = pow(localvar_diffs_5f[2], localvar_lightData_11f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_5f[2]; #define localvar_lightData_12f lightSet_8f.distant[2] vec3 localvar_lightColor_12f = localvar_lightData_12f.color_contrast.rgb; float localvar_lightIntensity_12f = 1.0, localvar_falloffIntensity_12f = 1.0; L.xyz = -localvar_lightData_12f.direction_falloffGradientMultiplier.xyz; L.w = dot(localvar_lightData_12f.direction_falloffGradientMultiplier.xyz, sc.worldCoordinates.xyz) - dot(localvar_lightData_12f.direction_falloffGradientMultiplier.xyz, localvar_lightData_12f.position.xyz); H = SafeNormalize(L.xyz + sc.eyeDirection.xyz); localvar_lightColor_12f *= localvar_lightIntensity_12f; lightColorD = localvar_lightColor_12f; lightColorS = localvar_lightColor_12f; localvar_lightColorSs_5f[3] = lightColorS; localvar_Ls_5f[3] = L; localvar_Hs_5f[3] = H; localvar_diffs_5f[3] = max(0.0, dot(N.xyz * N.w, L.xyz)); localvar_diffs_5f[3] = pow(localvar_diffs_5f[3], localvar_lightData_12f.color_contrast.w); illuminationModelSumBlend += lightColorD * color * diffusion * localvar_diffs_5f[3]; illuminationModelSumBlend += luminance; vec3 localvar_10_N_7f; float localvar_10_outgoing_7f; float localvar_11_NdotL_7f; float localvar_11_incoming_7f; float localvar_11_NdotH_7f; vec3 localvar_11_lightColorD_7f; vec3 localvar_11_lightColorS_7f; vec3 localvar_11_L_7f; float localvar_11_L_length_7f; vec3 localvar_11_H_7f; float localvar_22_NdotL_7f; float localvar_22_incoming_7f; float localvar_22_NdotH_7f; vec3 localvar_22_lightColorD_7f; vec3 localvar_22_lightColorS_7f; vec3 localvar_22_L_7f; float localvar_22_L_length_7f; vec3 localvar_22_H_7f; float localvar_23_NdotL_7f; float localvar_23_incoming_7f; float localvar_23_NdotH_7f; vec3 localvar_23_lightColorD_7f; vec3 localvar_23_lightColorS_7f; vec3 localvar_23_L_7f; float localvar_23_L_length_7f; vec3 localvar_23_H_7f; float localvar_31_NdotL_7f; float localvar_31_incoming_7f; float localvar_31_NdotH_7f; vec3 localvar_31_lightColorD_7f; vec3 localvar_31_lightColorS_7f; vec3 localvar_31_L_7f; float localvar_31_L_length_7f; vec3 localvar_31_H_7f; // uniform-base.0 (Index: 7, ID: 9) ---> // <--- uniform-base.0 // normal.0 (Index: 7, ID: 10) ---> #define localvar_bumpStrength_7f uniforms.shader7f.bumpStrength #define localvar_N_7f localvar_10_N_7f #define localvar_outgoing_7f localvar_10_outgoing_7f if (localvar_bumpStrength_7f >= 1.0) localvar_N_7f = N.xyz; else if (localvar_bumpStrength_7f <= 0.0) localvar_N_7f = sc.originalWorldPhongNormal; else localvar_N_7f = SafeNormalize(mix(sc.originalWorldPhongNormal, N.xyz, localvar_bumpStrength_7f)); localvar_N_7f *= N.w; localvar_outgoing_7f = dot(localvar_N_7f, sc.eyeDirection.xyz); #undef localvar_bumpStrength_7f #undef localvar_N_7f #undef localvar_outgoing_7f // <--- normal.0 // Mmaterial.refin (Index: 7, ID: 11) ---> #define localvar_N_in_7f localvar_10_N_7f #define localvar_NdotL_7f localvar_11_NdotL_7f #define localvar_incoming_7f localvar_11_incoming_7f #define localvar_NdotH_7f localvar_11_NdotH_7f #define localvar_lightColorD_7f localvar_11_lightColorD_7f #define localvar_lightColorS_7f localvar_11_lightColorS_7f #define localvar_L_7f localvar_11_L_7f #define localvar_L_length_7f localvar_11_L_length_7f #define localvar_H_7f localvar_11_H_7f localvar_L_7f = localvar_Ls_5f[0].xyz; localvar_L_length_7f = localvar_Ls_5f[0].w; localvar_H_7f = localvar_Hs_5f[0]; localvar_lightColorS_7f = localvar_lightColorSs_5f[0]; localvar_NdotL_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_incoming_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_NdotH_7f = dot(localvar_N_in_7f, localvar_H_7f); #undef localvar_N_in_7f #undef localvar_NdotL_7f #undef localvar_incoming_7f #undef localvar_NdotH_7f #undef localvar_lightColorD_7f #undef localvar_lightColorS_7f #undef localvar_L_7f #undef localvar_L_length_7f #undef localvar_H_7f // <--- Mmaterial.refin // Refl.strengthmult.1 (Index: 7, ID: 14) ---> vec3 localvar_14_result_7f; maxon_Multiply3(uniforms.shader7f.transColor, vec3(1.0), uniforms.shader5f.globalStrengths.y, localvar_14_result_7f); // <--- Refl.strengthmult.1 // specblinn.uniform (Index: 6, ID: 15) ---> // <--- specblinn.uniform // specblinn (Index: 6, ID: 16) ---> vec3 localvar_16_bsdf_6f; maxon_ReflectanceLayerSpecularBlinn(uniforms.shader6f.expCutoff, uniforms.shader6f.facRez, uniforms.shader6f.strength, localvar_11_incoming_7f, localvar_10_outgoing_7f, localvar_11_NdotH_7f, localvar_16_bsdf_6f); // <--- specblinn // Refl.cmult (Index: 7, ID: 17) ---> vec3 localvar_17_result_7f; maxon_Multiply(localvar_16_bsdf_6f, uniforms.shader7f.colorColor, localvar_17_result_7f); // <--- Refl.cmult // Refl.tmult.color (Index: 7, ID: 18) ---> vec3 localvar_18_result_7f; maxon_Multiply3(localvar_14_result_7f, localvar_17_result_7f, uniforms.shader7f.layerStrength, localvar_18_result_7f); // <--- Refl.tmult.color // layer.mul (Index: 7, ID: 19) ---> vec3 localvar_19_result_7f; maxon_Multiply(localvar_18_result_7f, vec3(1.0), localvar_19_result_7f); // <--- layer.mul // layer.mul2 (Index: 7, ID: 20) ---> vec3 localvar_20_result_7f; maxon_Multiply(localvar_19_result_7f, localvar_11_NdotL_7f, localvar_20_result_7f); // <--- layer.mul2 // Mmaterial.refin (Index: 7, ID: 22) ---> #define localvar_N_in_7f localvar_10_N_7f #define localvar_NdotL_7f localvar_22_NdotL_7f #define localvar_incoming_7f localvar_22_incoming_7f #define localvar_NdotH_7f localvar_22_NdotH_7f #define localvar_lightColorD_7f localvar_22_lightColorD_7f #define localvar_lightColorS_7f localvar_22_lightColorS_7f #define localvar_L_7f localvar_22_L_7f #define localvar_L_length_7f localvar_22_L_length_7f #define localvar_H_7f localvar_22_H_7f localvar_L_7f = localvar_Ls_5f[1].xyz; localvar_L_length_7f = localvar_Ls_5f[1].w; localvar_H_7f = localvar_Hs_5f[1]; localvar_lightColorS_7f = localvar_lightColorSs_5f[1]; localvar_NdotL_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_incoming_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_NdotH_7f = dot(localvar_N_in_7f, localvar_H_7f); #undef localvar_N_in_7f #undef localvar_NdotL_7f #undef localvar_incoming_7f #undef localvar_NdotH_7f #undef localvar_lightColorD_7f #undef localvar_lightColorS_7f #undef localvar_L_7f #undef localvar_L_length_7f #undef localvar_H_7f // <--- Mmaterial.refin // Mmaterial.refin (Index: 7, ID: 23) ---> #define localvar_N_in_7f localvar_10_N_7f #define localvar_NdotL_7f localvar_23_NdotL_7f #define localvar_incoming_7f localvar_23_incoming_7f #define localvar_NdotH_7f localvar_23_NdotH_7f #define localvar_lightColorD_7f localvar_23_lightColorD_7f #define localvar_lightColorS_7f localvar_23_lightColorS_7f #define localvar_L_7f localvar_23_L_7f #define localvar_L_length_7f localvar_23_L_length_7f #define localvar_H_7f localvar_23_H_7f localvar_L_7f = localvar_Ls_5f[3].xyz; localvar_L_length_7f = localvar_Ls_5f[3].w; localvar_H_7f = localvar_Hs_5f[3]; localvar_lightColorS_7f = localvar_lightColorSs_5f[3]; localvar_NdotL_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_incoming_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_NdotH_7f = dot(localvar_N_in_7f, localvar_H_7f); #undef localvar_N_in_7f #undef localvar_NdotL_7f #undef localvar_incoming_7f #undef localvar_NdotH_7f #undef localvar_lightColorD_7f #undef localvar_lightColorS_7f #undef localvar_L_7f #undef localvar_L_length_7f #undef localvar_H_7f // <--- Mmaterial.refin // Refl.strengthmult.1 (Index: 7, ID: 25) ---> vec3 localvar_25_result_7f; maxon_Multiply3(uniforms.shader7f.transColor, vec3(1.0), uniforms.shader5f.globalStrengths.y, localvar_25_result_7f); // <--- Refl.strengthmult.1 // specblinn (Index: 6, ID: 26) ---> vec3 localvar_26_bsdf_6f; maxon_ReflectanceLayerSpecularBlinn(uniforms.shader6f.expCutoff, uniforms.shader6f.facRez, uniforms.shader6f.strength, localvar_22_incoming_7f, localvar_10_outgoing_7f, localvar_22_NdotH_7f, localvar_26_bsdf_6f); // <--- specblinn // Refl.cmult (Index: 7, ID: 27) ---> vec3 localvar_27_result_7f; maxon_Multiply(localvar_26_bsdf_6f, uniforms.shader7f.colorColor, localvar_27_result_7f); // <--- Refl.cmult // Refl.tmult.color (Index: 7, ID: 28) ---> vec3 localvar_28_result_7f; maxon_Multiply3(localvar_25_result_7f, localvar_27_result_7f, uniforms.shader7f.layerStrength, localvar_28_result_7f); // <--- Refl.tmult.color // layer.mul (Index: 7, ID: 29) ---> vec3 localvar_29_result_7f; maxon_Multiply(localvar_28_result_7f, vec3(1.0), localvar_29_result_7f); // <--- layer.mul // layer.mul2 (Index: 7, ID: 30) ---> vec3 localvar_30_result_7f; maxon_Multiply(localvar_29_result_7f, localvar_22_NdotL_7f, localvar_30_result_7f); // <--- layer.mul2 // Mmaterial.refin (Index: 7, ID: 31) ---> #define localvar_N_in_7f localvar_10_N_7f #define localvar_NdotL_7f localvar_31_NdotL_7f #define localvar_incoming_7f localvar_31_incoming_7f #define localvar_NdotH_7f localvar_31_NdotH_7f #define localvar_lightColorD_7f localvar_31_lightColorD_7f #define localvar_lightColorS_7f localvar_31_lightColorS_7f #define localvar_L_7f localvar_31_L_7f #define localvar_L_length_7f localvar_31_L_length_7f #define localvar_H_7f localvar_31_H_7f localvar_L_7f = localvar_Ls_5f[2].xyz; localvar_L_length_7f = localvar_Ls_5f[2].w; localvar_H_7f = localvar_Hs_5f[2]; localvar_lightColorS_7f = localvar_lightColorSs_5f[2]; localvar_NdotL_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_incoming_7f = dot(localvar_N_in_7f, localvar_L_7f); localvar_NdotH_7f = dot(localvar_N_in_7f, localvar_H_7f); #undef localvar_N_in_7f #undef localvar_NdotL_7f #undef localvar_incoming_7f #undef localvar_NdotH_7f #undef localvar_lightColorD_7f #undef localvar_lightColorS_7f #undef localvar_L_7f #undef localvar_L_length_7f #undef localvar_H_7f // <--- Mmaterial.refin // Refl.strengthmult.1 (Index: 7, ID: 34) ---> vec3 localvar_34_result_7f; maxon_Multiply3(uniforms.shader7f.transColor, vec3(1.0), uniforms.shader5f.globalStrengths.y, localvar_34_result_7f); // <--- Refl.strengthmult.1 // specblinn (Index: 6, ID: 35) ---> vec3 localvar_35_bsdf_6f; maxon_ReflectanceLayerSpecularBlinn(uniforms.shader6f.expCutoff, uniforms.shader6f.facRez, uniforms.shader6f.strength, localvar_31_incoming_7f, localvar_10_outgoing_7f, localvar_31_NdotH_7f, localvar_35_bsdf_6f); // <--- specblinn // Refl.cmult (Index: 7, ID: 36) ---> vec3 localvar_36_result_7f; maxon_Multiply(localvar_35_bsdf_6f, uniforms.shader7f.colorColor, localvar_36_result_7f); // <--- Refl.cmult // Refl.tmult.color (Index: 7, ID: 37) ---> vec3 localvar_37_result_7f; maxon_Multiply3(localvar_34_result_7f, localvar_36_result_7f, uniforms.shader7f.layerStrength, localvar_37_result_7f); // <--- Refl.tmult.color // layer.mul (Index: 7, ID: 38) ---> vec3 localvar_38_result_7f; maxon_Multiply(localvar_37_result_7f, vec3(1.0), localvar_38_result_7f); // <--- layer.mul // layer.mul2 (Index: 7, ID: 39) ---> vec3 localvar_39_result_7f; maxon_Multiply(localvar_38_result_7f, localvar_31_NdotL_7f, localvar_39_result_7f); // <--- layer.mul2 // Refl.strengthmult.1 (Index: 7, ID: 43) ---> vec3 localvar_43_result_7f; maxon_Multiply3(uniforms.shader7f.transColor, vec3(1.0), uniforms.shader5f.globalStrengths.y, localvar_43_result_7f); // <--- Refl.strengthmult.1 // specblinn (Index: 6, ID: 44) ---> vec3 localvar_44_bsdf_6f; maxon_ReflectanceLayerSpecularBlinn(uniforms.shader6f.expCutoff, uniforms.shader6f.facRez, uniforms.shader6f.strength, localvar_23_incoming_7f, localvar_10_outgoing_7f, localvar_23_NdotH_7f, localvar_44_bsdf_6f); // <--- specblinn // Refl.cmult (Index: 7, ID: 45) ---> vec3 localvar_45_result_7f; maxon_Multiply(localvar_44_bsdf_6f, uniforms.shader7f.colorColor, localvar_45_result_7f); // <--- Refl.cmult // Refl.tmult.color (Index: 7, ID: 46) ---> vec3 localvar_46_result_7f; maxon_Multiply3(localvar_43_result_7f, localvar_45_result_7f, uniforms.shader7f.layerStrength, localvar_46_result_7f); // <--- Refl.tmult.color // layer.mul (Index: 7, ID: 47) ---> vec3 localvar_47_result_7f; maxon_Multiply(localvar_46_result_7f, vec3(1.0), localvar_47_result_7f); // <--- layer.mul // layer.mul2 (Index: 7, ID: 48) ---> vec3 localvar_48_result_7f; maxon_Multiply(localvar_47_result_7f, localvar_23_NdotL_7f, localvar_48_result_7f); // <--- layer.mul2 // Mmaterial.refout (Index: 5, ID: 52) ---> #define localvar_lightColorS_0_5f localvar_11_lightColorS_7f #define localvar_lightColorS_1_5f localvar_22_lightColorS_7f #define localvar_lightColorS_2_5f localvar_31_lightColorS_7f #define localvar_lightColorS_3_5f localvar_23_lightColorS_7f #define localvar_weaken_5f 0.0 #define localvar_layer0_spec_light0_5f localvar_20_result_7f #define localvar_layer0_area_light0_5f vec3(0.0) #define localvar_layer0_spec_light1_5f localvar_30_result_7f #define localvar_layer0_area_light1_5f vec3(0.0) #define localvar_layer0_spec_light2_5f localvar_39_result_7f #define localvar_layer0_area_light2_5f vec3(0.0) #define localvar_layer0_spec_light3_5f localvar_48_result_7f #define localvar_layer0_area_light3_5f vec3(0.0) #define localvar_layer0_refl_5f vec3(0.0) #define localvar_layer0_globalTrans_5f vec3(1.0) illuminationModelSumBlend *= clamp(1.0 - localvar_weaken_5f, 0.0, 1.0); { float localvar_layerMax_5f; vec3 localvar_layerSpecular_5f, localvar_layerColor_5f, localvar_lightColor_5f; vec3 localvar_reflectanceColor_5f = vec3(0.0); // layer (unnamed) localvar_layerColor_5f = vec3(0.0); localvar_layerSpecular_5f = localvar_layer0_spec_light0_5f / PI; localvar_lightColor_5f = localvar_lightColorS_0_5f; localvar_layerMax_5f = max(localvar_layerSpecular_5f.r, max(localvar_layerSpecular_5f.g, localvar_layerSpecular_5f.b)); localvar_layerColor_5f += localvar_layerSpecular_5f / max(1.0, localvar_layerMax_5f / 16.0) * localvar_lightColor_5f; localvar_layerColor_5f += localvar_layer0_area_light0_5f; localvar_layerSpecular_5f = localvar_layer0_spec_light1_5f / PI; localvar_lightColor_5f = localvar_lightColorS_1_5f; localvar_layerMax_5f = max(localvar_layerSpecular_5f.r, max(localvar_layerSpecular_5f.g, localvar_layerSpecular_5f.b)); localvar_layerColor_5f += localvar_layerSpecular_5f / max(1.0, localvar_layerMax_5f / 16.0) * localvar_lightColor_5f; localvar_layerColor_5f += localvar_layer0_area_light1_5f; localvar_layerSpecular_5f = localvar_layer0_spec_light2_5f / PI; localvar_lightColor_5f = localvar_lightColorS_2_5f; localvar_layerMax_5f = max(localvar_layerSpecular_5f.r, max(localvar_layerSpecular_5f.g, localvar_layerSpecular_5f.b)); localvar_layerColor_5f += localvar_layerSpecular_5f / max(1.0, localvar_layerMax_5f / 16.0) * localvar_lightColor_5f; localvar_layerColor_5f += localvar_layer0_area_light2_5f; localvar_layerSpecular_5f = localvar_layer0_spec_light3_5f / PI; localvar_lightColor_5f = localvar_lightColorS_3_5f; localvar_layerMax_5f = max(localvar_layerSpecular_5f.r, max(localvar_layerSpecular_5f.g, localvar_layerSpecular_5f.b)); localvar_layerColor_5f += localvar_layerSpecular_5f / max(1.0, localvar_layerMax_5f / 16.0) * localvar_lightColor_5f; localvar_layerColor_5f += localvar_layer0_area_light3_5f; localvar_layerColor_5f += localvar_layer0_refl_5f; illuminationModelSumNoBlend += localvar_layerColor_5f * localvar_layer0_globalTrans_5f; } #undef localvar_lightColorS_0_5f #undef localvar_lightColorS_1_5f #undef localvar_lightColorS_2_5f #undef localvar_lightColorS_3_5f #undef localvar_weaken_5f #undef localvar_layer0_spec_light0_5f #undef localvar_layer0_area_light0_5f #undef localvar_layer0_spec_light1_5f #undef localvar_layer0_area_light1_5f #undef localvar_layer0_spec_light2_5f #undef localvar_layer0_area_light2_5f #undef localvar_layer0_spec_light3_5f #undef localvar_layer0_area_light3_5f #undef localvar_layer0_refl_5f #undef localvar_layer0_globalTrans_5f // <--- Mmaterial.refout illuminationModelSumBlend *= globalDiffusion; illuminationModelSumNoBlend *= globalDiffusion; f_color.rgb = illuminationModelSumBlend + illuminationModelSumNoBlend; transparency = clamp(transparency, 0.0, 1.0); f_color.a = (1.0 - vec_average(transparency)) * alpha; f_color.rgb = mix(f_color.rgb, uniforms.shader0f.tintColorA.rgb + uniforms.shader0f.tintColorB.rgb * sc.frontFacing, uniforms.shader0f.tintColorA.a); c????  h@DD  <  d H H HYZab cd enopqrstuv{facRezz;BK DXBC12<dOWUm <L@0SFI0ISG1objectPositionphongNormalSV_InstanceIDSV_VertexIDOSG1SV_PositionworldCoordinatesNORMALoriginalNormalPSV0d$DobjectPositionphongNormalworldCoordinatesNORMALoriginalNormalCCAADC-C4CwwwSTAT aDXIL BC!  #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L 2" d##ㄡL L 0@0090\ ,0D3 aKSD /@DtOh`|`A!_0_"J|pq`I` q b4 LBQEAD(0H`|`A!_0_"J4rB omQ$A ,0D3 a?„8M@@e 9s`0G (H*FAPupmT_6"(g {fX\ msA10($bqɿ}YHS\~8"i(a &M%L>8@0DDR,a$g)B.X`qGArf M%L~9 !LtU7_㶍x_( &%PjBD0 =QD4 a )g`@sszw 8RIUD'rB "rt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@:!#%@!C < y2 l@0 $2L &GCj B("(2 F@ \ ʡ$  0 X ʃ fRfcg sBg( ubz@y'LFD5c s;+K{sqA ;{*b* *y1Ks cK 6EAnnE&33+ @P`!87177:32 4m@)6M C #+ @b\1X2objectMatrix @ֆ tM lh[gGM-)N. o`Y6 Hlb`q+ã+{S+k KÛ @)6 L̠ ɽѥ5ɥm8n؀ jUx7962;(7170:4 m@6rRW6F6A Vx;794 2}Lئ&P@`@lr@w0A87 @::9.SV_POSITIONd#t&F6&GFW67A p~}4&pzj bڀ `7 GM.,-M-m5\)x߆BH&h( 載Aͥѥm@U N ڛۙӛ\[a8V C*B+L&l0?6d 5"uniformsba ܛZ]ڛXY @0A(``H r 6lehx 0 p h X/؂//6BaC0!as!0 VS &!(&QA K ;AAvԡLY}%х%M"f-Hٰl0æ)/292$ U0AAvԡ6,(:< 착C;lXRHuXyRv@C??l$ B B$6!1D666427)AP ŮLn.mJ04!s c+u\ئH2<:)T υ.,..mn P ..l.lJ`u\#yL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq & l;/TQQCImہ4\BDͰ60 <<mpK(5=mpOD4!@m[DNB4UD/ F//M%Lt?¬c1h&! @|i(a %"!&"*d ,0D3 aWF@- Ӄ1h&! @|i(aIaB&rm F/DNB4UD| @rt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@C< y 4@ 0y`#0@2L &GC"Ja@ \ ʡʃ(R((  z@yLFD5c s;+K{sqA ;{*b* *y1Ks cK 86CAnn@ &D2A4Bـ( (CL dxe `D Bdj 載AͥѥM hPDePH 6, i6pqC{s;szk c۰ ai6pM͔W]XY&5A( A g0e˪L /hҥA gi Ԁ˔\]ڛ&ijA`âAmm07967940  GI)i2si h740670 KWuڷ9;016Jl( &=fFVF7%ؕͥM &dx.valverSZY\Y۔)C"W6V'7V67%إ%MхѕM :dx.entryPointsS=yL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq  l;/TQQCIm[4\BDͰ0 <<mpK(5=mpOD4!@ma 7A,QrUv0@ # ` yuȈA Hm[2b G# ``]d$aHx1b $w!# ```@%# ``a`)# `hɈA  i@b V2b H$d b%# `hɈA  i@e V2b HA$dЉ$dЉ$dЉ$d$d$d$dPb%# `XɈA  i@e W2b HA'Z2b HA'2b HA'W2b H'Z2b H'2b H'W2bp  4&h& h1A 0  0@ #`hB&h &È 4wYn0 B00#`hhB&h AdhB&h g@ QP F !5м :|F 97 1@  :|F Y9 1@3 :# `*B*B2b ,+B# `*B*A0bp +hB&h &È 4t 0  0@ #`-&h& h1A 0 B00 `S'A0xA&-1@Va &1@\AA0x-@Ee A0xA"1F aY:|F y[ 1@n:# `;C;C3b =C;C8$# `;C;C1b =C;9 A0xA A0xa Zψ < z@  < z@ -g@ |<`@ }<` @ ~xw8F |{Pb @ ~xuF |{pc @ ~yu F |{X0`c%DXBCKEN^Ԋ1c%<Lm;WSFI0ISG1  SV_PositionworldCoordinatesNORMALoriginalNormalSV_PrimitiveIDSV_IsFrontFaceOSG12(@SV_TargetPSV0X$(worldCoordinatesNORMALoriginalNormalDCCCA Q DSTAT,a DXILBC!  #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L 2" d##ㄡL L 0 # EQK0]@F)ɗ` 'ISD /@D{O H"J|"ҋBCISD .N,) 1T b(Gڨ " \HSD ,R"1uEm:ר r`94&_ch1&/jo\q|kGAM b4 LBQkqL0ӷ^t(  2::.Xaf̗&Dcb/qsu]GD ,0D3 a/qL,1@) Ӄ1h&! @|i(aIaB&/rm F/DNB4UDdR 㸎#qG`12:2@d!,G ?a!F+1m#{˟h@Zc9jb\q/g I>Lr7 #i(aJ8[w|yo<@HSD _"1{M8}m뺮q계$bq}ՙ4E0i$0!N9|6}ͣ⾃ G"J&ISD D\(5!"@"J|18k ={|ﺮw~!! bKL(z"'! q* "Brt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@:!#%@x y4 x@0  y@ ր\[]ڛ\k k+s;C pn@Ba5X*colorColor 8P5 2&ה@LaC5X*transColor 6O ր\\S{  *lH`FN!Xap&expCutoff B րYؘT ` ɕѡm0Z@ ` 0 0ATA6GF@pa+xM8@ 0 '6_@@ 0AX`7777:9 2[k@m..mj417/0673#027:6482 r[0 cc{33` yj6:lakr0tPv 4~bMnVl&tp 8ͥѥ}ɥѹm0z@ րAۆaۆ b=lqk@!mt8l0t@ ր\YZ [?03 cc{33; #K+skcKcK+ pv@a 5X6backsideColorn` "YR5ؠ9>>CHDIL ɽѥ5ɥM8mÐ)1l@Tb+` ݽɱYAɽѥ5ɥm@Tb 5X.eyePosition %62P5 cVv&G7W@`b5X&pixelSize D&P5`T+/31AU e5&Ge*LfVMl'&z 4LY}A=M%Q%=9m@؊ 5XBworldCoordinates'67H P5&FI)i)jt؜6 Xl^Jbz'Ă,&{ .` >jȠΜ6HZlnk@M.,-M M-mj %6O րLY^Q\]ڛq- ` 6lkL͍(l,la $.6P5؀Z[[\LP Rf&6@b+6]LM}m ؊ >pNprojectionbuffer_0f/bP i&VL.<ذEfg0ty ` `'A5:QfAuy}aAml @ AjlP †5(@MqzKK{s t6&a)^6bC6fc6 Bm65ذ >!1@a6hC6lc 6ncòlІlm)/(44$ BMg9 7R6 wљJ3{s3 + ta6,!oo6p#7t7ȃɔUYc&AcRll0mdž@=6 4\=0 ]KYݔ BbW&76%؅ٕM :dx.shaderModelS \[XܔDBWFF67E( ըCbVvD6EFW6%`:dx.entryPointsSyL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq ,6 !@; a~qۦ <PEAD %am p LD4BX3\3~qF0 <<mp/0CM>rfP <49RCM~qv <>mςӿ `&p=„8M@ af#mTQHASH3T*}=߾ _K89lDXILaDXILBC! x #AI29 %bEB B28K 2bH CF2BH#PAQ1FQ@  m0 I`B L 2" d##ㄡL L@ f`)@DAQ A@Jb 1 d a˟|n1 @=OCH~4B`*DPUsA1( abF)ɗ` "'4l7 ISD /@DyO(.&_: p4E0 Dm&\XR b""@D!QEAD(i4&?"`YDc ھ{uwQm۶@yh M%LL%bSL_m߸N6-h0)"(:`bozQmiyöezt0\> F//M%L~_5維뺎].Xaf_XbBKml b4 LBQ䧑„8ML_}5nx5ݶ`|`A!_0&i(0IALrt`6hyhr PmzPmz0rs mqs mxs mq`z0r0rs mv@z`tvs m`s z0r`tv@mxq`z0rv@C< y (@0a` !OC @2L &GC"Ja  \ ʡʃ(B(R((!rgh888yLFD5c s;+K{sqA ;{*b* *y1Ks cK" P6CAnn@,&3A h6 (7 l@Q&3A0 DE(`D,`0b!&@j˔\]ڛ&!P&5A( u(a{c#z{#Ks + &A(3ذ cЅG7pzj bڰHiЅG'yK;Ks cszk c۰taALY}Aɥѥٕ%M mPl۰|q0A@g+iH͍(llPt26,|q0AAl0 Ԁ LY}QɝM o@P2Ѓ ]|a0{! 6?*llvm.identS ]\ڛ۔`hBbfW&7%(̡5M 2dx.resourcesS]Z]]]ٔCRF'F77%yL3f=C8ÌByxsq 3 BΡf0=C8=C==xtp{yHppzpvxp 0n0P3!!af0;;C9<<;v`{h7hrh7pp`v(vvxw_qry,0bȡ̡a!āa֐C9C9C9C98C8;/<;; !|pz(vC Pq " @; a~qv <PEAD %amp LD4B3\3~q0 <<mp/0CM>r6P <49RCM~qF <> a oU,tQQQrT0Rve4PnB c 7F0~~c?$( c  ( # `Ɂk׈A `s06b Pcp$j0qPpC a0b D# ``A4b (L# ``́5b (T# ``B5b )A\# ``6b )Ёd# `3b J)<# `3b J)<#`PhB&h E>e |F i3#Lf!HE},"3K T F@`| T Fi|Lc6g@ ]`8"0e@@ >@` T ` @` X. c]džA>6 1!|L3b` :B0؁2F`@SBgB#*Ј(4b@ wP=8фMфAnTA0@F`4AFa@ *|RфMфA0Vc0\a#F>|F  ](A0pJb!MA0`P X0DŽI>6L18j%Pb4!F`4aF z uM!M!>FC|150cj`džA>6 1!|L3b` LXC02H`@SBgC<8<A0 `A0p"$!MA0`$ 'X1 cg@ P}фMфA18j.\jb4!F`4a$J c`\0DŽ>F1!ψ 0pD7ː()}Lc AYeb05A*#adb07AF Z XUHIF iȉ`4F  ,3b` lE`0 ` A0f-|6Fa8" eX`8B e`Pbc(1؇1ǎA> !$cCHdž |lcB#g@ `8" eh> 1,3P2b4؉2P2b4؉2P2b4؉b>dž} A05! A0#5AЃ<A0C5 bX5HA0c5_A05XxA06@c=F`@ `фMфA18j?l4xc4!F @ M!Mb18JDz5c4!Fa4a#Af(0pD`7E !A0pX=10E|F xc@ i <,3b`  G`$A0`l= ,y18G# A0pr>10fG#ψ 0=bE! Dc;p 30bp G{hB&h &0Qd | |#Y L&)Lj 0o#z`Aǂ4ψ 8q"A#'.r A0`$E @>#` ܁|D'1Ȉ 8zb#'0X10On$Ec Yjc&p(pq>^>| nD>|,hX0 c Xf  @>|,X cg@ YY"18VD ,@c+n2&5}Lc@XC>6|l` :|,0XP`cA' @>V|,Xc:ǂPe  DA>#`˨ 8B*J`g@ w1= c@;4chNc=cYǂ|,c-cA1|5>|,hc@ψ T"+/ 0 C0@#`PJɌ&h& 8"rD>6|Lc[XPǘ(>"|lc>6`1Hgnfj&eA0P|fjfJF1HgnfjeA0P|fjfV&] shader7f.bumpStrengthXshader6f.expCutoffshader5f.globalStrengths0shader7f.values@shader7f.layerStrengthPshader6f.facRezshader7f.reflectionStrengthTshader7f.colorColor`shader6f.strengthshader7f.colorMixlshader7f.transColorpshader7f.transMix|