【Houdini16.5基礎編】10.シェーダとマテリアル


 今回の記事はHoudiniにおけるシェーダとマテリアルについて紹介します。Houdiniはマテリアルに関してもノードベースでのアプローチが可能です。

 シーン内のオブジェクトをレンダリングする場合、ジオメトリにマテリアルをアサインする必要があります。

 Houdiniでは、これらのマテリアルとシェーダは、Mat階層のVEX Builderネットワークで作成されます。 ノードを使用してマテリアルを構築する機能は、ショットの外観を定義する際の強力なツールです。

 Houdiniはさまざまな種類のノードを種類ごとに各ネットワークタイプに編成しており、マテリアル関係のノードは/ matネットワークを使用します。 ここでは、VEXオペレータまたはVOPを設定をすることができます。 マテリアルの構築には2通りの方法があり、あらかじめ構築されたシェーダで作業するか、VOPノードのカスタムネットワークを使用して独自のシェーダを構築することができます。

 

マテリアルの作成とアサイン

 マテリアルパレットを使用してマテリアルを追加し、クリック、ドラッグするとオブジェクトにアサイン(割り当て)することができます。 このペインには、シーン内のマテリアルを管理するためのワークスペースがあり、マテリアルノードを作成できるさまざまなサブネットワークを表示するタブがあります。 また、シーン内のマテリアルの一覧が視覚的に表示されているため、必要なマテリアルがどのサブネットワーク内にあるかを簡単に見つけることができます。

マテリアルギャラリー

 パレットの左側には、オブジェクトに既成のマテリアルを割り当てることができるギャラリーがあります。 ギャラリーからビューポートに直接マテリアルをアサインすることができます。また、マテリアルパレットに移動して後からアサインすることもできます。 独自のマテリアルを作成する方法を学ぶと、カスタムギャラリーを作成してこのリストに追加することができます。

 

プリンシプルシェーダ

 マテリアルパレットでは、Brent Burley氏による「Disney Principled BRDF」に基づいたプリンシプル(原則)シェーダを見つけることができます。 このシェーダは、物理的ではなく「原理的」で、あり、アーティストが作業に取り組みやすいシェーダです。

 プリンシプルシェーダには、テクスチャを直接割り当てる機能と、バンプ、法線、ディスプレイスメントなどの、他の機能を設定するシステムが組み込まれています。 割り当てたテクスチャマップはビューポートに表示され、すぐにさまざまな外観を実現できます。

 このマテリアルはVOPによって拡張することができますが、既にギャラリーにはたくさんのマテリアルがあり、これらの多くはプリンシプルシェーダの拡張版、派生形であることから、必ずしも拡張を行う必要はありません。

プリンシプルシェーダ・コア

 Principled Shader Coreノードは、プリンシプルシェーダの内部にあり、シェーディングモデルの主な機能が含まれています。(すべてのテクスチャ機能が組み込まれている訳ではありません。)

 このノードを使用してゼロからシェーダを構築するには、Houdiniのシェーダ構築ツールを使用してVOPノードを追加する必要があります。 これは、ノードビューでノードを結ぶか、Shader FXメニューを使ってノードを追加することで実現できます。

 

レイヤリングマテリアル

 /mat レベルでは、マテリアルをレイヤー化してオブジェクトのユニークな外観を作成することができます。 Layer mixノードを使用すると、2つの異なるマテリアルを1つのルックに組み合わせることができます。 例えば、この技術を使用して、例えば光沢のある金属マテリアルと、艶消された錆マテリアルを合成することができます。 アルファチャンネルをテクスチャ加工し、サーフェス、ディスプレイスメント、またはその両方をミックスすることができます。

マテリアルビルダー

 レイヤー化されたノードを新しいマテリアルにする場合は、それらを選択して、Edit > Collapse Selected into Material を選択します。 これにより、ノードをマテリアルビルダーの中に置くことができます。 このレベルでは、ネットワークを効率的に機能させるためのoutputノードとcollectノードがあります。

