From eb7c0e749e022625c858c8b68cced29db37032a8 Mon Sep 17 00:00:00 2001 From: maverickdgg Date: Mon, 27 Feb 2023 09:59:58 +0800 Subject: [PATCH] Added a slider_textured fs --- Assets/Materials/UIMat_Slider_Textured.shmat | 9 +++ .../UIMat_Slider_Textured.shmat.shmeta | 3 + Assets/Shaders/UI_Slider_FS.glsl | 10 +-- Assets/Shaders/UI_Slider_FS.shshaderb | Bin 2777 -> 2777 bytes Assets/Shaders/UI_Slider_Textured_FS.glsl | 62 ++++++++++++++++++ .../Shaders/UI_Slider_Textured_FS.shshaderb | Bin 0 -> 2717 bytes .../UI_Slider_Textured_FS.shshaderb.shmeta | 3 + 7 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 Assets/Materials/UIMat_Slider_Textured.shmat create mode 100644 Assets/Materials/UIMat_Slider_Textured.shmat.shmeta create mode 100644 Assets/Shaders/UI_Slider_Textured_FS.glsl create mode 100644 Assets/Shaders/UI_Slider_Textured_FS.shshaderb create mode 100644 Assets/Shaders/UI_Slider_Textured_FS.shshaderb.shmeta diff --git a/Assets/Materials/UIMat_Slider_Textured.shmat b/Assets/Materials/UIMat_Slider_Textured.shmat new file mode 100644 index 00000000..cb09a99e --- /dev/null +++ b/Assets/Materials/UIMat_Slider_Textured.shmat @@ -0,0 +1,9 @@ +- VertexShader: 46580970 + FragmentShader: 43211183 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 51995224 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} + data.sliderThreshold: 1 \ No newline at end of file diff --git a/Assets/Materials/UIMat_Slider_Textured.shmat.shmeta b/Assets/Materials/UIMat_Slider_Textured.shmat.shmeta new file mode 100644 index 00000000..99aec372 --- /dev/null +++ b/Assets/Materials/UIMat_Slider_Textured.shmat.shmeta @@ -0,0 +1,3 @@ +Name: UIMat_Slider_Textured +ID: 127128823 +Type: 7 diff --git a/Assets/Shaders/UI_Slider_FS.glsl b/Assets/Shaders/UI_Slider_FS.glsl index 48e301cc..b39f18dd 100644 --- a/Assets/Shaders/UI_Slider_FS.glsl +++ b/Assets/Shaders/UI_Slider_FS.glsl @@ -42,16 +42,16 @@ layout(location = 1) out uint outEntityID; void main() { //fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); - if (fragColor.a < 0.01f) - { - discard; - } + if (In.uv.x > MatProp.data[In2.materialIndex].sliderThreshold) fragColor = MatProp.data[In2.materialIndex].sliderBarColor; else fragColor = (1.0f - In.uv.x) * MatProp.data[In2.materialIndex].sliderStartColor + In.uv.x * MatProp.data[In2.materialIndex].sliderEndColor; //fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); - + if (fragColor.a < 0.01f) + { + discard; + } fragColor.a = MatProp.data[In2.materialIndex].alpha; diff --git a/Assets/Shaders/UI_Slider_FS.shshaderb b/Assets/Shaders/UI_Slider_FS.shshaderb index 3d340d37212cb5d32c747c27e318cf687d5bb7a6..0dcfb62dfc82208709fa737c851fc7f22b01a68a 100644 GIT binary patch literal 2777 zcmZvd+j1L45QZm_=f~V1jW%AV)biiYNse+dw!}Z7tSXT3D~dYUPUW zpt$FGC@%8^x#LkF6jbqlt7#)#8CTbI|J~d3cTbNz{ba%wt8{qoh;xVBgqw8V3?X;I z9Twu;F*jE1_2x!%zMr?|7q4C+WXhF_NMeq=qpqwS*$Lwm$1%xy$?KAJ$+Y6}>mX?* zWq0neJ}&FqdNZi4F9rRm7iM7|1^rIgin5^l?RU{u-v57$TyfeCk}z!#!gdraE?nt_ zTi+|sIC)kcZU$*L9i;JgH`@t*7=%f@9Y>k`6Zq?^tM%qeu+{4Y{d_Npf+S9(pcQ92 zDc+4ZtH|Ty;&dw+v_=CeiWsf4qFRos7S@=n?CZNxmaldD!l;n$Iycz;FNXS4Q4ABO zuS!L~8tPm{e<$U85aw%Hx3?VTp>iB4Fu^X59_529YNV~`5jJNMPyR6Jb;1H0#&bqL ziPg)^P8Rh$-K3@X@gknv8~Qf#Fw5_ClWrzx|14@8`d8AH_ZpANzHceayssjTr-h4m zl*M5Jd9@&pbboNf$7)fK7JWRc-Pb9*2qzlSlDQ0my3)@yK7_-?OIg=!!FY7=IHi3|a#uor>nky=x@rb175cEp zm!!ji@9Fuhghed{Z3^lSO`fH@wZ=fSs28oc5}>FME5^+xV#!KMOzh z@xlTx7xzIfc+B{>LQZT19wrx65BI?=%t)v2*yK5*ojSnaiB0dpjMod&S=7o*a}Iol z9Lw%S>2SeE4s7lVj598Ho$oB?OVT+5f7R>oJ|&bH0e?+9cS0TH#pbTTEYD@>%pUP? zX(uP~_{mrN6L3G?vG{AkM!&x;n|sAiJ@>qye9K-ZkL9aNpZI<5CjL*opYPy@&FqmM z|AzKM68z^h37=~x7ue`B`@FvVLJs1L&qL|>FDT!a+VO*t|10e*aL&hO)>+ro6?#E! zEI9osgkIIeg7<_P<#&ft8`;!Nw!yV9T4n+4(cepW5?>OBcF25vkTr61&ZRT#MOd|$fp z#K&A3&+F3h|DrSC{ec9Gvy9(|(x1iehH!kw<)-w5Ty6;iH!gRi8y9@M3FC5CI)39) zlMco?KY4yj(&32DdJ8t%TY3y9-qebO{`1ysMn3ZRuZm$t?n}UUZ_LQY+F8s9zJ>&h zdqe+QuLK>;YHvzESo;HE;5N6PNVnSYO-hW@s&xFudri9WrcP{P@blI;C7fqDrlf!7 OapKp#{g1d_m;4Kr%j)p} literal 2777 zcmZvcZ*x;s5XMhPQ%VphA|L`awJIuFu@*%6*OtZ*4Ysyb@z2biYjc}iy}gMyHy!#; z$M=37$CrKr-}zBQM`wI~H)k<+I5V5G`|O_G=j_>=>EEiZSmi@=hn*|AsypVs8bR)) zJ0!%pqi(X;8?DXO{2*`7FJ8Su$Z=OLB8fTSj<^Z!$Zi;?IF3l3m0Xf+NTwB!UxlQV zmEE~tb$CLNjaIO{u@VfTewc-M6b!myJIaFI*WX0j`QZOCa>Z#UNW!!;3_DS_IN-=5##r)xJq%?ohWtqMgW%+tQ+CW{e-0Y``pcE#DLyX_q29=aGFui z_&%u#&Q7kg+Dj6AaKYxy!QgUEd(GR_!hUYdhU<9=i+mTfbC$X@{(IvLHbPyKi@H%w zHZwINeO5a*dFc13uOnXAa~?AuFUn?dH@*w%z-QFI3HP$}k^~=j!@lG(YP{lg&RNdO z(y5F8b+5zQ{EO0=P5f8ApZnk^?p=v<-`}zLJF<8;vm4TF4nFoi_`(mH*|T@vln#IV z=k#TMs+}5O5&lb zzN}wn@R)?TWj1dq5^j7`;6E#dIXvkx=JO9_Ii;QTm*Vj~Ede7p`rl%U4z{d}%+o~) zGs)aBYgUVI6d!ze%U315FLOZ*@A{eqd|6Y+d%huIj)=j>dt1JF>G*%~+~1T=4RE-> zrJV(LeEc_Em%ta@cq~Xi$m4Bc;P7B>u1SmsKIRG@%+fm&{I^w;{$l^B8q}v2HLW-A zNq|hz;KuWo^n*Na3j;TvOVW)eKIYkYE=ymM{G=N2UXg%N%lO@u z{v>{@!toiGy7Yrw-WLXLT<%FXF8CS}9KKY zNk7QxzA$i`r;nr?Cw$DP&C{B6{N&?%S(oshd@t0;CIPx# diff --git a/Assets/Shaders/UI_Slider_Textured_FS.glsl b/Assets/Shaders/UI_Slider_Textured_FS.glsl new file mode 100644 index 00000000..9f7945ce --- /dev/null +++ b/Assets/Shaders/UI_Slider_Textured_FS.glsl @@ -0,0 +1,62 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_420pack : enable +#extension GL_EXT_nonuniform_qualifier : require + +struct MatPropData +{ + int textureIndex; + float alpha; + float sliderThreshold; + vec4 sliderStartColor; + vec4 sliderEndColor; + vec4 sliderBarColor; +}; + +layout(location = 0) in struct +{ + vec4 vertPos; // location 0 + vec2 uv; // location = 1 + vec4 normal; // location = 2 + +} In; + +// material stuff +layout(location = 3) flat in struct +{ + int materialIndex; + uint eid; + uint lightLayerIndex; + +} In2; + +layout (set = 0, binding = 1) uniform sampler2D textures[]; // for textures (global) +layout (std430, set = 2, binding = 0) buffer MaterialProperties // For materials +{ + MatPropData data[]; +} MatProp; + +layout(location = 0) out vec4 fragColor; +layout(location = 1) out uint outEntityID; + +void main() +{ + //fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); + + if (In.uv.x > MatProp.data[In2.materialIndex].sliderThreshold) + fragColor = MatProp.data[In2.materialIndex].sliderBarColor; + else + //fragColor = (1.0f - In.uv.x) * MatProp.data[In2.materialIndex].sliderStartColor + In.uv.x * MatProp.data[In2.materialIndex].sliderEndColor; + fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); + + + if (fragColor.a < 0.01f) + { + discard; + } + + fragColor.a = MatProp.data[In2.materialIndex].alpha; + + // fragColor.a = 1.0f; + outEntityID = In2.eid; +} \ No newline at end of file diff --git a/Assets/Shaders/UI_Slider_Textured_FS.shshaderb b/Assets/Shaders/UI_Slider_Textured_FS.shshaderb new file mode 100644 index 0000000000000000000000000000000000000000..db7f7c704737aea741a2ec4077088ba0b2eba44e GIT binary patch literal 2717 zcmZ9M>2e!I5XUExlsF1;9C8stj2v?ZOfXIe03y8qqN_iEw0x+zZO`0`0(j+weSV?HY(bIu$WVv75R z3+4TzyMNJLH*==9{dv&(awizraX*Vjd71@LGO$mhWY3&7CyMv&Zm+vC&Ic=Nw{GHk z-c*VR_&#e+nW}DRKa3I-r$tvquZcbtEyy0d5)@ZaR>u6Q$5p*;cZ24WjbLm?VHV~# z7!SjN&4To+uWdgc|KCO`r4__svNs9$Y_PU^a}@T!k)JvIP)3p_lO)XO{dh8%HK@sAw$7SrIi*@S zCroY1AJ{D4PRGKikf|6mIrz_p`V*xX#zwCyMZY@gTus08(mf9I?JON_hIuF-Cksrl z$?em8lGzUPK_({l_z&aJFf6dro*3geQZILgnH>+)cp&?^!k+1sx?Ub;`NK3$GeOf> z)L80U$-rrS9<`}%Bg~wxrW`K{SKc;@!kFaMg2-xq0M8iY1x1F zHJ#+GB#-jL&ZcQACi}dIfzBhnqvxFE@|t4g1xEk89l3$c&0zE&Y+(lD4On9aqt{@3 zbmXB=Ry7;5F2cX>D>j_AY6hzmeA(mc;>m&c^n6Lg!Iu8a7kstgsnNgX+x0c`mR{kD z<7IqNGrm61{k;-|zc<6*pYqk>zW|@SIj^k9Yf1LRguf(?`Wm9kipl>4GQB~jhsfA2 zs(!vLY{0o2vf=L#|LE>InfZZTl>ChDhLdkN`HYj%(+~6<^vGum3A|d&3}582=)Na> zB17ci>6+?cX6(zNcxHo)pG&%_1B^V8nGcxH>pAfpYGv<OA|3&tsz5 zBJMNP;ic({}mDX2a3tgApfZt#3vRpeXLvJ zkH)$!44hcZ`i{uQLO0u=_np4y`o(_`82;G{{)gBdaPnhE_&);2hF$qk