import os import random import bpy import product_gen.generate_lamp import rendering.setup_scene import rendering.setup_renderer def generate(shape, height, radius, color, output_prefix, is_final=False): rendering.setup_renderer.setup_renderer() rendering.setup_scene.initialize_scene() # Generate models models = product_gen.generate_lamp.generate_models(shape, height, radius) # Optimize geometries for render product_gen.generate_lamp.optimize_for_render(models) # Set up materials and textures if "bio" not in shape: colormap = {"shade": color, "base": (132.0/255.0, 64.0/255.0, 11.0/255.0), "chord": (5.0/255.0, 5.0/255.0, 5.0/255.0)} else: colormap = {"shade": color} product_gen.generate_lamp.apply_textures(colormap, models) rendering.setup_scene.setup_scene() # Do rendering prefix = os.getcwd() + "/" + output_prefix + "/" + output_prefix if is_final: bpy.context.scene.render.filepath = prefix + "_kitchen.png" bpy.ops.render.render(write_still=True) bpy.context.scene.render.filepath = prefix + "_hall.png" bpy.ops.render.render(write_still=True) bpy.context.scene.render.filepath = prefix + "_landing.png" bpy.ops.render.render(write_still=True) else: bpy.context.scene.render.filepath = prefix + ".png" bpy.ops.render.render(write_still=True) bpy.ops.wm.save_as_mainfile(filepath=prefix + ".blend") return height, radius, color