unity地形高度图进行外部处理问题

来源:互联网 发布:哭不出来 知乎 编辑:程序博客网 时间:2024/06/08 15:47


开这个话题,因为最近在处理大地形问题

有的时候需要一个很大的地形,而在unity中大的地形消耗很大

所以我们需要优化地形,对于长条的或者不规则,地图可以使用多块地形进行拼接

这样加载的时候就能更加节约资源


0自定义笔刷

可以在工程目录里建立一个GIzmos目录,里面放上png图片(必须是正方形宽度2的倍数)命名从如下brush_0,brush_1...放好后重启unity即可看到自己笔刷

通过自定义笔刷可以多建立几种常用笔刷,比如falloff笔刷用来雕地形沟壑,或者斜坡笔刷处理下unity比较难做的斜坡效果


可以参考之前一篇worldmachine中处理问题

http://blog.csdn.net/shenmifangke/article/details/51154756


拼接地形边界处理方式

1首先是在模型边界上进行处理,可以通过遮挡的方式处理到一部分


这种方式最直接

2使用接缝地方用同样高度的方式

这种方式相当于在地图边界的地方,两侧的地形都刷上同样的高度,这样肯定没接缝了

但是对于多变的地形,这个方法就没有什么用了

3使用ps对两边的高度图进行分别处理(以下都以16位灰度格式说明)

先说一下打开导出的raw高度图的方式 用的是ps


如果打开不正确看到的将会是下面这个样子


如果正确就是一般的16位灰度格式

比如暂时拼接两个高度图,然后用涂抹工具涂抹平滑

如果ps看到这样的网格,可以按ctrl+h去掉,这个是 视图-显示-像素网格

然后显示就是下面的了


注意一般高度图是16位深的,所以吸色只显示百分比,同一个百分值,不是同一个灰度,因为还有小数部分没有显示

可以做个辅助线,方便修整完后进行切割


处理接缝

有时直接分块两个地形,会造成下面裂开的效果


高度图的大小一般是2的N次方+1,注意这里处理的时候,ps中的图像可以不是奇数

只要在最后输入到unity的时候拉伸下就可以了,

像上面裂开的时候,只需要把一个地形贴图移动一个像素位置就行了

4使用几块地形拼接的大地形直接在worldmachine中处理

比如说你只有两块连着的terrain,都是513的,那你可以把两个拼起来(中间多出一可以不用管,直接任一一个方向减1)

在1025的地图上进行处理,虽然浪费了一半,但是没有什么问题

完成后可以单独切割成513的,可以共用那一个像素的,如果有接缝问题,参考上面,移动一位像素就可以了

5直接使用worldmachine输出分块地形

相关教程可以在官网上找找

当然这种方式也有它的问题,比如后期我又想在unity里微调地形,

但是调整过的地形再进worldmachine里处理就会产生新的变化了,所以还是需要借助上面的方式来



0 0
原创粉丝点击