diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-04-12 22:44:03 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-04-12 22:44:03 +0400 |
commit | f8d1bc8ee7f7138927873ca0fce7eb06b901feb1 (patch) | |
tree | fc2ed58ff606354a299c2375eef471147274494c | |
parent | ea4a315f3d0f4addcb70ce91a26f1cf584a3e2dc (diff) |
Fix for bug #8463: object texture mapping for duplis was changed to
act as if the object was in its original position, instead of being
different for all instances. However, this is desired behavior in
some cases and so breaks compatibility. Now it only does the new
behavior when enabling the "From Original" option.
-rw-r--r-- | source/blender/makesdna/DNA_texture_types.h | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/texture.c | 5 | ||||
-rw-r--r-- | source/blender/src/buttons_shading.c | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index bc2b0521d4f..fbf838b0e12 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -353,6 +353,7 @@ typedef struct TexMapping { #define MTEX_ALPHAMIX 8 #define MTEX_VIEWSPACE 16 #define MTEX_DUPLI_MAPTO 32 +#define MTEX_OB_DUPLI_ORIG 64 /* blendtype */ #define MTEX_BLEND 0 diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 6af3b711028..737b1d2d747 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1468,8 +1468,9 @@ void do_material_tex(ShadeInput *shi) dx= dxt; dy= dyt; VECCOPY(tempvec, shi->co); - if(shi->obi && shi->obi->duplitexmat) - MTC_Mat4MulVecfl(shi->obi->duplitexmat, tempvec); + if(mtex->texflag & MTEX_OB_DUPLI_ORIG) + if(shi->obi && shi->obi->duplitexmat) + MTC_Mat4MulVecfl(shi->obi->duplitexmat, tempvec); MTC_Mat4MulVecfl(ob->imat, tempvec); if(shi->osatex) { VECCOPY(dxt, shi->dxco); diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c index 4ff6ff7b7d9..880076de162 100644 --- a/source/blender/src/buttons_shading.c +++ b/source/blender/src/buttons_shading.c @@ -3429,6 +3429,9 @@ static void material_panel_map_input(Object *ob, Material *ma) if(ELEM(mtex->texco, TEXCO_UV, TEXCO_ORCO)) uiDefButBitS(block, TOG, MTEX_DUPLI_MAPTO, B_MATPRV, "From Dupli", 820,140,88,18, &(mtex->texflag), 0, 0, 0, 0, "If object is duplicated by vertices, faces or particles, inherit texture coordinate from parent object"); + else if(mtex->texco == TEXCO_OBJECT) + uiDefButBitS(block, TOG, MTEX_OB_DUPLI_ORIG, B_MATPRV, "From Original", 820,140,88,18, &(mtex->texflag), 0, 0, 0, 0, "If object is duplicated, use object coordinates as if the object was in its original position"); + /* COORDS */ uiBlockBeginAlign(block); |