

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# SideFX Houdini
<a name="sidefx-houdini"></a>

SideFX Houdini 是一種 3D 程序軟體，用於在電影、電視、廣告和影片遊戲管道中建立模型、建構、動畫、VFX、外觀開發、照明和渲染。Houdini 由 Deadline Cloud 提供完整整合的完全支援，包括提交者、Conda 套件和轉接器，以提高渲染效能。本指南提供step-by-step說明，透過跨多部機器分配轉譯任務，更快速地轉譯您的專案。 AWS 

## 支援概觀
<a name="houdini-support-overview"></a>

下列元件支援 Houdini：
+ **提交者**：整合式轉譯輸出節點 (ROP)，用於從 Houdini 直接提交任務，具有自動場景和資產偵測。
+ **Conda 套件**：在服務受管機群上自動安裝的截止日期 Cloud。
+ **轉接器**：中介軟體，可透過黏性工作階段和其他監控有效率地轉譯。
+ **跨平台相容性**：支援 Windows、macOS 和 Linux 的 Submitter，以及支援 Windows 和 Linux 的工作者搭配自動路徑映射。

## Houdini 版本相容性
<a name="houdini-version-compatibility"></a>

下表顯示 Houdini 版本的目前支援層級：


| 主要版本 | 提交者支援 | Conda 支援 | 轉譯引擎 | 以用量為基礎的授權 | 
| --- | --- | --- | --- | --- | 
| 19.0 | Windows、macOS、Linux | Linux | Mantra、Karma CPU、Karma XPU | 可用以用量為基礎的授權 | 
| 19.5 | Windows、macOS、Linux | Linux | Mantra、Karma CPU、Karma XPU | 可用以用量為基礎的授權 | 
| 20.0 | Windows、macOS、Linux | Linux | Mantra、Karma CPU、Karma XPU | 可用以用量為基礎的授權 | 
| 20.5 | Windows、macOS、Linux | Linux | Mantra、Karma CPU、Karma XPU | 可用以用量為基礎的授權 | 
| 21.0 | Windows、macOS、Linux | Linux | Mantra、Karma CPU、Karma XPU | 可用以用量為基礎的授權 | 

## 截止日期雲端 Conda 頻道
<a name="houdini-conda-channel"></a>

下表列出適用於 Houdini 的所有 conda 套件，適用於截止日期雲端 conda 通道中的服務受管機群：


| 作業系統 | 套件 | 版本 | 備註 | 
| --- | --- | --- | --- | 
| Linux | 奧迪尼 | 19.0 | 包括 Mantra 和 Karma 轉譯器 | 
| Linux | 奧迪尼 | 19.5 | 包括 Mantra 和 Karma 轉譯器 | 
| Linux | 奧迪尼 | 20.0 | 包括 Mantra 和 Karma 轉譯器 | 
| Linux | 奧迪尼 | 20.5 | 包括 Mantra 和 Karma 轉譯器 | 
| Linux | 奧迪尼 | 21.0 | 包括 Mantra 和 Karma 轉譯器 | 
| Linux | houdini-openjd |  | 包含 Houdini 轉接器 | 

## 開始使用
<a name="houdini-getting-started"></a>

若要將 Houdini 與截止日期雲端搭配使用：

1. 建立服務受管機群，並將其與佇列建立關聯。您的佇列必須使用支援截止日期雲端 conda 頻道的佇列環境來設定。如需詳細資訊，請參閱[建立佇列環境](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html)。

1. 使用 Deadline Cloud Submitter 在藝術家工作站上安裝 Deadline Cloud Monitor 和 Houdini Submitter，並監控安裝程式。如需詳細資訊，請參閱[設定您的工作站](submitter.md)。

1. 使用整合式提交者，直接從 Houdini 提交您的任務到佇列。

1. 監控任務，並使用截止日期雲端監視器下載輸出。

## 安裝
<a name="houdini-installation"></a>

若要安裝 Houdini 提交者的截止日期雲端，您需要：
+ Windows、macOS (arm64) 或 Linux 工作站。
+ 支援的 Houdini 版本。

### 安裝提交者
<a name="houdini-installing-submitter"></a>

**安裝提交者**

1. 下載[截止日期雲端提交者安裝程式](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html)。

1. 執行安裝程式。
   + 出現提示時，選取您要使用提交者的每個 Houdini 版本。

1. 啟動 Houdini。

截止日期雲端提交者會自動以轉譯輸出 (ROP) 節點的形式提供。

