特色部落格 |在虛幻引擎 5 中建立視差遮擋貼圖 (POM)

特色部落格 |在虛幻引擎 5 中建立視差遮擋貼圖 (POM)


理解 POM 等材料中如此複雜的方法仍然是一個問題,我們將嘗試深入理解如何使用 POM 並且盡可能簡短。此外,我們還將解釋每個節點的作用以及我們使用每個節點的原因。

我們先來了解一下虛幻引擎中有哪些材質? 虛幻引擎中的材質定義場景中物件的表面屬性。材質就像“油漆”一樣,定義了物件的視覺外觀。

現在什麼是POM? 視差遮擋貼圖 (POM) 是一種複雜的基於紋理的方法,可為網格添加更多細節。 使用 POM,我們可以比僅使用法線貼圖獲得更多的視覺深度,因為我們無需在網格上添加任何額外的頂點即可獲得三維形狀。 POM 使用光線追蹤來找到每個點的正確偏移。

那麼為什麼視差遮擋比對網格進行細分更好呢?

  1. 它比建模更快,因為您可以將其放在任何網格上;

  2. 易於設定 – 如果製作正確,您可以使用所有紋理進行設定。

但也有一些事情你應該記住:

  1. POM添加紋素高度數據,與紋素法線數據分開;

  2. 每個資料片段都會在 GPU 上進行光線追踪,以確定正確的視覺結果,從而解決上述所有限制。這在許多觀看條件下都給出了極其真實的結果,但代價是大量的 GPU 時間;

  3. 我們仍然使用相同的紋理。不同之處在於我們還在材質中加入了位移圖和更多節點;

  4. POM 並不真正適用於重疊的 UV,如果 UV 錯誤,看起來會很糟糕;

  5. 在可擴展性較低的情況下,POM 根本不可見。您應該至少具有中等的可擴展性;

  6. POM 是一個複雜的函數,我們需要很多節點,這些節點也應該正確配置,否則我們會得到工件;

  7. POV 無法很好地處理陰影貼圖,因此您可能必須為已為其指定 POV 材質的網格取消選取「投射陰影貼圖」。

那麼讓我們來創建一個 POM 材料。首先,讓我們創建一個材質。在“內容瀏覽器”中按滑鼠右鍵並選擇“材質”,現在您應該為其命名。由於它將成為主材質,因此我們將其命名為 M_POMbricks 或 MM_POMbricks。 「主材質」和「材質實例」之間的區別就像程式設計中的父母與孩子一樣。如果父母有一些價值觀,孩子也會得到它們,但孩子價值觀的改變不會影響父母。它們之間的聯繫稱為「參數」。

我們現在有了完全乾淨的材質,我們需要紋理。我們可以製作自己的紋理,但我們的主要主題是 POM,所以讓我們在「內容瀏覽器」上按滑鼠右鍵,然後選擇「新增 Quixel 內容」。尋找磚塊材料。就我而言,它是“磚牆”。下載它。

特色部落格 |在虛幻引擎 5 中建立視差遮擋貼圖 (POM)

下載後,按滑鼠左鍵兩次打開我們之前創建的材質。要獲得這些紋理,您必須選擇“BRICK WALL”的紋理並將其移至材質圖。然後你應該將它們全部連接起來,如下面的螢幕截圖所示。

3RD_IMAGE_-_MATERIAL_EDITOR.png

具有通常顏色但沒有任何光線資訊(反照率)的紋理屬於“基色”,在這種情況下,它提供了我們需要在磚牆中看到的顏色。藍色紋理屬於“正常”,因為它具有深度。但是我們稱之為“ARD”紋理的黃色紋理與其他紋理不同,因為它在不同的通道中內部有一些紋理,所以我們將使用其中的一些紋理。 ARD = 環境光遮蔽 + 粗糙度 + 位移,這就是我們像螢幕截圖上那樣連接的原因。

現在讓我們建立更多節點,這樣我們最終就可以得到 POM 效果了。若要建立節點,請在材質圖內按滑鼠右鍵並寫下節點的名稱。或按調色板並找到您需要的節點。在螢幕截圖中,每個節點都有名稱。

