DirectX ツール キットローダーはDXGI_FORMAT_*_SRGB
、いくつかの理由で WIC イメージをロードするときに使用します。
PNG ファイルの WIC メタデータに sRGB チャンクが含まれている ( /sRGB/RenderingIntent
true である)
JPG の WIC メタデータは sRGB (/app1/ifd/exif/{ushort=40961}
は 1)を示します
TIFF の WIC メタデータは sRGB を示します ( /ifd/exif/{ushort=40961}
is 1)
'true' をforceSRGBパラメーターとして Ex バージョンの関数に渡す場合
したがって、画像は実際にはsRGB色空間にある可能性があります。したがって、 は、DXGI_FORMAT_*_SRGB
そのテクスチャからの読み取りをガンマ解除して線形色空間にする必要があることを示します。ここでガンマ補正レンダリングを使用していないと思いますか?
ガンマ補正レンダリングは、DXGI_FORMAT_*_SRGB
HDR (10:10:10:2、16:16:16:16) バックバッファ形式を使用して実現されます。また、 にはリニア カラーを使用する必要がありますClear
。詳細については、 DeviceResources、ガンマ補正レンダリング、線形であることの重要性、および線形空間照明 (すなわちガンマ)を参照してください。
テクスチャ ファイルを制御する場合の迅速かつ簡単な回避策は、DirectXTexライブラリのtexconvを使用してソース イメージを. またはのようなさまざまなスイッチを使用して、目的の SRGB 動作を強制できます。DDS
-srgbi
-srgbo
DirectX Tool Kitの今後のリリースで、WICTextureLoader を使用するときに sRGB メタデータを無視できるようにするオプションも追加していることに注意してください。DXGI_FORMAT_*_SRGB
リニア レンダリングが最適ですが、使用されている形式を回避するオプションがあると便利な場合もあります。
更新: DirectX ツール キットの WICTextureLoader の最新バージョンには、ローダーがシナリオに適した選択を決定するのに役立つ次のオプション フラグがあります。
WIC_LOADER_FORCE_SRGB
フォーマットに存在する場合は、常に*_SRGB
フォーマットを返します。
WIC_LOADER_IGNORE_SRGB
上記の WIC 色空間メタデータが存在する場合、ローダーはそれを無視します。
通常、WIC メタデータがない場合、リーダーはそれが線形である (つまり、sRGB ではない) と見なします。提供する場合、WIC_LOADER_SRGB_DEFAULT
メタデータがないことは、代わりにある必要があることを意味すると想定し*_SRGB
ます。