Hello,大家好,今天跟大家分享Unreal製作程序網格材質圖文教程,我是木偶心沒。
在本教程中,我們將創建一個程序化材質,它將在世界空間中將可自定義的網格投影到任何表麵上。這種材質具有多個網格選項、用於創建細分的不同線條粗細、可配置的棋盤圖案以及其他一些用於遮擋關卡的有用功能。
我創建這種材質的目標是提供一個簡單但功能強大的工具,讓設計師在製作關卡原型時能夠輕鬆地了解比例。它需要易於使用、可定製(不需要幾十個參數),並且完全是程序化的,因此它可以在任何大小下運行。
我將在一個新項目中從頭開始製作這個材質球。如果你已經熟悉此類材質,並且你隻是想看看這種材質與你可能使用過的其他材質有何不同,這裏是完整的材質節點圖。
1、Material Instance
網格材質隻有三個參數組;Grid、Checker和 PBR。
Grid
Line tint
材質網格線的顏色。
Primary grid size
以厘米為單位的網格大小。默認情況下,它設置為100,因此網格線間隔 1m。
由於此材質不使用 Unreal Units,因此如果你修改測量設置,該值不會更改。
Primary grid line width
主網格線的粗細。與原點相交的線的強度將是此寬度設置的兩倍。
Use secondary grid
此設置將啟用/禁用一組輔助網格線。默認情況下,設置為true.
Secondary grid size
輔助網格線的大小(以厘米為單位)。默認設置為20,在每個主單元格內製作一個 5×5 的網格。
Secondary grid line width
默認設置為0.5cm。
Secondary grid intensity
此值設置輔助網格線的強度以幫助提高視覺清晰度。值為1表示完全不透明,而值為 0在視覺上與完全禁用輔助網格相同。它的默認值為.2。
Secondary grid fade distance
輔助網格將完全淡出時距攝像機的距離。這是為了避免當 Unreal 嚐試在遠處繪製鉛筆細線時可能出現的任何難看的閃爍偽影。默認情況下設置為2000cm。
Checker
Checker size
棋盤格圖案的一次迭代的大小(以厘米為單位)。
Wall tint
網格材質應用於垂直表麵時的顏色。
Floor tint
網格材質應用於水平表麵時的顏色。
Projection transition contrast
此值將決定材質應在水平和垂直表麵之間混合的程度。值越高,過渡越劇烈。默認情況下,它設置為0,這意味著在傾斜表麵上,顏色將彼此均勻混合。
不同“Projection transition contrast”值對球體的影響
2、Create Material
在你選擇的項目中(我使用的是引擎版本 4.26.2)創建下麵的材質以及材質函數。
一個名為M_Grid的新材質。
兩個新的材質函數。將它們分別命名為MF_Checker和MF_GridLines。
MF_GridLines
我的第一個材質函數將在世界空間中以固定間隔創建一組可定製的線。我們將在材質中使用此函數的兩個實例來創建主網格和輔助網格。
這不是一個很複雜的節點,但它做了很多重要的數學運算。第一部分通過將繪製像素的世界位置除以任意輸入網格大小來生成我們的世界空間網格,然後將餘數乘以自身。
該函數的輸出使用100的大小和1 的線寬
這真的很接近我們需要的,除了有一個問題。在某些世界空間位置,網格麵與網格上的一條線平行,會發生很多奇怪的閃爍。例如,這個立方體的頂麵位於網格的一條線上。Unreal 真的很困惑要畫什麼,所以它試圖一次畫兩個東西。
但是,Epic 已經在他們的內置材質函數“WorldAlignedTexture”中為我們解決了這個問題。如果你雙擊查看此函數的內部,你會看到它們分別投影每個方向,然後根據頂點法線的方向將它們混合在一起。這是我們想要的行為,因此我們將實現類似的東西。
你可以從深入了解Unreal 的材質函數中學到很多東西
MF_GridLines 中的“Creating masks based on vertex normal”部分也執行此操作。它提供了兩個蒙版,一個用於使用藍色通道(Z 軸)使頂點法線朝上或朝下,另一個用於使用紅色通道(X 軸)朝前或朝後。
最後一部分拆分出我們需要的三個投影,然後根據vertex normal mask在它們之間進行混合。這最終會得到一個可以在任何方向上工作的網格,即使應用於更複雜的對象也是如此。
MF_Checker
這個函數稍微高級一點,但使用相同的原理。
你可以從MF_GridLines複製/粘貼第一部分,但需要添加一些內容才能獲得我們需要的功能。這個版本不是生成一組網格線,而是創建一個棋盤格圖案,其大小是我們任意大小輸入的一半。我們需要記住這一點以備後用。
其餘部分是我們之前圖表的一個變體,我們將三個不同的投影分開,然後使用我們的vertex normal mask重新組合它們。重要的是要注意遮罩現在有一個額外的Projection transition contrast scalar輸入值。這將調整蒙版的對比度,改變投影之間過渡的粗糙度。
我們需要在這個函數中做的最後一件事是添加一些顏色變化。我添加了兩個顏色輸入和一個 lerp 節點,該節點將使棋盤格圖案中的每個方塊的強度大約為第一個方塊的一半。
主材質
最好把兩個材質函數組合在一起。這主要是放入我們的函數並創建參數來控製它們。
Primary grid部分隻是我們MF_GridLines有用於控製其尺寸和線寬兩個標量參數材質功能中的一個。
Secondary grid部分是相似的,但也包括一些額外的節點。其中之一是 CameraDepthFade 函數,它設置細分線將淡出時距相機的距離。我將隻使用Fade Length輸入並將其餘部分保留為默認值,但你可以參數化其他值以獲得更多控製。
Checker部分就更簡單了,隻是需要添加一些參數來控製它。你可以使用我選擇的相同默認值,也可以選擇你自己的默認值。
3、效果
程序網格材質將適用於任何比例和任何網格。它使用很少的texture samplers,並且將是一個非常有效的工具來幫助你屏蔽關卡。如果你想進一步減少指令數,你可以在材質編輯器詳細信息麵板中將材質設置為“Unlit”和“Fully Rough”。
材質的lit(頂部)和unlit版本之間的複雜性差異
- End -
來源:Thepoly公眾號
下一篇 如何在UE4中實現完美打光?
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答本文探討了室內設計課程線下學習的價值和優勢,為有誌於深入學習室內設計的學生提供了參考和建議。了解火星時代教育的新興在線學習平台......
遊戲特效培訓學習班是為了滿足遊戲行業對專業特效人才的需求,通過係統的培訓學習,幫助學員掌握遊戲特效技術,提升職業素養和技能水平。
本文評價和推薦一門優質的UI設計課程,為學習者提供專業的UI設計培訓,適合想要從事網頁UI和前端開發的人士。
本文是一篇關於有經驗的UE5設計培訓的文章,為學習和提升UE5設計技能的人們提供相關的培訓信息和建議。
想要學習3dmax的火星學習哪個學校好?本文介紹了一些值得考慮的選擇。
本文介紹網絡遊戲模型培訓班的重要性和益處,以及如何選擇適合的培訓班。
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!