-
Fabio Russo authored
Forgot a space in the description
Fabio Russo authoredForgot a space in the description
render_clay.py 3.01 KiB
# ##### 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_addon_info = {
"name": "Clay Render",
"author": "Fabio Russo <ruesp83@libero.it>",
"version": (0, 5),
"blender": (2, 5, 5),
"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.5/Py/"\
"Scripts/Clay_Render",
"tracker_url": "https://projects.blender.org/tracker/index.php?"\
"func=detail&aid=22971&group_id=153&atid=467",
"category": "Render"}
import bpy
from bpy.props import BoolProperty
bpy.types.Scene.Clay = BoolProperty(
name='Clay Render',
description='Use Clay Render',
default=False)
def search():
mats = bpy.data.materials
Find = False
id = None
for m in mats:
if m.name == "Clay_Render":
id = m
Find = True
break
return id
def create_mat():
id = search()
if id == None:
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
def draw_clay(self, context):
layout = self.layout
sd = context.scene
rnd = context.scene.render
rnl = rnd.layers.active
create_mat()
split = layout.split()
col = split.column()
col.prop(sd, "Clay",)
col = split.column()
id = search()
col.prop(id, "diffuse_color", text="")
self.layout.separator()
App_Clay = context.scene.Clay
if App_Clay:
rnl.material_override = id
col.active = True
else:
rnl.material_override = None
col.active = False
def register():
bpy.types.RENDER_PT_render.prepend(draw_clay)
pass
def unregister():
rnd = bpy.context.scene.render
rnl = rnd.layers.active
rnl.material_override = None
bpy.types.RENDER_PT_render.remove(draw_clay)
pass
if __name__ == "__main__":
register()