Не удается заставить трафарет работать - PullRequest
0 голосов
/ 17 сентября 2010

Пытался заставить Трафарет работать в моем приложении.Я использую спрайты для отображения контента на устройстве.Содержимое может быть фильмами, изображениями или текстом.

Могу ли я установить буфер трафарета, используя эти спрайты, которые можно использовать в последующих проходах для трафарета при воспроизведении других спрайтов?

Я дажене может трафаретить ни одного из спрайтов, установив StencilFunction = Compare.Never!Что-то не так, что я могу делать?

Я уже почти целый день проверял сообщения, связанные с трафаретами в MDX, но просто не мог заставить его работать.

Чуть большепоиск привел меня к технике, в которой мы рисуем силуэт фигур, которые нужно добавить в буфер трафарета.Это действительно требуется в моем случае?Я просто хочу использовать спрайты и добавить их в буфер трафарета для трафарета других спрайтов.

РЕДАКТИРОВАТЬ: ОК .. Итак, я разобрался, как это сделать.Ссылка на этот пост - http://www.gamedev.net/community/forums/viewreply.asp?ID=1999276

Но теперь спрайт игнорирует альфа-значения и делает спрайты непрозрачными.Аналогично тому эффекту, который мы получаем, когда для альфа-смешивания установлено значение false.Есть идеи?

1 Ответ

0 голосов
/ 17 сентября 2010

Итак, я наконец понял это.Все это связано со Sprites и его методом Begin ().

Sprite.Begin () изменит RenderState и отключит трафарет.Мы можем предотвратить это, установив флаг SpriteFlags.DoNotModifyRenderState, но тогда при рисовании спрайтов альфа-смешение не поддерживается.

То, что я сейчас сделал, просто вызвал Sprite.Begin () без установленного флага SpriteFlags.DoNotModifyRenderState.А перед вызовом Sprite.Draw () включил трафарет на устройстве.

...