Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalle-Samuli Riihikoski <haikalle@gmail.com>2019-03-02 01:11:37 +0300
committerKalle-Samuli Riihikoski <haikalle@gmail.com>2019-03-02 01:11:37 +0300
commit3486d0c1b26cb81e71f406069ebacfb1e458d12b (patch)
treeeef9954e59cf1169b95e9ecb5c3bb7542f1cc74f /io_coat3D
parent57ec6828de00ca17a7aa581420929fe85fb0f170 (diff)
add vertex colors support + rearrange texture update code
Diffstat (limited to 'io_coat3D')
-rw-r--r--io_coat3D/__init__.py36
-rw-r--r--io_coat3D/tex.py28
2 files changed, 61 insertions, 3 deletions
diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index c030a347..857fe337 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 cb0d2ec8..b28f27bb 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')