0

SpriteBatchWPF または通常の UIKit アプリで期待される方法で画像をレンダリングする必要があります。

  • ご想像のとおり、部分的に透明な PNG は互いの上にレンダリングされます。
  • 私は変更できるアルファを持っています。できれば、値を使用Color.Whiteして変更するようなものです。A

最も近いものは を使用していますがBlendState.NonPremultiplied、部分的に透明な PNG が互いに重なる奇妙な線が表示されます。

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

4

1 に答える 1

1

2 つの異なるセットアップを使用して解決しました。

Windows および XNA の場合:

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

モノゲームおよび iOS の場合:

  • 使用するBlendState.AlphaBlend
  • PNG をそのままにしておく
  • スプライトのアルファ値を変更するには、Color.White * (float)Alpha / (float)byte.MaxValue

私の PNG は事前に乗算されておらず、Photoshop から出力されたものとまったく同じように使用されます。

于 2012-05-09T17:32:37.310 に答える