パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトマップ: 技術情報〜

ライトマップ: 技術情報

Unity は、ターゲット プラットフォームとライティング ウィンドウの圧縮設定に応じて、さまざまな圧縮とエンコード スキームでライトマップを保存します。

エンコード方式

Unity プロジェクトでは、必要に応じて 2 つの手法を使用して、ベイクしたライトの強度範囲を低ダイナミック レンジ テクスチャにエンコードできます。

RGBMエンコーディング。 RGBM エンコードでは、カラーを RGB チャネルに保存し、乗数 (M) をアルファ チャネルに保存します。 RGBM ライトマップの範囲は、リニア空間では 0 ~ 34.49(52.2)、ガンマ空間では 0 ~ 5 です。

ダブルローダイナミックレンジ(dLDR)エンコーディング。 dLDR エンコードは、モバイル プラットフォームで [0, 2] の範囲を [0, 1] にマッピングするだけで使用されます。値 2 を超えるベイク処理されたライトの強度はクランプされます。デコード値は、ガンマ空間が使用される場合はライトマップ テクスチャの値に 2 を乗算することによって、またはリニア空間が使用される場合には 4.59482(22.2) を乗算することによって計算されます。一部のプラットフォームでは、RGBM を使用するとハードウェア圧縮により見栄えの悪いアーティファクトが生成されるため、ライトマップを dLDR として保存します。

リニア カラー スペースが使用される場合、ライトマップ テクスチャは sRGB としてマークされ、シェーダによって使用される最終値 (サンプリングとデコード後) はリニア カラー スペースになります。ガンマ色空間が使用される場合、最終的な値はガンマ色空間になります。

注: エンコードが使用される場合、ライトマップ (GPU テクスチャ メモリ) に保存される値は常にガンマ色空間になります。

UnityCG.cginc シェーダー インクルード ファイルのライトマップ シェーダーのデコード関数は、シェーダーのライトマップ テクスチャから値が読み取られた後、ライトマップ値のデコードを処理します。

HDR ライトマップのサポート

HDR ライトマップは、Windows、Mac、Linux、iOS、tvOS、Android で使用できます。これらのプラットフォームのライトマップのエンコード/圧縮を制御するには、編集 / プロジェクト設定 / プレーヤー / その他の設定 / ライトマップ エンコーディングに移動します。

高品質を選択すると HDR ライトマップのサポートが有効になり、標準品質を選択すると RGBM エンコーディングの使用に切り替わります。モバイル プラットフォームでは低品質の dLDR エンコードに切り替わりますが、他のプラットフォームでは標準品質と同等になります。

ライティング ウィンドウでライトマップ圧縮が有効になっている場合、ライトマップはデスクトップおよびコンソール プラットフォームで BC6H 圧縮形式を使用して圧縮されます。モバイル プラットフォームの場合、Unity は以下の表に従って HDR 形式を選択します。

高品質 (BC6H) ライトマップの利点

HDR ライトマップはライトマップ値をエンコードするためにエンコード スキームを使用しないため、サポートされる範囲は 0 ~ 65504 の 16 ビット浮動小数点テクスチャ形式によってのみ制限されます。
BC6H 形式の品質は、DXT5 + RGBM 形式のエンコードよりも優れており、RGBM エンコードにあるようなカラー バンディング アーティファクトは生成されません。
HDR ライトマップをサンプリングする必要があるシェーダーは、サンプリングされた値をデコードする必要がないため、ALU 命令が数個短くなります。
BC6H 形式の GPU メモリ要件は DXT5 と同じです。

以下は、ターゲット プラットフォームごとのエンコード スキームとそのテクスチャ圧縮形式のリストです。

[1] iOS のライトマップに使用されるテクスチャ圧縮形式は、プレーヤー設定のテクスチャ圧縮形式設定によって異なります。

[2] Android のライトマップに使用されるテクスチャ圧縮形式は、プレーヤー設定とビルド設定によって異なります。これらの設定がどのように相互作用するかについて詳しくは、「テクスチャ圧縮設定」を参照してください。

事前計算されたリアルタイムのグローバル イルミネーション (GI)

GI システムへの入力は、出力とは異なる範囲とエンコーディングを持ちます。表面アルベドはガンマ空間の 8 ビット符号なし整数 RGB であり、放射は線形空間の 16 ビット浮動小数点 RGB です。メタ パスを使用してカスタム入力を提供する方法については、ライトマッピングとシェーダーに関するドキュメントを参照してください。

放射照度出力テクスチャは、グラフィックス ハードウェアがサポートしている場合は RGB9E5 共有指数浮動小数点形式を使用して保存され、フォールバックとして 5 の範囲の RGBM を使用して保存されます。 RGB9E5 ライトマップの範囲は [0, 65408] です。 RGB9E5 形式の詳細については、Khronos.org: EXT_texture_shared_exponent を参照してください。

以下も参照してください。

テクスチャ インポーターのオーバーライド
テクスチャの種類
グローバルイルミネーション
テクスチャの種類



    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトマップ: 技術情報〜
  • 場所:オンラインスクール
  • 料金:¥0 (消費税込)