web-dev-qa-db-ja.com

Texture2Dを50%透明にする方法は? XNA

SpriteBatchを使用して画面にTexture2Dを描画していますが、画像の不透明度をどのように操作できるのでしょうか。誰かがこれを達成するための最良の方法を知っていますか?

21
Tom

アルファが事前に乗算されたXNA4.0を使用していると仮定します。 spritebatch.drawで、色にフロートを掛け、0.5fで透明度を50%にし、通常どおりに描画します。事前に乗算されたアルファを使用していない場合は、パフォーマンス上の理由と、慣れた後のより直感的な理由から使用することをお勧めします。

例:

_spriteBatch.Draw(texture, location, Color.White * 0.5f);

編集:また、ブレンド状態をBlendState.AlphaBlend、またはアルファをサポートし、NonPremultipliedではない別のブレンド状態に設定していることを確認してください。

例:

_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
37
ClassicThunder

色をnew Color(RGBA);として使用するだけです。ここで:

  • Rは赤です
  • Gは緑です
  • Bは青です
  • Aはアルファです

例えば:

new Color(100, 100, 100, 100);
6
mistaguy