當前位置:首頁 >教程首頁 > 影視後期 > 影視原畫與模型渲染大師班 >法線科普二:烘焙法線貼圖

法線科普二:烘焙法線貼圖

發布時間:2022-05-24 09:40:29

Hello,大家好,今天給大家帶來這是關於法線貼圖的係列第二部分,主要關於烘焙法線貼圖的知識點理解,我是麥狗。

1、烘焙法線貼圖

這是關於法線貼圖的係列第二部分,主要關於烘焙法線貼圖的知識點理解。

在此過程中,烘焙程序將依據從低模開始投射基礎光線,跟隨頂點法線並搜索高模。這是法線貼圖最重要的方麵,人們在使用法線貼圖時遇到的大多數問題都與此相關。如果不控製lowpoly模型的頂點法線,則將失去對法線貼圖的控製。

1.jpg

為了控製lowpoly模型的平滑,我們可以分割頂點法線(創建硬邊)或平均頂點法線(創建軟邊)。

事實證明,並非所有3D程序都使用相同的計算來平均頂點法線。這意味著您的lowpoly將看起來不同,其頂點法線指向的位置略有不同,具體取決於您使用的3D程序。這通常不是什麼大問題,因為這些偏差非常小,但會影響模型的外觀;使用法線貼圖時會加劇這些差異,因為法線貼圖正在修改在應用程序之間更改的低模法線。

2.gif

3D行業正在努力解決這個問題,最近出現了一個名為Mikk space的標準。這是一種計算所有3D應用程序都可以使用的頂點法線的方法,因此頂點法線不會在3D程序之間更改。但是請記住,並非所有3d應用程序都使用它。

另一種減少這種影響的方法是在烘焙時不要太依賴法線貼圖。嚐試將lowpoly與highpoly更緊密地匹配,並在平麵上使用更多硬邊。這樣,法線貼圖就不必做所有的工作,這些小偏差也就不那麼明顯了。

2、傾斜問題

當計算機對lowpoly頂點法線的法線方向求平均值時,曲麵角度的較大變化會使lowpoly法線“傾斜”,並且導致它們不會垂直於lowpoly曲麵。

3.gif

由於烘焙法線貼圖在搜索高模細節時會使用低模的法線方向,如果這些方向是傾斜的;它們將在法線貼圖上顯示為傾斜:

4.jpg

這是一個非常常見的問題,已經找到了幾種解決方案。但是沒有最好的解決方案,這實際上取決於模型。

傾斜問題的第一個解決方案是通過臨時修改lowpoly法線來重新製作有問題的零件,以便在不傾斜的情況下烘焙它們。八猴有此選項。Reddit用戶Tanagashi善意地向我解釋說,一些程序(如xNormal)可以對lowpoly進行鑲嵌以添加新頂點,並使法線垂直於lowpoly曲麵去烘焙對象空間法線貼圖,然後使用原始的lowpoly法線將其轉換為切線空間。使用這個新的法線貼圖,程序可以創建遮罩,以控製在何處使用原始法線貼圖和何處使用從細分lowpoly創建來的法線貼圖。

5.gif

我們還可以通過添加頂點來減少傾斜問題,因為一個90º的角度可以拆分為更小的角度,從而使第二個過渡更少傾斜。這顯然會增加你的多邊形計數。而且因為你在添加幾何體,所以我建議你使用這個額外的幾何體也可以為你的模型添加一個更有趣的輪廓。

6.jpg6-2.jpg

傾斜問題的另一個解決方案是分割平均頂點法線(加硬邊/使用單獨的平滑組):這樣,每個頂點將有多個法線,每個法線垂直於lowpoly曲麵。記住,當3D程序分割頂點法線時;它實際上會創建頂點的副本,因此這會增加頂點計數,並略微降低性能。此外,硬邊也會給您帶來“黑邊”的問題,我們將在後麵看到。

7.jpg

最後,我們還可以通過修改模型的法線來彎曲低模的法線,使其與高模細節垂直,從而減少傾斜問題。請記住,並非所有程序都允許修改法線(Zbrush僅具有平均法線,OBJ和舊的FBX文件沒有自定義法線信息)。基本上有兩種修改法線的方法:

