diff options
Diffstat (limited to 'add_advanced_objects_menu/scene_objects_bi.py')
-rw-r--r-- | add_advanced_objects_menu/scene_objects_bi.py | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/add_advanced_objects_menu/scene_objects_bi.py b/add_advanced_objects_menu/scene_objects_bi.py new file mode 100644 index 00000000..f189bb11 --- /dev/null +++ b/add_advanced_objects_menu/scene_objects_bi.py @@ -0,0 +1,195 @@ +# gpl: author meta-androcto + +import bpy +from bpy.types import Operator + + +class add_BI_scene(Operator): + bl_idname = "bi.add_scene" + bl_label = "Create test scene" + bl_description = "Blender Internal renderer Scene with Objects" + bl_options = {'REGISTER', 'UNDO'} + + def execute(self, context): + try: + blend_data = context.blend_data + # ob = bpy.context.active_object + + # add new scene + bpy.ops.scene.new(type="NEW") + scene = bpy.context.scene + scene.name = "scene_materials" + + # render settings + render = scene.render + render.resolution_x = 1920 + render.resolution_y = 1080 + render.resolution_percentage = 50 + + # add new world + world = bpy.data.worlds.new("Materials_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.25 + + # add camera + bpy.ops.object.camera_add( + location=(7.48113, -6.50764, 5.34367), + rotation=(1.109319, 0.010817, 0.814928) + ) + cam = bpy.context.active_object.data + cam.lens = 35 + cam.draw_size = 0.1 + bpy.ops.view3d.viewnumpad(type='CAMERA') + + # add point lamp + bpy.ops.object.lamp_add( + type="POINT", location=(4.07625, 1.00545, 5.90386), + rotation=(0.650328, 0.055217, 1.866391) + ) + lamp1 = bpy.context.active_object.data + lamp1.name = "Point_Right" + lamp1.energy = 1.0 + lamp1.distance = 30.0 + lamp1.shadow_method = "RAY_SHADOW" + lamp1.use_sphere = True + + # add point lamp2 + bpy.ops.object.lamp_add( + type="POINT", location=(-0.57101, -4.24586, 5.53674), + rotation=(1.571, 0, 0.785) + ) + lamp2 = bpy.context.active_object.data + lamp2.name = "Point_Left" + lamp2.energy = 1.0 + lamp2.distance = 30.0 + + # Add cube + bpy.ops.mesh.primitive_cube_add() + bpy.ops.object.editmode_toggle() + bpy.ops.mesh.subdivide(number_cuts=2) + bpy.ops.uv.unwrap(method='CONFORMAL', margin=0.001) + bpy.ops.object.editmode_toggle() + + cube = bpy.context.active_object + # add new material + cubeMaterial = blend_data.materials.new("Cube_Material") + bpy.ops.object.material_slot_add() + cube.material_slots[0].material = cubeMaterial + # Diffuse + cubeMaterial.preview_render_type = "CUBE" + cubeMaterial.diffuse_color = (1.000, 0.373, 0.00) + cubeMaterial.diffuse_shader = 'OREN_NAYAR' + cubeMaterial.diffuse_intensity = 1.0 + cubeMaterial.roughness = 0.09002 + # Specular + cubeMaterial.specular_color = (1.000, 0.800, 0.136) + cubeMaterial.specular_shader = "PHONG" + cubeMaterial.specular_intensity = 1.0 + cubeMaterial.specular_hardness = 511.0 + # Shading + cubeMaterial.ambient = 1.00 + cubeMaterial.use_cubic = False + # Transparency + cubeMaterial.use_transparency = False + cubeMaterial.alpha = 0 + # Mirror + cubeMaterial.raytrace_mirror.use = True + cubeMaterial.mirror_color = (1.000, 0.793, 0.0) + cubeMaterial.raytrace_mirror.reflect_factor = 0.394 + cubeMaterial.raytrace_mirror.fresnel = 2.0 + cubeMaterial.raytrace_mirror.fresnel_factor = 1.641 + cubeMaterial.raytrace_mirror.fade_to = "FADE_TO_SKY" + cubeMaterial.raytrace_mirror.gloss_anisotropic = 1.0 + # Shadow + cubeMaterial.use_transparent_shadows = True + + # Add a texture + cubetex = blend_data.textures.new("CloudTex", type='CLOUDS') + cubetex.noise_type = 'SOFT_NOISE' + cubetex.noise_scale = 0.25 + mtex = cubeMaterial.texture_slots.add() + mtex.texture = cubetex + mtex.texture_coords = 'ORCO' + mtex.scale = (0.800, 0.800, 0.800) + mtex.use_map_mirror = True + mtex.mirror_factor = 0.156 + mtex.use_map_color_diffuse = True + mtex.diffuse_color_factor = 0.156 + mtex.use_map_normal = True + mtex.normal_factor = 0.010 + mtex.blend_type = "ADD" + mtex.use_rgb_to_intensity = True + mtex.color = (1.000, 0.207, 0.000) + + # Add monkey + bpy.ops.mesh.primitive_monkey_add(location=(-0.1, 0.08901, 1.505)) + bpy.ops.transform.rotate(value=(1.15019), axis=(0, 0, 1)) + bpy.ops.transform.rotate(value=(-0.673882), axis=(0, 1, 0)) + bpy.ops.transform.rotate(value=-0.055, axis=(1, 0, 0)) + bpy.ops.object.modifier_add(type='SUBSURF') + bpy.ops.object.shade_smooth() + monkey = bpy.context.active_object + # add new material + monkeyMaterial = blend_data.materials.new("Monkey_Material") + bpy.ops.object.material_slot_add() + monkey.material_slots[0].material = monkeyMaterial + # Material settings + monkeyMaterial.preview_render_type = "MONKEY" + monkeyMaterial.diffuse_color = (0.239, 0.288, 0.288) + monkeyMaterial.specular_color = (0.604, 0.465, 0.136) + monkeyMaterial.diffuse_shader = 'LAMBERT' + monkeyMaterial.diffuse_intensity = 1.0 + monkeyMaterial.specular_intensity = 0.3 + monkeyMaterial.ambient = 0 + monkeyMaterial.type = 'SURFACE' + monkeyMaterial.use_cubic = True + monkeyMaterial.use_transparency = False + monkeyMaterial.alpha = 0 + monkeyMaterial.use_transparent_shadows = True + monkeyMaterial.raytrace_mirror.use = True + monkeyMaterial.raytrace_mirror.reflect_factor = 0.65 + monkeyMaterial.raytrace_mirror.fade_to = "FADE_TO_MATERIAL" + + # Add plane + bpy.ops.mesh.primitive_plane_add( + radius=50, view_align=False, enter_editmode=False, location=(0, 0, -1) + ) + bpy.ops.object.editmode_toggle() + bpy.ops.transform.rotate( + value=-0.8, axis=(0, 0, 1), constraint_axis=(False, False, True), + constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', + proportional_edit_falloff='SMOOTH', proportional_size=1 + ) + bpy.ops.uv.unwrap(method='CONFORMAL', margin=0.001) + bpy.ops.object.editmode_toggle() + plane = bpy.context.active_object + # add new material + planeMaterial = blend_data.materials.new("Plane_Material") + bpy.ops.object.material_slot_add() + plane.material_slots[0].material = planeMaterial + # Material settings + planeMaterial.preview_render_type = "CUBE" + planeMaterial.diffuse_color = (0.2, 0.2, 0.2) + planeMaterial.specular_color = (0.604, 0.465, 0.136) + planeMaterial.specular_intensity = 0.3 + planeMaterial.ambient = 0 + planeMaterial.use_cubic = True + planeMaterial.use_transparency = False + planeMaterial.alpha = 0 + planeMaterial.use_transparent_shadows = True + + except Exception as e: + self.report({'WARNING'}, + "Some operations could not be performed (See Console for more info)") + + print("\n[Add Advanced Objects]\nOperator: " + "bi.add_scene\nError: {}".format(e)) + + return {'CANCELLED'} + + return {"FINISHED"} |