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:
authormeta-androcto <meta.androcto1@gmail.com>2019-05-24 10:04:55 +0300
committermeta-androcto <meta.androcto1@gmail.com>2019-05-24 10:04:55 +0300
commit66e9ff919917c7458ea4a29f47b0da6ca801c415 (patch)
treefd56722765ebe5d495047b3df518b2dfd8a1d5ed /render_clay.py
parented5afbdff7b5440ce18d20d9a770551890a2ad57 (diff)
render_clay: move to contrib: T63750
Diffstat (limited to 'render_clay.py')
-rw-r--r--render_clay.py221
1 files changed, 0 insertions, 221 deletions
diff --git a/render_clay.py b/render_clay.py
deleted file mode 100644
index da53aa64..00000000
--- a/render_clay.py
+++ /dev/null
@@ -1,221 +0,0 @@
-# ##### 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 LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-bl_info = {
- "name": "Clay Render",
- "author": "Fabio Russo <ruesp83@libero.it>",
- "version": (1, 2, 1),
- "blender": (2, 56, 0),
- "location": "Render > Clay Render",
- "description": "This script, applies a temporary material to all objects"
- " of the scene",
- "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
- "Scripts/Clay_Render",
- "category": "Render"}
-
-import bpy
-from bpy.types import Operator
-from bpy.props import BoolProperty
-
-
-def Create_Mat():
- mat_id = bpy.data.materials.new("Clay_Render")
- # diffuse
- mat_id.diffuse_shader = "OREN_NAYAR"
- mat_id.diffuse_color = 0.800, 0.741, 0.536
- mat_id.diffuse_intensity = 1
- mat_id.roughness = 0.909
- # specular
- mat_id.specular_shader = "COOKTORR"
- mat_id.specular_color = 1, 1, 1
- mat_id.specular_hardness = 10
- mat_id.specular_intensity = 0.115
-
-
-def Alternative_Clay(self, msg):
- Find = False
- AM = None
- i = 0
- for mat in bpy.data.materials:
- if (mat.Mat_Clay) and (not Find):
- Find = True
- AM = mat
- i += 1
- else:
- if (mat.Mat_Clay):
- i += 1
-
- if msg is True:
- if (i == 1):
- self.report({'INFO'},
- "The material \"" + AM.name + "\" is set as Clay")
- else:
- if (i > 1):
- self.report({'WARNING'},
- "Two or more materials are set as "
- "Clay. \"" + AM.name + "\" will be used")
-
- return AM
-
-
-def Get_Mat():
- Mat = bpy.data.materials["Clay_Render"]
- return Mat
-
-
-def Exist_Mat():
- if bpy.data.materials.get("Clay_Render"):
- return True
-
- return False
-
-
-class ClayPinned(Operator):
- bl_idname = "render.clay_pinned"
- bl_label = "Clay Pinned"
- bl_description = ("Keep current Clay Material settings if Clay Render is disabled\n"
- "The Material will not have a Fake User set, so it'll be lost\n"
- "on quitting Blender or loading / reloading a blend file")
-
- def execute(self, context):
- if bpy.types.Scene.Clay_Pinned:
- bpy.types.Scene.Clay_Pinned = False
- else:
- if bpy.types.Scene.Clay:
- if bpy.data.materials[0].users == 0:
- bpy.data.materials.remove(Get_Mat())
- bpy.types.Scene.Clay_Pinned = True
- else:
- bpy.types.Scene.Clay_Pinned = True
-
- return {'FINISHED'}
-
-
-class CheckClay(Operator):
- bl_idname = "render.clay"
- bl_label = "Clay Render"
- bl_description = "Enable Clay render override"
-
- def execute(self, context):
- if bpy.types.Scene.Clay:
- # Clay activated
- ac = Alternative_Clay(self, True)
- if ac is None:
- if not Exist_Mat():
- Create_Mat()
- rl = context.scene.render.layers
- rl.active.material_override = Get_Mat()
-
- else:
- context.scene.render.layers.active.material_override = ac
-
- bpy.types.Scene.Clay = False
-
- else:
- context.scene.render.layers.active.material_override = None
- if bpy.types.Scene.Clay_Pinned:
- if bpy.data.materials[0].users == 0:
- bpy.data.materials.remove(Get_Mat())
- bpy.types.Scene.Clay = True
-
- return {'FINISHED'}
-
-
-def draw_clay_render(self, context):
- ok_clay = not bpy.types.Scene.Clay
- pin = not bpy.types.Scene.Clay_Pinned
-
- box = self.layout.box()
- row = box.row(align=True)
- row.operator(CheckClay.bl_idname, emboss=True, icon='RADIOBUT_ON' if
- ok_clay else 'RADIOBUT_OFF')
-
- if Alternative_Clay(self, False) is None:
- if Exist_Mat():
- if (bpy.data.materials[0].users == 0) or ok_clay:
- im = Get_Mat()
- row.prop(im, "diffuse_color", text="")
- row.operator(ClayPinned.bl_idname, text="", icon='PINNED' if
- pin else 'UNPINNED')
- row.active = ok_clay
- else:
- spacer_box = row.box()
- sub_row = spacer_box.row(align=True)
- sub_row.scale_y = 0.5
- sub_row.label(text="Clay Material applied to an Object", icon="INFO")
- else:
- spacer_box = row.box()
- sub_row = spacer_box.row(align=True)
- sub_row.scale_y = 0.5
- sub_row.label(text="Custom Material Clay", icon="INFO")
-
-
-def draw_clay_options(self, context):
- cm = context.material
- layout = self.layout
- layout.prop(cm, "Mat_Clay", text="Use as Clay", icon="META_EMPTY", toggle=True)
-
-
-def draw_clay_warning(self, context):
- if not bpy.types.Scene.Clay:
- self.layout.label(text="Clay Render Enabled", icon="INFO")
-
-
-def register():
- bpy.types.Scene.Clay = BoolProperty(
- name="Clay Render",
- description="Use Clay Render",
- default=False
- )
- bpy.types.Scene.Clay_Pinned = BoolProperty(
- name="Clay Pinned",
- description="Keep Clay Material",
- default=False
- )
- bpy.types.Material.Mat_Clay = BoolProperty(
- name="Use as Clay",
- description="Use as Clay Material render override",
- default=False
- )
-
- bpy.utils.register_class(ClayPinned)
- bpy.utils.register_class(CheckClay)
- bpy.types.RENDER_PT_render.prepend(draw_clay_render)
- bpy.types.MATERIAL_PT_options.append(draw_clay_options)
- bpy.types.INFO_HT_header.append(draw_clay_warning)
-
-
-def unregister():
- bpy.context.scene.render.layers.active.material_override = None
- if (Exist_Mat()) and (bpy.data.materials[0].users == 0):
- bpy.data.materials.remove(Get_Mat())
- bpy.utils.unregister_class(ClayPinned)
- bpy.utils.unregister_class(CheckClay)
- bpy.types.RENDER_PT_render.remove(draw_clay_render)
- bpy.types.MATERIAL_PT_options.remove(draw_clay_options)
- bpy.types.INFO_HT_header.remove(draw_clay_warning)
-
- del bpy.types.Scene.Clay
- del bpy.types.Scene.Clay_Pinned
- del bpy.types.Material.Mat_Clay
-
-
-if __name__ == "__main__":
- register()