介绍
如果要在使用启动器或批处理脚本启动Houdini的同时在渲染场的远程客户端上运行由Houdini创建的HIP文件,请对环境变量的状态进行快照并进行快照。设置并运行它。当时的脚本说明。
注意:当前,以下是个人备忘,并且执行结果不能完全保证。
编写环境变量
添加到货架工具,Houdini的Saver,提交工具以渲染农场等。
write_env_snapshot.py
import os, sys
import json
import hou
hip_file_dir = os.path.dirname(hou.hipFile.name())
hip_name, ext = os.path.splitext(hou.hipFile.basename())
json_file = os.path.join(hip_file_dir, '{}_env.json'.format(hip_name))
envs = os.environ.copy()
with open(json_file, 'w') as f:
json.dump(envs, f, ensure_ascii=False, indent=4, sort_keys=True, separators=(',', ': '))
print('Wrote environment snapshot :: {}'.format(json_file))
加载和设置环境变量
Houdini启动时运行以下脚本。
read_env_snapshot.py
import os, sys
import json
import argparse
import subprocess
HOUDINI_EXE = "" #
def open_hip(hip, envs):
cmd = 'HOUDINI_EXE {}'.format(hip)
subprocess.call(cmd, envs=envs)
def main():
parser = argparse.ArgumentParser(description="Open hipfile with custom environment variables")
parser.add_argument("--hip", type=str, help="Specify Houdini file")
args = parser.parse_args()
if not args.hip:
return
if not os.path.exists(json_file):
print("Coudn't find environment snapshot :: {}".format(json_file))
return
hip_file_dir = os.path.dirname(args.hip)
json_file = os.path.join(hip_file_dir, '{}_env.json'.format(hip_name))
with open(json_file, 'r') as f:
envs = json.load(f)
open_hip(hip, envs)
if __name__ == "__main__":
main()