(DirectX9) преобразование sRGB после смешивания - PullRequest
2 голосов
/ 27 июня 2011

Я недавно наткнулся на этот пост в блоге Еще один пост о гамма-коррекции , который научил меня доступности флага D3DPMISCCAPS_POSTBLENDSRGBCONVERT .

Это должно обеспечить надлежащееПреобразование sRGB после наложения на DirectX9.

Что я не понимаю, что с этим делать?Я могу запросить у моего устройства Direct3D 9Ex устройство для этой возможности, но как мне включить его, если поддерживается?У меня есть выбор между преобразованием до и после смешивания?Если да, то как?

Спасибо за помощь!

1 Ответ

2 голосов
/ 27 июня 2011

Это просто информативно;нет способа включить или отключить.Либо аппаратное смешение в пространстве sRGB (POSTBLENDSRGBCONVERT - ЛОЖЬ), либо оно смешивается в линейном пространстве (POSTBLENDSRGBCONVERT - ИСТИНА).Эта шапка просто говорит вам, что делает оборудование;то, как вы справитесь с этим, будет зависеть от конкретного приложения.

Поскольку в sRGB должно использоваться только старое оборудование (DX10 требует линейного смешивания), вы можете отключить гамма-корректный рендеринг для этих частей.Или, если вы хотите снизить производительность, вы можете выполнить смешивание с целевым объектом, отличным от sRGB (для получения линейного смешивания), а затем скопировать его из целевого объекта в целевой объект sRGB.

...