PBR MAT 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

PBR MAT のメタリック / ラフネスシェーディングを示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – メタリック・ラフネスベースの物理レンダリング

PBR MATは、Base Color / Metallic / Roughness のパラメータと対応マップ TOP で、物理的に正しい質感を再現する PBR (Physically Based Rendering) シェーダ用 MATです。Substance Designer / Painter 等で作成した .sbsar パックを Substance TOP 経由で読み込めば、Base Color / Metallic / Roughness 等のマップが自動で割り当てられます。Environment Light COMP と組み合わせると IBL で写実的な質感が得られます。

主な用途 🎯

  • Metallic / Roughness ベースの物理ベースレンダリング (PBR) シェーディング
  • Substance TOP 経由で .sbsar マテリアルパックを自動展開
  • Base Color / Specular / Metallic / Roughness / AO の各マップを統合
  • Environment Light COMP による IBL (Image-Based Lighting) でリアルな反射
  • Normal / Height / Parallax / Displacement マッピングによる凹凸表現

データフロー 🔄

入力: Base Color / Specular Level / Metallic / Roughness / AO / Emit カラーと対応 TOP マップ + Light COMP / Environment Light COMP

PBR シェーディング計算 (Cook-Torrance / GGX 等の物理モデル)

出力: Geometry COMP の Material 入力へ

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

RGB Page 🎨

PBR Base Parameters .pbrbase 🎨

PBR の基本パラメータ群 (Base Color / Metallic / Roughness 等)

項目 内部名 説明
Base Color .basecolor テクスチャの基本色。Diffuse + Specular 双方の計算に使用される
Specular Level .specularlevel Specular Level Map がマテリアルに与える寄与量
Metallic .metallic Metallic Map がマテリアルに与える寄与量 (0=非金属、1=金属)
Roughness .roughness Roughness Map がマテリアルに与える寄与量 (0=ツルツル鏡面、1=完全マット)
Ambient Occlusion .ambientocclusion AO Map の寄与量。Environment Light COMP からの寄与に影響
Env Light Quality .envlightquality Environment Light サンプリング品質
Emit .emit 自己発光色。ライトが無くてもマテリアル自体が発する色
Constant .constant 最終色に加算される定数色 (Point Color と乗算)

Two-Sided Lighting .twosidedlighting 💡

ポリゴンの表裏それぞれのライティング設定

項目 内部名 説明
Polygon Front Faces .frontfacelit 表面の法線をどうライティングに使うか
Polygon Back Faces .backfacelit 裏面の法線をどうライティングに使うか

Shader Generation .shadergen 🛠️

PBR 相当の GLSL シェーダコードを書き出すユーティリティ:

  • Output Shader …: ボタン。現在の PBR 設定相当の GLSL MAT + Text DAT を生成。レンダリング構成依存

Maps Page 🖼️

Substance + PBR Maps .pbrmaps 🖼️

PBR で使用する各種テクスチャマップ。詳細な Extend / Filter / Sampling Mode は公式 docs を参照:

  • Substance TOP: .sbsar パックを参照。下記マップが自動で割り当てられる
  • Base Color Map: テクスチャの基本色マップ
  • Specular Level Map: 鏡面反射レベルマップ
  • Metallic Map: 金属性マップ (0=非金属、1=金属)
  • Roughness Map: ラフネスマップ (Substance Designer の Roughness と等価)
  • Ambient Occlusion Map: AO マップ。Environment Light COMP からの寄与に影響
  • Normal Map (Bump): 法線マップ。tangent 属性必須
  • Height Map / Parallax: 高さマップ。Parallax / Displacement Mapping に使用
  • Emit Map: 自己発光マップ。Emit 色に乗算

Alpha Page 🌫️

Alpha Map .alphamap 🌫️

アルファマップによる透過制御の設定群:

  • Alpha Map: アルファマップ。Red チャンネルを使用してオブジェクトのアルファに乗算
  • Alpha (透過設定): 全体のアルファ値。Common Page の Blending 設定と組み合わせて使用

Deform Page 🦴

Deform .dodeform 🦴

ボーン変形 (スキニング) の設定群:

  • Deform トグル: ボーン変形を有効化
  • SOP with Capture Data: pCaptPath / pCaptData 属性を持つ SOP
  • Skeleton Root Path: スケルトンのルート COMP のパス

Common Page 🔧

Blending .blending 🎨

色のブレンディング (透過合成) に関する設定群

