Unity地图分割组合时出现接缝的处理办法

来源:互联网 发布:java项目绑定域名 编辑:程序博客网 时间:2024/05/01 23:01

最近公司需要,需要做一个能动态加载格子的地图,如下图所示:


为此我用c#做了个工具来切割图片


生成的图片如下:


分割后的图块导入到unity中,放入quad上的材质中,然后再把这些quad按照图片原来的相对位置进行拼接,此时会出现缝隙,如下所示:


如果此时放大镜头,会发现,原来每个quad的边缘都出现了特殊颜色的边。


然而观察切割出来的图片却是可以正确拼接的,也没有多余的边缘。这是为什么呢?


这是因为c#工具分割的时候使用了双三次插值图像算法,此算法是采集周围n*n个方向的像素作为参考点,对像素进行插值运算,而工具先把图片进行了分割,这个时候每个图块在放入材质后,边缘会向周围采样,但此时已经丢失了相邻图块的颜色信息,导致计算后的颜色值出现偏差,所以才会出现多余的边缘。


解决办法如下:

比如要切割一张10*10的图块,这个时候需要像周围多采集n个像素的图片,n=具体插值算法的采样宽度,比如双三次插值为4。这个时候生成的图片就尺寸就变成了18*18

然后再unity中对uv进行偏移,其中tiling=10/18,offset=n/18。此时再来观察


完美无接缝



0 0