diff --git a/projects/wobble_bobble/shaders/grid.vert b/projects/wobble_bobble/shaders/grid.vert index 44e54c6c4151e6697ef6f71fcb185a388940f284..61f9f9b764b61927596f499f7f766d377efb40e3 100644 --- a/projects/wobble_bobble/shaders/grid.vert +++ b/projects/wobble_bobble/shaders/grid.vert @@ -1,6 +1,7 @@ #version 450 -layout(set=0, binding=0, rgba32f) readonly uniform image3D gridImage; +layout(set=0, binding=0) uniform texture3D gridImage; +layout(set=0, binding=1) uniform sampler gridSampler; layout(location = 0) in vec2 vertexPos; @@ -16,7 +17,7 @@ ivec3 actual_mod(ivec3 x, ivec3 y) { } void main() { - ivec3 gridResolution = imageSize(gridImage); + ivec3 gridResolution = textureSize(sampler3D(gridImage, gridSampler), 0); ivec3 gridID = ivec3( gl_InstanceIndex, @@ -29,7 +30,7 @@ void main() { vec3 position = (vec3(gridID) + vec3(0.5f)) / gridResolution; float size = 1.0f / length(vec3(gridResolution)); - vec4 gridData = imageLoad(gridImage, gridID); + vec4 gridData = texture(sampler3D(gridImage, gridSampler), position); float mass = gridData.w; diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp index 575fc4a36fcbbe23c70338aeb5fe009ca3497bcc..3327893333788cfd032ca6a708d9b5a2f45f48cc 100644 --- a/projects/wobble_bobble/src/main.cpp +++ b/projects/wobble_bobble/src/main.cpp @@ -330,7 +330,8 @@ int main(int argc, const char **argv) { { vkcv::DescriptorWrites writes; - writes.storageImageWrites.push_back(vkcv::StorageImageDescriptorWrite(0, tmpGrid.getHandle())); + writes.sampledImageWrites.push_back(vkcv::SampledImageDescriptorWrite(0, tmpGrid.getHandle())); + writes.samplerWrites.push_back(vkcv::SamplerDescriptorWrite(1, gridSampler)); core.writeDescriptorSet(gfxSetGrid, writes); } @@ -375,7 +376,6 @@ int main(int argc, const char **argv) { gfxPipelineConfigParticles.m_VertexLayout = vertexLayoutParticles; gfxPipelineConfigParticles.m_DescriptorLayouts = { gfxSetLayoutParticles }; gfxPipelineConfigParticles.m_UseDynamicViewport = true; - gfxPipelineConfigParticles.m_blendMode = vkcv::BlendMode::Additive; vkcv::GraphicsPipelineHandle gfxPipelineGrid = core.createGraphicsPipeline(gfxPipelineConfigGrid); vkcv::GraphicsPipelineHandle gfxPipelineParticles = core.createGraphicsPipeline(gfxPipelineConfigParticles); @@ -570,7 +570,6 @@ int main(int argc, const char **argv) { if (renderGrid) { core.recordBeginDebugLabel(cmdStream, "RENDER GRID", { 0.13f, 0.20f, 0.22f, 1.0f }); - core.prepareImageForStorage(cmdStream, tmpGrid.getHandle()); core.recordDrawcallsToCmdStream( cmdStream,