C語言中文網 目錄

Unity 3D使用高度圖創建地形

Unity 3D 中編輯地形有兩種方法:一種是通過地形編輯器編輯地形,另一種是通過導入一幅預先渲染好的灰度圖來快速地為地形建模。

地形上每個點的高度被表示為一個矩陣中的一列值。這個矩陣可以用一個被稱為高度圖(heightmap)的灰度圖來表示。

灰度圖是一種使用二維圖形來表示三維的高度變化的圖片。近黑色的、較暗的顏色表示較低的點,接近白色的、較亮的顏色表示較高的點。

通常可以用 Photoshop 或其他三維軟件導出灰度圖,灰度圖的格式為 RAW 格式,Unity 3D 可以支持 16 位的灰度圖。

Unity 提供了為地形導入、導出高度圖的選項。單擊 Settings tool 按鈕,找到標記為 Import RAW 和 Export RAW 的按鈕。這兩個按鈕允許從標準 RAW 格式中讀出或者寫入高度圖,并且兼容大部分圖片和地表編輯器。

實踐案例:采用高度圖創建地形

案例構思

Unity 3D 中支持 RAW 格式的高度圖導入,這個格式不包含諸如圖像類型和大小信息的文件頭,所以易被讀取。

RAW 格式相當于各種圖片格式的“源文件”,它的轉換是不可逆的。在 Photoshop 軟件中可以使用濾鏡功能制作高度圖,本案例根據在 Photoshop 中制作好的高度圖導入 Unity 3D 系統,自動生成地形。

案例設計

本案例通過 Photoshop 中制作好的高度圖在 Unity 3D 中創建一個簡單的地形,在地形參數列表里設置導入高度圖的信息,導入的高度圖地形效果如下圖所示。

基于高度圖創建地形

案例實施

步驟 1):創建地形。執行 GameObject→3D Object→Terrain 菜單命令。

步驟 2):在 Inspector 面板中單擊 Import Raw 按鈕添加地形,如下圖所示。

地形高度圖導入

步驟 3):設置地形參數,如下圖所示,具體參數含義如下表所示。

設置導入灰度圖信息
 
參 數 含 義 功 能
Depth 深度 根據文件格式設置,可以是8位或16位
Width 寬度 設置高度圖的寬
Height 高度 設置高度圖的高
Byte Order 字節順序 根據文件格式設置,可以是Mac或Windows
Terrain Size 地形大小 定義地形的大小

步驟 4):創建好后,單擊 Play 按鈕進行測試,即可觀察到基于高度圖創建出來的地形效果,如下圖所示。

基于高度圖創建地形

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo