[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