贴合地形的矢量图形实现方法
- 一、灰度图的制作和拉伸换算
- 1、基于高程点集实现
- 2、基于等高线实现
- 3、拉伸计算
- 二、生成地形模型的实现方案
- 1、3Dmax导入灰度图
- 2、使用ArcMap/Arcpro/FME等GIS数据处理工具
- 3、UE导入灰度图
- 三、地形上叠加地形渲染效果的实现方案
- 1、贴花
- 2、数据渲染
- 3、材质贴图
在3D GIS数据的生产过程中,有时需要用到2D的CAD地形图(等高线或高程点)或是shp格式的高程点作为原始数据输入,最后实现3D地形模型的构建,本文介绍三种实现方案,欢迎评论区交流。
一、灰度图的制作和拉伸换算
1、基于高程点集实现
将高程点数据导入FME或arcMap中构建DEM,输出PNG格式的灰度图。
2、基于等高线实现
如果既有等高线又有高程点数据,可以在构建DEM的时候增加等高线约束。
如果只有等高线没有高程点数据,则将等高线转换为高程点数据,并提供插值来扩增区域高程点数据,再构建DEM,输出PNG格式的灰度图。
3、拉伸计算
由于PNG格式的灰度图的色值范围和实际DEM数据的高度色值不同,因此需要计算灰度图色值的最大值和最小值和实际高度色值深度最大值和最小值的比例用于后期整体拉伸地形模型。
二、生成地形模型的实现方案
1、3Dmax导入灰度图
-
导入灰度图:
- 打开3ds Max并创建一个新的场景。
- 使用“Create”菜单中的“Bitmap”或“Texture”命令将灰度图导入到场景中。选择你的灰度图并将其导入。
-
创建地形:
- 在3ds Max中,选择“Create”菜单中的“Geometry”选项,并选择“Plane”创建一个平面对象。这将作为你的地形基础。
-
应用灰度图到地形:
- 选中创建的平面对象,然后打开“Modify”面板。
- 在“Modify”面板中,找到“Displace”或“Displacement”选项。这通常在“Modifier List”中。
- 将灰度图应用到“Displace”或“Displacement”通道中。通常,你需要将灰度图拖放到相应的通道中,或者在通道的“Map”选项中选择导入的灰度图。
-
调整地形参数:
- 调整地形对象的参数,例如细分级别、平滑度等,以获得想要的地形效果。
- 根据灰度图和实际深度值的比例来设置缩放比例。
2、使用ArcMap/Arcpro/FME等GIS数据处理工具
基于DEM数据进一步构建模型面,转换为fbx格式的模型数据导出。
3、UE导入灰度图
- 导入灰度图到UE5:
- 打开UE5项目,切换到地形编辑,点击新增地形。
- 打开UE5项目,切换到地形编辑,点击新增地形。
- 创建地形:
- 选择导入的灰度图,这将创建一个新的地形对象,并将灰度图应用到地形上。
- 选择导入的灰度图,这将创建一个新的地形对象,并将灰度图应用到地形上。
- 调整地形参数:
- 选择创建的地形对象,然后在Details面板中调整地形的参数,例如分辨率、平滑度等,以获得想要的地形效果。
- 根据灰度图和实际深度值的比例来设置缩放比例。
4. 雕刻地形:
根据需要,可以在地形编辑模式下进一步修改地形的形状和细节,例如使用平滑刷柔化地形线条。
三、地形上叠加地形渲染效果的实现方案
1、贴花
创建贴花材质
创建一个actor,在组件里添加贴花和平面。
添加后将贴花对准平面进行比例和方向和位置调整,调整后将平面设置为不可视。
将actor拖入场景中,调整到覆盖地形即可。
2、数据渲染
通过代码动态根据高度值修改材质渲染颜色。(暂不展开说)
3、材质贴图
将渲染好的图片赋予从外部导入的地形模型,或者直接赋予引擎的分块地形。