加權法線:這是一種類似於平均頂點法線的自動方法。這裏的想法是,當平均頂點法線時,並非所有麵都具有相同的強度:較大的麵將以比較小的麵更大的強度向它們“拉動”頂點法線。這樣,較大的麵(通常更重要)將具有更好的細節投影。這對於highpoly麵板尤其有效。

8.jpg

自定義法線:使用3D軟件中的工具,可以彎曲lowpoly法線。這是一個相對較新的想法,沒有多少標準化的工具。請記住,彎曲法線可能會在模型的其他部分創建非常奇怪的意外著色,因此此技術通常與倒角結合使用。有人將這種技術稱為“midpoly modelling”。

9.jpg

3、烘焙距離

默認情況下,從lowpoly曲麵投射的光線移動是有限的距離,以防止lowpoly從highpoly的遙遠部分接收法線信息。此距離通常稱為“前/後距離”,因為光線可以朝向模型內部、外部或兩者投射。您可以在下圖中看到此距離以紅色表示:

10.jpg

一些3D應用程序(例如3ds Max)也允許我們使用框架。框架是lowpoly模型的“副本”,我們可以對其進行修改,使其完美地封裝了highpoly。並且,在某些情況下(並非全部),還允許我們更改光線的方向,而不更改原始的低多邊形頂點法線。這有助於獲得最佳烘焙極值並避免扭曲,但請記住,您並不是使用頂點法線的法線方向進行烘焙,所以最終將使用法線貼圖來修改實際的低模法線,因此結果可能看起來很奇怪。

11.jpg

4、烘焙接縫

有時,在烘焙法線貼圖時,我們可以看到一些接縫:

12.jpg

當我們在UV的中間有硬邊時,就會出現這些接縫。為什麼會這樣?

UV值可以非常精確:我們可以將一個頂點精確放置在坐標0.0001203123 U和0.34004021 V處。然而,紋理的精度要低得多:像素有限,不能分割(我們不能有半個像素)。

因此,某個像素可能正好位於0.001,而頂點可能位於UV空間內的0.00134。在考慮法線貼圖中像素的顏色時,我們必須選擇最能代表其內部麵的法線方向的顏色,因此我們進行平均:

13.jpg

這適用於所有烘焙過程,而不僅僅是法線貼圖。然而,當我們使用硬邊時,這在法線貼圖中更為明顯。法線貼圖指示方向,在硬邊的情況下,我們有兩個麵朝著不同的方向看,因此它們可能有非常不同的顏色。

14.jpg

在UV島(island)之間的交點處,孤島將競爭用其顏色填充像素。這意味著最終我們將得到來自島B的像素修改來自島A的像素的顏色,反之亦然。

由平滑邊分隔的孤島在法線貼圖上看起來非常相似(因為它們的法線方向是平均的),因此顏色上的微小差異不太明顯。但是,由硬邊分隔的孤島通常在法線貼圖上看起來非常不同(因為頂點法線被分割,並且每個麵都在不同的方向上),並且這種差異可以很明顯,沿著硬邊生成。

如果我們分割孤島,它們將不會競爭像素顏色:每個孤島將能夠修改整個像素以適應其法線方向。這就是為什麼當UV中的麵通過硬邊連接時,應將其拆分。

15.jpg

經驗法則非常簡單:隻要模型上有硬邊,就在UV中分離由其連接的麵。

5、總結

一旦我準備好lowpoly模型並盡可能地調整到highpoly模型,我就開始在UV之前進行平滑處理。我為lowpoly設置平滑(如果是有機的,我從一個完全平滑的模型開始,如果是硬表麵,我從30-60º的設置角度平滑開始;然後調整模型平滑,直到看起來很好)。為模型設置平滑後,我將處理UV,確保將所有硬邊拆分為單獨的UV孤島(以避免邊接縫)。

如果有傾斜錯誤,我會添加額外的邊(通常是斜麵,以保持更圓的輪廓)。這適用於我的大多數模型,但如果我使用Marmoset工具包進行烘焙,或者使用自定義/加權法線,我也可以修複傾斜錯誤。

如果存在投影錯誤,我會修改烘焙距離/框架,修改lopoly/highpoly,使其更適合烘焙,或者刪除某些非常硬的零件(如圓錐體尖端)上的法線貼圖。

下一篇將為法線貼圖烘焙製作故障診斷指南,並討論一些最常見的問題和解決方案。

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定