Version: Unity 6.0 (6000.0)
言語 : 日本語
Unity のリニア色空間の概要
リニアテクスチャ

リニア色空間のガンマテクスチャ

Unity エディターを使用すると、リニア色空間同様、従来のガンマ色空間も操作できます。Textures がガンマ色空間にある場合でも、リニア色空間で作業できます。

注意テクスチャがリニア色空間にある場合は、sRGB サンプリングを無効にする必要があります。詳細については、リニアテクスチャに関するドキュメントを参照してください。

リニアレンダリングは、レンダリングされたシーンに対してガンマとは異なる外観を実現します。ガンマ空間でレンダリングしたときに見栄え良く作成したプロジェクトが、リニアレンダリングに変更したときに見栄えが良くなることはほとんどありません。このため、ガンマレンダリングからリニアレンダリングに変更すると、以前と同じくらい見栄え良く見えるようにプロジェクトを調整するのに時間がかかることがあります。ただし、この変更によって最終的により一貫性のある現実的なレンダリングを可能にし、時間を費やす価値がある場合があります。たいていは、テクスチャ、マテリアル、ライトを微調整する必要があります。

Lightmapping

ライトマッパーのライティングの計算は常にリニア空間で行われます (詳細については、色空間を参照)。ライトマップは常にガンマ空間に格納されます。つまり、ライトマップのテクスチャは、ガンマ色空間でもリニア色空間でも同じということです。

リニア色空間では、テクスチャサンプルは、サンプリングされたときに、ガンマ空間からリニア空間に変換されます。ガンマ色空間では、変換は必要ありません。したがって、色空間の設定を変更するときにライトマップを再度ベイクする必要があります。これは、Unity のライティングが Auto Baking に設定されていると自動的に行われます (これがデフォルトです)。

ライトマップのインポート

Unity によって作成されたライトマップ EXR ファイルのデータはリニア空間にあります。インポート中にガンマスペースに変換されます。外部ライトマッパーからライトマップを取り込む場合は、ライトマップをテクスチャタイプとしてマークします。テクスチャインポーターライトマップ。この設定では、インポート時に sRGB サンプリングがバイパスされます。

リニアレンダリングをサポートするプラットフォーム

リニアレンダリングはすべてのプラットフォームでサポートされているわけではありません。リニアレンダリングをサポートするビルドターゲットは以下のとおりです。

  • Windows、Mac OS X、Linux (スタンドアロン)
  • Android
  • iOS
  • Web

リニアレンダリングがデバイスでサポートされていない場合、ガンマにフォールバックすることはありません。この場合、プレイヤーは終了します。QualitySettings.activeColorSpace を見て、スクリプトからアクティブな色空間を確認できます。

Android では、リニアレンダリングには少なくとも OpenGL ES 3.0 グラフィックス API と Android 4.3 が必要です。

iOSでは、リニアレンダリングには Metal グラフィックス API が必要です。

ウェブでは、リニアレンダリングには最低 WebGL 2.0 グラフィックス API が必要です。

最小限の要件が満たされるまで、プレイヤーをビルドすることはできず、エディターによる警告が表示されます。これは、ユーザーデバイス上で正しくレンダリングされないゲームをデジタルストアに配信してしまうのを防ぐためです。

Unity エディターは、正しく描画されないゲーム用のプレイヤーがビルドされることを防止します。
Unity エディターは、正しく描画されないゲーム用のプレイヤーがビルドされることを防止します。

リニア色空間と HDR

HDR (ハイダイナミックレンジ) を使用する場合、レンダリングはリニア空間で実行され浮動小数点バッファになります。このバッファは、バッファにアクセスするたびにガンマ空間への変換とガンマ空間からの変換を必要としない十分な精度を持っています。つまり、リニアモードでレンダリングする場合、使用するフレームバッファはリニア空間に色を格納します。したがって、すべてのブレンディングおよびポストプロセスのエフェクトは、暗示的にリニア空間で実行されます。最終的なバックバッファに書き込まれるときに、ガンマ補正が適用されます。

リニア色空間と非 HDR

リニア色空間が有効であり、HDR が有効でない場合は、sRGB の読み取りと sRGB の書き込みをサポートする特殊なフレームバッファタイプが使用されます (読み取り時はガンマからリニアへ、書き込み時はリニアからガンマへ)。このフレームバッファがブレンドに使用されるか、テクスチャとしてバインドされている場合、値は使用される前にリニア空間に変換されます。これらのバッファに書き込まれる場合、書き込まれる値はリニア空間からガンマ空間に変換されます。リニアモードと HDR 以外のモードでレンダリングする場合、すべてポストプロセスエフェクトはソースおよびターゲットバッファは sRGB の読み込みおよび書き込みが有効化された状態で作成され、ポストプロセスおよびポストプロセスブレンディングがリニア空間で実行されます。


  • 2017–06–19

  • 2017.2 NewIn20172 でウェブのリニアレンダリングを追加

Unity のリニア色空間の概要
リニアテクスチャ