diff options
author | Kalle-Samuli Riihikoski <haikalle@gmail.com> | 2019-04-25 11:43:28 +0300 |
---|---|---|
committer | Kalle-Samuli Riihikoski <haikalle@gmail.com> | 2019-04-25 11:46:44 +0300 |
commit | 70af85cdc5c2df0744cc5df241df7a41cf2201ad (patch) | |
tree | 9999fa229e06f768eb88d136029710a3302297df /io_coat3D | |
parent | 1b3bbeea01d4cb1aca3ccd2986fee85b253c8d3c (diff) |
Fixed 3dc->blender workflow and bake tools
Diffstat (limited to 'io_coat3D')
-rw-r--r-- | io_coat3D/__init__.py | 27 | ||||
-rw-r--r-- | io_coat3D/tex.py | 175 |
2 files changed, 130 insertions, 72 deletions
diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py index 37bf1e7d..e5797013 100644 --- a/io_coat3D/__init__.py +++ b/io_coat3D/__init__.py @@ -637,13 +637,13 @@ class SCENE_OT_export(bpy.types.Operator): objekti.coat3D.applink_name = objekti.data.name mod_mat_list = {} - if (coat3D.bake_textures): - bake_location = folder_objects + os.sep + 'Bake' - if (os.path.isdir(bake_location)): - shutil.rmtree(bake_location) - os.makedirs(bake_location) - else: - os.makedirs(bake_location) + + bake_location = folder_objects + os.sep + 'Bake' + if (os.path.isdir(bake_location)): + shutil.rmtree(bake_location) + os.makedirs(bake_location) + else: + os.makedirs(bake_location) temp_string = '' for objekti in bpy.context.selected_objects: @@ -680,9 +680,7 @@ class SCENE_OT_export(bpy.types.Operator): if (coat3D.bake_normal): bake_list.append(['NORMAL', '$LOADLOPOLYTANG']) if (coat3D.bake_roughness): - bake_list.append(['SPECULAR', '$LOADROUGHNESS']) - if (coat3D.bake_metalness): - bake_list.append(['REFLECTION', '$LOADMETAL']) + bake_list.append(['ROUGHNESS', '$LOADROUGHNESS']) if(coat3D.bake_resolution == 'res_64'): res_size = 64 @@ -1136,7 +1134,6 @@ class SCENE_OT_import(bpy.types.Operator): index = 0 for c_index in diff_objects: bpy.data.objects[c_index].data.coat3D.name = '3DC' - bpy.data.objects[c_index].material_slots[0].material = bpy.data.materials[diff_mat[laskuri]] laskuri += 1 bpy.ops.object.select_all(action='DESELECT') @@ -1156,8 +1153,6 @@ class SCENE_OT_import(bpy.types.Operator): index = index + 1 bpy.context.view_layer.objects.active = new_obj - keep_materials_count = len(new_obj.material_slots) - len(new_obj.data.uv_layers) - delete_materials_from_end(keep_materials_count, new_obj) new_obj.coat3D.applink_export = True if(osoite_3b != ''): @@ -1337,7 +1332,7 @@ class SCENE_PT_Bake_Settings(ObjectButtonsPanel, bpy.types.Panel): col = flow.column() col.prop(coat3D, "bake_ao", text="AO") col = flow.column() - col.prop(coat3D, "bake_metalness", text="Metalness") + col.prop(coat3D, "bake_normal", text="Normal") col = flow.column() col.prop(coat3D, "bake_roughness", text="Roughness") @@ -1720,7 +1715,7 @@ class MeshCoat3D(PropertyGroup): ) class MaterialCoat3D(PropertyGroup): - name: BoolProperty( + name: StringProperty( name="ApplinkAddress", # subtype="APPLINK_ADDRESS", default=True @@ -1762,8 +1757,8 @@ classes = ( SCENE_PT_Material, SCENE_PT_Settings_Update, SCENE_PT_Bake_Settings, - SCENE_PT_Settings_Folders, SCENE_PT_Settings_DeleteNodes, + SCENE_PT_Settings_Folders, SCENE_PT_Material_Import, SCENE_OT_folder, SCENE_OT_opencoat, diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py index 6d90a594..980bcc13 100644 --- a/io_coat3D/tex.py +++ b/io_coat3D/tex.py @@ -183,62 +183,123 @@ def readtexturefolder(objekti, mat_list, texturelist, is_new, udim_textures): #r if(udim_textures == False): for texture_info in texturelist: - if texture_info[0] == index_mat.name: - if texture_info[2] == 'color' or texture_info[2] == 'diffuse': - if(index_mat.material.coat3D_diffuse): - texcoat['color'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'metalness' or texture_info[2] == 'specular' or texture_info[2] == 'reflection': - if (index_mat.material.coat3D_metalness): - texcoat['metalness'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'rough' or texture_info[2] == 'roughness': - if (index_mat.material.coat3D_roughness): - texcoat['rough'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'nmap' or texture_info[2] == 'normalmap' or texture_info[2] == 'normal_map' or texture_info[2] == 'normal': - if (index_mat.material.coat3D_normal): - texcoat['nmap'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'emissive': - if (index_mat.material.coat3D_emissive): - texcoat['emissive'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'emissive_power': - if (index_mat.material.coat3D_emissive): - texcoat['emissive_power'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'ao': - if (index_mat.material.coat3D_ao): - texcoat['ao'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2].startswith('displacement'): - if (index_mat.material.coat3D_displacement): - texcoat['displacement'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - elif texture_info[2] == 'alpha' or texture_info[2] == 'opacity': - if (index_mat.material.coat3D_metalness): - texcoat['alpha'].append(texture_info[3]) - create_nodes = True - else: - os.remove(texture_info[3]) - create_group_node = True + if is_new == False: + if texture_info[0] == index_mat.name: + if texture_info[2] == 'color' or texture_info[2] == 'diffuse': + if(index_mat.material.coat3D_diffuse): + texcoat['color'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'metalness' or texture_info[2] == 'specular' or texture_info[2] == 'reflection': + if (index_mat.material.coat3D_metalness): + texcoat['metalness'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'rough' or texture_info[2] == 'roughness': + if (index_mat.material.coat3D_roughness): + texcoat['rough'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'nmap' or texture_info[2] == 'normalmap' or texture_info[2] == 'normal_map' or texture_info[2] == 'normal': + if (index_mat.material.coat3D_normal): + texcoat['nmap'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'emissive': + if (index_mat.material.coat3D_emissive): + texcoat['emissive'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'emissive_power': + if (index_mat.material.coat3D_emissive): + texcoat['emissive_power'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'ao': + if (index_mat.material.coat3D_ao): + texcoat['ao'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2].startswith('displacement'): + if (index_mat.material.coat3D_displacement): + texcoat['displacement'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'alpha' or texture_info[2] == 'opacity': + if (index_mat.material.coat3D_metalness): + texcoat['alpha'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + create_group_node = True + else: + if index_mat.name.startswith(texture_info[0]): + if texture_info[2] == 'color' or texture_info[2] == 'diffuse': + if (index_mat.material.coat3D_diffuse): + texcoat['color'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'metalness' or texture_info[2] == 'specular' or texture_info[ + 2] == 'reflection': + if (index_mat.material.coat3D_metalness): + texcoat['metalness'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'rough' or texture_info[2] == 'roughness': + if (index_mat.material.coat3D_roughness): + texcoat['rough'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'nmap' or texture_info[2] == 'normalmap' or texture_info[ + 2] == 'normal_map' or texture_info[2] == 'normal': + if (index_mat.material.coat3D_normal): + texcoat['nmap'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'emissive': + if (index_mat.material.coat3D_emissive): + texcoat['emissive'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'emissive_power': + if (index_mat.material.coat3D_emissive): + texcoat['emissive_power'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'ao': + if (index_mat.material.coat3D_ao): + texcoat['ao'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2].startswith('displacement'): + if (index_mat.material.coat3D_displacement): + texcoat['displacement'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + elif texture_info[2] == 'alpha' or texture_info[2] == 'opacity': + if (index_mat.material.coat3D_metalness): + texcoat['alpha'].append(texture_info[3]) + create_nodes = True + else: + os.remove(texture_info[3]) + create_group_node = True + else: for texture_info in texturelist: @@ -771,10 +832,12 @@ def matlab(objekti,mat_list,texturelist,is_new): ''' FBX Materials: remove all nodes and create princibles node''' if(is_new): RemoveFbxNodes(objekti) + print('hei hai hoi') '''Main Loop for Texture Update''' updatetextures(objekti) + if(texturelist != []): udim_textures = False if texturelist[0][0].startswith('100'): |