文章目录
变更记录
- 2024-9-10 文章发布;
前言
使用Unity
+Real World Terrain
插件根据真实卫星数据快速创建高质量的地形、网格、Gaia 图章和 RAW 文件,适用于大场景、大背景的制作。
一、高程、影像数据与Unity地形的关系
高程数据DEM
全称数字高程模型,是通过有限的地形高程数据实现对地面地形的数字化模拟(即地形表面形态的数字化表达)
,实际上,它是一种数字阵列信息模型(x,y,z),描述地理空间中的地形高低起伏,通过表示模型和渲染后,成为人们看到的地形图,也可以简单理解为高度图,即Elevation
。
影像数据全称卫星遥感图像,也叫卫星图或影像图,是借助卫星向用户反馈真实的地球地表面貌图像,影像图不带高度信息
。
高程图
提供Unity地形的起伏
数据,影像图
提供Unity地形的贴图
数据,两者的叠加融合形成完成的Unity地形文件
。
二、Real World Terrain简介
Real World Terrain
是一款Unity
地形插件,可根据真实地球高程数据生成地形、网格、Gaia
图章和 RAW
文件,并根据 Open Street Map
中的数据生成建筑物、道路、河流、草地、树木。
- 兼容
Unity 2017.4 LTS
及更高版本; - 渲染管线:
Built-In
、URP
、HDRP
; - 高度贴图精度:
ArcGIS
分辨率每像素最高 10 米;Bing Maps
分辨率每像素最高 10 米;Mapbox精度未知;SRTM v4.1
分辨率每像素最高 90 米;SRTM30
分辨率每像素最高 30 米。 - 卫星影像供应商:
ArcGIS、DigitalGlobe、Map Quest、Mapbox、Mapy.CZ、Nokia Maps (here.com)、Virtual Earth (Bing Maps)、Open Street Map、Sentinel-2
; - 支持自定义
url
下载卫星影像瓦片数据; - 卫星图像分辨率为每像素最大
0.25
米; - 支持创建:Unity Terrains、网格、Gaia 图章、RAW 文件;
- 支持为每种地形生成常规纹理和
Huge Texture
(最高 26624x26624px); - 支持基于
Mapbox
矢量生成地形图层。 - 支持基于
Open Street Map
创建建筑、道路、河流、树木等对象; - 支持直接从
Google Maps
上选择区域的工具。
官方说明文档地址:https://infinity-code.com/documentation/real-world-terrain.html
UnityAssetStore地址:https://assetstore.unity.com/packages/tools/terrain/real-world-terrain-8752#releases
Real World Terrain 4.9.4(latest)资源包下载:CSDN
二、Real World Terrain导入与调用
使用UnityHub
创建新工程,编辑器版本需大于Unity 2017.4 LTS
,渲染管线根据需要选择,以本文选择URP
模板,输入项目名称,点击创建。
在编辑器【Project】
栏选中【Assets】
,右击【Import Package】-【Custom Package】
选择Real World Terrain 4.9.4.unitypackage
,点击导入。
编辑器弹出的【Import Unity Package】
面板,点击【All】
选中所有资源,点击【Import】
导入,等待编辑器响应。
Real World Terrain
插件导入成功后,编辑器【Assets】
栏里会多新增文件【Infinity Code】
,即为导入成功。
点击编辑器控制栏【Windows】-【Infinity Code】-【Open Real World Terrain】
即可调出控制面板,可将面板拖曳与【Inspector】
栏合并,方便观察操作。
三、主要功能解析
3.1 区域控件Area
- 支持采用十进制
【decimal】
或通用横轴墨卡托【UTM】
形式设置选取坐标,通过区域左上角和右下角的坐标,框定区域范围。在【Top-Left】
与【Bottom-Right】
输入你要生地地形区域的经纬度坐标。可以使用本插件提供的地图选点工具Real World Terrain Helper
或者去在线地图拾取坐标点。
Use Anchor
- 是否使用锚点坐标。如果是,则区域中的零点位置将具有指定的坐标。- 从上到下依次为:①插入在地图选点工具中复制的坐标;②打开地图选点工具帮助程序;③辅助设置当前经纬度的最佳参数;④在浏览器中打开您当前位置的
Open Street Map
。
- 地图选点工具
Real World Terrain Helper
插件提供了一个重要的地图选点工具——Real World Terrain Helper
,基于这个地图选点工具,用户可以快速筛选要下载的地图区域。在插件控件面板点击【Run the helper】
调出地图选点工具界面。
①卫星数据显示模式:卫星影像图/街道图/地形图;
②地图选点:点击调出区域选框,可以拖动节点来调整区域大小,鼠标左键拖曳地图,ctrl+
鼠标左键拖曳区域选框;
③高程数据源切换:SRTM、SRTM30、Bing Maps、MapBox
;
④框选区域左上与右下的经纬度坐标,通过两点确定区域;
⑤添加POI
点至地图,ctrl+
鼠标左键拖动POI
点;
⑥复制框选区域经纬度坐标,支持一键粘贴至Unity
编辑器。
在插件控件面板点击【Insert the coodinates from the cliboard】
,可以将地图选点区内复制的区域经纬度坐标进行粘贴。
3.2 地形控件Terrains
Result
(结果类型):正在创建的对象的类型,包括以下四种:
·Terrain标准 Unity 地形
(创建对象后,可以使用Unity
地形工具来处理地形);
· 网格Mesh
;
·Gaia Stamp
(另一经典Unity
地形插件Gaia
支持的地形格式);
·RAW
文件。
-
Count terrains
: 按经度和纬度划分的新terrain
的数量; -
Align Water Line
:如果禁用,则地形在最小高程处的 Y 轴将为零,如果启用,则terrain
在海平面上的Y
轴为零(零高程)
; -
Size type
:确定创建的地形大小:
·Real world sizes
实际大小: 宽度等于上纬线和下纬线长度的平均值,高度等于子午线的长度,推荐
;
·Mercator sizes
墨卡托大小: 一度纬度和经度的大小是固定的;
·Fixed size
固定大小: 每个地形或网格将具有固定的指定大小。 -
Scale
: 新区域的缩放因子; -
Elevation range
最大标高: 新区域的最大高度;
·Auto Detect
自动检测 - 自动确定最大高度,推荐
;
·Fixed Value
固定值;
·Real World Value
真实世界值 - 最大高度为 15,000 米。 -
GenerateUnderwater
:勾选后,Max underwater depth
为当高度贴图没有值时使用的值,通常是大海、海洋、湖泊,使用绝对深度,例如-30
; -
Height Map Resolution
高度贴图分辨率: 地形高度贴图的像素分辨率,分辨率越高,生成的地形高度越精准
; -
Detail Resolution
细节分辨率 :可用于将细节放置到Terrain
瓦片上的单元格数,将此值平方以生成单元格网格,分辨率越高,地形细节越高,表现效果越好
; -
Resolution Per Patch
单个补丁(网格)中的单元数:该值的平方形成单元格网格,并且必须是细节分辨率的除数; -
Base Map Resolution
底图分辨率:当从大于 Basemap Distance (底图距离) 的距离查看地形时,要在地形上使用的复合纹理的分辨率,实际上就是远看时最高层级影像未加载时图像的模糊程度,分辨率越高,远景图像越清晰
。
3.3 数据源控件Elevation Provider
- SRTM:无需API key即可使用;
- SRTM 30:需要
earthdata.nasa.gov
的登录名/密码; - 必应地图: 需要的 Bing 地图
API
密钥; - MapBox: 需要
Mapbox API
密钥(公共令牌)。
注:这些平台貌似无法提供国内高程数据,部分数据下载需要科学上网。
- 精度:
·ArcGIS 分辨率每像素最高 10 米;
·Bing Maps 分辨率每像素最高 10 米;
·Mapbox未知;
·SRTM v4.1 分辨率每像素最高 90 米;
·SRTM30 分辨率每像素最高 30 米。
3.4 材质控件Texture
注意:若不勾选材质控件,生成的地形将是白模
。
-
Result Type
:纹理结果的类型:
·Regular Texture
:将为每个地形生成一个纹理,并将其设置为第一个地形图层。
·Huge Texture
:将为每个地形生成一个巨大的纹理(最大 26624x26624 像素),为了显示,将创建Huge Texture
材质并将其设置为地形材质,(重要说明:使用Huge Texture
时,不能使用Terrain Layers
)。
·Terrain Layers
:地形图层将根据Mapbox
中的矢量瓦片数据生成,可以灵活配置每个层和标签的生成规则。 -
材质分辨率:
分辨率越大,贴图越清晰
; -
Provider
:将要下载的 texture 的源,来自不同提供商的纹理在质量、最大细节和使用条件方面各不相同; -
Fromat
:贴图的格式; -
Max level
:贴图纹理的卫星影像层级,层级越高,贴图越精密,清晰。
四、操作示例
使用地图选点工具——Real World Terrain Helper
选择区域,复制经纬度坐标点,点击【Insert the coodinates from the cliboard】
粘贴经纬度坐标至编辑器,高程数据源【Elevation】
选择【SRTM】
(SRTM
无需申请API key
就能调用),勾选【Textures】
(不勾选生成的地形不带贴图和材质),其余配置全部默认,点击【Start】
生成地形数据。
生成的地形文件为Unity
标准地形文件,可以通过【Inspector】-【Terrain】
面板进行地形调整。
地图选点工具中设置的POI
点在Unity
编辑器内表现为一个方形Cube
,可以用于目标点定位。
OVER