[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45029] trunk/blender/source/blender/ render/intern/source/convertblender.c: Fix #30420: Metaball Shading Inverted in Raytrace Reflection (Blender Internal)

Sergey Sharybin sergey.vfx at gmail.com
Tue Mar 20 17:17:34 CET 2012


Revision: 45029
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45029
Author:   nazgul
Date:     2012-03-20 16:17:34 +0000 (Tue, 20 Mar 2012)
Log Message:
-----------
Fix #30420: Metaball Shading Inverted in Raytrace Reflection (Blender Internal)

Issue was caused by negative scale of camera. Metabolls are using procedural
normals and in case of negative scaled camera normals for them shall be flipped.

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:16:17 UTC (rev 45028)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2012-03-20 16:17:34 UTC (rev 45029)
@@ -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;
+	int a, need_orco, vlakindex, *index, is_negative;
 	ListBase dispbase= {NULL, NULL};
 
 	if (ob!=find_basis_mball(re->scene, ob))
@@ -2462,6 +2462,8 @@
 		}
 	}
 
+	is_negative = is_negative_m4(re->viewmat);
+
 	for(a=0; a<dl->nr; a++, data+=3, nors+=3) {
 
 		ver= RE_findOrAddVert(obr, obr->totvert++);
@@ -2478,7 +2480,8 @@
 		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(ob->transflag & OB_NEG_SCALE) negate_v3(ver->n);
+		if(is_negative)
+			negate_v3(ver->n);
 		
 		if(need_orco) {
 			ver->orco= orco;




More information about the Bf-blender-cvs mailing list