剪辑或遮罩 2D 纹理
Posted
技术标签:
【中文标题】剪辑或遮罩 2D 纹理【英文标题】:Clip or Mask a 2D texture 【发布时间】:2010-11-08 00:58:15 【问题描述】:嘿,我想知道是否有人知道为 gui 或类似系统的菜单使用 2D 纹理进行剪辑。
这是我想要生成的示例输出
拥有一个大小为 500 x 500 的游戏屏幕。 后面有一个大小为 1000 x 1000 的屏幕。
当我在 0, 0 处绘制纹理时,父屏幕为 500 x 500,我希望不显示该组件
但如果我在 500、450 处绘制组件并且纹理宽度和高度为 100,我希望只能看到整个宽度,但只能看到组件高度的一半。
我想知道是否有一种简单的方法可以做到这一点?
编辑:
基本上我想的是 Photoshop 中的蒙版效果。
这是一张图片Clipping picture
黑色轮廓是另一半纹理的绘制位置。
【问题讨论】:
【参考方案1】:您可以剪切纹理。当生成的形状是多边形时, 只需修改顶点和纹理坐标即可。
当剪裁的纹理是复杂的形状时,事情就会变得更加棘手。
您也可以通过按正确顺序绘制所有内容来进行剪辑。 它可能效率不高,但很容易。
附言一张照片会有所帮助。
【讨论】:
【参考方案2】:解决这个问题的另一种方法:
基本上你有两个场景要绘制:游戏屏幕(picture 中的蓝色部分)和背景屏幕(picture 中的红色部分)。
我认为您可以在两个不同的位图对象(或图形库中的任何类似对象)中绘制游戏屏幕和背景屏幕。
下一步是将整个背景屏幕位图剪辑到输出位图对象,然后您可以只剪辑游戏屏幕的中心部分(输出屏幕中心的 500 x 500 正方形)。
P.S:如果您可以添加有关您正在使用的图形库的更多详细信息,也许会更好。
【讨论】:
好吧,红色应该是它后面的另一个屏幕。以上是关于剪辑或遮罩 2D 纹理的主要内容,如果未能解决你的问题,请参考以下文章