Houdini 20.5 Copernicus

Slap Comp(仮コンプ)

Slap Comp(仮コンプ)は、最終合成のおおよその結果をライブで確認するのに役立つ高速な画像制御機能です。

On this page

概要

Copernicusの主要機能の1つがSlap Comp(仮コンプ)で、最終合成のおおよその結果をライブで確認するのに役立つ高速な画像制御機能です。 ビューポートのSlap Compは、Solarisビューポートレンダーのライブ結果にネットワークを適用します。

Note

Slap Compの主な用途は、フィルター生成ネットワークですが、レイヤで重ねられた要素をすぐに確認するための合成ツールとして使用することもできます。

SolarisビューポートでKarma CPU/XPUパースペクティブを使用中にSlap Compを使用することができます(Slap Compの使い方を参照)。 Slap Compはビューポートカメラに表示され、それがそのビューポートカメラで映し出されるものになるので、ビューポート空間の出力は一時停止されます。

Slap Compは、セッションが収束または終了した時(つまり、シーンから抜け出た時やウィンドウを閉じた時)にすべてのAOVを保存して登録します。 このAOV処理の方法は、レンダリングを再開することなく、新しいAOVをSlap Compリストに追加してエクスポート処理を開始することができることを意味します。

エラー

エラーが発生してもSlap Compは有効なままで、 Control Slap Comp settings ボタンが警告シンボルに変わります。 マウスカーソルをの上に乗せると、Log Viewerを指したメッセージが表示されます。 そのLog Viewerには、そのSlap Compに関するすべてのエラーと警告の正しい完全リストが含まれています。

Slap Compは、ビューポート内にもエラーを表示しますが、これらのメッセージはわかりにくかったり、ビューポートの更新で消えてしまいます。

制限事項

  • Block Begin COP上の入力名は、必ずレンダラーで生成されたAOVの名前に合わせてください。例えば、depth入力があれば、depthAOVが検索されます。さらに各入力のタイプは、そのAOVのタイプと必ず一致していなければなりません。

  • huskを使ってSlamp Compを使用する場合、出力AOVは必ず既に存在していて、COPの出力タイプとそのAOVタイプは必ず同じでなければなりません。

  • huskを使ってSlap Compを使用する場合、出力解像度は元の解像度と必ず同じでなければなりません。

  • Solarisビューポートとは異なり、デフォルトではdepthAOVはROPからエクスポートされないので、必ずdepthAOVを有効にしなければなりません。これを有効にするには、Karma Render Settings LOPを追加して、 Image Output ▸ AOVs ▸ Utility に進んで、 Depth (Camera Space) を有効にします。

Slap Compの使い方

任意のCOPネットワークの区間の前にBlock Begin COPを、その区間の後にBlock End COPを追加することで、その区間をSlap Compとして指定することができます。 その場合、そのBlock End COPの Register as Slap Comp Block は必ず有効にしなければなりません。 これによって、そのCOPネットワーク区間をSolarisビューポートに取り込むことができ、その区間が Control Slap Comp settings ドロップダウンメニューに追加されます。

Tip

Slap Comp Block COPは、 Register as Slap Comp Block が有効になっているブロック内に配置することができます。

以下の方法でSlap Compを使用することができます:

Vulkanビューポートが有効になっていると、Slap Compは無効になります。 Slap Comp出力は、同じ名前を持つ入力を上書きします。

Solarisビューポート内でSlap Compを使用する方法

COPネットワーク内にSlap Compを使用することで、最終コンポジットのおおよその結果を確認することができます。

  1. Solarisビューポート(/stage)に進んで、Karma CPUまたはXPUを使用して画像をレンダリングします。

  2. COP Networkノードを作成するか、または、既存のCOP Networkノードに進んで、そのCOP Networkノードの中に入ります。これは、Geometryビューアを開き、以前にレンダリングされた画像を除去します。

  3. シーン内にSlap Comp Block COPを追加します。これは、Block BeginノードとBlock Endノードを追加し、それらのノードの間にノードを追加して接続することができます。

  4. そのBlock End COPの Register as Slap Comp Block が有効になっていることを確認します。

  5. /stageに戻り、ビューポートの右側にあるツールバーの Control Slap Comp settings ボタンをクリックして、Slap Compを有効にします。 非GL/Vulkanレンダーの結果は、Slap Compネットワークを介して送信された後に表示されます。

  6. Control Slap Comp settings ボタンをクリックして表示されるドロップダウンメニューから、実行したいSlap Compブロックを選択します。 これは、デフォルトでCdepthのレイヤを処理しますが、さらにAOVを入力と出力に追加することができます。Slap Compブロック内でノードを調整することで、ライブで更新を確認することができます。

  7. Block End COPにC以外の出力がある場合、 Render Outputs ドロップダウンメニューから、ビューポート内に表示したいAOVを選択することができます。すると、最終出力をプレビューすることができます。

