🎨

【Unity】色空間 GammaとLinearの違い

2025/01/26に公開

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