如何将圆形蒙版应用于XNA中的纹理?

时间:2012-05-15 18:19:21

标签: c#-4.0 windows-phone-7.1 textures xna-4.0

我使用纯XNA 4.0解决方案开始使用Windows Phone 7.1游戏。游戏本质上涉及在迷宫中移动,我想在右上角有一个圆圈,显示玩家在迷宫中的位置的缩小视图。

我编写了生成随机迷宫的代码,因此我可以渲染所有墙,将此渲染保存到内存中的纹理,并将其缩放到需要的大小。但这将是一个矩形..我需要它显示在一个圆圈内。

关于最佳方法的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用模板缓冲区......

首先用面具填充模板缓冲区

然后在模板缓冲区中使用正确的函数编写映射。

它可能与此类似:

 You fill stencil buffer with a black filled circle rounded by white

之后,使用以下操作绘制地图:

 StencilFunction = CompareFunction.GreaterEqual
 StencilPass = StencilOperation.Replace

您可以在此处获取更多信息:

https://web.archive.org/web/20120507161332/http://www.crappycoding.com/2010/08/texture-modification-using-render-targets-with-some-stencil-buffer-action/