diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp index 9851cb7348d139a3bd95828d50fcca37382f0228..b02e9cfb2d40ae6c2500a85572f894c64652eafd 100644 --- a/modules/camera/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -69,7 +69,7 @@ namespace vkcv::camera { void setPerspective(float fov, float ratio, float near, float far); /** - * @brief Gets the view matrix of the camera + * @brief Returns the view matrix of the camera * @return The view matrix of the camera */ [[nodiscard]] @@ -84,28 +84,28 @@ namespace vkcv::camera { void lookAt(const glm::vec3& position, const glm::vec3& center, const glm::vec3& up); /** - * @brief Gets the current projection of the camera + * @brief Returns the current projection of the camera * @return The current projection matrix */ [[nodiscard]] const glm::mat4& getProjection() const; /** - * @brief Gets the model-view-projection matrix of the camera with y-axis-correction applied + * @brief Returns the model-view-projection matrix of the camera with y-axis-correction applied * @return The model-view-projection matrix */ [[nodiscard]] glm::mat4 getMVP() const; /** - * @brief Gets the near and far bounds of the view frustum of the camera. + * @brief Returns the near and far bounds of the view frustum of the camera. * @param[out] near The near bound of the view frustum * @param[out] far The far bound of the view frustum */ void getNearFar(float &near, float &far) const; /** - * @brief Gets the current field of view of the camera in radians + * @brief Returns the current field of view of the camera in radians * @return[in] The current field of view in radians */ [[nodiscard]] @@ -118,7 +118,7 @@ namespace vkcv::camera { void setFov(float fov); /** - * @brief Gets the current aspect ratio of the camera + * @brief Returns the current aspect ratio of the camera * @return The current aspect ratio of the camera */ [[nodiscard]] @@ -138,7 +138,7 @@ namespace vkcv::camera { void setNearFar(float near, float far); /** - * @brief Gets the current front vector of the camera in world space + * @brief Returns the current front vector of the camera in world space * @return The current front vector of the camera */ [[nodiscard]] @@ -151,7 +151,7 @@ namespace vkcv::camera { void setFront(const glm::vec3& front); /** - * @brief Gets the current position of the camera in world space + * @brief Returns the current position of the camera in world space * @return The current position of the camera in world space */ [[nodiscard]] @@ -164,7 +164,7 @@ namespace vkcv::camera { void setPosition( const glm::vec3& position ); /** - * @brief Gets the center point. + * @brief Returns the center point. * @return The center point. */ [[nodiscard]] @@ -177,7 +177,7 @@ namespace vkcv::camera { void setCenter(const glm::vec3& center); /** - * @brief Gets the angles of the camera. + * @brief Returns the angles of the camera. * @param[out] pitch The pitch value in radians * @param[out] yaw The yaw value in radians */ @@ -191,7 +191,7 @@ namespace vkcv::camera { void setAngles(float pitch, float yaw); /** - * @brief Gets the pitch value of the camera in degrees. + * @brief Returns the pitch value of the camera in degrees. * @return The pitch value in degrees. */ [[nodiscard]] @@ -204,7 +204,7 @@ namespace vkcv::camera { void setPitch(float pitch); /** - * @brief Gets the yaw value of the camera in degrees. + * @brief Returns the yaw value of the camera in degrees. * @return The yaw value in degrees. */ [[nodiscard]] @@ -217,7 +217,7 @@ namespace vkcv::camera { void setYaw(float yaw); /** - * @brief Gets the up vector. + * @brief Returns the up vector. * @return The up vector. */ [[nodiscard]] diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp index c54ec94094d7ed13775832cd57b7aa77cf92ef80..3c6c556d96210287e3be23d19346c5eca6f9c1cd 100644 --- a/modules/camera/include/vkcv/camera/CameraManager.hpp +++ b/modules/camera/include/vkcv/camera/CameraManager.hpp @@ -103,7 +103,7 @@ namespace vkcv::camera { void gamepadCallback(int gamepadIndex); /** - * @brief Gets a camera controller object of specified @p controllerType. + * @brief Returns a camera controller object of specified @p controllerType. * @param[in] controllerType The type of the camera controller. * @return The specified camera controller object. */ @@ -147,7 +147,7 @@ namespace vkcv::camera { CameraHandle addCamera(ControllerType controllerType, const Camera& camera); /** - * @brief Gets the stored camera object located by @p cameraHandle. + * @brief Returns the stored camera object located by @p cameraHandle. * @param[in] cameraHandle The camera handle. * @return The camera object by @p cameraHandle. * @throws std::runtime_error If @p cameraHandle is not a valid camera handle. @@ -155,7 +155,7 @@ namespace vkcv::camera { Camera& getCamera(const CameraHandle& cameraHandle); /** - * @brief Gets the stored camera object set as the active camera. + * @brief Returns the stored camera object set as the active camera. * @return The active camera. */ Camera& getActiveCamera(); @@ -168,7 +168,7 @@ namespace vkcv::camera { void setActiveCamera(const CameraHandle& cameraHandle); /** - * @brief Gets the handle of the stored active camera object. + * @brief Returns the handle of the stored active camera object. * @return The active camera handle. */ CameraHandle getActiveCameraHandle() const; @@ -183,7 +183,7 @@ namespace vkcv::camera { void setControllerType(const CameraHandle& cameraHandle, ControllerType controllerType); /** - * @brief Gets the currently bound camera controller type of the stored camera object located by @p cameraHandle. + * @brief Returns the currently bound camera controller type of the stored camera object located by @p cameraHandle. * @param[in] cameraHandle The camera handle. * @return The type of the camera controller of the specified camera object. * @throws std::runtime_error If @p cameraHandle is not a valid camera handle. diff --git a/modules/camera/include/vkcv/camera/PilotCameraController.hpp b/modules/camera/include/vkcv/camera/PilotCameraController.hpp index c23a2cccce6f3d4036e9648d39b7b39df1d7ce4b..40ccd56bd3033b7e831bfc1f8d24b5a646eb0efd 100644 --- a/modules/camera/include/vkcv/camera/PilotCameraController.hpp +++ b/modules/camera/include/vkcv/camera/PilotCameraController.hpp @@ -73,7 +73,7 @@ namespace vkcv::camera { * @param[in] deltaTime The time that has passed since last update. * @param[in] camera The camera object. */ - void updateCamera(double deltaTime, Camera &camera); + void updateCamera(double deltaTime, Camera &camera) override; /** * @brief A callback function for key events. Currently, 3D camera movement via W, A, S, D, E, Q are supported. @@ -83,7 +83,7 @@ namespace vkcv::camera { * @param[in] mods The modifier bits. * @param[in] camera The camera object. */ - void keyCallback(int key, int scancode, int action, int mods, Camera &camera); + void keyCallback(int key, int scancode, int action, int mods, Camera &camera) override; /** * @brief A callback function for mouse scrolling events. Currently, this leads to changes in the field of view @@ -92,7 +92,7 @@ namespace vkcv::camera { * @param[in] offsetY The offset in vertical direction. * @param[in] camera The camera object. */ - void scrollCallback(double offsetX, double offsetY, Camera &camera); + void scrollCallback(double offsetX, double offsetY, Camera &camera) override; /** * @brief A callback function for mouse movement events. Currently, this leads to panning the view of the camera, @@ -101,7 +101,7 @@ namespace vkcv::camera { * @param[in] y The vertical mouse position * @param[in] camera The camera object. */ - void mouseMoveCallback(double x, double y, Camera &camera); + void mouseMoveCallback(double x, double y, Camera &camera) override; /** * @brief A callback function for mouse button events. Currently, the right mouse button enables panning the @@ -111,7 +111,7 @@ namespace vkcv::camera { * @param[in] mods The modifier bits * @param[in] camera The camera object. */ - void mouseButtonCallback(int button, int action, int mods, Camera &camera); + void mouseButtonCallback(int button, int action, int mods, Camera &camera) override; /** * @brief A callback function for gamepad input events. @@ -119,7 +119,7 @@ namespace vkcv::camera { * @param camera The camera object. * @param frametime The current frametime. */ - void gamepadCallback(int gamepadIndex, Camera &camera, double frametime); + void gamepadCallback(int gamepadIndex, Camera &camera, double frametime) override; }; /** @} */ diff --git a/modules/camera/include/vkcv/camera/TrackballCameraController.hpp b/modules/camera/include/vkcv/camera/TrackballCameraController.hpp index e4f40383218f8c25fd0bca41d9ff673ce5a3589e..5df56fd839f1c654541baaa75bd3d9553cdedd62 100644 --- a/modules/camera/include/vkcv/camera/TrackballCameraController.hpp +++ b/modules/camera/include/vkcv/camera/TrackballCameraController.hpp @@ -21,10 +21,8 @@ namespace vkcv::camera { class TrackballCameraController final : public CameraController { private: bool m_rotationActive; - float m_cameraSpeed; float m_scrollSensitivity; - float m_radius; float m_pitch; float m_yaw; @@ -47,12 +45,6 @@ namespace vkcv::camera { */ ~TrackballCameraController() = default; - /** - * @brief Sets @p radius as the new radius for orbiting around the camera's center point. - * @param[in] radius The new radius. - */ - void setRadius(const float radius); - /** * @brief Pans the view of @p camera according to the pitch and yaw values and additional offsets @p xOffset * and @p yOffset. @@ -67,7 +59,7 @@ namespace vkcv::camera { * @param[in] deltaTime The time that has passed since last update. * @param[in] camera The camera object */ - void updateCamera(double deltaTime, Camera &camera); + void updateCamera(double deltaTime, Camera &camera) override; /** * @brief A callback function for key events. Currently, the trackball camera does not support camera movement. @@ -78,7 +70,7 @@ namespace vkcv::camera { * @param[in] mods The modifier bits. * @param[in] camera The camera object. */ - void keyCallback(int key, int scancode, int action, int mods, Camera &camera); + void keyCallback(int key, int scancode, int action, int mods, Camera &camera) override; /** * @brief A callback function for mouse scrolling events. Currently, this leads to changes in the field of view @@ -87,7 +79,7 @@ namespace vkcv::camera { * @param[in] offsetY The offset in vertical direction. * @param[in] camera The camera object. */ - void scrollCallback(double offsetX, double offsetY, Camera &camera); + void scrollCallback(double offsetX, double offsetY, Camera &camera) override; /** * @brief A callback function for mouse movement events. Currently, this leads to panning the view of the @@ -96,7 +88,7 @@ namespace vkcv::camera { * @param[in] yoffset The vertical mouse position. * @param[in] camera The camera object. */ - void mouseMoveCallback(double xoffset, double yoffset, Camera &camera); + void mouseMoveCallback(double xoffset, double yoffset, Camera &camera) override; /** * @brief A callback function for mouse button events. Currently, the right mouse button enables panning the @@ -106,7 +98,7 @@ namespace vkcv::camera { * @param[in] mods The modifier bits. * @param[in] camera The camera object. */ - void mouseButtonCallback(int button, int action, int mods, Camera &camera); + void mouseButtonCallback(int button, int action, int mods, Camera &camera) override; /** * @brief A callback function for gamepad input events. @@ -114,7 +106,7 @@ namespace vkcv::camera { * @param camera The camera object. * @param frametime The current frametime. */ - void gamepadCallback(int gamepadIndex, Camera &camera, double frametime); + void gamepadCallback(int gamepadIndex, Camera &camera, double frametime) override; }; /** @} */ diff --git a/modules/camera/src/vkcv/camera/PilotCameraController.cpp b/modules/camera/src/vkcv/camera/PilotCameraController.cpp index 1c7bb12679e57c9221465452f2fc41a539b6b2a0..37a79fe1012d6b81f12e50dba0e0edb6b76390e7 100644 --- a/modules/camera/src/vkcv/camera/PilotCameraController.cpp +++ b/modules/camera/src/vkcv/camera/PilotCameraController.cpp @@ -112,7 +112,7 @@ namespace vkcv::camera { xoffset *= static_cast<float>(m_rotationActive); yoffset *= static_cast<float>(m_rotationActive); - panView(xoffset , yoffset, camera); + panView(xoffset, yoffset, camera); } void PilotCameraController::mouseButtonCallback(int button, int action, int mods, Camera &camera) { diff --git a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp index 0052de56599240c3c1d4909604cb6ae155ee6c6d..5e89ce1a7b2fec5c203573cf4b58b45025e608f6 100644 --- a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp +++ b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp @@ -5,65 +5,71 @@ namespace vkcv::camera { TrackballCameraController::TrackballCameraController() { m_rotationActive = false; - m_radius = 3.0f; m_cameraSpeed = 2.5f; m_scrollSensitivity = 0.2f; - m_pitch = 0.0f; - m_yaw = 0.0f; - } - - void TrackballCameraController::setRadius(const float radius) { - m_radius = 0.1f * (radius < 0.1f) + radius * (1 - (radius < 0.1f)); + m_pitch = 0.0f; + m_yaw = 0.0f; } void TrackballCameraController::panView(double xOffset, double yOffset, Camera &camera) { - // update only if there is (valid) input - if (xOffset == 0.0 && yOffset == 0.0) { - return; - } - - // handle yaw rotation - m_yaw = m_yaw + static_cast<float>(xOffset) * 90.0f * m_cameraSpeed; - - // handle pitch rotation - m_pitch = m_pitch + static_cast<float>(yOffset) * 90.0f * m_cameraSpeed; - } + // update only if there is (valid) input + if (xOffset == 0.0 && yOffset == 0.0) { + return; + } + + m_yaw += static_cast<float>(xOffset) * 90.0f * m_cameraSpeed; + m_pitch += static_cast<float>(yOffset) * 90.0f * m_cameraSpeed; + } void TrackballCameraController::updateRadius(double offset, Camera &camera) { // update only if there is (valid) input if (offset == 0.0) { return; } - - glm::vec3 cameraPosition = camera.getPosition(); - glm::vec3 cameraCenter = camera.getCenter(); - float radius = glm::length(cameraCenter - cameraPosition); // get current camera radius - setRadius(radius - static_cast<float>(offset) * m_scrollSensitivity); + + camera.setPosition( + camera.getPosition() + + camera.getFront() * static_cast<float>(offset) + ); } void TrackballCameraController::updateCamera(double deltaTime, Camera &camera) { - const glm::vec3 yAxis = glm::vec3(0.0f, 1.0f, 0.0f); - const glm::vec3 xAxis = glm::vec3(1.0f, 0.0f, 0.0f); + const auto center = camera.getCenter(); + const auto distance = center - camera.getPosition(); + const float radius = glm::length(distance); + + glm::vec3 front = distance / radius; + glm::vec3 up = camera.getUp(); + glm::vec3 left; - const glm::mat4 rotationY = glm::rotate(glm::mat4(1.0f), glm::radians(m_yaw), yAxis); - const glm::mat4 rotationX = glm::rotate(rotationY, -glm::radians(m_pitch), xAxis); - const glm::vec3 translation = glm::vec3( - rotationX * glm::vec4(0.0f, 0.0f, m_radius, 0.0f) + const auto rotationY = glm::rotate( + glm::identity<glm::mat4>(), + glm::radians(m_yaw), + up ); - - const glm::vec3 center = camera.getCenter(); - const glm::vec3 position = center + translation; - const glm::vec3 up = glm::vec3( - rotationX * glm::vec4(0.0f, 1.0f, 0.0f, 0.0f) + + front = glm::vec3(rotationY * glm::vec4(front, 0.0f)); + left = glm::normalize(glm::cross(up, front)); + + const auto rotationX = glm::rotate( + rotationY, + glm::radians(m_pitch), + left ); + + up = glm::vec3(rotationX * glm::vec4(up, 0.0f)); + front = glm::normalize(glm::cross(up, left)); - camera.lookAt(position, center, up); - } + m_yaw = 0.0f; + m_pitch = 0.0f; + + camera.lookAt(center + front * radius, center, up); + } void TrackballCameraController::keyCallback(int key, int scancode, int action, int mods, Camera &camera) {} void TrackballCameraController::scrollCallback(double offsetX, double offsetY, Camera &camera) { - updateRadius(offsetY, camera); + updateRadius(offsetY * m_scrollSensitivity, camera); } void TrackballCameraController::mouseMoveCallback(double xoffset, double yoffset, Camera &camera) { @@ -90,19 +96,19 @@ namespace vkcv::camera { double threshold = 0.1; // handle rotations - double stickRightX = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_X]); - double stickRightY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_Y]); + auto stickRightX = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_X]); + auto stickRightY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_Y]); double rightXVal = glm::clamp((glm::abs(stickRightX)-threshold), 0.0, 1.0) - * std::copysign(1.0, stickRightX) * sensitivity * frametime; + * glm::sign(stickRightX) * sensitivity * frametime; double rightYVal = glm::clamp((glm::abs(stickRightY)-threshold), 0.0, 1.0) - * std::copysign(1.0, stickRightY) * sensitivity * frametime; + * glm::sign(stickRightY) * sensitivity * frametime; panView(rightXVal, rightYVal, camera); // handle translation - double stickLeftY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_Y]); + auto stickLeftY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_Y]); double leftYVal = glm::clamp((glm::abs(stickLeftY)-threshold), 0.0, 1.0) - * std::copysign(1.0, stickLeftY) * sensitivity * frametime; + * glm::sign(stickLeftY) * sensitivity * frametime; updateRadius(-leftYVal, camera); } } \ No newline at end of file diff --git a/projects/CMakeLists.txt b/projects/CMakeLists.txt index 2d2a6b00eb9eec3bf1b5e43d7a4f06c3e79b7040..3860ec7a2135a9ecc39db6e0f7a1ddd167e3b391 100644 --- a/projects/CMakeLists.txt +++ b/projects/CMakeLists.txt @@ -11,10 +11,10 @@ add_subdirectory(head_demo) add_subdirectory(indirect_dispatch) add_subdirectory(indirect_draw) add_subdirectory(mesh_shader) +add_subdirectory(mpm) add_subdirectory(particle_simulation) add_subdirectory(path_tracer) add_subdirectory(ray_tracer) add_subdirectory(rtx_ambient_occlusion) add_subdirectory(sph) -add_subdirectory(voxelization) -add_subdirectory(mpm) \ No newline at end of file +add_subdirectory(voxelization) \ No newline at end of file diff --git a/projects/bindless_textures/src/main.cpp b/projects/bindless_textures/src/main.cpp index 37d0c68b34eeb45560907fc43d049d61f0285c17..5021de5ca081f009ab39806c5648662f86482418 100644 --- a/projects/bindless_textures/src/main.cpp +++ b/projects/bindless_textures/src/main.cpp @@ -212,9 +212,10 @@ int main(int argc, const char** argv) { vkcv::camera::CameraManager cameraManager(window); auto camHandle0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); - cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); + auto camHandle1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); cameraManager.getCamera(camHandle0).setPosition(glm::vec3(0, 0, -3)); + cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0, 0, -3)); core.run([&](const vkcv::WindowHandle &windowHandle, double t, double dt, uint32_t swapchainWidth, uint32_t swapchainHeight) { diff --git a/projects/fire_works/src/main.cpp b/projects/fire_works/src/main.cpp index 54a6e03c075fb92ef4c9d3347078f703e4777959..51e29ed5b13182a20e5a069247222a48fe0c90ef 100644 --- a/projects/fire_works/src/main.cpp +++ b/projects/fire_works/src/main.cpp @@ -218,7 +218,7 @@ int main(int argc, const char **argv) { cameraManager.getCamera(trackballHandle).setCenter(glm::vec3(0.0f, 0.0f, 0.0f)); // set camera to look at the center of the particle volume cameraManager.getCamera(trackballHandle).setNearFar(0.1f, 50.0f); - cameraManager.getCamera(trackballHandle).setPosition(glm::vec3(0, 0, -25)); + cameraManager.getCamera(trackballHandle).setPosition(glm::vec3(0, 0, 25)); cameraManager.getCamera(pilotHandle).setNearFar(0.1f, 50.0f); cameraManager.getCamera(pilotHandle).setPosition(glm::vec3(0, 0, 25)); diff --git a/projects/first_scene/src/main.cpp b/projects/first_scene/src/main.cpp index 1d0fd0e989c4b41d0f08feaa7f4c8ae0b8fa3d3c..964b048edfc02c8e173fca1931dc5ff804ad65bc 100644 --- a/projects/first_scene/src/main.cpp +++ b/projects/first_scene/src/main.cpp @@ -37,6 +37,7 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camHandle0).setPosition(glm::vec3(-8, 1, -0.5)); cameraManager.getCamera(camHandle0).setNearFar(0.1f, 30.0f); + cameraManager.getCamera(camHandle1).setPosition(glm::vec3(-8, 1, -0.5)); cameraManager.getCamera(camHandle1).setNearFar(0.1f, 30.0f); vkcv::scene::Scene scene = vkcv::scene::Scene::load( diff --git a/projects/head_demo/src/main.cpp b/projects/head_demo/src/main.cpp index 771689e95dac49f96d1d308de9aedf3c19f43e15..f1e9882852bc56ab9834011e5b27d4b5c9ff081f 100644 --- a/projects/head_demo/src/main.cpp +++ b/projects/head_demo/src/main.cpp @@ -43,6 +43,7 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camHandle0).setPosition(glm::vec3(15.5f, 0, 0)); cameraManager.getCamera(camHandle0).setNearFar(0.1f, 30.0f); + cameraManager.getCamera(camHandle1).setPosition(glm::vec3(15.5f, 0, 0)); cameraManager.getCamera(camHandle1).setNearFar(0.1f, 30.0f); vkcv::scene::Scene scene = vkcv::scene::Scene::load( diff --git a/projects/mpm/.gitignore b/projects/mpm/.gitignore index 7ed07ed409373206a95d74e6dbdc27a4cb391fea..68b4554cbc85d602c1192730d43d1ebfa28c36a6 100644 --- a/projects/mpm/.gitignore +++ b/projects/mpm/.gitignore @@ -1 +1 @@ -wobble_bobble +mpm diff --git a/projects/mpm/CMakeLists.txt b/projects/mpm/CMakeLists.txt index 6c90d5222859ccd829cbb5a63ea367cc47214fb3..859a0ac1504e8922300b174fafef66d4d0553a20 100644 --- a/projects/mpm/CMakeLists.txt +++ b/projects/mpm/CMakeLists.txt @@ -1,15 +1,15 @@ cmake_minimum_required(VERSION 3.16) -project(wobble_bobble) +project(mpm) # setting c++ standard for the project set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # adding source files to the project -add_project(wobble_bobble src/main.cpp) +add_project(mpm src/main.cpp) # including headers of dependencies and the VkCV framework -target_include_directories(wobble_bobble SYSTEM BEFORE PRIVATE ${vkcv_include} ${vkcv_includes} ${vkcv_camera_include} ${vkcv_gui_include} ${vkcv_shader_compiler_include}) +target_include_directories(mpm SYSTEM BEFORE PRIVATE ${vkcv_include} ${vkcv_includes} ${vkcv_camera_include} ${vkcv_gui_include} ${vkcv_shader_compiler_include}) # linking with libraries from all dependencies and the VkCV framework -target_link_libraries(wobble_bobble vkcv vkcv_camera vkcv_gui vkcv_shader_compiler) +target_link_libraries(mpm vkcv vkcv_camera vkcv_gui vkcv_shader_compiler) diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp index 7e48d53e64217494e261d0282d83825acf60b5c6..72249ee3e993b4f903220f496975ff7ae7328af4 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -197,14 +197,13 @@ int main(int argc, const char **argv) { auto camHandle0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); auto camHandle1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); - cameraManager.getCamera(camHandle0).setNearFar(0.1, 30); - cameraManager.getCamera(camHandle0).setNearFar(0.1, 30); + cameraManager.getCamera(camHandle0).setNearFar(0.1f, 30.0f); + cameraManager.getCamera(camHandle1).setNearFar(0.1f, 30.0f); cameraManager.setActiveCamera(camHandle1); - cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0, 0, -2)); + cameraManager.getCamera(camHandle0).setPosition(glm::vec3(0.0f, 0.0f, -2.0f)); cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0.0f, 0.0f, -2.0f)); - cameraManager.getCamera(camHandle1).setCenter(glm::vec3(0.0f, 0.0f, 0.0f)); const auto swapchainExtent = core.getSwapchainExtent(window.getSwapchain()); diff --git a/projects/ray_tracer/src/main.cpp b/projects/ray_tracer/src/main.cpp index fadbadc253ad0c8e052265bb4d6b9f0eb3880223..1a906d5d8141148acbbf767163fb173f8053d466 100644 --- a/projects/ray_tracer/src/main.cpp +++ b/projects/ray_tracer/src/main.cpp @@ -162,7 +162,7 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camHandle0).setPosition(glm::vec3(0, 0, 2)); - cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0.0f, 0.0f, 0.0f)); + cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0, 0, -4)); cameraManager.getCamera(camHandle1).setCenter(glm::vec3(0.0f, 0.0f, -1.0f)); core.run([&](const vkcv::WindowHandle &windowHandle, double t, double dt, diff --git a/projects/rtx_ambient_occlusion/src/main.cpp b/projects/rtx_ambient_occlusion/src/main.cpp index 2e999baee212aa6d9da8ca03d2649bafe69eccb8..2a9d5d204d9c09a5c007494fadd2b3e2285ba372 100644 --- a/projects/rtx_ambient_occlusion/src/main.cpp +++ b/projects/rtx_ambient_occlusion/src/main.cpp @@ -36,6 +36,8 @@ int main(int argc, const char** argv) { vkcv::camera::CameraManager cameraManager(core.getWindow(windowHandle)); auto camHandle = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); + + cameraManager.getCamera(camHandle).setPosition(glm::vec3(0, 0, -3)); cameraManager.getCamera(camHandle).setNearFar(0.1f, 30.0f); // get Teapot vertices and indices diff --git a/projects/sph/src/main.cpp b/projects/sph/src/main.cpp index 72cc9995dffd4ef8c938820f2678fac29c54e5ee..989201a996757e79f8fe29e78f8517c1354a14dc 100644 --- a/projects/sph/src/main.cpp +++ b/projects/sph/src/main.cpp @@ -211,12 +211,12 @@ int main(int argc, const char **argv) { auto camHandle0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); auto camHandle1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); - cameraManager.getCamera(camHandle0).setNearFar(0.1, 30); - cameraManager.getCamera(camHandle0).setPosition(glm::vec3(0, 0, -2.5)); + cameraManager.getCamera(camHandle0).setNearFar(0.1f, 30.0f); + cameraManager.getCamera(camHandle0).setPosition(glm::vec3(0.0f, 0.0f, -2.5f)); cameraManager.setActiveCamera(camHandle1); - cameraManager.getCamera(camHandle1).setNearFar(0.1, 30); + cameraManager.getCamera(camHandle1).setNearFar(0.1f, 30.0f); cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0.0f, 0.0f, -2.5f)); cameraManager.getCamera(camHandle1).setCenter(glm::vec3(0.0f, 0.0f, 0.0f)); diff --git a/projects/voxelization/src/main.cpp b/projects/voxelization/src/main.cpp index fe58a620b37b7d0d2bc93a59536b50317729baf8..9b9bf39b205cd65b8a0f5813b7f4376ee68152a9 100644 --- a/projects/voxelization/src/main.cpp +++ b/projects/voxelization/src/main.cpp @@ -122,6 +122,7 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camHandle0).setYaw(180.0f); cameraManager.getCamera(camHandle0).setFov(glm::radians(37.8)); // fov of a 35mm lens + cameraManager.getCamera(camHandle1).setPosition(glm::vec3(0.f, 0.f, 3.f)); cameraManager.getCamera(camHandle1).setNearFar(0.1f, 30.0f); vkcv::asset::Scene mesh;