[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28047] trunk/blender/source/blender: Fix #21545: geometry node front/back incorrectly depended on camera angle, can
Brecht Van Lommel
brecht at blender.org
Tue Apr 6 12:24:57 CEST 2010
Revision: 28047
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28047
Author: blendix
Date: 2010-04-06 12:24:57 +0200 (Tue, 06 Apr 2010)
Log Message:
-----------
Fix #21545: geometry node front/back incorrectly depended on camera angle, can
actually be implemented simpler now.
Modified Paths:
--------------
trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
trunk/blender/source/blender/render/intern/source/shadeinput.c
Modified: trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_geom.c 2010-04-06 10:13:19 UTC (rev 28046)
+++ trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_geom.c 2010-04-06 10:24:57 UTC (rev 28047)
@@ -54,7 +54,6 @@
NodeGeometry *ngeo= (NodeGeometry*)node->storage;
ShadeInputUV *suv= &shi->uv[shi->actuv];
static float defaultvcol[4] = {1.0f, 1.0f, 1.0f, 1.0f};
- static float front= 0.0;
int i;
if(ngeo->uvname[0]) {
@@ -109,14 +108,8 @@
out[GEOM_OUT_NORMAL]->datatype= NS_OSA_VECTORS;
}
- /* front/back
- * check the original un-flipped normals to determine front or back side */
- if (shi->orignor[2] < FLT_EPSILON) {
- front= 1.0f;
- } else {
- front = 0.0f;
- }
- out[GEOM_OUT_FRONTBACK]->vec[0]= front;
+ /* front/back, normal flipping was stored */
+ out[GEOM_OUT_FRONTBACK]->vec[0]= (shi->flippednor)? 0.0f: 1.0f;
}
}
Modified: trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_shader_ext.h 2010-04-06 10:13:19 UTC (rev 28046)
+++ trunk/blender/source/blender/render/extern/include/RE_shader_ext.h 2010-04-06 10:24:57 UTC (rev 28047)
@@ -166,9 +166,6 @@
int depth; /* 1 or larger on raytrace shading */
int volume_depth; /* number of intersections through volumes */
- /* stored copy of original face normal (facenor)
- * before flipping. Used in Front/back output on geometry node */
- float orignor[3];
/* for strand shading, normal at the surface */
float surfnor[3], surfdist;
Modified: trunk/blender/source/blender/render/intern/source/shadeinput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeinput.c 2010-04-06 10:13:19 UTC (rev 28046)
+++ trunk/blender/source/blender/render/intern/source/shadeinput.c 2010-04-06 10:24:57 UTC (rev 28047)
@@ -276,11 +276,6 @@
/* facenormal copy, can get flipped */
shi->flippednor= RE_vlakren_get_normal(&R, obi, vlr, shi->facenor);
- /* copy of original pre-flipped normal, for geometry->front/back node output */
- VECCOPY(shi->orignor, shi->facenor);
- if(shi->flippednor)
- VECMUL(shi->orignor, -1.0f);
-
/* calculate vertexnormals */
if(vlr->flag & R_SMOOTH) {
VECCOPY(shi->n1, shi->v1->n);
@@ -372,7 +367,6 @@
/* facenormal, simply viewco flipped */
VECCOPY(shi->facenor, spoint->nor);
- VECCOPY(shi->orignor, shi->facenor);
/* shade_input_set_normals equivalent */
if(shi->mat->mode & MA_TANGENT_STR) {
More information about the Bf-blender-cvs
mailing list