[Durian-svn] [4616] update to automated baker not to save each blend file before doing the opengl render
campbell
institute at blender.org
Sun Jun 6 13:09:31 CEST 2010
Revision: 4616
https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=4616
Author: campbell
Date: 2010-06-06 13:09:30 +0200 (Sun, 06 Jun 2010)
Log Message:
-----------
update to automated baker not to save each blend file before doing the opengl render
Modified Paths:
--------------
pro/scripts/utilities/batch_bake.py
Modified: pro/scripts/utilities/batch_bake.py
===================================================================
--- pro/scripts/utilities/batch_bake.py 2010-06-06 10:25:24 UTC (rev 4615)
+++ pro/scripts/utilities/batch_bake.py 2010-06-06 11:09:30 UTC (rev 4616)
@@ -10,9 +10,16 @@
DEBUG = False
OVERRIDE = True
+# what to bake!!
+DO_SINTEL = False
+DO_SHAMAN = True
+DO_DRAGON_BABY = False
+DO_DRAGON_ADULT = False
+
# 0:bake not needed
# 1:bake needed
# 2:force rebake
+# -1: buggy, needs attention
BAKE_DEFINITION = {
"02.a": {"sintel": 0, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 1},
"02.b": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 1},
@@ -80,10 +87,10 @@
"04.2d": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"04.2e": {"sintel": 0, "dragon_baby": 1, "dragon_adult": 1, "shaman_cloth": 0},
"04.2f": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
- "04.2g": {"sintel": 0, "dragon_baby": 1, "dragon_adult": 1, "shaman_cloth": 0},
+ "04.2g": {"sintel": 0, "dragon_baby": 1, "dragon_adult": -1, "shaman_cloth": 0},
"04.2h": {"sintel": 1, "dragon_baby": 1, "dragon_adult": 0, "shaman_cloth": 0},
"04.2i": {"sintel": 1, "dragon_baby": 1, "dragon_adult": 1, "shaman_cloth": 0},
- "04.2j": {"sintel": 0, "dragon_baby": 1, "dragon_adult": 1, "shaman_cloth": 0},
+ "04.2j": {"sintel": 0, "dragon_baby": 1, "dragon_adult": 0, "shaman_cloth": 0},
"04.2k": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"04.2l": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"04.2m": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
@@ -146,14 +153,14 @@
"07.1c": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"07.2c": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
- "08.2a": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
+ "08.2a": {"sintel": 1, "dragon_baby": 0, "dragon_adult": -1, "shaman_cloth": 0},
"08.2b": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"08.2c": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"08.2d": {"sintel": 0, "dragon_baby": 1, "dragon_adult": 0, "shaman_cloth": 0},
"08.2e": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"08.2j": {"sintel": 0, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
"08.2k": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
- "08.2l": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
+ "08.2l": {"sintel": 1, "dragon_baby": 0, "dragon_adult": -1, "shaman_cloth": 0},
"08.2p": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0},
"08.2q": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
"08.2r": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 1, "shaman_cloth": 0},
@@ -172,9 +179,6 @@
# BIN = "/b/B"
-import finals_config
-print(finals_config.__file__)
-
try:
preset = os.environ['PRESET_SINTEL']
except:
@@ -192,14 +196,6 @@
MULTIPROCESS = False
-
-# what to bake!!
-DO_SINTEL = True
-DO_SHAMAN = False
-DO_DRAGON_BABY = False
-DO_DRAGON_ADULT = False
-
-
# print("running", __file__)
@@ -320,7 +316,7 @@
scene = scene.set
-def blender_bg_bake():
+def blender_bg_bake(dry_run=False):
# start
init_script = bpy.data.texts.get("durian_init.py")
if init_script:
@@ -334,12 +330,13 @@
if DEBUG:
bpy.context.scene.frame_end = bpy.context.scene.frame_start + 10
- finals_config_setup_all(baked=False)
-
import finals_config
- # start bake
- bpy.ops.ptcache.free_bake_all()
+ if not dry_run:
+ finals_config_setup_all(baked=False)
+
+ # start bake
+ bpy.ops.ptcache.free_bake_all()
'''
obj = bpy.data.objects['Mesh']
@@ -377,19 +374,21 @@
continue
print("layers:", lay)
+
+ if not dry_run:
- setup_sim_func(baked=False, pre_roll=GLOBAL_PRE_ROLL) # <--- why is this needed?
- bpy.ops.ptcache.free_bake(context)
+ setup_sim_func(baked=False, pre_roll=GLOBAL_PRE_ROLL) # <--- why is this needed?
+ bpy.ops.ptcache.free_bake(context)
- if OVERRIDE:
- setup_sim_func(baked=False, pre_roll=GLOBAL_PRE_ROLL)
- else:
- reload(durian_init) # <--- why is this needed?
+ if OVERRIDE:
+ setup_sim_func(baked=False, pre_roll=GLOBAL_PRE_ROLL)
+ else:
+ reload(durian_init) # <--- why is this needed?
- bpy.ops.ptcache.bake(context, bake=True)
+ bpy.ops.ptcache.bake(context, bake=True)
- for cmd in finals_config.pointcache_commands(mod_sim.point_cache):
- os.system(cmd)
+ for cmd in finals_config.pointcache_commands(mod_sim.point_cache):
+ os.system(cmd)
@@ -411,19 +410,24 @@
# import code
# code.interact()
- # end script, should we save?
- if init_script:
- text_replace(init_script, "baked=False", "baked=True")
- text_replace(init_script, "sim=False", "sim=True")
-
- # save so on open this renders quick
- bpy.ops.wm.save_mainfile(check_existing=False, path=bpy.data.filepath)
+ if not dry_run:
+ # end script, should we save?
+ if init_script:
+ text_replace(init_script, "baked=False", "baked=True")
+ text_replace(init_script, "sim=False", "sim=True")
+ # save so on open this renders quick
+
+ # bpy.ops.wm.save_mainfile(check_existing=False, path=bpy.data.filepath)
+
+
def blender_fg_render():
+
+ # setup layers
+ blender_bg_bake(dry_run=True)
+
# render
- check_init()
- use_simplify()
bpy.context.scene.render.resolution_percentage = 100
bpy.context.scene.render.resolution_x = 2048
@@ -455,6 +459,7 @@
def noblender_print_tasks():
+ '''
files = blend_path_list("/media/data/durian")
files = [l for l in files if l.endswith("_comp.blend")]
files.sort()
@@ -474,8 +479,35 @@
if MULTIPROCESS:
print(("echo \"%s\" ; " % f) + "sleep 1 ; " + "while [ `jobs | wc -l` -gt $TOT_PROP ] ; do sleep 1 ; done")
+ '''
+
+ ROOT = "/shared/sim"
+ import sys
+ import os
+ blends = list(blend_path_list(os.path.join(ROOT, "pro/scenes")))
+ blends = [b for b in blends if b.endswith("_comp.blend")]
+ blends_dict = dict([(os.path.basename(b).replace("_comp.blend", ""), b) for b in blends])
+
+ print(len(blends))
+
+ f = open(__file__.replace(".py", ".sh"), "w")
+
+ for k, v in BAKE_DEFINITION.items():
+ file = blends_dict[k]
+ if \
+ (v["dragon_adult"] and DO_DRAGON_ADULT) or \
+ (v["dragon_baby"] and DO_DRAGON_BABY) or \
+ (v["sintel"] and DO_SINTEL) or \
+ (v["shaman_cloth"] and DO_SHAMAN):
+
+ f.write('BL="%s" && /shared/bin/blender_sim_ui.sh $BL -b --python /shared/sim/pro/scripts/utilities/batch_bake.py && /shared/bin/blender_sim_ui.sh $BL --python /shared/sim/pro/scripts/utilities/batch_bake.py\n' % file)
+
+
+ f.close()
+
+
if __name__ == "__main__":
import sys
try:
More information about the Durian-svn
mailing list