Unity-地形-草和其他細(xì)節(jié)
__地形__上可能有草叢和其他小對(duì)象(如巖石)覆蓋在其表面上。Unity 使用紋理四邊形或完整網(wǎng)格渲染這些對(duì)象,具體取決于您需要的細(xì)節(jié)級(jí)別和性能。草和其他細(xì)節(jié)當(dāng)前僅在內(nèi)置渲染管線和通用渲染管線?(URP) 中有效。

可啟用紋理四邊形的?Billboard?屬性,使其自動(dòng)面向攝像機(jī)。這是在游戲開(kāi)發(fā)中實(shí)現(xiàn)良好草叢效果的常見(jiàn)方式。
對(duì)于細(xì)節(jié)網(wǎng)格,可以將?Render Mode?屬性設(shè)置為?Vertex Lit?或?Grass。
選擇?Vertex Lit?可創(chuàng)建具有真實(shí)法線的頂點(diǎn)光照網(wǎng)格,這些網(wǎng)格不會(huì)在風(fēng)中移動(dòng)。
選擇?Grass?可創(chuàng)建使用地形法線的頂點(diǎn)光照網(wǎng)格,這些網(wǎng)格會(huì)在風(fēng)中移動(dòng)。
啟用細(xì)節(jié)
要啟用草和細(xì)節(jié)繪制,請(qǐng)選擇工具欄上的?Paint Details?按鈕。

最初,地形沒(méi)有可用的草或細(xì)節(jié)。在 Inspector 中,單擊?Edit Details?按鈕可顯示帶有?Add Grass Texture?和?Add Detail Mesh?選項(xiàng)的菜單。單擊任一選項(xiàng)將彈出一個(gè)窗口,在其中可以選擇要添加到地形以便進(jìn)行繪制的__資源__。
對(duì)于草,該窗口如下所示:

Detail Texture?是表示草的紋理。您可以從?Asset Store?下載紋理,也可以創(chuàng)建自己的紋理。紋理是一個(gè)小圖像,圖像中的空白區(qū)域的 Alpha 設(shè)置為零。請(qǐng)注意,這里的“草”(Grass) 是一個(gè)通用術(shù)語(yǔ);紋理可以表示花朵或人造物體(如鐵絲網(wǎng))。
Min Width、Max Width、Min Height?和?Max Height?值可指定生成的草叢的大小上限和下限。為了創(chuàng)建逼真的外觀,草是以隨機(jī)“噪點(diǎn)”圖案生成的,有裸露斑塊散布在草地上。
Noise Spread?值控制著裸露與草叢斑塊的近似大小,值越高表示給定區(qū)域內(nèi)的變化越大。Unity 使用柏林噪聲 (Perlin noise)?算法生成噪點(diǎn);__Noise Spread__ 是指在地形上的 x、y 位置與噪點(diǎn)圖像之間應(yīng)用的縮放。通常認(rèn)為,交替的草地斑塊處于中心位置比處于邊緣位置更“健康”,而?Healthy Color?和?Dry Color?中設(shè)置的顏色表示草叢的健康狀態(tài)。
最后,當(dāng)啟用?Billboard?選項(xiàng)時(shí),草的圖像將旋轉(zhuǎn),因此它們將始終面向__攝像機(jī)__。當(dāng)您希望顯示密集的草地時(shí),此選項(xiàng)很有用,因?yàn)椴輩彩嵌S的,不能從側(cè)面看到。然而,對(duì)于稀疏的草,草叢個(gè)體的旋轉(zhuǎn)對(duì)于觀察者來(lái)說(shuō)可能會(huì)變得很明顯,產(chǎn)生奇怪的效果。
對(duì)于細(xì)節(jié)網(wǎng)格,例如巖石,窗口如下所示:

使用?Add Detail Mesh?可從項(xiàng)目中選擇預(yù)制件。Unity 在?Min Width?和?Max Width?值以及?Min Height?和?Max Height?值之間對(duì)其隨機(jī)縮放。Unity 對(duì) x 軸和 z 軸使用寬度縮放,而對(duì) y 軸使用高度縮放。Noise Spread、Healthy Color?和?Dry Color?值的作用與它們對(duì)草的作用相同。
可將?Render Mode?設(shè)置為?Vertex Lit?或?Grass。
在?Vertex Lit?模式中,Unity 將細(xì)節(jié)對(duì)象渲染為場(chǎng)景中的實(shí)體頂點(diǎn)光照游戲?qū)ο蟆?/p>
在?Grass?模式中,Unity 以類似草的方式使用光照渲染場(chǎng)景中細(xì)節(jié)對(duì)象的實(shí)例。