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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

翻译Houdini官方文档:PDG教程之HDA处理器

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

官方文檔:PDG Tutorial 3 HDA Processor Part 1

  • 關于這個教程
        • 你將會學到什么
  • 步驟 0 - 拷貝所需的HDA文件
  • 步驟 1 - 觀察HDA
  • 步驟 2 - 設置PDG輸出的可視化
  • 步驟 3 - 定義HDA變種的屬性
        • 光滑度Wedge:
        • 機身長度Wedge:
        • 機翼長度Wedge:
  • 步驟 4 - 創建HDA幾何體變種
        • 常規方式:
        • batch方式:
        • service方式:
  • 步驟 5 - 過濾不需要的HDA幾何體變種
  • 步驟 6 - 降低最終HDA輸出的質量
  • 完成
  • 問題解決
        • 1. 字符串名字末尾不容易發現的空格
        • 2. 減面節點cook錯誤

關于這個教程

在Houdini中,HDA讓你可以將復雜的場景組件、工具、甚至額外的文件打包到一個特殊的節點中,你可以設計自定義的控制方式,也很容易在隨后進行安裝和分布。

通過PDG,你可以用 HDA Processor 節點 來配置HDA的參數并生成work items(或者說“任務”)并cook它。

這篇教程的流程是:

  • 使用 wedge 的方式來創建一個HDA的多個變種
  • 使用 HDA Processor 來對多個變種運行任務,并使用多個cook方式
  • 過濾出你不想要的版本
  • 降低輸出幾何體的質量

(對于TOPs和PDG的基礎知識,可見之前的博客《翻譯Houdini官方文檔:PDG/TOPs介紹》)

你將會學到什么

  • 指定HDA的參數設置
  • 創建一個HDA的變種
  • 使用三種不同的Cook方式來Cook一個HDA
  • 可視化PDG的輸出
  • 設置PDG服務

步驟 0 - 拷貝所需的HDA文件

導航到路徑Houdini安裝目錄/houdini/help/files/pdg_tutorials/intro_to_hdaprocessor:

找到 he_polyreduce.hda 和 SideFX_spaceship.hda,
在你自己的工作目錄中新建一個名為PDG_TUTORIAL_FILES的文件夾,將上面兩個hda拷進來:

步驟 1 - 觀察HDA

在這個步驟中,你將打開 SideFX_spaceship.hda 并熟悉其中的內容。

(1) 運行Houdini編輯器打開一個新場景。

(2) 導入SideFX_spaceship.hda 并實例化(關于如何導入HDA,可參見 Install and manage digital assets)

(3) 看一下飛船HDA的 Controls 頁面的參數:

(4) 嘗試調節下其中的參數:

可以注意到,調節參數會對幾何體的形狀造成影響。
教程隨后將會使用不同的TOP節點來調整飛船HDA的設置,然后輸出幾何體修改后的版本。

步驟 2 - 設置PDG輸出的可視化

在這一步中,你將設置一個特殊的 File節點,讓你可以在視窗中看到對飛船HDA的調整

(1) 運行Houdini編輯器打開一個新場景。

(2) 保存場景

  • 將文件命名為 hdaprocessorpt1tutorial.hip
  • 保存到 \PDG_TUTORIAL_FILES 文件夾中

這就是你接下來的工程文件

(3) 在 節點網絡編輯器 中,導航到obj網絡中(如果你還不在的話)

(4) 創建一個Geometry節點,然后進入創建出 geo1 節點

(5) 創建一個File節點

(6) 在File節點的 Geometry File 參數中填:

`@pdg_output`

注意:@pdg_output 必須在“反單引號”之中(按鍵位置在鍵盤中數字鍵“1”的左邊,其上檔符號是“~ ”)這是因為 Geometry File 參數是“字符串”類型的參數。詳細信息見Using attributes in expressions


@pdg_output 告訴Houdini去顯示當前選擇的work item的幾何體。

