【Unity】4.3 地形編輯器

分類:Unity、C#、VS2015 編輯器

建立日期:2016-04-10 ide

1、簡介

Unity擁有功能完善的地形編輯器,支持以筆刷繪製的方式實時雕刻出山脈、峽谷、平原、高地等地形。Unity地形編輯器同時提供了實時繪製地表材質紋理、樹木種植、大面枳草地佈置等功能。值得—提的是,Unity中的地形編輯器支持LOD(Level of Detail)功能,可以根據攝像機與地形的距離以及地形起伏程度調整地形塊(Patch)網格的疏密程度。遠處或平坦的地形塊使用稀疏的網格,近處或陡峭的地形塊使用密集的網格。這將使遊戲場景即真實、精細,同時也不影晌性能。 性能

注意:地形與其餘的遊戲對象有些不一樣,地形支持Transform(幾何變換)組件中的Position(位置)變換,但對於Rotation(旋轉)以及scale(縮放)操做是無效的。 3d

2、地形的建立方式

要建立地形並實現山脈、峽谷、平原、高地、樹木種植、大面枳草地佈置等功能的繪製,必須先熟悉下面的基本概念。 orm

一、添加地形對象 htm

先建立一個新的場景,而後打開菜單欄中的【Terrain】→【Create Terrain】,就建立了一個地形對象: 對象

image

新建立的地形會在項目工程中建立一個地形資源,並在當前場景中添加—個地形實例(Project視圖和Hierarchy視圖中同時出現了該地形的相關文件),以下圖所示:blog

image

新建地形對象後,在檢視器視圖中能夠看到該對象所掛載的組件,除了Transform組件外,還有一個Terrain(地形)組件以及一個Terrain Collider(地形碰撞)組件。 遊戲

二、地形組件 圖片

Terrain組件共包含7個選項按鈕,利用這些選項就能夠繪製地形起伏、地表紋理或附加細節如樹、草或石頭等:

image

在這7個選項按鈕中,前3個用於地形高度繪製。

(1)按鈕1--升高/下降高度

image

單擊此選項按鈕後,再展開的選項卡中,先設置Brush Size(筆刷大小)、Opacity(不透明度)的值以及繪製時使用的Brushes(筆刷),而後就能夠在場景中用鼠標單擊或拖動繪製地形了。

單擊鼠標會增長高度,保持鼠標按下狀態移動鼠標會不斷的升高高度直到達到高度的最大值。若是想下降高度,按住Shift鍵再單擊鼠標便可。

(2)按鈕2--噴塗高度

單擊左側開始的第2個按鈕選項,可進入噴塗高度模式。該模式通常用於繪製平整的高地或峽谷等地形。

設置Brush Size(筆刷大小)、Opacity(不透明度)、Height(高度)的值以及繪製時使用的Brushes(筆刷),就能夠利用鼠標移動場景中地形上的任意部分,直到達到你但願的高度爲止。

image

(3)按鈕3--平滑高度

單擊左側開始的第3個按鈕選項,可進入平滑高度模式。該模式用於柔化繪製的區域的高度差,使地形的起伏更加平滑。

image

(4)按鈕4--繪製紋理

單擊左側開始的第4個按鈕選項,可進入紋理繪製模式。單擊【Edit Texture】可添加、編輯、移除紋理。重複「Add Texture」這個過程,能夠添加多個紋理。

image

添加地形紋理之後,選擇想使用的地形紋理,便可使用此紋理拖動鼠標左鍵對地形進行紋理繪製,以下圖所示:

image

選擇不一樣的紋理再拖動鼠標繪製,就能夠在同一個場景中繪製出各類形式的地形紋理。

(5)按鈕5—植樹

單擊左側開始的第5個按鈕選項,可進入植樹模式。

image

單擊【Edit Tree】可添加、編輯、移除樹。重複「Add Tree」這個過程,能夠添加多種樹。

image

選擇使用的樹,設置樹的密度(Tree Density)爲合適的值,而後就能夠將其繪製在場景中了,此時當前鼠標所在位置會標記爲藍色高亮,以下圖所示,單擊便可。

單擊地形的任何地方都能種樹。按住鼠標左鍵不放並拖動鼠標可在地形上連續種樹。按住Shift鍵而後單擊地面,能夠擦掉相應位置種植的樹。

image

參數設置(Settings):

Bush Size:筆刷的尺寸。設置植樹時筆刷的大小,取值範圍在1~100之間。

Tree Density:樹木密度。用於控制樹對象的間距。值越大樹木越密集、間距越小。取值範圍在10~100之間。

Tree Height:樹的基準高度。值越大樹木越高,取值範圍在50~200之間。

Color Variation:每棵樹的顏色所可以使用的隨機變量值,取值範圍在0~1之間。

