无缝映射算法原理

亲爱的,无缝映射是一种使用一小块图案,并将其拼接成具有重复纹理的大图片的技术。砖墙是最难处理的情况,它高度依赖于材料的质量。

在拍摄砖墙为素材的照片时,一定要尽量减少透视效果,以方便后续的纹理处理。

我用Jeremy Englemans Public Textures下载的砖墙照片作为演示。

第一步是在照片中选择一个正方形区域进行剪切。注意沿砖缝选框,上下砖的排列要错开,这样贴砖时质感会更自然。

剪切后,选择“滤镜>其他>移动”工具,为“未定义区域”选择“折叠”,并将每个位置水平和垂直移动一半图像距离。如图,红线标注的墙缝要和蓝线标注的位置对齐。有两种方法可以做到这一点。一个是把画面加宽,让红蓝相连,一个是把中间的接头缩短。从最终效果来看,我选择加宽。但这样有个缺点,就是会损失画面的分辨率。不过没关系。一般游戏用的地图大小是256像素,我切的大小是400多像素。画面拉伸造成的分辨率损失不会对最终效果产生任何影响。

检查结束后,在位移中输入相反的值,将图像恢复到原始状态。

观察质感还会发现另一个问题——照片的透视变形。从红线可以看出,墙缝是斜的,左边比右边窄。先把这个问题解决了再去对接墙缝。

使用' transform >;移动>视角'来纠正上述问题。

按住shift键,分别向左上方和左下方拖动两个对应位置的控制点。移动一点距离,图片的透视失真效果就会得到修正。

按ctrl+a选中整个画布,然后分别按alt+i和alt+p剪切选区,删除左半部分刚才已经被拉伸出来的部分,防止在后续的位移操作中再次出现。

现在使用Edit > Transform > zoom工具将图像沿右方向拉宽,根据一开始观察到的位移图,可以判断距离大概多了半块砖。注意不要按shift键,它会变成“缩放”。

再次按ctrl+a选中所有画布,进行剪切,去掉图片多余的部分。

重复最初的步骤,移动屏幕,墙缝的布线已经对齐。使用“仿制图章”工具擦除颜色接缝。

使用“仿制邮票”需要更多的耐心和技巧。定义+位置为模仿点,然后涂抹在O形位置。完成后,如下图所示。