3

我一直在寻找答案大约 2 个小时,但我还没有找到我想要的答案。我的问题是,是否有可能以及如何绘制圆形纹理,以便在圆圈之外,纹理将是透明的,甚至可能吗?

提前致谢!到目前为止,这个网站提供了很大的帮助!

4

3 回答 3

5

最简单的方法是打开 Photoshop 之类的程序并制作带有 Alpha 通道的图像。这意味着:从一个完全透明的图像开始并在其上画一个圆圈。然后将其另存为.png

然后,您可以将其加载到游戏中并使用SpriteBatch. 它(或更好的图形卡)知道如何处理 alphachannel 并将使除圆圈之外的所有内容完全不可见。

这样您就不必在运行时操作任何像素图,并且您不限于像圆形这样的简单形状。

于 2013-08-29T13:37:51.277 回答
2

如果您希望在圆圈中看到的纹理部分在执行过程中不会改变,最简单的方法是打开 Photoshop,制作您想要的,将其导出为图像,然后将其加载TextureSprite您的代码。

但这也可以在运行时通过 OpenGL 使用Stencil测试来完成。如果圆圈中显示的部分在执行期间必须可更改,这是唯一的解决方案。

于 2013-09-06T13:39:38.443 回答
1

如果您对图像使用的不是 .png 格式, pixmap使用此链接

如果您使用的是 png 图像,请将其分开,然后只需绘制圆。圈外将保持透明。

于 2013-08-29T13:06:55.850 回答