diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-20 21:00:25 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-20 21:00:25 +0400 |
commit | d78accb5856db99bf3eaeab3141445377794b320 (patch) | |
tree | 55e74070bf2e959341cc8d41005c8b61e73ef856 | |
parent | 8486a2187f1334006416d087303c1b5c927035f5 (diff) |
Correction for previous commit to make normals direction always inside
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 8e1e9ba8f65..a4c5adda721 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -2429,7 +2429,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) VlakRen *vlr, *vlr1; Material *ma; float *data, *nors, *orco=NULL, mat[4][4], imat[3][3], xn, yn, zn; - int a, need_orco, vlakindex, *index, is_negative; + int a, need_orco, vlakindex, *index, negative_scale; ListBase dispbase= {NULL, NULL}; if (ob!=find_basis_mball(re->scene, ob)) @@ -2438,6 +2438,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) mult_m4_m4m4(mat, re->viewmat, ob->obmat); invert_m4_m4(ob->imat, mat); copy_m3_m4(imat, ob->imat); + negative_scale = is_negative_m4(mat); ma= give_render_material(re, ob, 1); @@ -2462,8 +2463,6 @@ static void init_render_mball(Render *re, ObjectRen *obr) } } - is_negative = is_negative_m4(re->viewmat); - for(a=0; a<dl->nr; a++, data+=3, nors+=3) { ver= RE_findOrAddVert(obr, obr->totvert++); @@ -2480,8 +2479,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) ver->n[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn; ver->n[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn; normalize_v3(ver->n); - if(is_negative) - negate_v3(ver->n); + //if(ob->transflag & OB_NEG_SCALE) negate_v3(ver->n); if(need_orco) { ver->orco= orco; @@ -2498,7 +2496,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) vlr->v3= RE_findOrAddVert(obr, index[2]); vlr->v4= 0; - if(ob->transflag & OB_NEG_SCALE) + if(negative_scale) normal_tri_v3( vlr->n,vlr->v1->co, vlr->v2->co, vlr->v3->co); else normal_tri_v3( vlr->n,vlr->v3->co, vlr->v2->co, vlr->v1->co); @@ -2515,7 +2513,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) vlr1->index= vlakindex; vlr1->v2= vlr1->v3; vlr1->v3= RE_findOrAddVert(obr, index[3]); - if(ob->transflag & OB_NEG_SCALE) + if(negative_scale) normal_tri_v3( vlr1->n,vlr1->v1->co, vlr1->v2->co, vlr1->v3->co); else normal_tri_v3( vlr1->n,vlr1->v3->co, vlr1->v2->co, vlr1->v1->co); |