diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-05-22 19:30:35 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-05-22 19:30:35 +0400 |
commit | 1b008770519fbbe6be95a794d0ed6f5f62d434b9 (patch) | |
tree | fe92c4dfb1235c8672b34e45edb7457cbc66c729 /source/blender/render | |
parent | 5463828bd2f62b10640e91637942b8784a7eee5c (diff) |
Fix for bug #12077: tangent shading (which only affects specular) made
bump mapping not work for diffuse.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/texture.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 3d448b66e93..27628d91465 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1844,24 +1844,24 @@ void do_material_tex(ShadeInput *shi) } } else { + float nor[3], dot; + if(shi->mat->mode & MA_TANGENT_V) { shi->tang[0]+= Tnor*tex->norfac*texres.nor[0]; shi->tang[1]+= Tnor*tex->norfac*texres.nor[1]; shi->tang[2]+= Tnor*tex->norfac*texres.nor[2]; } - else { - float nor[3], dot; - /* prevent bump to become negative normal */ - nor[0]= Tnor*tex->norfac*texres.nor[0]; - nor[1]= Tnor*tex->norfac*texres.nor[1]; - nor[2]= Tnor*tex->norfac*texres.nor[2]; - - dot= 0.5f + 0.5f*INPR(nor, shi->vn); - - shi->vn[0]+= dot*nor[0]; - shi->vn[1]+= dot*nor[1]; - shi->vn[2]+= dot*nor[2]; - } + + /* prevent bump to become negative normal */ + nor[0]= Tnor*tex->norfac*texres.nor[0]; + nor[1]= Tnor*tex->norfac*texres.nor[1]; + nor[2]= Tnor*tex->norfac*texres.nor[2]; + + dot= 0.5f + 0.5f*INPR(nor, shi->vn); + + shi->vn[0]+= dot*nor[0]; + shi->vn[1]+= dot*nor[1]; + shi->vn[2]+= dot*nor[2]; } Normalize(shi->vn); |