diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py index c030a347932a41dc4e3e05b07ff5d62c735dc583..857fe3374c7c69fc50571912855918970806cab4 100644 --- a/io_coat3D/__init__.py +++ b/io_coat3D/__init__.py @@ -215,8 +215,36 @@ def make_texture_list(texturefolder): def updatemesh(objekti, proxy): + # Vertex colors + if(len(proxy.data.vertex_colors) > 0): + bring_vertex_map = True + else: + bring_vertex_map = False + + if(bring_vertex_map): + if(len(objekti.data.vertex_colors) > 0): + for vertex_map in objekti.data.vertex_colors: + if vertex_map.name == 'Col': + copy_data = True + vertex_map_copy = vertex_map + break + else: + copy_data = False + else: + copy_data = False + + if(copy_data): + for poly in objekti.data.polygons: + for loop_index in poly.loop_indices: + vertex_map_copy.data[loop_index].color = proxy.data.vertex_colors[0].data[loop_index].color + else: + objekti.data.vertex_colors.new() + vertex_map_copy = objekti.data.vertex_colors[-1] + for poly in objekti.data.polygons: + for loop_index in poly.loop_indices: + vertex_map_copy.data[loop_index].color = proxy.data.vertex_colors[0].data[loop_index].color - # UV Set Copy + # UV -Sets proxy.select_set(True) objekti.select_set(True) @@ -227,11 +255,14 @@ def updatemesh(objekti, proxy): objekti.data.uv_layers[0].data[indi].uv[1] = proxy.data.uv_layers[0].data[indi].uv[1] - #Mesh Copy + # Mesh Copy for ind, v in enumerate(objekti.data.vertices): v.co = proxy.data.vertices[ind].co + + + ''' proxy.select_set(True) obj_data = objekti.data.id_data @@ -962,6 +993,7 @@ class SCENE_OT_import(bpy.types.Operator): new_obj.scale = (1, 1, 1) new_obj.coat3D.applink_firsttime = False new_obj.select_set(False) + new_obj.coat3D.type = 'import' new_obj.coat3D.applink_address = new_applink_address new_obj.coat3D.applink_mesh = True new_obj.coat3D.objecttime = str(os.path.getmtime(new_obj.coat3D.applink_address)) diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py index cb0d2ec83f21fad0ed674e69b9a83dda90ac70fd..b28f27bb6c8f6ebb5e202c6c30de7c1cade19379 100644 --- a/io_coat3D/tex.py +++ b/io_coat3D/tex.py @@ -74,6 +74,29 @@ def UVTiling(objekti, texturelist): return texturelist +def updatetextures(objekti): # Update 3DC textures + + for index_mat in objekti.material_slots: + + for node in index_mat.material.node_tree.nodes: + if (node.type == 'TEX_IMAGE'): + if (node.name == '3DC_color'): + node.image.reload() + elif (node.name == '3DC_metalness'): + node.image.reload() + elif (node.name == '3DC_rough'): + node.image.reload() + elif (node.name == '3DC_nmap'): + node.image.reload() + elif (node.name == '3DC_displacement'): + node.image.reload() + elif (node.name == '3DC_emissive'): + node.image.reload() + elif (node.name == '3DC_AO'): + node.image.reload() + + + def readtexturefolder(objekti, mat_list, texturelist, is_new): #read textures from texture file create_nodes = False @@ -413,7 +436,10 @@ def matlab(objekti,mat_list,texturelist,is_new): RemoveFbxNodes(objekti) '''Main Loop for Texture Update''' + #checkmaterial(mat_list, objekti) - readtexturefolder(objekti,mat_list,texturelist,is_new) + updatetextures(objekti) + if(texturelist != []): + readtexturefolder(objekti,mat_list,texturelist,is_new) return('FINISHED')