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 'render_clay.py')
-rw-r--r--render_clay.py134
1 files changed, 65 insertions, 69 deletions
diff --git a/render_clay.py b/render_clay.py
index d53878b0..da53aa64 100644
--- a/render_clay.py
+++ b/render_clay.py
@@ -21,32 +21,32 @@
bl_info = {
"name": "Clay Render",
"author": "Fabio Russo <ruesp83@libero.it>",
- "version": (1, 2),
+ "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": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
- "Scripts/Clay_Render",
- "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
+ "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():
- id = bpy.data.materials.new("Clay_Render")
- #diffuse
- id.diffuse_shader = "OREN_NAYAR"
- id.diffuse_color = 0.800, 0.741, 0.536
- id.diffuse_intensity = 1
- id.roughness = 0.909
- #specular
- id.specular_shader = "COOKTORR"
- id.specular_color = 1, 1, 1
- id.specular_hardness = 10
- id.specular_intensity = 0.115
+ 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):
@@ -58,19 +58,19 @@ def Alternative_Clay(self, msg):
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!")
+ 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!")
+ self.report({'WARNING'},
+ "Two or more materials are set as "
+ "Clay. \"" + AM.name + "\" will be used")
return AM
@@ -84,14 +84,15 @@ def Exist_Mat():
if bpy.data.materials.get("Clay_Render"):
return True
- else:
- return False
+ return False
-class ClayPinned(bpy.types.Operator):
+class ClayPinned(Operator):
bl_idname = "render.clay_pinned"
bl_label = "Clay Pinned"
- bl_description = "Clay Material Stores"
+ 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:
@@ -101,21 +102,20 @@ class ClayPinned(bpy.types.Operator):
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(bpy.types.Operator):
+class CheckClay(Operator):
bl_idname = "render.clay"
bl_label = "Clay Render"
- bl_description = "Use Clay Render"
+ bl_description = "Enable Clay render override"
def execute(self, context):
if bpy.types.Scene.Clay:
- #Clay Attivato
+ # Clay activated
ac = Alternative_Clay(self, True)
if ac is None:
if not Exist_Mat():
@@ -142,63 +142,58 @@ def draw_clay_render(self, context):
ok_clay = not bpy.types.Scene.Clay
pin = not bpy.types.Scene.Clay_Pinned
- rnl = context.scene.render.layers.active
- split = self.layout.split()
- col = split.column()
+ 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')
- col.operator(CheckClay.bl_idname, emboss=False, icon='CHECKBOX_HLT'\
- if ok_clay else 'CHECKBOX_DEHLT')
- col = split.column()
if Alternative_Clay(self, False) is None:
if Exist_Mat():
- if (bpy.data.materials[0].users == 0) or (ok_clay):
- row = col.row(align=True)
+ 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')
-
- if ok_clay:
- row.active = True
-
- else:
- row.active = False
-
+ row.operator(ClayPinned.bl_idname, text="", icon='PINNED' if
+ pin else 'UNPINNED')
+ row.active = ok_clay
else:
- col.label('Clay Material applied to an object')
-
+ 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:
- col.label('Custom Material Clay')
-
- self.layout.separator()
+ 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="Clay")
+ 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("Render Clay Enabled", "ERROR")
+ 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)
-
+ name="Clay Render",
+ description="Use Clay Render",
+ default=False
+ )
bpy.types.Scene.Clay_Pinned = BoolProperty(
- name='Clay Pinned',
- description='Clay Material Stores',
- default=False)
-
- bpy.types.Material.Mat_Clay = bpy.props.BoolProperty(
- name='Use as Clay',
- description='Use as Clay',
- default=False)
+ 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)
@@ -211,15 +206,16 @@ 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())
- del bpy.types.Scene.Clay
- del bpy.types.Scene.Clay_Pinned
- del bpy.types.Material.Mat_Clay
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()