我在 XNA 4.0 中让 Additive blending 工作有点困难。有人告诉我,XNA 4.0 中添加剂混合的工作方式与以前在 3.1 中的工作方式不同——这可能是导致我遇到这些困难的原因。
我正在尝试获得相加效果,如果我有红色平面、绿色平面和蓝色平面,彼此重叠并面向用户 - 那么屏幕上显示的净颜色将为白色(红色+绿色+蓝色 = 白色)。但是,这样做会导致我得到不同的结果。见下图:
https://dl.dropbox.com/u/824515/Untitled.png
我正在使用这种技术来绘制我的飞机:
GraphicsDevice.BlendState = BlendState.Additive;
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Apply();
GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleList, circle1, 0, points, VertexPositionColor.VertexDeclaration);
GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleList, circle2, 0, points, VertexPositionColor.VertexDeclaration);
GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleList, circle3, 0, points, VertexPositionColor.VertexDeclaration);
}
编辑:这是一个更清晰的示例,说明当前添加剂混合如何为我工作:https ://dl.dropbox.com/u/824515/Untitled2.png
它似乎很好地添加了颜色,但是当在中心完全组合时,颜色似乎消失了。