实战步骤
-
下载数据
为了能获取dem高程数据,需要注册
https://urs.earthdata.nasa.gov/users/new
然后打开SRTM数据网站
这个网站可以下载的数据,已经按照经纬度帮你划分好了,你可以直接点击感兴趣的块,然后点击直接下载数据即可。
然后下一步就是下载对应区域的OSM数据。
打开 OSM 数据网站
然后根据上面下载SRTM数据的时候的经纬度,比如上方的块是N22E114,则在export界面填入相应的区域值,然后点击Overpass API按钮下载数据。
至此我们就下载完了相互对应的OSM和DEM数据。
-
处理数据
首先需要获得SRTM数据的高度图,这个参考{GIS 数据生成高度图}这篇里面我的表述,你可以导出图片。
上面这一步我们也可以省略,因为在 http://dwtkns.com/srtm30m/ 网站,你可以直接点击 View Preview Image 按钮,将预览的高度图保存在本地使用即可。
如下图.jpg是下载的预览图,.png是我们自己生成的高度图,均可使用。
然后的数据处理方式有两种。
首先是如果将数据都导入到Houdini里面处理,我们可以参考 https://entagma.com/houdini-game-tools-assembling-a-3d-scan-of-the-earth/ 里面的实现将两者的数据对应起来。
但是这里如果都要在houdini里面实现的话,后续还得有一个功能就是同时导出Landscape和LandscapeSpline,这个暂时还没实现。
其次的方法就是直接将高度图应用于unreal,同时由unreal来直接解析OSM数据并将它们对齐起来。
上面解决的是 OSM 数据和 SRTM 数据的匹配,但是对于高精度雷达数据,没法直接匹配经纬度,主要是数据没有提供。
因此真实世界地形的创建:高精度处理的 SRTM 数据 + OSM 即可得到真实世界的高精度地形表现。
对于虚拟世界地形的创建:风格化地形 + 学习得到的OSM数据 即可得到虚拟世界的高精度地形表现。
在这个基础上再让美术进行人工修饰就很简单了。
一个比较方便的获取地形训练数据的网站:
http://javier.jimenezshaw.com/mapas/mapas.html?h=1