Daniel Cormino 制作《CrashSite》場景環(huán)境【中】
【由于該圖文分解過長,分成上、中、下三篇文章,便于提升閱讀體驗】

Daniel Cormino 正在研究一個我現在稱之為“CrashSite”的作品集。我將在此博客中盡可能多地描述我實現最終結果的過程。我的目標是記錄我正在使用的技術以及我正在做出的選擇的推理,無論是為了未來的我自己還是任何感興趣的人。
我正在創(chuàng)建的這個場景將在 Unreal 引擎上實時渲染,我的目標是達到可用于虛擬制作和 4k 分辨率的第一人稱游戲的質量水平(是的,相當大的挑戰(zhàn))。
我收集了生銹的金屬板的圖像,有些是涂漆的,有些是大門。我想獲得工業(yè)外觀,所以有一些工廠和機械的圖像。
.我想在細節(jié)上保持這個資產的簡單,周圍還有很多其他的資產,這個需要像背景一樣。它幾乎只是飛機,我什至添加了一些看起來金屬板重疊的部分。我不確定它是否看起來不錯,所以我沒有做太多。后來我意識到這些“接縫”效果很好,但我決定以后如果可能的話我會添加更多。
我給它增加了一些厚度,放置了更多的邊緣環(huán),以便通過噪聲模塊獲得更好的變形。我在邊緣的斜面上使用了面加權法線。uvs 是獨一無二的,沒有重疊,完全在 0-1 空間內。這與木材資產的工作流程幾乎相同。


我將紅色通道用于“更強的銹蝕”,綠色通道用于油漆,藍色通道基本上與紅色通道相反,但沒有邊緣遮罩。這個遮罩紋理的分辨率相當低,我發(fā)現如果稍微模糊一下效果會更好。

我從一個簡單的 Rust 基礎層開始:

我使用遮罩的紅色通道和平鋪遮罩來添加更深的粗銹:

我添加了一個帶有綠色通道的油漆層:

和往常一樣,我添加了一個顏色變化層。它不使用蒙版,只是應用在基色之上:

這里我添加了一個法線變化層,它是一個平鋪法線貼圖:

然后是污漬層。我在窗口上使用了污漬的平鋪 alpha 蒙版,基色是灰度紋理圖,用于值變化:

我對這個距離很滿意,但是當靠近時,我覺得我可以添加一些東西讓它變得更好。

從參考資料中,我注意到金屬總是有很多小劃痕,所以我為此添加了一層。我使用了劃痕的平鋪 alpha 蒙版,當您移開時它會淡出以避免噪音:



我覺得我可以在這些墻壁之間添加更多的分隔,更多的鑲板,但現在我將離開這個資產。如果我以后有時間我會努力的。
接下來,我將簡要介紹創(chuàng)建場景金屬屋頂的過程。
在項目的這一點上,我非常有信心我的工作流程會運行良好并且足夠快。我考慮到這些部件不會從很近的地方看到,所以我避免花時間在細節(jié)上,而更多地關注整個屋頂的大圖。
我收集了波紋屋頂瓦片的圖像,其中大部分是生銹和損壞的,還有一些 cg 屋頂的圖像。我還使用了一些其他廢品金屬作為參考。
我分析了這些圖像,發(fā)現 5 塊足以為場景提供自然變化。對于我需要的部分,我有一個非常清晰的畫面:兩塊帶有輕微失真的部分,這將是最常用的,因此它們需要足夠平淡,以免重復出現;兩片有嚴重變形和孔洞,可以謹慎使用以產生自然變化;和一個較小的一塊,一半大小,使用幾次并打破均勻性。

我從最簡單的一個開始,然后復制它來制作其他的。我不確定它是否會以這種方式運作良好,因此 Max 的修改器堆棧對于使用修訂版非常重要。我大量使用它來微調我想添加到這些作品中的細節(jié),與虛幻有一些來回,但它工作得很好,沒有太多麻煩。

在基本部分之上,我將添加一個編輯多邊形模塊,使用軟選擇選擇一些頂點并添加一個噪波或彎曲模塊。我這樣做了很多次以獲得所需的外觀,它允許我回到這些步驟中的任何一個并改變外觀。最重要的是,我剛剛添加了一個殼修改器來為網格賦予厚度。它確實使它們的三角形數量增加了一倍,但我覺得有必要在引擎中看起來不錯,如果你離得很遠,LOD 會使其足夠優(yōu)化。

