Unity エディターを使用すると、リニア色空間同様、従来のガンマ色空間も使用できます。テクスチャ がガンマ色空間にある場合でも、リニア色空間で作業できます。
詳しい情報は、以下のドキュメントを参照してください。
注意 テクスチャがリニア色空間にある場合は、sRGB サンプリングを無効にする必要があります。詳細については、リニアテクスチャ を参照してください。
リニアレンダリングは、レンダリングされたシーンにガンマとは異なる外観を提供します。ガンマ空間でレンダリングしたときに見栄え良く作成したプロジェクトが、リニアレンダリングに変更したときに見栄えが良くなることはほとんどありません。このため、ガンマレンダリングからリニアレンダリングに変更すると、以前と同じくらい見栄え良く見えるようにプロジェクトを調整するのに時間がかかることがあります。ただし、この変更によって最終的により一貫性のある現実的なレンダリングを可能にし、時間を費やす価値がある場合があります。たいていは、テクスチャ、マテリアル、ライトを微調整する必要があります。
ライトマッパーのライティング計算は、常にリニア空間で行われます (詳細については Lighting ウィンドウ のドキュメントを参照)。ライトマップは常にガンマ空間に格納されます。つまり、ライトマップのテクスチャは、ガンマ色空間でもリニア色空間でも同じということです。
リニア色空間では、テクスチャサンプルは、サンプリングされたときに、ガンマ空間からリニア空間に変換されます。 ガンマ色空間では、変換は必要ありません。したがって、色空間の設定を変更するときにライトマップを再度ベイクする必要があります。これは、Unity のライティングが Auto Baking に設定されていると自動的に行われます (これがデフォルトです)。
Unity によって作成されたライトマップ EXR ファイルのデータは、リニア空間にあります。インポート時にガンマ空間に変換されます。外部ライトマッパーからライトマップを取り込むときは、テクスチャインポーター で Texture Type を Lightmap に設定します。この設定によって、インポート時に sRGB サンプリングがバイパスされます。
リニアレンダリングはすべてのプラットフォームでサポートされているわけではありません。リニアレンダリングをサポートするビルドターゲットは以下の通りです。
リニアレンダリングがデバイスでサポートされていない場合、ガンマにフォールバックすることはありません。 この場合、プレイヤーは終了します。QualitySettings.activeColorSpace を見て、スクリプトからアクティブな色空間を確認できます。
Android では、リニアレンダリングには少なくとも OpenGL ES 3.0 グラフィックス API と Android 4.3 が必要です。
iOSでは、リニアレンダリングには Metal グラフィックス API が必要です。
WebGL では、リニアレンダリングには最低 WebGL 2.0 グラフィックス API が必要です。
最小限の要件が満たされるまで、プレーヤーをビルドすることはできず、エディターによる警告が表示されます。これは、ユーザーデバイス上で正しくレンダリングされないゲームをデジタルストアに配信してしまうのを防ぐためです。
HDR (ハイダイナミックレンジ) を使用する場合、レンダリングはリニア空間で実行され浮動小数点バッファになります。このバッファは、バッファにアクセスするたびにガンマ空間への変換とガンマ空間からの変換を必要としない十分な精度を持っています。つまり、リニアモードでレンダリングする場合、使用するフレームバッファはリニア空間に色を格納します。したがって、すべてのブレンディングおよびポストプロセスのエフェクトは、暗示的にリニア空間で実行されます。最終的なバックバッファに書き込まれるときに、ガンマ補正が適用されます。
HDR を使用していないとき、sRGB 読み込みおよび sRGB 書き込みをサポートする特別なフレームバッファが使用されます (読み取り時にガンマからリニアに変換、書き込み時にリニアからガンマに変換)。このフレームバッファはブレンディングに使用される、またはテクスチャとしてバインドされている場合、値は使用前にリニア空間に変換されます。これらのバッファに書き込む場合、書き込まれる値はリニア空間からガンマ空間に変換されます。リニアモードと非 HDR モードでレンダリングする場合、すべてのポストプロセスエフェクトでソースとターゲットバッファを、sRGB 読み書き可能に作成します。そのため、ポストプロセッシングとポストプロセスブレンディングはリニア空間で行われます。
2017–06–19 修正されたページ
LWebGL のリニアレンダリングは [2017.2] に追加(https://docs.unity3d.com/2017.2/Documentation/Manual/30_search.html?q=newin20172) NewIn20172
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.