On this page |
多大な労力をかけて、リアルなフェザーや洗練されたグルームを生成しました。 となると次は当然、その傑作をレンダリングしたいはずです。 Houdiniのフェザーシステムは、Solaris、Karma CPU、およびXPUと密接に連携しています。 レンダリングワークフローの中心的な要素は、Houdini Feather Procedural LOPです。 Houdini Proceduralsは、レンダリング時にステージ上にプリミティブを作成したり変更するためのレンダラーに依存しない仕組みです。 ただし、プロシージャルの主な概念は、低解像度ジオメトリを使用し、それをレンダリング時に高解像度ジオメトリに変えることです。
プロシージャルはアニメーションや完全なグルームには最適ですが、静止画や個々のフェザーをいくつかレンダリングしたい場合もあります。 この場合、フェザーのUncondensed(具現化)バージョンをSolarisにインポートし、Houdini Feather Proceduralを 使用せずに レンダリングを行ないます。
Tip
レンダリングネットワークを作成し始める前に、Houdiniのデスクトップを変更することを推奨します。
-
メインメニューバーから、最初のドロップダウンメニューを開き、 Solaris または Solaris LookDev を選択します。重要なのは、シーンのプリミティブや階層が表示されるシーングラフツリーにアクセスできるようにすることです。
グルームをインポートする ¶
まず、グルームをSolarisのステージにインポートします。 ステージは、 obj または mat といったHoudiniの基本的なネットワークの1つです。 またステージは、USDやKarmaへの橋渡しとなります。以下に、完成したプロシージャルネットワークを示します。
-
stage レベルで、⇥ Tabを押してTabメニューを開きます。そこから、 Component Builder ツールを選択します。このツールは、5つのノードのネットワークを作成します。
-
Component Geometry LOPを選択します。 Source ドロップダウンで、 External SOP Network を選択します。
-
Default/Render パラメータで、 Open floating operator chooser アイコンをクリックします。フローティングパネルが表示され、そこにすべてのノードがツリーでリストされています。グルームの静止状態を含むノードに移動します。
このドキュメントの前の章では、Null SOPでネットワークを終了し、
GROOM
のように、分かりやすい名前を大文字で適用することを推奨しました。 こうすることで、適切な出力を素早く見つけることができます。シーングラフツリーを見ると、ノードが
/ASSET/geo/shape
エントリを作成したことが分かります。 また、shape
の Primitive Type が BasicCurves であることも確認できます。これは、仮の羽枝(うし:Barb)が既に実際のジオメトリに変換されていることを意味します。 また、ビューポートではガイドがカーブとして表示されています。 -
Primitive LOPを追加し、Component GeometryとComponent Material LOPの間に配置して、接続します。このノードは、 Primitive Paths で入力したパスと名前を使用して、別のプリミティブを作成します。
このノードの概念が一見分かりにくいのは、基本的に、既存のカーブのコピーを作成するためです。 このコピーは、Houdini Feather Proceduralが必要とする最も基本的なアトリビュートのみ提供します。 そのため、よりリソース消費の少ないバージョンになります。
-
Primitive Path に移動し、
ASSET/geo/groom
と入力します。新しいプリミティブは、シーングラフツリーにも表示されます。 -
現在、 Primitive Type は Xform に設定されています。代わりに BasicCurves を選択します。
-
Component Output LOPを選択します。このノードは、レンダリングのために、すべてのプリミティブとマテリアルを組み合わせます。
変更しなくてはならないのは、 Component Options セクションのみです。 Root Prim に移動し、
/ASSET
と入力して元のシーンパスを維持します。ここでは、グルームをUSDファイルに保存することもできます。 そのためには、 Caching セクションに移動し、 Name 、 File Name 、 Location を定義します。 その後、 Save to Disk を押します。
マテリアル ¶
フェザーを表示するには、基本マテリアルが必要です。 コンポーネントネットワークでは、Material Linker LOPのような共通の方法を使用することができません。
-
Component Material LOPを選択します。これで、シーングラフツリーに新しいエントリ(
ASSET/mtl
)が表示されるようになります。 -
Primitives に移動し、
groom
プリミティブをシーングラフツリーからこのパラメータにドラッグします。このプリミティブは、Primitive LOPを使用して作成したものです。ネットワークでの名前に応じて、完全なパスが表示されます。 ここでは、パスは
/ASSET/geo/groom
です。
Component Materialだけでもフェザーの第一印象をつくり出すことができますが、テクスチャを使ってシェーダを適用したい場合がほとんどです。 現在のビューポートは、以下のように見えているはずです。
シェーダ ¶
シェーダは、個人的な好みやプロダクションの要件に強く依存します。 そのため、ここではシェーダの接続方法のみを説明します。 シェーダ構築に関する詳細は、Karmaユーザガイドを参照してください。
-
Material Library LOPをダブルクリックして、その中に入ります。そこでTabメニューを開き、 Karma Material Builder ツールを選択します。
-
新しい
karmamaterial
ノードをダブルクリックして、その中に入ります。 -
Karma Hair VOP または Karma Fur VOPを配置し、シェーダの
surface
出力をSubnet Output VOPのsurface
入力に接続します。 -
調整を行ない、MtlX Image VOPを通してテクスチャをロードし、シェーダを完成させます。その後、 stage レベルに戻ります。
-
ライブラリノードを再度選択し、 Material Path Prefix に移動します。
/ASSET/mtl
と入力します。これはComponent Material LOPによって作成されたパスで、シェーダがあるはずの場所です。 -
Material VOP に、
karmamaterial
と入力します(シェーダのサブネットワーク)。 -
シーングラフツリーに Material Path があります。
Karma Furシェーダを使用している場合は、
kma_fur1
エントリが表示されています。 そのエントリを入力フィールドにドラッグします。現在、完全なパスは/ASSET/mtl/karmamaterial/kma_fur1
のはずです。 -
最後に、Component Material LOPを再度選択します。ノードの独自の Material Path に移動し、ライブラリからパス
/ASSET/mtl/karmamaterial/kma_fur1
を再利用します。
いくつかの手順を実行してフェザーとシェーダ間の接続を確立する必要がありますが、ほとんどの場合、シーングラフツリーからノードにパス/要素をドラッグすることができます。 以下の図に、ノードとパスを示します。
レンダリングプロシージャル ¶
ジオメトリをインポートしたので、ビューポートにガイドが表示されています。 いよいよフェザーを作成するために、プロシージャルが必要です。
-
Houdini Feather Procedural LOPを追加し、その入力を上流のコンポーネントノードの出力に接続します。
-
Procedural Prim に移動し、
groom
プリミティブをシーングラフツリーからこのパラメータにドラッグします。これは、Component Material LOPの場合と同じワークフローです。パスは、現在/ASSET/geo/groom
です。 -
Groom Rest パラメータは、
shape
エントリへのパスを維持します(Component Geometry LOPを通してインポートしたカーブ)。shape
を入力フィールドにドラッグします。この例では、フルパスは/ASSET/geo/shape
です。
プレビュープロシージャル ¶
最終的にフェザーをビューポートで確認するには、別のノードと基本マテリアルの定義が必要です。 プレビュープロシージャルは、必須ではありません。光源とカメラを追加する時、実際はグルームをレンダリングする準備が整っています。 しかしほとんどの場合は、作品をKarmaに送信する前に、作品がどのように見えるのかを知っておきたいものです。
-
Preview Houdini Procedural LOPを配置し、その入力をレンダリングプロシージャルの出力に接続します。
-
青の Display/Render フラグをオンにして、ビューポートにフェザーが表示されるようにします。グルームの複雑さに応じて、フェザーが表示されるまで少し時間がかかる可能性があります。
ライト、カメラ、レンダリング設定 ¶
適切に動作させるには、レンダリング設定に加え、光源とカメラも必要です。
-
光源を追加し(Environment Light LOPなど)、その入力をプレビュープロシージャルの出力に接続します。たとえば環境光(Environment Lightノード)では、HDRテクスチャをロードし、イメージベースドライティングを設定できます。
-
ビューポートで、Alt + 、Alt + 、Alt + の組み合わせを使用して、回転、パン、ズームします。適切な視点が見つかったら、ビューポートオプションメニューに移動し、 No Cam を New Camera に変更します。
これにより、新しいCamera LOPが作成され、それが光源に接続されます。
-
最後にTabメニューを開き、 Karma ツールを選択します。このツールによって、Karma Render Properties LOPとUSD Render OUTが追加されます。レンダリング設定ノードの 1番目 の入力をカメラの出力に接続します。
プロパティノードを使用すると、画像解像度、モーションブラー、ノイズ除去などの調整を行なえます。 レンダリングノードで、フレーム範囲を定義します。 Render to … ボタンのいずれかを押してレンダリングプロセスを開始します。
ビューポートレンダリング ¶
ビューポートをレンダリングして、ルックデブ用などに最終シーンをプレビューしたり、シェーダやテクスチャの全体的な印象を確認することができます。
ビューポートの右上に小さいドロップダウンがあり、デフォルトで Persp になっています。 メニューを開き、例えばビューポートのレンダリングに Karma CPU を選択します。 その他のレンダーデリゲートもここに表示されます。 Karma XPU を使用すると、Optix GPUエンジンが作動するまでに時間がかかる場合がありますが、それは、すべてのシェーダを最初にコンパイルする必要があるからです。 また、フェザーのレンダリングには大量のメモリが必要な場合があることも考慮してください。
もちろん、他の利用可能なレンダーデリゲートを選択することもできますが、Warning: settings/viewport engine mismatch
のような警告が表示される場合があります。
このメッセージは、Karma CPUとXPUで結果が異なることを伝えるものです。
そのため、Karma XPUを使用したビューポートでの表示と、Karma CPUを使用した最終レンダリングでの表示は同じではなりません(逆の場合も同様です)。
以下は、ビューポートのスクリーンショットです。