[Durian-svn] [4794] - pre-roll default for dragons

campbell institute at blender.org
Wed Jun 9 13:06:22 CEST 2010


Revision: 4794
          https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=4794
Author:   campbell
Date:     2010-06-09 13:06:22 +0200 (Wed, 09 Jun 2010)
Log Message:
-----------
- pre-roll default for dragons
- extra updating to work around blender bug

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

Modified: pro/scripts/modules/finals_config.py
===================================================================
--- pro/scripts/modules/finals_config.py	2010-06-09 11:02:01 UTC (rev 4793)
+++ pro/scripts/modules/finals_config.py	2010-06-09 11:06:22 UTC (rev 4794)
@@ -1129,7 +1129,7 @@
     return obj, mod
 
 
-def setup_dragon_baby(baked=False, sim=True, pre_roll=10):    
+def setup_dragon_baby(baked=False, sim=True, pre_roll=40):    
     base_dir, base_name, frame_start, frame_end, object_items = scene_info()
 
     # ---- Dragon Baby ---- #
@@ -1145,46 +1145,48 @@
             mod.vertex_group = "wing_sim"
 
     for obj in [obj for obj_name, obj in object_items if obj_name == "GEO-wing_sim"]:
-        mod = obj.modifiers["Cloth"]
+        cloth_mod = obj.modifiers["Cloth"]
         if sim:
-            mod.realtime = True
-            mod.render = True
+            cloth_mod.realtime = True
+            cloth_mod.render = True
 
-        pointcache_generic_setup(mod.point_cache, frame_start, frame_end, pre_roll)
-        mod.point_cache.name = "dragon_baby_" + base_name
-        pointcache_generic_bake(mod.point_cache, baked)
+        pointcache_generic_setup(cloth_mod.point_cache, frame_start, frame_end, pre_roll)
+        cloth_mod.point_cache.name = "dragon_baby_" + base_name
+        pointcache_generic_bake(cloth_mod.point_cache, baked)
+        
+        cloth_mod.settings.pre_roll = pre_roll
 
         # Per-blend dragon baby stuff...
         if base_name.startswith("03.1g"):
-            mod.point_cache.frame_start = frame_start - 10
+            cloth_mod.point_cache.frame_start = frame_start - 10
         elif base_name.startswith("03.1i"):
-            mod.point_cache.frame_start = -15
+            cloth_mod.point_cache.frame_start = -15
         elif base_name.startswith("03.1k"):
-            mod.point_cache.frame_start = -20
+            cloth_mod.point_cache.frame_start = -20
         elif base_name.startswith("03.1l"):
-            mod.point_cache.frame_start = -25
+            cloth_mod.point_cache.frame_start = -25
         elif base_name.startswith("03.1n"):
-            mod.point_cache.frame_start = -25
+            cloth_mod.point_cache.frame_start = -25
         elif base_name.startswith("03.2c"):
-            mod.point_cache.frame_start = -20
+            cloth_mod.point_cache.frame_start = -20
         elif base_name.startswith("03.2d"):
-            mod.point_cache.frame_start = -20
+            cloth_mod.point_cache.frame_start = -20
         elif base_name.startswith("03.2e"):
-            mod.point_cache.frame_start = -14
+            cloth_mod.point_cache.frame_start = -14
         elif base_name.startswith("03.3a"):
-            mod.point_cache.frame_start = -60
+            cloth_mod.point_cache.frame_start = -60
         elif base_name.startswith("03.3c"):
-            mod.point_cache.frame_start = 257
+            cloth_mod.point_cache.frame_start = 257
         elif base_name.startswith("03.4a"):
-            mod.point_cache.frame_start = 16
+            cloth_mod.point_cache.frame_start = 16
         elif base_name.startswith("03.4b"):
-            mod.point_cache.frame_start = 45
+            cloth_mod.point_cache.frame_start = 45
         elif base_name.startswith("03.4c"):
-            mod.point_cache.frame_start = 98
+            cloth_mod.point_cache.frame_start = 98
         elif base_name.startswith("04.1c"):
-            mod.point_cache.frame_start = frame_start - 3
+            cloth_mod.point_cache.frame_start = frame_start - 3
 
-        mod.settings.quality = GLOBAL_QUALITY
+        cloth_mod.settings.quality = GLOBAL_QUALITY
 
 
 def get_pointcache_dragon_adult_cloth(obj=None):
@@ -1215,19 +1217,19 @@
             mod.invert = False
 
     for obj in [obj for obj_name, obj in object_items if obj_name == "GEO-wing_a_sim"]:
-        mod = obj.modifiers["Cloth"]
+        cloth_mod = obj.modifiers["Cloth"]
         if sim:
-            mod.realtime = True
-            mod.render = True
-        pointcache_generic_setup(mod.point_cache, frame_start, frame_end, pre_roll)
-        mod.point_cache.name = "dragon_adult_" + base_name
-        pointcache_generic_bake(mod.point_cache, baked)
+            cloth_mod.realtime = True
+            cloth_mod.render = True
+        pointcache_generic_setup(cloth_mod.point_cache, frame_start, frame_end, pre_roll)
+        cloth_mod.point_cache.name = "dragon_adult_" + base_name
+        pointcache_generic_bake(cloth_mod.point_cache, baked)
 
         # Per-blend dragon baby stuff...
         #if base_name.startswith("03.1g"):
