XNA 4.0 で Additive ブレンドを機能させるのに少し苦労しています。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
うまく色が入っているように見えますが、中央で完全に組み合わせると色がずれて見えます。