常數 – 是我們需要給出數值的數字。這是一個綠色的小節點。按下滑鼠右鍵並輸入“Constant”,然後按滑鼠左鍵。您可以在下面的螢幕截圖中看到其他節點的名稱。

4TH_IMAGE_-_CREATION_OF_A_CONSTANTE.png

5TH_IMAGE_-_ALL_NODES.png

我們繼續吧。您看到螢幕截圖中的 Constante 節點有不同的名稱嗎?這是因為它們不只是節點,它們還是參數。現在您必須在它們上按滑鼠右鍵,然後按“轉換為參數”,然後像這些螢幕截圖中那樣命名它們。

現在讓我們來探索每個節點。它們各自的意義是什麼?

6TH_IMAGE__-_NODES_HEIGHTMAP.png

1)Channel(之所以這麼稱呼,是因為我們在將此節點設為參數後如此命名) – 是一個四向量常數,要創建它,您不僅需要編寫“constant”,還需要編寫“constant4vector”。正如我們之前所寫,該節點控制將向 ParallaxOcclusionMapping 提供哪個通道。如果您還記得我們寫的關於 ARD 的內容,那麼您可以猜到我們將使用「B」通道,這意味著我們必須將其完全設為藍色,因此它應該是 0,0,1,0。我們也使用了節點“Append”,因為ParallaxOcclusionMapping 希望我們給出constant4vector 的值(這就是編寫V4 的原因),並且由於四向量常數具有Alpha 通道,我們給出顏色(B 通道)和alpha。

7TH_IMAGE__-_NODES_SOME.png

2)紋理座標控制紋理的縮放。建立另一個節點並將其連接到「Multiply」(該節點將兩個連接的值相乘),建立另一個節點並將其也連接。現在您可以擴展它。我們需要紋理座標,其比例取決於您正在創建的場景。

3) 高度比(一向量常數的參數)- 控制高度圖的值,換句話說,控制該材料的 POM 含量。我們將編寫 0.3 作為預設值,並在要建立的材質實例中更改它,因為一切都取決於我們使用的紋理。

4) 最小步數和最大步數 – 使 POV 平滑的值。步驟越多,它就會變得越平滑,就像Blender中的修改器「細分」一樣。

8TH_IMAGE__-_TILING.png

正如您所看到的,我們將 ParallaxOcclusionMapping 連接到紋理,但我們也連接了兩個節點的「像素深度偏移」。我們這樣做是因為否則我們不會有任何 POV 效果。但正如我之前提到的,由於我們使用像素深度偏移,很可能您應該關閉我們將要使用我們的材質的演員的“投射陰影”,因為它們不能很好地協同工作。

現在我們明白為什麼要為 POM 效果建立這樣的節點了。請記住,帶有參數的材質實例可以幫助我們製作材質,這種情況也不應該例外。

在本文的最後添加一些可以幫助您的內容會很棒:

  1. 紋理解析度影響記憶體和頻寬。它們會導致滯後和凍結。你如何處理決議完全取決於你自己;

  2. 如果您收到警告“當前材質存在編譯錯誤,因此當前不會在功能等級 SM6 中渲染”,那麼您可能忘記將節點 Constant4Vector(本文中圖像的高度圖)設為參數;

由《Skyhell》遊戲開發者、Cube of Skill 導師兼共同創辦人 Alexander Mukhitdinov 撰寫。日期 – 2024 年 8 月 26 日。 [email protected]



More From Author

帕特里克·馬霍姆斯表示泰勒·斯威夫特“已經在為酋長隊制定戰術”

帕特里克·馬霍姆斯表示泰勒·斯威夫特“已經在為酋長隊制定戰術”

「一聽到下雨我就驚慌」:紐約致命的地下室公寓面臨越來越大的洪水風險

「一聽到下雨我就驚慌」:紐約致命的地下室公寓面臨越來越大的洪水風險

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments

No comments to show.

Categories