2010-07-16 138 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中執行此操作)。

如果他們只似乎不太透明,試着畫你的精靈在表面上完全不透明(使一個將完全覆蓋其他),然後再改變表面的透明性爲一體。