なぜORMテクスチャは Masks (no sRGB) にするのか?

画像に見えるけれど、実はデータを保存しているテクスチャとは

for Unreal Engine

この記事で分かること

Substance PainterなどからORMテクスチャを書き出すと、
Unreal EngineではCompression Settingsを

Masks (no sRGB)

に変更することが推奨されています。

しかし、
なぜMaskにする必要があるのか?
その理由を順に解説します。

1.ORMテクスチャとは?

ORMとは、

R = Ambient Occlusion (アンビエント オクルージョン 略してAO)
G = Roughness (ラフネス)
B = Metallic (メタリック)

をRGBへ格納したテクスチャです。

簡単に言うと
3種類のテクスチャを合体して1枚にしたもの。

ただし
RGB画像に見えますが
これは「色」を保存している画像ではありません。

2.なぜ1枚にまとめるの?

→軽いから

GPUは
テクスチャ3枚を読み込むより
テクスチャ1枚を読み込む方が高速で
さらに
メモリ消費も減ります。

なので
ゲームや映像を軽くするために
3種類のテクスチャを 1つのテクスチャにまとめています。

そして、 この1つにまとめたテクスチャのことを 「パッキングテクスチャ」と呼びます。

3.なぜMask設定にするの?

は全部グレースケールのデータです。

グレースケールとは
黒を0とし、白を1とした0~1の値を表すただの白黒画像です。

AO・Roughness・Metallic
これらのテクスチャは 明るさだけが重要で、色を表すものではありません。

そのため、Color Textureとして扱う必要がありません。

4.sRGBを切る理由

例えば

0.5
というラフネス値。

Unreal Engineは
「これは色ですね」
と思ってガンマ補正をかけます。

すると
0.5

約0.22
のように値が変わります。

つまり
テクスチャ作成者が設計したラフネスでなくなります。

だから
カラーではない、データテクスチャは
sRGB OFF
が必要になります。

5.Compression SettingsがMaskなのは?

"これは色ではなくデータですよ" とUEに伝えるためのプリセット

という意味合いが強いです。

Compression Settings を Masks(no sRGB) にすると

これらをまとめて設定してくれます。

なので
ORMとの相性が非常に良いです。

6.変更しないとどうなる?

例えば

こういう原因になります。

7.なぜNormalはNormalで、ORMはMasksで、Base ColorはDefaultなのか

「テクスチャは見た目が画像でも、中身は用途によって扱いが異なる」

Base Color(Albedo)は
写真のような「見た目」の画像ですが、
ORMテクスチャは設計図や地図のような「情報」を記録した画像です。

簡単に言うと

QRコードのようなものです。

QRコードを絵だと思う人はいません。
絵(図)に意味を持たせて別の用途で使うのがQRコードです。

つまり
パッキングテクスチャは
カラー画像のように見える情報です。

テクスチャには見た目を表すものと、データを表すものがある

Compression Settingsは
「画像の見た目」で選ぶものではなく、「GPUにどんなデータを渡したいか」で選ぶものです。 のようにそれぞれのテクスチャはデータの種類が違います。

そして
これらのCompression Settingsを用途に合わせて設定するなら のように設定します。
※パッキングテクスチャではないRoughness等の1チャンネルしか必要としないテクスチャに対して、RGBテクスチャを使うのはオーバースペックな場合があります。そのため、Grayscaleでの設定で十分なケースが多いです。

コンピュータにとってテクスチャは「絵」ではありません。
GPUが読むためのデータの入れ物です。
たまたま人間にも画像として見えているだけなのです。

まとめ

  • ORMは色ではなくデータ
  • RGBへ情報を保存している
  • sRGBは不要
  • Masks(no sRGB)が最適

さいごに

毎回ORMをインポートするたびにCompression Settingsを変更するのは少し手間です。

そこで、ORMテクスチャを自動で Masks (no sRGB) に設定するプラグインを作成し、Fabで無料公開しています。

「設定を忘れがち」「大量のテクスチャを扱う」という方は、よければ活用してみてください。
■プラグイン 使い方
■fab 製品ページ