This commit is contained in:
Mars 2024-11-07 00:50:58 -05:00
parent 769dd30fdd
commit c552fb40bc
Signed by: pupbrained
GPG key ID: 0FF5B8826803F895
2 changed files with 16 additions and 8 deletions

View file

@ -53,11 +53,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1730853263, "lastModified": 1730949988,
"narHash": "sha256-Cnp2zjzaA4bYUOhM/xo9GxhgOgTHn+qNbSGu4su8RaQ=", "narHash": "sha256-7AcEfVr+td+fRqFWZzqn1XbzhEYvotOAfyWLgVSoY70=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5d4d64e923ce570996c089d768710f61bde0b9d3", "rev": "5ed245d62a75ca9fc939b6fffe72af0e22ab8260",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -41,6 +41,9 @@ VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
constexpr i32 WIDTH = 800; constexpr i32 WIDTH = 800;
constexpr i32 HEIGHT = 600; constexpr i32 HEIGHT = 600;
// CAMERA_SPEED of camera movement
constexpr f64 CAMERA_SPEED = 1.0;
// Maximum number of frames that can be processed concurrently // Maximum number of frames that can be processed concurrently
constexpr i32 MAX_FRAMES_IN_FLIGHT = 2; constexpr i32 MAX_FRAMES_IN_FLIGHT = 2;
@ -246,22 +249,23 @@ class VulkanApp {
glm::dvec3 position; glm::dvec3 position;
glm::dvec3 up; glm::dvec3 up;
glm::dvec3 look_at; glm::dvec3 look_at;
f64 speed {1.0};
Camera() : position(2.0, 2.0, 2.0), up(0.0, 0.0, 1.0), look_at(0.0) {} Camera() : position(2.0, 2.0, 2.0), up(0.0, 0.0, 1.0), look_at(0.0) {}
[[nodiscard]] fn getPosition() const -> glm::dvec3 { return position; }
[[nodiscard]] fn getViewMatrix() const -> glm::mat4 { return glm::lookAt(position, look_at, up); } [[nodiscard]] fn getViewMatrix() const -> glm::mat4 { return glm::lookAt(position, look_at, up); }
fn moveForward(f64 deltaTime) -> void { position += (look_at - position) * speed * deltaTime; } fn moveForward(f64 deltaTime) -> void { position += (look_at - position) * CAMERA_SPEED * deltaTime; }
fn moveBackward(f64 deltaTime) -> void { position -= (look_at - position) * speed * deltaTime; } fn moveBackward(f64 deltaTime) -> void { position -= (look_at - position) * CAMERA_SPEED * deltaTime; }
fn moveLeft(f64 deltaTime) -> void { fn moveLeft(f64 deltaTime) -> void {
position -= glm::normalize(glm::cross((look_at - position), up)) * speed * deltaTime; position -= glm::normalize(glm::cross((look_at - position), up)) * CAMERA_SPEED * deltaTime;
} }
fn moveRight(f64 deltaTime) -> void { fn moveRight(f64 deltaTime) -> void {
position += glm::normalize(glm::cross((look_at - position), up)) * speed * deltaTime; position += glm::normalize(glm::cross((look_at - position), up)) * CAMERA_SPEED * deltaTime;
} }
}; };
@ -274,6 +278,10 @@ class VulkanApp {
camera.moveBackward(deltaTime); camera.moveBackward(deltaTime);
if (window.getKey(vkfw::Key::eD) == vkfw::eTrue) if (window.getKey(vkfw::Key::eD) == vkfw::eTrue)
camera.moveRight(deltaTime); camera.moveRight(deltaTime);
fmt::println(
"New position: {} {} {}", camera.getPosition()[0], camera.getPosition()[1], camera.getPosition()[2]
);
} }
/** /**