Tidy up.
This commit is contained in:
parent
ea2435a159
commit
a1e22c9f2b
13 changed files with 101 additions and 58 deletions
Binary file not shown.
BIN
src/product_gen/__pycache__/generate_product.cpython-35.pyc
Normal file
BIN
src/product_gen/__pycache__/generate_product.cpython-35.pyc
Normal file
Binary file not shown.
|
@ -3,18 +3,7 @@ import bpy
|
||||||
import product_gen.generate_lamp_base
|
import product_gen.generate_lamp_base
|
||||||
import product_gen.generate_shades
|
import product_gen.generate_shades
|
||||||
|
|
||||||
def generate(shape,
|
def generate_models(shape, height, radius):
|
||||||
height,
|
|
||||||
radius,
|
|
||||||
color,
|
|
||||||
output_prefix,
|
|
||||||
is_final=False):
|
|
||||||
|
|
||||||
prefix = os.getcwd() + "/" + output_prefix + "/" + output_prefix
|
|
||||||
|
|
||||||
# Set up scene
|
|
||||||
objs = bpy.data.objects
|
|
||||||
objs.remove(objs["Cube"], True)
|
|
||||||
|
|
||||||
# Shade
|
# Shade
|
||||||
radius2 = 0.3
|
radius2 = 0.3
|
||||||
|
@ -27,7 +16,6 @@ def generate(shape,
|
||||||
elif shape == "bio":
|
elif shape == "bio":
|
||||||
shade = product_gen.generate_shades.generate_bio_shade(radius,
|
shade = product_gen.generate_shades.generate_bio_shade(radius,
|
||||||
radius2, height)
|
radius2, height)
|
||||||
|
|
||||||
# Base
|
# Base
|
||||||
radius1 = 0.3
|
radius1 = 0.3
|
||||||
radius2 = 0.2
|
radius2 = 0.2
|
||||||
|
@ -44,10 +32,12 @@ def generate(shape,
|
||||||
chord = product_gen.generate_lamp_base.generate_chord(height,
|
chord = product_gen.generate_lamp_base.generate_chord(height,
|
||||||
radius,
|
radius,
|
||||||
location)
|
location)
|
||||||
|
|
||||||
models = {shade.name: shade,
|
models = {shade.name: shade,
|
||||||
chord.name: chord,
|
chord.name: chord,
|
||||||
base.name: base}
|
base.name: base}
|
||||||
|
return models
|
||||||
|
|
||||||
|
def optimize_for_render(models):
|
||||||
|
|
||||||
# Smooth shapes
|
# Smooth shapes
|
||||||
for eachModel in models.values():
|
for eachModel in models.values():
|
||||||
|
@ -55,11 +45,7 @@ def generate(shape,
|
||||||
for poly in bpy.context.object.data.polygons:
|
for poly in bpy.context.object.data.polygons:
|
||||||
poly.use_smooth = True
|
poly.use_smooth = True
|
||||||
|
|
||||||
# Set up materials and textures
|
def apply_textures(colormap, models):
|
||||||
# Get material
|
|
||||||
colormap = {"shade": color,
|
|
||||||
"base": (220.0/255.0, 220.0/255.0, 220.0/255.0),
|
|
||||||
"chord": (20.0/255.0, 20.0/255.0, 20.0/255.0)}
|
|
||||||
|
|
||||||
for eachName in colormap.keys():
|
for eachName in colormap.keys():
|
||||||
mat = bpy.data.materials.get(eachName + "-material")
|
mat = bpy.data.materials.get(eachName + "-material")
|
||||||
|
@ -82,30 +68,3 @@ def generate(shape,
|
||||||
else:
|
else:
|
||||||
# no slots
|
# no slots
|
||||||
bpy.context.active_object.data.materials.append(mat)
|
bpy.context.active_object.data.materials.append(mat)
|
||||||
|
|
||||||
# Set up world
|
|
||||||
bpy.context.scene.world.use_sky_paper = True
|
|
||||||
bpy.context.scene.world.horizon_color = (0.9, 0.9, 0.9)
|
|
||||||
#bpy.context.scene.world.light_settings.use_environment_light = True
|
|
||||||
|
|
||||||
# Set up lamps and cameras
|
|
||||||
objs["Lamp"].location = objs["Camera"].location
|
|
||||||
objs["Lamp"].delta_location = (-3, 0, -1)
|
|
||||||
|
|
||||||
# Set up and do the render
|
|
||||||
bpy.context.scene.render.resolution_x = 600.0
|
|
||||||
bpy.context.scene.render.resolution_percentage = 99.0
|
|
||||||
|
|
||||||
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)
|
|
46
src/product_gen/generate_product.py
Normal file
46
src/product_gen/generate_product.py
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
import os
|
||||||
|
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_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
|
||||||
|
colormap = {"shade": color,
|
||||||
|
"base": (220.0/255.0, 220.0/255.0, 220.0/255.0),
|
||||||
|
"chord": (20.0/255.0, 20.0/255.0, 20.0/255.0)}
|
||||||
|
product_gen.generate_lamp.apply_textures(colormap, models)
|
||||||
|
|
||||||
|
rendering.setup_scene.setup_scene()
|
||||||
|
|
||||||
|
rendering.setup_renderer.setup_renderer()
|
||||||
|
|
||||||
|
# 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)
|
BIN
src/rendering/__pycache__/setup_renderer.cpython-35.pyc
Normal file
BIN
src/rendering/__pycache__/setup_renderer.cpython-35.pyc
Normal file
Binary file not shown.
BIN
src/rendering/__pycache__/setup_scene.cpython-35.pyc
Normal file
BIN
src/rendering/__pycache__/setup_scene.cpython-35.pyc
Normal file
Binary file not shown.
18
src/rendering/setup_renderer.py
Normal file
18
src/rendering/setup_renderer.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
def setup_renderer(engine="CYCLES"):
|
||||||
|
|
||||||
|
# Set up and do the render
|
||||||
|
if engine=="CYCLES":
|
||||||
|
bpy.context.scene.render.engine = 'CYCLES'
|
||||||
|
bpy.context.scene.cycles.samples = 300.0
|
||||||
|
bpy.context.scene.cycles.caustics_reflective = False
|
||||||
|
bpy.context.scene.cycles.caustics_refractive = False
|
||||||
|
bpy.context.scene.cycles.max_bounces = 1000.0
|
||||||
|
bpy.data.scenes["Scene"].render.use_border = True # Tell Blender to use border render
|
||||||
|
bpy.data.scenes["Scene"].render.border_max_y = 0.75 # Set the border top at 3/4 of the image's height
|
||||||
|
bpy.data.scenes["Scene"].render.border_min_y = 0.33 # Set the border bottom at 1/3 of the image's height
|
||||||
|
bpy.data.scenes["Scene"].render.border_min_x = 0.25 # Set the border left at 1/4 of the image's width
|
||||||
|
bpy.data.scenes["Scene"].render.border_max_x = 0.65 # Set the border right at the image's right border
|
||||||
|
bpy.context.scene.render.resolution_x = 600.0
|
||||||
|
bpy.context.scene.render.resolution_percentage = 100.0
|
20
src/rendering/setup_scene.py
Normal file
20
src/rendering/setup_scene.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
def initialize_scene():
|
||||||
|
|
||||||
|
# Set up scene
|
||||||
|
objs = bpy.data.objects
|
||||||
|
objs.remove(objs["Cube"], True)
|
||||||
|
|
||||||
|
def setup_scene():
|
||||||
|
|
||||||
|
# Set up world
|
||||||
|
bpy.context.scene.world.use_sky_paper = True
|
||||||
|
bpy.context.scene.world.horizon_color = (0.95, 0.95, 0.95)
|
||||||
|
#bpy.context.scene.world.light_settings.use_environment_light = True
|
||||||
|
|
||||||
|
# Set up lamps and cameras
|
||||||
|
bpy.data.objects["Lamp"].location = bpy.data.objects["Camera"].location
|
||||||
|
bpy.data.objects["Lamp"].delta_location = (-3, 0, -3)
|
||||||
|
#bpy.data.objects["Lamp"].type = "POINT"
|
||||||
|
bpy.data.objects["Lamp"].name = "front"
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import product_gen.generate_lamp
|
import product_gen.generate_product
|
||||||
|
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
@ -19,10 +19,10 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
height = float(shape_params["height"])
|
height = float(shape_params["height"])
|
||||||
radius = float(shape_params["radius"])
|
radius = float(shape_params["radius"])
|
||||||
color = [random.random()*255.0,
|
color = [random.random(),
|
||||||
random.random()*255.0,
|
random.random(),
|
||||||
random.random()*255.0]
|
random.random()]
|
||||||
product_gen.generate_lamp.generate(shape, height, radius, color, output)
|
product_gen.generate_product.generate(shape, height, radius, color, output)
|
||||||
|
|
||||||
shape_parameters = shape_params
|
shape_parameters = shape_params
|
||||||
shape_parameters["color"] = color
|
shape_parameters["color"] = color
|
||||||
|
|
|
@ -3,7 +3,7 @@ import ast
|
||||||
import sys
|
import sys
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import product_gen.generate_lamp
|
import product_gen.generate_product
|
||||||
|
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
@ -22,5 +22,5 @@ if __name__ == "__main__":
|
||||||
radius = float(shape_params["radius"])
|
radius = float(shape_params["radius"])
|
||||||
color = ast.literal_eval(shape_params["color"])
|
color = ast.literal_eval(shape_params["color"])
|
||||||
print(color[0])
|
print(color[0])
|
||||||
product_gen.generate_lamp.generate(shape, height, radius,
|
product_gen.generate_product.generate(shape, height, radius,
|
||||||
color, output, is_final=True)
|
color, output, is_final=True)
|
||||||
|
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import product_gen.generate_lamp
|
import product_gen.generate_product
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -18,9 +18,9 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
height = 1.0 + random.random()*1.5
|
height = 1.0 + random.random()*1.5
|
||||||
radius = 0.2 + random.random()*1.0
|
radius = 0.2 + random.random()*1.0
|
||||||
color = [18.0, 18.0, 18.0]
|
color = [0.1, 0.1, 0.1]
|
||||||
|
|
||||||
product_gen.generate_lamp.generate(shape, height, radius, color, output)
|
product_gen.generate_product.generate(shape, height, radius, color, output)
|
||||||
|
|
||||||
shape_parameters = {"shape": shape,
|
shape_parameters = {"shape": shape,
|
||||||
"height": height,
|
"height": height,
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"output": "test456", "radius": "1.0", "color": [154.90465134747797, 85.00668266837187, 234.34599434969277], "height": "1.0", "shape": "cone"}
|
{"color": [0.2536788765243849, 0.7557341205824731, 0.6786201102941254], "shape": "cone", "height": "1.0", "radius": "1.0", "output": "test456"}
|
Binary file not shown.
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 57 KiB |
Loading…
Reference in a new issue