Подтвердить что ты не робот

Как сделать Texture2D прозрачным на 50%? XNA

Я использую SpriteBatch для рисования Texture2D на экране и задавался вопросом, как я могу манипулировать прозрачностью изображений? Кто-нибудь знает лучший способ достижения этого?

4b9b3361

Ответ 1

Предполагая, что вы используете XNA 4.0 с предварительно умноженной альфа. В вашем spritebatch.draw умножьте цвет на float, 0.5f на 50% прозрачность и нарисуйте, как обычно. Если вы не используете премультиплексную альфу, я предлагаю вам по соображениям производительности и более интуитивно понятный после того, как вы привыкнете к ней.

Пример:

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

Изменить: Также убедитесь, что вы установили состояние blend в BlendState.AlphaBlend или другое состояние смешивания, которое поддерживает альфу и не является NonPremultiplied.

Пример:

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

Ответ 2

Просто используйте цвет как new Color(RGBA); где:

  • R - красный
  • G - зеленый
  • B - синий.
  • A - это Alpha

Например:

new Color(100, 100, 100, 100);