【Unity】色空間 GammaとLinearの違い
Unityの色空間設定は、グラフィック表現の品質に大きな影響を与える重要な要素です。本記事では、「Gamma」と「Linear」の違いと、それに関連する「sRGB」の基本について解説します。
Gamma色空間とは?
Gamma色空間は、すでにガンマ補正済みの色データ:sRGBカラーをそのまま使用して計算を行います。その結果、次のような特徴があります。
-
メリット
- 計算が軽量で、モバイルや軽量なゲームに適している。
-
デメリット
- 物理的に正しい光の挙動を再現するのが難しいため、リアルな表現には不向き。
Linear色空間とは?
Linear色空間では、ガンマ補正済みのsRGBカラーをデガンマ補正して線形空間に変換した後、線形空間で色やライティングの計算を行います。最終的に、再びガンマ補正を適用してsRGBカラーに戻すことで人間の目に自然な見た目を実現します。
-
メリット
- 物理的に正しい光の挙動を再現可能で、フォトリアルな表現に最適。
-
デメリット
- 計算負荷が高く、低スペックのデバイスではパフォーマンスに影響を与える場合がある。
GammaとLinearの違いをグラフで比較
以下のグラフは、ガンマ補正済みの非線形空間:青線と線形空間:赤点線を比較したものです。
グラフの解説
-
横軸(Input Luminance)
入力輝度(線形的な光の強度)を示します。
-
縦軸(Output Luminance)
出力輝度(人間の目に見える明るさ)を示します。
ガンマ補正(青線)は暗い部分を持ち上げ、明るく見せる特性があるため、低い輝度の範囲で明るさが強調されています。一方、線形空間(赤点線)は、物理的な光の強度をそのまま反映しており、正確な計算に適しています。
sRGBとは?
sRGB (Standard Red Green Blue) は、ディスプレイや画像データで広く使用される標準的な色空間です。MicrosoftとHPが共同で開発し、現在ではほとんどのデジタルデバイスで採用されています。
-
ガンマ補正が内包されている
sRGBはガンマ値2.2を基準とした非線形空間です。これにより、人間の目の特性に合わせた自然な明るさを再現します。
-
互換性が高い
Webブラウザ、画像編集ソフトウェア、モニターなど、ほとんどのデバイスでsRGBが標準として使用されています。
sRGBの利用例
-
Web用画像
JPEGやPNGなど、ほぼ全てのWeb画像フォーマットがsRGB形式で保存されています。
-
ゲーム開発
Unityでは、ゲームで使用するテクスチャ(アルベドマップなど)が通常sRGB形式で保存されています。「Project Settings」から「Color Space」で変更が可能です。Linearの場合、エンジンが自動でデガンマ補正を行い、線形空間に変換してライティング計算を行います。
まとめ
色空間 | メリット | デメリット |
---|---|---|
Gamma | 計算負荷が低い。簡易的な表現に最適。 | 物理的に正確な計算ができない。 |
Linear | 物理的に正確な光の挙動を再現可能。リアルな表現に最適。 | 計算負荷が高い。 |
- モバイル向けの軽量なゲームではGammaが適している場合が多く、フォトリアルな表現を追求するPCやコンソール向けのゲームではLinearが選ばれることが多い。
- また、sRGBはデジタルデバイスの標準的な色空間として採用されている。
Discussion