[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45031] trunk/blender/source/blender/ render/intern/source/convertblender.c: Correction for previous commit to make normals direction always inside

Sergey Sharybin sergey.vfx at gmail.com
Tue Mar 20 18:00:25 CET 2012


Revision: 45031
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45031
Author:   nazgul
Date:     2012-03-20 17:00:25 +0000 (Tue, 20 Mar 2012)
Log Message:
-----------
Correction for previous commit to make normals direction always inside

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/convertblender.c

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2012-03-20 16:59:00 UTC (rev 45030)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2012-03-20 17:00:25 UTC (rev 45031)
@@ -2429,7 +2429,7 @@
 	VlakRen *vlr, *vlr1;
 	Material *ma;
 	float *data, *nors, *orco=NULL, mat[4][4], imat[3][3], xn, yn, zn;
-	int a, need_orco, vlakindex, *index, is_negative;
+	int a, need_orco, vlakindex, *index, negative_scale;
 	ListBase dispbase= {NULL, NULL};
 
 	if (ob!=find_basis_mball(re->scene, ob))
@@ -2438,6 +2438,7 @@
 	mult_m4_m4m4(mat, re->viewmat, ob->obmat);
 	invert_m4_m4(ob->imat, mat);
 	copy_m3_m4(imat, ob->imat);
+	negative_scale = is_negative_m4(mat);
 
 	ma= give_render_material(re, ob, 1);
 
@@ -2462,8 +2463,6 @@
 		}
 	}
 
-	is_negative = is_negative_m4(re->viewmat);
-
 	for(a=0; a<dl->nr; a++, data+=3, nors+=3) {
 
 		ver= RE_findOrAddVert(obr, obr->totvert++);
@@ -2480,8 +2479,7 @@
 		ver->n[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn;
 		ver->n[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn;
 		normalize_v3(ver->n);
-		if(is_negative)
-			negate_v3(ver->n);
+		//if(ob->transflag & OB_NEG_SCALE) negate_v3(ver->n);
 		
 		if(need_orco) {
 			ver->orco= orco;
@@ -2498,7 +2496,7 @@
 		vlr->v3= RE_findOrAddVert(obr, index[2]);
 		vlr->v4= 0;
 
-		if(ob->transflag & OB_NEG_SCALE) 
+		if(negative_scale)
 			normal_tri_v3( vlr->n,vlr->v1->co, vlr->v2->co, vlr->v3->co);
 		else
 			normal_tri_v3( vlr->n,vlr->v3->co, vlr->v2->co, vlr->v1->co);
@@ -2515,7 +2513,7 @@
 			vlr1->index= vlakindex;
 			vlr1->v2= vlr1->v3;
 			vlr1->v3= RE_findOrAddVert(obr, index[3]);
-			if(ob->transflag & OB_NEG_SCALE) 
+			if(negative_scale)
 				normal_tri_v3( vlr1->n,vlr1->v1->co, vlr1->v2->co, vlr1->v3->co);
 			else
 				normal_tri_v3( vlr1->n,vlr1->v3->co, vlr1->v2->co, vlr1->v1->co);




More information about the Bf-blender-cvs mailing list