From 927660680d8414d443b73d38dd6a958fe95774cd Mon Sep 17 00:00:00 2001 From: saschawillems Date: Sat, 7 Jan 2017 20:45:17 +0100 Subject: [PATCH] Updated bloom example shaders --- data/shaders/bloom/colorpass.vert | 4 ++-- data/shaders/bloom/colorpass.vert.spv | Bin 1416 -> 1520 bytes data/shaders/bloom/gaussblur.frag | 9 ++++++--- data/shaders/bloom/gaussblur.frag.spv | Bin 3904 -> 3840 bytes data/shaders/bloom/gaussblur.vert | 13 ++----------- data/shaders/bloom/gaussblur.vert.spv | Bin 1304 -> 1028 bytes data/shaders/bloom/phongpass.vert | 13 +++++++------ data/shaders/bloom/phongpass.vert.spv | Bin 2472 -> 2732 bytes data/shaders/bloom/skybox.vert | 3 ++- data/shaders/bloom/skybox.vert.spv | Bin 1220 -> 1372 bytes 10 files changed, 19 insertions(+), 23 deletions(-) diff --git a/data/shaders/bloom/colorpass.vert b/data/shaders/bloom/colorpass.vert index f140cf0f..5f24326b 100644 --- a/data/shaders/bloom/colorpass.vert +++ b/data/shaders/bloom/colorpass.vert @@ -10,8 +10,8 @@ layout (location = 2) in vec3 inColor; layout (binding = 0) uniform UBO { mat4 projection; + mat4 view; mat4 model; - vec4 glowColor; } ubo; layout (location = 0) out vec3 outColor; @@ -26,5 +26,5 @@ void main() { outUV = inUV; outColor = inColor; - gl_Position = ubo.projection * ubo.model * inPos; + gl_Position = ubo.projection * ubo.view * ubo.model * inPos; } diff --git a/data/shaders/bloom/colorpass.vert.spv b/data/shaders/bloom/colorpass.vert.spv index 1eebe8c9c27d53ff74c7fe23b59ae9aae48bf3b2..9bc45ae62756e3d43094ec07bbb7c0313d8e22a7 100644 GIT binary patch delta 338 zcmeC+{=m)4%%sfDz`zKE91MCBd7~LMH)e`6>Xv1umNNhW8v`qY6p&^D;@td{)Epqq z%D~JZ1Efon@_}p?2F=ME8Sfgiz}2w=e+24avpkT}R}9U!d>#9}}! W0mOE|KmhSU>i#k?vNBiz9SH!Of*rE} delta 233 zcmeys-NDVv%%sfDz`zKE91L0$d7~LsH)e`68s_Gwq~h%Vf-`y7?oMJ0qj;WJ?xjRRy3@ z6`&L&5DNpbHI%Ok6$8m@Oy0<{+s78j0;x~~Vvy`apfw=AIuL^l2Z=iZ#WaAlCJ>7O Uu>=s?0UZY7gVg;6+G7F406Hogr2qf` diff --git a/data/shaders/bloom/gaussblur.frag b/data/shaders/bloom/gaussblur.frag index 76c45ade..1e5851d2 100644 --- a/data/shaders/bloom/gaussblur.frag +++ b/data/shaders/bloom/gaussblur.frag @@ -5,13 +5,14 @@ layout (binding = 1) uniform sampler2D samplerColor; -layout (binding = 2) uniform UBO +layout (binding = 0) uniform UBO { float blurScale; float blurStrength; - int horizontal; } ubo; +layout (constant_id = 0) const int blurdirection = 0; + layout (location = 0) in vec2 inUV; layout (location = 0) out vec4 outFragColor; @@ -29,13 +30,15 @@ void main() vec3 result = texture(samplerColor, inUV).rgb * weight[0]; // current fragment's contribution for(int i = 1; i < 5; ++i) { - if (ubo.horizontal == 1) + if (blurdirection == 1) { + // H result += texture(samplerColor, inUV + vec2(tex_offset.x * i, 0.0)).rgb * weight[i] * ubo.blurStrength; result += texture(samplerColor, inUV - vec2(tex_offset.x * i, 0.0)).rgb * weight[i] * ubo.blurStrength; } else { + // V result += texture(samplerColor, inUV + vec2(0.0, tex_offset.y * i)).rgb * weight[i] * ubo.blurStrength; result += texture(samplerColor, inUV - vec2(0.0, tex_offset.y * i)).rgb * weight[i] * ubo.blurStrength; } diff --git a/data/shaders/bloom/gaussblur.frag.spv b/data/shaders/bloom/gaussblur.frag.spv index 5fee99529e33fcaea7db3e179e37c97b1f6b1cfe..ca54c508ea5a46eae9bcb24a8e72608422648253 100644 GIT binary patch literal 3840 zcmZ9O*>hA?5XNuF0*JE6CbF0Sii#p)Kx7YFP$R2=8;+A?m;^#5&P)Up6$BJF-1iMP zRP@DHU#zlx_tF1E#VV`({bp{*YYx@bUw?g;KIiK@p>fQDu}RXvzj4VANqtO7#tT2)yn_pkm?^S<_7YE#o>IhkZWJI zbSU3*IB905?77AhIOAxczt~qz$Tug~5myVxa;1X@D}@@@k}QO);Ke%^a%#MYjG^7yAjU3 zoNv>a-pjXl4{OZsY3!a3^J+J*7S-c>!S3fUZ>^D^ilXk@R#P{r;Thl-xK?aB^VMGL zSe(Y=z|Ghk;_-Or%e4|;fp?9(>#wZw^%`7nd==&}cI`y$*W-QbTt5lydij_?1?(MS z{?*{$Hg&Fx{4`?k5&7xhpQl}38~K^Uc6{Wo0smAyFp|HP*td@SZ1CaV&#ajVI~Qy% z?r(j*o%PAb{8n(1oLoPPTepFnZ@t+O@oXwlKj*n$XfL-qjqMwU=P$zhW}ZKf*q(8J z&Gon9&B?po*q)Fxe_M*3?|ygS#lDC6cD(nIH@*|!fO$XnGq$JXT)ztMdf&_W8}P2T z#(3{-VEbblRosnV#ys=(qNAN18GAg4lXI|7*N=u`cU1 zzL;_=sKR%!R)_Qcg0VK|+N=KFc&4%1`g;?xZ{zPk#2dgJY23js_UdHJJ?!aqoM3D} zM}8{Uy!SJ2Z2v}n2H3nkY~I-Zjr=UId3)HrvHctQIbieluz6$qcP;mskG~$XpL&Vg z@HeDfk@^>bZ%jGsFEK~mZ%X-{%rU+hYfbH3$}LWL=UR(><{uY(&%Hd~KDix}KcBAi z?~-fft=IRKi+Wdpt=HJI@51cA{j9HRoFvYX-@&hreY*x*of@vz8|of!v=;0eW$Ri; zEN@-zu^w|DdFxVlIkB3n-(`AdBioDS`MsFjS!y=khq*>R`r?6<_xn7>JoS38mQNCMq1i)VYcv;{Jq(uD91WP7MLmyz zttakq0IY`cafe62@}Xf4?7s4@vnL`C>Db$Re(Sgh*?yH?&g_CpV54|p%*-js80 z^oN}D=i>`lR)d4YSq+NBqc!M*lXnmMq#yInp~0b)3k?nvyGA}V7y!$w!Rb_kBVf-r z7a9zLt8n!Tv=i*<-vKqWW zJX(V{;p9Vux4>Bq-X@j{4c-B}Mm{un7pw;6;=6bc?D_RvU4!?DtXz)2WtHBq1IsmJ hxJxNF2EUX4Wv#-0kGbCY=36mqxQI9R4?C>H{spLFD+T}n literal 3904 zcmZ9O*>hA?5XNsv2q4NLn+ReOR8$ZV0g)w;ummN_5&<_1lVq3#LMBcovZxpY6gS-W zeMelXeD%dD%Xc6BPgJb3%HMD1cD&|LUH$dfXX$gkz7uN4Eu4@fHT;{H{E$?~^kf`y zlIWM?CnxolxUIdTed$oSXX%QS%bYnSsnu0-Ql=_?ja|T|F;AX@K(*|e zB)@P#T{0nAIz0<<$UK*Z>}d_>MV90%6FHC{y&FQ-$0?WKQ~Yq&K2^V zE0!-C%yl15#> zUn~(avo=|R-_yE-Th~{xd{_T)siQmBp9j}-6X*Cw6~0``4;0G1grjS`V{ft4ccM5@ z&h=OKT?#kcRjkyz5?sm;4fj`SsjIwI-@u-|(3Kim@O>3rUwOmgaCvJfR~W6cjXPR@ z6XuAx5o}%C*u@$h3#)FFGcV_x#XRekn~1fgZy@Ks)}1}a*mEMU&I>Sy^VK}!8O(BC zV@3Jun%UrbxCU$%^X&_b+fWdwPolZ^XOadg9Huf$fo*RB;#HdE4>U6!ToufjQzWAE<_v*!)S% zb6x*6-kLq%x{U2-xmBFz-qz%h`wPYzoNHhDyW^h5>gexI#J+*weZ(8VEot1sF81X# z%suSiW==4+cOyRoY~Fq~Z)~qdem2;={c7IWUXA=*uzCB{ys^C+`T1b;_N#egdv!hc zX~JKR**iVNjrbc__0**?}+HCERuzk^>G`*R((HZ@$OH`G1e zXg%0B%GT9PEN@-zu>o@*dFxVlIkB3n-z9pd6>kse|DeXr_$`>j{8qeqy?3y$+c5X| zk+bakyHn2Z;cw;`Z^GQmwPI`Ej&H|&Q~M+KyC>x@ru*GXEN6{>QtwW@!@bSzz#hlk zTO4n_3!HuH-Ne3iyxV*(`KV2<(wORCFlGmd;!a9&`X@vppSU028ZC}-NXJm zjCtqKpg-k8gCoSQkq-?9!18KvI@O>E_Iz`p!64Wg&4mV!g5@EN`qPr?9LhPp4dHa+-JqlMhYKfUA1^_g$QY^L%rm$unSU zG#8pY3zpX$V>LMkm(}DsVl|PEJ3J4TkGFjR?7s4$$&28zn!E%jAM4J8T`TY2eg`jO zSxsI^Ip>BZa?ba=cooZP@EUPegV%}2YVZb}d}#0{IIF>1#B!m*+hEtohX(I})xcbQ z7w>{S-&|<$9@rYqg$D0~_SEp@CfXyYTxk-h%f#(Z~CK3HClC{C?Q;Utx07G50ek=lWK> z>o?=0o^Qa`vy1ih_=}jFBe-wDay1$5yObM;-^u^Z*5JR#TgeD{x% zg8z~)1&K5&5Fs_s40mXGia)AuhoCmSJSMuy1ubS z#;_^7L~=&-9jjM3jXE*$fbddyE0pysX}?i&uTE<9aOdD>nA)?b8)Y_3kD`|ChRL75 z_ApDI=IE#sx5JYtZl6bO8?Jv@JBtpFO+`+R>%pm+oM*qA+AHdt`t6gjX}g)d*o#~C zBG=#Kdc$_}BT;2n4LVETG?KKFb&^;Q8B>A7(qRD)f#o?a_PFMP%n<5PSyt{Cm{ zHxuIM4f*mGlL9{I-_;#&f`%vOvjW<+&*y&zjd>Ivfnw$Xu6*8tVsZmvUm7!96wq0P m_CYaPkI+y>X0{}d%NcXUcSjz~by?u8cpv(OlmA~1Tf#l@0!YFD literal 1304 zcmY+C+fEZv6oz+?BA|$zQE^J~gb5)Ajfp{pn{v@a)WGdzpgU!>%rrC8#7kd6AIYck z#)SXdGdrofSzYV@_d4%s)VsHgsp&Ukc1?K}Ok z#Am_Wc6L+$*HN4RVCE$EB!Q%%UtRi-0-Cz*^~0kt$6;>AQ5F?8%&($>&BFBJo4qXZ z|9x~7C&O?QCBsQHwBf<4{c&{p-L#Zxx+a*q>7+P2mj=^AoH!`lR^P@9N8zc>&TUrM zAA({_9-F%~kBc}>s9@3$>xCR7fg;5MbIw?p3_r4ICgm=f8R&T;j+F=)8$Wx9NtHd?B?-t)R>L~ z6ZcW#nO4lU*9?YKL$ahDYe0(EYiehhY#4bpa2aeoezE!vt;YH~{Lavt;zAu}z zF1#d7t}=J|4sZzhSEQMPeUTr`zWi)!m5sm8zbTt~^v>Ss-Ou{Cx`QVlIH)+{@!ggf z^Ya7spUWba9^dGdsY|aM_`hO!`$MtpZ(hRg-s_efgOB7vpX(BOXMX(Yc|!v4eICfh zhZ(%jL)q}Zm4}!|65`0{;ASi$qgteQw#tA diff --git a/data/shaders/bloom/phongpass.vert b/data/shaders/bloom/phongpass.vert index c517e304..9976f6e7 100644 --- a/data/shaders/bloom/phongpass.vert +++ b/data/shaders/bloom/phongpass.vert @@ -11,7 +11,8 @@ layout (location = 3) in vec3 inNormal; layout (binding = 0) uniform UBO { mat4 projection; - mat4 modelview; + mat4 view; + mat4 model; } ubo; layout (location = 0) out vec3 outNormal; @@ -30,11 +31,11 @@ void main() outNormal = inNormal; outColor = inColor; outUV = inUV; - gl_Position = ubo.projection * ubo.modelview * inPos; + gl_Position = ubo.projection * ubo.view * ubo.model * inPos; vec3 lightPos = vec3(-5.0, -5.0, 0.0); - vec4 pos = ubo.modelview * inPos; - outNormal = mat3(ubo.modelview) * inNormal; - outLightVec = lightPos - pos.xyz; - outViewVec = -pos.xyz; + vec4 pos = ubo.view * ubo.model * inPos; + outNormal = mat3(ubo.view * ubo.model) * inNormal; + outLightVec = lightPos - pos.xyz; + outViewVec = -pos.xyz; } diff --git a/data/shaders/bloom/phongpass.vert.spv b/data/shaders/bloom/phongpass.vert.spv index 1a7d728d1199e5bc8770bcf16d240764e335387b..930645046308c2363c1ba4a06cbe912323e64067 100644 GIT binary patch literal 2732 zcmZ9N?Q&C96oxlVQ$Q3&(j8~vn z;H5ZTm4BS^dCoaYkKLWcUhli#wf5S3?Hp=T^9NHpz~7%n=CJHzd)IA1Nj0N%SlBw{+h^WK1M;XL~V=6n*Jr_pN?-m; ziS1*oKY}0Uc3tfK%Z1*)s*iR1>bm=R$L?n>?stq?t-N}%eUJT);~N|6V&6gJJBe>T z&wqv}`!8qi)6C|PGq>1pjNA$EGt9G?xz3mPS$xN7@N>-ODsmTZMJ~)eylc;558Xp- z5955ZrEg5^F^^x}^IWMh-}!RQea$Df=jvU5liB*?jBnxFE6x1g#oJg)zyA?w$}Jb|P0jKfm|pQ1cgzzYDe2 z>^H{!#O{5m#8<)ck7B;7Yef70#Iff8D84Dzd~0IYd?P0?--m0yBk>A5&oa+p_QoEo zwQd6z<3Y>h@`aZsK@=@zm{A#V& z!0P0!#U9GVKG*U0*Rl*JADWd?Q>|q+U;nR`8{lP3{tj>0H+~C~j}d$WBKQON!LL>L zsS5vL$*XmQ{v&+z$XD}xT;Z#Enk6sih&-R*n@7Hy=XQm6ZKM2cuH$<)&tc8MZ{S<2 zby-93cktcYeatEEZ}%={F5}eL!-LHCFn?FRH}R*KT6ueTxa30L0{h0|4Sa@gpV#>U z82>pYr#U>M=lP|~{{_A|)S2IJhFs+P3cs4~Yp|T=hrxXz5QPUw5JXW#F5WPJcMuT)QREiXphgHF`I`!`6;?wwl?3&lR`~?_1U`!8 zQ~Ad#&$rp8RwmUoeNOkBndzQQTkGg4=UVjZaPM4m^te`G=ek^bIA^lk*@=2%e`0!O zl8kQG7ABH&PCrIMc3AW)_?@yY*;!e)?1Jo~?2_z`?2RlZYtye)^KS_yv?`M=tZbzV zb+1~i6&qfmeo)-^YK36;y|>q>|DU6fUnv#J#Y*X@Sn>+fQ7dc1!u&_#s>+}i^h0;bl9KoKLXQ53%WDTHmys@Y z9Fj4>)DX;T08>9OJq6SIIHq=B&QF}$8D7(_)Q*8JBO_%v^wyMbHA#jzd5lMe8E9CJ z9<@6ka?N$@8D9rx-LlNq!Pz?YM$7I(eMe*r&JG?9Q4{m7xeJ3hH3jn)!PFB>t$L-3 z?ywLTzh7Rv=9Fwe`J4kxJSE%_`S9}*rXLnRE#J;h984YIET8_6Z*lrVoc*X3`*9Zb z>(NXuJo#YyXZ!WaXRXD-^waeE<)g>_hqQ`5!l6B=867yZ!TdMC^$B0roRXn67U3)M z8H2)CHKWzkZuS=rL!UZx5Bi5bn10#aQjt%->5s~1Ki1!leD+{HnEqOPOg?9|``njL zUoiBz_XC-8KYtmX46$?LijwzGMh-@deWx@NLzjC#jWBze&b)l*zAkYt-URQAxZzxc zXZ6~-FEwJ2^G6Kd0J)r*{{{8~vp4?<;00mkGcw-LqE_?Pz!u|QpZ7zIcLgTKd+3w# z7Krg?z$@B0rFmFJFX$)v^k75=Z#g&QlQSx_oSX9De@KTlw`8n?Cx@EdmC>i~$^qY# zkq3`9eH)kY*4Ur(fyu+C9`wb|F)jb(IcCJc+n%%X<9j|9CI=o(Y6@qXbMjAWJ`o4M zskgz~c_xFiVf=y!<6Gn#zZm1`x$#R8PcFmwW%=m9$8}a>d|W3T@o)^&S(T3td|c;w zj3<_h-uw&s+>Lv1X5(MV=d8;z&R~2-ep<#pXu|VNtjW+~9Xa%Z_xei4d!_&2*D`Y9 z=|yM6S$9%BNo&`m$KRE`!4u+>!fyi}W|-qd^|}e2Z|Vw<$lawB3Xr0UxF}%Kvzr(qSUY<8w;W-jlx