导入万能的Global Mapper,办三件事

  1. 获取高程极值
  2. 导出jpg高程图
  3. 导出png材质贴图(jpg也可以

此处需要注意,材质贴图不局限于png格式,亲测也可以使用jpg格式,显示效果暂时没发现重大差别,甚至jpg某种程度上更优于png

以下是Debug日记:

之前处理的最大图像为2048×2048像素大小,一直使用png格式的材质贴图,先导出全图再在Photoshop里面裁剪。之后由于NASA数据过大,为了减少不必要的人力浪费不得不使用4096×4096的像素大小。这导致了新的问题:Photoshop的切片功能最大只能处理4000像素大小的正方形。于是开始考虑使用Globalmapper在导出png时直接切片。(以下简称为出厂切片)

其实导出高程图jpg的时候就已经实现了出厂切片,对材质贴图进行切片也不难办。但是应用到地形之后,不知道为何,相邻的地形terrain有色差,深色材质贴图会发蓝,一种深蓝,也可能叫藏蓝,还有一点金属材质的感觉,总之是和相邻地块的贴图颜色和材质不匹配,在地形连接处的显示会很突兀。于是直接选择导出jpg作为材质贴图,同样是出厂切片即可。应用到地形之后的效果同之前未出厂切片的效果基本一致

Globalmapperの切片

之前一直使用Photoshop处理切片,没想到Globalmapper的切片才是yyds

下面使用GM24汉化版,以高程图导出jpg灰度图为例:(别忘了修改为灰度8bit

平铺标签页中,选择切片布局中的指定单个切片像素大小,输入需要的大小,例如4096

切片命名中,选中前置数字0到使长度相同前置字母A使长度相同

切片重叠中,保持默认即可。(按0单元大小的百分比)

接下来Globalmapper会这样操作:把图片放在画布的左上角进行切割。如果长宽不是给定数值的整数倍,则用白色补全,不会舍弃任何有数据的像素。例如,对于一个宽为4097的图,仍然会切割成两份,即使第二份只有一个有数据像素和4095个无数据(白色)像素。

如果图像的某一切片不含有任何有数据像素,则会直接舍弃,不会导出,但仍然占用命名排序

以上是高程灰度图切片过程,材质贴图同理,并且推荐使用jpg格式的材质贴图

Globalmapper处理完一张图片之后,可以点击文件-卸载全部,快捷键ctrl + U,以快速进行下一张图片的处理,不必重启软件。

导入Photoshop,进行大小和格式处理

  1. RAW格式的高程图:PS中需要设置先垂直翻转,再导出RAW,以确保导入Unity地形之后可以呈现出匹配的视角:向右为x轴正方向,向前为z轴正方向
  2. pngjpg格式的材质贴图:无需翻转旋转处理

导入Unity

需要先计算出实际大小,然后根据实际大小比例获得y轴方向比例。这是DEM数据的特点决定的。

DEM数据包含了两个很重要的数据,各点的高度经纬度。但是并没有给我们平面上的实际距离,所以我们需要通过经纬度信息和该星球的半径推算。

根据推算出的平面距离,即Unity中xz轴确定的平面上的距离,再结合DEM数据直接给出的高度距离,按照比例可以推算出在y方向上需要确定的Terrain Size

实操

计算高度像素:

首先我们通过Supermap软件获取.tif文件的经纬度极值信息。

起始经度终止经度起始纬度终止纬度
110.872563319902110.90256131990224.971890532887425.0670785328874

先计算比较容易的沿经线方向实际跨度距离:

$$ \frac {(25.0670785328874-24.9718905328874)} {360} \times 2 \times \pi \times R $$

其中R为火星半径,此处取$3389.5$,单位km

可以得到沿经线方向的长度为$5631$,单位m

对于计算沿纬度方向的长度,需要计算小圆的半径和周长

有公式:

$$ r = R \times cos \theta $$

其中r为小圆半径,R为大圆半径即火星半径,$\theta$为纬度

为了更加严谨,$\theta$的取值为纬度平均值

所以可以计算距离:

$$ \frac {110.902561319902-110.872563319902} {360} \times 2 \times \pi \times r $$

得到结果为$1608$,单位m

但是实际上,为了计算Unity中y轴方向的Terrain Size,只需要计算以上两者其中之一即可

通过GlobalMapper可以得知高度跨度为$41$米,则可以列出计算式:

$$ \frac x {41} = \frac {1796} {5631} $$

解得$x$约为13

最后修改:2023 年 01 月 22 日
如果觉得我的文章对你有用,请随意赞赏