
概要 📖 – ライティング非依存のフラットシェーディング
Constant MATは、ライティング計算を一切行わず、指定した色やテクスチャをそのまま面に貼り付けるフラットシェーディング用 MATです。Phong MAT / PBR MAT のような陰影計算を持たず、ライト COMP の影響を受けません。UI や HUD、デバッグ表示など「常に同じ明るさで見せたい」要素に最適です。
主な用途 🎯
- ライト COMP の影響を受けないフラットな単色 / テクスチャ表示
- UI 要素・HUD・ロゴなど常に 同じ明るさで見せたい要素のシェーディング
- Color Map + 透過合成で 2D テクスチャを 3D シーン上に重ねる用途
- デバッグ用途の 純色シェーディング (法線確認・ピクセル位置確認)
- プロジェクションマッピングのテクスチャ受け側 (Apply Projection Maps 対応)
データフロー 🔄
入力: Color パラメータ + 任意の Color Map TOP
↓
ライティング計算を完全にスキップ
↓
出力: Geometry COMP の Material 入力へ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Constant Page 🎨
Color .color 🎨
マテリアル基本色とアルファ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Color | .color |
マテリアルから反射される光の色 (RGB)。ライト無関係に常に同じ色で表示される |
| Alpha | .alpha |
マテリアルの不透明度。ジオメトリのポイントアルファと乗算される |
| Apply Point Color | .applypointcolor |
ジオメトリ側のポイントカラー (Cd 属性) を Color に乗算するトグル |
| Apply Projection Maps | .applyprojmaps |
Light COMP のプロジェクションマップテクスチャをオブジェクトに適用する。プロジェクションマップ自体のカラーはライティング非依存で適用される |
Color Map .colormap 🖼️
TOP テクスチャをカラーマップとして使用する設定群
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
端のピクセルを延長 |
| Zero | .zero |
範囲外は 0 (黒透明) |
| Repeat | .repeat |
テクスチャを繰り返し |
| Mirror | .mirror |
ミラーリング繰り返し |
| Color Map | .colormap |
カラーマップとして使用する TOP テクスチャ |
| SOP Texture Coord | .colormapcoord |
SOP のどの UV 属性をテクスチャ座標として使うか (uv / uv2 等) |
| POP Texture Coord Attribute | .colormapcoordattrib |
POP ワークフロー時のテクスチャ座標属性名 |
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: UI / HUD オーバーレイ用フラット表示 🎨
Rectangle SOP → Geometry COMP (Material = Constant MAT) → Render TOP
3D シーンに UI 要素やロゴを重ねるとき、Phong だとライト位置で色味が変わってしまいます。Constant MAT を使うと、どんなカメラ / ライト配置でも常に同じ色で表示されます。
- 矩形 SOP を作って Geometry COMP に入れる
- Geometry COMP の Material に Constant MAT を割当
- Constant MAT の
Colorを白、Alphaを 0.8 に設定 - Render TOP でカメラから見たら、ライティングに左右されない平坦な UI として表示される
Example 2: テクスチャ付きフラットビルボード 🖼️
Movie File In TOP → Constant MAT (Color Map) → Geometry COMP (板ポリ) → Render TOP
動画や画像をそのまま 3D シーン中に貼りたいケース。Phong だとライト方向で暗くなるが、Constant ならテクスチャの色がそのまま出ます。
- Movie File In TOP で動画を読み込み
- Constant MAT の
Color Mapにその TOP を指定 - Geometry COMP に板ポリ (Rectangle SOP) を入れマテリアルを割当
- Render TOP で見ると、ライト無関係に動画がフラットに貼られる
Example 3: デバッグ用の純色シェーディング 🔍
任意 SOP → Geometry COMP (Constant MAT 純赤) → Render TOP
ジオメトリの存在位置 / シルエット確認を行うとき、ライティングがあると影で形状が判別しにくくなります。Constant の純色シェーディングは形状を素直に映します。
- Constant MAT の
Colorを純赤 (1, 0, 0) に設定 Apply Point Colorをオフにしてポイントカラーの影響を除外- 対象ジオメトリのマテリアルとして割当
- Render TOP で確認、シルエットだけが赤一色で抽出される
関連オペレータ 🔗
類似機能OP 🔍
- Phong MAT — Diffuse / Specular / Ambient のライティング計算を行う標準的なシェーディング
- PBR MAT — 物理ベースレンダリング (PBR) のメタリック・ラフネス系シェーディング
- Wireframe MAT — ジオメトリのエッジ (線) のみを描画するシェーディング
組み合わせ推奨OP 🔄
- Geometry COMP — MAT を割り当てるレンダリング対象 COMP、必須の組み合わせ
- Render TOP — Constant MAT を貼った Geometry を最終 2D 出力に描画
- Camera COMP — Render TOP のビューを定義、Constant はカメラ位置に左右されない
- Movie File In TOP — Constant MAT の Color Map に動画 / 画像を供給
- Light COMP — Constant 自体はライトに反応しないが、Apply Projection Maps 経由でプロジェクションマップは利用可能
前処理・後処理MAT 🎯
- 前処理: Phong MAT、PBR MAT
- 後処理: Wireframe MAT、GLSL MAT
Info情報 📊
MAT は Info CHOP / Info DAT に接続することで、シェーダコンパイル状況やクック情報を取得できます。
汎用オペレータ情報 🔄
total_cooks: プロセス開始からの累計クック回数cook_time: 直近クックに要した時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 現在の警告数 (シェーダコンパイル警告含む)errors: 現在のエラー数 (シェーダコンパイルエラー含む)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Constant MAT を割り当てたのに何も表示されない
✅ Solution:
- Geometry COMP の
Materialパラメータが Constant MAT のパスを正しく指しているか確認 Alphaが0になっていないか確認 (完全透明)- Render TOP の Camera / Geometry / Light 設定が正しいか、まず Phong MAT で表示できるかをテストしてから Constant に戻す
❌ Problem: ライトを当てているのに色が変わらない / 暗くならない
✅ Solution:
- Constant MAT は意図的にライティング非依存。陰影が必要なら Phong MAT もしくは PBR MAT に変更
- ライト COMP のプロジェクションマップだけ反映させたい場合は
Apply Projection Mapsをオン - デバッグ用に純色で見せたい場合は意図通りなので問題なし
❌ Problem: Color Map のテクスチャが意図したサイズで表示されない
✅ Solution:
- ジオメトリ側に UV 属性が存在するか確認 (
uvattribute)、無い場合は Texture SOP 等で生成 SOP Texture Coordパラメータで参照する UV セット名 (uv / uv2) を一致させるExtend U/VをRepeatにしてテクスチャの繰り返し範囲を確認
❌ Problem: アルファブレンドが想定どおりにならない
✅ Solution:
- Common Page の
Blending (Transparency)をオンに設定 Source Color= Source Alpha、Destination Color= One Minus Source Alpha (標準アルファ合成) の組み合わせを試すPost-Mult Color by AlphaやPoint Color Pre-Multiplyの設定がプリマルチプライ済テクスチャと一致しているか確認


