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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-03-20 21:00:25 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-03-20 21:00:25 +0400
commitd78accb5856db99bf3eaeab3141445377794b320 (patch)
tree55e74070bf2e959341cc8d41005c8b61e73ef856 /source/blender/render
parent8486a2187f1334006416d087303c1b5c927035f5 (diff)
Correction for previous commit to make normals direction always inside
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/intern/source/convertblender.c12
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);