[Durian-svn] [3977] update to physics baking scripts to include adult dragon

campbell institute at blender.org
Thu May 27 11:11:26 CEST 2010


Revision: 3977
          https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=3977
Author:   campbell
Date:     2010-05-27 11:11:26 +0200 (Thu, 27 May 2010)
Log Message:
-----------
update to physics baking scripts to include adult dragon

Modified Paths:
--------------
    pro/scripts/modules/finals_config.py
    pro/scripts/ui/space_text_scripts.py
    pro/scripts/utilities/batch_bake.py

Modified: pro/scripts/modules/finals_config.py
===================================================================
--- pro/scripts/modules/finals_config.py	2010-05-27 08:24:43 UTC (rev 3976)
+++ pro/scripts/modules/finals_config.py	2010-05-27 09:11:26 UTC (rev 3977)
@@ -1,9 +1,12 @@
 # access thus
-''' # durian_init.py
-import finals_config
+default_durian_finals_init = """import finals_config
 reload(finals_config)
-finals_config.setup(baked=True)
-'''
+finals_config.setup_sintel(baked=False)
+finals_config.setup_shaman(baked=False)
+finals_config.setup_guardian(baked=False)
+finals_config.setup_dragon_baby(baked=False)
+finals_config.setup_dragon_adult(baked=False)
+"""
 
 import bpy
 import os
@@ -337,6 +340,16 @@
         '''
 
 
+def get_pointcache_shaman_cloth(obj=None):
+    ''' called externally '''
+    if obj is None:
+        obj = bpy.data.objects["GEO-robe_sim"]
+
+    mod = obj.modifiers["Cloth"]
+
+    return obj, mod
+
+
 def setup_shaman(baked=False, sim=True, pre_roll=10):
     base_dir, base_name, frame_start, frame_end, object_items = scene_info()
 
@@ -425,10 +438,18 @@
             mod.point_cache.frame_start = frame_start - 1
         elif base_name.startswith("04.1c"):
             mod.point_cache.frame_start = frame_start - 3
-            
-        print("WOOOOHOOOO")
 
 
+def get_pointcache_dragon_adult_cloth(obj=None):
+    ''' called externally '''
+    if obj is None:
+        obj = bpy.data.objects["GEO-wing_a_sim"]
+
+    mod = obj.modifiers["Cloth"]
+
+    return obj, mod
+
+
 def setup_dragon_adult(baked=False, sim=True, pre_roll=10):    
     base_dir, base_name, frame_start, frame_end, object_items = scene_info()
     

Modified: pro/scripts/ui/space_text_scripts.py
===================================================================
--- pro/scripts/ui/space_text_scripts.py	2010-05-27 08:24:43 UTC (rev 3976)
+++ pro/scripts/ui/space_text_scripts.py	2010-05-27 09:11:26 UTC (rev 3977)
@@ -3,14 +3,7 @@
 
 def main(context):
     
-    text = """import finals_config
-reload(finals_config)
-finals_config.setup_sintel(baked=False)
-finals_config.setup_shaman(baked=False)
-finals_config.setup_guardian(baked=False)
-finals_config.setup_dragon_baby(baked=False)
-finals_config.setup_dragon_adult(baked=False)
-"""
+    text = __import__("finals_config").default_durian_finals_init
 
     textblock = bpy.data.texts.get("durian_init.py")
     if textblock is None:

Modified: pro/scripts/utilities/batch_bake.py
===================================================================
--- pro/scripts/utilities/batch_bake.py	2010-05-27 08:24:43 UTC (rev 3976)
+++ pro/scripts/utilities/batch_bake.py	2010-05-27 09:11:26 UTC (rev 3977)
@@ -1,27 +1,25 @@
 # replace
 
-# python /d/pro/scripts/utilities/batch_bake.py > /tmp/hair/bake.sh # build list
+# python /d/pro/scripts/utilities/batch_bake.py > /d/pro/scripts/utilities/batch_bake.sh # build list
 # ./B -b /d/pro/scenes/05.8_ambushfight/05.8b_comp.blend -P /d/pro/scripts/utilities/batch_bake.py
 # ./B bzz /d/pro/scenes/05.8_ambushfight/05.8b_comp.blend -P /d/pro/scripts/utilities/batch_bake.py
 
 DEBUG = False
 OVERRIDE = True
-BIN = "/b/B"
 
+# BIN = "/b/B"
+BIN = "/br/blender"
+RENDER_DIR = "/tmp/dragon_adult"
+
 MULTIPROCESS = False
 
 # what to bake!!
 DO_SINTEL = False
-DO_DRAGON_BABY = True
+DO_SHAMAN = False
+DO_DRAGON_BABY = False
+DO_DRAGON_ADULT = True
 
 
-
-
-
-
-
-
-
 # print("running", __file__)
 import os
 import sys
@@ -97,34 +95,41 @@
 
     if DO_SINTEL:
         if "GEO-sintel_hair_emit" not in bpy.data.objects:
-            print("GEO-sintel_hair_emit not found...")
+            print("'GEO-sintel_hair_emit' not found...")
         else:
             ok |= 1
     
     if DO_DRAGON_BABY:
         if "GEO-wing_sim" not in bpy.data.objects:
-            print("GEO-wing_sim not found...")
+            print("'GEO-wing_sim' not found...")
         else:
             ok |= 1
 
+    if DO_DRAGON_ADULT:
+        if "GEO-wing_a_sim" not in bpy.data.objects:
+            print("'GEO-wing_a_sim' not found...")
+        else:
+            ok |= 1
+
+    if DO_SHAMAN:
+        if "GEO-robe_sim" not in bpy.data.objects:
+            print("'GEO-robe_sim' not found...")
+        else:
+            ok |= 1
+
     if not ok:
         sys.exit(0)
 
     if "durian_init.py" not in bpy.data.texts:
-        text = """import finals_config
-reload(finals_config)
-finals_config.setup_sintel(baked=False)
-finals_config.setup_shaman(baked=False)
-finals_config.setup_guardian(baked=False)
-finals_config.setup_dragon_baby(baked=False)
-finals_config.setup_dragon_adult(baked=False)"""
         textblock = bpy.data.texts.new("durian_init.py")
-        
+        text = __import__("finals_config").default_durian_finals_init
+        textblock.from_string(text)
 
+
 def use_simplify():
     scene = bpy.context.scene
     while scene:
-        scene.render.use_simplify = True
+        scene.render.use_simplify = False
         
         if DO_DRAGON_BABY: # needed for mdef
             scene.render.simplify_subdivision = 1
@@ -171,16 +176,15 @@
         "object": None
     }
 
+    def generic_run_sim(obj_sim_name, get_pointcache_func, setup_sim_func):
+        '''Tricky function to bake '''
+        for obj in [obj for obj_name, obj in object_items if obj_name == obj_sim_name]:
+            obj, mod_sim = get_pointcache_func(obj)
 
-    if DO_SINTEL:
-        # sintel (hair)
-        for obj in [obj for obj_name, obj in object_items if obj_name == "GEO-sintel_hair_emit"]:
-            obj, psys = finals_config.get_pointcache_sintel_hair(obj)
-
             context = base_context.copy()
             
-            context["point_cache"] = psys.point_cache
-            
+            context["point_cache"] = mod_sim.point_cache
+
             lay = get_object_layers(get_group_instance(obj))
             bpy.context.scene.layers = lay
 
@@ -190,63 +194,36 @@
 
             print("layers:", lay)
 
-            finals_config.setup_sintel(baked=False, pre_roll=0) # <--- why is this needed?
+            setup_sim_func(baked=False, pre_roll=0) # <--- why is this needed?
             bpy.ops.ptcache.free_bake(context)
 
             if OVERRIDE:
-                finals_config.setup_sintel(baked=False, pre_roll=0)
+                setup_sim_func(baked=False, pre_roll=0)
             else:
                 reload(durian_init) # <--- why is this needed?
 
             bpy.ops.ptcache.bake(context, bake=True)
 
-            for cmd in finals_config.pointcache_commands(psys.point_cache):
+            for cmd in finals_config.pointcache_commands(mod_sim.point_cache):
                 os.system(cmd)
+        
 
 
+    if DO_SINTEL:
+        generic_run_sim("GEO-sintel_hair_emit", finals_config.get_pointcache_sintel_hair, finals_config.setup_sintel)
 
-
-
     # dragon (cloth)
     if DO_DRAGON_BABY:
-        for obj in [obj for obj_name, obj in object_items if obj_name == "GEO-wing_sim"]:
-            obj, mod_cloth = finals_config.get_pointcache_dragon_baby_cloth(obj)
+        generic_run_sim("GEO-wing_sim", finals_config.get_pointcache_dragon_baby_cloth, finals_config.setup_dragon_baby)
 
-            context = base_context.copy()
-            
-            context["point_cache"] = mod_cloth.point_cache
+    # dragon (cloth)
+    if DO_DRAGON_ADULT:
+        generic_run_sim("GEO-wing_a_sim", finals_config.get_pointcache_dragon_adult_cloth, finals_config.setup_dragon_adult)
 
-            lay = get_object_layers(get_group_instance(obj))
-            bpy.context.scene.layers = lay
+    # dragon (cloth)
+    if DO_SHAMAN:
+        generic_run_sim("GEO-robe_sim", finals_config.get_pointcache_shaman_cloth, finals_config.setup_shaman)
 
-            if True not in lay:
-                print("Skipping", obj, "no instance")
-                continue        
-
-            print("layers:", lay)
-
-            finals_config.setup_dragon_baby(baked=False, pre_roll=0) # <--- why is this needed?
-            bpy.ops.ptcache.free_bake(context)
-
-            if OVERRIDE:
-                finals_config.setup_dragon_baby(baked=False, pre_roll=0)
-            else:
-                reload(durian_init) # <--- why is this needed?
-
-            bpy.ops.ptcache.bake(context, bake=True)
-
-            for cmd in finals_config.pointcache_commands(mod_cloth.point_cache):
-                os.system(cmd)
-
-
-
-
-
-
-
-
-
-
     # import code
     # code.interact()
 
@@ -270,9 +247,8 @@
     bpy.context.scene.render.file_format = 'AVI_JPEG'
     bpy.context.scene.render.file_quality = 95
 
-    image_dir = "/tmp/hair/"
     filename = bpy.data.filename.replace(".blend", ".avi")
-    bpy.context.scene.render.output_path = os.path.join(image_dir, os.path.basename(filename))
+    bpy.context.scene.render.output_path = os.path.join(RENDER_DIR, os.path.basename(filename))
 
     
     if OVERRIDE:



More information about the Durian-svn mailing list