**注意**  
提交者安裝程式適用於 Windows、macOS 和 Linux。如需手動安裝，請參閱 [ GitHub 儲存庫中的手動安裝說明](https://github.com/aws-deadline/deadline-cloud-for-houdini/blob/mainline/README.md)。

### 驗證提交者是否已正確安裝
<a name="houdini-verify-installation"></a>

1. 開啟 Houdini。

1. 在**網路編輯器**中，選擇`/out`網路。

1. 開啟內容選單 （按一下滑鼠右鍵或按 **Tab**) 並搜尋 `deadline`。

1. 選擇**截止日期雲端**以建立新的節點。

## 使用 Houdini 提交者
<a name="houdini-using-submitter"></a>

Deadline Cloud for Houdini 提交者是接受轉譯輸出 (ROP) 節點做為輸入的節點。您可以透過此節點設定和提交任務。當您提交任務時，它會包含圖表中每個 ROP 的步驟。

### 從 Houdini 提交任務
<a name="houdini-submit-job"></a>

若要使用 Houdini 的截止日期雲端提交者，您需要：
+ 要提交至 Deadline Cloud 的設定檔。
+ 要提交的截止日期雲端陣列和佇列。

**將任務從 Houdini 提交至截止日期雲端**

1. 在網路編輯器中，選擇 **/out** 網路。

1. 開啟內容選單 （按一下滑鼠右鍵或按 **Tab**)，並搜尋 `deadline` 以建立截止日期雲端節點。

1. 將 ROP 的輸出連接到截止日期雲端節點的輸入。
   + 當您將節點連接到截止日期雲端節點時，提交的任務會轉譯其圖形中的輸入 ROP 和所有 ROPs。

1. 選取截止日期雲端節點。

1. 使用節點編輯器中的選項來設定您的任務。如需每個選項功能的詳細資訊[Houdini 特定設定](#houdini-specific-settings)，請參閱 。

1. （選用） 若要將任務的關聯檔案匯出至任務歷史記錄目錄而不提交，請選擇**匯出套件**。

1. 選擇**提交**以將您的任務傳送至截止日期雲端。

### Houdini 特定設定
<a name="houdini-specific-settings"></a>

截止日期雲端節點的任務**特定設定**索引標籤提供 Houdini 任務特定的選項。
+ *以個別步驟提交相依性* - 將 ROP 圖形分割成個別轉譯步驟，以便於監控和偵錯。啟用時，每個連線的轉譯節點會在任務中成為自己的步驟。
+ *包含轉接器輪 *- 啟用變更轉譯行為的轉接器 （稱為*輪*) 的自訂建置。啟用時，您可以指定包含轉接器輪的目錄。您可以在 [ GitHub 儲存庫中執行 build\_wheels.sh 指令碼](https://github.com/aws-deadline/deadline-cloud-for-houdini/blob/mainline/scripts/build_wheels.sh)來建置轉接器輪。
+ *轉接器輪* - 指定包含自訂轉接器輪的目錄路徑 （僅在啟用**包含轉接器輪**時才可用）。
+ *自動解鎖 ROPs* - 在提交期間自動解鎖相依性 ROPs。鎖定ROPs 使用現有的輸出且不會重新轉譯，這會封鎖相依性以重新轉譯。
+ *自動剖析場景 (.hip) 參考* - 在任務提交期間，根據 ROP 圖表自動探索和連接任務的輸入和輸出檔案名稱和目錄。
+ *自動儲存場景 (.hip) 檔案* - 提交任務`$HIP`時自動將場景 (`.hip`) 檔案儲存到 。

如需其他提交者選項的相關資訊，請參閱[使用提交者的截止日期雲端指南](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/jobs-using-submitter.html)。

### 覆寫截止日期雲端任務的轉譯策略
<a name="houdini-render-strategy"></a>

對於許多類型的節點，框架可以獨立地以任何順序轉譯。對於其他像是模擬，每個影格取決於前一個影格的結果，且必須依序轉譯。提交者會根據每個節點的類型選擇轉譯策略，但也可讓您覆寫預設值。

#### 平行與循序轉譯
<a name="houdini-parallel-vs-sequential"></a>

對於平行轉譯，每個影格都有自己的任務，而任務會分散到可用的工作者。對於循序轉譯，節點的所有影格都會在單一工作者上執行的單一任務中轉譯。

根據預設，如果節點是啟用**初始化模擬 OPs**幾何節點，則會依序轉譯。否則節點會平行轉譯。

#### 新增轉譯策略參數
<a name="houdini-override-strategy"></a>

您可以在轉譯節點 （例如 Mantra 或 Karma) 上建立值為 `SEQUENTIAL`或 的`deadline_cloud_render_strategy`參數，以覆寫轉譯策略`PARALLEL`。

