[Bf-blender-cvs] [95074bc] HMD_viewport: Always use parallel convergence in HMD mode

Julian Eisel noreply at git.blender.org
Wed Jun 8 20:09:35 CEST 2016


Commit: 95074bcd129778c5b7fcfb32d37b789360059710
Author: Julian Eisel
Date:   Wed Jun 8 20:06:30 2016 +0200
Branches: HMD_viewport
https://developer.blender.org/rB95074bcd129778c5b7fcfb32d37b789360059710

Always use parallel convergence in HMD mode

Previously it was just using whatever was set in non-HMD mode.
I guess using parallel convergence for usage with HMDs is correct, could be wrong though ;)

===================================================================

M	source/blender/blenkernel/intern/camera.c
M	source/blender/editors/space_view3d/drawobject.c

===================================================================

diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index b733460..1f6f211e 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -742,6 +742,8 @@ static void camera_stereo3d_model_matrix(
 			interocular_distance = device_ipd;
 		}
 	}
+#else
+	UNUSED_VARS(is_hmd);
 #endif
 
 	if (((pivot == CAM_S3D_PIVOT_LEFT) && is_left) ||
@@ -762,7 +764,12 @@ static void camera_stereo3d_model_matrix(
 	fac_signed = is_left ? fac : -fac;
 
 	/* rotation */
-	if (convergence_mode == CAM_S3D_TOE) {
+	if (convergence_mode == CAM_S3D_TOE
+#ifdef WITH_INPUT_HMD
+	    && !is_hmd
+#endif
+	    )
+	{
 		float angle;
 		float angle_sin, angle_cos;
 		float toeinmat[4][4];
@@ -980,7 +987,7 @@ float BKE_camera_multiview_shift_x(RenderData *rd, Object *camera, const char *v
 	if (!is_multiview) {
 		return data->shiftx;
 	}
-	else if (rd->views_format == SCE_VIEWS_FORMAT_MULTIVIEW) {
+	else if (ELEM(rd->views_format, SCE_VIEWS_FORMAT_MULTIVIEW, SCE_VIEWS_FORMAT_HMD)) {
 		return data->shiftx;
 	}
 	else { /* SCE_VIEWS_SETUP_BASIC */
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 8487726..f56488d 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -1879,6 +1879,12 @@ static void drawcamera_stereo3d(
 	const bool is_stereo3d_cameras = (v3d->stereo3d_flag & V3D_S3D_DISPCAMERAS) && (scene->r.views_format == SCE_VIEWS_FORMAT_STEREO_3D);
 	const bool is_stereo3d_plane = (v3d->stereo3d_flag & V3D_S3D_DISPPLANE) && (scene->r.views_format == SCE_VIEWS_FORMAT_STEREO_3D);
 	const bool is_stereo3d_volume = (v3d->stereo3d_flag & V3D_S3D_DISPVOLUME);
+	const bool is_hmd =
+#ifdef WITH_INPUT_HMD
+	        scene->r.views_format == SCE_VIEWS_FORMAT_HMD;
+#else
+	        false;
+#endif
 
 	zero_v3(tvec);
 
@@ -1895,7 +1901,7 @@ static void drawcamera_stereo3d(
 		copy_m3_m3(vec_lr[i], vec);
 		copy_v3_v3(vec_lr[i][3], vec[3]);
 
-		if (cam->stereo.convergence_mode == CAM_S3D_OFFAXIS) {
+		if (cam->stereo.convergence_mode == CAM_S3D_OFFAXIS && !is_hmd) {
 			const float shift_x =
 			        ((BKE_camera_multiview_shift_x(&scene->r, ob, names[i]) - cam->shiftx) *
 			         (drawsize * scale[0] * fac));




More information about the Bf-blender-cvs mailing list