From 2113c9a7da60b35ac58a3d838b445dbee99e8fb9 Mon Sep 17 00:00:00 2001 From: redstrate <54911369+redstrate@users.noreply.github.com> Date: Tue, 22 Sep 2020 22:45:21 -0400 Subject: [PATCH] Only use non-infinite perspective when required --- engine/renderer/src/renderer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/engine/renderer/src/renderer.cpp b/engine/renderer/src/renderer.cpp index e0d0822..1995cdb 100755 --- a/engine/renderer/src/renderer.cpp +++ b/engine/renderer/src/renderer.cpp @@ -251,7 +251,13 @@ void Renderer::render(Scene* scene, int index) { for(auto& [obj, camera] : cameras) { const int actual_width = render_extent.width / cameras.size(); - camera.perspective = transform::perspective(radians(camera.fov), static_cast(actual_width) / static_cast(render_extent.height), 0.1f, 100.0f); + const bool requires_limited_perspective = render_options.enable_depth_of_field; + if(requires_limited_perspective) { + camera.perspective = transform::perspective(radians(camera.fov), static_cast(actual_width) / static_cast(render_extent.height), camera.near, 100.0f); + } else { + camera.perspective = transform::infinite_perspective(radians(camera.fov), static_cast(actual_width) / static_cast(render_extent.height), camera.near); + } + camera.view = inverse(scene->get(obj).model); Viewport viewport = {};