Fix for cache path.

Operator for background baking (no support in netrender itself yet).
This commit is contained in:
2009-12-04 01:28:00 +00:00
parent 77aacc6ce4
commit d3d11ede44
2 changed files with 50 additions and 1 deletions

View File

@@ -127,7 +127,7 @@ def clientSendJob(conn, scene, anim = False):
# FLUID + POINT CACHE # FLUID + POINT CACHE
########################### ###########################
root, ext = os.path.splitext(name) root, ext = os.path.splitext(name)
default_path = path + "blendcache_" + root + os.sep # need an API call for that default_path = path + os.sep + "blendcache_" + root + os.sep # need an API call for that
for object in bpy.data.objects: for object in bpy.data.objects:
for modifier in object.modifiers: for modifier in object.modifiers:

View File

@@ -26,6 +26,55 @@ from netrender.utils import *
import netrender.client as client import netrender.client as client
import netrender.model import netrender.model
@rnaOperator
class RENDER_OT_netslave_bake(bpy.types.Operator):
'''NEED DESCRIPTION'''
bl_idname = "render.netslavebake"
bl_label = "Bake all in file"
def poll(self, context):
return True
def execute(self, context):
scene = context.scene
netsettings = scene.network_render
filename = bpy.data.filename
path, name = os.path.split(filename)
root, ext = os.path.splitext(name)
default_path = path + os.sep + "blendcache_" + root + os.sep # need an API call for that
# Force all point cache next to the blend file
for object in bpy.data.objects:
for modifier in object.modifiers:
if modifier.type == 'FLUID_SIMULATION' and modifier.settings.type == "DOMAIN":
modifier.settings.path = default_path
bpy.ops.fluid.bake({"active_object": object, "scene": scene})
elif modifier.type == "CLOTH":
modifier.point_cache.disk_cache = True
modifier.point_cache.external = False
elif modifier.type == "SOFT_BODY":
modifier.point_cache.disk_cache = True
modifier.point_cache.external = False
elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN":
modifier.domain_settings.point_cache_low.disk_cache = True
modifier.domain_settings.point_cache_low.external = False
modifier.domain_settings.point_cache_high.disk_cache = True
modifier.domain_settings.point_cache_high.external = False
# particles modifier are stupid and don't contain data
# we have to go through the object property
for psys in object.particle_systems:
psys.point_cache.disk_cache = True
psys.point_cache.external = False
bpy.ops.ptcache.bake_all()
return ('FINISHED',)
def invoke(self, context, event):
return self.execute(context)
@rnaOperator @rnaOperator
class RENDER_OT_netclientanim(bpy.types.Operator): class RENDER_OT_netclientanim(bpy.types.Operator):
'''Start rendering an animation on network''' '''Start rendering an animation on network'''