正在尝试让模具在我的应用程序中工作。我使用Sprites在设备上呈现内容。内容可以是电影、图片或文本。
我可以使用这些精灵来设置模板缓冲区吗?这些精灵可以在以后的过程中用于模版渲染的其他精灵?
我甚至不能通过设置StencilFunction = Compare.Never来屏蔽任何Sprite!我可能做错什么了吗?
我已经花了几乎一整天的时间查看MDX中与模板相关的帖子,但就是无法让它正常工作。
更多的搜索让我找到了一种技术,我们绘制要添加到模板缓冲区的形状的轮廓。在我的情况下,这真的是必需的吗?我只想使用精灵,并将它们添加到模具缓冲区,以模版其他精灵。
编辑: OK..所以我想出了怎么做的办法。参考了这篇文章- http://www.gamedev.net/community/forums/viewreply.asp?ID=1999276
但是现在精灵忽略alpha值并渲染精灵不透明。类似于我们在alpha混合设置为false时得到的效果。有什么想法吗?
发布于 2010-09-17 20:26:16
所以,我终于想通了。这一切都与Sprites及其Begin()方法有关。
Sprite.Begin()将修改RenderState并禁用模板。我们可以通过设置SpriteFlags.DoNotModifyRenderState标志来防止它,但是在绘制精灵时alpha混合是不受支持的。
我现在所做的只是在没有设置SpriteFlags.DoNotModifyRenderState标志的情况下调用Sprite.Begin()。并且在调用Sprite.Draw()之前,在设备上启用了模具。
https://stackoverflow.com/questions/3732227
复制相似问题