[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