Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2005-04-13 16:06:59 +0400
committerDaniel Dunbar <daniel@zuster.org>2005-04-13 16:06:59 +0400
commit48c5b10ea127251468c83cbb924a8ddb8b130569 (patch)
tree0b045f8d0a7660c18ad096996c6707a68911de67 /source/blender/renderconverter
parent9b354599e04af6a9e203df23f6b3f6c6f04783f2 (diff)
- quick fix for bug #2412, render normal was not initialized for mesh
edges. fix by average two edge endpoint vertex normals.
Diffstat (limited to 'source/blender/renderconverter')
-rw-r--r--source/blender/renderconverter/intern/convertBlenderScene.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c
index eb69ab601c3..cbb3239dd67 100644
--- a/source/blender/renderconverter/intern/convertBlenderScene.c
+++ b/source/blender/renderconverter/intern/convertBlenderScene.c
@@ -1555,11 +1555,15 @@ static void init_render_mesh(Object *ob)
/* exception... we do edges for wire mode. potential conflict when faces exist... */
end= dlm?dlm->totedge:me->totedge;
+ mvert= dlm?dlm->mvert:me->mvert;
ma= give_render_material(ob, 1);
if(end && (ma->mode & MA_WIRE)) {
MEdge *medge;
medge= dlm?dlm->medge:me->medge;
for(a1=0; a1<end; a1++, medge++) {
+ MVert *v0 = &mvert[vertofs+medge->v1];
+ MVert *v1 = &mvert[vertofs+medge->v2];
+
vlr= RE_findOrAddVlak(R.totvlak++);
vlr->ob= vlr_set_ob(ob);
vlr->v1= RE_findOrAddVert(vertofs+medge->v1);
@@ -1567,7 +1571,16 @@ static void init_render_mesh(Object *ob)
vlr->v3= vlr->v2;
vlr->v4= NULL;
- vlr->n[0]=vlr->n[1]=vlr->n[2]= 0.0;
+ xn= (v0->no[0]+v1->no[0]);
+ yn= (v0->no[1]+v1->no[1]);
+ zn= (v0->no[2]+v1->no[2]);
+ if(do_puno==0) {
+ /* transpose ! */
+ vlr->n[0]= imat[0][0]*xn+imat[0][1]*yn+imat[0][2]*zn;
+ vlr->n[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn;
+ vlr->n[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn;
+ Normalise(vlr->n);
+ }
vlr->mat= ma;
vlr->flag= 0;