項目 内部名 説明
Add .add ソースとデスティネーションを加算
Subtract .subtract ソースからデスティネーションを減算
Reverse Subtract .revsubtract デスティネーションからソースを減算
Minimum .minimum 両者の最小値を採用
Maximum .maximum 両者の最大値を採用
Blending (Transparency) .blending 透過効果のためのカラーブレンディングを有効化するトグル
Separate Alpha Function .separatealphafunc アルファチャンネルのブレンド設定を RGB と独立させる
Blend Constant Color .blendconstant constantcol 系オプション選択時に使用する RGB 定数カラー
Blend Constant Alpha .blendconstanta constanta 系オプション選択時に使用する定数アルファ値
Legacy Alpha Behavior .legacyalphabehavior 旧バージョンのアルファ処理との後方互換を有効化
Post-Mult Color by Alpha .postmultalpha ブレンド演算完了後に RGB を計算後アルファで乗算

Depth Test .depthtest 📏

デプステスト (Z 比較) によるオクルージョン制御

項目 内部名 説明
Less Than .less 新ピクセルのデプスが既存より小さい (手前) なら描画
Less Than or Equal .lessorequal 新ピクセルが既存以下なら描画
Equal .equal デプスが完全一致時のみ描画
Greater Than .greater 新ピクセルが既存より大きい (奥) なら描画
Greater Than or Equal .greaterorequal 新ピクセルが既存以上なら描画
Not Equal .notequal デプスが一致しない場合のみ描画
Always .always デプス比較を行わず常に描画
Depth Test .depthtest デプスバッファとの比較によるオクルージョンを有効化
Write Depth Values .depthwriting デプステストを通過したピクセルのデプス値をデプスバッファに書き込む

Alpha Test .alphatest 🔍

アルファ値に基づくピクセル単位の破棄判定

項目 内部名 説明
Less Than .less アルファが閾値より小さいピクセルを残す
Less Than or Equal .lessorequal アルファが閾値以下のピクセルを残す
Greater Than .greater アルファが閾値より大きいピクセルを残す
Greater Than or Equal .greaterorequal アルファが閾値以上のピクセルを残す
Discard Pixels Based on Alpha .alphatest ピクセル単位でアルファによる破棄判定を有効化
Alpha Threshold .alphathreshold アルファ比較の閾値。条件外のピクセルは破棄される

Wire Frame .wireframe 🕸️

ジオメトリをワイヤーフレーム表示する設定

項目 内部名 説明
Off .off 通常のソリッド描画 (ワイヤーフレーム無効)
OpenGL Tesselated Wire Frame .tesselated OpenGL が三角形分割した状態でワイヤーを描画
Topology Wire Frame .topology 元のポリゴントポロジ (四角形等) のままワイヤーを描画
Line Width .wirewidth ワイヤーフレームの線の太さ (ピクセル単位)

Cull Face .cullface 🔺

ポリゴンの表裏どちらを描画するか (カリング) の選択

項目 内部名 説明
Use Render Setting .userender Render TOP 側の設定に従う
Neither .neither 両面とも描画 (カリングなし)
Back Faces .backfaces 裏面をカリング、表面のみ描画
Front Faces .frontfaces 表面をカリング、裏面のみ描画
Both Faces .bothfaces 両面をカリング (= 何も描画されない)

Polygon Depth Offset .polygonoffset ↔️

Z-fighting 対策としてポリゴンのデプス値をオフセット

項目 内部名 説明
Polygon Depth Offset .polygonoffset ポリゴンのデプス値オフセット機能を有効化
Offset Factor .polygonoffsetfactor デプス勾配に対するオフセットの乗数
Offset Units .polygonoffsetunits デプス単位の固定オフセット量

Color Space .parmcolorspace 🌈

カラーパラメータの色空間 / 基準白色の解釈

項目 内部名 説明
sRGB .srgb SDR sRGB トランスファ関数 (一般的なディスプレイ標準)
sRGB – Linear .srglinear SDR リニアトランスファ
Rec.601 (NTSC) .rec601ntsc SDR NTSC 規格 (旧テレビ放送)
Rec.709 .rec709 SDR ビデオ規格 (HD テレビ)
Rec.2020 .rec2020 HDR 放送規格 (4K/8K UHD)
DCI-P3 .dcip3 HDR シネマ規格 (D65 ホワイトポイント)
DCI-P3 (D60) .dcip3d60 HDR シネマ規格 (D60 ホワイトポイント)
Display-P3 (D65) .displayp3d65 HDR sRGB ガンマ (Apple ディスプレイ等)
ACES2065-1 .aces2065-1 HDR リニアシネマ規格 (アーカイブ用)
ACEScg .acescg HDR リニアシネマ作業用色空間
Passthrough .passthrough 色空間変換を行わずそのまま渡す

