[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29526] branches/render25/source/blender/ render/intern: Render Branch: removed a bit too much code along with vertex normal flip,

Brecht Van Lommel brecht at blender.org
Thu Jun 17 16:47:03 CEST 2010


Revision: 29526
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29526
Author:   blendix
Date:     2010-06-17 16:47:03 +0200 (Thu, 17 Jun 2010)

Log Message:
-----------
Render Branch: removed a bit too much code along with vertex normal flip,
should work correct again now.

Modified Paths:
--------------
    branches/render25/source/blender/render/intern/include/object_mesh.h
    branches/render25/source/blender/render/intern/source/object_mesh.c
    branches/render25/source/blender/render/intern/source/rayshade.c
    branches/render25/source/blender/render/intern/source/shadeinput.c

Modified: branches/render25/source/blender/render/intern/include/object_mesh.h
===================================================================
--- branches/render25/source/blender/render/intern/include/object_mesh.h	2010-06-17 14:22:54 UTC (rev 29525)
+++ branches/render25/source/blender/render/intern/include/object_mesh.h	2010-06-17 14:47:03 UTC (rev 29526)
@@ -64,7 +64,7 @@
 struct MCol *render_vlak_get_mcol(struct ObjectRen *obr, struct VlakRen *ren, int n, char **name, int verify);
 float *render_vlak_get_surfnor(struct ObjectRen *obr, struct VlakRen *ren, int verify);
 float *render_vlak_get_nmap_tangent(struct ObjectRen *obr, struct VlakRen *ren, int verify);
-int render_vlak_get_normal(struct ObjectInstanceRen *obi, struct VlakRen *vlr, float *nor, int quad);
+void render_vlak_get_normal(struct ObjectInstanceRen *obi, struct VlakRen *vlr, float *nor, int quad);
 
 /* Conversion */
 

Modified: branches/render25/source/blender/render/intern/source/object_mesh.c
===================================================================
--- branches/render25/source/blender/render/intern/source/object_mesh.c	2010-06-17 14:22:54 UTC (rev 29525)
+++ branches/render25/source/blender/render/intern/source/object_mesh.c	2010-06-17 14:47:03 UTC (rev 29526)
@@ -588,10 +588,9 @@
 	return vlrn;
 }
 
-int render_vlak_get_normal(ObjectInstanceRen *obi, VlakRen *vlr, float *nor, int quad)
+void render_vlak_get_normal(ObjectInstanceRen *obi, VlakRen *vlr, float *nor, int quad)
 {
 	float  n[3], (*nmat)[3]= obi->nmat;
-	int flipped= 0;
 
 	if(vlr->v4) {
 		/* in case of non-planar quad the normal is not accurate */
@@ -611,8 +610,6 @@
 	}
 	else
 		copy_v3_v3(nor, n);
-
-	return flipped;
 }
 
 VlakRen *render_object_vlak_get(ObjectRen *obr, int nr)

Modified: branches/render25/source/blender/render/intern/source/rayshade.c
===================================================================
--- branches/render25/source/blender/render/intern/source/rayshade.c	2010-06-17 14:22:54 UTC (rev 29525)
+++ branches/render25/source/blender/render/intern/source/rayshade.c	2010-06-17 14:47:03 UTC (rev 29526)
@@ -562,10 +562,6 @@
 
 	shade_input_set_normals(shi);
 
-	/* point normals to viewing direction */
-	if(dot_v3v3(shi->geometry.facenor, shi->geometry.view) < 0.0f)
-		shade_input_flip_normals(shi);
-
 	shade_input_set_shade_texco(re, shi);
 	if (shi->material.mat->material_type == MA_TYPE_VOLUME) {
 		if(ELEM(is->mode, RE_RAY_SHADOW, RE_RAY_SHADOW_TRA)) {
@@ -1558,10 +1554,6 @@
 
 	shade_input_set_normals(shi);
 
-	/* point normals to viewing direction */
-	if(dot_v3v3(shi->geometry.facenor, shi->geometry.view) < 0.0f)
-		shade_input_flip_normals(shi);
-
 	shade_input_set_shade_texco(re, shi);
 }
 

Modified: branches/render25/source/blender/render/intern/source/shadeinput.c
===================================================================
--- branches/render25/source/blender/render/intern/source/shadeinput.c	2010-06-17 14:22:54 UTC (rev 29525)
+++ branches/render25/source/blender/render/intern/source/shadeinput.c	2010-06-17 14:47:03 UTC (rev 29526)
@@ -144,7 +144,8 @@
 	geom->osatex= (mat->mat->texco & TEXCO_OSA);
 
 	/* facenormal copy, can get flipped */
-	geom->flippednor= render_vlak_get_normal(obi, vlr, geom->facenor, (i3 == 3));
+	geom->flippednor= 0;
+	render_vlak_get_normal(obi, vlr, geom->facenor, (i3 == 3));
 }
 
 /* note, facenr declared volatile due to over-eager -O2 optimizations
@@ -609,6 +610,11 @@
 	copy_v3_v3(geom->vno, geom->vn);
 
 	geom->tangentvn= (prim->vlr->flag & R_TANGENT);
+
+	/* flip normals to viewing direction */
+	if(!geom->tangentvn)
+		if(dot_v3v3(geom->facenor, geom->view) < 0.0f)
+			shade_input_flip_normals(shi);
 }
 
 /* use by raytrace, sss, bake to flip into the right direction */





More information about the Bf-blender-cvs mailing list