On this page |
RenderMan for Houdini ¶
RenderManには“RenderMan for Houdini”という名前の独自のブリッジプロダクトが用意されています。 詳細は、このリンクを参照してください: “RenderMan for Houdini”のセットアップ。
レガシーセットアップ ¶
以前のバージョンのHoudiniでは、現在では廃止されたRenderManノードとSOHOスクリプトが同梱されていました。
“RenderMan for Houdini”ブリッジプロダクトのリリースに伴い、これらのノードは廃止され、(OPcustomize
スクリプトに含まれている)$HFS/houdini/OPlegacyRMan
で非表示にされました。以下の情報はレガシーセットアップのためだけに残しています。
Houdiniでは、RenderManを使ったレンダリングはRenderManレンダー出力ドライバノードによって行ないます。
このノードは、RIBストリームを生成し、そのストリームを Command パラメータで指定したprman
実行可能ファイルに渡します。
また、 Disk File パラメータの隣のトグルを有効にすることで.rib
ファイルをディスクに保存することが可能です。
この仕組みを説明すると、出力ドライバノードがSOHOスクリプトを起動し、 Render Target パラメータで指定されたRenderManのバージョンを考慮しています。 このスクリプトは、シーンを走査して、必要に応じてRSL MaterialなどのVOPシェーダをコンパイルしながら、該当するRIBを書き出しています。
RenderManのセットアップ ¶
Houdiniが必須のRenderManツールすべてを見つけられるようにするには、まず最初にいくつかの環境変数を設定する必要があります:
-
RMANTREE
を、インストールしたバージョンのRenderManに設定してください。例:export RMANTREE=/opt/pixar/RenderManProServer-21.0
-
検索パスに、RenderManの
bin
サブディレクトリを含めてください。例:export PATH=$PATH:$RMANTREE/bin
-
HOUDINI_DEFAULT_RIB_RENDERER
に、目的のバージョンを設定してください。例:export HOUDINI_DEFAULT_RIB_RENDERER=prman21.0
これら3つの環境変数をセットアップすれば、HoudiniがRenderManを使用できるはずです。
レンダラーの選択 ¶
各RIBターゲットレンダラーには独自で実行可能ファイル、シェーダのコンパイル手法、アトリビュート、オプション、機能があります。
このほとんどをシーンの背後でHoudiniが処理します。しかし、うまく機能しない時は、HOUDINI_DEFAULT_RIB_RENDERER
環境変数をあなたが使用したいレンダーターゲットに設定することで、
使用するレンダリングに関する情報をHoudiniに渡すことができます。
レンダラーのリストは、$HH/RIBtargets
を見たり、$HH/soho
ディレクトリにあるファイルを走査することで推測できます。現行レンダラーにはprman21.0
が含まれています。
Houdiniは、いくつかの箇所でこの変数を使います。hrmanshader
スクリプト(シェーダコンパイラのラッパ)では、その変数がコールするコンパイラプログラムを制御します。
この変数は、RIB出力ドライバで表示させるプロパティも制御します。
To... | Do this |
---|---|
デフォルトのRIBレンダラーを設定する |
# set up for prman21.0 export HOUDINI_DEFAULT_RIB_RENDERER=prman21.0 |
ディスプレイドライバのセットアップ ¶
RenderManバージョン20.2以降には、Houdiniのディスプレイドライバが最初から入っているので、ROPノードの Display Device パラメータにhoudini
に指定する他に追加のセットアップが必要がありません。
これを設定すれば、RIBレンダラーが直接MPlayにレンダリングします。
framebuffer
デバイスをHoudiniディスプレイドライバに再マップするようにRenderManを再設定することも可能なので、すべてのフレームバッファをMPlayに送ることもできます。
これは、この行をrendermn.ini
に記述することで可能です:
/displaytype/framebuffer houdini
View: RenderManメニューのカスタマイズ ¶
ビューポートのレンダーメニューには、View:RenderMan
のエントリーがあります。これは出力ドライバを作成しなくてもシーンをレンダリングします。
しかし、Houdiniはシーンをレンダリングするために呼び出すアプリケーションを知っている必要があります。これは環境変数HOUDINI_VIEW_RMAN
を設定することで決まります。
To... | Do this |
---|---|
“View: Renderman”メニューコマンドを修正する |
ビューアのレンダーアイコンから View: RenderMan を選択した時に使用されるレンダラーを変更するには、 |
シェーダパスの上書き ¶
Houdiniは、シェーダパスを各レンダラーが必要とするデフォルトパスに設定します。シェーダパスは2つの方法で上書きすることができます:
-
レンダリングパラメータを出力ドライバに追加することでパスを設定する(推奨)。
-
HOUDINI_RI_SHADERPATH
環境変数を設定する。
シェーダパスをカスタマイズする場合、ライトシェーダ用にそのパスに$HFS/ri_shaders
を含めてください。
そのパスをカスタマイズしない場合、HoudiniはHOUDINI_PATH
内のri_shaders
という名前のディレクトリを検索します。
RISシェーダプラグイン用のHOUDINI_RI_RIXPLUGINPATH
環境変数があります。
しかし、Houdiniには最初から何もカスタムRISシェーダプラグインが入っていないが故にri_shaders
ディレクトリを検索しないので、カスタマイズに$HFS/ri_shaders
を含める必要はありません。
そのため、通常では$RMANTREE/lib/RIS
の暗黙的なデフォルトで十分です。
オブジェクトパラメータのカスタマイズ ¶
メインレンダラーにRenderManまたはAIRを使用する場合、ジオメトリオブジェクトにMantraパラメータすべてを表示させたくないかもしれません。 ジオメトリオブジェクトをカスタマイズすることで、代わりにRenderManパラメータを持つオブジェクトを作成することができます。
To... | Do this |
---|---|
オブジェクトパラメータをカスタマイズする |
一度パラメータをPermanent Defaultパラメータとして保存すれば、それらのパラメータは新しいオブジェクトすべてに適用されます(同じ手順をライトとカメラにも可能ですが、ライトはHoudiniで、そのまま直ぐに非常にうまく機能するはずです)。 |
Tip
Shading Interpolation パラメータを追加することでシェーディング品質を改良することができます。
シェーダのインポート ¶
VOPを使えばRSLシェーダを作成することができます。また、あなたが記述した他のシェーダをインポートすることができます。 インポートは、記述されたシェーダに相当するHoudini Digital Assetsを作成することで行ないます。
シェーダをインポートするには、sloinfo
(prman)、aqsltell
(Aqsis)、sdrinfo
(Pixie)などの出力を解読するPythonスクリプトを実行します。
Houdiniにはprmanシェーダを変換するslo2otl.py
のスクリプトが用意されています。
スクリプトはシェーダパラメータに関する情報を解読できることを当てにしていますが、サポートされていないレンダラー用にカスタマイズすることは非常に簡単です。 スクリプトは、暗黙でHDAテーブルタイプを推測しようとし、VOPであるRISシェーダに対して適合するので、ライトとディスプレイスメントの.sloファイルは、暗黙でVOP HDAを生成します。 -tコマンドラインスイッチを使うことで、強制的にHDA SHOPにすることができます。
例:
slo2otl.py -t Shop -l myshaders.hda *.slo
これはHoudiniにインポート可能なOTLを作成します。認識されたシェーダのすべてはSHOPノードとして存在します。
Note
WindowsはPythonを実行するためにhythonを実行する必要があります。
hython sdl2otl.py -l myrmanshaders.otl *.sdl
Hythonは$HB
がPythonパスに含まれていない限り、sdl2otl.py
スクリプトを探しません。
VOPを使用したRSLシェーダの構築 ¶
上記で説明した外部.slo
シェーダをインポートする方法以外にも、
HoudiniではRSL MaterialなどのVOPネットワークを使用してシェーダを構築することができます。
シェーディングのドキュメントで説明しているように、 Material パラメータを設定してRSL Materialをオブジェクトに割り当てたり、
Material SOPを使用してRSL Materialを個々のプリミティブに割り当てることができます。
RIS Rendering Mode ¶
RenderManのRISレンダリングモードを使用するには、RenderManノードの Properties タブの RIS サブタブの RIS Mode パラメータを有効にします。 オプションで Integrator パラメータにインテグレータシェーダを指定することができます。詳細は、RISシェーダを参照してください。
See also |