无法让模板工作
Posted
技术标签:
【中文标题】无法让模板工作【英文标题】:Not able to get stencil to work 【发布时间】:2010-09-17 02:08:00 【问题描述】:试图让 Stencil 在我的应用中工作。我使用 Sprites 将内容渲染到设备上。内容可以是电影、图片或文字。
我可以使用这些 Sprite 设置模板缓冲区,以便在以后的传递中用于模板化正在渲染的其他 Sprite 吗?
我什至无法通过设置 StencilFunction = Compare.Never 来模版出任何 Sprite!我可能做错了什么?
我已经花了几乎一整天的时间查看与 MDX 中的 Stencils 相关的帖子,但就是无法正常工作。
更多的搜索让我找到了一种技术,其中我们绘制了要添加到模板缓冲区的形状的轮廓。在我的情况下真的需要这样做吗?我只想使用精灵,并将它们添加到模板缓冲区以模板化其他精灵。
编辑:好的..所以我想出了如何完成它。参考这篇帖子-http://www.gamedev.net/community/forums/viewreply.asp?ID=1999276
但是现在精灵忽略了 alpha 值并且渲染精灵不透明。类似于我们将 alpha blending 设置为 false 时得到的效果。有什么想法吗?
【问题讨论】:
【参考方案1】:所以,我终于想通了。这都与 Sprites 及其 Begin() 方法有关。
Sprite.Begin() 将修改 RenderState 并禁用模板。我们可以通过设置 SpriteFlags.DoNotModifyRenderState 标志来防止它,但是在绘制精灵时不支持 alpha 混合。
我现在所做的只是调用 Sprite.Begin() 而不设置 SpriteFlags.DoNotModifyRenderState 标志。在调用 Sprite.Draw() 之前,在设备上启用模板。
【讨论】:
以上是关于无法让模板工作的主要内容,如果未能解决你的问题,请参考以下文章
EF 代码生成:如何让系统枚举作为 EdmEnumType 工作?