Source Alpha and destination Alpha?

It's nothing really to do with "methods" per se; these just refer to the alpha channel values associated with the "new" colour (i.e. source) for the pixel which is about to be combined with the "current" colour which is in the framebuffer.

The destination simply refers to the framebuffer's colour (+alpha) value. How you use these values when blending pixels is entirely up to you. (Mind you, some earlier consumer hardware didn't store a destination alpha value).
 
I was wondering what will happen since new GPU's will use 10bit for the RGB, wich means 2bits are left for alpha. Is RGBA not important for modern games? If i quote Anandtech:
Because of the final programmable pixel stage the P10 can support much higher precision color depths such as 64-bit color. A feature you'll end up seeing more of going forward is the support for gamma-correct 10-bit RGB outputs which is built into the P10. The VPU also has 10-bit DACs to take advantage of the custom 10:10:10:2 (RGBA) mode.
 
Although destination alpha does have it's uses, It certainly isn't heavilly used.
You shouldn't really think of it as a color channel, it's more just a data storage slot that can be used on subsequent framebuffer writes.

The issue with a lot of current hardware is that they force you to use the same blend mode on the destination alpha as is used on the colors, this IMO severely limits its usefulness.
 
I think the aux data buffer in OpenGL 2.0 can eliminate almost all uses for destination alpha.
 
ERP said:
Although destination alpha does have it's uses, It certainly isn't heavilly used.
You shouldn't really think of it as a color channel, it's more just a data storage slot that can be used on subsequent framebuffer writes.

The issue with a lot of current hardware is that they force you to use the same blend mode on the destination alpha as is used on the colors, this IMO severely limits its usefulness.

In OpenGL you can use the GL_EXT_blend_func_separate extension to get around that. It's not widely supported though, Radeon 8500 is the only card I know that supports it. Maybe some pro cards does too.
 
In OpenGL you can use the GL_EXT_blend_func_separate extension to get around that. It's not widely supported though, Radeon 8500 is the only card I know that supports it. Maybe some pro cards does too.

Unfortunately it's a hardware limitation on most cards, so they are unlikely to add support for the GL extension.

I think that one of the things I'd like to see going forwards though is flexible target formats, i.e. targets other than 3 or 4 vectors. Why should I be limited to 1 Zvalue or 1 Stencil value per pixel or 4 color components?
 
Back
Top