Welcome to mirror list, hosted at ThFree Co, Russian Federation.

scene_texture_render.py « add_advanced_objects_menu - git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 02d6490bbec822358cdc7d389108a022f567b24b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# gpl: author meta-androcto

import bpy
from bpy.types import Operator


class add_texture_scene(Operator):
    bl_idname = "objects_texture.add_scene"
    bl_label = "Create test scene"
    bl_description = "Cycles renderer Scene: Camera aligned to a plane"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        try:
            blend_data = context.blend_data

            # add new scene
            bpy.ops.scene.new(type="NEW")
            scene = bpy.context.scene
            bpy.context.scene.render.engine = 'CYCLES'
            scene.name = "scene_texture_cycles"

            # render settings
            render = scene.render
            render.resolution_x = 1080
            render.resolution_y = 1080
            render.resolution_percentage = 100

            # add new world
            world = bpy.data.worlds.new("Cycles_Textures_World")
            scene.world = world
            world.use_sky_blend = True
            world.use_sky_paper = True
            world.horizon_color = (0.004393, 0.02121, 0.050)
            world.zenith_color = (0.03335, 0.227, 0.359)
            world.light_settings.use_ambient_occlusion = True
            world.light_settings.ao_factor = 0.5

            # add camera
            bpy.ops.view3d.viewnumpad(type='TOP')
            bpy.ops.object.camera_add(
                    location=(0, 0, 2.1850), rotation=(0, 0, 0), view_align=True
                    )
            cam = bpy.context.active_object.data
            cam.lens = 35
            cam.draw_size = 0.1

            # add plane
            bpy.ops.mesh.primitive_plane_add(enter_editmode=True, location=(0, 0, 0))
            bpy.ops.mesh.subdivide(number_cuts=10, smoothness=0)
            bpy.ops.uv.unwrap(method='CONFORMAL', margin=0.001)
            bpy.ops.object.editmode_toggle()
            plane = bpy.context.active_object

            # add plane material
            planeMaterial = blend_data.materials.new("Cycles_Plane_Material")
            bpy.ops.object.material_slot_add()
            plane.material_slots[0].material = planeMaterial
            # Diffuse
            planeMaterial.preview_render_type = "FLAT"
            planeMaterial.diffuse_color = (0.2, 0.2, 0.2)
            # Cycles
            planeMaterial.use_nodes = True

            # Back to Scene
            sc = bpy.context.scene
            bpy.ops.view3d.viewnumpad(type='CAMERA')

        except Exception as e:
            self.report({'WARNING'},
                        "Some operations could not be performed (See Console for more info)")

            print("\n[Add Advanced  Objects]\nOperator: "
                  "objects_texture.add_scene\nError: {}".format(e))

            return {'CANCELLED'}

        return {'FINISHED'}