-        mod.point_cache.frame_start = frame_start - pre_roll
+        cloth_mod.settings.pre_roll = pre_roll
 
-        mod.settings.quality = GLOBAL_QUALITY
+        cloth_mod.settings.quality = GLOBAL_QUALITY
 
 
 def setup_guardian(baked=False, sim=False, pre_roll=10):

Modified: pro/scripts/utilities/batch_bake.py
===================================================================
--- pro/scripts/utilities/batch_bake.py	2010-06-09 11:02:01 UTC (rev 4793)
+++ pro/scripts/utilities/batch_bake.py	2010-06-09 11:06:22 UTC (rev 4794)
@@ -12,21 +12,22 @@
 
 # what to bake!!
 DO_SINTEL = False
-DO_SHAMAN = False
+DO_SHAMAN = True
 DO_DRAGON_BABY = True
 DO_DRAGON_ADULT = False
 
 # 0:bake not needed
 # 1:bake needed
 # 2:force rebake
+# 3:final baked
 # -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}, 
     "02.c": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": -1}, 
     "02.d": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
-    "02.e": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": -1}, 
-    "02.f": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": -1}, 
+    "02.e": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 3}, 
+    "02.f": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 3}, 
     "02.g": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": -1}, 
     "02.h": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "02.i": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
@@ -143,7 +144,7 @@
     "06.e": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "06.f": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "06.g": {"sintel": 0, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": -1}, 
-    "06.h": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 1}, 
+    "06.h": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "06.i": {"sintel": 0, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "06.j": {"sintel": 1, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
     "06.k": {"sintel": 0, "dragon_baby": 0, "dragon_adult": 0, "shaman_cloth": 0}, 
@@ -195,7 +196,14 @@
 
 MULTIPROCESS = False
 
+def scene_sets(scene):
+    scenes = [scene]
 
+    while scenes[-1].set:
+        scenes.append(scenes[-1].set)
+
+    return scenes
+    
 # print("running", __file__)
 
 
@@ -226,13 +234,8 @@
     
     if not groups:
         return objects
-    
-    scenes = [bpy.context.scene]
-    
-    while scenes[-1].set:
-        scenes.append(scenes[-1].set)
-    
-    for scene in scenes:
+
+    for scene in scene_sets(bpy.context.scene):
         for base in scene.bases:
             obj = base.object
             if obj.type == 'EMPTY':
@@ -255,13 +258,14 @@
     return layers
 
 
-def finals_config_setup_all(baked):
+def finals_config_setup_all(baked=False):
     import finals_config
     for attr in dir(finals_config):
         if attr.startswith("setup_"):
             _setup = getattr(finals_config, attr)
             _setup(baked=baked)
 
+
 def check_init():
     '''
     if "durian_init.py" not in bpy.data.texts:
@@ -304,8 +308,7 @@
 
 
 def use_simplify():
-    scene = bpy.context.scene
-    while scene:
+    for scene in scene_sets(bpy.context.scene):
         scene.render.use_simplify = False
         
         if DO_DRAGON_BABY: # needed for mdef
@@ -314,7 +317,6 @@
             scene.render.simplify_subdivision = 0
 
         scene.render.simplify_child_particles = 0.5
-        scene = scene.set
 
 
 def blender_bg_bake(dry_run=False):
@@ -338,14 +340,42 @@
 
         # start bake
         bpy.ops.ptcache.free_bake_all()
-    
+        
+        
+        # ATTEMPT TO DO FULL REFRESH
+        print("\n\nSTART\n")
+        finals_config_setup_all(baked=True)
+        for scene in scene_sets(bpy.context.scene):
+            scene.render.use_simplify = True
+            scene.set_frame(bpy.context.scene.frame_start)
+            scene.update()
+        for scene in scene_sets(bpy.context.scene):
+            scene.render.use_simplify = False
+            scene.set_frame(bpy.context.scene.frame_start)
+            scene.update()
+        finals_config_setup_all(baked=False)
+        for ob in bpy.data.objects:
+            ob.update(bpy.context.scene)
+        print("END...\n\n\n\n")
+    else:
+        for scene in scene_sets(bpy.context.scene):
+            scene.render.use_simplify = True
+            scene.set_frame(bpy.context.scene.frame_start)
+            scene.update()
+        for scene in scene_sets(bpy.context.scene):
+            scene.render.use_simplify = False
+            scene.set_frame(bpy.context.scene.frame_start)
+            scene.update()
+        for ob in bpy.data.objects:
+            ob.update(bpy.context.scene)
+        # END ATTEMPT TO FIX BUGS
+
     '''
     obj = bpy.data.objects['Mesh']
     point_cache = obj.modifiers["Cloth"].point_cache
     bpy.ops.ptcache.bake({"point_cache": point_cache}, bake=True)
     '''
 
-
     object_items = bpy.data.objects.items()
 
     base_context = {
@@ -362,6 +392,7 @@
         '''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)
+            print("       <found '%s', '%s'>" % (obj.name, obj.library.filepath if obj.library else 'LOCAL'))
 
             context = base_context.copy()
             
@@ -454,6 +485,9 @@
         elif mat.name == "sintel_hair_shabuffe":
             mat.diffuse_color = 0.6, 0.33, 0.25
 
+    # DEBUG

@@ Diff output truncated at 10240 characters. @@


More information about the Durian-svn mailing list