Tip

Slap Comp Import COPを使用することで、Slap Compプロセスを経由した直近のレイヤをライブモードで取得し、そのプロセスが各ノードをどのように処理したのか確認することができます。 それらのレイヤは、実際のSlap Compプロセスでの配置と同じ用にカメラの3D空間内に配置されます。 このSlap Comp Importは、Slap Compをクックしません。

Solarisビューポートからのレンダーを使ってSlap Compを使用する方法

ビューポートの結果を使ってSlap Compブロックを使用して調整します。 ビューポートは、レンダー結果をグローバルレジストリに追加します。

  1. Slap Compを有効にしたCOPネットワークをセットアップします(Solarisビューポートを参照)。

  2. そのCOP Networkノードの中に入って、Slap Comp Import COPを選択します。

  3. ビューポートのレンダーが変わる度にCOPネットワークがライブで更新されるようにするために、 Live Recook トグルを有効にします。

  4. Add AOVs from Last Render ボタンをクリックします。これは、直近のレンダーから利用可能な入力をこのノードに設定してくれるので、手動でAOVを追加する必要はありません。これで、ビューポートのレンダー結果をSlap Compブロック内で使用できるようになりました。

Note

Slap Compブロックを使用しなくても、または、Solarisビューポート内でのSlap Comの利用を有効にしなくても、Slap Comp Import COPを使用することができます。 その場合、Slap Comp Import COPは、要求されたAOVsを直近のビューポートレンダーから返すだけです。

Tip

各出力に対して、Slap Comp Import COPは、それに呼応したフォールバック入力(代替入力)が用意されていて、それぞれのAOVがレジストリ内に見つからなかった場合に、その入力が渡されます。 これによって、Solarisビューポートレンダーが実行されていない時に使用されるテスト入力(例えば、レンダリング済みのプレートを読み込むように設定されたFile COP)をSlap Comp Import COPに接続することができます。

Solarisクローンを使ってSlap Compを使用する方法

Houdiniクローンは、LOPネットワークをクックしてレンダリングすることができます。 このクローンは、ローカルで実行しない場合だとリソースが少なく済みます。 例えば、この手法を使用することで、3つの異なるライトの接続を替えてレンダリングできるように3つの異なるシーンをセットアップすることができます。

  1. Solarisビューポート(/stage)に進みます。

  2. Clone Control Panelを開きます。

  3. 個別にレンダリングしてからそれらを合成したいネットワーク内の各ノードに対して以下の操作を行ないます:

    1. Clonesドロップダウンメニューから HQueue Clone または Local Clone を選択して、HQueueクローンまたはローカルクローンを起動します。

    2. Node項目で、そのクローンで表現させたいネットワーク内のノードを指します。

    3. Frame項目で、レンダリングしたいタイムライン内のフレームを設定します。各クローンは、現在選択されているフレームをレンダリングします。

  4. レンダリングを実行する各クローンを有効にします(つまり、各クローンの左横にある Connected を有効にします)。

  5. /stage内にCOP Networkノードを作成し、そのノードの中に入ります。

  6. クローン毎にFile COPを追加します。

  7. 各File COPに以下の設定をします。File COP毎に異なるクローンを参照するようにしてください。

    1. Source パラメータをCloneに設定します。

    2. Clone Name パラメータのドロップダウンメニューから、取り込みたいクローンを選択します。

  8. ネットワークが1つのAdd COPで終わるまで、それらのFile COPをAdd COPの追加で接続していくことで、レンダーを接続します。これで最終出力が確認できるようになりました。

Huskを使ってSlap Compを使用する方法

Huskを使用することで、オフラインでレンダーを実行することができます。 USD Render ROP LOPを使用することで、レンダー後にSlap Compを適用することができます。

Warning

