Files
RayTracer/src/scene/Scene.cpp
T

35 lines
1.0 KiB
C++
Raw Normal View History

#include "Scene.h"
2025-01-24 21:01:01 +01:00
Scene::Scene(glm::vec3 cameraPos, glm::vec3 cameraDirection) : cameraPos(cameraPos), cameraDirection(cameraDirection) {}
Scene::~Scene() {}
void Scene::render(int width, int height, int numSamples)
2025-01-24 18:21:34 +01:00
{
2025-01-24 21:20:06 +01:00
worker = std::thread(
[&]()
2025-01-24 21:01:01 +01:00
{
2025-01-24 21:20:06 +01:00
image.clear();
accumulator.clear();
image.resize(width * height * 3);
for (int samp = 0; samp < numSamples; ++samp)
2025-01-24 21:01:01 +01:00
{
2025-01-24 21:20:06 +01:00
std::function<void()> job = [&]()
{
std::vector<unsigned char> localAccumulator(width * height * 3);
for (int w = 0; w < width; ++w)
{
for (int h = 0; h < height; ++h)
{
if (cancel)
return;
bvh.traceRay();
}
}
// lock image
// add result to image
};
2025-01-24 21:01:01 +01:00
}
2025-01-24 21:20:06 +01:00
});
2025-01-24 18:21:34 +01:00
}