C# 颜色混合与Alpha混合

C# 颜色混合与Alpha混合,c#,.net,graphics,xna,alphablending,C#,.net,Graphics,Xna,Alphablending,在实验XNA BlendState类时,我发现它有两个状态分组: 一个用于阿尔法混合,另一个用于颜色混合(如框架所称) 每个组的可变成员称为*BlendFunction,*DestinationBlend,以及*SourceBlend (其中,*替换为Alpha或Color) 我了解如何混合两种RGBA颜色,我假设这就是颜色混合功能的用途 XNA显然支持的这种“阿尔法混合”的目的是什么?它是如何工作的? 包括alpha值在内的所有4个颜色分量不是都通过颜色混合进行修改吗?是的,所有四个分量都是

在实验XNA BlendState类时,我发现它有两个状态分组:
一个用于阿尔法混合,另一个用于颜色混合(如框架所称)

每个组的可变成员称为
*BlendFunction
*DestinationBlend
,以及*SourceBlend
(其中,
*
替换为
Alpha
Color

我了解如何混合两种RGBA颜色,我假设这就是颜色混合功能的用途


XNA显然支持的这种“阿尔法混合”的目的是什么?它是如何工作的?


包括alpha值在内的所有4个颜色分量不是都通过颜色混合进行修改吗?

是的,所有四个分量都是通过颜色混合进行混合的。Alpha混合允许您设置自定义混合,该混合将仅覆盖Alpha通道的颜色混合


因此,如果您希望所有通道使用相同的混合函数,则无需将alpha混合设置为任何不同的值。这只是一个在alpha通道上使用不同混合的自定义选项。

您有任何关于何时/如何应用此选项的示例吗?取决于您试图达到的效果。在我的脑海里,没有什么真正的想法。请记住,这些基本上都是方便的函数,可以自己编写着色器,也可以是旧硬件本身不支持着色器的功能。只要您知道底层硬件支持,使用着色器可能是一种更为现代的方式,这应该是因为着色器现在已经过时了。@Dervall实际上混合仍然是少数无法使用可编程着色器完成的事情之一。