実践アイデア 💡

Example 1: Substance TOP からの自動マテリアル展開 📦

Substance TOP (.sbsar) → PBR MAT (Substance 入力) → Geometry COMP → Environment Light COMP → Render TOP

Substance Designer / Painter で書き出した .sbsar パックを使えば、Base Color / Metallic / Roughness / Normal などのマップが自動で全部割り当てられます。マテリアル制作の最短経路。

  1. Substance TOP を作成し .sbsar ファイルを指定
  2. PBR MAT の Substance TOP パラメータにその TOP を指定
  3. Geometry COMP に SOP + PBR MAT を割当、シーンに Environment Light COMP を追加
  4. Render TOP で確認、Substance のマテリアルがそのまま 3D 上に再現される

Example 2: 金属マテリアルのリアルな反射 🪙

HDR Environment TOP → Environment Light COMP → PBR MAT (Metallic=1, Roughness=0.2) → Geometry COMP → Render TOP

Metallic を 1.0、Roughness を低めに設定し、Environment Light COMP に HDRI を流し込むと、IBL (Image-Based Lighting) で実写級の金属反射が得られます。

  1. Movie File In TOP で HDRI 画像を読み込み
  2. Environment Light COMP に HDRI を流す
  3. PBR MAT の Metallic を 1.0、Roughness を 0.2 に設定
  4. Render TOP で確認、環境マップが金属表面に反射される

Example 3: ラフネスマップによる質感のバリエーション 🎨

Roughness Map TOP → PBR MAT (Roughness Map) → Geometry COMP → Light COMP → Render TOP

1 つのオブジェクト内で「ツルツルな部分」と「マットな部分」を共存させたいとき、Roughness Map で部分的に値を変えると、リアルな質感のばらつきが表現できます。

  1. Roughness Map 用の TOP (グレースケール) を用意
  2. PBR MAT の Roughness Map にその TOP を割当
  3. Roughness パラメータで全体の寄与量を調整
  4. Render TOP で確認、白い部分は粗く、黒い部分は鏡面的に見える

関連オペレータ 🔗

類似機能OP 🔍

  • Phong MAT — 古典的な Diffuse / Specular ライティング
  • Constant MAT — ライティングなしのフラットシェーディング
  • GLSL MAT — PBR を超えるカスタムシェーダが必要なケース

組み合わせ推奨OP 🔄

  • Substance TOP — .sbsar マテリアルパックを読み込み PBR MAT に流す
  • Environment Light COMP — HDRI ベースの IBL で PBR の反射 / アンビエントを駆動
  • Geometry COMP — PBR MAT を割り当てるレンダリング対象
  • Render TOP — PBR ジオメトリを最終 2D 画像にレンダリング
  • Light COMP — 通常の Directional / Point ライトも PBR と併用可能

前処理・後処理MAT 🎯


Info情報 📊

MAT は Info CHOP / Info DAT に接続することで、シェーダコンパイル状況やクック情報を取得できます。

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からの累計クック回数
  • cook_time: 直近クックに要した時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 現在の警告数 (シェーダコンパイル警告含む)
  • errors: 現在のエラー数 (シェーダコンパイルエラー含む)

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: PBR MAT を当てたのに陰影が出ない / 単色になる
✅ Solution:

  • シーンに Light COMP または Environment Light COMP が存在するか確認 (PBR はライトが無いと真っ黒)
  • Roughness が 1.0 に近すぎると Specular が全く出ない、0.1〜0.5 で確認
  • Base Color が黒になっていないか確認

❌ Problem: Substance TOP を指定したのにマップが反映されない
✅ Solution:

  • Substance TOP が正しく .sbsar を読み込めているか TOP プレビューで確認
  • PBR MAT の Base Color Map 等を手動指定していると Substance TOP より優先される、手動マップをクリア
  • Substance TOP がエラーを出していないか Info DAT で確認

❌ Problem: 金属マテリアルなのに反射が見えない
✅ Solution:

  • Metallic を 1.0 に設定し、シーンに Environment Light COMP + HDRI を追加
  • Roughness を低くする (0.0〜0.3) と鋭い反射になる
  • Env Light Quality を上げて反射のサンプリング品質を改善

❌ Problem: Normal Map が反映されず凹凸が見えない
✅ Solution:

  • ジオメトリに tangent 属性が存在するか確認、無ければ Attribute Create SOP で生成
  • Bump Scale が 0 になっていないか確認
  • Normal Map TOP のカラースペース解釈が linear になっているか確認 (sRGB だと法線がずれる)

参考資料 📚

公式リソース 📖

コミュニティ 💬

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました