zoukankan      html  css  js  c++  java
  • Maya中提交Nuke工程到deadline中的方法

          在之前的一篇文中介绍了在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
    "%(projpath))
      plugin_fileHandle.write("Version=8.0
    
      Threads=0
    
      RamUse=0
    
      BatchMode=False
    
      BatchModeIsMovie=False
    
      NukeX=True
    
      UseGpu=False
    
      ProxyMode=False
    
      EnforceRenderOrder=False
    
      ContinueOnError=False
    
      Views=
    
      StackSize=0
    
      ")
    
      plugin_fileHandle.close()
    
      #create submit file
      submit_InfoFile = "D:/nuke_submit_info.job"
    
      submit_fileHandle = open( submit_InfoFile, "w" )
    
      submit_fileHandle.write("Plugin=Nuke
    ")
      projreg = re.compile('S+\\(w+.nk)')
      matchgroup_2 = projreg.match(projpath)
      projectname = matchgroup_2.group(1)
      submit_fileHandle.write("Name=%s
    "%(projectname))
      submit_fileHandle.write("Comment=
    
      Department=
    
      Pool=none
    
      SecondaryPool= 
    
      Group=none
    
      Priority=50
    
      MachineLimit=0
    
      TaskTimeoutMinutes=0
    
      EnableAutoTimeout=False
    
      ConcurrentTasks=1
    
      LimitConcurrentTasksToNumberOfCpus=True
    
      LimitGroups=
    
      JobDependencies=
    
      OnJobComplete=Nothing
    
      ")
      submit_fileHandle.write("Frames=%s-%s
    "%(startframe,endframe))
      submit_fileHandle.write("ChunkSize=10
    
      Whitelist=
    
      OutputFilename0=%s"%(writepath))
      submit_fileHandle.close()
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/hksac/p/5123369.html
Copyright © 2011-2022 走看看