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\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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM