From f2e78fbf76df0600e80428a6acf1ee7ec6a8a6bd Mon Sep 17 00:00:00 2001 From: connellpaxton Date: Sun, 18 Feb 2024 19:46:47 -0500 Subject: [PATCH] Added color unpacking, still have really weird issues to iron out --- Renderer/Pipeline.cpp | 2 +- Scene/BSP.cpp | 5 ----- Scene/BSP.hpp | 2 +- assets/shaders/bsp.frag | 3 ++- assets/shaders/bsp.frag.spv | Bin 1524 -> 1424 bytes assets/shaders/bsp.vert | 13 +++++++++++++ assets/shaders/bsp.vert.spv | Bin 2356 -> 3500 bytes 7 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Renderer/Pipeline.cpp b/Renderer/Pipeline.cpp index c3c4e20..8b9bb42 100644 --- a/Renderer/Pipeline.cpp +++ b/Renderer/Pipeline.cpp @@ -92,7 +92,7 @@ GraphicsPipeline::GraphicsPipeline(vk::Device dev, const std::vector& sh const auto raster_info = vk::PipelineRasterizationStateCreateInfo { .depthClampEnable = vk::False, - .polygonMode = vk::PolygonMode::eLine, + .polygonMode = vk::PolygonMode::eFill, .cullMode = vk::CullModeFlagBits::eBack, .frontFace = vk::FrontFace::eCounterClockwise, .depthBiasEnable = vk::False, diff --git a/Scene/BSP.cpp b/Scene/BSP.cpp index 3be6f7d..0c04ae8 100644 --- a/Scene/BSP.cpp +++ b/Scene/BSP.cpp @@ -40,21 +40,16 @@ void BSP::load_indices(const glm::vec3& cam_pos) { visible_leafs.push_back(leaf); } - Log::debug("%zu visible leafs.\n", visible_leafs.size()); - for (const auto& leaf : visible_leafs) { -// Log::debug("Faces: %zu vs %zu\n", leaf.first_leaf_face_idx + leaf.n_leaf_faces, faces.size()); for (size_t i = 0; i < leaf.n_leaf_faces; i++) { auto idx = leaf_faces[leaf.first_leaf_face_idx + i].face_idx; if (present_faces.contains(idx)) continue; present_faces.insert(idx); -// Log::debug("Face idx: %zu (v.s. %zu)\n", idx, faces.size()); visible_faces.push_back(faces[idx]); } } - Log::debug("%zu visible faces.\n", visible_leafs.size()); for (auto& face : visible_faces) { switch (face.type) { diff --git a/Scene/BSP.hpp b/Scene/BSP.hpp index 8cffd8d..2541b67 100644 --- a/Scene/BSP.hpp +++ b/Scene/BSP.hpp @@ -147,7 +147,7 @@ namespace Q3BSP { }, { .location = 4, .binding = binding, - .format = vk::Format::eR8G8B8A8Uint, + .format = vk::Format::eR32Uint, .offset = offsetof(Vertex, color), } }; diff --git a/assets/shaders/bsp.frag b/assets/shaders/bsp.frag index 7d2d100..0d2766b 100644 --- a/assets/shaders/bsp.frag +++ b/assets/shaders/bsp.frag @@ -2,6 +2,7 @@ layout (location = 0) in vec3 norm; layout (location = 1) in vec2 texCoord; +layout (location = 2) in vec4 color; layout (location = 0) out vec4 FragColor; layout (set = 0, binding = 0) uniform Matrices { @@ -19,5 +20,5 @@ layout (set = 0, binding = 0) uniform Matrices { layout (set = 0, binding = 1) uniform sampler2D tex; void main() { - FragColor = vec4((abs(norm)*0.5+vec3(0.5)).r); + FragColor = color; } \ No newline at end of file diff --git a/assets/shaders/bsp.frag.spv b/assets/shaders/bsp.frag.spv index a3c305ca10d0e0fc76d88f8fcd169c074f7b4fa4..da67138888d136aa8a82449ee77056dda29026b9 100644 GIT binary patch literal 1424 zcmZQ(Qf6mhU}WHC;AN0wfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!NF+E+~jEE~(5(jnB! zRt8oEkQ>~J64RaYbMlKA7#KimxEUB2l9Biz_vPgm<$~M{(gSj9Nos|2etuC3OiY}C zfx$Piq$o2vwHPGE#=yz|5(BZzGE>VzG)xQ>W(7t0S;%4_zm{a?rXq`hLN7TnH@+ah zm;t626ow$Nl*}Ty7%Kw z@C5k*Ss%zuWPKn$NS_0eK9CqfAH*z>TS4j?kko;~93(aYNemR`Ah88VVj%lKVjGae zK>h)V2{3~E1hE5TCrC^JNemR$ATb$61_pNqX0YEuZUKc0D7=-ReunWCk@%oEK$Zvb zLGmE~2{SN(^Nb=m_b`CjVhqgSa8_VoU=U|uVF0-YL$tKz;!Qi8hok3Uz}F0}BHvU4i@p5|d-# z28S)k3=js{3vw3-gVcfS1c`w#$So2KkT3(~Taa5od{BIV+$zby$sh%_2jn)8{V)vU zOEWMtNHZ{i)q%{Dfhqurfy@K(LGc9=He+A~#}CL~AU-JkelRdGfYOyMG@f{%<)a+~ RGdRD2_*wB3=CkLo0ypglHg=uVBle3V31^BU=Uzn2FtNCFfcGPFf%YQFfg291gYm@aQBIK z_xE@Aag9$dD2OjEsmw`@&&kY7jZeueN=+`wEK3Ec<3LiEnU|bXnu4r=m4O9pKFn@b z237`;{cc5x>CX8%`9%y23?MZi_vGal<$~M?QUh{ZNos|2etuC3OiY%6fx$Piq$o2v zwHPGE#=yz|5(BZzGE>VzG)xQ>J_SYjS;%4_zm;U>rXq`hLMk~iH@+ahm;t626kZ^) zl*}Ty7%KwxeGXu=A>j@Z zL+FEufx;N1t^r9MD2zd36OhC}VGI&mfFuU84FNG3;> 24) & 0xFF) * scale; + float b = float((packedABGR >> 16) & 0xFF) * scale; + float g = float((packedABGR >> 8) & 0xFF) * scale; + float r = float(packedABGR & 0xFF) * scale; + return vec4(r,g,b,a); +} + + void main() { mat4 zup_to_yup = mat4( 1.0, 0.0, 0.0, 0.0, @@ -30,4 +42,5 @@ void main() { gl_Position = proj * view * zup_to_yup * vec4(aPos, 1.0); texCoord = aTexCoord; norm = aNorm; + color = unpackABGR(aColor); } \ No newline at end of file diff --git a/assets/shaders/bsp.vert.spv b/assets/shaders/bsp.vert.spv index fb81d919408bd5e90d193af2be838e3dfe3f4bae..ff4549c1cb9628385ae0fceb00078215a7b50e49 100644 GIT binary patch literal 3500 zcmZQ(Qf6mhU}WHC;AJRcfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!Nv(qz>vzoz>vYfz>vwnz>p16!@$5$$iTqB%)rdR z#K6FChLM4Rg@KE~-6!7N-{0NGH9onZAilVyGAA`YCo?ZKJ|(j#HMu0SEES}V14&(G zUUE)p3bF!L1{MZncd#-CHe7{r3D~;Yz!_SwK?$tsYPL_MJ1^fpzvX1fQW9?%1x5K;$YLP-OEPnzZi46q*_)i0 z8()xL%mC91iU*KbN@fvUjFo|bA+4yixTG|f0Tc!xd)XKm7(n(G|q1Dhn<0e zp(M4qI6f^gxg;NC20K`s116rDlAao03=SQTAN@d@!EwR@PJ4*~`C$Kn{0vHmC8-t8 z`T0dDAY~vikOvY&5Q3nz14^fP`9--9H7wvXo9G7-0Lg>WZ*qQ4J}94n_#lOe&JY0* zAC&kD5{nW+;-It#O6NJ5=@})ti3KprJs4QQaSXBplmATbaP69a`eNDLIl zFfkAtBnAp&cLrv#c_4M}3@i*@3=9mQFcn~6VDMmI0f!mL4p7*G^n=12#0RBe5REJb z3Ug$AAa@|^1Mxxn9KdEn;vOW1&<7C%xdo)I0ZARm%^{$dTR`CgN*_uf4>N$|SQtQjMI=6` zypluWgVGF$5Aq*KKPbH*^Fe6^#0O~s$%D!_5Fg}E5FeCQKzx|}pfmyEgZvDV2c-=V zA0#i#zyvM}6~Uz<1DGw!zygj(1&{>{3=9ekEDRt&gD@yO#2Ah{Ei!-n=a56A} z`5^NZ!6hmKSPY~dq!(05gV-QF+6*jUwV=3eY-q3s*(D6N15^_*Fo5Jid=Ul)1_=fT zA7Up1!+$6rBrnUrzyLA>rd}251_=fh1`7s={UG;%?6+iK0J|R~4pI+thc(!54fZg; z4Vcfspu@lpcDpSD0|Q76NF0V?a&`<13@|a68kn3tR1PK%QU{X*rCksohCymTav*m( zGB7ZJ>;#z&G6SR*j}-zAbUZ18)Oei45Z#0sveYv4T{SiG$qc%K%AdpgaO{8;B3e6Ckr-Zu5uw8Kgb{svcxEh#vu!1DOxf z58{LJ5GcQZL3&~GAU-J1fy6-ap!yc1 z7G@ua56XieF_3v6`$2gSq#ncv*$>KtAbF7f9H@IiVG5E5@j-bKrXFM;C{Kd;W(=(0 zJP1m=py&aa@q>Yh0aP}D^n%hdsICX)ClDV*gUWsoZO6dO0FncxB}WEU22i*KGBAM4 z8&G)KLi0ut0|Ns{9Hu51ss@xEU}{1b7#Kj}lNeaR`6-lvfdQlsBo0#(#=ro!52hxZ zfq?;}4kQjz0}8JwXnQP>ffbzZqZt?&Kw==j!Ng*qVj%y+#A2ahpfnKx&69Bq3=AOs zAoU=5Q2v?7zzWW<@eB+MAp1dTK>h;70jT{1O7kFpfx-sF2dM+O4HVaD&^97S4wN21 ze2^T--JpgCC{96gptuI{L2{rt%!jrmL2{t52k|YT?kHej0Jr-<;vjiYIsl3NWng5m zU|?hb#V;sbg4%|lFyLZfU@&K32A5BudKDDcyx_8j1>Cv?wF^OU3yNz{ISOhQBJ)9Q zLu5Xv4npRG+K3=N$SokVKxHP(A41@EHUq;U22hKEfkBjkfdM22DtnJZ#l#sP;$omS zE41temCGP;kU5|{Ey=(DZojrd<5&t>c7w!0_JZ6D5(B9Rg`W(Xy`Z`XBnB$eVfM;1 zFff3`k?jT5Hz0A4IUsvMbtuSBFnd9DEJzJV9AqyjY(Qcl^&opy(Ck%XU|;}=f$9#J zz3L1M3?Ol2do>ss7(n76b3pcLqWM>gfq?;}1|$x$7Ze8|F_3zYy*f~PVRq;;fa)0r z24p+*7#J8p;vhXBJM_`)0Cj#qYCz&3J3#RY5`(EX1lNtAIs{U`8Zj_1fZPF-H)db} l_ak6@69xuw9|M-ROc@v$KxTmSfz*QJ|1mHzfW$%R765)!5xM{X literal 2356 zcmZQ(Qf6mhU}WHC;AOC5fB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!NCH9jXZFEu_TvnVyWB(p3Pq>ckgU1nZ#PH76V z0#*hV24wqL8CV&(7#J9;N(VF8Ze@dt zgV-Rs{Nl`#%=|nCHU@UEdQdok#WV9tf-|d9LF!;~Ab+Ii#5?C?7Pw>=z#pF0Mg6= z3Ud~4I!Fx22m24?XHc3bNv&|s&o4>=DFcat(nw+mLJ$<6pfr=0Uz7_`!van}iGC0P zP+Wr2Qch-iMoDgB0n9KD23ByKf%I^L2nGfQm>4MhKw=;oCI$*WkQgY;U}7LPNDLHa z?hMRe^FZp{8CV!(7#J8pVI%-HmjxUKAZtKj3DOS=Ll9pXM1a*m;snG6g(0#&kUNm| zf%qVO4oLbyVhDW@vp{YEscS$|2XZq=Yyy%P$o(L(1xR8b`#@qFkih@Ui39@+1IRBRF%VyYfrWvSfdQ-rB(BZC0@e#k0}Koe_AoxAlw)AfVPFTV zmqBVlX%|%2f!u1xzznYUKxxI1ft3N|Z&02Eg$*b?Y@umig@J(qBo0%f3XNM( ze8SYIF)%QI#3wPZg7b?y0|Ns{A4nXgMuUL?Y#&UGCIbTlNF7KVqz2?)9cWu15L^Q@ zFz7OX@({=;3=A+aJ*XJSzc4XG-P040ND>x z1M(Lr4voQSlYs%`FHqQk_#ky4w}Ily0@^+S$${b%#0SZN+-(DGvw-A4aRuW4Wng5m IU|?hb007&moB#j-