2011-06-27 53 views
2

我最近遇到這篇博文Yet another post about gamma correction,它告訴我D3DPMISCCAPS_POSTBLENDSRGBCONVERT能力標誌的可用性。(DirectX9)混合後的sRGB轉換

這應該允許在DirectX9上混合後進行適當的sRGB轉換。

我不明白的是如何處理它?我可以查詢我的設備Direct3D 9Ex設備是否具備此功能,但如果支持,如何啓用它?我可以在混合前和混合之間進行選擇嗎?如果是,如何?

感謝您的幫助!

回答

2

它只是提供信息;沒有辦法啓用或禁用。要麼硬件在sRGB空間中混合(POSTBLENDSRGBCONVERT爲FALSE),要麼在線性空間中混合(POSTBLENDSRGBCONVERT爲TRUE)。這個上限只是​​告訴你硬件的功能;你如何處理這將是特定於應用程序的。

由於只有較舊的硬件應該在sRGB中混合(DX10需要線性混合),因此您可以選擇在這些部件上禁用伽馬正確渲染。或者,如果您願意承受性能,可以將它混合到非sRGB目標(以獲得線性混合),然後從該目標複製到sRGB目標。

+0

非常感謝你這個非常明確的答案;-) – Ozirus