Есть ли в XNA способ рендеринга содержимого spriteBatch после рисования объекта текстуры перед рендерингом на экран?
Буфер рендеринга в объект texture2D в XNA
Ответы (3)
Вам нужно будет переключить цель рендеринга на пакет спрайтов, а затем извлечь из него текстуру. Эта статья MSDN объясняет это довольно хорошо.
http://msdn.microsoft.com/en-us/library/bb976073.aspx
Как уже ответил Hexxagonal, да, вы можете. Но у вас могут возникнуть проблемы, если вы используете спрайты с полупрозрачностью. Причина в том, что два перекрывающихся спрайта не будут иметь правильное альфа-значение в вашей внеэкранной цели рендеринга.
Чтобы сделать все правильно, вам нужно будет создать свой собственный SpriteBatch и начать использовать предварительно умноженную альфу.
Вот дополнительная ссылка на отличный блог Шона Харгривза, где он рассказывает о семантике rendertarget:
http://blogs.msdn.com/shawnhar/archive/2007/02/04/xna-rendertarget-semantics..aspx