首页 > 其他 > 详细

Maya中提交Nuke工程到deadline中的方法

时间:2016-01-12 11:24:29      阅读:287      评论:0      收藏:0      [点我收藏+]

      在之前的一篇文中介绍了在maya中生成nuke工程脚本的方法,后来部门负责人希望更简单一些,能在那个功能面板里提交deadline农场渲染更好,这样就不用打开nuke手动提交了,省去了在两个软件直接来回切换的冗余工作。

      于是开始结合deadline提交原理分析这个需求。首先行业内大部分农场软件都是UI封装一堆命令行的方式,那么我们提交任务也完全可以跳过提交任务的设置界面,直接用subprocess.Popen()来运行提交任务的命令行即可。

      仔细读了SubmitNukeToDeadline.py及DeadlineNukeClient.py,剥离出一行最基本的代码:

  subprocess.Popen(["C:\\Program Files\\Thinkbox\\Deadline7\\bin\\deadlinecommand.exe",    "D:/nuke_submit_info.job",    "D:/nuke_plugin_info.job"])

      subprocess.Popen()函数中有三个参数,第一个是本机deadline客户端执行文件路径,第二个提交信息的参数文件路径,第三个是软件信息文件的路径。也就是说我们只需要构建后面两个文件,就可以在任意软件环境利用subprocess.Popen()提交Nuke任务到deadline渲染农场中了。

      放一个构建这两个参数文件的函数吧:

def submit_script_to_deadline():
  #create plugin file
  plugin_InfoFile = "D:/nuke_plugin_info.job"
  
  plugin_fileHandle = open( plugin_InfoFile, "w" )

  plugin_fileHandle.write("SceneFile=%s\n"%(projpath))
  plugin_fileHandle.write("Version=8.0\n  Threads=0\n  RamUse=0\n  BatchMode=False\n  BatchModeIsMovie=False\n  NukeX=True\n  UseGpu=False\n  ProxyMode=False\n  EnforceRenderOrder=False\n  ContinueOnError=False\n  Views=\n  StackSize=0\n  ")

  plugin_fileHandle.close()

  #create submit file
  submit_InfoFile = "D:/nuke_submit_info.job"

  submit_fileHandle = open( submit_InfoFile, "w" )

  submit_fileHandle.write("Plugin=Nuke\n")
  projreg = re.compile(\S+\\\\(\w+.nk))
  matchgroup_2 = projreg.match(projpath)
  projectname = matchgroup_2.group(1)
  submit_fileHandle.write("Name=%s\n"%(projectname))
  submit_fileHandle.write("Comment=\n  Department=\n  Pool=none\n  SecondaryPool= \n  Group=none\n  Priority=50\n  MachineLimit=0\n  TaskTimeoutMinutes=0\n  EnableAutoTimeout=False\n  ConcurrentTasks=1\n  LimitConcurrentTasksToNumberOfCpus=True\n  LimitGroups=\n  JobDependencies=\n  OnJobComplete=Nothing\n  ")
  submit_fileHandle.write("Frames=%s-%s\n"%(startframe,endframe))
  submit_fileHandle.write("ChunkSize=10\n  Whitelist=\n  OutputFilename0=%s"%(writepath))
  submit_fileHandle.close()

 

Maya中提交Nuke工程到deadline中的方法

原文:http://www.cnblogs.com/hksac/p/5123369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!