地形快速入門指南
利用虛幻引擎中的地形系統(tǒng)基礎(chǔ)知識(shí)設(shè)置和運(yùn)行。
《虛幻編輯器地形快速入門指南》將對(duì)新建地形、塑造地形,新建地形材質(zhì),及在地形上繪制此類材質(zhì)進(jìn)行講解。
1 - 使用地形工具
虛幻引擎4(UE4)內(nèi)置的 地形(Landscape) 系統(tǒng)是一個(gè)工具合集,可幫助你創(chuàng)建 龐大的戶外環(huán)境。但在深入講解創(chuàng)建首個(gè)地形前,先來(lái)熟悉與地形系統(tǒng)互動(dòng)時(shí)的最常用工具和鍵盤輸入。
打開地形工具并使用模式
用于與地形系統(tǒng)交互的所有工具均可在 模式 下拉菜單 中的 地形 選項(xiàng)下找到。要啟用地形工具,點(diǎn)擊模式下拉菜單并從菜單中選擇對(duì)應(yīng)選項(xiàng)即可。
地形工具共有三種模式:管理(Manage)、造型(Sculpt) 和 繪制(Paint),點(diǎn)擊地形工具欄窗口頂部的圖標(biāo)即可進(jìn)行訪問(wèn)。利用此類模式可以不同方式與地形互動(dòng)。以下是各模式支持操作的概覽。
與地形工具互動(dòng)
雖然地形工具中的三種模式可讓你分別以不同的方式與地形互動(dòng),但其所用的鍵盤和鼠標(biāo)按鍵卻非常相似。以下為使用地形工具時(shí)最常使用的按鍵、按鍵組合和鼠標(biāo)按鈕的概覽。
潛在問(wèn)題和解決方法
開始繪制地形時(shí),可能會(huì)遇到如基本材質(zhì)消失或變黑等問(wèn)題,如下圖所示:

