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
This commit is contained in:
Miguel Pozo 2022-11-10 13:01:06 +01:00
parent bc672e76eb
commit 55e86f94a0
2 changed files with 4 additions and 4 deletions

View File

@ -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;

View File

@ -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;