(6)按鈕6—種草

單擊左側開始的第6個按鈕選項,可進入Paint Details模式,利用該模式可繪製草坪(用Grass Texture種草)以及指定對草坪進行細節性描述的網格(Detail Mesh)。

image

其中,【Settings】下的【Target Strength】表示目標強度,用於控制種草以及添加細節網格時所產生的影晌,取值範圍在0~1之間。

單擊【Edit Details…】,在彈出的快捷菜單項中選擇【Add Grass Texture】,而後選擇某種草坪紋理,並設置相關參數,單擊【Add】便可添加一種草坪:

image

Details Texture:草坪的圖片。

Min Width、Max Wdth、Min Height:設定草坪的最小寬度、最大寬度、最小高度值。

Noise Spread:噪波範圍。用於控制草產生簇的大小。該值越低意昧着噪波越低。

Healthy Color:健康顏色。此顏色在噪波中心較爲明顯。

Dry Color:乾燥顏色。此顏色在噪波邊緣較爲明顯。

Billboard:廣告牌。該項若是被勾選,草將隨着攝像機一塊兒轉動,永遠面向主攝像機。

單擊【Edit Details…】,在彈出的快捷菜單項中選擇【Add Details】,而後選擇某種草的預設,並設置相關參數,單擊【Add】便可添加一種草的預設體:

image

這兩項選擇後,就能夠在場景中用鼠標種草了。

按住Shift鍵可用鼠標選擇刪除,按住Ctrl鍵可用鼠標刪除選擇的細節網格。

image

(7)按鈕7—地形參數設置

單擊左側開始的第7個按鈕選項,進入地形設置模式。

image

基本地形(Base Settings)選項卡下的參數以下:

Draw:是否繪製基本地形。

Pixel Erroe:像素容差。在顯示地形網格時容許的像素偏差。是地形LOD系統的一個參數。

Base Map Dist:基本地圖距離。設置地形貼圖顯示高分辨率的距離。

Cast Shadows:投影。設置地形是否投射陰影。

Mterial:材質。經過單擊右側的圓圈按鈕爲地形指定材質。

image

樹和細節配置(Tree & Details Objects)選項卡下的參數以下:

Draw:若是選中該項,全部的樹、草和細節模型都將被渲染出來。

Bake Light Probes for:

Detail Distance:細節距離。該項用於設定攝像機中止對細節渲染的距離。

Collect Detail Patches:

Detail Density:細節密度。該項用於控制細節的密度。默認爲1,若是將此值調小,過密的地形細節將會不被渲染。

Tree Distance:樹林距離。該項用於設定攝像機中止對樹對象進行渲染的距離。值越高,越遠的樹會被渲染。

Billboard Start:開始廣告牌。該項用於沒定攝像機將樹渲染爲廣告牌的距離。

Fade Length:漸變距離。該項用於控制樹對象從模型過渡到廣告牌的速度,若是值設置爲0,模型會突變爲廣告牌。

Max Mesh Trees:最大網格樹。該項用於控制在地形上全部模型樹的總數量上限。

image

針對草的風設置(Wind Settings for Grass)選項卡下的參數以下:

Speed:速度。該頂用於設定風吹過的速度。

Size:大小。該項用於設定風力影響的面枳。

Bending:彎曲。該項用於沒定草木被風吹的彎曲程度。

Crass Tint:草的色調。該項用於設定全部草以及細節網格總體的色調。

image

【Resolution】選項卡下的參數用於添加地形對象後設置相關的屬性。參數含義以下:

HeightMap Resolution:高度圖分辨率。

Detail Resolution:細節分辨率。控制草地和細節網格的地圖分辨率。若是但願提升繪製性能,可將該數字設置低一些,好比設置爲512或者256。

Base Texture Resolution:基礎紋理分辨率,用於代替在必定距離的潑濺貼圖 (splat map) 的複合紋理分辨率。

3、示例(Demo05)

這裏介紹實際操做的基本步驟,當你熟悉了這些基本步驟後,就能夠繪製各類絢麗的地形了。按這些基本步驟操做完成後,便可獲得下面的簡單示例效果:

image

一、添加地形對象

在層次視圖中鼠標右擊選擇【Terrain】→【Create Terrain】,建立一個地形。此時在Project的Assets下也會自動添加一個文件名爲【New Terrain】的地形組件。

image

將Project的Assets下的【New Terrain】拖放到Demos05子文件夾下,並將其換名爲【Demo05Terrain】。

