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
入力があれば、depth
AOVが検索されます。さらに各入力のタイプは、そのAOVのタイプと必ず一致していなければなりません。 -
huskを使ってSlamp Compを使用する場合、出力AOVは必ず既に存在していて、COPの出力タイプとそのAOVタイプは必ず同じでなければなりません。
-
huskを使ってSlap Compを使用する場合、出力解像度は元の解像度と必ず同じでなければなりません。
-
Solarisビューポートとは異なり、デフォルトでは
depth
AOVはROPからエクスポートされないので、必ずdepth
AOVを有効にしなければなりません。これを有効にするには、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を使用することができます:
-
Solarisビューポート内でSlap Compを使用する
-
Solarisビューポートからのレンダーを使用したCOPネットワーク内で
-
Solarisクローンを使用したCOPネットワーク内で
-
huskを使用したオフラインレンダリングで
Vulkanビューポートが有効になっていると、Slap Compは無効になります。 Slap Comp出力は、同じ名前を持つ入力を上書きします。
Solarisビューポート内でSlap Compを使用する方法 ¶
COPネットワーク内にSlap Compを使用することで、最終コンポジットのおおよその結果を確認することができます。
-
Solarisビューポート(
/stage
)に進んで、Karma CPUまたはXPUを使用して画像をレンダリングします。 -
COP Networkノードを作成するか、または、既存のCOP Networkノードに進んで、そのCOP Networkノードの中に入ります。これは、Geometryビューアを開き、以前にレンダリングされた画像を除去します。
-
シーン内にSlap Comp Block COPを追加します。これは、
Block Beginノードと
Block Endノードを追加し、それらのノードの間にノードを追加して接続することができます。
-
そのBlock End COPの Register as Slap Comp Block が有効になっていることを確認します。
-
/stage
に戻り、ビューポートの右側にあるツールバーのControl Slap Comp settings ボタンをクリックして、Slap Compを有効にします。 非GL/Vulkanレンダーの結果は、Slap Compネットワークを介して送信された後に表示されます。
-
Control Slap Comp settings ボタンを
クリックして表示されるドロップダウンメニューから、実行したいSlap Compブロックを選択します。 これは、デフォルトで
C
とdepth
のレイヤを処理しますが、さらにAOVを入力と出力に追加することができます。Slap Compブロック内でノードを調整することで、ライブで更新を確認することができます。 -
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ブロックを使用して調整します。 ビューポートは、レンダー結果をグローバルレジストリに追加します。
-
Slap Compを有効にしたCOPネットワークをセットアップします(Solarisビューポートを参照)。
-
そのCOP Networkノードの中に入って、
Slap Comp Import COPを選択します。
-
ビューポートのレンダーが変わる度にCOPネットワークがライブで更新されるようにするために、 Live Recook トグルを有効にします。
-
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つの異なるシーンをセットアップすることができます。
-
Solarisビューポート(
/stage
)に進みます。 -
Clone Control Panelを開きます。
-
個別にレンダリングしてからそれらを合成したいネットワーク内の各ノードに対して以下の操作を行ないます:
-
Clonesドロップダウンメニューから HQueue Clone または Local Clone を選択して、HQueueクローンまたはローカルクローンを起動します。
-
Node項目で、そのクローンで表現させたいネットワーク内のノードを指します。
-
Frame項目で、レンダリングしたいタイムライン内のフレームを設定します。各クローンは、現在選択されているフレームをレンダリングします。
-
-
レンダリングを実行する各クローンを有効にします(つまり、各クローンの左横にある Connected を有効にします)。
-
/stage
内にCOP Networkノードを作成し、そのノードの中に入ります。
-
クローン毎に
File COPを追加します。
-
各File COPに以下の設定をします。File COP毎に異なるクローンを参照するようにしてください。
-
Source パラメータを
Clone
に設定します。 -
Clone Name パラメータのドロップダウンメニューから、取り込みたいクローンを選択します。
-
-
ネットワークが1つのAdd COPで終わるまで、それらのFile COPを
Add COPの追加で接続していくことで、レンダーを接続します。これで最終出力が確認できるようになりました。
Huskを使ってSlap Compを使用する方法 ¶
Huskを使用することで、オフラインでレンダーを実行することができます。
USD Render ROP LOPを使用することで、レンダー後にSlap Compを適用することができます。
Warning
Slap Compブロック内のどの場所にでもSOPs(HDAsを含む)を使用すると、失敗します。
-
Solarisビューポート(
/stage
)に進みます。 -
COP Networkノードを作成するか、または、既存のCOP Networkノードに進んで、そのCOP Networkノードの中に入ります。
-
シーン内にSlap Comp Block COPを追加します。これは、
Block Beginノードと
Block Endノードを追加し、それらのノードの間にノードを追加して接続することができます。
-
そのBlock End COPの Register as Slap Comp Block が有効になっていることを確認します。
-
/stage
に戻ります。 -
USD Render ROP LOPを追加します。
-
そのUSD Render ROP LOPの Husk ▸ Slap Comp タブに進みます。
Tip
このタブを使用する別の方法としては、次のようにhuskコマンドラインに引数を渡すことで、Slap Compを実行することもできます:
husk scene.usda --slapcomp program.bgeo
-
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名をそれらの入力名と出力名にマッピングすることができます。
-
-
Render to MPlay ボタンをクリックします。MPlayウィンドウが開き、オフラインで最終出力をプレビューすることができます。
Slap Compを保存する方法 ¶
Slap Compネットワークを作成した後(Slap Compの使い方を参照)、Slap Compプログラムをジオメトリファイルに保存することができます。
-
COPネットワーク内に
Block to Geometry COPを作成します。
-
Block End Node パラメータに、ジオメトリファイルとして保存したいSlap CompブロックのBlock End COPを設定します。
1000フレーム分のエフェクトを送信する方法 ¶
Slap Compを使用して出力を作成した後(Slap Compの使い方を参照)、その出力を送信して1000フレームを作成することができます。
-
Solarisビューポート(
/stage
)に進みます。 -
ネットワーク内に
USD Render ROP LOPを追加、または、既存のUSD Render ROP LOPを選択します。
-
Husk ▸ Slap Comp タブに進みます。
-
Slap Compマルチパラメータの+ボタンをクリックしてSlap Compを追加し、 Source パラメータを
COP Network
に設定します。 -
COP Node パラメータに、Slap CompのBlock End COPを設定します。
-
huskがメッセージをプリントする時に、このSlap Comp処理を識別できるように Label パラメータにその名前を入力します。
Tips ¶
-
画像からすべての3Dトランスフォームを除去し、その画像をカメラ空間ではなく、正準座標(Canonical Coordinates)空間に配置するには、
Block Begin COPを
Match 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 トグルを有効にします。