当前位置: 首页 > news >正文

【UE+GIS】UE5GIS CAD或shp构建3D地形

贴合地形的矢量图形实现方法

  • 一、灰度图的制作和拉伸换算
    • 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导入灰度图

  1. 导入灰度图

    • 打开3ds Max并创建一个新的场景。
    • 使用“Create”菜单中的“Bitmap”或“Texture”命令将灰度图导入到场景中。选择你的灰度图并将其导入。
  2. 创建地形

    • 在3ds Max中,选择“Create”菜单中的“Geometry”选项,并选择“Plane”创建一个平面对象。这将作为你的地形基础。
  3. 应用灰度图到地形

    • 选中创建的平面对象,然后打开“Modify”面板。
    • 在“Modify”面板中,找到“Displace”或“Displacement”选项。这通常在“Modifier List”中。
    • 将灰度图应用到“Displace”或“Displacement”通道中。通常,你需要将灰度图拖放到相应的通道中,或者在通道的“Map”选项中选择导入的灰度图。
  4. 调整地形参数

    • 调整地形对象的参数,例如细分级别、平滑度等,以获得想要的地形效果。
    • 根据灰度图和实际深度值的比例来设置缩放比例。

2、使用ArcMap/Arcpro/FME等GIS数据处理工具

基于DEM数据进一步构建模型面,转换为fbx格式的模型数据导出。

3、UE导入灰度图

  1. 导入灰度图到UE5
    • 打开UE5项目,切换到地形编辑,点击新增地形。
      在这里插入图片描述
  2. 创建地形
    • 选择导入的灰度图,这将创建一个新的地形对象,并将灰度图应用到地形上。
      在这里插入图片描述
  3. 调整地形参数
    • 选择创建的地形对象,然后在Details面板中调整地形的参数,例如分辨率、平滑度等,以获得想要的地形效果。
    • 根据灰度图和实际深度值的比例来设置缩放比例。
    • 在这里插入图片描述

在这里插入图片描述
4. 雕刻地形
根据需要,可以在地形编辑模式下进一步修改地形的形状和细节,例如使用平滑刷柔化地形线条。
在这里插入图片描述

三、地形上叠加地形渲染效果的实现方案

在这里插入图片描述

1、贴花

创建贴花材质
在这里插入图片描述
创建一个actor,在组件里添加贴花和平面。
在这里插入图片描述
添加后将贴花对准平面进行比例和方向和位置调整,调整后将平面设置为不可视。
在这里插入图片描述
将actor拖入场景中,调整到覆盖地形即可。
在这里插入图片描述

2、数据渲染

通过代码动态根据高度值修改材质渲染颜色。(暂不展开说)

3、材质贴图

将渲染好的图片赋予从外部导入的地形模型,或者直接赋予引擎的分块地形。
在这里插入图片描述

http://www.lryc.cn/news/361113.html

相关文章:

  • Unity学习笔记---音视频播放
  • 项目集成过程中的makefile记录
  • Vue3 -Computed计算属性
  • MySQL—函数—日期函数(基础)
  • Java+SVNCloud+Mysql课程设计
  • MySQL之创建高性能的索引(四)
  • Python 限制输入数的范围
  • STM32两轮平衡小车原理详解
  • (笔记)如何评价一个数仓的好坏
  • 友善RK3399v2平台利用rkmpp实现硬件编解码加速
  • Mysql 8.0 主从复制及读写分离搭建记录
  • PyTorch、显卡、CUDA 和 cuDNN 之间的关系
  • Lambda 表达式练习
  • JavaScript第七讲:数组,及练习题
  • 从docker镜像反推Dockerfile
  • 车载软件架构 - AUTOSAR 的信息安全框架
  • 欧洲版“OpenAI”——Mistral 举办的 AI 大模型马拉松
  • Java | Leetcode Java题解之第128题最长连续序列
  • C++的List
  • 网易有道QAnything使用CPU模式和openAI接口安装部署
  • 量子加速超级计算简介
  • Unity3D 基于YooAssets的资源管理详解
  • Linux 自动化升级Jar程序,指定Jar程序版本进行部署脚本
  • python练习五
  • YOLOv1深入解析与实战:目标检测算法原理
  • Apache Calcite - 自定义标量函数
  • STM32作业实现(四)光敏传感器
  • HTML+CSS 文本动画卡片
  • MongoDB CRUD操作: 在本地实例进行文本搜索查询
  • 文档智能开源软件