render-generator-backend/src/product_gen/generate_product.py
2017-10-24 15:05:25 +01:00

55 lines
No EOL
1.6 KiB
Python

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