- Fixed Displacement Hollow vs. Solid problem. Test for flipped

normals was commented out.
This commit is contained in:
Robert Wenzlaff 2004-01-21 01:53:56 +00:00
parent 2883110a54
commit 24bb131b7c

@ -3074,9 +3074,7 @@ void displace_render_face(VlakRen *vlr, float *scale)
nor); nor);
xn= vlr->n[0]*nor[0]+vlr->n[1]*nor[1]+vlr->n[2]*nor[2]; xn= vlr->n[0]*nor[0]+vlr->n[1]*nor[1]+vlr->n[2]*nor[2];
//if (xn<0.0) flipnorm=1; if (xn<0.0) flipnorm=1;
//printf("before vlr->n=%f, %f, %f flipn=%i\n", vlr->n[0], vlr->n[1], vlr->n[2], flipnorm);
/* UV coords must come from face */ /* UV coords must come from face */
hasuv = vlr->tface && (shi.matren->texco & TEXCO_UV); hasuv = vlr->tface && (shi.matren->texco & TEXCO_UV);
@ -3089,7 +3087,6 @@ void displace_render_face(VlakRen *vlr, float *scale)
shi.uv[0] = 2*vlr->tface->uv[0][0]-1.0f; /* shi.uv and tface->uv are */ shi.uv[0] = 2*vlr->tface->uv[0][0]-1.0f; /* shi.uv and tface->uv are */
shi.uv[1]= 2*vlr->tface->uv[0][1]-1.0f; /* scalled differently */ shi.uv[1]= 2*vlr->tface->uv[0][1]-1.0f; /* scalled differently */
} }
//printf("v1 ");
displace_render_vert(&shi, vlr->v1, scale); displace_render_vert(&shi, vlr->v1, scale);
} }
@ -3098,7 +3095,6 @@ void displace_render_face(VlakRen *vlr, float *scale)
shi.uv[0] = 2*vlr->tface->uv[1][0]-1.0f; shi.uv[0] = 2*vlr->tface->uv[1][0]-1.0f;
shi.uv[1]= 2*vlr->tface->uv[1][1]-1.0f; shi.uv[1]= 2*vlr->tface->uv[1][1]-1.0f;
} }
//printf("v2 ");
displace_render_vert(&shi, vlr->v2, scale); displace_render_vert(&shi, vlr->v2, scale);
} }
@ -3107,7 +3103,6 @@ void displace_render_face(VlakRen *vlr, float *scale)
shi.uv[0] = 2*vlr->tface->uv[2][0]-1.0f; shi.uv[0] = 2*vlr->tface->uv[2][0]-1.0f;
shi.uv[1]= 2*vlr->tface->uv[2][1]-1.0f; shi.uv[1]= 2*vlr->tface->uv[2][1]-1.0f;
} }
//printf("v3 ");
displace_render_vert(&shi, vlr->v3, scale); displace_render_vert(&shi, vlr->v3, scale);
} }
@ -3117,8 +3112,7 @@ void displace_render_face(VlakRen *vlr, float *scale)
shi.uv[0] = 2*vlr->tface->uv[3][0]-1.0f; shi.uv[0] = 2*vlr->tface->uv[3][0]-1.0f;
shi.uv[1]= 2*vlr->tface->uv[3][1]-1.0f; shi.uv[1]= 2*vlr->tface->uv[3][1]-1.0f;
} }
//printf("v4 "); displace_render_vert(&shi, vlr->v4, scale);
displace_render_vert(&shi, vlr->v4, scale);
} }
/* We want to split the quad along the opposite verts that are */ /* We want to split the quad along the opposite verts that are */
/* closest in displace value. This will help smooth edges. */ /* closest in displace value. This will help smooth edges. */
@ -3140,7 +3134,7 @@ void displace_render_face(VlakRen *vlr, float *scale)
else vlr->len= CalcNormFloat(vlr->v3->co, vlr->v2->co, vlr->v1->co, else vlr->len= CalcNormFloat(vlr->v3->co, vlr->v2->co, vlr->v1->co,
vlr->n); vlr->n);
} }
//printf("after vlr->n=%f, %f, %f\n\n", vlr->n[0], vlr->n[1], vlr->n[2]);
} }
void displace_render_vert(ShadeInput *shi, VertRen *vr, float *scale) void displace_render_vert(ShadeInput *shi, VertRen *vr, float *scale)