0

互いに交差する2つの半透明の円を描きました。交差領域は他の領域よりも色が濃いことがわかりました。形状全体を 1 つの半透明の色にする方法はありますか (ある領域の色を他の領域よりも濃くしないでください)。

問題を解決するためのサンプル コードを送信することはできますか?

今 draw メソッドで、私は次のコードを使用しています:

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(textureCircle1, spritePositionCircle1, new Color(255, 255, 255, (int)(150)));
spriteBatch.Draw(textureCircle2, spritePositionCircle2, new Color(255, 255, 255, (int)(150)));
spriteBatch.End();

base.Draw(gameTime);
4

2 に答える 2

0

透明度が低いと思われるピクセルのアルファ値を確認します(バックバッファーに直接描画するのではなく、独自の表面に描画しますよね?)。組み合わせた色が暗いため、透明度が低く見える場合があります。

本当に透明度が低い場合は、サーフェス上のすべてのピクセルの透明度を同じ値に変更します(XNAでこれを行う方法がわかりません)。

透明度が低いように見える場合は、スプライトを完全に不透明にサーフェスに描画してみて(一方が他方を完全に上書きするように)、サーフェス全体の透明度をもう一度変更します。

于 2010-07-16T21:56:49.053 に答える
0

私は XNA の専門家ではないので、翻訳を行う必要があるかもしれません。

おそらく、それらを画面外に黒のモノクロで白としてレンダリングし、結果の画像を取得して、白を必要な透明色にし、黒を完全に透明にすることはできますか?

それをどのようにコーディングするかはわかりませんが、それが私が研究するアプローチです。

于 2010-07-16T19:00:56.413 に答える