【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.mzph.cn/bicheng/21379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日志管理:Slf4j、Log4j、LogBack与ELK实战指南

1.现代软件开发中日志的重要性 在软件开发和运维的世界里,日志管理是一项至关重要的技术。正确地记录、管理和分析日志数据,能为系统的可靠性、可维护性和安全性带来显著的好处。 1.1 日志在故障排查中的作用 日志是系统活动的详细记录。当系统发生故…

Z字形变换 ---- 模拟

题目链接 题目: 分析: 题意如图所示:如果我们按照题意, 真的实现一个矩阵, 这样做的时间和空间复杂度很高, 所以我们可以试试看找规律, 优化一下我们观察他们的下标: 如果找到下标的规律, 那么我们就不用创建矩阵, 就能找到最终结果的下一个字符是什么特殊情况, 当numRows 1…

读AI未来进行式笔记01深度学习

1. AI 1.1. AI已经发展成一门涵盖许多子领域的重要学科 1.2. 机器学习是迄今为止AI应用最成功的子领域 1.2.1. 在这个领域中,最大的技术突破就是深度学习 1.3. “人工智能”“机器学习”和“深度学习”的时候&#xff…

C语言编程技巧:深度挖掘与高效实践

C语言编程技巧:深度挖掘与高效实践 在编程的世界里,C语言以其高效、灵活和底层控制能力强等特点,一直备受开发者们的青睐。然而,要想真正掌握C语言的精髓,并编写出高效、健壮的代码,却并非易事。本文将从四…

基于STM32与TB6600的机械臂项目

基于STM32与TB6600的机械臂项目是一个涉及硬件设计、软件开发和控制算法实现的综合项目。以下是对该项目的一个简要介绍,以及一些基础的代码示例。 项目概述 1. 系统组成 STM32微控制器:作为系统的主控制器,负责处理传感器数据和控制机械臂…

Pointnet学习以及对代码的实现

由于点云不是常规数据格式,通常将此类数据转换为规则的 3D 体素网格或图像集合,然后再用神经网络进行处理。数据表示转换使生成的数据过于庞大。 PointNet是第一个直接处理原始点云的方法。只有全连接层和最大池化层,PointNet网络在推理速度…

Android串口调试ADB

在Android设备上,通过串口(通常指的是ADB,即Android Debug Bridge)来执行dumpsys命令来检查某个包(例如com.android.bluetooth)是否支持某个服务(如A2dpSinkService)是开发者或高级用…

深入理解 Python 迭代器与生成器:详细指南

迭代器和生成器是 Python 中强大的特性,用于简化代码和提高效率。它们允许我们在需要时逐步计算结果,避免一次性加载所有数据到内存中。本文将详细介绍 Python 迭代器和生成器的基本语法、命令、示例、应用场景、注意事项,并进行总结。 迭代…

Android在不同层面增加应用

1 App 应用代码一般在开发者的项目目录下,packages/apps/YourApp/,比如app/src/main/java目录下 对于系统应用,源代码可能位于packages/apps/目录下,例如packages/apps/Settings。 用户安装的应用(从Google Play或其…

代码随想录--哈希表--两数之和

题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums [2, 7, 11, 15], t…

李廉洋:6.3黄金原油下周一开盘行情价格涨跌趋势分析及最新操作建议多空布局

黄金消息面分析:上周黄金市场的走势受到了PCE通胀数据和美联储政策预期的显着影响。尽管市场对黄金的长期看涨情绪依然存在,但短期内金价的波动性预计将持续。4月份的PCE通胀数据显示价格压力有所降温,这一结果与分析师预期一致,但…

2024年6月2日 (周日) 叶子游戏新闻

中医百科中药: 中医百科中药是一款非常强大的中药知识科普软件,该应用提供500多味中草药的文献资料,强大的搜索功能可根据功效、特点和关键词来快速查找中药,而且每味中药的图片、功效、主治、炮制方法等百科知识,可以很好的帮助你…

Pycharm SSH远程连接时出现报错,测试 SFTP 连接,连接到 ‘connect.westb.seetacloud.com‘ 失败

问题由来 很离谱!今天本来打算租借AutoDL的显卡完成一项深度学习的任务,很离谱的是同步文件夹的时候报了标题说的错。 就很莫名奇妙,一天都在网上找解决办法,结果都不对头。 其他报错 最后摸索着,在使用pycharm远程登…

SpringBoot 定时任务+Quartz

1、分部解释2、整体代码 前言: 1、定时任务技术: JDK 的 Timer, 定义多个定时任务,其中某个任务出现异常,当时整个定时任务终止。Spring Task , 不支持 持久化与分布式部署,所有任务是单线程执行…

Prism 入门01,基础

Prism 框架是支持多平台的一种MVVM框架(Model-View-ViewModel) 除了具备一些基础的属性通知绑定,命令操作,消息聚合器等功能外。还具备一些强大的功能:例如,区域,导航,会话服务,模块注入等特性。 一.如何在WPF 项目中使用Prism 框架 1.打开Visual Studio 2022,选择创…

初探Arthasan安装使用

最近在项目中用到 Arthas,即阿尔塞斯 是阿里开源的Java分析工具。 下载地址:Github 一、安装运行 1)window 系统 下载 jar 包,直接通过java命令运行 // 下载 jar包 curl -O https://arthas.aliyun.com/arthas-boot.jar // 启动…

3个常用的Python性能分析工具及其使用方法

以下是几个常用的性能分析工具及其使用方法和常用命令: 1. cProfile cProfile是Python标准库中的性能分析工具,可以用来统计函数的运行时间和调用次数。 使用方法: 在命令行中使用以下命令: python -m cProfile my_script.py…

【排序】选择排序(含优化版)

本章我们继续讲排序算法,这里我们将学习选择排序,也是一个很普遍很常见的排序算法,逻辑和代码都比较简单,比较容易掌握,我们直接走起 选择排序 基本思想:选择排序(SelectSort)&…

Layui2.5.6树形表格TreeTable使用

1、问题概述? Layui2.5.6的树形表格-TreeTable终于用明白了,步骤详细,提供源码下载。 如果你使用的是Layui2.8+版本,那么点个赞,赶紧去官网看吧,官网更行了。 更新地址:树表组件 treeTable - Layui 文档 最近在项目中需要使用到树形表格,用来显示菜单的层级关系,当…

(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第1节(泛型键值对)

14.1.1 内联变量和泛型类型推断 ​ 在声明泛型变量时,声明可能相当长。在创建该类型的对象时,必须重复相同的声明。除非您利用内联变量声明及其变量类型推断的能力。因此,上面最后一个代码片段可以写成: beginvar Kvi : TKeyVal…