【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、材质贴图

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673393.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【transformers】pytorch基础

传送门:https://transformers.run/c2/2021-12-14-transformers-note-3/ pytorch基础知识 tensor : 张量。 需要知道的内容: 张量构建张量计算自动微分形状调整广播机制索引与切片升降维度 Tensor 张量:理解成高纬度的向量就完…

【最新鸿蒙应用开发】——什么是状态管理?

状态管理 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染&#xf…

系统安全及其应用

系统安全: 1)保护数据安全, 2)互联网,网络业务服务等,必须要通过工信部的资质审核 3)保护品牌形象 应用: 账号安全 1)把不需要或者不想登录的用户设置为nologin us…

echarts绘制三维柱状图

echarts ECharts 是一个使用 JavaScript 实现的开源可视化库,主要用于数据的可视化展示。ECharts 支持丰富的图表类型,如折线图、柱状图、饼图、地图、K线图等,可以满足不同类型数据的展示需求。 文档地址:echarts 本次所绘制三…

Django request.POST获取提交的表单数据

在Django中,request.POST 是一个特殊的属性,它是一个类似于字典的对象,用于访问通过POST方法提交的表单数据。如果你在视图中使用 print(request.POST.get(username)),这通常意味着你正在尝试从一个HTML表单中获取一个名为 userna…

数学建模之MATLAB入门教程(上)

前言: • MATLAB是美国Math Works公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 • MATLAB将数值分析、矩阵计算、科学数据可视化以及非线性动…

Ubuntu server 24 (Linux) 普通用户不能sudo 也不能使用root登录 忘记root密码 修复解决方案

一 普通用户无法sudo,同时也没有其他用户可用 #test用户使用sudo报错,没有权限 testtest:~$ sudo vi /etc/sudoers [sudo] password for test: test is not in the sudoers file. 二 关闭ubuntu 服务器,重新开机 按下ESC 键 1 出现GRUB…

【工具】探索 MOU:每用户通话时长

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 🎵 邓紫棋《光年之外》 什么是 MOU…

RunLoop小白入门

核心概念 什么是 RunLoop ? RunLoop 是 iOS 和 macOS 应用程序框架中的一个核心概念,用于管理线程的事件处理。它可以看作是一个循环,用于持续接收和处理各种事件,如用户输入、定时器、网络事件等。RunLoop 在保持应用程序响应用户交互和系…

【再探】设计模式—备忘录模式与解释器模式

备忘录模式是用于保存对象在某个时刻的状态,来实现撤销操作。而解释器模式则是将文本按照定义的文法规则解析成对应的命令。 1 备忘录模式 需求:保存对象在某个时刻的状态,后面可以对该对象实行撤销操作。 1.1 备忘录模式介绍 提供一种状…

Anaconda创建python环境默认C盘,如何修改路径

文章目录 前言解决方案1.找到Anaconda的根目录2. 找到根目录文件夹,右键-属性-安全 测试-重新创建新的python环境 前言 使用 Anaconda创建python环境,默认在C盘。 如何修改到别的路径呢? base环境 是安装 Anaconda是安装的默认环境&#x…

YOLOv8_obb训练流程-原理解析[旋转目标检测理论篇]

在旋转目标检测网络中,换了个顺序,先把训练流程捋一遍,然后再取捋一下测试的流程。由下图的YOLOv8l_obb网络结构图可以看到相对于目标检测网络,旋转目标检测网络只是在Head层不相同,在每个尺度特征层中增加了Angle分支(浅蓝色),通过两个卷积组和一个Conv卷积得到得到通…

隐马尔可夫链

1 马尔可夫链 马尔科夫链(Markov Chain)是一种数学模型,它描述了一系列可能事件的概率,其中每个事件的发生仅依赖于前一个事件的状态。这一特性称为“无记忆性”或“马尔可夫性质”。我将用一个简单的天气预测模型作为例子来解释马…

Docker的网络管理

文章目录 一、Docker容器之间的通信1、直接互联(默认Bridge网络)1.1、Docker安装后默认的网络配置1.2、创建容器后的网络配置1.2.1、首先创建一个容器1.2.2、ip a 列出网卡变化信息1.2.3、查看新建容器后的桥接状态 1.3、容器内安装常见的工具1.4、容器间…

记一次线上数据库连接超时异常问题

最近其他团队的开发人员告知我,我们项目有个feign接口调用失败了。我查看日志发现,其原因是尝试数据库连接超时,30秒内都没有连接成功。 我首先判断可能是网络不稳定,在一定时间内连接不上数据库。我登录到服务器环境看&#xff0…

内网域中NTLM中继那些事儿

0x01 初识NTLM协议 基本概念:NTLM(NT LAN Manager)认证是一种早期的Windows网络身份认证协议。它在Windows系统中用于验证用户的身份,并提供对网络资源的访问控制,它是一种基于Challenge/Response的认证机制。 认证流程 NTLM协议Challenge…

如何使用 DANN 改进神经网络

文章目录 一、说明二、语言模型真的理解语言吗?三、了解分配转变3.1 样本选择偏差3.2 非静止环境3.3 领域适配挑战3.4 概念漂移 四、对领域对抗训练的介绍 一、说明 由于其多功能性,神经网络是大多数现代机器学习管道的主要内容。他们处理非结构化数据的…

mathtype7最新产品密钥激活2024最新

MathType是一款专业的数学公式编辑器,广泛应用于教育、科研和出版等领域。随着在线教育和远程工作的兴起,MathType的使用场景更加广泛,成为教师、学生、研究人员和专业作家必不可少的工具之一。本文将详细介绍MathType的功能特点、操作步骤以…

HTML 总结

HTML 简介 HTML(HyperText MarkupLanguage): 超文本标记语言 超文本 : 普通文本指的是只有文字没有图片 ,视频, 音乐,而超文本就有 标记语言 : 由标签构成的语言 HTML的标签都是预定好的, 如<a> </a> 为超链接 HTML代码直接在浏览器中运行,由浏览器内核进行解…

C++自定义String类

自定义一个String类型,该类包含一个指向字符串的指针和一个统计对象数量的计数器. 代码如下: //string.h #pragma once //String类型 #include <iostream> using namespace std;class String { private:char* m_str;//保存字符串的地址static int num_strings;//创建的对…