763523dbab089da07e38c3e8bb4ee1404976ea4e
[blender-addons-contrib.git] / add_test_scene_elements / scene_objects_cycles.py
1
2
3 import bpy
4 import mathutils
5 import math
6 from math import pi
7 from bpy.props import *
8 from mathutils import Vector
9
10
11 class add_cycles_scene(bpy.types.Operator):
12     bl_idname = "objects_cycles.add_scene"
13     bl_label = "Create test scene"
14     bl_description = "Cycles Scene with Objects"
15     bl_register = True
16     bl_undo = True
17
18     def execute(self, context):
19         blend_data = context.blend_data
20         ob = bpy.context.active_object
21
22 # add new scene
23         bpy.ops.scene.new(type="NEW")
24         scene = bpy.context.scene
25         bpy.context.scene.render.engine = 'CYCLES'
26         scene.name = "scene_object_cycles"
27
28 # render settings
29         render = scene.render
30         render.resolution_x = 1920
31         render.resolution_y = 1080
32         render.resolution_percentage = 50
33
34 # add new world
35         world = bpy.data.worlds.new("Cycles_Object_World")
36         scene.world = world
37         world.use_sky_blend = True
38         world.use_sky_paper = True
39         world.horizon_color = (0.004393, 0.02121, 0.050)
40         world.zenith_color = (0.03335, 0.227, 0.359)
41         world.light_settings.use_ambient_occlusion = True
42         world.light_settings.ao_factor = 0.25
43
44 # add camera
45         bpy.ops.object.camera_add(location=(7.48113, -6.50764, 5.34367), rotation=(1.109319, 0.010817, 0.814928))
46         cam = bpy.context.active_object.data
47         cam.lens = 35
48         cam.draw_size = 0.1
49         bpy.ops.view3d.viewnumpad(type='CAMERA')
50
51 # add point lamp
52         bpy.ops.object.lamp_add(type="POINT", location=(4.07625, 1.00545, 5.90386), rotation=(0.650328, 0.055217, 1.866391))
53         lamp1 = bpy.context.active_object.data
54         lamp1.name = "Point_Right"
55         lamp1.energy = 1.0
56         lamp1.distance = 30.0
57         lamp1.shadow_method = "RAY_SHADOW"
58         lamp1.use_sphere = True
59
60 # add point lamp2
61         bpy.ops.object.lamp_add(type="POINT", location=(-0.57101, -4.24586, 5.53674), rotation=(1.571, 0, 0.785))
62         lamp2 = bpy.context.active_object.data
63         lamp2.name = "Point_Left"
64         lamp2.energy = 1.0
65         lamp2.distance = 30.0
66
67
68 ### add cube
69         bpy.ops.mesh.primitive_cube_add()
70         bpy.ops.object.editmode_toggle()
71         bpy.ops.mesh.subdivide(number_cuts=2)
72         bpy.ops.uv.unwrap(method='CONFORMAL', margin=0.001)
73         bpy.ops.object.editmode_toggle()
74         cube = bpy.context.active_object
75
76 # add cube material
77         cubeMaterial = blend_data.materials.new("Cycles_Cube_Material")
78         bpy.ops.object.material_slot_add()
79         cube.material_slots[0].material = cubeMaterial
80 # Diffuse
81         cubeMaterial.preview_render_type = "CUBE"
82         cubeMaterial.diffuse_color = (1.000, 0.373, 0.00)
83 # Cycles 
84         cubeMaterial.use_nodes = True
85
86
87 ### add monkey
88         bpy.ops.mesh.primitive_monkey_add(location=(-0.1, 0.08901, 1.505))
89         bpy.ops.transform.rotate(value=(1.15019), axis=(0, 0, 1))
90         bpy.ops.transform.rotate(value=(-0.673882), axis=(0, 1, 0))
91         bpy.ops.transform.rotate(value=-0.055, axis=(1, 0, 0))
92
93         bpy.ops.object.modifier_add(type='SUBSURF')
94         bpy.ops.object.shade_smooth()
95         monkey = bpy.context.active_object
96
97 # add monkey material
98         monkeyMaterial = blend_data.materials.new("Cycles_Monkey_Material")
99         bpy.ops.object.material_slot_add()
100         monkey.material_slots[0].material = monkeyMaterial
101 # Diffuse
102         monkeyMaterial.preview_render_type = "MONKEY"
103         monkeyMaterial.diffuse_color = (0.239, 0.288, 0.288)
104 # Cycles
105         monkeyMaterial.use_nodes = True
106
107
108 ### add plane
109         bpy.ops.mesh.primitive_plane_add(radius=50, view_align=False, enter_editmode=False, location=(0, 0, -1))
110         bpy.ops.object.editmode_toggle()
111         bpy.ops.transform.rotate(value=-0.8, axis=(0, 0, 1), constraint_axis=(False, False, True))
112         bpy.ops.uv.unwrap(method='CONFORMAL', margin=0.001)
113         bpy.ops.object.editmode_toggle()
114         plane = bpy.context.active_object
115
116 # add plane material
117         planeMaterial = blend_data.materials.new("Cycles_Plane_Material")
118         bpy.ops.object.material_slot_add()
119         plane.material_slots[0].material = planeMaterial
120 # Diffuse
121         planeMaterial.preview_render_type = "FLAT"
122         planeMaterial.diffuse_color = (0.2, 0.2, 0.2)
123 # Cycles
124         planeMaterial.use_nodes = True
125
126
127 # Back to Scene
128         sc = bpy.context.scene
129
130         return {'FINISHED'}