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:
parent
bc672e76eb
commit
55e86f94a0
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue