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:
Diffstat (limited to 'io_coat3D/tex.py')
-rw-r--r--io_coat3D/tex.py142
1 files changed, 4 insertions, 138 deletions
diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py
index 4c516def..f532177c 100644
--- a/io_coat3D/tex.py
+++ b/io_coat3D/tex.py
@@ -19,9 +19,8 @@
import bpy
import os
-import re
-def find_index(objekti):
+def find_index(objekti):
luku = 0
for tex in objekti.active_material.texture_slots:
if(not(hasattr(tex,'texture'))):
@@ -29,143 +28,10 @@ def find_index(objekti):
luku = luku +1
return luku
-def readtexturefolder(objekti,is_new): #read textures from texture file
-
- coat3D = bpy.context.scene.coat3D
- obj_coat = objekti.coat3D
-
- texcoat = {}
- texcoat['color'] = []
- texcoat['metalness'] = []
- texcoat['rough'] = []
- texcoat['nmap'] = []
- texcoat['disp'] = []
-
- if(is_new == True):
- files_dir = os.path.dirname(os.path.abspath(objekti.coat3D.applink_address))
- else:
- if(bpy.data.filepath == ''):
- files_dir = os.path.dirname(os.path.abspath(objekti.coat3D.applink_address))
- files_dir = files_dir.replace('3DC2Blender' + os.sep + 'Objects','3DC2Blender' + os.sep + 'Textures')
- else:
- files_dir = os.path.dirname(bpy.data.filepath) + os.sep + '3DCApplink' + os.sep + 'Textures'
- files = os.listdir(files_dir)
- materiaali_muutos = objekti.active_material.name
- uusin_mat = materiaali_muutos.replace('Material.','Material_')
- for i in files:
- if(i.startswith(obj_coat.applink_name + '_' + uusin_mat)):
- koko_osoite = files_dir + os.sep + i
- listed = re.split(r'[_.]', i)
- tex_name = listed[-2]
- texcoat[tex_name].append(koko_osoite)
-
-
- createnodes(objekti, texcoat)
-
-def checkmaterial(mat_list, objekti): #check how many materials object has
- mat_list = []
-
- for obj_mate in objekti.material_slots:
- if(obj_mate.material.use_nodes == False):
- obj_mate.material.use_nodes = True
-
-def createnodes(objekti,texcoat): #luo nodes palikat ja linkittaa tekstuurit niihin
- bring_color = True #naiden tarkoitus on tsekata onko tarvetta luoda uusi node vai riittaako paivitys
- bring_metalness = True
- bring_roughness = True
- bring_normal = True
- bring_disp = True
-
- act_material = objekti.active_material
- if(objekti.active_material.use_nodes == False):
- objekti.active_material.use_nodes = True
-
- #ensimmaiseksi kaydaan kaikki image nodet lapi ja tarkistetaan onko nimi 3DC alkunen jos on niin reload
-
- for node in act_material.node_tree.nodes:
- if(node.type == 'TEX_IMAGE'):
- if(node.name == '3DC_color'):
- bring_color = False
- node.image.reload()
- elif(node.name == '3DC_metalness'):
- bring_metalness = False
- node.image.reload()
- elif(node.name == '3DC_roughness'):
- bring_roughness = False
- node.image.reload()
- elif(node.name == '3DC_normal'):
- bring_normal = False
- node.image.reload()
-
- #seuraavaksi lahdemme rakentamaan node tree. Lahdetaan Material Outputista rakentaa
-
- main_mat = act_material.node_tree.nodes['Material Output']
- if(main_mat.inputs['Surface'].is_linked == True):
- glue_mat = main_mat.inputs['Surface'].links[0].from_node
-
- #Color
- if(bring_color == True and glue_mat.inputs.find('Base Color') != -1 and texcoat['color'] != []):
- node = act_material.node_tree.nodes.new('ShaderNodeTexImage')
- node.location = -400,400
- node.name='3DC_color'
- if(texcoat['color']):
- node.image = bpy.data.images.load(texcoat['color'][0])
- input_color = glue_mat.inputs.find('Base Color')
- act_material.node_tree.links.new(node.outputs[0], glue_mat.inputs[input_color])
-
- #Metalness
- if(bring_metalness == True and glue_mat.inputs.find('Metallic') != -1 and texcoat['metalness'] != []):
- node = act_material.node_tree.nodes.new('ShaderNodeTexImage')
- node.location = -600,200
- node.name='3DC_metalness'
- if(texcoat['metalness']):
- node.image = bpy.data.images.load(texcoat['metalness'][0])
- node.color_space = 'NONE'
- input_color = glue_mat.inputs.find('Metallic')
- act_material.node_tree.links.new(node.outputs[0], glue_mat.inputs[input_color])
-
- #Roughness
- if(bring_roughness == True and glue_mat.inputs.find('Roughness') != -1 and texcoat['rough'] != []):
- node = act_material.node_tree.nodes.new('ShaderNodeTexImage')
- node.location = -550,0
- node.name='3DC_roughness'
- if(texcoat['rough']):
- node.image = bpy.data.images.load(texcoat['rough'][0])
- node.color_space = 'NONE'
- input_color = glue_mat.inputs.find('Roughness')
- act_material.node_tree.links.new(node.outputs[0], glue_mat.inputs[input_color])
-
- #Normal map
- if(bring_normal == True and glue_mat.inputs.find('Normal') != -1 and texcoat['nmap'] != []):
- node = act_material.node_tree.nodes.new('ShaderNodeTexImage')
- normal_node = act_material.node_tree.nodes.new('ShaderNodeNormalMap')
- node.location = -600,-270
- normal_node.location = -300,-170
- node.name='3DC_normal'
- if(texcoat['nmap']):
- node.image = bpy.data.images.load(texcoat['nmap'][0])
- node.color_space = 'NONE'
- input_color = glue_mat.inputs.find('Normal')
- act_material.node_tree.links.new(node.outputs[0], normal_node.inputs[1])
- act_material.node_tree.links.new(normal_node.outputs[0], glue_mat.inputs[input_color])
-
- bpy.ops.object.editmode_toggle() #HACKKI joka saa tekstuurit nakymaan heti
- bpy.ops.object.editmode_toggle()
-
-
-
-def matlab(mat_list, objekti, scene,is_new):
- #checkmaterial(mat_list, objekti)
- readtexturefolder(objekti,is_new)
-
-
- """
- print('tassa tietoo')
- print(mat_list,objekti,scene,export)
+def gettex(mat_list, objekti, scene,export):
coat3D = bpy.context.scene.coat3D
coa = objekti.coat3D
- print(coat3D,coa)
if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'):
vray = True
@@ -181,7 +47,7 @@ def matlab(mat_list, objekti, scene,is_new):
bring_spec = 1
bring_normal = 1
bring_disp = 1
-
+
texcoat = {}
texcoat['color'] = []
texcoat['specular'] = []
@@ -465,5 +331,5 @@ def matlab(mat_list, objekti, scene,is_new):
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')