デジタルアセットのマテリアル

 Houdini Digital Assets(HDA)として保存することで、マテリアルをより効率的に運用することができます。 Asset Propertiesペインで、Saveタブに移動してSave Cached Codeを選択すると、Mantraでレンダリングするときにマテリアルがプリコンパイルされます。 HDAを使用すると簡単に他者とマテリアルを共有することができます。

シェーダFXメニュー

 マテリアルのVOPを扱う際に、ノードビューにノードを追加して接続するか、各パラメータの右端にあるアイコンをクリックするとShader FXメニューにアクセスできます。このメニューでは、操作するパラメータに焦点を当て、適切なノードをコンテキストで選択できます。

 パラメータペインでは、右端のアイコンで、それぞれの接続の種類を確認できます。

・接続なし
・パラメータノード
・他のノードと接続
・接続の非表示

 

別のマテリアルアサインの方法

 マテリアルは、レンダリングタブの下にリストされるオブジェクトに割り当てることができます。 ジオメトリレベルでモデルの一部にマテリアルを割り当てることを可能にするマテリアルSOPもあります。 またグループを使用すると、この方法でマテリアルを簡単に割り当てることができます。

 Data Tree パネルでは、大規模なオブジェクトグループやインポートされたAlembicファイルにマテリアルやテクスチャを割り当てるために使用できるマテリアルスタイルシートにアクセスできます。 これはアーティストが大きなショットで作業するのをより効率的にするプロダクションレベルのツールです。 詳細については、SideFX社のHoudiniのドキュメントを参照してください。

 

マテリアルパレット

ギャラリー内のマテリアル – ここにリストされているマテリアルは、ギャラリーファイルに保存されます。 これらを右にあるシーン領域にドラッグするか、ビューポート内のオブジェクトにドラッグして割り当てることができます。

シーン内のマテリアル – これは、シーンファイルの一部であるマテリアルを見つける場所です。 ここからビューポートにドラッグすることでオブジェクトに割り当てることができます。

マテリアルギャラリー – Houdiniに付属するいくつかのデフォルトのギャラリーがあります。 ビルドを実行して、個人のプロジェクト用にギャラリーを追加することができます。

マテリアルのアサイン – シーン内のオブジェクトとパレット内の素材を選択し、[Assign]ボタンを押すとマテリアルを割り当てることができます。

ダブルクリックで編集 – これらのマテリアルをダブルクリックすると、/ matレベルで編集できるノードビューにジャンプします。

マテリアルサブネット – マテリアルサブネットは、割り当てられているジオメトリに関連するマテリアルを表示するために使用されることがあります。 シーン内のすべてのサブネットがここに表示されます。

 

 

シェーダービルディング

ノードパス – これは現在のパスを確認し、マテリアルネットワークの階層をナビゲートするのに役立ちます。

VOPノード – マテリアルコンテキストでは、マテリアルノードから開始し、次にVOPノードでワイヤリングして、マテリアルのテクスチャリングをカスタマイズできます。 作業が終了したら、これをすべて単一の素材に折り畳むさせることができます。

ノードコネクタ – このエリアにノードを追加するには、Shader FXメニューを使用します。このメニューには、中クリックしてそのドットをクリックすることができます。 右クリックすると、ノード全体のメニューが表示されます。

プリンシプルマテリアル – ドットを中クリックして、Shader FXメニューからノードを追加することができます。また、右クリックすると、ノード全体のメニューが表示されます。

⑤ レイヤーミックス– これがマテリアルの出力になります。プリンシプルマテリアルのみアサインすることも可能です。また、レイヤーミックスの元素材としても活用されます。

⑥ マテリアルフラグ– マテリアル上のレイヤー出力をこのミックスノードに入力することができます。 加えて、ジオメトリに割り当てることができます。 マテリアルフラグ – マテリアルパレットにレイヤーミックスを表示する場合は、このフラグをチェックします。

アルファ – このネットワークでは、レイヤーミックスノードのアルファがVOPノードによって供給され、2つのレイヤードマテリアルのアルファマスクが作成されています。