[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49420] trunk/blender/intern/cycles/render : Fix cycles issue with wrong texture coordinates on a second render layer with

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Jul 31 17:05:16 CEST 2012


Revision: 49420
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49420
Author:   blendix
Date:     2012-07-31 15:05:16 +0000 (Tue, 31 Jul 2012)
Log Message:
-----------
Fix cycles issue with wrong texture coordinates on a second render layer with
a mask layer enabled.

Modified Paths:
--------------
    trunk/blender/intern/cycles/render/light.cpp
    trunk/blender/intern/cycles/render/object.cpp

Modified: trunk/blender/intern/cycles/render/light.cpp
===================================================================
--- trunk/blender/intern/cycles/render/light.cpp	2012-07-31 15:05:14 UTC (rev 49419)
+++ trunk/blender/intern/cycles/render/light.cpp	2012-07-31 15:05:16 UTC (rev 49420)
@@ -194,10 +194,11 @@
 
 		/* sum area */
 		if(have_emission) {
+			bool transform_applied = mesh->transform_applied;
 			Transform tfm = object->tfm;
 			int object_id = j;
 
-			if(mesh->transform_applied)
+			if(transform_applied)
 				object_id = ~object_id;
 
 			for(size_t i = 0; i < mesh->triangles.size(); i++) {
@@ -211,10 +212,16 @@
 					offset++;
 
 					Mesh::Triangle t = mesh->triangles[i];
-					float3 p1 = transform_point(&tfm, mesh->verts[t.v[0]]);
-					float3 p2 = transform_point(&tfm, mesh->verts[t.v[1]]);
-					float3 p3 = transform_point(&tfm, mesh->verts[t.v[2]]);
+					float3 p1 = mesh->verts[t.v[0]];
+					float3 p2 = mesh->verts[t.v[1]];
+					float3 p3 = mesh->verts[t.v[2]];
 
+					if(!transform_applied) {
+						p1 = transform_point(&tfm, p1);
+						p2 = transform_point(&tfm, p2);
+						p3 = transform_point(&tfm, p3);
+					}
+
 					totarea += triangle_area(p1, p2, p3);
 				}
 			}

Modified: trunk/blender/intern/cycles/render/object.cpp
===================================================================
--- trunk/blender/intern/cycles/render/object.cpp	2012-07-31 15:05:14 UTC (rev 49419)
+++ trunk/blender/intern/cycles/render/object.cpp	2012-07-31 15:05:16 UTC (rev 49420)
@@ -111,8 +111,9 @@
 		mesh->compute_bounds();
 		compute_bounds(false);
 	}
-	
-	tfm = transform_identity();
+
+	/* tfm is not reset to identity, all code that uses it needs to check the
+	   transform_applied boolean */
 }
 
 void Object::tag_update(Scene *scene)




More information about the Bf-blender-cvs mailing list