Toggle wind simulation

This commit is contained in:
saschawillems 2017-07-09 11:59:28 +02:00
parent a55759b31b
commit db2aee7535

View file

@ -30,9 +30,10 @@
class VulkanExample : public VulkanExampleBase class VulkanExample : public VulkanExampleBase
{ {
public: public:
uint32_t sceneSetup = 1; uint32_t sceneSetup = 0;
uint32_t readSet = 0; uint32_t readSet = 0;
uint32_t indexCount; uint32_t indexCount;
bool simulateWind = false;
vks::Texture2D textureCloth; vks::Texture2D textureCloth;
@ -114,7 +115,6 @@ public:
camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 512.0f); camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 512.0f);
camera.setRotation(glm::vec3(-30.0f, -45.0f, 0.0f)); camera.setRotation(glm::vec3(-30.0f, -45.0f, 0.0f));
camera.setTranslation(glm::vec3(0.0f, 0.0f, -3.5f)); camera.setTranslation(glm::vec3(0.0f, 0.0f, -3.5f));
paused = true;
} }
~VulkanExample() ~VulkanExample()
@ -659,6 +659,14 @@ public:
compute.ubo.deltaT = 0.000005f; compute.ubo.deltaT = 0.000005f;
// todo: base on frametime // todo: base on frametime
//compute.ubo.deltaT = frameTimer * 0.0075f; //compute.ubo.deltaT = frameTimer * 0.0075f;
if (simulateWind) {
compute.ubo.gravity.x = sin(glm::radians(-timer * 360.0f)) * 4.0f;
compute.ubo.gravity.z = sin(glm::radians(timer * 360.0f)) * 4.0f;
}
else {
compute.ubo.gravity.x = 0.0f;
compute.ubo.gravity.z = 0.0f;
}
} }
else { else {
compute.ubo.deltaT = 0.0f; compute.ubo.deltaT = 0.0f;
@ -722,9 +730,24 @@ public:
updateGraphicsUBO(); updateGraphicsUBO();
} }
virtual void keyPressed(uint32_t keyCode)
{
switch (keyCode)
{
case KEY_W:
case GAMEPAD_BUTTON_A:
simulateWind = !simulateWind;
break;
}
}
virtual void getOverlayText(VulkanTextOverlay *textOverlay) virtual void getOverlayText(VulkanTextOverlay *textOverlay)
{ {
textOverlay->addText(std::to_string(frameTimer * 0.0075f), 5.0f, 85.0f, VulkanTextOverlay::alignLeft); #if defined(__ANDROID__)
textOverlay->addText("\"Button A\" to toggle wind simulation", 5.0f, 85.0f, VulkanTextOverlay::alignLeft);
#else
textOverlay->addText("\"w\" to toggle wind simulation", 5.0f, 85.0f, VulkanTextOverlay::alignLeft);
#endif
} }
}; };