From f18067aa032a35e8a6cc990b5c250567d0f4d78f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 28 Jun 2022 18:33:25 +0200 Subject: EEVEE-Next: Add Film and RenderBuffers module This modules handles renderpasses allocation and filling. Also handles blitting to viewport framebuffer and render result reading. Changes against the old implementation: - the filling of the renderpasses happens all at once requiring only 1 geometry pass. - The filtering is optimized with weights precomputed on CPU and reuse of neighboor pixels. - Only one accumulation buffer for renderpasses (no ping-pong). - Accumulation happens in one pass for every passes using a single dispatch or fullscreen triangle pass. TAA and history reprojection is not yet implemented. AOVs support is present but with a 16 AOV limit for now. Cryptomatte is not yet implemented. --- source/blender/draw/engines/eevee_next/eevee_camera.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'source/blender/draw/engines/eevee_next/eevee_camera.cc') diff --git a/source/blender/draw/engines/eevee_next/eevee_camera.cc b/source/blender/draw/engines/eevee_next/eevee_camera.cc index e6d2e2db764..1f65f887d46 100644 --- a/source/blender/draw/engines/eevee_next/eevee_camera.cc +++ b/source/blender/draw/engines/eevee_next/eevee_camera.cc @@ -77,9 +77,10 @@ void Camera::init() void Camera::sync() { const Object *camera_eval = inst_.camera_eval_object; - CameraData &data = data_.current(); - data.filter_size = inst_.scene->r.gauss; + data_.swap(); + + CameraData &data = data_.current(); if (inst_.drw_view) { DRW_view_viewmat_get(inst_.drw_view, data.viewmat.ptr(), false); @@ -127,6 +128,10 @@ void Camera::sync() data.equirect_scale *= data.uv_scale; data.equirect_scale_inv = 1.0f / data.equirect_scale; +#else + data.fisheye_fov = data.fisheye_lens = -1.0f; + data.equirect_bias = float2(0.0f); + data.equirect_scale = float2(0.0f); #endif } else if (inst_.drw_view) { @@ -143,7 +148,7 @@ void Camera::sync() /* Detect changes in parameters. */ if (data_.current() != data_.previous()) { - // inst_.sampling.reset(); + inst_.sampling.reset(); } } -- cgit v1.2.3