Буфер рендеринга в объект texture2D в XNA

Есть ли в XNA способ рендеринга содержимого spriteBatch после рисования объекта текстуры перед рендерингом на экран?


person Community    schedule 25.06.2009    source источник


Ответы (3)


Вам нужно будет переключить цель рендеринга на пакет спрайтов, а затем извлечь из него текстуру. Эта статья MSDN объясняет это довольно хорошо.

http://msdn.microsoft.com/en-us/library/bb976073.aspx

person scottheckel    schedule 25.06.2009

Как уже ответил Hexxagonal, да, вы можете. Но у вас могут возникнуть проблемы, если вы используете спрайты с полупрозрачностью. Причина в том, что два перекрывающихся спрайта не будут иметь правильное альфа-значение в вашей внеэкранной цели рендеринга.

Чтобы сделать все правильно, вам нужно будет создать свой собственный SpriteBatch и начать использовать предварительно умноженную альфу.

person LaZe    schedule 26.06.2009

Вот дополнительная ссылка на отличный блог Шона Харгривза, где он рассказывает о семантике rendertarget:
http://blogs.msdn.com/shawnhar/archive/2007/02/04/xna-rendertarget-semantics..aspx

person Joel Martinez    schedule 01.07.2009