From ce3475f747943e031a0f3d99083a959e644530c9 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Fri, 11 Jan 2019 13:38:18 -0200 Subject: Viewport: Stereoscopy drawing is back The viewport stereoscopy support helpers are finally ported to 2.80. We now can scale the camera and the "stereo cameras" will scale in the viewport as well (unlike 2.7x). At the moment I disabled the drawing of the camera frame when stereo is selected and you are looking through the camera. It is to be fixed later, but for now it draws the border wrong. In 2.79 this was not a problem because the camera frame was drawn afterwards as a hack. Viewport > Stereoscopy: * Cameras * Convergence plane * Convergence plane alpha * Stereoscopy volume * Stereoscopy volume alpha --- source/blender/blenkernel/intern/camera.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'source/blender/blenkernel/intern/camera.c') diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c index c39c8dec25d..d791ab01482 100644 --- a/source/blender/blenkernel/intern/camera.c +++ b/source/blender/blenkernel/intern/camera.c @@ -798,6 +798,22 @@ void BKE_camera_multiview_model_matrix_scaled(RenderData *rd, const Object *came } } +void BKE_camera_multiview_window_matrix(RenderData *rd, const Object *camera, const char *viewname, float r_winmat[4][4]) +{ + CameraParams params; + + /* Setup parameters */ + BKE_camera_params_init(¶ms); + BKE_camera_params_from_object(¶ms, camera); + BKE_camera_multiview_params(rd, ¶ms, camera, viewname); + + /* Compute matrix, viewplane, .. */ + BKE_camera_params_compute_viewplane(¶ms, rd->xsch, rd->ysch, rd->xasp, rd->yasp); + BKE_camera_params_compute_matrix(¶ms); + + copy_m4_m4(r_winmat, params.winmat); +} + bool BKE_camera_multiview_spherical_stereo(RenderData *rd, const Object *camera) { Camera *cam; -- cgit v1.2.3