2012-05-05 10 views
0

私はWPFまたは通常のUIKitアプリに期待するか、画像をレンダリングするSpriteBatchが必要:MonoGame - BlendState - 2D SpriteBatch

  • 部分的に透明なPNG画像あなたは
  • を期待するとして、互いの上にレンダリング私は、Color.Whiteを使用してAの値を変更するようなものを修正できるアルファを持っています。

最も近いものがBlendState.NonPremultipliedを使用していましたが、部分的に透明なPNGが重なっている奇妙な線があります。

Windows (see here)でも同様の問題が発生していましたが、XNAコンテンツプロジェクトのPremultiplied設定を変更して修正しました。 MonoGameで同様のことをするにはどうすればいいですか? (私はここにOpenGLに違いがあると思っています)

答えて

1

私たちは2つの異なる設定を使って解決しました。

WindowsとXNAで

  • 使用BlendState.NonPremultiplied
  • 変更
  • は、スプライトのアルファ値を変更するには、すべてのPNG画像のコンテンツプロジェクトに= Falseのプリマルチプライ(Premultiply)にデフォルト設定、Color.Whiteを使用して設定A値MonoGameとiOSで

  • として-あるColor.White * (float)Alpha/(float)byte.MaxValue

私のPNGファイルがない事前に乗じて、あなたがしたいとまったく使用されている使用し、スプライトのアルファ値を変更するには

  • 使用BlendState.AlphaBlend
  • ままPNG画像Photoshopからの出力が期待されます。