diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-11-06 02:54:36 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-11-06 02:54:36 +0300 |
commit | 6969994d3c99ef535858bcb9dad4dd27b15702c4 (patch) | |
tree | 77b01d79755799ebb78294dae5b679969f503bbe /io_coat3D/tex.py | |
parent | 3a2267df7f14641667ce498bd73fbffb6d5a8512 (diff) |
tabs -> spaces
Diffstat (limited to 'io_coat3D/tex.py')
-rw-r--r-- | io_coat3D/tex.py | 683 |
1 files changed, 336 insertions, 347 deletions
diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py index db74d1dc..8f85004c 100644 --- a/io_coat3D/tex.py +++ b/io_coat3D/tex.py @@ -5,25 +5,25 @@ import filecmp def objname(path): - path2 = os.path.dirname(path) + os.sep - print("kalle:%s"%path2) - pituus = len(path2) - nimi = path[pituus:] + path2 = os.path.dirname(path) + os.sep + print("kalle:%s"%path2) + pituus = len(path2) + nimi = path[pituus:] - return nimi + return nimi def justname(name): - monesko = name.rfind('.') - justname = name[:monesko] - return justname + monesko = name.rfind('.') + justname = name[:monesko] + return justname def setgallery(): - newname ='' - tex_name =[] - index_tex = 0 - for tt in bpy.data.textures: - tex_name.append(tt.name) - return tex_name + newname ='' + tex_name =[] + index_tex = 0 + for tt in bpy.data.textures: + tex_name.append(tt.name) + return tex_name def find_index(objekti): luku = 0 @@ -37,347 +37,336 @@ def find_index(objekti): def gettex(mat_list, objekti, scene,export): - coat3D = bpy.context.scene.coat3D - - if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'): - vray = True - else: - vray = False + coat3D = bpy.context.scene.coat3D + + if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'): + vray = True + else: + vray = False - - take_color = 0; - take_spec = 0; - take_normal = 0; - take_disp = 0; - - bring_color = 1; - bring_spec = 1; - bring_normal = 1; - bring_disp = 1; - - texcoat = {} - texcoat['color'] = [] - texcoat['specular'] = [] - texcoat['nmap'] = [] - texcoat['disp'] = [] - texu = [] - - if(export): - objekti.coat3D.objpath = export - nimi = objname(export) - osoite = os.path.dirname(export) + os.sep - for mate in objekti.material_slots: - for tex_slot in mate.material.texture_slots: - if(hasattr(tex_slot,'texture')): - if(tex_slot.texture.type == 'IMAGE'): + + take_color = 0; + take_spec = 0; + take_normal = 0; + take_disp = 0; + + bring_color = 1; + bring_spec = 1; + bring_normal = 1; + bring_disp = 1; + + texcoat = {} + texcoat['color'] = [] + texcoat['specular'] = [] + texcoat['nmap'] = [] + texcoat['disp'] = [] + texu = [] + + if(export): + objekti.coat3D.objpath = export + nimi = objname(export) + osoite = os.path.dirname(export) + os.sep + for mate in objekti.material_slots: + for tex_slot in mate.material.texture_slots: + if(hasattr(tex_slot,'texture')): + if(tex_slot.texture.type == 'IMAGE'): tex_slot.texture.image.reload() - else: - nimi = objname(coat3D.objectdir) - osoite = os.path.dirname(coat3D.objectdir) + os.sep - just_nimi = justname(nimi) - just_nimi += '_' - just_nimi_len = len(just_nimi) - - - if(len(objekti.material_slots) != 0): - for obj_tex in objekti.active_material.texture_slots: - if(hasattr(obj_tex,'texture')): - if(obj_tex.texture): - if(obj_tex.use_map_color_diffuse): - bring_color = 0; - if(obj_tex.use_map_specular): - bring_spec = 0; - if(obj_tex.use_map_normal): - bring_normal = 0; - if(obj_tex.use_map_displacement): - bring_disp = 0; - - files = os.listdir(osoite) - for i in files: - tui = i[:just_nimi_len] - if(tui == just_nimi): - texu.append(i) - - for yy in texu: - minimi = (yy.rfind('_'))+1 - maksimi = (yy.rfind('.')) - tex_name = yy[minimi:maksimi] - koko = '' - koko += osoite - koko += yy - texcoat[tex_name].append(koko) - #date = os.path.getmtime(texcoat[tex_name][0]) - - if((texcoat['color'] or texcoat['nmap'] or texcoat['disp'] or texcoat['specular']) and (len(objekti.material_slots)) == 0): - new_mat = ("%s_Material"%(objekti.name)) - bpy.data.materials.new(new_mat) - ki = bpy.data.materials[new_mat] - objekti.data.materials.append(ki) - - - - if(bring_color == 1 and texcoat['color']): - name_tex ='Color_' - num = [] - - index = find_index(objekti) - - - tex = bpy.ops.Texture - objekti.active_material.texture_slots.create(index) - total_mat = len(objekti.active_material.texture_slots.items()) - useold = '' - - for seekco in bpy.data.textures: - if((seekco.name[:6] == 'Color_') and (seekco.users_material == ())): - useold = seekco - - - - - if(useold == ''): - - tex_name = setgallery() - - for num_tex in tex_name: - if(num_tex[:6] == 'Color_'): - num.append(num_tex) - luku_tex = len(num) - name_tex = ('Color_%s'%(luku_tex)) - - bpy.ops.image.new(name=name_tex) - bpy.data.images[name_tex].filepath = texcoat['color'][0] - bpy.data.images[name_tex].source = 'FILE' - - - bpy.data.textures.new(name_tex,type='IMAGE') - objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] - objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] - - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - - objekti.active_material.texture_slots[index].texture.image.reload() - - - elif(useold != ''): - - objekti.active_material.texture_slots[index].texture = useold - objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['color'][0] - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - - if(bring_normal == 1 and texcoat['nmap']): - name_tex ='Normal_' - num = [] - - index = find_index(objekti) - - - tex = bpy.ops.Texture - objekti.active_material.texture_slots.create(index) - total_mat = len(objekti.active_material.texture_slots.items()) - useold = '' - - for seekco in bpy.data.textures: - if((seekco.name[:7] == 'Normal_') and (seekco.users_material == ())): - useold = seekco - - - - if(useold == ''): - - tex_name = setgallery() - - for num_tex in tex_name: - if(num_tex[:7] == 'Normal_'): - num.append(num_tex) - luku_tex = len(num) - name_tex = ('Normal_%s'%(luku_tex)) - - bpy.ops.image.new(name=name_tex) - bpy.data.images[name_tex].filepath = texcoat['nmap'][0] - bpy.data.images[name_tex].source = 'FILE' - - - bpy.data.textures.new(name_tex,type='IMAGE') - objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] - objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] - - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_normal = True - - objekti.active_material.texture_slots[index].texture.image.reload() - if(vray): - bpy.data.textures[name_tex].vray_slot.BRDFBump.map_type = 'TANGENT' - - else: - bpy.data.textures[name_tex].use_normal_map = True - bpy.data.textures[name_tex].normal_space = 'TANGENT' - - - elif(useold != ''): - - objekti.active_material.texture_slots[index].texture = useold - objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['nmap'][0] - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_normal = True - - - - if(bring_spec == 1 and texcoat['specular']): - name_tex ='Specular_' - num = [] - - index = find_index(objekti) - - - tex = bpy.ops.Texture - objekti.active_material.texture_slots.create(index) - total_mat = len(objekti.active_material.texture_slots.items()) - useold = '' - - for seekco in bpy.data.textures: - if((seekco.name[:9] == 'Specular_') and (seekco.users_material == ())): - useold = seekco - - - - - if(useold == ''): - - tex_name = setgallery() - - for num_tex in tex_name: - if(num_tex[:9] == 'Specular_'): - num.append(num_tex) - luku_tex = len(num) - name_tex = ('Specular_%s'%(luku_tex)) - - bpy.ops.image.new(name=name_tex) - bpy.data.images[name_tex].filepath = texcoat['specular'][0] - bpy.data.images[name_tex].source = 'FILE' - - - bpy.data.textures.new(name_tex,type='IMAGE') - objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] - objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] - - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_specular = True - - objekti.active_material.texture_slots[index].texture.image.reload() - - - elif(useold != ''): - - objekti.active_material.texture_slots[index].texture = useold - objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['specular'][0] - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_specular = True - - if(bring_disp == 1 and texcoat['disp']): - name_tex ='Displacement_' - num = [] - - index = find_index(objekti) - - - tex = bpy.ops.Texture - objekti.active_material.texture_slots.create(index) - total_mat = len(objekti.active_material.texture_slots.items()) - useold = '' - - for seekco in bpy.data.textures: - if((seekco.name[:13] == 'Displacement_') and (seekco.users_material == ())): - useold = seekco - - - - - if(useold == ''): - - tex_name = setgallery() - - for num_tex in tex_name: - if(num_tex[:13] == 'Displacement_'): - num.append(num_tex) - luku_tex = len(num) - name_tex = ('Displacement_%s'%(luku_tex)) - - bpy.ops.image.new(name=name_tex) - bpy.data.images[name_tex].filepath = texcoat['disp'][0] - bpy.data.images[name_tex].source = 'FILE' - - - bpy.data.textures.new(name_tex,type='IMAGE') - objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] - objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] - - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_displacement = True - - objekti.active_material.texture_slots[index].texture.image.reload() - - - elif(useold != ''): - - objekti.active_material.texture_slots[index].texture = useold - objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['disp'][0] - if(objekti.data.uv_textures.active): - objekti.active_material.texture_slots[index].texture_coords = 'UV' - objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - objekti.active_material.texture_slots[index].use_map_color_diffuse = False - objekti.active_material.texture_slots[index].use_map_displacement = True - - if(vray): - objekti.active_material.texture_slots[index].texture.use_interpolation = False - objekti.active_material.texture_slots[index].displacement_factor = 0.05 - - - else: - disp_modi = '' - for seek_modi in objekti.modifiers: - if(seek_modi.type == 'DISPLACE'): - disp_modi = seek_modi - break - if(disp_modi): - disp_modi.texture = objekti.active_material.texture_slots[index].texture - if(objekti.data.uv_textures.active): - disp_modi.texture_coords = 'UV' - disp_modi.uv_layer = objekti.data.uv_textures.active.name - else: - objekti.modifiers.new('Displace',type='DISPLACE') - objekti.modifiers['Displace'].texture = objekti.active_material.texture_slots[index].texture - if(objekti.data.uv_textures.active): - objekti.modifiers['Displace'].texture_coords = 'UV' - objekti.modifiers['Displace'].uv_layer = objekti.data.uv_textures.active.name - + else: + nimi = objname(coat3D.objectdir) + osoite = os.path.dirname(coat3D.objectdir) + os.sep + just_nimi = justname(nimi) + just_nimi += '_' + just_nimi_len = len(just_nimi) + + + if(len(objekti.material_slots) != 0): + for obj_tex in objekti.active_material.texture_slots: + if(hasattr(obj_tex,'texture')): + if(obj_tex.texture): + if(obj_tex.use_map_color_diffuse): + bring_color = 0; + if(obj_tex.use_map_specular): + bring_spec = 0; + if(obj_tex.use_map_normal): + bring_normal = 0; + if(obj_tex.use_map_displacement): + bring_disp = 0; + + files = os.listdir(osoite) + for i in files: + tui = i[:just_nimi_len] + if(tui == just_nimi): + texu.append(i) + + for yy in texu: + minimi = (yy.rfind('_'))+1 + maksimi = (yy.rfind('.')) + tex_name = yy[minimi:maksimi] + koko = '' + koko += osoite + koko += yy + texcoat[tex_name].append(koko) + #date = os.path.getmtime(texcoat[tex_name][0]) + + if((texcoat['color'] or texcoat['nmap'] or texcoat['disp'] or texcoat['specular']) and (len(objekti.material_slots)) == 0): + new_mat = ("%s_Material"%(objekti.name)) + bpy.data.materials.new(new_mat) + ki = bpy.data.materials[new_mat] + objekti.data.materials.append(ki) + + + + if(bring_color == 1 and texcoat['color']): + name_tex ='Color_' + num = [] + + index = find_index(objekti) + + + tex = bpy.ops.Texture + objekti.active_material.texture_slots.create(index) + total_mat = len(objekti.active_material.texture_slots.items()) + useold = '' + + for seekco in bpy.data.textures: + if((seekco.name[:6] == 'Color_') and (seekco.users_material == ())): + useold = seekco + + if(useold == ''): + tex_name = setgallery() + for num_tex in tex_name: + if(num_tex[:6] == 'Color_'): + num.append(num_tex) + luku_tex = len(num) + name_tex = ('Color_%s'%(luku_tex)) + bpy.ops.image.new(name=name_tex) + bpy.data.images[name_tex].filepath = texcoat['color'][0] + bpy.data.images[name_tex].source = 'FILE' + + bpy.data.textures.new(name_tex,type='IMAGE') + objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] + objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] + + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + + objekti.active_material.texture_slots[index].texture.image.reload() + + + elif(useold != ''): + + objekti.active_material.texture_slots[index].texture = useold + objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['color'][0] + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name - return('FINISHED') + if(bring_normal == 1 and texcoat['nmap']): + name_tex ='Normal_' + num = [] + + index = find_index(objekti) + + + tex = bpy.ops.Texture + objekti.active_material.texture_slots.create(index) + total_mat = len(objekti.active_material.texture_slots.items()) + useold = '' + + for seekco in bpy.data.textures: + if((seekco.name[:7] == 'Normal_') and (seekco.users_material == ())): + useold = seekco + + + + if(useold == ''): + + tex_name = setgallery() - + for num_tex in tex_name: + if(num_tex[:7] == 'Normal_'): + num.append(num_tex) + luku_tex = len(num) + name_tex = ('Normal_%s'%(luku_tex)) + + bpy.ops.image.new(name=name_tex) + bpy.data.images[name_tex].filepath = texcoat['nmap'][0] + bpy.data.images[name_tex].source = 'FILE' + + + bpy.data.textures.new(name_tex,type='IMAGE') + objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] + objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] + + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_normal = True + + objekti.active_material.texture_slots[index].texture.image.reload() + if(vray): + bpy.data.textures[name_tex].vray_slot.BRDFBump.map_type = 'TANGENT' + + else: + bpy.data.textures[name_tex].use_normal_map = True + bpy.data.textures[name_tex].normal_space = 'TANGENT' + + + elif(useold != ''): + + objekti.active_material.texture_slots[index].texture = useold + objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['nmap'][0] + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_normal = True + + + if(bring_spec == 1 and texcoat['specular']): + name_tex ='Specular_' + num = [] + + index = find_index(objekti) + + + tex = bpy.ops.Texture + objekti.active_material.texture_slots.create(index) + total_mat = len(objekti.active_material.texture_slots.items()) + useold = '' + + for seekco in bpy.data.textures: + if((seekco.name[:9] == 'Specular_') and (seekco.users_material == ())): + useold = seekco + + + + + if(useold == ''): + + tex_name = setgallery() + + for num_tex in tex_name: + if(num_tex[:9] == 'Specular_'): + num.append(num_tex) + luku_tex = len(num) + name_tex = ('Specular_%s'%(luku_tex)) + + bpy.ops.image.new(name=name_tex) + bpy.data.images[name_tex].filepath = texcoat['specular'][0] + bpy.data.images[name_tex].source = 'FILE' + + + bpy.data.textures.new(name_tex,type='IMAGE') + objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] + objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] + + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_specular = True + + objekti.active_material.texture_slots[index].texture.image.reload() + + + elif(useold != ''): + + objekti.active_material.texture_slots[index].texture = useold + objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['specular'][0] + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_specular = True + + if(bring_disp == 1 and texcoat['disp']): + name_tex ='Displacement_' + num = [] + + index = find_index(objekti) + + + tex = bpy.ops.Texture + objekti.active_material.texture_slots.create(index) + total_mat = len(objekti.active_material.texture_slots.items()) + useold = '' + + for seekco in bpy.data.textures: + if((seekco.name[:13] == 'Displacement_') and (seekco.users_material == ())): + useold = seekco + + + + + if(useold == ''): + + tex_name = setgallery() + + for num_tex in tex_name: + if(num_tex[:13] == 'Displacement_'): + num.append(num_tex) + luku_tex = len(num) + name_tex = ('Displacement_%s'%(luku_tex)) + + bpy.ops.image.new(name=name_tex) + bpy.data.images[name_tex].filepath = texcoat['disp'][0] + bpy.data.images[name_tex].source = 'FILE' + + + bpy.data.textures.new(name_tex,type='IMAGE') + objekti.active_material.texture_slots[index].texture = bpy.data.textures[name_tex] + objekti.active_material.texture_slots[index].texture.image = bpy.data.images[name_tex] + + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_displacement = True + + objekti.active_material.texture_slots[index].texture.image.reload() + + + elif(useold != ''): + + objekti.active_material.texture_slots[index].texture = useold + objekti.active_material.texture_slots[index].texture.image.filepath = texcoat['disp'][0] + if(objekti.data.uv_textures.active): + objekti.active_material.texture_slots[index].texture_coords = 'UV' + objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name + objekti.active_material.texture_slots[index].use_map_color_diffuse = False + objekti.active_material.texture_slots[index].use_map_displacement = True + + if(vray): + objekti.active_material.texture_slots[index].texture.use_interpolation = False + objekti.active_material.texture_slots[index].displacement_factor = 0.05 + + + else: + disp_modi = '' + for seek_modi in objekti.modifiers: + if(seek_modi.type == 'DISPLACE'): + disp_modi = seek_modi + break + if(disp_modi): + disp_modi.texture = objekti.active_material.texture_slots[index].texture + if(objekti.data.uv_textures.active): + disp_modi.texture_coords = 'UV' + disp_modi.uv_layer = objekti.data.uv_textures.active.name + else: + objekti.modifiers.new('Displace',type='DISPLACE') + objekti.modifiers['Displace'].texture = objekti.active_material.texture_slots[index].texture + if(objekti.data.uv_textures.active): + objekti.modifiers['Displace'].texture_coords = 'UV' + objekti.modifiers['Displace'].uv_layer = objekti.data.uv_textures.active.name + + return('FINISHED') |