2010-07-16 184 views
0

我画了两个相互交叉的半透明圆。我发现交叉区域的颜色比其他区域更深。有没有办法让整个形状变成半透明的颜色(颜色不应该比其他区域更深)?相交区域颜色

有关详细信息:http://yfrog.com/0sneedtosolvep

是可以给我任何的示例代码来解决这个问题?

现在在拉伸方法中,我使用以下代码:

spriteBatch.Begin(SpriteBlendMode.AlphaBlend); (纹理圆圈1,spritePositionCircle1,新颜色(255,255,255,(int)(150)));以及其中, spriteBatch.Draw(textureCircle2,spritePositionCircle2,new Color(255,255,255,(int)(150))); spriteBatch.End();

base.Draw(gameTime);

+0

好吧,是啊,如果你重叠两种颜色,你会得到一个更深的颜色(使用[减法着色](http://en.wikipedia.org/wiki/Subtractive_color))。你的意思是它的透明度较低? – 2010-07-16 18:44:44

+0

是啊...较少透明度......但是,我希望整个形状具有相同的透明度。 – Khasan 2010-07-16 19:23:21

回答

0

我不是一个XNA的家伙,所以你可能需要做一些翻译。

你可能会把它们渲染成黑色单色上的白色,然后拍摄所得到的图像,使白色成为你想要的透明色,而黑色是完全透明的?

我不确定你是怎么编码的,但这是我研究的方法。

0

检查您认为透明度较低的像素的alpha值(您正在将它们绘制到它们自己的表面上,而不是直接指向后缓冲区,对不对?)。他们可能只是似乎不透明,因为他们的组合颜色较暗。

如果它们确实不太透明,请将表面上每个像素的透明度更改为相同的值(恐怕我不知道如何在XNA中执行此操作)。

如果他们只似乎不太透明,试着画你的精灵在表面上完全不透明(使一个将完全覆盖其他),然后再改变表面的透明性为一体。