發(fā)生此類情況是由于開始繪制時(shí),地形上沒有繪制圖層數(shù)據(jù)。要解決此問(wèn)題,需繼續(xù)繪制地形,操作以生成繪制圖層數(shù)據(jù)。如要填充整個(gè)地形,首先選擇大型筆刷尺寸,例如8192.0,選取要用作基礎(chǔ)的圖層,然后在整個(gè)地形上繪制一次。此操作可創(chuàng)建繪制圖層數(shù)據(jù),以便繼續(xù)進(jìn)行繪制,而材質(zhì)不會(huì)變黑。
另一個(gè)潛在問(wèn)題是地形上使用的紋理縮放過(guò)大或過(guò)小。要解決此問(wèn)題,需要打開地形材質(zhì),然后選擇 Landscape Coords 節(jié)點(diǎn)。選中后,調(diào)整 細(xì)節(jié) 面板中的 映射縮放(Mapping Scale) 并保存材質(zhì)。編譯后,在視口中檢查縮放。如對(duì)縮放效果不滿意,重復(fù)上述過(guò)程直到獲得理想效果。
6 - 地形提示和技巧
以上快速入門教程已對(duì)設(shè)置和運(yùn)行地形的基礎(chǔ)知識(shí)進(jìn)行了講解,但對(duì)地形工具的介紹卻十分淺顯。此章節(jié)旨在展示部分地形工具的使用提示和技巧,及生成地形所需外部工具。
提示和技巧
1.使用 繪制工具 時(shí),相較使用 Shift + 鼠標(biāo)左鍵 進(jìn)行擦除,直接對(duì)要擦除的區(qū)域進(jìn)行整體繪制將更為簡(jiǎn)單。
2.使用 Alpha筆刷 時(shí),記住可從 紋理通道(Texture Channel) 下拉菜單中選擇其他RGB通道來(lái)更改筆刷圖案??蓪⒆疃嗳N不同Alpha圖案打包到單個(gè)紋理中,因此此操作將十分方便。
3.地形根據(jù)組件上繪制的圖層,分別編譯各組件的著色器。因此,假設(shè)擁有之上有泥土圖層的組件,但該組件上并未繪制草地圖層,該組件的材質(zhì)將忽略草地圖層的紋理,從而降低渲染開銷。因此進(jìn)行優(yōu)化時(shí),可檢查地形,尋找并移除只有少量給定圖層的組件,降低材質(zhì)復(fù)雜度。
4.繪制圖層時(shí)還需注意另一問(wèn)題:避免在同一組件上繪制過(guò)多紋理。材質(zhì)編輯器統(tǒng)計(jì)數(shù)字顯示允許使用的紋理樣本數(shù)量限制。但對(duì)地形材質(zhì)而言,每層的遮罩也將被視為紋理取樣而不會(huì)在統(tǒng)計(jì)數(shù)據(jù)中體現(xiàn)。如在組件上繪制新圖層時(shí)出現(xiàn)默認(rèn)紋理(灰色方塊),原因可能是超過(guò)了紋理樣本的數(shù)量限制、需要移除一個(gè)圖層、或需要對(duì)材質(zhì)進(jìn)行優(yōu)化(使用更少的紋理)。
5.可更改單個(gè)地形組件的LOD距離因子,以便其在較近或較遠(yuǎn)的距離閾值中進(jìn)行簡(jiǎn)化。逐漸遠(yuǎn)離山頂或其他擁有獨(dú)特輪廓的地形時(shí),將對(duì)最明顯的區(qū)域進(jìn)行LOD,因此可減少這些組件的LOD偏差,保留其形狀。也可增加低精度區(qū)域(如平原等在擁有較少曲面細(xì)分時(shí)也不會(huì)存在較大差別的區(qū)域)的LOD偏差。
世界場(chǎng)景構(gòu)成
在虛幻引擎4(UE4)中,可使用 世界場(chǎng)景構(gòu)成(World Composition) 工具對(duì)地形進(jìn)行簡(jiǎn)單管理,并創(chuàng)建巨大的世界場(chǎng)景。世界場(chǎng)景構(gòu)成的設(shè)計(jì)理念是為簡(jiǎn)化大型世界場(chǎng)景(尤其是使用地形系統(tǒng)創(chuàng)建的世界場(chǎng)景)的管理。欲了解世界場(chǎng)景構(gòu)成工具的更多信息,請(qǐng)留意后期更新!
外部創(chuàng)建工具
雖然默認(rèn)地形工具可以滿足造型和繪制的所有需求,但有時(shí)需要對(duì)地形外觀和風(fēng)格進(jìn)行更深入的調(diào)整??梢允褂靡韵萝浖鼘?shí)現(xiàn)地形工具無(wú)法達(dá)到的效果。


地形技術(shù)指南地形的技術(shù)設(shè)置。
為了使地形系統(tǒng)發(fā)揮最佳性能,必須遵守一定的技術(shù)限制。以下文檔旨在提醒您注意這些限制,并為您提供有價(jià)值的信息,以便您能夠在地形的美觀和性能之間達(dá)到最佳平衡。
技術(shù)細(xì)節(jié)
[圖片上傳中...(Snipaste_2021-05-18_00-06-29.jpg-a75d1d-1621267596125-0)]
剛開始時(shí),地形高度圖的有效維度并不總是立即會(huì)顯示出來(lái)。要確定高度圖的哪些維度是有效的,以及除此之外哪些維度是最佳的,還需要對(duì)地形的底層架構(gòu)有一個(gè)全面的了解。為了創(chuàng)建一個(gè)允許使用巨大地形但又能繼續(xù)高效利用內(nèi)存和性能的系統(tǒng),架構(gòu)隱式地對(duì)高度圖的維度進(jìn)行了限制,這意味著某些維度是有效的,而其他維度則無(wú)效。在虛幻引擎中先前的地形系統(tǒng)中,沒有任何限制(即任何維度都是有效可行的)或限制相當(dāng)簡(jiǎn)單(即只允許兩個(gè)高度圖的平方冪)。地形高度圖的限制更加復(fù)雜和嚴(yán)格。
地形Actor是采用顏色編碼,這樣更容易說(shuō)明每個(gè)部分發(fā)揮什么作用。地形的邊緣用黃色突出顯示,每個(gè)組件的邊緣用淺綠色顯示,分段邊緣(如果設(shè)置為2x2分段)用中綠色顯示,單獨(dú)的地形四邊形用深綠色顯示。

