[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50992] trunk/blender/intern/cycles/ blender/blender_camera.cpp: Fix #32725: cycles border render + panorama camera not working in viewport.

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Oct 1 19:09:12 CEST 2012


Revision: 50992
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50992
Author:   blendix
Date:     2012-10-01 17:09:12 +0000 (Mon, 01 Oct 2012)
Log Message:
-----------
Fix #32725: cycles border render + panorama camera not working in viewport. It will
still look a bit strange since the viewport can't actually render such panorama views,
so the opengl drawn scene behind the border render will not match up.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_camera.cpp

Modified: trunk/blender/intern/cycles/blender/blender_camera.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-10-01 16:45:50 UTC (rev 50991)
+++ trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-10-01 17:09:12 UTC (rev 50992)
@@ -94,7 +94,7 @@
 	return fabsf(transform_get_column(&mat, 3).z);
 }
 
-static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob)
+static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob, bool skip_panorama = false)
 {
 	BL::ID b_ob_data = b_ob.data();
 
@@ -111,7 +111,10 @@
 				bcam->type = CAMERA_ORTHOGRAPHIC;
 				break;
 			case BL::Camera::type_PANO:
-				bcam->type = CAMERA_PANORAMA;
+				if(!skip_panorama)
+					bcam->type = CAMERA_PANORAMA;
+				else
+					bcam->type = CAMERA_PERSPECTIVE;
 				break;
 			case BL::Camera::type_PERSP:
 			default:
@@ -378,7 +381,7 @@
 
 /* Sync 3D View Camera */
 
-static void blender_camera_from_view(BlenderCamera *bcam, BL::Scene b_scene, BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height)
+static void blender_camera_from_view(BlenderCamera *bcam, BL::Scene b_scene, BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height, bool skip_panorama = false)
 {
 	/* 3d view parameters */
 	bcam->nearclip = b_v3d.clip_start();
@@ -391,7 +394,7 @@
 		BL::Object b_ob = (b_v3d.lock_camera_and_layers())? b_scene.camera(): b_v3d.camera();
 
 		if(b_ob) {
-			blender_camera_from_object(bcam, b_ob);
+			blender_camera_from_object(bcam, b_ob, skip_panorama);
 
 			/* magic zoom formula */
 			bcam->zoom = (float)b_rv3d.view_camera_zoom();
@@ -447,7 +450,7 @@
 	/* get viewport viewplane */
 	BlenderCamera view_bcam;
 	blender_camera_init(&view_bcam);
-	blender_camera_from_view(&view_bcam, b_scene, b_v3d, b_rv3d, width, height);
+	blender_camera_from_view(&view_bcam, b_scene, b_v3d, b_rv3d, width, height, true);
 
 	blender_camera_viewplane(&view_bcam, width, height,
 		&view_left, &view_right, &view_bottom, &view_top, &view_aspect, &sensor_size);
@@ -460,7 +463,7 @@
 	/* get camera viewplane */
 	BlenderCamera cam_bcam;
 	blender_camera_init(&cam_bcam);
-	blender_camera_from_object(&cam_bcam, b_ob);
+	blender_camera_from_object(&cam_bcam, b_ob, true);
 
 	width = (int)(r.resolution_x()*r.resolution_percentage()/100);
 	height = (int)(r.resolution_y()*r.resolution_percentage()/100);




More information about the Bf-blender-cvs mailing list