diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2021-09-06 22:55:51 +0200 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2021-09-06 22:55:51 +0200 |
| commit | 3f6d9a3a75e2615866f8ed2cd0015fabea6490b7 (patch) | |
| tree | 077e568cca0a8823f0b361f570a2d76b43011aac /src/main.cpp | |
| parent | bf512216323f3df55627421bb0187ed364d58340 (diff) | |
Load gltf materials + diffuse and specular brdf
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp index c47aaeb..287b0eb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -60,17 +60,23 @@ int main() { auto aperture = 0.1; auto focus_distance = 10; auto cam = camera(position, target, v_fov, (float)width / (float)height, aperture, focus_distance); - auto main_scene = scene(cam, width, height); - auto can_render = true; - vkrenderer renderer { wnd, sizeof(main_scene.meta), sizeof(main_scene.triangles[0]) * main_scene.triangles.size(), sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size() }; + + vkrenderer renderer { wnd }; + auto main_scene = scene(cam, width, height, renderer); // vkrenderer renderer { wnd, sizeof(main_scene.meta), sizeof(main_scene.spheres[0]) * main_scene.spheres.size(), sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size() }; + renderer.create_scene_buffer(sizeof(main_scene.meta)); + renderer.create_geometry_buffer(sizeof(main_scene.triangles[0]) * main_scene.triangles.size()); + renderer.create_bvh_buffer(sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size()); + // Upload scene content std::memcpy(renderer.scene_buffer_ptr(), &main_scene.meta, sizeof(main_scene.meta)); renderer.update_geometry_buffer(main_scene.triangles.data()); // renderer.update_geometry_buffer(main_scene.spheres.data()); renderer.update_bvh_buffer(main_scene.packed_nodes.data()); + auto can_render = true; + ImGuiIO& io = ImGui::GetIO(); io.DisplaySize.x = (float)width; io.DisplaySize.y = (float)height; |