再隨后的教程中,當你在TOP網絡中你點擊一個work item時,你將可以在視窗中看到其對應的宇宙飛船的變體。

(7) 保存文件

步驟 3 - 定義HDA變種的屬性

在這一步中,你將使用Wedge節點來設置一系列SideFX_spaceship.hda的變種。方式是定義PDG的哪些屬性(與HDA的 Control 頁面的參數相關聯)有變種,而變種的數目又是多少。

這些節點所創建的wedge讓你可以在隨后的【步驟4】中生成和比較宇宙飛船HDA的多個版本。

(1) 在 節點網絡編輯器 中,導航到tasks網絡中,然后進入 topnet1節點

光滑度Wedge:

(2) 創建Wedge節點,然后命名為smoothness。

(3) 選擇smoothness節點,配置其參數:

  • Wedge Count 為 2
    這將決定生成的wedge(或者說變種)的數目
  • Wedge Attributes 為 1
    這將決定有多少個變化的屬性
  • 在Wedge Attributes 下:
    • Attribute Name 填 smoothness
      這將讓你可以在你的wedge中變化smoothness這個屬性
      這個屬性在隨后會控制宇宙飛船的 Smoothness 參數
    • Attribute Type 填 Integer
      這將會確保smoothness的值總會是一個整數
    • Wedge Type 填 Range,而 Start/End 保留默認值0到1
      這將表示smoothness是一個“二值”(只能是0或者1)

(4) 對smoothness節點進行Cook

可以看到出現了兩個work item,對應了兩個wedge

smoothness節點生成了兩個宇宙飛船HDA的版本,其中一個smoothness參數的值為0(0%光滑),另一個smoothness參數的值為1(100%光滑)

Tip
可以通過點擊節點的右下角來打開PDG的“任務圖表(Task Graph Table)”,或者右鍵節點菜單選擇

機身長度Wedge:

(5) 創建Wedge節點,命名為bodylength,將其連接到smoothness之后:

(6) 選擇bodylength節點,配置其參數:

其中:

  • Start 為0.5,End 為 2
    這將告訴節點為bodylength屬性選擇均勻分布在 Start 和 End 之間的值。

(7) 對bodylength節點進行Cook

可以看到bodylength節點創建了20個wedge,10個光滑,10個非光滑,而bodylength的值則均勻從0.5變化到2。

機翼長度Wedge:

(8) 創建Wedge節點,命名為wingslength,將其連接到bodylength之后:

(9) 選擇wingslength節點,配置其參數:

(10) 對wingslength節點進行Cook
將會出現200個work item

(11) 點擊wingslength節點中的work item,可以看到在smoothness和bodylength節點上的work item與wingslength節點上的相關work item之間出現的線。 這些線及其相應高亮的點顯示了work item之間的依賴關系。

Tip
你可以使用“[”鍵和“]”來逐步瀏覽節點中的 work item。

(12) 保存你的場景

步驟 4 - 創建HDA幾何體變種

在這一步中,你將使用一系列的HDA處理器節點依據Wedge中的設置來創建SideFX_spaceship.hda的變種。這個步驟的目的是創建不同版本的HDA,然后比較它們的視覺表現。

每個HDA處理器節點將使用不同的Cook方法(常規,batch、service)輸出飛船HDA幾何體的變種。 在本教程外你自己的基于HDA的TOP網絡中,使用不同的Cook方式也會為你節省大量時間。

常規方式:

(1) 創建 HDA處理器節點,命名為regular_cook,將其連接到wingslength的后面。

這個節點中的參數會設定要使用的HDA文件,以及如何引用Wedge節點的屬性。

(2) 選擇regular_cook節點,然后配置其參數:

在 Generation 分頁中,在 HDA File 中選擇$HIP(你的工作目錄)下的SideFX__spaceship.hda:

這告訴了節點使用哪個HDA。
當你選擇了HDA后將會有下列事情發生:

  • Operator Type 被自動識別:
  • HDA的所有參數被對應創建:

在 Work Items 分頁中,選擇 Cache Mode 為 Write Files

這將告訴節點,當緩存文件已存在時則去覆寫它。

在 HDA Parameters 分頁中,使用@的符號來引用之前在Wedge節點中創建的屬性。

Note
使用@attribute來引用屬性被稱作是pull-style的wedge。想要了解更多關于不同種TOP節點的wedge技術,請看 Pull vs. push

Tip
在教程之外你自己的配置中,你可能會需要為你的HDA處理器節點排查些故障,因此我們建議你做如下的事情:

  • 打開 Generation 分頁 中的 Save Debug .hip File
  • 找到你的Local Scheduler 節點,修改Temp Directory 中的 Location 為 Working Directory,這樣你就可以更容易找到你的調試HIP文件。
  • (3) 對regular_cook節點進行Cook

    將會有200個work item出現并且開始cook。

    regular_cook為每個work item啟動一個進程,然后分別cook每個任務。 regular_cook使用HDA處理器節點默認的cook方式,這也是其最慢的方式。 通常對于這種cook方式,開始這個過程所花費的時間,比實際cook該節點所花費的時間更長。

    (4) 點擊regular_cook節點中代表著work item的圓點

    在 點網絡編輯器 中,請注意在smoothness,bodylength和wingslength節點上的work item之間以及在regular_cook節點上的相關work item之間出現的連線。 這些連線以及其相應高亮的點顯示了work item之間的依賴關系。

    在視窗中,請注意宇宙飛船的變化,這個預覽的效果歸功于我們在步驟2中設置的File節點(其Geometry File 為@pdg_output)。

    Tip

    • 你可以使用“[”鍵和“]”來逐步瀏覽節點中的 work item。
    • 你可以雙擊一個單獨的 work item 顯示其細節面板,然后點擊“Output”來在Gplay中預覽它。

    (5) 點擊regular_cook節點中代表著work item的圓點,觀察它們的值。

    注意smoothness bodylength wingslength 屬性的值如何在work item之間變化。 是這些值讓飛船HDA形狀發生變化。

    (6) 保存場景。
    現在你已經創建了 HDA處理器節點,也理解了它如何工作。接下來你將嘗試用其他更快的cook方式。

    batch方式:

    (7) 拷貝regular_cook節點(注意,復制出來的節點會自動連接到wingslength節點的后面),命名為batch_cook

    這個節點將采用 batch 的cook方式。

    (8) 選擇batch_cook節點,然后將 Batch Mode 改為All Items in One Batch:

    這告訴節點在一個 job 中 cook 所有宇宙飛船HDA的幾何體變種。 這將節省大量的cook時間,因為啟動單個過程的開銷比cook該工作中實際任務所花費的時間要大得多。

    Tip

    • 當HDA處理器的 work item 是大量的小型任務時,請對它進行批處理,這樣可以更快完成。
    • 當HDA處理器的 work item 需要很長時間才能完成時,流程的啟動成本變得無關緊要,此時請勿進行批處理。

    (9) 對batch_cook節點進行cook。

    在許多情況下,此cook方法比regular_cook節點使用的cook方法要快。 在本教程中,batch方法肯定是兩種cook模式中速度更快的一種。

    (10) 保存場景
    現在你已經創建了第二個HDA處理器節點,也理解了batch方法是怎么工作的。下一個你將創建的HDA處理器節點會是 最快 的。

    service方式:

    (11) 拷貝regular_cook節點,命名為service_cook

    (12) 在 節點網絡編輯器 中,點擊Tasks,然后點擊 PDG Services

    此項詳見PDG Service Manager

    (13) 在 PDG Services 中點擊 Add Services 按鈕

    (14) 隨后在出現的窗口中,做如下配置:

    然后點Add按鈕。

    (15) 在 PDG Services 窗口中點擊 Start 按鈕:

    隨后你可以在任務管理器中看到你的Houdini進程下多了10個(數目是指定在上面的Pool Size中的) HDA處理器服務實例:

    (16) 配置service_cook節點的參數:

    • 選擇 Job Options 分頁,打開 Use HDA Processor Service
    • 在 Service Name 中選擇剛才創建的服務

    (17) 對service_cook節點進行cook。

    service_cook使用10個正在運行的HDA處理器服務實例(進程)來cook其每個工作項。 在本教程中,service的cook方法絕對是最快的cook模式。 但是,在本教程之外的場景中,你的工作可能需要很長的時間進行處理,因此,也可能常規Cook或批處理是更好的模式。

    (18) 在 PDG Services 窗口中關閉服務,然后關閉窗口。

    (19) 保存場景。

    現在,你已經創建了第三種HDA處理器節點,也懂得了如何建立PDG服務。

    接下來你可以過濾出你不需要的HDA幾何體變種。

    步驟 5 - 過濾不需要的HDA幾何體變種

    在這一步中,你將使用 Filter by Expression 節點 來過濾出未經光滑的版本,只保留光滑的版本。

    當你在自己的工作流中想要刪除輸出的HDA幾何體變種時,此步驟很有用。

    (1) 創建一個Filter by Expression 節點 ,命名為smooth_only,將其連接到 batch_cook節點之后。

    Filter by Expression節點的參數將會決定哪些HDA幾何體變種會保留,而哪些將會被過濾掉。

    (2) 選擇smooth_only節點,然后調節參數:
    在 Filter Expression 中填 @smoothness != 1

    這個表達式將會告訴節點:移除smoothness這一wedge屬性的值不為1的任何HDA幾何體變種。

    Note
    在這個教程中,以下都等價:

    • Remove Matching Items 時的@smoothness != 1
    • Remove Matching Items 時的@smoothness = 0
    • Keep Matching Items 時的@smoothness = 1

    (3) 對smooth_only節點進行Cook

    它過濾掉了100個非光滑的版本,保留了100個光滑的版本。

    (4) 選擇其中work item的圓點,觀察對應關系:

    可以看到其只對應了上游節點中下半部分的work item,因為下半部分節點的smoothness屬性都是1。

    (5) 保存場景

    現在,你已經學會如何對HDA幾何體變種進行過濾,只保留自己想要的變種了。

    接下來你將學習如何添加額外的修改。

    步驟 6 - 降低最終HDA輸出的質量

    在這最后一步中,你將使用另一個HDA處理器節點,它使用另一個HDA文件,將會對宇宙飛船進行一些處理。

    使用這個HDA處理器節點,你將會減少幾何體面數。
    當你在自己的工作流中創建模型的LOD時,這個步驟很有用。

    (1) 創建一個 HDA處理器節點,命名為reduce_polygons,然后將其連接到smooth_only之后。

    (2) 選擇reduce_polygons節點,對其參數做如下配置:

    • 選擇HDA文件為he_polyreduce.hda
    • 選擇批處理模式
    • 勾選Create File Inputs
      這將會告訴節點使用傳入的宇宙飛船幾何體作為輸入
    • 在參數分頁,設置 Percent To Keep 為50,表示保留50%的面數

    (3) 對reduce_polygons節點進行cook

    (4) 查看其中的work item,注意減面的效果:

    (5) 保存場景

    完成

    恭喜!你完成了這個教程

    如果你想看最終的TOP網絡是什么樣子,你可以在Houdini安裝目錄找到場景文件:

    如果想繼續學習PDG流程,你可以看Houdini文檔中的其他初學者教程,或者訪問我們網站上的Learning Path。

    問題解決

    1. 字符串名字末尾不容易發現的空格

    將屬性的名字復制到參數中的時候,末尾多了空格,導致之后引用時沒找到。
    (在屬性表中可以看到末尾有下劃線)

    2. 減面節點cook錯誤

    報錯:

    比對了一下官方的范例文件,發現:
    Scheduler節點有不一致:

    修改后重新打開場景,發現沒有錯誤了

    總結

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

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