所有的部分都共享相同的 uv 映射,這樣我就可以只為它們創(chuàng)建一個蒙版紋理。uv 完全包含在 0-1 空間內。它被拉伸以占據整個 uv 空間,這使得它在水平方向上有更多的像素,因此蒙版有更多的空間用于資產的波動。蒙版是 256x256 分辨率,稍后會詳細介紹。

我使用 RGB 通道來區(qū)分曲率的各個部分。蒙版的分辨率為 256x256,uvs 被水平拉伸以有更多的像素用于起伏。我稍微模糊了它,以便在引擎中獲得更平滑的結果。

我用我以前的金屬材料作為這個的基礎,所以這些層是相似的,但有一些非常重要的區(qū)別。請注意 Scratches 圖層被禁用,這是因為我發(fā)現 Unreal 有時會在您刪除圖層時崩潰,所以我保留它們但禁用了它們。這不會影響性能,因為 Unreal 會忽略禁用的層。
我從一個簡單的生銹基地開始:

我使用先前創(chuàng)建的 Mask 在頂部添加了較粗的銹跡:

然后我在上面加顏料。這是與以前的材料不同的地方,因為我需要并排放置許多這些部件,我決定根據網格的位置向油漆層添加變化,這樣它們看起來就不會完全相同,甚至 如果他們是:

您會注意到,雖然藍色油漆紋理的映射方式不同,但銹跡細節(jié)的位置似乎相同。那是因為我使用頂點顏色來定義生銹的位置,而這三個網格完全一樣。稍后我將在網格上顯示具有不同頂點顏色的最終結果。

然后我在它上面添加了一個顏色變化層,這個層也是基于位置的,所以現在我們的網格開始有點不同了:

在它之上,我添加了一個正常的變化層。你會注意到我?guī)缀蹩偸鞘褂妙伾驼W兓瘜樱@很好地打破了重復,因為這些層上的平鋪是不同的,它使碎片更加自然和多變。

最后,我使用基于位置的映射為其添加了一些污點:

在這一點上,我對材料結果非常滿意,并想測試一些變化,看看我可以在不改變太多的情況下讓它變得不同。
我對這種材料做了兩種變體,我覺得沒有必要再做更多。一種是黃色油漆,一種是原始版本的更舊且腐蝕程度更高的版本。黃色是為了在零件上添加一些重點,使其不那么均勻并分散顏色。較舊的版本是為了讓它看起來更像是來自不同時間或來源的床單,而且嚴重扭曲的床單看起來很棒。

起初我只使用一個網格構建了整個屋頂,它使事情變得更快,我不需要考慮會在哪里,而且復制和移動網格很快。放置好所有東西后,我開始選擇一些塊并用另一個網格替換,這又是非??斓?,只是在這里和那里選擇一些并同時替換所有。我用網格的所有變化來做到這一點。稍后我還單獨添加了一些片段,以獲得更好的構圖。我試圖盡可能接近參考中的構圖,因為我真的很喜歡它。
在對網格定位感到滿意后,我開始在這里和那里拖放材質變化以使其看起來更漂亮。這個過程不是線性的,有時我會回到網格,改變周圍的一些材料等等。我試圖突出各個部分之間的分離,以明確這些是單獨的表。當所有人都有相同的材料時,它看起來很泥濘和不確定。



我在“CrashSite”04 帖子中對此進行了更多討論。但基本上,使用分層材質會附帶很多著色器指令,因此我嘗試通過僅使用對每一層至關重要的內容來優(yōu)化它。有時它們只影響基色或法線,大多數不影響粗糙度等。關于磁盤使用主題,此工作流程通過不為每個資產使用具有高分辨率的獨特紋理來節(jié)省磁盤空間,這篇文章中的這些材質變化使用與我在上一篇文章中談到的金屬墻相同的紋理。此時唯一獨特的紋理是網格蒙版,在這種情況下分辨率僅為 256x256,引擎中總共有 48kb。
我對網格和材料的結果非常滿意。這個工作流程非常快,讓我可以快速獲得所需的外觀,并允許我在必要時輕松返回并編輯網格的任何部分。最后,我覺得我可以讓起伏更加突出,無論是在材料上還是在網格上,因為有時床單看起來很平,這取決于照明,但如果可以的話,我稍后會回來。
由于工作流程的原因,可以非常近距離地看到這些材料的清晰細節(jié),即使這不是這件作品的目標。

