无缝贴图就是采用一小块图案,平铺成包含重复纹理的大幅画面的技术。砖墙类是其中最难处理的案例,并对素材的质量依赖性较高。
当为砖墙拍摄照片用于素材时,一定要尽量减小透视效果,以便于后续的纹理处理。
我使用 Jeremy Englemans Public Textures 下载的砖墙照片来做示范。

第一步是在照片中选择一块正方形区域进行裁切。注意选框要沿着砖缝走,而且上下两条砖的排列要错开,这样平铺时纹理的衔接才会更自然。

裁切好后,选择‘滤镜>其它>位移’工具,‘未定义区域’选‘折回’,水平和垂直方向各位移一半的图像距离。如图所示,红线标注的墙缝应该对齐到蓝线标注的位置。有两种方法可以做到。一种是加宽画面,让红色和蓝色对接上,另一种是把中间的结合处缩短一点。从最后的效果来看,我选择加宽。但这样做有一个缺点,就是画面的分辨率会有损失。不过没关系,一般游戏用的贴图尺寸为256像素,我裁切的大小有400多像素,由画面拉伸造成的分辨率损失不会对最终效果有任何影响。

检查完毕,在位移中输入相反的数值,让图像恢复原样。
观察纹理还会发现一个问题——照片的透视变形。从红线可以看出墙缝是斜的,左边比右边窄。在对接墙缝之前,先把这个问题处理掉。

使用‘变换>移动>透视’来修正上面的问题。

按住 shift 键分别朝左上和左下方向拖动两个相应位置的控制点。稍微移动一点距离,图片的透视变形效果就被纠正了。

按 ctrl+a 选择整个画布,然后分别按下 alt+i 和 alt+p 裁切选区,这样就把刚才拉伸出来的左半边多出画面的部分删除掉了,避免后续的位移操作中再次出现。
现在使用编辑>变换>缩放工具将图像沿右侧方向拉宽,根据最开始观察的位移图,可以判断大概多出半个砖头的距离。注意不要按着 shift 键,那样就变成‘按比例缩放’了。

重新按ctrl+a全选画布并裁切,去掉多出画面的部分。
重复最开始的步骤,位移画面,墙缝的各处接线已经对齐了,使用‘仿制图章’工具抹除颜色接缝。

使用‘仿制图章’需要更多的耐心和技巧,定义+号位置为仿制点,然后在o形位置涂抹。完成后如下图所示。

