Does alpha blending shall be gamma corrected?
#1 Members - Reputation: 216
Posted 12 September 2012 - 12:48 AM
#2 Moderators - Reputation: 14300
Posted 12 September 2012 - 02:02 AM
IIRC, D3D9 does all it's blending without taking sRGB into account (which means it's incorrectly blending in gamma-space), but D3D10 does it correctly (i.e. decodes the texture to linear, blends, re-encodes to sRGB).
#3 Moderators - Reputation: 4115
Posted 12 September 2012 - 02:49 AM
IIRC, D3D9 does all it's blending without taking sRGB into account (which means it's incorrectly blending in gamma-space), but D3D10 does it correctly (i.e. decodes the texture to linear, blends, re-encodes to sRGB).
Having spent a lot of time this year looking into sRGB issuesI can confirm this
#4 Members - Reputation: 216
Posted 12 September 2012 - 02:51 AM
Which API are you using?
IIRC, D3D9 does all it's blending without taking sRGB into account (which means it's incorrectly blending in gamma-space), but D3D10 does it correctly (i.e. decodes the texture to linear, blends, re-encodes to sRGB).
Thank you for replying,I`m using D3D9. Does this mean that if I don`t want to modify the textures, I can`t do gamma correction on the transparent objects?
#5 Moderators - Reputation: 5643
Posted 12 September 2012 - 10:30 PM
#6 Members - Reputation: 216
Posted 13 September 2012 - 01:53 AM
That's not quite true for D3D9, it actually depends on the hardware. DX10+ hardware will do the blending in linear space, while older DX9 hardware will do the blending in sRGB space. There's even a cap bit for it: D3DPMISCCAPS_POSTBLENDSRGBCONVERT. Unfortunately you can only check that cap if you're using an Ex device on Vista or Win7, and there's no way to turn it off. So if you use frame buffer gamma correction, it's possible that your game will look different on DX9 and DX10 hardware. The only safe thing to do is to manually perform sRGB conversion at the end of your pixel shader, in which case you get consistent behavior on both platforms.
Thanks a lot!
#7 Members - Reputation: 4750
Posted 13 September 2012 - 05:11 AM
My game: Gnoblins
Developer journal about Gnoblins
Small goodies: Simple alpha transparency in deferred shader






