これはMardini2024のDay7 Karma Material Builderの動画を視聴してまとめたものです。
Day6 Material Linker | Day7 Karma Material Builder | Day8 Karma Fog Box
Karma Material Builderを使えば、自作のマテリアルをカスタマイズして作成できます。また、Grayscale Gorillaプラグインを使えば、マテリアルを簡単にインポートできます。
要約
- Karma Material BuilderはVOPコンテキストで動作する
- ノード内でマテリアルのルックを構築する。各種ノードを接続してマテリアル表現を作り上げていく
- Grayscale Gorillaプラグインを使えば、同社提供の高品質マテリアルをインポートできる
- インポートしたマテリアルは、Material Linkerノードで割り当て可能
- マテリアルのパラメータも公開されており、視覚的に調整が可能
サンプルファイル
シェーダーボールとカメラ、KarmaPhysicalSkyを含むシーンです
マテリアルはアタッチされていない状態です
事前準備
テクスチャを事前にダウンロードしておきます。greyscalegorillaのサイトでTileのマテリアルアセットを取得します
プラグインをインストールする場合
操作手順
- Day6ではMaterialLinkerを利用してマテリアルを適用しましたが、今回はVEX BuilderコンテキストにアクセスするためMaterial Libraryを利用します
- Material Libraryノードを作成し新しいVOPネットワークを作成します
3つのMaterial Builder 比較
- Material Libraryノード内に入ったらVEX Material Builder、USD MaterialX Builder、Karma Material Builderを作成してみましょう
-
- VEXのシェーダーを利用しているためKarmaCPUのみで利用できます。KarmaXPUは動作しません
-
- KarmaCPU、KarmaXPUで完全に動作しますが、サードパーティのアプリケーション用でもあります
- HoudiniからUSDアセットをエクスポートすることができ、マテリアルはそのサードパーティアプリケーションで機能します
- Karma固有のノードは利用できません
-
- MaterialXサブネットもアクセス可能
- Karma独自のノードを呼び出すことができる
- KarmaXPUで一部動作しないことがある
Karma Material Builderの構築
- これからタイル状のマテリアルを作成します
- Material Libraryノード内でKarma Material Builderノードを作成します
マテリアルの割当
- 構築を行う前にマテリアルをシェーダーボールのジオメトリに割り当てます
- stageに戻り、MaterialLinkerをMaterialLibraryの下に追加します
テクスチャマップの取り込み
- Karma Material Builderノードに戻り、必要なノードを作成・接続していきます
- inputsノードは不要なので削除します
Base Color
- MtlX Imageノードでテクスチャ画像を読み込みます SignatureはColorのままです
Roughness
- 新たにMtlX Imageノードを作成します。ラフネスは SignatureをFloatにします
- GSG_MC001_A096_DCeramicTilesSquare04_4k_roughness.jpg を指定します
- outをMtlX Standard Surface のSpecurlar Roughnessに接続します
- ラフネスが効きました
Normal
- 新たにMtlX Imageノードを作成します。法線は SignatureをVector3にします
- GSG_MC001_A096_DCeramicTilesSquare04_4k_normal.jpg を指定します
- MtlX Normalmapノードを作成、MtlX Imageノードとつなぎます
- MtlX NormalmapのoutをMtlX Standard Surface のGeometry > normalに接続します
Karma Curvature
- 新たにKarma Curvatureノードを作成します。入力に位置と法線を利用します
- Normalは先程作成したMtlX Normalmapからnに入力します
- Positionは新しくMtlX Postisionノードを作成します
- 一時的にどの程度の影響が現れているかMtlX Surface Unlitノード(非照明サーフェス シェーダ)をMaterial_Outuputsに繋いで確認します
- Positionの後ろに乗算(MtlX Multiply)をいれることで細かい制御が可能です
- 最終的にCurvatureの後ろにはKarma Ramp Constを挟んでMtlX Mix(Signature:Color Fgにはテクスチャ Bgは黒のColor、mixにCurvatureを入れる)を経てbase_colorに流し込みます
Grayscale Gorillaプラグイン
- Grayscale Gorillaプラグインをインストールしている場合、シェルフにツールが追加されます
- シェルフのImport Materialボタンを押し、インポートするマテリアルフォルダを選択します
- マテリアルがmatネットワーク内にインポートされるので、コピーしてLOPのMaterial Libraryに貼り付けます
- これまでと同様にMaterial Linkerノードで、ライブラリ内のマテリアルをシーン内のジオメトリに割り当てます
- マテリアルにはいくつか外に公開されたパラメータがあり、スケール/回転等を調整できます
まとめ
Karma Material Builderでは、Houdini内で高品質なマテリアルを作成できます。Grayscale Gorillaマテリアルを活用することもできます。