From e7b79bec311a85578c44ff90dc8de4d25b63dc95 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Sun, 5 Jun 2016 11:34:18 +0200 Subject: [PATCH] LOD bias cubemap shaders --- data/shaders/cubemap/reflect.frag | 9 +++++---- data/shaders/cubemap/reflect.frag.spv | Bin 2560 -> 2656 bytes data/shaders/cubemap/reflect.vert | 9 ++++++--- data/shaders/cubemap/reflect.vert.spv | Bin 2476 -> 2672 bytes 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/data/shaders/cubemap/reflect.frag b/data/shaders/cubemap/reflect.frag index 728c4587..f4f1a8fa 100644 --- a/data/shaders/cubemap/reflect.frag +++ b/data/shaders/cubemap/reflect.frag @@ -7,9 +7,10 @@ layout (binding = 1) uniform samplerCube samplerColor; layout (location = 0) in vec3 inPos; layout (location = 1) in vec3 inNormal; -layout (location = 2) in vec3 inViewVec; -layout (location = 3) in vec3 inLightVec; -layout (location = 4) in mat4 inInvModelView; +layout (location = 2) in float inLodBias; +layout (location = 3) in vec3 inViewVec; +layout (location = 4) in vec3 inLightVec; +layout (location = 5) in mat4 inInvModelView; layout (location = 0) out vec4 outFragColor; @@ -20,7 +21,7 @@ void main() cR = vec3(inInvModelView * vec4(cR, 0.0)); - vec4 color = texture(samplerColor, cR); + vec4 color = texture(samplerColor, cR, inLodBias); vec3 N = normalize(inNormal); vec3 L = normalize(inLightVec); diff --git a/data/shaders/cubemap/reflect.frag.spv b/data/shaders/cubemap/reflect.frag.spv index 479eb10dc4e743cec3cf009f68ebb5abbf7d7a9d..3232f4d1fb0f735a0486a6398c10e9f786ef23cd 100644 GIT binary patch literal 2656 zcmZ9M*-{fx5QdM0ASeoo;;tYrxZ%d;4yYg+0YSk%49OTr!-PtLUaA+~T4j|_C-2froOGtZP8z=E4s$F%QZ=NZo6wq_*8BoH&Ck=2L^{O;jz~W&rv*6sjdcP!9rS+Geq%p{ONI}7?u~K@N*;2N#ZKyO4a+F z5w8WSYvr(d*TYFp&L73ON^v3ztR_R8N#Zi@s(3Duv&o#~8BZ>XyY*U_^g_+rT3A>w2ed7$CApKzdVR7Q zls5XFQZD9n6eoS?+$TDBj?UepXT8q(kBj)QqxXu;pE=;qePd@Q(77vg&W6rrp|dOK zd|iqnu2)v<$la1!#Ct^hvrZxg2%^c!C1j9{j7Ms)J+5hox0?brXk z;$Z0H>lVisoOpC*0(MS1u?Izb_@5A`HaQMxBTtE2zY;e-;`t8gB&WskBfcL{9~kw} znK2*s^Wwyk6FWLH2eb1r^R&*)(XHQc$@=b`R~CAm5P=z)-y>npeckY5f5D8*Zvi*= zb)5d#VeW?W(+@g#3^uGS;!c?@AJ`uu>=wS`ptK*W1k^8H_wObmY1$4*}M2%F`(EIEBASES?5y<#JVT?4n6A<4WoyT@V4 z7K4o#_7U7-u1V%STFiCH7K4o#b{5=XZb~N47r%qIB!ij#wq$ypf+9L)Nl9(|bpKr(&*@_RTf86R+Z z<-Q(@sM9aP&VK#y^&U&+HwPc;@ixIM|Ey%rWcr+BW@q)DNX7@;>di~Gdf2IFwx`|( zhTnq7dU+<9v*SZAGvZ)Y`?=(?l>S08{bFals{ zmFJsG2tcLyQgnY%&k4R&bc-E*XAPET-|Q1uyY-*)$ikl*}`DGu{bziPG{)RE~?oL#LOc(tDRzq--5|v`XkBrPQ6w~hI@)U0J#w)tSEUr9gwV=YqxIFuN^SOPeFfW~;Cj%nUJW&1Kx4z>(Luy@BH!O{)UFA#acK_+w|5zbh`b{StEHV=;QA!?TR*lMa{7 zbs%ufT+KN=D6Ut6KX$t-Ja_BYeq6%5+g%5wbJvAX(+TPLz;m8?fiwR>>Dk_&5~eP` zA2!Y~Q}A|XNIGxIzSmjlb_N?~m^*kob6z^{&dywrZfCG@hS`L-Gnb?j=Tn%q%hKV@ zenmR9*?e4;PE6(lU+lzX#<6jZ?{rf_AExxen5z-V%^=!*48Frx^$`0l3BL*W5sx zcb0EbIzI50Z%Vr5!%jZ4Jq$KD{H7&V%ZzmHjt{l){^2b5Bd`C(^TO1Non9|Uvb}yB zICvH{WqbWZm>Bqd3H^8~ojlkq?=$JtVm{BM;|Fi=?1glAmT@no!;#mxV&JI5-uWx( VoW~zKzwz9EPWvm#Z$-E$`2!JUp`ri) diff --git a/data/shaders/cubemap/reflect.vert b/data/shaders/cubemap/reflect.vert index 8cb4108b..949ce6a3 100644 --- a/data/shaders/cubemap/reflect.vert +++ b/data/shaders/cubemap/reflect.vert @@ -10,13 +10,15 @@ layout (binding = 0) uniform UBO { mat4 projection; mat4 model; + float lodBias; } ubo; layout (location = 0) out vec3 outPos; layout (location = 1) out vec3 outNormal; -layout (location = 2) out vec3 outViewVec; -layout (location = 3) out vec3 outLightVec; -layout (location = 4) out mat4 outInvModelView; +layout (location = 2) out float outLodBias; +layout (location = 3) out vec3 outViewVec; +layout (location = 4) out vec3 outLightVec; +layout (location = 5) out mat4 outInvModelView; out gl_PerVertex { @@ -29,6 +31,7 @@ void main() outPos = vec3(ubo.model * vec4(inPos, 1.0)); outNormal = mat3(ubo.model) * inNormal; + outLodBias = ubo.lodBias; outInvModelView = inverse(ubo.model); diff --git a/data/shaders/cubemap/reflect.vert.spv b/data/shaders/cubemap/reflect.vert.spv index 38e13c1461a6e872bb3acd4a5afa225d0a64e76f..42f0bfc4485e27d7bd407ef3050a4be1c02b87a0 100644 GIT binary patch delta 652 zcmXw0%}N4c6usj(Q&CznE!q^3MMSx1VFXcBF4WXAEzQOPK`B8RLaRj!iyk0`?*Zxo z+O=xeE4Xgmz88o(#~B$8_nveA=X;o_$6QsU>;-aG!M%=*lECR6*Cr%0+ix=#dy}^Tqgre09cQyfH{CMR`L+)^!Y$slM}e|2|#VYEASV9Crn}d6krZ@*7Fo< Zett}&1OH#mM~(mh delta 478 zcmXv~u}T9$6nuModkSWSkU(q{6SW9xX%Iq0ut?NI6ZKAe6%`CAOu+66KR}NC0Q~?v zf50N0m9^g>_yeLd@s4A7GxOfQo!jr?OTlVyX-Y)lo0hZ0ZYZ1VR83Dr!esR6E>xrg zX}J$os&-)B-dtS|yMsGWG59z*7!BLBqs#M&7rMOn|HeAO7p@HFP=G1!@52*yG-1 zROaU1OfwO6O^kat^M-eIUcbzvHhIupR}KpC9vP6sa)#Uo6i@-!+rkP4rccfXV}J%O wWtby?UZ#)1SAYjR8~Y~!XXx`hL()s<*Cm4BfjC`w3Qmv1`~&JAMA`)Y0PMpx6951J