UDN
Search public documentation:

GammaCorrectionJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > レンダリング > UE3 におけるガンマ補正


UE3 におけるガンマ補正


ドキュメントの変更ログ: Daniel Wright により作成。

概要


インターネット上には、ガンマ補正とその必要性について大量の情報が流れています。概要を知るには、Gamma Correction on Wikipediaをご覧ください。また、GPU Gems 3 chapterがいっそう参考になります。簡潔に言うならば、ガンマ空間に色を変換する理由は 2 つあります。

  • さまざまなモニタの非線形応答を埋め合わせます (出力の輝度は入力の明暗度に釣り合いません)。
  • 人間の目は、明るい色での詳細よりも暗い色での小さな変化により敏感なので、色が量子化される必要がある場合、暗いところ (ここがもっとも重要な場所です) でより高い精度を得ます。

UE3 におけるガンマ


すべてのプラットフォームで使用される UE3 のガンマ補正 (色のすべての計算が線形空間で行われるということです) レンダリング パイプラインは以下の通りです。

  • 暗い所でより高い精度を得るために、入力カラー テクスチャはガンマ空間 (ディフューズ、スペキュラーなど) に格納されます。これらのテクスチャは、グラフィック ハードウェアを使用してガンマから線形空間への変換を負荷なしで行う sRGB 読み込み (D3D9 の D3DSAMP_SRGBTEXTURE) でサンプルされます。これは、SRGB UTexture プロパティでコントロールされます。
  • 線形空間カラーを得ると、予期された線形結果とともにさまざまなライティング方程式で使用されます。
  • シーン カラー レンダリング ターゲットは線形カラーを格納します。これは、アルファ ブレンディングが線形空間で起こるということなので、重要となります。シーン カラーをガンマ空間に格納すると、アルファ ブレンディングはそのカラー空間で起こり、結果は予期するものと非常に異なります。線形空間にシーン カラーを格納するデメリットは、より高い精度が必要となり、暗い場所でバンディングを防ぐために FP 16 レンダリング ターゲットが必要となることです。
  • ポスト プロセス チェーンで、シーン カラーをピクセルごとに 8 ビットのレンダリング ターゲット/バックバッファに書き込む前に、線形シーン カラーにガンマ補正をかけます。これは、一般的なモニタの非線形応答に埋め合わせをする標準的なガンマ補正です。これは、ポスト プロセス チェーンに UberPostProcess ノードがない場合、UberPostProcessBlendPixelShader.usf と GammaCorrectionPixelShader.usf で起きます。

これの例外は、UI がレガシーの理由で、現在はガンマ空間にブレンドされているということです。

モバイル上のガンマ


2011年6月現在

モバイルデバイス上ではガンマ補正がサポートされているため、複数のプラットフォームで一貫した光源処理を用いて、レベルとコンテンツを作成することができます。

mobile_gamma_results.jpg

モバイル用ガンマ補正を有効にする

デフォルトでは、モバイルプラットフォーム用のガンマ補正が有効になっていません。モバイルゲーム用のガンマ補正を使用するには、作成しているマップ (複数も) の World Properties (ワールド プロパティ) の中にある Use Gamma Correction (ガンマ補正を使用する) プロパティを有効にします。

gamma_enabled.jpg

パフォーマンスへの配慮

モバイルデバイス上のガンマ補正によって、パフォーマンスにかなり顕著な影響が出る可能性があります。この機能は、主に今後リリースされるモバイルデバイスで使用されるように設計されています。現在のところ、ガンマ補正を使用してゲームを稼働することができるデバイスは、iPad 2 のみです。