
概要 📖 – メタリック・ラフネスベースの物理レンダリング
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 入力へ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 などのマップが自動で全部割り当てられます。マテリアル制作の最短経路。
- Substance TOP を作成し
.sbsarファイルを指定 - PBR MAT の
Substance TOPパラメータにその TOP を指定 - Geometry COMP に SOP + PBR MAT を割当、シーンに Environment Light COMP を追加
- 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) で実写級の金属反射が得られます。
- Movie File In TOP で HDRI 画像を読み込み
- Environment Light COMP に HDRI を流す
- PBR MAT の
Metallicを 1.0、Roughnessを 0.2 に設定 - Render TOP で確認、環境マップが金属表面に反射される
Example 3: ラフネスマップによる質感のバリエーション 🎨
Roughness Map TOP → PBR MAT (Roughness Map) → Geometry COMP → Light COMP → Render TOP
1 つのオブジェクト内で「ツルツルな部分」と「マットな部分」を共存させたいとき、Roughness Map で部分的に値を変えると、リアルな質感のばらつきが表現できます。
- Roughness Map 用の TOP (グレースケール) を用意
- PBR MAT の
Roughness Mapにその TOP を割当 Roughnessパラメータで全体の寄与量を調整- 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 🎯
- 前処理: Phong MAT、Constant MAT
- 後処理: GLSL MAT、Wireframe 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 だと法線がずれる)


