[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