From 3dd870b001bef62aaa501257352d968d1346c7f2 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Sun, 25 Jul 2021 11:58:01 +0200 Subject: Use a different buffer for scene info, geometry, bvh and load gltf --- include/scene.hpp | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) (limited to 'include/scene.hpp') diff --git a/include/scene.hpp b/include/scene.hpp index b7e1100..364e3a7 100644 --- a/include/scene.hpp +++ b/include/scene.hpp @@ -3,39 +3,48 @@ #include "vec3.hpp" #include "sphere.hpp" +#include "triangle.hpp" #include "camera.hpp" #include "bvh-node.hpp" class scene { -public: - scene(uint32_t width, uint32_t height); + struct metadata { + color sky_color = { 0.5, 0.7, 1.0 }; + color ground_color = { 1.0, 1.0, 1.0 }; + + camera cam; - color sky_color = { 0.5, 0.7, 1.0 }; - color ground_color = { 1.0, 1.0, 1.0 }; + uint32_t max_bounce = 50; - camera cam; + // Output image resolution + uint32_t width; + uint32_t height; - sphere spheres[512] = {}; - bvh_node nodes[1024] = {}; + uint32_t sample_index = 0; - uint32_t max_bounce = 50; + uint32_t spheres_count = 0; + // uint32_t triangles_count = 0; + uint32_t enable_dof = true; + uint32_t debug_bvh = false; + uint32_t padding; - // Output image resolution - uint32_t width; - uint32_t height; + metadata(camera cam, uint32_t width, uint32_t height) + : cam(cam), width(width), height(height) {} + }; - uint32_t sample_index = 0; + void random_scene(); - uint32_t spheres_count = 0; - uint32_t enable_dof = true; - uint32_t debug_bvh = false; - uint32_t padding; +public: + scene(camera cam, uint32_t width, uint32_t height); -private: + metadata meta; - uint32_t random_scene(sphere* world); + // Geometry & BVH + std::vector spheres; + // std::vector triangles; + std::vector nodes; }; #endif // !__SCENE_HPP_ -- cgit v1.3