From 3f4f0d3129c63651510b88ae6dba4f2fa14f4cad Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Sun, 6 Feb 2022 15:36:46 +0100 Subject: [PATCH] Used 16bit floats for grid format Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- projects/wobble_bobble/shaders/particle.inc | 11 ----------- .../shaders/transform_particles_to_grid.comp | 2 +- projects/wobble_bobble/src/main.cpp | 10 +--------- src/vkcv/ImageManager.cpp | 2 ++ 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/projects/wobble_bobble/shaders/particle.inc b/projects/wobble_bobble/shaders/particle.inc index ddb07e78..92ce70eb 100644 --- a/projects/wobble_bobble/shaders/particle.inc +++ b/projects/wobble_bobble/shaders/particle.inc @@ -62,17 +62,6 @@ float cube_radius(float volume) { return pow(volume / 8.0f, 1.0f / 3.0f); } -float simulationMass(float density, float size, int form) { - switch (form) { - case SIM_FORM_SPHERE: - return density * sphere_volume(size); - case SIM_FORM_CUBE: - return density * cube_volume(size); - default: - return 0.0f; - } -} - float weight_A(float x) { return max(1.0f - x, 0.0f); } diff --git a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp index ade23ae7..71d342e1 100644 --- a/projects/wobble_bobble/shaders/transform_particles_to_grid.comp +++ b/projects/wobble_bobble/shaders/transform_particles_to_grid.comp @@ -13,7 +13,7 @@ layout(set=0, binding=1) uniform simulationBlock { Simulation simulation; }; -layout(set=0, binding=2, rgba32f) restrict writeonly uniform image3D gridImage; +layout(set=0, binding=2, rgba16f) restrict writeonly uniform image3D gridImage; layout( push_constant ) uniform constants { float t; diff --git a/projects/wobble_bobble/src/main.cpp b/projects/wobble_bobble/src/main.cpp index de120874..6fd28707 100644 --- a/projects/wobble_bobble/src/main.cpp +++ b/projects/wobble_bobble/src/main.cpp @@ -308,7 +308,7 @@ int main(int argc, const char **argv) { ); vkcv::Image grid = core.createImage( - vk::Format::eR32G32B32A32Sfloat, + vk::Format::eR16G16B16A16Sfloat, 64, 64, 64, @@ -316,14 +316,6 @@ int main(int argc, const char **argv) { true ); - std::vector<glm::vec4> grid_vec (grid.getWidth() * grid.getHeight() * grid.getDepth()); - - for (size_t i = 0; i < grid_vec.size(); i++) { - grid_vec[i] = glm::vec4(0.0f); - } - - grid.fill(grid_vec.data()); - vkcv::SamplerHandle gridSampler = core.createSampler( vkcv::SamplerFilterType::LINEAR, vkcv::SamplerFilterType::LINEAR, diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp index ae69aa75..bfee504f 100644 --- a/src/vkcv/ImageManager.cpp +++ b/src/vkcv/ImageManager.cpp @@ -353,6 +353,8 @@ namespace vkcv { return 4; case vk::Format::eR8G8B8A8Unorm: return 4; + case vk::Format::eR16G16B16A16Sfloat: + return 8; case vk::Format::eR32G32B32A32Sfloat: return 16; default: -- GitLab