From 32792a58e3c420950172a6edbfeea797f98e868e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 13 Aug 2010 16:59:11 +0000 Subject: bugfix [#22037] OBJ exporter produce wrong UV --- release/scripts/io/import_scene_obj.py | 22 ++++++++-------------- source/blender/makesrna/intern/rna_material_api.c | 7 ++++--- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/release/scripts/io/import_scene_obj.py b/release/scripts/io/import_scene_obj.py index 03adc8be395..3827b3225b6 100644 --- a/release/scripts/io/import_scene_obj.py +++ b/release/scripts/io/import_scene_obj.py @@ -375,38 +375,32 @@ def create_materials(filepath, material_libs, unique_materials, unique_material_ # Image has alpha # XXX bitmask won't work? - blender_material.add_texture(texture, "UV", ("COLOR", "ALPHA")) + blender_material.add_texture(texture, 'UV', {'COLOR', 'ALPHA'}) texture.mipmap = True texture.interpolation = True texture.use_alpha = True - blender_material.z_transparency = True + blender_material.transparency = True blender_material.alpha = 0.0 - -# blender_material.setTexture(0, texture, Texture.TexCo.UV, Texture.MapTo.COL | Texture.MapTo.ALPHA) -# texture.setImageFlags('MipMap', 'InterPol', 'UseAlpha') -# blender_material.mode |= Material.Modes.ZTRANSP -# blender_material.alpha = 0.0 else: - blender_material.add_texture(texture, "UV", "COLOR") -# blender_material.setTexture(0, texture, Texture.TexCo.UV, Texture.MapTo.COL) + blender_material.add_texture(texture, 'UV', 'COLOR') # adds textures to faces (Textured/Alt-Z mode) # Only apply the diffuse texture to the face if the image has not been set with the inline usemat func. unique_material_images[context_material_name]= image, has_data # set the texface image elif type == 'Ka': - blender_material.add_texture(texture, "UV", "AMBIENT") + blender_material.add_texture(texture, 'UV', 'AMBIENT') # blender_material.setTexture(1, texture, Texture.TexCo.UV, Texture.MapTo.CMIR) # TODO- Add AMB to BPY API elif type == 'Ks': - blender_material.add_texture(texture, "UV", "SPECULARITY") + blender_material.add_texture(texture, 'UV', 'SPECULARITY') # blender_material.setTexture(2, texture, Texture.TexCo.UV, Texture.MapTo.SPEC) elif type == 'Bump': - blender_material.add_texture(texture, "UV", "NORMAL") + blender_material.add_texture(texture, 'UV', 'NORMAL') # blender_material.setTexture(3, texture, Texture.TexCo.UV, Texture.MapTo.NOR) elif type == 'D': - blender_material.add_texture(texture, "UV", "ALPHA") + blender_material.add_texture(texture, 'UV', 'ALPHA') blender_material.z_transparency = True blender_material.alpha = 0.0 # blender_material.setTexture(4, texture, Texture.TexCo.UV, Texture.MapTo.ALPHA) @@ -415,7 +409,7 @@ def create_materials(filepath, material_libs, unique_materials, unique_material_ # Todo, unset deffuse material alpha if it has an alpha channel elif type == 'refl': - blender_material.add_texture(texture, "UV", "REFLECTION") + blender_material.add_texture(texture, 'UV', 'REFLECTION') # blender_material.setTexture(5, texture, Texture.TexCo.UV, Texture.MapTo.REF) diff --git a/source/blender/makesrna/intern/rna_material_api.c b/source/blender/makesrna/intern/rna_material_api.c index 03eba157bf3..43c1a9be765 100644 --- a/source/blender/makesrna/intern/rna_material_api.c +++ b/source/blender/makesrna/intern/rna_material_api.c @@ -42,7 +42,7 @@ Adds material to the first free texture slot. If all slots are busy, replaces the first. */ -static void rna_Material_add_texture(Material *ma, Tex *tex, int mapto, int texco) +static void rna_Material_add_texture(Material *ma, Tex *tex, int texco, int mapto) { int i; MTex *mtex; @@ -71,8 +71,8 @@ static void rna_Material_add_texture(Material *ma, Tex *tex, int mapto, int texc if (tex) id_us_plus(&tex->id); - mtex->texco= mapto; - mtex->mapto= texco; + mtex->texco= texco; + mtex->mapto= mapto; } #else @@ -121,6 +121,7 @@ void RNA_api_material(StructRNA *srna) RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_enum(func, "texture_coordinates", prop_texture_coordinates_items, TEXCO_UV, "", "Source of texture coordinate information."); /* optional */ parm= RNA_def_enum(func, "map_to", prop_texture_mapto_items, MAP_COL, "", "Controls which material property the texture affects."); /* optional */ + RNA_def_property_flag(parm, PROP_ENUM_FLAG); } #endif -- cgit v1.2.3