在「層級視圖」(Hierarchy) 中選中地形 (Terrain) 後,即可以使用 F(焦點)鍵對地形進行輕鬆導航。按 F 後,不管鼠標在哪一個位置,都會移動到場景視圖 (Scene View) 的中心位置。這樣就能夠對某個區域進行潤色,快速移動到另外一個區域並修改其餘東西。若是在按下 F 鍵時鼠標沒有懸停在地形 (Terrain) 的某個區域,則整個地形 (Terrain) 都會被置於場景視圖 (Scene View) 的中心位置。

二、設置地形長寬

在檢視圖中,單擊地形組件中的【按鈕7】,修改【Resolution】選項卡下的參數設置,將地形的長(Length)寬(Width)都設置爲2000,其餘使用默認值:

image

下面是在Unity 5.3.4中初次建立地形後的默認值:

寬(Terrain Width):500

長(Terrain Length):500

高度(Height):600

Heightmap Resolution:513

細節分辨率(Detail Resolution):1024

Detail Resolution Per Path:8

Control Texture Resolution:512

Base Texture Resolution:1024

三、繪製山脈

在檢視圖中,單擊地形組件中的【按鈕1】,而後在地形上繪製出山脈的初步效果,這—步驟主要從總體角度來把握山脈效果,繪製出山脈的大體起伏便可:

image

而後在【Brushes】欄中選擇筆刷的樣式,爲山脈增長細節結構,用於模擬山脊的效果:

image

四、繪製平坦地面

繪製山脈上的部分平坦地面,以下圖所示:

技巧:按住Shift鍵配合單擊或按住鼠標左鍵能夠實時獲取到筆刷所在地形的相應位置的高度,並將該高度設爲筆刷的高度值。

image

五、爲地形添加材質(可選)

鼠標右擊Demo05文件夾,在該文件夾下建立一個材質:

image

而後將其命名爲【Demo05Material】:

image

選中Demo05Material材質,在Inspector視圖中單擊Shader右側的按鈕,在彈出的列表框中依次選擇【Nature】→ 【Terrain】→【Diffuse】項,爲terrain材質指定shade:

image

選擇地形,在Inspector視圖中,單擊【按鈕7】,而後單擊【Material】項右側的圓圈按鈕,在彈出的Sehct Matmal對話框中爲地形指定剛剛建立的材質:

image

說明:地形的材質不是必須設置的,一般沒置地形的材質是爲了可以更改地形的渲染Shader。若是該材質設置爲空,Unity會使用一套內置的地形材質。

六、添加紋理

單擊地形編輯器中的【按鈕4】切換到【Paint Textures】模式,單擊【Edit Texture】按鈕,選擇【Add Texture】項,會彈出Add Terrain Texture對話框,單擊Texture頂的【Select】按鈕,在彈出的Select Texture2D對話框中指定一張紋理做爲地形的首層紋理:

image

指定首層紋理後,Unity會自動將首層紋理平鋪在整個地形上。若是須要修改平鋪的大小,可繼續單擊【Edit Texture】按鈕,選擇【Edit Texture】項,在彈出的對話框中調節【Size】項的X、Y方向的數值便可。

首層紋理指定以後,接下來還能夠繼續爲地形指定其餘紋理用於豐富地形效果,方法與指定首層紋理相同。指定後再選中新添加的紋理,利用筆刷將該紋理繪製到地形上,這裏再也不演示。

七、添加路面

辦法與「6.添加紋理」相同。

下面是添加的路面紋理:

image

下面是添加路面後的效果:

image

八、添加樹

地形的紋理繪製完畢後,接下來爲地形添加樹。單擊地形編輯器中的【按鈕5】切換到【Place Trees】模式,單擊【Edit Trees】按鈕,選擇【Add Tree】,在彈出的Add Tree對話框中單擊【Tree】頂右側的圓圈按鈕,進而在彈出的【Se!ect CameObject】對話框中指定—棵樹做爲地形的樹(重複此操做能夠添加多種樹):

image

添加樹之後,在【Trees】預覽框中選中某種樹,設置合適的參數後,就能夠利用筆刷在地形上種樹:

image

若是但願修改已添加樹的樣式或受風力影晌的程度等參數,先在Tree預覽框中選擇要編輯的樹,而後單擊【Edit Trees】按鈕,選擇【Edit Tree】,在彈出的對話框中進行編輯。

要移除樹,單擊【Edit Trees】按鈕,選擇【Remove Tree】項便可。

九、添加草、灌木等

繪製完樹,接下來爲地形添加草、灌木等細節。

單擊地形編輯器中的【按鈕6】切換到【Paint Deails】模式,而後添加草坪、灌木等細節便可,用法與前面添加樹的辦法相似,這裏就再也不細講了。

十、設置其餘參數

當你熟悉之後,還能夠經過地形編輯器【按鈕7】下的選項,設置風颳草地和樹木的效果。最後,再添加光源讓整個場景看起來明亮絢麗等。

相關文章
相關標籤/搜索