Skip to content
Snippets Groups Projects
Verified Commit 0958f9a2 authored by Tobias Frisch's avatar Tobias Frisch
Browse files

Added gravity slider

parent dc5e3f81
No related branches found
No related tags found
1 merge request!103Added project wobble_bobble and refactored some parts of the framework
......@@ -33,12 +33,15 @@ struct Simulation {
float size;
float lame1;
float lame2;
int form;
int type;
float K;
float E;
float gamma;
int mode;
float gravity;
};
const float PI = 3.1415926535897932384626433832795;
......
......@@ -9,7 +9,11 @@ layout(set=0, binding=0, std430) readonly buffer particleBuffer {
Particle particles [];
};
layout(set=0, binding=1, rgba32f) restrict writeonly uniform image3D gridImage;
layout(set=0, binding=1) uniform simulationBlock {
Simulation simulation;
};
layout(set=0, binding=2, rgba32f) restrict writeonly uniform image3D gridImage;
layout( push_constant ) uniform constants {
float t;
......@@ -73,7 +77,7 @@ void main() {
gridValue.xyz = vec3(0.0f);
}
gridValue.xyz += vec3(0.0f, -9.81f * dts * gridValue.w, 0.0f);
gridValue.xyz += vec3(0.0f, -simulation.gravity * dts * gridValue.w, 0.0f);
bvec3 lowerID = lessThanEqual(gl_GlobalInvocationID, ivec3(0));
bvec3 negativeVelocity = lessThan(gridValue.xyz, vec3(0.0f));
......
......@@ -33,12 +33,15 @@ struct Simulation {
float size;
float lame1;
float lame2;
int form;
int type;
float K;
float E;
float gamma;
int mode;
float gravity;
};
struct Physics {
......@@ -348,6 +351,7 @@ int main(int argc, const char **argv) {
sim->E = 35.0f;
sim->gamma = 1.330f;
sim->mode = SIM_MODE_RANDOM;
sim->gravity = 9.81f;
resetParticles(particles, initialVelocity, sim->density, sim->size, sim->form, sim->mode);
......@@ -378,7 +382,8 @@ int main(int argc, const char **argv) {
{
vkcv::DescriptorWrites writes;
writes.storageBufferWrites.push_back(vkcv::BufferDescriptorWrite(0, particles.getHandle()));
writes.storageImageWrites.push_back(vkcv::StorageImageDescriptorWrite(1, grid.getHandle()));
writes.uniformBufferWrites.push_back(vkcv::BufferDescriptorWrite(1, simulation.getHandle()));
writes.storageImageWrites.push_back(vkcv::StorageImageDescriptorWrite(2, grid.getHandle()));
core.writeDescriptorSet(transformParticlesToGridSets[0], writes);
}
......@@ -833,11 +838,11 @@ int main(int argc, const char **argv) {
ImGui::Spacing();
ImGui::BeginGroup();
ImGui::SliderFloat("Bulk Modulus", &(sim->K), 0.0f, 100.0f);
ImGui::SliderFloat("Young's Modulus", &(sim->E), 0.0f, 100.0f);
ImGui::SliderFloat("Bulk Modulus", &(sim->K), 0.0f, 1000.0f);
ImGui::SliderFloat("Young's Modulus", &(sim->E), 0.0f, 1000.0f);
ImGui::SliderFloat("Heat Capacity Ratio", &(sim->gamma), 1.0f, 2.0f);
ImGui::SliderFloat("Lame1", &(sim->lame1), 0.0f, 100.0f);
ImGui::SliderFloat("Lame2", &(sim->lame2), 0.0f, 100.0f);
ImGui::SliderFloat("Lame1", &(sim->lame1), 0.0f, 1000.0f);
ImGui::SliderFloat("Lame2", &(sim->lame2), 0.0f, 1000.0f);
ImGui::EndGroup();
ImGui::Spacing();
......@@ -853,6 +858,8 @@ int main(int argc, const char **argv) {
resetParticles(particles, initialVelocity, sim->density, sim->size, sim->form, sim->mode);
}
ImGui::SliderFloat("Gravity", &(sim->gravity), 0.0f, 10.0f);
ImGui::End();
gui.endGUI();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment