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

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


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


生成的图片如下:


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


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


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


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


解决办法如下:

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

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


完美无接缝



  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值