剪辑或遮罩2D纹理

时间:2009-07-03 22:54:15

标签: c# 2d textures mask clipping

嘿,我想知道是否有人知道使用2D纹理剪辑gui或类似系统的菜单。

下面是我想要生成的示例输出

拥有尺寸为500 x 500的游戏画面。 背后有一个屏幕,大小为1000 x 1000。

当我在0,0时绘制纹理,父屏幕为500 x 500时,我希望组件不显示

但如果我在500,450处绘制组件并且纹理宽度和高度为100,我希望只能看到整个宽度,但只能看到组件高度的一半。

我想知道这样做有一个简单的方法吗?

编辑:

基本上我在想像Photoshop中的蒙版效果。

这是一张图片Clipping picture

黑色轮廓是绘制另一半纹理的位置。

2 个答案:

答案 0 :(得分:0)

您可以剪辑纹理。当得到的形状是多边形时,
你可以通过简单地修改顶点和纹理坐标来做到这一点。

当裁剪的纹理是一个复杂的形状时,事情变得更加棘手。

您也可以通过以正确的顺序绘制所有内容进行剪辑 它可能效率不高,但很容易。

P.S。一张照片在这里会有所帮助。

答案 1 :(得分:0)

解决此问题的另一种方法:

基本上你有两个要绘制的场景:游戏画面(picture中的蓝色部分)和背景画面(picture的红色部分)。

我认为您可以在两个不同的位图对象(或者图形库中的任何类似对象)中绘制游戏画面和背景画面。

下一步是将整个背景屏幕位图剪辑到输出位图对象,然后您可以只剪辑游戏屏幕中央部分(输出屏幕中心的500 x 500平方)。


P.S:如果您可以添加有关正在使用的图形库的更多详细信息,那可能会更好。