物理ベースレンダリング(PBR)とは、光が現実世界でどのように振る舞うかを近似するシェーディング手法です。反射や影をごまかす芸術的なトリックに頼る代わりに、PBRはラフネス・メタルネス・屈折率などの測定可能な物理特性を使って、サーフェスが光とどのように相互作用するかを計算します。その結果、厳しい真昼の太陽光から柔らかい室内の環境光まで、あらゆる照明条件で正しく見えるマテリアルが実現します。
2つのPBRワークフロー
PBRワークフローにはメタリック/ラフネスとスペキュラー/グロシネスの2種類があります。メタリック/ラフネスモデルが現在主流で、Unreal Engine・Unity・Blender・Substance Painter・ほとんどの現代ゲームエンジンで使用されています。スペキュラー/グロシネスワークフローは古く、一部のアーキテクチャービズパイプラインで今も使われています。このガイドはメタリック/ラフネスモデルに焦点を当てます。
マップの種類と制御内容
アルベド(ベースカラー / ディフューズ)
アルベドマップは、照明・シャドウ・反射情報を一切含まない、サーフェスのベースカラーを定義します。非金属では拡散色、金属では反射色(金属はディフューズ成分を持たない)を定義します。重要なルール:アルベドマップにベイクされたライティングやアンビエントオクルージョンを含めてはいけません。非金属では30–240 sRGBの値に収めてください。純粋な黒と純粋な白は物理的にありえない値です。
ノーマルマップ
ノーマルマップはサーフェス角度のバリエーションをRGBチャンネルにエンコードします。各ピクセルは方向ベクトルを表します:赤がX軸の傾き、緑がY軸の傾き、青がZ軸(サーフェスから真っすぐ外に向かう方向)。これにより、ポリゴンを追加せずにフラットなジオメトリに精細なサーフェスディテール — 肌の毛穴、木の溝、レンガのモルター線 — を持たせることができます。ノーマルマップは、Blender・Substance・xNormalのベイキングツールを使ってハイトマップや高ポリゴンモデルから生成できます。
ラフネス
ラフネスはスペキュラー反射の散乱度または集中度を制御します。0.0は完璧な鏡(磨かれたクロム)、1.0は完全に拡散(生のコンクリート)です。現実世界のマテリアルのほとんどは0.2〜0.8の間に収まります。ラフネスマップはグレースケール — 白がラフ、黒がスムース。単一マテリアル内のバリエーションが重要です:木製テーブルはニスが塗られた滑らかな部分と荒い未仕上げのエッジを持つかもしれません。
メタリック
メタリックマップは実際には二値です:ピクセルは金属(1.0)か非金属(0.0)のどちらかです。0〜1の間の値は、例えば金属から塗装が剥げている箇所のような移行ゾーンを表します(エッジ部分で数ピクセルにわたって0.5になることがある)。純粋な金属はディフューズ反射がなく、アルベドカラーでスペキュラーを着色します。非金属は白いスペキュラーと色付きのディフューズを持ちます。プラスチックのサーフェスをメタリック0.5に設定するなど、これを間違えると物理的にありえない結果になります。
アンビエントオクルージョン(AO)
AOマップは、近隣のジオメトリによってアンビエントライトが遮られる、くぼみ・コーナー・エリアを暗くします。グレースケールマップで:白が完全に露出、黒が完全に遮蔽。AOは材質に奥行きと接触シャドウを加え、マテリアルを地に足ついた感じにします。ゲームエンジンでは、AOマップは最終的なディフューズライティングパスと乗算されることが多いです。
ハイト / ディスプレースメント
ハイトマップ(グレースケール、白=高、黒=低)は疑似的な深さのためのパラレックスオクルージョンマッピングを駆動するか、それをサポートするレンダラー(BlenderのCycles・V-Ray・Arnold)では実際のメッシュディスプレースメントを行います。ディスプレースメントは計算コストが高いですが、ノーマルマップでは実現できない本物のシルエット変化を生み出します。
実践的なセットアップのヒント
- 一貫したUVスケール — マテリアルのすべてのマップは同じUVレイアウトを共有する必要があります。アルベドとノーマルマップのUVのズレは明らかに不正確なライティングを引き起こします。
- リニアとsRGB — アルベドマップはsRGBとしてインポートします。ノーマル・ラフネス・メタリック・AO・ハイトマップはリニア(非カラーデータ)でなければなりません。誤ったカラースペース設定はPBRの最も一般的なミスの一つです。
- 実際の測定値からのラフネス — どのラフネス値を使うか分からない場合、参照チャートがあります。磨かれた大理石:〜0.1。古びた木:〜0.5。生のコンクリート:〜0.9。これらが良い出発点です。
ソフトウェア別の注意点
Blenderでは、Principled BSDFシェーダーがこれらすべてのマップを直接受け付けます。Unreal Engineでは、AO・ラフネス・メタリックを単一のパックされたORMテクスチャ(それぞれチャンネルR・G・B)に結合します。Unityでは、Standardシェーダーがメタリックマップのアルファチャンネルにメタリックを期待します。Substance Painterは、すべてのマップチャンネルのライブプレビューを備えた完全なPBRマテリアルセット作成のための業界標準ツールです。
コンクリートジェネレーターやメタルジェネレーターでPBRマテリアルのベーステクスチャを生成し、ノーマルマップツールを使ってノーマルマップとラフネスマップを派生させてください。