はじめに
この記事では、細かい設定は省いて「Houdini でとりあえず1枚レンダリングして画像を出力する」までの最短手順を説明します。
Houdini では様々なレンダラを使用できますが、今回は標準搭載されている Mantra を使った方法と Karma を使った方法を扱います。
なお、Mantra は従来からある CPU レンダラですが、現在 SideFX は USD ベースの Karma を推奨レンダラとしています。
これから学ぶなら Karma を中心に、Mantra は「既存データで使う場合に触れる」程度の位置づけで問題ありません。
動作確認済みバージョン: Houdini 21
Mantraによるレンダリング
ジオメトリ、カメラ、ライト、マテリアル、レンダラ(ROP)を作成/設定していきます。
ジオメトリ
obj 階層でGeometry ノードを作成します。


SOP 階層(Geometry 内部)で好きなようにモデリングします。
出力したいノードにレンダーフラグを立てます。(レンダーフラグが立っていない場合はディスプレイフラグが立っているノードがレンダリングされます)

カメラ
obj 階層で Camera ノードを作成します。

カメラからの見え方をビューで確認したい場合は、シーンビュー右上の No cam をクリックし、任意のカメラを選んでください。

各種設定を行います。



※後述しますが、作成したカメラは、Mantra ノードでレンダリングに使用するカメラとして設定する必要があります。
ライト
obj 階層で Light ノードを作成します。
ライトの Type や Intensity を設定します。
Type はライトの種類です。
- Point …… 特定の一点から光が放たれる点光源
- Sun …… シーンのどこにいても同じ角度から光が当たる指向性ライト( Unity や Maya におけるDirectional Light に相当)
Intensity はライトの強さです。数値が大きいほど明るくなります。


マテリアル
mat 階層に移動します。

シェーダを作成します。
Tab メニュー> Shaders > Principled Shader が標準的なシェーダのひとつです。
自由にノードをつなぎます。
例えば、テクスチャノードを baseColor につなぐことができます。
obj 階層に移動し、任意の geometry ノードの Render タブで作成した Material を設定します。

レンダラ(ROP)
out 階層に移動します。
Tab メニューから Mantra ノードを作成します。

作成したカメラを設定します。

出力
Mantra ノードで、レンダリング範囲を設定します。

項目名(Start / End / Inc)をクリックで数値表示と式表示を切り替えできます。
式表示で$マークがついているのは変数で、意味は以下の通りです。
| $FSTART | (プレイバーで設定されている)最初のフレーム |
| $FEND | (プレイバーで設定されている)最後のフレーム |
同じく Mantra ノードで出力先を設定します(ファイル名と拡張子もここで決まります)。

出力先のパスでも変数が使えます。
| $HIP | シーンファイルの存在するディレクトリ |
| $HIPNAME | シーンファイル名(拡張子を含まない) |
| $HIPFILE | シーンファイル名(拡張子含む) |
| $OS | ノード名 |
| $F4 | フレーム番号(数字は桁数) |
例: $HIP/images/XXX_col_$F4.png
Output Picture の部分を中ボタンクリックで実際のパスが確認できます。
設定が完了したら、[Render to Disk]で出力します。

これで、Mantraでレンダリングができました。
Karma(Solaris)によるレンダリング
特に説明がない場合、以下の操作は Stage 階層に移動して行います。
ジオメトリ
SOP Import ノードを作成し、ジオメトリを読み込みます。

複数のジオメトリを読み込む場合は縦につなぎます。

カメラ・ライト
それぞれ Scene Import (Cameras) / Scene Import (Lights)を作成すると、obj 階層で作成したカメラ/ライトを読むことができます。

ステージ階層上で、Camera ノードや Light ノードを作成することも可能です。
いずれにせよ、ネットワークは縦に一本につないでいきます。

※後述しますが、作成したカメラはKarma Render Settings ノードで使用するカメラを設定する必要があります。
マテリアル
Material Library ノードを作成します。
内部に入り、USD MaterialX Builder を作成すると、その中で MaterialX のシェーダを組むことができます。

Stage 階層に戻り、Assign Material ノードを作成し、下につなぎます。
Geometry Spreadsheet (Scene Graph Path)の任意の sopimport とマテリアルをドラッグ&ドロップ(D&D)でそれぞれAssign Material ノードの Primitives と Material Path に設定します。
マテリアルが複数ある場合は、Assign Materialノードのハット付きの+マークを押して項目を増やします。

レンダリングと出力
シーンビューの右上のperspをクリックし、Karma XPU (PC が対応していなければ Karma CPU)に切り替えるとプレビューが行えます。

Tab メニューで Karma を作成すると、Karma Render Settings ノードと USD Render ROP ノードが作成されるので、下につなぎます。
Karma Render Settings ノードで出力先、使用するカメラ、レンダリング解像度を設定します。

USD Render ROP ノードでレンダリングするフレーム範囲を設定します。
USD Render ROP ノードの Render to Disk でレンダリングできます。

これで、Karma(Solaris)でレンダリングができました。
まとめ
Houdini でジオメトリをレンダリングするまでの最短手順を、Mantra と Karma の2通りで見てきました。
これから新しく始めるなら、SideFX が推奨する Karma(Solaris)から覚えるのがおすすめです。Mantra は既存プロジェクトや学習リソースの多さで触れる機会がまだありますが、レンダラの主役は Karma に移りつつあります。



コメント