[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38054] trunk/blender/source/blender/ blenlib/intern/uvproject.c: fix 2 bugs in project from view from a camera object

Campbell Barton ideasman42 at gmail.com
Sun Jul 3 12:48:18 CEST 2011


Revision: 38054
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38054
Author:   campbellbarton
Date:     2011-07-03 10:48:18 +0000 (Sun, 03 Jul 2011)
Log Message:
-----------
fix 2 bugs in project from view from a camera object
- panorama mode was scaled 2x too high.
- scaled camera objects would incorrectly effect the result.

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/uvproject.c

Modified: trunk/blender/source/blender/blenlib/intern/uvproject.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/uvproject.c	2011-07-03 07:48:19 UTC (rev 38053)
+++ trunk/blender/source/blender/blenlib/intern/uvproject.c	2011-07-03 10:48:18 UTC (rev 38054)
@@ -70,7 +70,7 @@
 			vec2d[0]= pv4[0];
 			vec2d[1]= pv4[2];
 			target[0]= angle * ((float)M_PI / uci->camangle);
-			target[1]= pv4[1] / (len_v2(vec2d) * uci->camsize);
+			target[1]= pv4[1] / (len_v2(vec2d) * (uci->camsize * 2.0f));
 		}
 	}
 	else {
@@ -146,7 +146,11 @@
 	uci.camangle= lens_to_angle(camera->lens) / 2.0f;
 	uci.camsize= uci.do_persp ? tanf(uci.camangle) : camera->ortho_scale;
 
-	if (invert_m4_m4(uci.caminv, ob->obmat)) {
+	/* account for scaled cameras */
+	copy_m4_m4(uci.caminv, ob->obmat);
+	normalize_m4(uci.caminv);
+
+	if (invert_m4(uci.caminv)) {
 		UvCameraInfo *uci_pt;
 
 		/* normal projection */




More information about the Bf-blender-cvs mailing list