From a3a2dff86947334a3427fce6d6ccfc73143a131f Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Fri, 24 Jan 2025 21:01:01 +0100 Subject: [PATCH] adding camera params --- src/scene/Scene.cpp | 23 ++++++++++++++++++----- src/scene/Scene.h | 7 +++++-- src/util/CMakeLists.txt | 1 + src/util/Camera.h | 11 +++++++++++ 4 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 src/util/Camera.h diff --git a/src/scene/Scene.cpp b/src/scene/Scene.cpp index 99ffeae..e6607ef 100644 --- a/src/scene/Scene.cpp +++ b/src/scene/Scene.cpp @@ -1,9 +1,22 @@ #include "Scene.h" -Scene::Scene() - : window(1920, 1080) +Scene::Scene(glm::vec3 cameraPos, glm::vec3 cameraDirection) : cameraPos(cameraPos), cameraDirection(cameraDirection) {} + +Scene::~Scene() {} + +void Scene::render(int width, int height, int numSamples) { - + image.clear(); + accumulator.clear(); + image.resize(width * height * 3); + accumulator.resize(width * height * 3); + for (int samp = 0; samp < numSamples; ++samp) + { + for (int w = 0; w < width; ++w) + { + for (int h = 0; h < height; ++h) + { + } + } + } } - -void Scene::render() {} diff --git a/src/scene/Scene.h b/src/scene/Scene.h index e99dce6..d6142fe 100644 --- a/src/scene/Scene.h +++ b/src/scene/Scene.h @@ -1,15 +1,18 @@ #pragma once #include "BVH.h" #include "window/Window.h" +#include "util/Camera.h" class Scene { public: Scene(); ~Scene(); - void render(); + void render(Camera cam, int width, int height, int numSamples); private: - Window window; + // the thing being displayed std::vector image; + // radiance accumulator + std::vector accumulator; BVH bvh; }; \ No newline at end of file diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 4d96c4f..e154cb1 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -1,5 +1,6 @@ target_sources(RayTracer PRIVATE + Camera.h Model.h Model.cpp ModelLoader.h diff --git a/src/util/Camera.h b/src/util/Camera.h new file mode 100644 index 0000000..9115398 --- /dev/null +++ b/src/util/Camera.h @@ -0,0 +1,11 @@ +#pragma once +#include + +struct Camera +{ + glm::vec3 position; + glm::vec3 direction; + glm::vec2 sensorSize = glm::vec2(0.036, 0.024); + float S_O = 6.9; + float f = 0.7; +}; \ No newline at end of file