From 5fe7abf344b7d6b7c22db0af21456573d29ca0d0 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 2 Mar 2022 21:10:13 -0500 Subject: [PATCH] volumetric fire shader --- assets/Models/flame1.fbx | Bin 0 -> 32396 bytes assets/Shaders/flame2/flame.fs | 100 +++++++----------- assets/Shaders/flame2/flame.vs | 3 +- .../electrosphere/engine/LoadingThread.java | 26 +++-- 4 files changed, 54 insertions(+), 75 deletions(-) create mode 100644 assets/Models/flame1.fbx diff --git a/assets/Models/flame1.fbx b/assets/Models/flame1.fbx new file mode 100644 index 0000000000000000000000000000000000000000..b901d198d82197fd1641aa48148d32afc7f3006a GIT binary patch literal 32396 zcmbqb2|QHm`zMtakrb6sQCfs9*_otBwu+LnWEqpfU-S?Fm_G`)b%1*u@$rPaqMVSfmSB<_yq1C2+TW*7!#$u$ z{UIJME}tJ(tO6^(&q3h#ewgDw;%e`Kaq|RpW*9fPKA7UV0zoexf;t{>+xb~17r3dX zt&1B8%zVE$@9(hSmc2hrEVY2!dg%87DOf*@E;B;9dS1{6YqsKaQKi?UAky`oDp3&mYED8#y^UJE0aP`=A^D zc)VX+38C@M3ySnG-32ZVIm2CnzPIi|dD_}J!{;reZ?b#qzO4$f^0NEEr=sj{%ChpB zK)`v%0nJKNd$=oH-_;Rmx&d73IV0_CouNxE?muQ$fSFS$xW{2zPg^lS2^ip7171rZ z<(vLEtF$-^nfP}#JAjMjKS;5{2<~YMVLAM4wcigD%gmfSo#CbcgX_)@!@QKhK|VM?GxNg?uMX111@5|V z6A1A4L;eR>=R59!bc1_%I>AxO@{T}INP1Q9;y!M=8hji^+M^+qQy$Ky5Sf9gr-zd( z!W2>oGzLDn<`>F2B7yonWF75%UM<3CfH?re4=wSq|8J1G0Mb%GF13IJS~M4 zdERtDL^mYb)nS1RFw3O@mO~;Kf)}{=X7KTy!e86X&DqI*KDJH+Zv%S%Q6jLCYXN5+ zIQ#C8x)A(4N!%i`377@Q8^OolAsgF*sQr6fksomX;^&k_@PiBBqCWv&4E~?sLvqhY z%OP+ET^KE(LBa7mtH5{RW+1cJ=oy*K>+t))A38LJ7?s~I2mb9>RhHi>FRwQLPgY)D z{^la|qHP6#gw}O(hW|o*$en)hk`jOfq~_WIUO=BK!H1zO%G1==3-0g}<8EI5C%GUk z{Z8^fTGwY0`uGAjn|=oU3;BLw-pWOE?FDpD5q`$_d_DOm`$_`;g6wO&04Mw>xbOD- zFAWT^{>|Y5Sb$O~Jzbgd-mSUp)91>VhfU(-R~v)E1CLAjTp6{hsCfL7uVr zf#y$H(HT%ct9OGJa8zJQu2XK>K2E6lB{yQW8 ze>5JDFd@%6x_}0`r?!io6DYpjB`{+k+y<81;4%sw*$-rks+R->SBa+ zfSW?u9qx*D`J=MvLp7jckwjsE1mXZ9F?F+b1?{ef=e#Ti^Ft8A{0aD+FX_-H*K(i= zNCc?$1owm#^9KOZ?Wgpwn)=^DVQ9EW|AVo0&?rx&i>?Py!AVdc|Jm3o2LaGej(d2EWE$YP-wDk6HlZ9>*@?hj2jpu?{01c$eMPmqoQ|)=fYP&kQ0CU)1`bEV9 zi~oEC05nKO5YJpIP9l+>#=s8@|Geh!u8MvTY1K)%BisY-Y7a;KY3Wg^KQ31TmvsUW z1^Qmp$l^UADSl7r4&Y)b$RmGIIHc&4i^Gtps}?jf|0n=uoj;d~BmW5i;r;2j2Z|mv z2np~b8Wae6aHI>|(*tws?{UHwNg@ATyV!@j9gyCrpV7H5(#b5)0T#GU!tLQ8{rwXqSov=b zb>Q2O7eU$SM=yeyg;J?=-J-8R13x4W*+sfvx)2nD+rYx_$Dds2BuFz5=wdE~+PM>G z;C~*j(7p!fX*}GJ^ZvLL%={&pLx9f#J>)0`;006)1<^^Qr!5qjCXS9MxaWUsXdYl% z2>93nFl4Lmz{j1ukpDIAx&Oq4syt{7|2KZK7IF0#_=PO8i2FaWO9ilyePkD4p`u{s zVe5(lHUTPLNY#JmwqPBX9!PP2vCR*(|3g?m_%-l+@4?-~SWkPq}6N6Xj32RRpmOY3PUK_dTFYJiyl5yp(?v z;XaFWN`MwbIP_%voes2Y_HbRKhoO^;lc$NR^WP?3u%7GPB8K_`2Jq=WFg%?c9bMrl z)R}*7xputmcOEthI}8{B#}6lk02H#q4|@57)1Nxn*srL5YC37KNBYxy z{nT<+Kd1VIcSZk->Zcr5{fg?R9PR@9iIBBVfEP$bpeTNS+H$i0p=0=Oo6l>D@Wu=9 zP}jBiFz00dJsbSD*yKfQqXlfx*#CjO=m-A>`Ui*l-NhuqCIVz_r3GlHX9muH7<`3z z($*CL|5p_j@oS8KRa~F{8slHpRodTR*!ukcWKj_RPksD=@vmg@{x!zGl7+B{p}Jrf z$mEN50pF&NkW{41fN{|073x&JSrzWpQ2zY=QO*8kMa zpSk&0LOCwNC<7BMwm6_4gZ85wv|SO-|1N}{{{zUs5@_@vK>n3DJGU+D2riZy=;_=L ziM*uk`F*=-zDND*o}l$2)nW;T-1U^(LL2%^x?6w_N~Gt4(b4xF&qJ&YrWuLgBg6a?+LbLz<2a$H#a2M6^7vcW>06+_Jx}+qCguMi~HHy zp5Uu$JLtCy;FkqHKmW!B`U>ILB8ub!FVIe@t_K|MyReDb zPl%ui5I_}cv7|tINQU;#TYoH8e>Vn^nnK#rUd-};x8Jr8unl1^_SaC)3Ss|Vss3XC zEcj>CD~qVQU@%3AkME{Rg{{IqS|8o>h_626}8KYJs_ZdJ(3 z;w5G>86j6LtJKU9G!QDHbIn7H-d4Igh3-ep##QA2Rm{KU$Q_$9k+J?>1ESX)x;e^m49(9k1Nz$H>8uyX0F%c4< zVu!|thN!6|_YSm4eLq5TE4grHEO;Q>!mq5`(q>G!sqK}i_#={2Z%KLw2d{Ex$jcb1 zMVvUNg;>K*{L*$WMz23_^zCQ7gk^+PL|2J-?3UtdgPqS}BK=!oYc90Y2+Pb*woMci zxtH{%rB<41YJCfkzLiJzBvvWcQ#|RsjJgo!8xbwVyIRZviXyeCh&^nWR=I|JshyTY zKs^&Du)iWNyrAV$ik1PX=qBTNv(y_E7fo>KOtFj?eZI7az7KgA@mrl!*{AC-7$Y~m z-YGDEyfnjd8a>pv(zSE1Sa!b((;vS)SA}}7IoRYyka}F!$e2MBtkJLQj5d_EIu>7XP9wrZ> zS@)-5WGJItjfsR`X*V>l_@Bb3uO`0r*rmBgUWCv7S#v9F!U7GWo3bU#y` z@qIx0j248!Y>A~MeKd3Iw_ECn28zmA0&l`Qm}e|Gzt5jM(^Nl}Y~Q?ePP})^tZ_jk zj6B`7e)BukVc*xchK3lq4J(KPQTjCvMU8r%DWr@|udZY6w^hnL>3-KNKE*%umRfu^ z$pjlPQYSsbkY|>BR0~dW@y75!Zysk|MNL2N=bK%MP`AnZtZ_FR=0Eux0ng+c5>6PI zXk@9+lF_~)a}o))8{%iYz1t>fcd}_aS!|h^wzr#RBU*a$xhZ+f&`egbDEyj9#hmC8 zlml_pVm122e*k!)yY|gPUv|Bjishpe{zM=^CdOB++Xuvbe8&mIQ zDFR`KhlIi{Ih3K&hpr2-R8N3d-=S86id2dm|tnLJOjLQeL= zK4`2Y+P><$xmwEmASoH&b94Gy55HRuM^aTXac@3P!pQonO?^^TVjWvtn-bh}z+AeL zKG7{+%KLKmrroNgMRNH(zUgOoAk1`8yb~-!4q@^K7mDMD!C`=$5Vab#SbAiAp zw`NO%we|~4MUfkKne;bP?+(esVp>n2lH_LIY~J7hjqHe9fI$HqE_$+uaX$u7nBOUx(seS937@f9{O75lk2I(R|; zkE+`_FW3q=ITfb(L!K6`>lr0|FMPfBp4ClP4MDN)^fwQmaof>&iI_(5nQ7>L#!sxv zhB15MpF$_1V|8X}f!U`tgI|(}kA0s}UKi3V!N7^6OlHwCvr3JP$rJ&mL2(^Q#e=S) zRnoU6HNcvU-iL?o!Ox@SSU=XmrA>NMy`3KZ6xgX7`iM zk_Jh(t!w*M5(!2u)yaIv-x7HfI!W8!kRGV16fWx`rLaZmGrpcy%W+=H350ut9mAjT z-I31&v?uRp&t|u@abnFfRLR@sw)klft_^+MG`GbgypJx~^bFRL-_%|@`3XOAq$vHl zDk<9k4BF!LZBhn+4=5!zoADy1QNC8wO}<)|bY1iunpJ#{H&WTxq#%-%F=SJsKd$S` zsaFCbHx_luCY5QtYrfbnk8rk4s#6%()p(USb2+=INRStXkw}zCC{Fi#?yC2)W9S6= zvet1yk~)54byFbvMjyiaeb7O4f3s77v8li)Z3XcIsnJBv`fw!&hN!A- zOnSl?pM07WiGMEVT#PRmp(yYYY1JBoR%HgR*NnnFn$>Uc4;tq%z0yPUKK z)mz|^b06Q963z?Eu?;0*OipE8BHqVit@S>QbvVBY;ABmkyhKT$7zZt@Q0!duK1;3sDUf<~}=(gIN*)WnUOGAYwf%rYjO9W?Ka``#X`%NE<7-wd}h z6-%)CvOiIJ{tWwNf1}HkRr+4a15#miL5kW0A2y{(yhlxC$agJZz@pMKpkE>(Q#|7{ z?rpOZZ0Vc;k)M65JpSyo-(7`S(M*$6Ctxw$ot{2LwqcU@+fD3SpV2}vn-1rC^1YG- zELTE3`KSxe5o8)-99|$7jlEA0NvM^rs@=^{p7#B$d}s=;M);^zi|!qMUDCJi*+grN=F2IoFrz6)OT2ANrf_cI z(q6sY&*LPUgD(*^mB(kgF+-aZ8baFr#bZ&5sN=-Gym$6Ng0TsYfC+P&b|ekD>*xh$ zk1(r-W_(7?iHljX--Cz?z0%Gw}2ConJ&-u=sB7)R9 zLx}1Fj8YP08DXqYLjTsP+T^-yi{$+Lx@-yA{QS?^GdFwsbS5+od!QP>d`9`7LZOlo z**YGmXOuzts#+}uK9q;0O1<4`IjD+`ZsmhrNh&>ERXd7u%VERY_e^d{ho+iK9^}6S z9<>)Bq7ruJtFp{HNh12LvTRlHo%#6_2u4&--zU6Id{3X*bhfB8G!)O=T$bruI6zWj z9C%7yjmyc;&_XvPIs+41b5z4@vEIdS*~lO4*;?XXng+S(%l#<*BO zNb$_->GM3R0IMvNQZD=rMj-yGX1+cP~^^6tSpJUaOnc~Kj>w|9`$&y};nEZaf zd)-ndmAvs-jV7aU&;DJrJ^}_wO0fr+K4Uwp8XV7LM^Mh~z?qR{W_>W6c$GWYqEWf1 z)Y5cE3AxriGm_|wQ)8`uQK{X~z#bgVr@pd*^3XT6zx$coJKoz2dAYLsBN8SQc!owY z>UsXI_WI%O>tg`GXMm?^D3&`al`WwDxFl^zB-?b{^Pcz6feFj4=1irkhQ6!`owTO> zS<9-1#$Z@?fZP|kIdoOSz+>g~huuSy)6D?nhH1tFwLU#gT8|T|G_^!Srm0ifE3L1D zu@j>v&Xm!fL`KB`Ex1TuDc229Lg`3r1XbiRa*x=gdSF=f&yZc)R}uV#~X(zW+YS)|E! znFbGMKTRsV)~B_arP|uus?5jB-yNXGaz&BX&RJ4Lzswa8@{ucWS`Osn>}JDVQ)|fU zp^I1X>5MFx0PHBqn4Ju$q(fk_%%D+<&eWPlybDppGr%nf8gaifP1rlNrjs;QZbu$< zsonM{p4pLk#N+7K=2l+s`#N1;`m|I$LUvERi`4n_tQPCmv-aF@pkM8_MvGePs3NdK zz5qWqB_SgYHt|CBaVxJL|FZ)9l1+pwTkIx^m$-S|*V$!5pQ-17UUb)Vsq!b`F}5#W z5IZm#^}IW%&rhsVC@NKF%sN;nosd6c&Fk?d?yG;sBVuFWeHt1V*A#sC)HbI0WJunM zvUCY!sNK|}oe~#KIEC-^6SGF4Yb3=4h^JBL50Z`Vnhj$#M(DGB=ZU&ack4haXC=VV zmLOR^VeX{~({{6szJzvydmh{GloXIZleF$j=v*zhJR?1ukTIaPU!WqwA#o#$(8p{< zKWs$XeJDur)fDiGnb}oyk&wESGchY}r73Vxe6>ZB|D0Xo1+cPU${^F28|Ri2dn_p@ z4ObHwQ1YSyB>see2iT}C%^i=h0;o&$Vs*O9h@a=4_CkeE47ccbT3a$r5EY&>q}P6s zEZMWg2<@gzF1<@@o4nmR9LAus{G#INbixf{V3D9&wf~(g6OxFxN%wq#he_118Kh(!t)w>Ok3}P3yUx(%k#X6U_{h1j+SQZ zP_7iuk_ex}ZA{CbiR|-xjF!moiBRN=X&nZQ-%veUh9N!BJ=3N6X*#{9?;c7~Oh7Xj zJCYFVOce8He~VQTi;Bk*>n(XHvQhExK(jg*x4epJ^agoBLST-EIOb80sL2l`2@pxE zNq11Zjqg;$BU=+Zs2$yRv$1{gSH>^QMi(h_Cq9<*_t@UJ8!zt9o>I19t!#XrVDc<{ z$Xf!ZH~V!~T#(T8LM?__Jn1Jljh!s+nut@FE?$9p_l38KC1GG)I!8LRu#MsgcGK1! zM>=B=NLOf&1@1Gyzv%Q9?7%_WEC?{~!z~tzy4T*cnJd@*Q;Jia*}ICI;!GE$b9~#^ z9Oaz03-&Euf!mdG6h=^#B=ST&mZV9;F}^5sb1QE%K6vmgxwErVP^JDdvU7v@UAi!5 zyDY`V=df`+tz(Dyt%jZA8s(Di-^#9u_;?z}OLVRjk89}j^9d(A<{0_=+|=uQ9lDG( zs?Kty3(c)4d6!!&Fe*nBJf47K1knl;ro0GMN=hZ1K>7>^wtt$|lt-J)J(zc$X^mqp z6YnB4?OfSfhRvwW80BIVE9rMGr~0`B1TynzZ}gWpxsxwNb5T3NB2~*$Y=+UHyfCJ9 z{Cc+yU}+LniM z9)GLd%5GjCWR=Ivu3F9O#z2@Z_3EOMc1jFaw&9IVe7#Z#i)XzOAXPb;^3A<%i#Ou_ z8paf6_+LXZoRO4x=hcTcQZ;BYJn?Q63}VBX>*}Nw8RxPv)Hk#1cLDy#cgtJZ7@8NM zxT&3}`7I`R67af@yJd8%ar~-R{N52tJ8bt_-&0tz=lxkA%blzH!2GkNm)yt>rkjb0cE3jvm0Y_|jL-+#vkIDQ?t z5^(Iq-!OLGIDSfA98B*!znL0;HJRsTDKLV;y&Ft#B6T&7JBQfZc77?9+&mG;orgm- zhy`_1t5aatI>0+GUuj!xE$wQdTzr!JdRmQ>&=R&g!=YhyPzSZDIJ~c=_*+Z9TuZzB zMsJ%OtMlur@y@evx3(%bdtQ&6<|3}$$SdYX@u9f&hpSimF~>%Vr@V;SV%%+RlxF^G z1i;{?l~%w#6jsc3Q0pDnd%kOXRC~VvR-s;eecdL&vd#k$AW_9ZX&@2b^(3DaskLYN zLxA_#*6{%EF}kV*yyudzBJduCO=r7_nQ?1wxl_IxUO5f49LIAD_>IDbvt8Y)E`5jO zfv!`uS3|mo_E(S@!zk-g zwEbxykm%I$WdJ!WS&6Fdd^(Wk9`5ZD+y$}EbEh=Xp3b`-yk`r3>>_41b02YMAhK6} z?6{=j;&n){wYb?i=#$T`RKN7HT)&)L6fWo7gZ0$8L$>?O$^hr5cZGszKp*D@_$?2X z0wa9U!L+KjpSy>owOvPaw_w^aYsWi?*==jI0ss8kuB{j)zXxjp=lnXdfb(nG+TeZ5 zl?1?l^Xg@Qf7E&p$RZLwm4N^KAHo6u?ArniF{R3PjA`L`p4%co{fSp@0{(|qJuXYM zM+yJdLCnlwwHpLNLg2*oO5^xTx3_pBl_=Z9sO_z&(}cF{;zVY4F_#mN&2L>+2bI*f z{qeg}6&GV|M-Um7S3l<=R|PiQUJ0a#-L?Vfzd)d*lQ@`hA>bX>i2&5CL1n<=n5D2z0Lw4+9%#irBmztq-dfzMh*$Xgnb#2UcpdtYMss602wldNw?+His*zz_gz{WTCmH(=8$F^Ia(GCC#u7{#Eum(?qG?rwbx z99Xm!%FMszg#*nkb%WAhRp(}q_}0C*Vo4iA#Rhl-C^oh-2*|{(c#tj5=4B`nFx)&h(899Bu31aQzE65=5^Fkn&)86g@3H8qP zTTr3gDN_!r&Kg^BPzlbyS_-TyUsIlFZz?Jb5?P91%{yQMu`}1qyI(u;WxF#RO+|#e zsI{6I9W9zIE%~q(-&b7TxSU2?RbZIGQhxya`7#{1trJ%=fX_Z)2#Q*9_ViTyPWd2^ z@N%x`gV2b7ZwNx;Z>tMnzd^jB8?e93uoSS*yD=EBA0xj3un!flc;~b4*0*|p^;|;k z-a;GX<$;v%y%CfHsKO942e?Z?!eGgQ;2l`0Ge%5M+Eyn4{G|B&3dm0`Ec(gFnm~{> zT9)a8@J(+P&G5A1rQE=8hWZt?-De!>+ zmFldkEz;W7%oo(2SD3wNO`^LuLSdXrX$1W}Tq7w^Hc?UXY_J zuF%HzDU~LxQ_r=!!w89;n%T+wseH7!B`@6&Uu&-Df*Yh9GVs?(t+iZH(H2*$c;QN+ z0_`FxR~@8i@0^BYRd8GBgX-Y6HJ2U1ZR1wBK(`gT-vw^F?llP8TA2%1ffQABn?Yn< zKg0uE=MCRQpqDs-N#K++!Gj6E>BPdByJapmXt*f2lW4^Xk78|4@z?*v^$>k7C#1w-NAbwi!xD0JstliRo9 zYuf?7l8zJTg^)WIdm+~=CxL5Pt=<4^o4w%}RK~>2-hyPOwCf76?c{N&muN{=0k%~- zs0uuY#a#}p+O+M%E%nO6se{`<6BN8n1URVtt`LwTR`ftM%6ivjz~!UcJRmPHx59w? zg=>2Ov4(^Fr)7=fyKk=nR_EO+2h|GOd8;F{G*@6izf~xD74&eFQ%A3W>_F1?Wi3su zJ#Z9wP@l%*QsAu?GgH=n>WmA1+@AoiQ&J946LI7yRB}ykLzyCW>j4mV#yUGe+*t;h z0pV16Hi5K*T6PkowLTe#w;-fg(jBWgx#gKHSN0$n!&y9&>2T?L>BS`{lT*-&uTiym=_(P8z8Q>eDD((-#aeBCzkzUMb_oJP<^ZK>N-Af)SX6uif@XL6(>xRyW!l%X5u~NE3kqwzP z6ute(jrH7*dyq@l9o}HUTqUtT}bOzbyQ zE@%jApLhfd-1zaRu0l}eO~ewRxc6p`^3kMwrIZ@!aJe&Oc3l>SmV`=W-t2whu%YUO zt(a(Yjc`uZt&!pL%6?x--2A9(cvYfYLYFylTvTLQB6cS666>82)h(8((Y2C@yReZ4DX!=gy>xTzME|^HGHQaTbcr3uPv1V=1ZwZ1o9r*0y-X7kmaDAZ0 zP6-uPxuomNhwZ{bq;>0#N`=B@5Id?~z{Q4|-|8x5UVrI~;4N$}4d8dXC&{XD59nN9 z;t@kx-Oq3Xw1L; z!x1S=$oBhJ%Z`VjyhrE*S8teY!3_ zks^Q{AaO08^nO!)l=T@}@ktx-jXBO_RcO)qa;b>iB?vXfUo-AUHi@boY| z?L_q1&rihHI2|^lm~@y+j*yt2ZIhr721t9<;m=+3fMoeFHubd=A?cfIB249KIda`rRE?t<$l+aUvn=&O@2r zr$=|BoxFAb^F!Im3r8jIf4chRb@INEfrEMlb$7*qJ771xJs2c^=es+k$lo2PIX~|X z!s7?RLMftJ7I5y+Q=$vC ze65n5%8Cfw(yJn^QnlL{6$E(R9-H_6R5~i~Tx*{=0|T6R(IqMl&AY^kO&^XrwoBg; z_;74v^Ga!H!JeIvSKu$qtN3`rnPVsJd)!G~*Z5RlZ17~na>d7jMozllIR;+g?OPuo zFo9SbxT(TTcmF)c4fm>K92J7|YwWq*WgG;sWn~CH4#18u~@gIzw9w_z#Di;n07#VvO`~0sof`80M;7O!Cm0-~YZ94lcTXm{>ah zSGv&h&43813D8fXg^g_8+`wP9LH{QXz=Qr`Z2qVB&=1WHVg9s-b!?Fg`c>D)-~R&l zuY}O=;to4`fIkGyTIAde`i1-gwKFP~qs zQq&p!%}Gq{CEqeb;d8v&JlmCD>Yjf6fX`!PY=|Lz?~-M^k1Tm=X})BsjW|qG;D_N+VA9;B?UAqkv`5kv2vQR?9L0ROwO0Mh^i8y zqZ&vBr}VF=T%O<>(xN+Ny5&^w^tx{e?SEFZf0==&F6uG+`*bBcYElkQ}tm|ecQnJQAU$Z9q zcs^EhCfsD7kh%=jT;tP7s*7o^gs{eI!!HKixe_fnJS)hF&7?{+PWr8rlP+_G8EfUW zM9|S}8EZ;n16janW^fKGfUjc+h6Tg?3tGI9T2F8ifyEI=HN=&e$y8j%@bqd--$Rx51O1yVHKvZkbNvUn$OH78ra*;`5)=B9fNC%yW9Ar(GYny-Ft=QBJiWiJ>nU~~f zo`Cuhy)yI2vTC%n#y;j+W$ShvXQ=XkmhG5E%j9GwTbeN$4EMDL*e>n&=Tv1kH1-==cWM9B zO>&E<00T;58AEvY=yZuOg)oYdpEqZBEUl3f9x@$Q-nNtN&yI4!vc$bNf z+xz{vs-l*?3t0qLdSh-zw@mbI8QWc8LgQ$G`$=5J*&^+35v!tfCgs}mS*F^y_E9P8 zbYC)~Jb?A~g}Aas(Yr1*_$6Udy1zeZPJR7a;TMF7FarCmJoGYt3f8r1b5u*vJf&lsICWiMQIgm)ymDcw%WwiF(%Ndm*iqX8S!)A&y?4-;Q@ZT9vX|jq$S(!Qt^f&Dt%r6^ zO1*q8HLVa<$$MNcE**W>ZqBfaD)aJDp3dv^u3-(8+p*qGVowb9tjfD6$y?B4qhc?k z<6$D}7|5mqpBrbT7#u<-vf%dJBi!jtLB(|Po0Vw$Aa)Bl_jAaT4 z3hB?~bjoXE>xxT|5L-T%OJ7VZIuj647S>oUSEq*2^*_{&dyXEPkUlGI5@NC{G?nIL z)k=Ga_6TN)hXo5Z&g5I9G3g;li&pGGbU?31Bl}2Cutlq0KPw=mpoEKKJGLs(ra%{s zQri+DSsnGIc6EEYH1C(~^$egM?Vl5N(sJ3wxO9plB4OT!AJ`i- zKD*8{ApR61)_f~rhkL`!-O5u85kY}hKG$8<6PJoH>hEVfaPQA)YcZ=#JQ0yD!;hP) z#p~saQjT>6Jefu14VN8h)9N}WtX%R^&zWF4OnJ$g;ZzH;RF!d5ueD_UUf1kd)E34W z8 ziE=EP;pAW4B|fH~*L9ZwtD3+|C9TCjwn@||VRmY!Wt<kn8De~q)9IR2sZG5e&7jU9XKaN9KEz+QPkk{w7wQvO0n3myQl#=;dicoDnB-HvXrF`aGPvz&*fLQWS4_4V zCt(ij{Zud8=e1UJu14EPd{T6|9^J9Q5hjIy)W|%eVU;o&K09NOw3fMPuBJ=8phw=l zMFNe}Wog_gWWH%X!TNaJu5wUJ2XjTXS#0#PKzaDNG_Y{fBtIwOc_Di#&T-5EJ=iR* z(Z=XJstK|eHexWU8=am}vK~@FLd5K3aNo-TW(4qIzy7H1yv72UFf7{Vifq1dK<5by z9F+W4P7c)#Hrc_p1~`s+-1?HyW>h&qTRE{o#ua^$JlK>qcatR_R{8u5NlFXzJ`l?> z(Syl_p2O?U)IKo@W#_GBn?Ai1ahKv!hsdh*(j;U}Un^hjsTI)O-iGUXic6Ed@IpiG zw3Ww2wO#@z1XRvA+5CY!<%EG~i`F>Vnb&VFl@l7}&S;SNtUMY}Hy}e64W|@1a7;up zgqRyZ?&>_>xPy{H8D>WKDuy);q!|#6NX-o1vE{dHUiup6G751rQ|yrsFo7N?zeZFL zPhaakuN%EX%f|~&qN~yeA`24>BSCUwAk!!{BEzjC=G9G+K39?yij|(>$dX+MVMf1# zz9_MgEClRkO@4sgnLeNj=ZJN!5oV+&lN`FofYy+=r(+6yEpYEKZo4uhPFQ7;XEcut z`+#CDZe&ho<NV(vS|mf%O*bB_a@JbeV$^3ac*E6q_gvI#^|aUn;37V z;0$6j{y{-ctLMk8xh2@^((a6+DU)7Pf(ie+`vnqFJn zOTFo=PE`w&Lxk{hvA*SZluRCQibIsowDv8ZHi{i$w9OjHBhJ6j2+&~~zW-cRFz2Ue zQ`t3ed_*B~Ze26}M!+s%Ib)`w$B?=pQ;@#&g1{g-crp;qq=fnZ1|)5Z@;yqH076qFlNDSG?B8Vg@(GhY zs4-vVya+9J#!Y8@-fN`S4Yu1!Ys-D?n%v&F$pCw9Sg#>0DvxQ}xGDHFgF3aZ{k(hs zP1JKg1~$k4x6t6YZ^~Wg+RhE11G252)oqQA9}9Tre^eNsjFrrsjGUM}$5{~?{1hvB zk}S*=291m#tk3;TKqO%fvl+?Pi-wJeKJzol%gAUL7v;gcNb{R=X@B-L)QceLUNV^?>^p-=M`$urtH(();#!Xi5KR-wc4VTrj5x`( z4dvoXAq4aQcNqaQxQX{hc4W}ZcqmW4Fi6eelqj`5{Tez-N!GYW%^yfC6szfeIOcM? zt+`26c7S|oY-MQW(*jD?R3jBR=JwJ%+b8L90is^Ldd>`LePkQ7ga>Q{ncOo7VY%E3 z5@8b=6O)pl51O_4R@ntp&BrUhO#0BZ2`lq#KnKni#=pvAZt<)z(vzENAV1^OO^c@~ zw12~G39Wpg)@}9~7gZa-V{CL^FU%qJ@Ahf#mK|6M`qOo1^9ZM&ViML zU714EM*n4DO;hbO9Od*FS6J{DirkbK@lyRP^NfG`VAPRR8IG|v7h51S)=PG1s1j2P zy2!Rvvsf7{XPmZ_j#y`+rybkcCmqK2j8AF`8qX^kjLOx@SkvozWiU!;964#z2y$Q! zE1s1oIHMdq9aC;qT{4M%&5EzB-tJzN9g2-$oon9Cspy#8)wm-}Jf9{sSg+VV%VN&G zo?C}GT_%0EEV@Z6`YJ2F@sUN5ItqVF`ONxq2wr&RrlelUeXZ?qYp_rZDLx zRff6lLn~hA_q^CewG0!UTS^R}Dh0s(bSU$}l9xr3!y|;^Ur4_fnz@cB2hZv}XX+Mpw zqHb$MrNB3X4s|+fFsd|UP*tI?HY+b!w%ID(*BDCUm*}ItsPQ_~w;~x~6QkVSQ$iC7 z??8W_;X-`zRjv-@+rRgWMh<4$4yHreber7mJ`s12JjR9ElT68)}staa?;{Ijcs zO-4)ja1&oL^t$*1Eb0W{ApLrn1Wp@W!+$HX5Y9k-mQ!G5KD3D_4=mp#Y;$HVu52iI zGvW;Fjvi=xCA;{LW6MBQlM7MM=vp1795i0n*Aj-m^Kv#hXgoxvRFe7%vqUE8Td{hU zaTB$3AmA2ruSL;ACFto}&mTq)kEs8(og zAzC?Mbv-$Dxd-QR5)b_}eQA(KT(r#4ZllyzHutQ9umG(QbzV)BatO5k@pE~t59mv` z5Cavpj?jHO&(_l82=AkP4q3~+_9M+wxUkE@sx_{-GK|zr-U3Gz_%O5~gT7Rzq_XQb z<%3_4^rcbd(o*7)O(^9HNhFEK^ihk}S;N8iO(dc7kXEzK()~f2@yRK&jt?f|BxFkT zx&+aJ-dSJtb!pv_V-x!tcLZymkk$t3skTltFy`D;TL}sroBOQDv!}u9KkJ<-IutwX z{Yfpf7c`i;s#9Ico9KBj+H1S&J*$*2wyAFe3b?73TdE=Z9HhhPD_`>2m2aq4bs2iy zF4WUxTupZx`HR2R#*d6sRvs!RhuTvpd_0&|5R-FCHQfcKbToKqp%_}pFy0f4E_{T?S(PwY66hfIwxj7}?_;QVN&?CH&x$o6M!x63B zfczOQc+jvxm>$Bdxw0$8fM4V(@$+ozg)If2KKG4y!wvOm7SzBbkLR>Q4d7qZ8`;fx3dx%T3Cxs)z zUX#i=`GbaH<9;&M5hvQRrzxMOu(w7{HV0Fi4{+9l=GQ{M$X~R8a^RcDUGU^8-Wg1d zE%B4M=8v!Z_>#QazjuoF9JXlxY4Nqlo=IPc!v$8|2;qqSz;XO% z!qdzCVz(X%>=}8EJt2%dEUYJCR?gPiFiAby^&8A4KzV#e9+`L2RhZ;Apqie8N|=r) zFV@K~Rh4Z`XWYpz{48M6I`OfSh7Pz~sTy7m56BwMws}G4Su#6*rs!aXGviLPC0v*! z_sqK4sA-0qpP}+9ueaAZ;NTUBET4nc#9}MjZiTjGVThjIi`CVWWc@Hd{i3BctKVwE zV`A;yt4r?2#70lXyT+BT9`{&D=UF#<{EWs{ISQq}I9k~JRUYRBadk*)KZ`5O4}>eH z%s$|9@BT9ycGj2iDRiDy;~N822SwmYRQdt7MyPa6mB-6~%qQU1S7cQ+pP;f0Ii+25 zZjC#bHg>MUgCa7nsH|fRyQ}BUfG0Q)BrT*UmGn8^f;h23ib}mKi^(F^u6n8`(7Ozk z#ZtG%;c3T{UWjWRp*Wrb55yWeu?eIGraw>DD&dTK(FfF&t0$_YsC9@g|wyRk2XH^5>|Q~o0)gDTywBKv++?mAs9R&<-X7hV{@L1YYJPh@~p7=HdASr z+QlmGde>K>mZ&foUI&tt^#hLnJ;`&);JJHHURjuKC)s5!Y@(!`19k4;d~?YmN`-Ju zq*!9?5%6GDdmiN=2zmg_5lTf&ih2y&z0RO+TKN=d;C_v!E^wNgvVsMkuo)W@N!)Ozg*6`@V*;TR|da ztCtM9WN3j{iWh5n&^IN^|@gxP{ng~g+mty!pEvYer`6$YNu7>XgBDRw5tf(N5z z#!MbG_C@Mkg9-Ga6Q*=#g58m&8ek)moJD)aj2}?V?T_BPS}r3^Ha{oeDFOeXI@4!5 ze@Z7mLzXt>LeRVw(G>9X)2y)rdy_BmVAmH!7owwmd3AL%$Ki#>Bhum7WCu1BQL(qa z32cbz*VGUMn<#oi3K;ajW{Z;E-ZQQ6#!Z!8NkgC~T^42&;aBYzVewvryRu8dEHSf2 zCuZ^-`+cO(H(^H18OmP?+U!Ev^{668#usYpjU9MmCp=#3P zq$KFOPt@=<5{(gJM%jx!py zhshs$edXZOwReYl$hPh+%(h?@MGDJ?mUmJvtvYot#v?VAAGx|V|ySujGQjswnFTqG=*1ZL_6w_!P*B*nS? z{ZaA87Q^Zd($RUaqZIeX(*lCbdKPAD#=Xi@-&j2aQV7@;^nVW8h7>2PW~U>tMn;~r zN>}@Nkg6kc!E;>BtQUi~W;NVBSF_LkmO5M~7YSNrm?63fP7mJ<`&wkNj&!dO&L~EJ zw5lb@Adoa)RdNK!^mmSp-z5{f2gxEe>ULuj#)*}u&VlETbKvn^oSwIedL=hNNLWtf z8BvAP`-aVo@5Czx2!PJoTZS3EpOo|J|BAcvu%@nUU$0lG#gc2iRa79ijhbr}15!nX zB<-b!;y~(zQiK!;;i*W3$e5{4MK3`bQIRpN6IBERgb*2mA_6j`f&?Q&N{~cIAV5e$ zhLgN~P+R@Jd%ySI{pX!OcFwr=I%}`>+dF%owbqOq82lc|Kf*^?*R32!=Xb*Yeo`Cj zw93+|pzEID;9KJ`DGGFD6UBZs-|YUU$MTr$?bPiumiZJ;xN$(i zju0 z#~nt(RwZi0LYbU@(u(;e9uAuD*7h>#kL5DEx0lQI2Fxy%&Ahdo_Rdn-V)Cm8;Q#}# zmdfDOw7mgfeQfLNOaI69vg5BGgG1T<`}Hz70?+K%;d`jBmd(D|ZMstt(_4>XPDi-xc0TTSG^Op=@8AFYZzu4ahS={Pe57_i zFz}~^iF54S3xtnLG?~di?TU+t$oEFCtu_h6b9)p>7mnzVnV!Zjnj|W!(n`mL?oOkY zqDO4r5bjY=-f zT|aq3&u`P>i;b(SOb+r=t@*z1rz_M30WN)LizEO#0RZDbHFY)=`|lcyOOr z)6RR8Vs_kG@2;fng4;IJ&5qN415YJGG2grE+at%8`(QVh2n5I0uqx$U$@i@eLxGcD z;^;l8iGk^OXob{cb9VYow!s}SdE2vYI>)-sY4M3x<2N=PPsHXxgzRt9+pQ=gr6YOf zTkS5-m4BL{bO$9uUpDH^f1y&@FBY*U7SWA6<`}RFYB^UTkma7v>QaxlqnFHI9n}iTu;;Nq{g|i zH3p+Z&EKXj#4DnW&GzCP!(PV&PzdY(GKSboA)DMRPQuh~Na0mcutUTF;6%wEbq~}# zY|a)M7GZRw|7DrF>CZV^5;9JFfBjgqdqS?s`yzYPRVhp9DH2^(G7{X+zAJ9L+K-PCAHEQit>6rq3deIfnnru9TDL%2Ze7 zOIIF8eUT-3+-NM4t_Z*~Vz8vK$kFQqQ`b7CPD4?Q(Go|-SidM_Nj`rR+gyKmr)4j6CXy4Vcsq7visOv_){QwxY$4Qz8pf?Pd14|CQRH!eEBG-S==eiuk%(=7X-Rdk%^(}poq0)L*q@Op_j7!?0{*6=$r1(BN$u=4o83Nr|jR zA4f8@W%3}lrNDfiEek48+2W?EHEL6qLaLE{jVl)|_MV4P(%Gctyu?6siRz@a+8B=2 z7ugJfSR_ymhF$XOfPyxdC*Q`BQ1j~9GRA)Iw0jKR9&}70&(b|t7^Dmz5Rb`jPOPre z{uDBi2R)+kCcW`5z&J@9`A>vH%N*0p5K9JCO`(9PqrDY=tC4|QyY%`WZ>ihH3S^5) z6alPu-+V*9)I{%1{-k5st)oBpiVcU+>qp&_e#4+d)z7Mn?JkO9*?h~vMlRCyvuO-5 z^}aPB@deexsX?=&=9#nbI(6m>vN3VEN9{h&ujAO9t2LEFJ#i*X%`d*P$3m21Ju4)j zZffwQp&OsvZp?2!W0#=#i#b8GdupMz6u7 z69Nr0+YGW=BVF81)#}F)Gp(MJQ{H7EwA54@KUmbIW%%Wb)lKTB2+xO3%*sb6%L5tr z@R~@4MFKrbo<~&OUMfmA@8^k8lTJz~>M-kBrUz?C?Rz?*n`C9ZkC%|Dn5+_z z9kr$RK^NoObeYB=6I{1YlG%O;o;qKV zYF%SDjaTKFM7cD0mlx@uTrIb(hCrBF;F z9F6K1-o$9yJ(KljBlMKfjkL%jwL%#h+8WZnG`G}8J#pRgTdUa_-w`>K7{ks#(W(LX zUyiKnPDdK`C$2pjHq6;4M1fcKrDNzD{Dq-&d!WkL8U z`G4Uz64f-Ej>RTHl@m=Pt+H)>Gm>IWWk+kj<+SydT3JhE*1Pu#h5Vnw$MN`~Bf-4i zT5`Rw_KZdjlT0JD+jS}72x@;ugmvnhsmaet zEtr@Jl7erL)wBaI)K-!e+KqksB=O;b5K#(*FirR}vx!IRx5>vNoxDsx8(T?QNd-nk zHQ6%A(!yIykEXEA%P}-*=6!)lU)>>92oh(orp~KVypJO*Suc%89du1QGc6%Yi%;{1 z0udAT?CIWi+#aDD#d1SeSZy>w-&_0Dym4OsQXQHtMZCzUn#7a<56BT>;8JwB{HeZQ zT_Fo&#zWq@RSlU;5i25iCp$s;tO;*c)NP(djNe|YD8{2d$n*}RisvRh3d>8EOKZ}~ zr#@p+#oKzXO2x^)U=p2_NiItDma}Lczf+`Xfh5|ij%u5;hoRI~Zp}y5qPko`()W=i z-b2=*e|mLnV+8T|r>_oWr5k@#tMsdq{_K0;iZldFR;Vc|Gs zzxxrc1t$~dIR9#EmeM|MniL8|P^F;vvT0SU-^vw!pY-%?bIbh8)(^VLl=Z8gG+sZ| zUi%LL>4R;t1$`So^BG^0S^Ra0LTGiO;|CNPrjVsDi?TMi*4JM+e*Cz8xOF(QAfb@g zhHTciq3t4sZEE{4vYOaH4<{EcTw%XiupCvrp~(ATv!zSFrq;D=t|oXfp)&kAHk2%_ zU(Hd;M+;*)QRR%{>C)+dWUs-P_y=Js3VK~fbX`kG8`aUcnqICa2!g&NC&+bLFG)(_ zSSq*Zk}8$!_#-ItE`q{29~5JIkB~UGttU-kWVZSw)3pqb_PTdAN=shKY4eZwaOR61 zbtmSsC^+8wTOIQwJH*ndJryi_3C$1BiK3i#vX^|;vW}xV+gI~(XL+|to|x+u=9(%W zKhwx`N$}-F{cKs1@UZz(OaCHN4n}|?=%i#cr!9K?3|F!PSw8UfiapA3@fWOZHxPtM zLIuuV;^l|rsJ68%xs+`j>RX5ka!qjOL=E(< z--b3ha3?l)mXqMF0XG9$`mnv&R!DH;%}eTuR1l$CobErSlo2GY3jPs zYx;ik`tfSO>Ah~_cjTd1He_vNTwzBp$e`0TegoVKf{>s*|>e1%=~y1V2l zFOF)c7P3Q`D4mN@UZ3_XMwx;t=%Hj`YriduzEZG=pi}ncxs;LikuLCf@i$rMrlCID zR6+6c+B;SFRbHXw`0~XBiaWNgW+U?Av@7l6u_K*|&b!BihMV4l(+y#lh{n(uUPt?b z=DLiw2hH=7t5JkXb}VT2WKgKO0e6zDku#^b{ajeCG0||-$3JLR-AE5Czt(deM}aCu zk-Ih$bSVQsmh5)WPAqQDaqd`tTYYmtbox#YLS=xo|3g&oX9;}k3(Q3jb1P;%rEy_; z41V4Ck97hhq0&b>|CZ~9YRLjrc@B;e9fYm;mZu(0FTkVSn$Xal%Nyy+ltw0|2Z73Y z>R#?r=8+Kynj{0ruxBNZX-Ef9&1z3rS4&}jm%-A_RKQ$P5S%DR1&)H{sd>|`%996M z4l!NIl9H7tx$QfP5CmOTA5hbu>(WH7WucJs_z&E?3)Q^|n%!Nc-9xloQ>d$c7%*GJ ztws{!4~zrt<(&uOR%GP4Y^WZg?Kb{Hjd?-IKd+3GhacS4iAW7{?m@V%v4$2S37fp# zZBf0SXPxFcpVz6=xXg91@mz#C++=WAfT9;Y2TE&018;C+HT^rXuGE%tC>qUdGcukR z^Kq24_MXQ;nz(GhY+fdDhrI-XZK}49bJK6rh6MgaV-9N%RDP;y$K%q=CZM`8>Q(xj z3$1ov15;}c!~->^5NCye=0rtxHrzO;;j{dK?ZHs0V=(l#$6aBuZe z!X}hpDWNives2{)*Zm^IUNW~k`V==WyKe!?6jtGN1Ps5Re>@mcooam6?!Uiphk)hQ znOwV%2u#+EeMO!89hs;AGRR!X6#LWnB6EjgD50*T+na1tb8@SP{l{X1hWl+}^6^ zpw-GgcMBz7Ed;1yik9|KDHW6=1VYHx|K`8x7;L*JnV*;-g{9 zRTx46>tlCgfDgeiz-q?~!oG0A@GCfAwt4E-iXb+1kf;=c-8m=7y7Kn21RE} zf#IHO1MJ6l0CszEFbL`gfN4Oh1ie8K`fJENL$C##E8CzuCl63xfsEXywm^}5*^px% zKY(;o-x^poQvOvruA5I<%?4p)wMOZEBX^l7883FLBTC@<%={ZUemc z*6@LZMSB4N=>)KV)q8qjK$x|(A+>#GdWY8aFxM;rC>sSADkSJb<3_pv>W z1Rs&R30V8vZh)fi%r#)^jOCdwW$m#5Yy_qp82O^$9%Vj^Ea*$HkoPSQNaMDzP=K>9 zX9=o~bFmqZrkPjGdgcl)+j)#LVjAhT1-3V6o*Q8=$v&tau$T087Y2lrd*n!wz9Ry& zhs1L!TRYXLDVX}OOL1$mYTrjoXoM+5YR+2hfiy0(68gIVZHg&_AsiNS^=Iyp-*z_S zo^>^?!nR577=OKH1K_jRh7h0FiA3e#N7A{>Pt$&R)J$1J1ARwE%a}{qQhGHo9fGva z4n=ntfZZ>m5u7$${QYJXInyf%kTYr6+F%6j#&z~etV@{)F1FAh*D~oUP=N07k-}!! z28;`OLtUjE{dTD)GEB_Gs^|qhQFFf?YQ>Xv{D$VrvDwA~FrFjN%h^aYd?>(CoG)0i zfrb$ty#y$B9)_|E&^sIn#5#wPHD~}TIzIq1Oe|=gct03>?$lK;BW&^=kG7Y5z$|YS z-5M+R-T124HD(zo_s{@pP8|!+1yFOO8<_Co^EhCUyjYz@Ml-hjCG#DCG80)^Gg5F_XsSig*f^{oa z=r$K+`bxdPgP`l`gIvmdyMBX`Tjjr`n7|;e8GvE$E&b&~993b}-JtAhsuJzp;lG~) zEVogz1Mdbtw11hyq7+|PVxN7Qn->fQNby0%qNI^$qeU56@DPT#5)2P8!)~!0)dN`N z*WQAScn#36${p&K1*jkwxXWnj^FO(r`lfrV%~@XpxIKGN1b4UzE5YDp5FT*7fX7;~ zur*wN4px{whgzwvT zyz+gBdyDc1u#W|Kb}&C%>l?zezc2q?O~Tg{Kn9%GHO)qAe#<9hZ$R(=ww8CQeCJ>} zh+GR?1ZOkqg5=O3wbb_2!4N!8{oZUotT!QQXD|I8pLQpRZ3{bgyyJuN5}e3`!_L0m z-U(b=51#l>LlSq+L!;mOKA`@qHyjgUXs0TMDE{6lk}zIAQE?6p0ihhOCmAANo4Pk@*W zoX89~{P@iI5VSK)40iRg@reT|xk1uqc=_Y?K1g;24*t!S{Z@EmTOVq4G@R=Zq}rpr zR-R?xxj8<&;Tnm=-}Ptv8)|9)^0qgTkbl4b&F! -0.4 && projCoordNorm.x < 0.6 && projCoordNorm.y > -0.4 && projCoordNorm.y < 0.1){ - // dist = 0.1; - // green = 1; - // blue = closeDepth; + //noise + // float noiseInX = modelCoord.x * 7.0; + // float noiseInZ = FragPos.y * 7.0 - timeS; + // float noiseInY = modelCoord.y * 7.0; + // float noise = openSimplex2_ImproveXY(vec3(noiseInX,noiseInY,noiseInZ)).x; + float noise = (getNoise(7.0,1.5 * timeS) + getNoise(10.0,1.5 * (timeS + 0.1)) + getNoise(14.0,1.5 * (timeS + 0.2)) + getNoise(20.0,3.0 * timeS)) / 4.0; + // float noise = getNoise(10.0,1.5); + // float noise = getNoise(14.0,2.0); + + float vertical = -modelCoord.z; + + float amountOfFire = volume * 50.0 + vertical * 2.0 + noise * 0.1;// + dist * 0.1; //should be a function of volume + noise + dist from center + + // if(amountOfFire < 0.1){ + // discard; // } - // if(closeDepth != 1){ - // blue = 1; - // } - // val = dist; + amountOfFire = amountOfFire * 2.0; - // red = projCoordNorm.x; - // green = projCoordNorm.y; - // blue = 0; - - // if(mod(TexCoord.x,0.01) < 0.005){ - // red = 1; - // } - // if(mod(TexCoord.y,0.01) < 0.005){ - // green = 1; - // } - - // if(dist != 0){ - // red = 1; - // green = 1; - // blue = 1; - // } - - red = dist; - green = dist; - blue = dist; + float red = amountOfFire * 2.0; + float green = amountOfFire * 0.8; + float blue = amountOfFire * 0.2; + float alpha = amountOfFire * 3.0; vec4 color = vec4( red, green, blue, - 1.0 + alpha ); // if(val < 0.3){ @@ -133,28 +119,16 @@ void main(){ fragColor = color; } -// -//custom flame function -/// -float flameTex(float x, float y){ - //flip y - float t = 1.0 - y; - //calculate vertical component - float verticalFlameValue = pow(log(t+1.0),1.4) - step(0.5,t) * (pow((2.0 * (t - 0.5)),3.0) / pow(log(2.0),1.4)); - //calculate dist along horizontal from vertical component - float dist = abs(x-0.5); - //want to fade to nothing at dist >= vertical flame value - //use exponent to get there - //clamp range with min - float v = max(2.0 * (verticalFlameValue - dist),0.0); - //apply exponent to get value - float rVal = pow(v,1.4); - return rVal; +float getNoise(float scale, float time){ + float noiseInX = modelCoord.x * scale; + float noiseInZ = FragPos.y * scale - time; + float noiseInY = modelCoord.y * scale; + float noise = openSimplex2_ImproveXY(vec3(noiseInX,noiseInY,noiseInZ)).x; + return noise; } - //////////////// K.jpg's Re-oriented 4-Point BCC Noise (OpenSimplex2) //////////////// ////////////////////// Output: vec4(dF/dx, dF/dy, dF/dz, value) ////////////////////// diff --git a/assets/Shaders/flame2/flame.vs b/assets/Shaders/flame2/flame.vs index 36deec99..1bf83e85 100644 --- a/assets/Shaders/flame2/flame.vs +++ b/assets/Shaders/flame2/flame.vs @@ -22,6 +22,7 @@ out vec3 FragPos; out vec3 Normal; out vec2 TexCoord; out vec4 projCoord; +out vec4 modelCoord; @@ -36,7 +37,7 @@ void main() { Normal = mat3(transpose(inverse(model))) * aNormal; TexCoord = aTex; projCoord = projection * view * model * FinalVertex; - + modelCoord = FinalVertex; //set final position with opengl space gl_Position = projection * view * model * FinalVertex; diff --git a/src/main/java/electrosphere/engine/LoadingThread.java b/src/main/java/electrosphere/engine/LoadingThread.java index 8be62372..eae18e11 100644 --- a/src/main/java/electrosphere/engine/LoadingThread.java +++ b/src/main/java/electrosphere/engine/LoadingThread.java @@ -678,23 +678,27 @@ public class LoadingThread extends Thread { Entity hair = ItemUtils.spawnBasicItem("hairshort1"); EntityUtils.getPosition(hair).set(new Vector3f(2,0.1f,1)); - //center flame - Entity fire = ParticleUtils.spawnStaticBillboardParticle(); - EntityUtils.getPosition(fire).set(new Vector3f(1,0.2f,1)); - EntityUtils.getScale(fire).set(0.6f); - Actor fireActor = EntityUtils.getActor(fire); - fireActor.maskShader("particleBillboard", "Shaders/flame1/flame.vs", "Shaders/flame1/flame.fs"); - Globals.assetManager.addShaderToQueue("Shaders/flame1/flame.vs", "Shaders/flame1/flame.fs"); + // //center flame + // Entity fire = ParticleUtils.spawnStaticBillboardParticle(); + // EntityUtils.getPosition(fire).set(new Vector3f(1,0.2f,1)); + // EntityUtils.getScale(fire).set(0.6f); + // Actor fireActor = EntityUtils.getActor(fire); + // fireActor.maskShader("particleBillboard", "Shaders/flame1/flame.vs", "Shaders/flame1/flame.fs"); + // Globals.assetManager.addShaderToQueue("Shaders/flame1/flame.vs", "Shaders/flame1/flame.fs"); - //campfire + // //campfire Entity campfire = EntityUtils.spawnDrawableEntity("Models/campfire1.fbx"); EntityUtils.getPosition(campfire).set(1,0,1); EntityUtils.getRotation(campfire).rotationX(-(float)Math.PI/2.0f); - Entity cube = EntityUtils.spawnDrawableEntity("Models/unitcube.fbx"); + //flame + Entity cube = EntityUtils.spawnDrawableEntity("Models/flame1.fbx"); //shader mask - EntityUtils.getActor(cube).maskShader("Cube", "Shaders/flame2/flame.vs", "Shaders/flame2/flame.fs"); + EntityUtils.getActor(cube).maskShader("Sphere", "Shaders/flame2/flame.vs", "Shaders/flame2/flame.fs"); Globals.assetManager.addShaderToQueue("Shaders/flame2/flame.vs", "Shaders/flame2/flame.fs"); + EntityUtils.getScale(cube).set(0.8f); + EntityUtils.getPosition(cube).set(1,0.08f,1); + EntityUtils.getRotation(cube).rotationX(-(float)Math.PI/2.0f); //texture mask List textureList = new LinkedList(); textureList.add(Globals.renderingEngine.getVolumeFrontfaceTexture()); @@ -702,7 +706,7 @@ public class LoadingThread extends Thread { List uniformList = new LinkedList(); uniformList.add("volumeDepthFrontface"); uniformList.add("volumeDepthBackface"); - ActorTextureMask textureMask = new ActorTextureMask("Cube",textureList,uniformList); + ActorTextureMask textureMask = new ActorTextureMask("Sphere",textureList,uniformList); EntityUtils.getActor(cube).addTextureMask(textureMask); //set draw volumetric cube.putData(EntityDataStrings.DRAW_VOLUMETRIC, true);