【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.pswp.cn/bicheng/21379.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21379.shtml
英文地址,請注明出處:http://en.pswp.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…