**新增參數以覆寫轉譯策略**

1. 開啟 **/out** 網路中節點的內容選單 （按一下滑鼠右鍵）。

1. 選擇**參數和頻道**、**編輯參數界面**。

1. 在**建立參數****依類型**下，選擇**排序選單**。

1. 選取建立**參數欄旁的向右箭頭，將排序選單新增至現有****參數**。

1. 選取**現有參數下的新參數**，然後在**參數描述**下編輯其組態：
   + 在**參數**索引標籤中：
     + 對於**名稱**，輸入 `deadline_cloud_render_strategy`。
     + 針對**標籤**，輸入 `Deadline Cloud Render Strategy`。
   + 在**選單**索引標籤中，新增下列項目的選單項目：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/deadline-cloud/latest/userguide/sidefx-houdini.html)

1. 選擇 **Accept (接受)**。

現在，您可以在節點的參數編輯器中，使用**截止日期雲端轉譯策略**功能表來指定提交者行為。

### Husk 轉譯和 USD 工作流程
<a name="houdini-husk-rendering"></a>

下列各節說明 Houdini 提交者中 USD 匯出工作流程的目前限制，以及使用 Husk 轉譯匯出 USD 場景的替代範例任務套件。

#### USD 匯出工作流程支援
<a name="houdini-usd-export-support"></a>

**Houdini 的截止日期雲端提交者目前不支援 USD 匯出工作流程的內建支援。**

您無法使用提交者節點建立單一任務，從 Houdini 匯出 USD 場景，然後呼叫 Husk 獨立轉譯，而不耗用 Houdini 引擎授權。

#### 替代方案：Husk 任務套件範例
<a name="houdini-husk-bundle"></a>

Deadline Cloud 提供[範例 Husk 任務套件](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/houdini_husk_usd_render)，可在 Houdini 提交者之外啟用 USD 匯出轉譯工作流程。在使用範例任務套件之前，您將需要自行與 Houdini 分開匯出 USD 場景。

Husk 範例任務套件：
+ 允許直接提交 USD 場景，以使用 Husk 和所選的 Hydra 轉譯委派進行轉譯，而無需啟動 Houdini 並在轉譯期間使用 Houdini 引擎授權。
+ 自動導入 USD 檔案，以尋找使用任務附件連接的任何檔案相依性。
+ 為常用 Husk 設定和提交的組態提供簡單的 GUI。

##### 先決條件
<a name="houdini-husk-prerequisites"></a>