Slap Compブロック内のどの場所にでもSOPs(HDAsを含む)を使用すると、失敗します。

  1. Solarisビューポート(/stage)に進みます。

  2. COP Networkノードを作成するか、または、既存のCOP Networkノードに進んで、そのCOP Networkノードの中に入ります。

  3. シーン内にSlap Comp Block COPを追加します。これは、Block BeginノードとBlock Endノードを追加し、それらのノードの間にノードを追加して接続することができます。

  4. そのBlock End COPの Register as Slap Comp Block が有効になっていることを確認します。

  5. /stageに戻ります。

  6. USD Render ROP LOPを追加します。

  7. そのUSD Render ROP LOPの Husk ▸ Slap Comp タブに進みます。

    Tip

    このタブを使用する別の方法としては、次のようにhuskコマンドラインに引数を渡すことで、Slap Compを実行することもできます: husk scene.usda --slapcomp program.bgeo

  8. Slap Compマルチパラメータの+ボタンをクリックしてSlap Compを追加し、以下のどれかの操作をします:

    • Source パラメータをCOP Networkに設定し、 COP Node パラメータにBlock End COPを指定します。

    • Source パラメータをFileに設定し、 File パラメータに、ジオメトリファイルに保存されたSlap Compプログラムを設定します。別のシーンにも適用したい規範的なネットワークを作成したものの、すべてのシーンファイル内にそのネットワークを複製するのが嫌な場合に、このオプションを使用します。

    Note

    USD Render ROP LOPには、 Map Input パラメータと Map Output パラメータがあります。 Slap Compの入力名と出力名がAOV名とマッチする場合は、これらのパラメータを変更する必要はありません。 これらのパラメータは、適用したい規範的なSlap Compプログラムがあるものの、入力名と出力名が現在のAOV名とマッチしない場合に役立ちます。 Map Input パラメータと Map Output パラメータは、AOV名をそれらの入力名と出力名にマッピングすることができます。

  9. Render to MPlay ボタンをクリックします。MPlayウィンドウが開き、オフラインで最終出力をプレビューすることができます。

Slap Compを保存する方法

Slap Compネットワークを作成した後(Slap Compの使い方を参照)、Slap Compプログラムをジオメトリファイルに保存することができます。

  1. COPネットワーク内にBlock to Geometry COPを作成します。

  2. Block End Node パラメータに、ジオメトリファイルとして保存したいSlap CompブロックのBlock End COPを設定します。

  3. ジオメトリをディスク上のファイルにエクスポートします。

1000フレーム分のエフェクトを送信する方法

Slap Compを使用して出力を作成した後(Slap Compの使い方を参照)、その出力を送信して1000フレームを作成することができます。

  1. Solarisビューポート(/stage)に進みます。

  2. ネットワーク内にUSD Render ROP LOPを追加、または、既存のUSD Render ROP LOPを選択します。

  3. Husk ▸ Slap Comp タブに進みます。

  4. Slap Compマルチパラメータの+ボタンをクリックしてSlap Compを追加し、 Source パラメータをCOP Networkに設定します。

  5. COP Node パラメータに、Slap CompのBlock End COPを設定します。

  6. huskがメッセージをプリントする時に、このSlap Comp処理を識別できるように Label パラメータにその名前を入力します。

Tips

  • 画像からすべての3Dトランスフォームを除去し、その画像をカメラ空間ではなく、正準座標(Canonical Coordinates)空間に配置するには、Block Begin COPMatch Camera COPの1番目の入力に接続します。 これは、ネットワークによって画像を期待通りに動作させます。 次に、Block End COPをもう1つのMatch Camera COPの1番目の入力に接続することで、画像を元々の位置に復元することができます。

  • LOPで作業する際、入力レイヤはカメラを取り込むことができるので、ビューは空間的にレンダリングされたものと一致します。 それらのカメラを取り込むかどうか制御するパラメータとして、Block End COPには Import Cameras with Slap Comp Inputs パラメータがあり、これを有効にすることで、カメラのビューと同じ場所に入力レイヤを配置することができます。 このパラメータを無効にすると(デフォルト設定)、Slap Compは入力レイヤをデフォルトの正準位置に配置します(画像空間を参照)。 これと同じ名前のパラメータがSlap Comp Import COPにもあります。

  • Slap Compブロック内にFile COPを追加すると、初期段階では、そのファイルはデフォルトの解像度で表示されます。 Resample COPを追加することでこの解像度を変更することができます。 File COPをResample COPの1番目の入力に接続し、Block Begin COPの1番目の出力をそのResample COPの2番目の入力に接続してから、そのResample COPの Size Control パラメータをAspect Ratioに設定し、 Reframe to Destination トグルを有効にします。

Copernicus

基本

次のステップ

  • Slap Comp(仮コンプ)

    Slap Comp(仮コンプ)は、最終合成のおおよその結果をライブで確認するのに役立つ高速な画像制御機能です。

  • OpenFX

    OpenFXとは何か、そして、ネットワーク内でそれを使用する方法について説明します。

  • ハッチング

    Copernicusネットワークでハッチングを使用する方法を説明します。

  • How to ONNX Inferenceの使い方

    ONNX Inferenceノードでモデルを使用して推論を適用する方法について説明しています。

  • CopernicusのTips

    COPを使用する時に役立つテクニックと情報。

高度な概念

  • 法線

    Copernicusネットワークが使用する法線を定義します。

  • 空間

    Copernicusネットワークが使用する空間を定義します。