diff --git a/projects/wobble_bobble/shaders/particle.inc b/projects/wobble_bobble/shaders/particle.inc index ddb07e7854e90f7468a6e98db9f2343d5daf82c1..92ce70eb5e3b8f7bf474908cae9356622f46bf07 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 ade23ae766508dbe448d8197ad9c8249d61425c2..71d342e14129c2d6b8404044df11b52e0d9c9d2a 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 de12087422fc19968271b32f2d811deaf3e4de8d..6fd28707b77a31cc68babc647c384cab440d977f 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 ae69aa75265e207737fc1dd56b86c5e5df5c1f9c..bfee504f599d941e625e6ef5c6045805c33a29a1 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: