如何正确进行纹理边缘填充以进行平铺?

时间:2017-04-11 13:41:28

标签: xna textures filtering padding xna-4.0

我的目标是绘制一组纹理(128x128像素)作为(无间隙)图块,而不会在XNA中过滤伪像。

目前,我在xy中使用例如25 x 15完全不透明的图块(alpha总是255)来在游戏中创建背景图像,或者使用类似数量的半透明图块来创建游戏“terrain”(前景) )。在这两种情况下,使用浮点位置缩放和绘制切片。众所周知,要避免过滤瑕疵(如小但可见的间隙,或瓷砖边框上不需要的颜色重叠),必须做“边缘填充”,这被描述为添加额外的边缘一个像素的宽度,并使用相邻像素的颜色作为添加的像素。有关此问题的讨论可以在here中找到。我们的游戏中这个问题的示例图片可以在下面找到。

但是,我真的不明白如何做到这一点 - 技术上,特别是在XNA中。

(1)当添加一个像素宽度的条纹时,我的瓷砖将是129 x 129,重叠的条纹会产生非常明显的自己的伪影。

(2)或者,一次可以添加填充像素,但不能绘制完整的129x129像素纹理,而只能绘制其“中心”(没有条纹),例如通过选择此纹理的源矩形为(1,1,128,128)。但是,填充像素不是简单地被忽略,还是过滤硬件真的使用这些信息?

所以基本上,我想知道这是如何正确完成的? :-)

游戏过滤问题的示例图片:棕色前景图块中不需要的垂直间隙。 Example image from game

0 个答案:

没有答案