1

私は最近、sRGB変換とそれに伴ういくつかの利点について読んでいます。GPU Gems 3の非常に便利な記事を読みました。これは、いくつかの自動メソッドと手動シェーダーで記述されたメソッドをカバーする無料で利用できるようになりました。記事は次のとおりです。

https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch24.html

自動変換の代わりに手動変換を利用することが有益なのはどのような場合ですか?glTexImage2Dに渡されたGL_SRGB_EXTを使用し、GL_EXT_framebuffer_sRGBを使用すると、手動で変換する必要がないように思われますか?

4

1 に答える 1

1

ええと、1つの理由はすでにその記事で提示されています。(間違った)ガンマ値を2.0と仮定すると、sqrtを使用して計算できます。これは、画面の背後にある組み込みのメソッドでさえ、おそらくのようなものよりも高速である可能性がありますpow(frag.rgb,1.0/2.2)。もちろん、sRGBへのレンダリングがハードウェアに実装されている場合、これは何も最適化しません。

もう1つの理由は、非線形色空間で自分で計算を実行したい場合です。たとえば、画像処理タスクのためにY'CbCrのようなものに変換したい場合。

最後に、クエリを介して出力デバイスのガンマの非常に正確な値を取得できる場合があります。その後、手動変換を実行すると、(おそらくほとんど気付かない)より良い品質が得られる場合があります。

于 2012-08-08T17:15:04.830 に答える