使用 Husk 範例任務套件之前，您需要：
+ 匯出為 USD 格式的場景。
  + 如需在 Houdini 中寫入 USD 檔案的資訊，請參閱 [SideFX USD 文件](https://www.sidefx.com/docs/houdini/solaris/output.html)。
+ 已安裝並設定截止日期雲端 CLI。
  + CLI 可以從提交者安裝程式安裝，或直接遵循[截止日期雲端入門指南](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/index.md#getting-started)進行安裝。
+ deadline[deadline-cloud-samples 儲存庫](https://github.com/aws-deadline/deadline-cloud-samples)的 git 複製。
+ 工作者節點上可用的 Hydra 轉譯委派。
  + Karma 隨附於 Houdini。如果您想要使用其他 Hydra 轉譯代表，您必須在工作者上提供這些代表。請參閱 deadline-cloud-samples 儲存庫，了解 [V-Ray](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/houdini-vray-7) 和 [Redshift](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/houdini-redshift-2026) 的 conda 套件範例，作為在工作者節點上提供它們的一個選項。

##### 使用 Husk 範例任務套件
<a name="houdini-husk-use"></a>

**使用 Husk 範例任務套件**

1. 使用截止日期雲端 CLI 提交套件：

   ```
   deadline bundle gui-submit ./deadline-cloud-samples/job_bundles/houdini_husk_usd_render
   ```

1. 設定 USD 檔案、輸出設定、影格範圍和要提交的任何其他適用設定。

![Husk 範例任務套件 GUI 介面。](http://docs.aws.amazon.com/zh_tw/deadline-cloud/latest/userguide/images/houdini-husk-example-interface.png)


##### 其他資源
<a name="houdini-husk-resources"></a>
+ [deadline-cloud-samples 儲存庫](https://github.com/aws-deadline/deadline-cloud-samples)。
+ [SideFX Husk 文件](https://www.sidefx.com/docs/houdini/ref/utils/husk.html)。

## 疑難排解
<a name="houdini-troubleshooting"></a>

下列各節說明使用 Houdini 的截止日期雲端提交者時可能遇到的常見錯誤和問題，以及如何解決這些問題。

### 為什麼我在轉譯時出現「不完整的資產定義」錯誤？
<a name="houdini-troubleshooting-incomplete-asset"></a>

此提交者在您陣列中執行的任務可能會在日誌中產生如下錯誤：

```
The following node types are using incomplete asset definitions:
  Driver/deadline_cloud
```

這些錯誤可以安全地忽略。截止日期雲端提交者會做為節點存在於您的 Houdini 場景中。當您陣列中的工作者載入場景時，場景仍會包含截止日期雲端節點，但工作者可能尚未安裝提交者。由於工作者沒有執行截止日期雲端節點所需的檔案，因此會記錄「不完整的資產定義」錯誤。Deadline Cloud 節點本身不會轉譯為任務的一部分，因此可以忽略這些錯誤。

### 截止日期雲端提交者是否支援使用 Husk 的 USD 匯出轉譯工作流程？
<a name="houdini-troubleshooting-husk-export"></a>

Houdini 提交者目前不支援使用 Husk 的匯出工作流程。透過提交者建立的任務一律會在轉譯期間執行使用 `hython` 的轉接器，因此會執行 Houdini 引擎授權。如果您想要只使用 Husk 和 Hydra 轉譯委派來轉譯匯出的 USD 場景，您可以使用範例[任務套件](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/houdini_husk_usd_render)。此方法適用於僅使用轉譯授權 （例如，Karma) 轉譯 USD 場景，而不需要整個轉譯的 Houdini 引擎授權。如需在截止日期雲端上使用 Husk 轉譯 USD 場景的詳細資訊，請參閱 [Husk 轉譯和 USD 工作流程](#houdini-husk-rendering)。

## 進階組態。
<a name="houdini-advanced-configurations"></a>

### 使用不支援的版本
<a name="houdini-unsupported-versions"></a>

Deadline Cloud 僅支援和測試上表中的工作站和工作者軟體版本。使用提交者時，工作者會嘗試安裝與工作站相同的版本。如果工作站版本的 Houdini 未出現在上述版本資料表中，則可能會失敗。

如果您需要不支援的 Houdini 版本，您有下列選項：
+ 從 Houdini 提交任務時，您可以覆寫 CondaPackages 佇列參數，以指定要在工作者上使用的支援版本 （例如 `houdini=21.0, houdini-openjd=*`)。這可能會或可能不會運作，取決於場景使用的功能，以及 Houdini 如何搭配工作站版本中的場景運作。
+ 您可以為要在工作者上安裝的所需版本建置自訂 conda 配方和頻道。針對下列連結的支援版本使用 conda 配方做為起點，並將您想要的版本封裝在自訂 conda 頻道中。如需建立自訂 conda 頻道的詳細資訊，請參閱[建立自訂 conda 頻道](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html)。

## Houdini 轉譯引擎
<a name="houdini-render-engines"></a>

Houdini 支援多個與截止日期雲端相容的轉譯引擎：


| 轉譯引擎 | 說明 | GPU 支援 | 
| --- | --- | --- | 
| Karma CPU | 現代 USD 型轉譯器 (CPU 變體） | 以 CPU 為基礎的 | 
| Karma XPU | 現代 USD 型渲染器 (GPU 變體） | GPU 加速 | 
| 曼特拉 | 傳統 Houdini 轉譯器 | 以 CPU 為基礎的 | 
| 阿諾 | 第三方 Monte Carlo 射線追蹤器 | GPU/CPU 混合 | 
| V-Ray | 第三方擬真渲染器 | GPU/CPU 混合 | 
| Redshift | GPU 加速渲染器 | GPU 最佳化 | 

Houdini 整合提交者會自動偵測和設定這些轉譯引擎，並自動授權用量。提交者會在連接的轉譯輸出節點 (ROPs) 之間維護相依性樹狀目錄。

## 開放原始碼資源
<a name="houdini-open-source"></a>

提交者和轉接器是開放原始碼，可在 GitHub 上使用。支援的版本可在 GitHub 上使用 Houdini Conda 配方。
+ [GitHub 上的 Houdini 提交者原始程式碼](https://github.com/aws-deadline/deadline-cloud-for-houdini)
+ [GitHub 上的場景和工作流程範例](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/houdini_husk_usd_render)
+ [GitHub 上支援版本的 Conda 配方](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/houdini-21.0)