日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

翻译HoudiniEngine官方文档:PDG

發布時間:2023/12/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 翻译HoudiniEngine官方文档:PDG 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官方文檔:《Houdini Engine 3.6: PDG》

介紹

PDG 是一套用于對任務進行分配管理程序化架構

使用 Houdini Engine,PDG的功能可以輕松地在其他應用程序中使用。 最值得注意的是,PDG可用于構建由HDA網絡組成的復雜資產生成工具,以管理數據的依賴流動關系。

PDG網絡可以使用TOP節點嵌入到HDA中,并在 Houdini Engine 的 session 中使用。 Houdini Engine 提供了PDG 相關的API,以管理PDG的 cook 過程并獲取TOP節點的輸出結果。

在HDA中通過TOP節點使用PDG

有兩種方式在HDA中嵌入TOP節點:

  • TOP SOP 節點 ,這是一種 SOP節點。
  • TOP網絡節點,這是一種 Object節點

TOP SOP

這是讓PDG在 Houdini Engine 中工作的最簡單方法。 TOP SOP 節點 包含構成PDG網絡的TOP節點,并將輸出的任何幾何體傳遞給下一個SOP節點。多個輸出將自動合并,并擁有 group。對 TOP SOP 節點 進行cook的時候,將自動 cook 其所包含的TOP網絡,并且它的輸出與其他SOP節點是一樣的。 因此,這不需要顯式使用PDG相關API來對網絡進行 cook 和 dirty。

TOP網絡

TOP網絡節點 是包含TOP節點的 Object節點。必須使用 PDG 相關的 API 來顯式地對PDG網絡進行 cook。這允許宿主應用程序為用戶提供對PDG進行 cook 的相關機制,例如 dirty 和 cook。每個 work item 的 cook 結果可以被查詢,并且宿主程序可以通過輸出結果的路徑來加載數據。

環境和路徑

確保在 Houdini Engine 的 session 中TOP節點所使用的“環境變量”與“非絕對路徑”有效是很重要的。

一個非常重要的設置是 scheduler 的工作目錄,該目錄是用于生成中間結果文件的根目錄,也可能是最終結果文件的根目錄。 默認情況下,所有的 TOP scheduler 都使用$HIP環境變量,而該變量在 Houdini Engine 的 session 中是無效的——因為根本不存在 .hip 文件。 因此應使用以下解決方案之一:

  • 在 houdini.env 文件中指定一個全局的環境值,例如MY_HAPI_PDG_DIR=C:/projects/hapipdg,然后將 scheduler 的工作目錄參數設置為此值。
  • 將 scheduler 的工作目錄參數暴露給HDA,這樣宿主應用程序就可以為每個HDA設置正確的工作目錄。

建議將所有其他路徑(尤其是結果文件)都基于公共的根路徑,例如工作目錄或其他全局環境路徑(例如$MY_ROOT_PATH/geometry/test1.bgeo)。 這使得可以用單個變量來管理所有 PDG work items 中所用的路徑。

Schedulers

默認情況下,“TOP SOP 節點” 和 “TOP網絡節點” 都使用 Local Scheduler,該 scheduler 計劃要在本地機器上執行 PDG 的 work item。 為了在其他機器上分配工作,也可以創建相應的 “farm scheduler ” 并在TOP網絡中指定使用。 在HDA中使用其他 scheduler 不需要任何特殊的考慮或額外的工作,但請確保在Houdini Engine 的 session 中設置了 scheduler 所需的任何環境。 通常,可以在創建 Houdini Engine 的 session 時通過houdini.env文件完成此操作。

Dirtying、Cooking、Events

PDG允許對TOP網絡進行 dirty 和 cook,這意味著對display節點及其隱含的依賴網絡進行 dirty 和 cook。 類似地,也可以將單個TOP節點及其依賴關系網絡進行 dirty 和 cook。 HAPI_DirtyPDGNode() 允許提供一個標志,并刪除 work item 先前的結果。

HAPI_CookPDG() 支持阻塞非阻塞的cook形式。 在 cook 時,將為依賴關系網絡中生成的TOP節點及其 work item 發出PDG事件(HAPI_PDG_EventType)。 這些事件代表了 cook 的實時狀態,類似于Houdini編輯器中顯示的TOP節點中的 work item 的狀態。 要查詢特定PDG的事件,必須指定其 PDG graph context。 由于每個TOP節點都是PDG上下文的一部分,因此可以通過 HAPI_GetPDGGraphContextId() 檢索其ID。

以下HAPI_PDG_EventType可能會有用:

  • HAPI_PDG_EVENT_WORKITEM_ADD : 在圖中添加一個 work item。
  • HAPI_PDG_EVENT_WORKITEM_REMOVE : 從圖中移除一個 work item。
  • HAPI_PDG_EVENT_WORKITEM_STATE_CHANGE : 一個 work item 狀態發生改變。可以查看當前 work item 的狀態(HAPI_PDG_WorkitemState)。
  • HAPI_PDG_EVENT_COOK_WARNING : 節點的警告信息。
  • HAPI_PDG_EVENT_COOK_ERROR : PDG 完成 cook 但有 error。
  • HAPI_PDG_EVENT_COOK_COMPLETE: PDG 成功完成 cook。

work item 的狀態在 PDG 的 cook 過程中會發生改變。下面一些狀態(HAPI_PDG_WorkitemState)可能會有用:

  • HAPI_PDG_WORKITEM_DIRTY : Work item 被 dirty 了。
  • HAPI_PDG_WORKITEM_COOKING : Work item 正在 cook。
  • HAPI_PDG_WORKITEM_COOKED_SUCCESS : Work item 已經成功完成 cook。
  • HAPI_PDG_WORKITEM_COOKED_CACHE : Work item 已經完成 cook,但使用的是之前的緩存結果。
  • HAPI_PDG_WORKITEM_COOKED_FAIL : Work item cook 失敗了。
  • HAPI_PDG_WORKITEM_COOKED_CANCEL : Work item 已經被取消。

當 work item 出現HAPI_PDG_WORKITEM_COOKED_SUCCESS和HAPI_PDG_WORKITEM_COOKED_CACHE狀態時,可以查詢生成的結果。 請參閱 PDG Cooking With Events 的代碼范例來看如何 cook 和監聽事件。

PDG 代碼范例

可參閱 PDG Cooking Samples 來看如何在HAPI中使用PDG。

PDG API

以下函數讓你可以在HDA中管理和查詢PDG。 有關更多信息,請參見HAPI.h。

Cooking

  • HAPI_CookPDG
  • HAPI_DirtyPDGNode
  • HAPI_PausePDGCook
  • HAPI_CancelPDGCook

Context、Cook Events、State

  • HAPI_GetPDGGraphContexts
  • HAPI_GetPDGGraphContextId
  • HAPI_GetPDGEvents
  • HAPI_GetPDGState

Work Items

  • HAPI_CreateWorkitem
  • HAPI_GetWorkitemInfo
  • HAPI_SetWorkitemIntData
  • HAPI_SetWorkitemFloatData
  • HAPI_SetWorkitemStringData
  • HAPI_CommitWorkitems
  • HAPI_GetNumWorkitems
  • HAPI_GetWorkitems
  • HAPI_GetWorkitemDataLength
  • HAPI_GetWorkitemIntData
  • HAPI_GetWorkitemFloatData
  • HAPI_GetWorkitemStringData
  • HAPI_GetWorkitemResultInfo

總結

以上是生活随笔為你收集整理的翻译HoudiniEngine官方文档:PDG的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。