[Bf-blender-cvs] [a447421] master: Bake API: add assert to verify we have valid UVs.

Brecht Van Lommel noreply at git.blender.org
Sun Feb 21 15:11:15 CET 2016


Commit: a447421dec85bff477bd5c16934914d2135dc17a
Author: Brecht Van Lommel
Date:   Sun Feb 21 14:30:37 2016 +0100
Branches: master
https://developer.blender.org/rBa447421dec85bff477bd5c16934914d2135dc17a

Bake API: add assert to verify we have valid UVs.

===================================================================

M	source/blender/render/intern/source/bake_api.c

===================================================================

diff --git a/source/blender/render/intern/source/bake_api.c b/source/blender/render/intern/source/bake_api.c
index f5e0d49..4101acf 100644
--- a/source/blender/render/intern/source/bake_api.c
+++ b/source/blender/render/intern/source/bake_api.c
@@ -319,9 +319,11 @@ static bool cast_ray_highpoly(
 	if (hit_mesh != -1) {
 		int primitive_id_high = hits[hit_mesh].index;
 		TriTessFace *triangle_high = &triangles[hit_mesh][primitive_id_high];
+		BakePixel *pixel_low = &pixel_array_low[pixel_id];
+		BakePixel *pixel_high = &pixel_array[pixel_id];
 
-		pixel_array[pixel_id].primitive_id = primitive_id_high;
-		pixel_array[pixel_id].object_id = hit_mesh;
+		pixel_high->primitive_id = primitive_id_high;
+		pixel_high->object_id = hit_mesh;
 
 		/* ray direction in high poly object space */
 		float dir_high[3];
@@ -333,10 +335,10 @@ static bool cast_ray_highpoly(
 		sub_v3_v3v3(duco_low, triangle_low->mverts[0]->co, triangle_low->mverts[2]->co);
 		sub_v3_v3v3(dvco_low, triangle_low->mverts[1]->co, triangle_low->mverts[2]->co);
 
-		mul_v3_v3fl(dxco, duco_low, pixel_array_low[pixel_id].du_dx);
-		madd_v3_v3fl(dxco, dvco_low, pixel_array_low[pixel_id].dv_dx);
-		mul_v3_v3fl(dyco, duco_low, pixel_array_low[pixel_id].du_dy);
-		madd_v3_v3fl(dyco, dvco_low, pixel_array_low[pixel_id].dv_dy);
+		mul_v3_v3fl(dxco, duco_low, pixel_low->du_dx);
+		madd_v3_v3fl(dxco, dvco_low, pixel_low->dv_dx);
+		mul_v3_v3fl(dyco, duco_low, pixel_low->du_dy);
+		madd_v3_v3fl(dyco, dvco_low, pixel_low->dv_dy);
 
 		/* transform from low poly to to high poly object space */
 		mul_mat3_m4_v3(mat_low, dxco);
@@ -355,9 +357,14 @@ static bool cast_ray_highpoly(
 			hits[hit_mesh].co, triangle_high->mverts[0]->co,
 			triangle_high->mverts[1]->co, triangle_high->mverts[2]->co,
 			dxco, dyco, triangle_high->normal, true,
-			&pixel_array[pixel_id].uv[0], &pixel_array[pixel_id].uv[1],
-			&pixel_array[pixel_id].du_dx, &pixel_array[pixel_id].dv_dx,
-			&pixel_array[pixel_id].du_dy, &pixel_array[pixel_id].dv_dy);
+			&pixel_high->uv[0], &pixel_high->uv[1],
+			&pixel_high->du_dx, &pixel_high->dv_dx,
+			&pixel_high->du_dy, &pixel_high->dv_dy);
+
+		/* verify we have valid uvs */
+		BLI_assert(pixel_high->uv[0] >= -1e-3f &&
+		           pixel_high->uv[1] >= -1e-3f &&
+		           pixel_high->uv[0] + pixel_high->uv[1] <= 1.0f + 1e-3f);
 	}
 	else {
 		pixel_array[pixel_id].primitive_id = -1;




More information about the Bf-blender-cvs mailing list