地形組件
地形分為多個(gè)組件,它們是虛幻的基本渲染單元、可視性計(jì)算單元和碰撞單元。地形中的組件都具有相同的大小,并且總是呈現(xiàn)為正方形。地形組件的大小是在創(chuàng)建地形時(shí)決定的,而選擇取決于您希望創(chuàng)建的地形的大小和細(xì)節(jié)。
各個(gè)組件的高度數(shù)據(jù)存儲(chǔ)在單個(gè)紋理中。因此,它的大小必須是頂點(diǎn)數(shù)的2次冪。沿著兩個(gè)相鄰組件邊緣的共享頂點(diǎn)行被復(fù)制并存儲(chǔ)在每個(gè)組件中。因此,考慮每個(gè)組件中的四邊形數(shù)量是有意義的。
下面是一個(gè)非常簡(jiǎn)單的地形(其輪廓為綠色),包含四個(gè)組件。每個(gè)組件由一個(gè)四邊形組成。一個(gè)組件已經(jīng)被分離,以顯示組件相交處的頂點(diǎn)是如何重復(fù)的。

組件分段
組件可以分為1或4(2x2)個(gè)子分段。這些分段是地形LOD計(jì)算的基本單元。
使用4(2x2)子分段選項(xiàng)可以得到與使用四倍組件(每個(gè)組件只有一個(gè)子分段)相同大小的高度圖,但是使用更少的組件通??梢垣@得更好的性能。
每個(gè)分段的大?。ㄒ皂旤c(diǎn)數(shù)量計(jì))必須是2的冪(最大為256x256)。這樣,不同的LOD級(jí)別可以存儲(chǔ)在紋理的mipmap中。這將導(dǎo)致一個(gè)組件中各個(gè)方向(x或y)的四邊形的數(shù)量要么是2的冪減1(如果每個(gè)組件有1個(gè)分段),要么是2的冪減2(如果每個(gè)組件有4個(gè)分段)。
下面是一個(gè)單獨(dú)的組件(其輪廓為綠色),包含四個(gè)分段。每個(gè)分段由9(3x3)個(gè)四邊形組成。同樣,您可以看到這些分段相交的頂點(diǎn)都是重復(fù)的。

