From 590da3a1a0c5ad7e6c2da211e4dc07b94f5a4878 Mon Sep 17 00:00:00 2001 From: Sebastian Gaida <gaida@ca-digit.com> Date: Tue, 8 Jun 2021 17:37:30 +0200 Subject: [PATCH] [#69] Fixed triangle, but not buffers --- projects/particle_simulation/shaders/frag.spv | Bin 612 -> 808 bytes .../particle_simulation/shaders/shader.frag | 11 ++++++++-- .../particle_simulation/shaders/shader.vert | 10 ++++++--- projects/particle_simulation/shaders/vert.spv | Bin 1184 -> 1496 bytes projects/particle_simulation/src/main.cpp | 19 ++++++++++++------ 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/projects/particle_simulation/shaders/frag.spv b/projects/particle_simulation/shaders/frag.spv index df52203662c6efe30f9b311f06075e73074edb6a..d926fa4b4ad738f5aaca2f00fbb92a91d024fd12 100644 GIT binary patch delta 456 zcmaFDvVx75nMs+Qfq{{Mi-DIxWFqg^JQfCC1_p*w=lq=fA_fLF239bifq{V`86w2M z%D}?F&%nR{Rl>l^z{(&9(i4zhoLQ2YpT_{w#|9Py=_^18gVhQ%FfhQBPBvhas0UdH zQm70f7#JAb8JNMAGJ)9;%aq`95WXUm?*X+O#6{K*au7^E$U<cOAU;SxBLf42Fay)% zbVlELZ3Y$wHU<U;E|5VC4fZfTH<-`Bpu@n<z|O$HzynnS5(i<BdO4_jLGlU=EDU@M z3=AN<LH@Fa@<9Ox5))@&VGsZZ5Ca1<0|Ns{uOI`15?BzVSqQ2b<N=Uo5Fg}Vrpdfa W@*;K&%nY1RXZ&SgWUydhWB>pk;v#$i delta 253 zcmZ3%_JoC(nMs+Qfq{{Mi-DIxXd>@dJyr%T1_p-Y{Ji3l#JrMX1_lN;28b8~0|P^; zbAC>K5d#A&12Y2;0|Ue40!9f*kOq*XGKgScU~p$(1{=aOnUN_tQVz;vXJBAZU|?b3 zW?*38WMBZRu!izMMuEgc8CV#2!RkP6VqnmQ^7)`9gY@%5^|Md@$|P^$$iT_~5)oiv k06Pez(w2dR0c4vX0|Ns{+>U`6Y$J&Omw}PNf`O3%07K#vLjV8( diff --git a/projects/particle_simulation/shaders/shader.frag b/projects/particle_simulation/shaders/shader.frag index d9fd4602..215fa788 100644 --- a/projects/particle_simulation/shaders/shader.frag +++ b/projects/particle_simulation/shaders/shader.frag @@ -3,9 +3,16 @@ layout(location = 0) out vec4 outColor; -layout(set=0, binding=0) uniform vec4 uColor; +layout(set=0, binding=0) uniform uColor { + vec4 color; +} Color; + +layout(set=0,binding=1) uniform uPosition{ + vec3 position; +} Position; void main() { - outColor = uColor; +// outColor = Color.color; + outColor = vec4(1.0f, 0.0f,0.f,1.f); } \ No newline at end of file diff --git a/projects/particle_simulation/shaders/shader.vert b/projects/particle_simulation/shaders/shader.vert index 3985a850..6c78c446 100644 --- a/projects/particle_simulation/shaders/shader.vert +++ b/projects/particle_simulation/shaders/shader.vert @@ -1,13 +1,17 @@ #version 450 core #extension GL_ARB_separate_shader_objects : enable -layout (location = 0) in vec3 position; - layout( push_constant ) uniform constants{ mat4 mvp; }; +vec3 positions[3] = { +vec3(-0.5, 0.5, -1), +vec3( 0.5, 0.5, -1), +vec3(0, -0.5, -1) +}; + void main() { - gl_Position = mvp * vec4(position, 1.0); + gl_Position = mvp * vec4(positions[gl_VertexIndex], 1.0); } \ No newline at end of file diff --git a/projects/particle_simulation/shaders/vert.spv b/projects/particle_simulation/shaders/vert.spv index 1d8d780bcb1a3dff229389902f9d624e83500380..9e89006811ae50bbd74619623632a0d5e4423ddb 100644 GIT binary patch literal 1496 zcmZQ(Qf6mhU}WH8;AJpkfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N<T1qQG+e z4D4Vw3j+f~ZenI0h$F?oz@W;&z`)GF%)rFJz;K9>fq{jAlfm65-Z982zBsiYu_&=5 zHNH3_F(tJqK0hfdHMyi1q=pNm#@*lF-N!XPxu77vxTG>CH9jXZFEu_TvnVyWB(p3P zq>ckgU1nZ#PH76V0#*hV24wfJGO#l6FfcF_<QHd_Waj4;GcYi)GO#g7FfcHr=fnr3 z7KNo2m84dH+|C9S2eCnNP%R8>4D4X_pl|_;XXcdzXI7<x)WPIHeofDbch1QyaLFt# zNz6-5h3f-_7)Y)(CkHOa%D~J33M-HqAUDb}Ffb(N=Ye#Bf`fsLfrSAi29nP$D_{Vr zR{(LK?gxc&dQLpV@t%1pARl-zu!7wQQpOD;7#J8}Vj#DJ#6UDm4CH2z7|4AvF%TOh z1`0!W24=8%Aax!{?qP+R3v-_`l3g${P|6TsU|;~50TKh5;m*JUP8%TewHO!}gc+E? zX+#m6S{T4=F$QJ^HU<U;kYB|aSimU^#0R-cl!1kT11blyQX9(W1gAF!1{nqx1}+8$ zupW?@0s{*J$S#n6khnFJ4@wUpF_3-`%?mP&fnh(4&j;b#!}$DQe#3qpaEvlAfcyp0 z15yW)gNX|=Fff3`Ko}$r(=P<p&%gjvC(OXW01^Y40a6DN2f0s#0b(}D9FQ82|3w)X zz~KRk50H5v|BEqzaxKKa;!t^zm>e|y!t{XTKo}GblF%>$rF&2~fcT*F2MbqeXt;vX z2gn`}Uk2)K2?iDhSq26Mkhvgt$T2X3(<Vp^WVSp50|O|$LGcVS8^j02A4m)&uLzZg zsaJuzA7lqeJ%|rV&mg-&>eZos0;M64TR?FHN-qoy4fY^;P(cK7Hv@wi11mV)fZPRg zE=c?b0}}%%joL9VgY!NpTpbx$89?q(g8CEWH(RK`K<O7G4&sB{qy{a+KzcxK(O_Tz zn*$ODsR6l5lYxN&BpwJZO&A!o85kHqVjwrb#B`uyAb-KcbfIFP{1Cvv4h~a228e!; xdXPNGuM-(q!E*Wx3=AOmfz*K91M<5e0|U710QmvrM-U&R?k@u)g9QU40{{wWb>RR2 literal 1184 zcmZQ(Qf6mhU}WH8;AK!|fB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N<T1qQG+e z4D4Vw3j+f~ZenI0h{Makz#z%Mz`)GF%)rFJz;K9>fq{jAlfm65-Z982zBsiYu_&=5 zHNH3_F(tJqK0hfdHMyi1q=pNm#@*lF-N!XPxu77vxTG>CH9jXZFEu_TvnVyWB(p3P zq>ckgU1nZ#PH76V0#*hV24wfJGO#glGcYiu=fnr37KNo2m84dH+{p$N2eCnN`Nf$f znfZAPYz*vR^`I~Si)ZGQ1ZP&Ig4Ds}K>kY4iFeM)EO5yzE=kNwPKE0Og$_urG$#ix z$I8IW016k78LSMf41x>{49WR<Ae|tuGq5qRfW<)axn%_mAoao^4g&)NNIfV#3t$dp zU|{fIU<JDoqy*$Q5DgOpxf>(~qG4hn_kzSgZi9(|*dQ@bSh+JWgUth}^FVS7E7UHK zdqH-<(g?^5m>4Jp2rw`(fXo1ify{7cU;(EAIglm>1_ogUCU9C%1g8oHFk6g)nSqUg zfkA<RfkB*s1)P#Ve2{xY8CV!NpmHE1w4r=X22g5cV31*8Vc=q50P6>d$wA{1<Q9+_ zAUP0LU|?b30jEV!dS+m-hVnsi0rEe{9zLi&pzs3O1LE_8EM;I|kYHe80Qn7MF34SS z49wto0*Qgl7Ghvv0ND@nH^^)d9~5sOF_63nR34-r<VSI+n?ZJi<Rzf~0f~e3gZQAh zhPegg7iq9t8tg&p6`_6sxyOuw6&#KrcY&0E%>2Q?!~lvjM+Q~~klmu-uxDTZ`NtOO z7cm9~29P+253*MZnqLDMKsf~zwhRm)F_4)sF<AzP7|2~PF;Lus)PdqVfPozxfAS0v z{UG%qd63&DGO&W>K=BN+8>9y0K9FCO7#P6$0^~kB24)5jAEfRt10#b410w?fYA#~M diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp index 4b798ed0..c1c0b59e 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -49,9 +49,9 @@ int main(int argc, const char** argv) { testBuffer.fill(vec_data); - auto triangleIndexBuffer = core.createBuffer<uint16_t>(vkcv::BufferType::INDEX, n, vkcv::BufferMemoryType::DEVICE_LOCAL); + auto particleIndexBuffer = core.createBuffer<uint16_t>(vkcv::BufferType::INDEX, n, vkcv::BufferMemoryType::DEVICE_LOCAL); uint16_t indices[3] = { 0, 1, 2 }; - triangleIndexBuffer.fill(&indices[0], sizeof(indices)); + particleIndexBuffer.fill(&indices[0], sizeof(indices)); std::cout << "Physical device: " << physicalDevice.getProperties().deviceName << std::endl; @@ -78,6 +78,7 @@ int main(int argc, const char** argv) { particleShaderProgram.reflectShader(vkcv::ShaderStage::FRAGMENT); std::vector<vkcv::DescriptorBinding> descriptorBindings = { + vkcv::DescriptorBinding(vkcv::DescriptorType::UNIFORM_BUFFER, 1, vkcv::ShaderStage::FRAGMENT), vkcv::DescriptorBinding(vkcv::DescriptorType::UNIFORM_BUFFER, 1, vkcv::ShaderStage::FRAGMENT)}; vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorBindings); @@ -91,13 +92,19 @@ int main(int argc, const char** argv) { true); vkcv::PipelineHandle particlePipeline = core.createGraphicsPipeline(particlePipelineDefinition); - vkcv::Buffer<glm_vec4> color = core.createBuffer<glm_vec4>( + vkcv::Buffer<glm::vec4> color = core.createBuffer<glm::vec4>( vkcv::BufferType::UNIFORM, 1 ); + vkcv::Buffer<glm::vec4> position = core.createBuffer<glm::vec4>( + vkcv::BufferType::UNIFORM, + 1 + ); + vkcv::DescriptorWrites setWrites; - setWrites.uniformBufferWrites = {vkcv::UniformBufferDescriptorWrite(0,color.getHandle())}; + setWrites.uniformBufferWrites = {vkcv::UniformBufferDescriptorWrite(0,color.getHandle()), + vkcv::UniformBufferDescriptorWrite(1,position.getHandle())}; core.writeResourceDescription(descriptorSet,0,setWrites); if (!particlePipeline) @@ -108,8 +115,8 @@ int main(int argc, const char** argv) { const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle(); - const vkcv::Mesh renderMesh({}, triangleIndexBuffer.getVulkanHandle(), 3); - vkcv::DrawcallInfo drawcalls(renderMesh, {}); + const vkcv::Mesh renderMesh({}, particleIndexBuffer.getVulkanHandle(), 3); + vkcv::DrawcallInfo drawcalls(renderMesh, {vkcv::DescriptorSetUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle)}); auto start = std::chrono::system_clock::now(); -- GitLab