Threaded progressive renderer

This commit is contained in:
Ben
2019-08-25 14:59:26 +01:00
parent 0b9fa7f4e8
commit 3523b646d4
11 changed files with 164 additions and 52 deletions

View File

@@ -0,0 +1,30 @@
#include "renderengine.hpp"
#include "../pixel.hpp"
#include "../definitions/primatives/primative.hpp"
#include "../definitions/scene.hpp"
#include "../definitions/ray.hpp"
RenderEngine::RenderEngine() {
}
void RenderEngine::SetScene(Scene* scene) {
m_scene = scene;
}
glm::vec3 RenderEngine::GetColour(Ray ray, int depth) {
float t; Primative* hit = nullptr;
bool didhit = TraceRayScene(ray, m_scene, t, hit);
if (!didhit) {
return m_scene->SampleSky(ray);
}
glm::vec3 hitPoint = ray.origin + ray.direction * t;
glm::vec3 normal = hit->SurfaceNormal(hitPoint);
return { (normal.x + 1.0f) * 127.5f, (normal.y + 1.0f) * 127.5f, (normal.z + 1.0f) * 127.5f };
}