diff --git a/projects/wobble_bobble/shaders/particle.frag b/projects/wobble_bobble/shaders/particle.frag index 1c3fae9756c219eea49af846fac6e16582a74646..deee9d4ec1b4b175aa8978fb2af79ddd0f118561 100644 --- a/projects/wobble_bobble/shaders/particle.frag +++ b/projects/wobble_bobble/shaders/particle.frag @@ -8,7 +8,7 @@ void main() { const float value = length(passPos); if (value < 0.5f) { - outColor = vec4(1.0f - value, 0.0f, 0.0f, 1.0f); + outColor = vec4(1.0f, 0.0f, 0.0f, 1.0f - value * 2.0f); } else { discard; } diff --git a/projects/wobble_bobble/shaders/particle.vert b/projects/wobble_bobble/shaders/particle.vert index e01f9f861b69cc8219e572d6150f3acb9a2b1a20..d593be419fa75d477cfbb1ae5935973e8bd6af1e 100644 --- a/projects/wobble_bobble/shaders/particle.vert +++ b/projects/wobble_bobble/shaders/particle.vert @@ -16,5 +16,5 @@ void main() { float size = particles[gl_InstanceIndex].minimal.size; passPos = vertexPos; - gl_Position = vec4(position + vec3(vertexPos * size, 0), 1); + gl_Position = vec4(position + vec3(vertexPos * size * 2.0f, 0), 1); } \ No newline at end of file diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp index bfcc6143f21f73f383e01cf10d74cd17e97e3512..e76412ea48efb0f79e489953138c5b967b83c753 100644 --- a/projects/wobble_bobble/src/main.cpp +++ b/projects/wobble_bobble/src/main.cpp @@ -247,6 +247,16 @@ int main(int argc, const char **argv) { ) }); + vkcv::DescriptorSetLayoutHandle gfxSetLayout = core.createDescriptorSetLayout( + gfxProgram.getReflectedDescriptors().at(0) + ); + + vkcv::DescriptorSetHandle gfxSet = core.createDescriptorSet(gfxSetLayout); + + vkcv::DescriptorWrites writesGfx; + writesGfx.storageBufferWrites.push_back(vkcv::BufferDescriptorWrite(0, particles.getHandle())); + core.writeDescriptorSet(gfxSet, writesGfx); + vkcv::PassHandle gfxPass = core.createPass(passConfig); vkcv::VertexLayout vertexLayout ({ @@ -259,7 +269,7 @@ int main(int argc, const char **argv) { gfxPipelineConfig.m_Height = windowHeight; gfxPipelineConfig.m_PassHandle = gfxPass; gfxPipelineConfig.m_VertexLayout = vertexLayout; - gfxPipelineConfig.m_DescriptorLayouts = { core.getDescriptorSetLayout(transformParticlesToGridLayouts[0]).vulkanHandle }; + gfxPipelineConfig.m_DescriptorLayouts = { core.getDescriptorSetLayout(gfxSetLayout).vulkanHandle }; gfxPipelineConfig.m_UseDynamicViewport = true; gfxPipelineConfig.m_blendMode = vkcv::BlendMode::Additive; @@ -288,7 +298,7 @@ int main(int argc, const char **argv) { drawcalls.push_back(vkcv::DrawcallInfo( triangleMesh, - { vkcv::DescriptorSetUsage(0, core.getDescriptorSet(transformParticlesToGridSets[0]).vulkanHandle) }, + { vkcv::DescriptorSetUsage(0, core.getDescriptorSet(gfxSet).vulkanHandle) }, particles.getCount() ));