Fix for using non camera objects as a camera having zero area view-frame
This commit is contained in:
@@ -198,6 +198,10 @@ void BKE_camera_params_init(CameraParams *params)
|
||||
params->sensor_fit = CAMERA_SENSOR_FIT_AUTO;
|
||||
|
||||
params->zoom = 1.0f;
|
||||
|
||||
/* fallback for non camera objects */
|
||||
params->clipsta = 0.1f;
|
||||
params->clipsta = 100.0f;
|
||||
}
|
||||
|
||||
void BKE_camera_params_from_object(CameraParams *params, Object *ob)
|
||||
|
||||
@@ -950,6 +950,9 @@ static void view3d_camera_border(Scene *scene, ARegion *ar, View3D *v3d, RegionV
|
||||
|
||||
/* get camera viewplane */
|
||||
BKE_camera_params_init(¶ms);
|
||||
/* fallback for non camera objects */
|
||||
params.clipsta = v3d->near;
|
||||
params.clipend = v3d->far;
|
||||
BKE_camera_params_from_object(¶ms, v3d->camera);
|
||||
if (no_shift) {
|
||||
params.shiftx = 0.0f;
|
||||
@@ -2746,6 +2749,9 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
|
||||
CameraParams params;
|
||||
|
||||
BKE_camera_params_init(¶ms);
|
||||
/* fallback for non camera objects */
|
||||
params.clipsta = v3d->near;
|
||||
params.clipend = v3d->far;
|
||||
BKE_camera_params_from_object(¶ms, v3d->camera);
|
||||
BKE_camera_params_compute_viewplane(¶ms, sizex, sizey, scene->r.xasp, scene->r.yasp);
|
||||
BKE_camera_params_compute_matrix(¶ms);
|
||||
|
||||
@@ -2533,6 +2533,8 @@ static void view3d_from_minmax(bContext *C, View3D *v3d, ARegion *ar,
|
||||
if (rv3d->persp == RV3D_CAMOB && ED_view3d_camera_lock_check(v3d, rv3d)) {
|
||||
CameraParams params;
|
||||
BKE_camera_params_init(¶ms);
|
||||
params.clipsta = v3d->near;
|
||||
params.clipend = v3d->far;
|
||||
BKE_camera_params_from_object(¶ms, v3d->camera);
|
||||
|
||||
lens = params.lens;
|
||||
|
||||
Reference in New Issue
Block a user