Archived
1
Fork 0

Only use non-infinite perspective when required

This commit is contained in:
redstrate 2020-09-22 22:45:21 -04:00
parent 83b47b31b4
commit 2113c9a7da

View file

@ -251,7 +251,13 @@ void Renderer::render(Scene* scene, int index) {
for(auto& [obj, camera] : cameras) { for(auto& [obj, camera] : cameras) {
const int actual_width = render_extent.width / cameras.size(); const int actual_width = render_extent.width / cameras.size();
camera.perspective = transform::perspective(radians(camera.fov), static_cast<float>(actual_width) / static_cast<float>(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<float>(actual_width) / static_cast<float>(render_extent.height), camera.near, 100.0f);
} else {
camera.perspective = transform::infinite_perspective(radians(camera.fov), static_cast<float>(actual_width) / static_cast<float>(render_extent.height), camera.near);
}
camera.view = inverse(scene->get<Transform>(obj).model); camera.view = inverse(scene->get<Transform>(obj).model);
Viewport viewport = {}; Viewport viewport = {};