[Bf-extensions-cvs] [7d7b8c7] master: remove materials convertor re: T48642
meta-androcto
noreply at git.blender.org
Fri Aug 5 01:35:57 CEST 2016
Commit: 7d7b8c7d3efca6513af1b2f2fcf91c3d797411d8
Author: meta-androcto
Date: Fri Aug 5 09:35:29 2016 +1000
Branches: master
https://developer.blender.org/rBAC7d7b8c7d3efca6513af1b2f2fcf91c3d797411d8
remove materials convertor re: T48642
===================================================================
D materials_cycles_converter.py
===================================================================
diff --git a/materials_cycles_converter.py b/materials_cycles_converter.py
deleted file mode 100644
index 5ad4aa6..0000000
--- a/materials_cycles_converter.py
+++ /dev/null
@@ -1,520 +0,0 @@
-# convert_materials_to_cycles.py
-#
-# Copyright (C) 5-mar-2012, Silvio Falcinelli. Fixes by others.
-#
-# special thanks to user blenderartists.org cmomoney
-#
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-
-bl_info = {
- "name": "Convert Materials to Cycles",
- "author": "Silvio Falcinelli, updates by community",
- "version": (0, 11, 1),
- "blender": (2, 71, 0),
- "location": "Properties > Material > Convert to Cycles",
- "description": "Convert non-nodes materials to Cycles",
- "warning": "beta",
- "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Material/Blender_Cycles_Materials_Converter",
- "category": "Material"}
-
-
-import bpy
-import math
-from math import log
-from math import pow
-from math import exp
-import os.path
-
-def AutoNodeOff():
- mats = bpy.data.materials
- for cmat in mats:
- cmat.use_nodes = False
- bpy.context.scene.render.engine = 'BLENDER_RENDER'
-
-def BakingText(tex, mode):
- print('________________________________________')
- print('INFO start bake texture ' + tex.name)
- bpy.ops.object.mode_set(mode='OBJECT')
- sc = bpy.context.scene
- tmat = ''
- img = ''
- Robj = bpy.context.active_object
- for n in bpy.data.materials:
- if n.name == 'TMP_BAKING':
- tmat = n
- if not tmat:
- tmat = bpy.data.materials.new('TMP_BAKING')
- tmat.name = "TMP_BAKING"
-
- bpy.ops.mesh.primitive_plane_add()
- tm = bpy.context.active_object
- tm.name = "TMP_BAKING"
- tm.data.name = "TMP_BAKING"
- bpy.ops.object.select_pattern(extend=False, pattern="TMP_BAKING", case_sensitive=False)
- sc.objects.active = tm
- bpy.context.scene.render.engine = 'BLENDER_RENDER'
- tm.data.materials.append(tmat)
- if len(tmat.texture_slots.items()) == 0:
- tmat.texture_slots.add()
- tmat.texture_slots[0].texture_coords = 'UV'
- tmat.texture_slots[0].use_map_alpha = True
- tmat.texture_slots[0].texture = tex.texture
- tmat.texture_slots[0].use_map_alpha = True
- tmat.texture_slots[0].use_map_color_diffuse = False
- tmat.use_transparency = True
- tmat.alpha = 0
- tmat.use_nodes = False
- tmat.diffuse_color = 1, 1, 1
- bpy.ops.object.mode_set(mode='EDIT')
- bpy.ops.uv.unwrap()
-
- for n in bpy.data.images:
- if n.name == 'TMP_BAKING':
- n.user_clear()
- bpy.data.images.remove(n)
-
- if mode == "ALPHA" and tex.texture.type == 'IMAGE':
- sizeX = tex.texture.image.size[0]
- sizeY = tex.texture.image.size[1]
- else:
- sizeX = 600
- sizeY = 600
- bpy.ops.image.new(name="TMP_BAKING", width=sizeX, height=sizeY, color=(0.0, 0.0, 0.0, 1.0), alpha=True, float=False)
- bpy.data.screens['UV Editing'].areas[1].spaces[0].image = bpy.data.images["TMP_BAKING"]
- sc.render.engine = 'BLENDER_RENDER'
- img = bpy.data.images["TMP_BAKING"]
- img = bpy.data.images.get("TMP_BAKING")
- img.file_format = "JPEG"
- if mode == "ALPHA" and tex.texture.type == 'IMAGE':
- img.filepath_raw = tex.texture.image.filepath + "_BAKING.jpg"
-
- else:
- img.filepath_raw = tex.texture.name + "_PTEXT.jpg"
-
- sc.render.bake_type = 'ALPHA'
- sc.render.use_bake_selected_to_active = True
- sc.render.use_bake_clear = True
- bpy.ops.object.bake_image()
- img.save()
- bpy.ops.object.mode_set(mode='OBJECT')
- bpy.ops.object.delete()
- bpy.ops.object.select_pattern(extend=False, pattern=Robj.name, case_sensitive=False)
- sc.objects.active = Robj
- img.user_clear()
- bpy.data.images.remove(img)
- bpy.data.materials.remove(tmat)
-
- # print('INFO : end Bake ' + img.filepath_raw )
- print('________________________________________')
-
-def AutoNode(active=False):
-
- sc = bpy.context.scene
-
- if active:
-
- mats = bpy.context.active_object.data.materials
-
- else:
-
- mats = bpy.data.materials
-
-
- for cmat in mats:
- cmat.use_nodes = True
- TreeNodes = cmat.node_tree
- links = TreeNodes.links
-
- # Don't alter nodes of locked materials
- locked = False
- for n in TreeNodes.nodes:
- if n.type == 'ShaderNodeOutputMaterial':
- if n.label == 'Locked':
- locked = True
- break
-
- if not locked:
- # Convert this material from non-nodes to Cycles nodes
-
- shader = ''
- shmix = ''
- shtsl = ''
- Add_Emission = ''
- Add_Translucent = ''
- Mix_Alpha = ''
- sT = False
-
- for n in TreeNodes.nodes:
- TreeNodes.nodes.remove(n)
-
- # Starting point is diffuse BSDF and output material
- shader = TreeNodes.nodes.new('ShaderNodeBsdfDiffuse')
- shader.location = 0, 470
- shout = TreeNodes.nodes.new('ShaderNodeOutputMaterial')
- shout.location = 200, 400
- links.new(shader.outputs[0], shout.inputs[0])
-
- sM = True
- for tex in cmat.texture_slots:
- if tex:
- if tex.use:
- if tex.use_map_alpha:
- sM = False
- if sc.EXTRACT_ALPHA:
- if tex.texture.type == 'IMAGE' and tex.texture.use_alpha:
- if not os.path.exists(bpy.path.abspath(tex.texture.image.filepath + "_BAKING.jpg")) or sc.EXTRACT_OW:
- BakingText(tex, 'ALPHA')
- else:
- if not tex.texture.type == 'IMAGE':
- if not os.path.exists(bpy.path.abspath(tex.texture.name + "_PTEXT.jpg")) or sc.EXTRACT_OW:
- BakingText(tex, 'PTEXT')
-
- cmat_is_transp = cmat.use_transparency and cmat.alpha < 1
-
- if cmat_is_transp and cmat.raytrace_transparency.ior == 1 and not cmat.raytrace_mirror.use and sM:
- if not shader.type == 'ShaderNodeBsdfTransparent':
- print("INFO: Make TRANSPARENT shader node " + cmat.name)
- TreeNodes.nodes.remove(shader)
- shader = TreeNodes.nodes.new('ShaderNodeBsdfTransparent')
- shader.location = 0, 470
- links.new(shader.outputs[0], shout.inputs[0])
-
- if not cmat.raytrace_mirror.use and not cmat_is_transp:
- if not shader.type == 'ShaderNodeBsdfDiffuse':
- print("INFO: Make DIFFUSE shader node" + cmat.name)
- TreeNodes.nodes.remove(shader)
- shader = TreeNodes.nodes.new('ShaderNodeBsdfDiffuse')
- shader.location = 0, 470
- links.new(shader.outputs[0], shout.inputs[0])
-
- if cmat.raytrace_mirror.use and cmat.raytrace_mirror.reflect_factor > 0.001 and cmat_is_transp:
- if not shader.type == 'ShaderNodeBsdfGlass':
- print("INFO: Make GLASS shader node" + cmat.name)
- TreeNodes.nodes.remove(shader)
- shader = TreeNodes.nodes.new('ShaderNodeBsdfGlass')
- shader.location = 0, 470
- links.new(shader.outputs[0], shout.inputs[0])
-
- if cmat.raytrace_mirror.use and not cmat_is_transp and cmat.raytrace_mirror.reflect_factor > 0.001 :
- if not shader.type == 'ShaderNodeBsdfGlossy':
- print("INFO: Make MIRROR shader node" + cmat.name)
- TreeNodes.nodes.remove(shader)
- shader = TreeNodes.nodes.new('ShaderNodeBsdfGlossy')
- shader.location = 0, 520
- links.new(shader.outputs[0], shout.inputs[0])
-
- if cmat.emit > 0.001 :
- if not shader.type == 'ShaderNodeEmission' and not cmat.raytrace_mirror.reflect_factor > 0.001 and not cmat_is_transp:
- print("INFO: Mix EMISSION shader node" + cmat.name)
- TreeNodes.nodes.remove(shader)
- shader = TreeNodes.nodes.new('ShaderNodeEmission')
- shader.location = 0, 450
- links.new(shader.outputs[0], shout.inputs[0])
- else:
- if not Add_Emission:
- print("INFO: Add EMISSION shader node" + cmat.name)
- shout.location = 550, 330
- Add_Emission = TreeNodes.nodes.new('ShaderNodeAddShader')
- Add_Emission.location = 370, 490
-
- shem = TreeNodes.nodes.new('ShaderNodeEmission')
- shem.location = 180, 380
-
- links.new(Add_Emission.outputs[0], shout.inputs[0])
- links.new(shem.outputs[0], Add_Emission.inputs[1])
- links.new(shader.outputs[0], Add_Emission.inputs[0])
-
- shem.inputs['Color'].default_value = cmat.diffuse_
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list