Remove atmosphere to increase contranst and switch to standard view transform instead of filmic. Replace the models for purple, yellow and white to be more consistest and distinct from each other.
76 lines
No EOL
2.3 KiB
Python
76 lines
No EOL
2.3 KiB
Python
import bpy
|
|
|
|
|
|
base_collection = bpy.data.scenes["Base"].view_layers["RenderLayer"].layer_collection
|
|
highlight_collection = bpy.data.scenes["Toon Highlight"].view_layers["RenderLayer"].layer_collection
|
|
shadows_collection = bpy.data.scenes["Toon Shadows"].view_layers["RenderLayer"].layer_collection
|
|
|
|
def set_exclude(model, value):
|
|
base_collection.children[model].exclude = value
|
|
highlight_collection.children[f"Highlight {model}"].exclude = value
|
|
shadows_collection.children[f"Shadows {model}"].exclude = value
|
|
|
|
def set_color(model, color):
|
|
for obj in base_collection.children[model].collection.all_objects.values():
|
|
if len(obj.material_slots) < 3:
|
|
continue
|
|
obj.material_slots[1].material = bpy.data.materials[f"Liquid Surface {color}"]
|
|
obj.material_slots[2].material = bpy.data.materials[f"Liquid Glass {color}"]
|
|
|
|
def render_bottle(color, model, output):
|
|
set_exclude(model, False)
|
|
set_color(model, color)
|
|
bpy.data.scenes["Base"].render.filepath = output
|
|
bpy.ops.render.render(write_still=True)
|
|
set_exclude(model, True)
|
|
|
|
models = [
|
|
"Cone",
|
|
"Cone Slim",
|
|
"Cone Inverted",
|
|
"Cylinder",
|
|
"Tube",
|
|
"Tubes Duo",
|
|
"Tubes Trio",
|
|
"Sphere",
|
|
"Sphere Tiny",
|
|
"Sphere Double",
|
|
"Sphere Tubed",
|
|
"Cube",
|
|
"Spiked",
|
|
"Pyramid",
|
|
"Triangle",
|
|
"Triangle Alt",
|
|
"Pentagon",
|
|
"Hexagon",
|
|
]
|
|
|
|
|
|
bottles = [
|
|
["Red", "Cone", "//src/graphics/red.png"],
|
|
["Green", "Cube", "//src/graphics/green.png"],
|
|
["Black", "Spiked", "//src/graphics/black.png"],
|
|
["Cyan", "Sphere", "//src/graphics/cyan.png"],
|
|
["Purple", "Sphere Double", "//src/graphics/purple.png"],
|
|
["Yellow", "Triangle Alt", "//src/graphics/yellow.png"],
|
|
["White", "Cone Inverted", "//src/graphics/white.png"],
|
|
]
|
|
|
|
# Code to render a preview of all types
|
|
# bottles = [["Red", type, f"//types/{type}.png"] for type in models]
|
|
|
|
# Code for prototyping speedup
|
|
# bpy.data.scenes["Base"].cycles.samples = 1024
|
|
|
|
# Set active scene so the highlights/shadows isn't accidentally rendered
|
|
bpy.context.window.scene = bpy.data.scenes["Base"]
|
|
|
|
# Reset visibility of all bottles
|
|
for model in models:
|
|
set_exclude(model, True)
|
|
|
|
# Render the bottles
|
|
for color, model, output in bottles:
|
|
render_bottle(color, model, output)
|
|
|
|
print("Done!") |