接下來我將簡要介紹我用來在場景中創(chuàng)建木結構的工作流程。這里使用的技術在之前的帖子“建模工作流程 - 測試資產”和“分層材料工作流程 - 測試資產 + 技術考慮”中有更好的解釋,這些帖子將解釋推理和目標。下面的這篇文章將主要是一個快速細分。

我從這個資產的封鎖開始,輕輕地對其進行細分,以便稍后添加一些變形。我在不同高度上添加了一些邊緣循環(huán)以具有不同的外觀,它打破了均勻性。

一開始我添加了一個高頻噪聲變形,它會產生小的變形,特別適合提示。

最重要的是,我添加了低頻噪聲,這會產生很大的變形,影響木梁的整體形狀或直線度。

然后我在頂部添加面部加權斜面。這些資產類型的值是標準化的。

UV 是唯一的,完全包含在 0-1 空間內,這是為了稍后創(chuàng)建烘焙網格蒙版。它將用于虛幻引擎中的材質。

虛幻內部的平面著色以及后來制作的其他資產:

首先,我在 Painter 中創(chuàng)建了一個網格蒙版,我以 1k 的分辨率將其導出,但在 Unreal 中將其限制為 512x512。直接在 512 導出使其更加模糊。此外,它可能是 256,而不會丟失太多細節(jié)。

遮罩的想法很簡單,紅色通道是邊緣遮罩,綠色通道是污垢遮罩;藍色通道是一個向上矢量遮罩,用于積沙。我在 Painter 中使用了很多烘焙蒙版來實現這個外觀,例如曲率貼圖、環(huán)境光遮蔽貼圖、厚度貼圖;然后使用 grunge 圖像對其進行更改。最后我選擇不使用沙子的材質層,因為它不可見,節(jié)省了一些性能。

我有一個基本的木質紋理作為我的基礎層:

我添加邊緣損壞層:

我添加了一個污垢層:

最后我添加了一個顏色變化層:



我用相同的技術創(chuàng)建了一些其他資產,并使用了這種木材的實例來進行變化。這里是其中的一些:


然后,我將簡要介紹我是如何創(chuàng)建場景中存在的鋼梁的。請查看這些帖子,了解我在此工作流程中做出選擇的原因:

我從基礎搭建開始,只是調整了表格以獲得正確的外觀。

我使用了五種不同的模型來構建帶有實例的結構。這些模型在上圖中標識:粗垂直梁、較細對角梁、方形板、半月形板和圓管。我調整了這些模型實例的變換以適應場景的需要。

我使用斜面和面加權法線來獲得圓角,而無需烘焙貼圖。
Uv 是唯一的,并且大部分包含在 0-1 uv 空間內,這是為了稍后創(chuàng)建一個烘焙的網格貼圖。鋼梁例外,它超出 0-1 空間,以保持正確的紋素密度。由于梁展開的方式,烘焙的網格圖可以垂直平鋪。uvs 有一些問題,有些地方被扭曲了(你可以在 uv 島的角落看到它)。由于時間限制和不引人注目的事實,這個問題沒有得到解決。



我在 Painter 上創(chuàng)建這些蒙版,我使用帶有垃圾蒙版的烘焙貼圖為稍后將在 Unreal 中創(chuàng)建的材質創(chuàng)建有趣的變化。紅色通道代表邊緣磨損,藍色通道代表粗銹,綠色通道代表油漆位。我以 256x256 分辨率導出了這個特定的地圖。此方法可降低磁盤空間使用率。

我現在使用的是虛幻引擎 5,但工作流程與 UE4 中的相同。請考慮一下,好像它只是 UI 的更改。
我從一個簡單的生銹材料作為基礎層開始:

然后我用我之前提到的面具添加了更粗的銹跡:

我添加了一些繪畫細節(jié):

然后我添加邊緣磨損,帶有黃色:

顏色變化層,基本上是放大后的照片紋理:

最后是污垢層:

在烘焙蒙版之上,我添加了平鋪細節(jié)蒙版,這樣看起來就好像我們有一個非常高分辨率的烘焙蒙版。我在本文開頭提到的帖子中對此進行了更多討論。
起初,所有模型都將具有完全相同的紋理并且看起來相同。為了避免這種情況,我添加了一些節(jié)點,這些節(jié)點根據模型在世界中的位置移動平鋪細節(jié)蒙版紋理:


