无法让模板工作

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 工作?

无法让 Stencil Buffer 在 iOS 4+ 中工作(5.0 工作正常)。 [OpenGL ES 2.0]

如何让内置标签“url”工作?

Angular:类型检查模板无法正常工作

我的 django 模板导航栏无法正常工作

模板缓冲区似乎无法正常工作