diff options
author | Miguel Pozo <pragma37@gmail.com> | 2022-11-10 15:01:06 +0300 |
---|---|---|
committer | Miguel Pozo <pragma37@gmail.com> | 2022-11-10 15:01:06 +0300 |
commit | 55e86f94a08d4c66c2ac327730b82513eb84d04b (patch) | |
tree | f3b6487ab3462e257f1d5ab651df712892da2774 | |
parent | bc672e76eb1cfe151b42b4cd58bac95f525b2daa (diff) |
EEVEE Next: Fix wrong DoF when a non-camera object is the active camera
Related to T101533.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D16412
-rw-r--r-- | source/blender/draw/engines/eevee_next/eevee_camera.cc | 4 | ||||
-rw-r--r-- | source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_camera.cc b/source/blender/draw/engines/eevee_next/eevee_camera.cc index ad22219f0ae..4331db4bc4c 100644 --- a/source/blender/draw/engines/eevee_next/eevee_camera.cc +++ b/source/blender/draw/engines/eevee_next/eevee_camera.cc @@ -32,7 +32,7 @@ void Camera::init() CameraData &data = data_; - if (camera_eval) { + if (camera_eval && camera_eval->type == OB_CAMERA) { const ::Camera *cam = reinterpret_cast<const ::Camera *>(camera_eval->data); switch (cam->type) { default: @@ -112,7 +112,7 @@ void Camera::sync() data.uv_bias = float2(0.0f); } - if (camera_eval) { + if (camera_eval && camera_eval->type == OB_CAMERA) { const ::Camera *cam = reinterpret_cast<const ::Camera *>(camera_eval->data); data.clip_near = cam->clip_start; data.clip_far = cam->clip_end; diff --git a/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc b/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc index e4c4f6f3f6f..8672cce80b6 100644 --- a/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc +++ b/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc @@ -44,7 +44,7 @@ void DepthOfField::init() { const SceneEEVEE &sce_eevee = inst_.scene->eevee; const Object *camera_object_eval = inst_.camera_eval_object; - const ::Camera *camera = (camera_object_eval) ? + const ::Camera *camera = (camera_object_eval && camera_object_eval->type == OB_CAMERA) ? reinterpret_cast<const ::Camera *>(camera_object_eval->data) : nullptr; if (camera == nullptr) { @@ -70,7 +70,7 @@ void DepthOfField::sync() { const Camera &camera = inst_.camera; const Object *camera_object_eval = inst_.camera_eval_object; - const ::Camera *camera_data = (camera_object_eval) ? + const ::Camera *camera_data = (camera_object_eval && camera_object_eval->type == OB_CAMERA) ? reinterpret_cast<const ::Camera *>(camera_object_eval->data) : nullptr; |