[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