性能注意事項(xiàng)
組件大小與組件總數(shù)的選擇是一種性能上的權(quán)衡。較小的組件大小可實(shí)現(xiàn)更快的LOD過(guò)渡,也可實(shí)現(xiàn)更多地形的遮擋,但是組件越小,需要的組件越多。
每個(gè)組件都有一個(gè)渲染線程CPU處理成本,每個(gè)分段都是一個(gè)繪制調(diào)用,所以盡量將這些數(shù)字保持在最小值。對(duì)于最大的地形,Epic建議最多使用1024個(gè)組件。
計(jì)算高度圖維度
正如您所看到的,地形的維度是基于每個(gè)分段中的四邊形數(shù)量、每個(gè)組件中的分段數(shù)量以及地形中呈現(xiàn)的組件數(shù)量。一旦確定了組件數(shù)量和每個(gè)組件的分辨率,計(jì)算整個(gè)地形的維度就變得非常簡(jiǎn)單。
以下是一些示例場(chǎng)景:
示例1
如果我們從包含64x64個(gè)頂點(diǎn)的單個(gè)分段組成的組件開始,那么組件的大小就是63x63個(gè)四邊形。假設(shè)我們有一個(gè)由10x10個(gè)這些組件組成的地形,那么地形中總共有630x630個(gè)四邊形?,F(xiàn)在,如果我們想要導(dǎo)入這樣一個(gè)地形的高度,我們必須有一個(gè)有631x631個(gè)頂點(diǎn)的高度圖,因?yàn)榇嬖诘捻旤c(diǎn)總是比四邊形多一行(想象一個(gè)1x1四邊形 - 它需要4個(gè)頂點(diǎn))。因此631x631是一個(gè)有效的地形大小。
示例2
如果某個(gè)組件可分成4個(gè)子分段,且每個(gè)子分段由64x64個(gè)頂點(diǎn)組成。這樣每個(gè)分段就有63x63個(gè)四邊形,每個(gè)組件就有126x126個(gè)四邊形。如果我們有32x32個(gè)這樣的組件,我們?cè)诿總€(gè)方向上得到共計(jì)126 * 32 = 4032個(gè)四邊形。因此整個(gè)地形將有4033x4033個(gè)頂點(diǎn)。
上述例子都以正方形地形為探討對(duì)象。但是,您可以創(chuàng)建非正方形的地形。例如,在第一個(gè)例子中,10x10并不特殊。假設(shè)每個(gè)組件有63個(gè)四邊形,您可以得到由AxB個(gè)組件組成,且總大小為(A63+1 , B63+1)個(gè)頂點(diǎn)的任意地形。
計(jì)算高度圖Z縮放
虛幻引擎4在計(jì)算地形高度時(shí),讀取的數(shù)值范圍在-256到255.992之間,使用的精度為16位。然后,這個(gè)數(shù)值會(huì)和你在導(dǎo)入高度圖時(shí)使用的Z縮放值相乘。假如,如果Z縮放值是1,則最大高度大約是256厘米,而最大深度約是-256厘米。因此,當(dāng)Z縮放值的默認(rèn)值為100時(shí),高度值的范圍在256米(m)到-256米(m)之間。

為了計(jì)算自定義高度,你需要使用一個(gè)比例值,把你的自定義高度的范圍轉(zhuǎn)換成虛幻引擎使用的-256到256的范圍。由于高度范圍總計(jì)有512個(gè)單位(-256到0是256個(gè)單位,0到256是256個(gè)單位),所以比例是1/512,也就是0.001953125。讓我們首先把測(cè)量單位換算成厘米,然后乘以這個(gè)比例。下面是一個(gè)例子:
假設(shè)你希望在虛幻引擎中表現(xiàn)夏威夷的最高峰莫納克亞峰(海拔4207米):
首先讓4270乘以100,將高度單位轉(zhuǎn)換為厘米。結(jié)果是420700厘米。
1..接著,將轉(zhuǎn)換后的高度乘以比例:420700厘米乘以0.001953125等于821.6796875。
2.于是算出Z縮放值是821.6796875,計(jì)算出的高度值范圍在-210.350厘米到210.350厘米之間。
3.導(dǎo)入高度圖文件后,在"Z縮放"屬性中調(diào)整數(shù)值會(huì)改變地形在視口中的預(yù)覽效果。
通過(guò)這種方法,你可以獲得山脈的精確高度,但該高度不包含山脈在海平面以下的深度。假如你想在地形高度有上增加一些額外空間,你可以相應(yīng)地調(diào)整你的初始高度。舉個(gè)例子,莫納克亞山會(huì)在海平面以下繼續(xù)延申5761米,因此初始總高度應(yīng)該是9968米。
建議地形大小
為了讓事情變得更簡(jiǎn)單,這里有一些尺寸可以用于在最大化面積的同時(shí)最小化地形組件的數(shù)量。

圖層調(diào)試模式
圖層調(diào)試(Layer Debug) 模式允許在視口中將特定圖層的權(quán)重顯示在地形上。您可以在視口的視圖(View)菜單下的 地形查看器(Landscape Visualizers) 下啟用圖層調(diào)試模式。
啟用圖層調(diào)試模式后,將顯示可用于選擇單獨(dú)顏色信道的單選按鈕,且目標(biāo)圖層將包含在列表中。

選擇一個(gè)信道將對(duì)地形應(yīng)用一個(gè)著色器,該著色器顯示所選目標(biāo)圖層的信道所覆蓋的區(qū)域。

