當前位置:首頁 >教程首頁 > 影視後期 > 影視原畫與模型渲染大師班 >法線科普四:法線圖的故障排除

法線科普四:法線圖的故障排除

發布時間:2022-06-28 09:52:59

Hello,大家好,今天給大家帶來法線科普四:法線圖的故障排除,我是麥狗。這是法線係列的第四部分,但它與其他部分是獨立的,可以作為一個獨立的部分來看。

之前的三篇鏈接:

 法線科普一:什麼是法線貼圖?

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

 法線科普三:法線類型的總結

下麵是我遇到過的法線圖問題的彙編,以及我知道的一些解決方法。

一、在我的模型邊緣有“接縫”

1.jpg

當你的UV中的連接麵被一個硬邊隔開時,就會發生這種情況。每個麵都會爭先恐後地修改邊緣的像素的顏色,大多數時候會有一個接縫,當它影響到我們模型的法線時就會非常明顯,產生這些奇怪的線條。

2.jpg

解決辦法:如果你分割UV島,使它們在UV空間中不再相連,每個島的顏色將保持分離,因為它們不再爭奪UV空間。

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

二、我的法線圖看起來非常不對,尤其從某些角度看

這個問題的出現有多種原因,讓我們來討論其中一些原因。

1.你正在使用錯誤的切線空間。我們試圖用法線貼圖來彎曲你低模上的法線,在烘焙程序中的計算方式可能與你用來渲染模型的程序不同。如果這些計算方式不同,你的法線貼圖可能看起來非常奇怪,特別是從某些角度看。

3.gif

另外,你有可能把世界空間法線貼圖當作切線空間法線貼圖使用。在這種情況下,請確保你正在烘烤一個切線空間法線貼圖,並以此來使用它。

解決方案:

1.總是嚐試使用Mikk切線空間基礎來計算你的法線圖。這是一種標準化的法線計算方式,是為了避免這類問題而製定的。如果你的法線圖烘焙程序不能使用Mikk,請嚐試使用一個程序,如handplane,在一個切線空間和另一個切線空間之間切換。

2.你在你的法線圖上使用了伽馬校正:法線圖不是帶有顏色信息的常規圖像。它們攜帶表麵法線信息,並不像彩色圖像那樣表現。伽馬校正是對圖像顏色的一種調整,它可以以不需要的方式改變法線圖的顏色。要消除您的法線圖中的伽馬校正,請將您的法線圖的顏色空間改為線性/線性顏色/raw,或者在虛幻引擎中取消勾選sRGB選項。

4.gif

3.你沒有把切線空間法線貼圖作為切線空間法線貼圖使用:確保你的引擎沒有把你的切線空間法線貼圖作為物體空間法線貼圖、凹凸貼圖、位移貼圖等。

4.你的低模法線在烘焙程序中與你的渲染程序中的低模法線不同:如果你在導出/導入過程中丟失了平滑組/硬邊信息,如果你使用的是自定義/加權法線,而你的渲染程序不支持或丟棄了這些信息,就會發生這種情況。

在這種情況下,比較兩個應用程序中的低模,如果它們看起來不一樣,試著改變導入/導出設置,調整你使用的文件格式(obj文件失去法線信息)和你的程序與自定義法線的兼容性。

三、如何製作一個尖錐體的法線圖?

解決方案:你...不需要。你不需要對所有東西都使用法線貼圖。尖錐體是一個典型的例子,但還有許多其他地方不需要法線貼圖。

5.jpg

我們使用法線圖來改變我們的低模法線的法線方向。有時候,我們的法線的方向是完全正確的,不需要任何調整。其他時候,我們的低模的法線是非常彎曲的(比如在尖峰的情況下),高模的細節不能與低模的表麵正確對齊。在這些情況下,我隻需用這個顏色擦除法線圖的細節。

6.jpg

這種顏色是50%的紅色、50%的綠色和100%的藍色,不會改變切線空間法線圖的法線方向,所以你可以用它來擦除投影效果不好的細節。

尖錐隻是一個例子,說明法線貼圖可能無法解決你的問題。重要的是,我們要記住,在有些情況下,法線貼圖並不是最好的解決方案,它們是有限的,我們不能期望它們在每一種情況下都能做到我們所需要的。有時候,我們花了很多時間試圖讓法線貼圖發揮作用,而我們可以直接將細節添加到漫反射貼圖或低模上,而不依賴法線貼圖來解決這個具體細節。

四、我的模型上的細節看起來是顛倒的

這是一個非常普遍的問題,在很多視頻遊戲中都可以看到,甚至是AAA級遊戲。

正如我們在本教程中所看到的,法線貼圖是使用紋理的綠色、紅色和藍色通道來改變當光線從我們模型的側麵、頂部和前麵射來時的反射情況(請記住這是一個簡化的解釋,並不是100%準確)。

7.jpg

問題是,有些應用程序認為綠色通道應該顯示模型從下麵照亮,而有些應用程序認為它應該顯示模型從上麵照亮。這有時被稱為 "法線圖的右側性"。

OpenGL apps(右手,正綠色通道):Blender, Maya, Modo, Toolbag, Unity.

DirectX apps(左手,負綠色通道):3DStudio Max, CryEngine, Source Engine, Unreal Engine.

Substance Painter可以處理這兩種類型的法線貼圖,並輸出這兩種類型的法線貼圖。

解決方案:反轉你的法線圖的綠色通道。大多數遊戲引擎在紋理中都有反轉法線圖的選項,或者你可以在Photoshop中手動反轉紋理的綠色通道(導航到通道標簽,選擇綠色通道並按Ctrl+i)。

五、有些部分看起來很平,或者缺少一些細節

當烘焙法線貼圖時,想象一下烘焙程序從你的低模表麵按照你的低模法線投射射線,直到射線碰到高模並發生彎曲。然後,烘焙程序將這些信息存儲到法線貼圖中。

這些已經投射出去的光線不能永遠地走下去,因為它們可能會撞到你的高模的很遠的地方,然後錯誤地彎曲,所以烘焙程序限製了這些光線的投射距離,有時,這些光線甚至在撞到高模之前就已經停止了。在這種情況下,我們就會失去細節,我們的法線圖就會有平坦的顏色區域。

8.jpg

解決方案:我們必須控製烘焙距離。

1.有些程序隻會尋找你的低模外麵的細節,而忽略你的低模 "裏麵 "的東西(盡管大多數現代烘焙師會從兩個方向尋找)。在這種情況下,調整你的模型,使低模完全適合你的高模內部。

2.其他程序,如Max會使用一個包裹器cage,一個你可以修改的低模的 "擠壓 "版本,以精確控製烘焙過程的極限。

3.其他程序讓你用一個數字來設置烘烤距離(Substance Painter中的最大正麵和背麵距離)。

你也可以嚐試讓低模和/或高模更加相似,這樣射線就可以在你的模型中到處獲得細節。另一個選擇是使用不同的cage距離烘烤兩個法線貼圖,並將它們混合在你的紋理的不同部分。不過,一些法線貼圖純粹主義者可能會對你大喊大叫。

六、我的法線圖有扭曲的細節

這是一個非常常見的問題。它發生在我們的低模法線與高模細節不能正確對齊時,所以它們看起來是彎曲的(實際上,如果你從頂點法線方向看,它們是完全對齊的),這通常是因為你有一些麵形成一個極端的角度。

9.jpg

解決辦法:

1.通過增加一個斜麵來軟化你的極端角度。

2.將你的極端角度的邊緣轉換成硬邊緣/將麵分割成不同的平滑組。

3.使用自定義法線/使用加權法線。

七、我的法線圖看起來有像素化或有帶子

Earthquake(又稱法線圖之神)在這裏對這個問題寫了一個非常好的解釋。

如果你的低模和高模非常相似,你的大部分法線圖都會有基本的法線圖顏色,在你的低模和高模不同的地方會有不同的顏色。

如果我們有相反的情況,你的低模和高模有很大的不同,法線圖將有更多的顏色種類,漸變將開始出現。

10.jpg

這些軟梯度很麻煩,因為我們需要大量的顏色來表示它們,而壓縮紋理的最常見方法是基於減少顏色的總數。

解決方案:

1.讓你的低模與高模更相似:這樣一來,法線貼圖要做的工作就少了,而且它看起來會與第一張圖片更相似,避免了這些大而軟的漸變。修改你的低模的法線,使它們與高模更好地對齊,也會有幫助。

2.使用16位法線貼圖:默認情況下,大多數圖像使用8位顏色深度。這意味著你的紋理的每個顏色通道可以使用0到1之間的8個不同的值。當你考慮所有3個顏色通道時,這給我們提供了256種可能的顏色。

當我們有軟梯度時,我們可能會在我們的模型中看到帶子,因為圖像沒有足夠的顏色來表示如此小的顏色變化。

11.jpg

16位圖像可以為每個通道使用16個不同的值,這意味著有多達65536種可能的顏色。這意味著軟梯度的範圍要大得多。請注意,16位圖像的尺寸比8位大(因為它們攜帶更多信息)。另外,有時16位圖像有alpha通道,被稱為24位圖像。

也有bit深度更高的圖像,但它們不用於法線圖,因為16 bit已經足夠了。

使用抖動dithering。我們的紋理中缺乏色彩是一個已經存在了幾十年的問題,幾十年前出現的一個解決方案是使用抖動dithering:這個想法是,我們在紋理中交替使用像素來表示梯度,當你放大圖像時,它的效果很好。你通常可以在導出紋理的時候激活它。

12.jpg

確保你的法線圖被正確地壓縮了:當紋理被壓縮時,計算機采取類似顏色的區域,並合並它們來創造一個顏色的 "補丁",減少你的圖像中的顏色數量。這對普通圖像來說通常是好的,但對法線圖來說卻很糟糕:不僅破壞了你的梯度,還可能合並你的顏色通道中的信息。有一些專門為法線圖設計的壓縮算法。確保你的遊戲引擎將圖像解釋為法線貼圖(通常在你的紋理資產中選擇一個選項將其標記為法線貼圖),壓縮設置將被自動配置。

八、在我的模型的某些部分有一些可見的像素

顯而易見的解決方案是為你的模型的那一部分增加UV島的大小,或者使用更大的紋理,但讓我們看看一些不太明顯的解決方案。

以雙倍的最終法線貼圖分辨率進行烘焙,然後縮小圖像的大小:如果你使用的是512x512的紋理,以1024x1024的分辨率烘焙你的法線貼圖,然後將圖像轉換成512x512。這樣,你最終紋理的每個像素將從4個像素中獲取信息,形成一種 "抗鋸齒 "並減少像素化。這對其他烘焙過的圖像也是如此,而且你還會保留一個高分辨率的紋理版本,以備以後需要增加某些區域的細節。

13.jpg

注意到在這張圖片中,法線圖的分辨率是一樣的,但是我們用1024分辨率烘焙出來的法線圖看起來更加圓潤,和高模的法線圖相似,因為它在還原過程中儲存了一些額外的信息。

注意:在減少你的法線圖的大小時,確保你使用Bilinear重采樣選項,因為其他重采樣選項可能會以意想不到的方式改變你的法線圖。

14.jpg

你可以把你的UV島堆疊在一起,這樣他們就可以在你的模型的不同部分使用相同的法線圖信息。隻要確保你把模型的一邊移到UV空間之外的一個單元,這樣烘焙程序就不會試圖同時從兩邊獲取細節。你可以更進一步,對一些細節使用修飾紋理或貼花,以優化你的紋理使用。

紋理使用像素網格,而像素是方形的。如果你有一些細節形成了一條線,試著將這條線垂直或水平地對齊。這樣一來,像素網格和你的紋理細節就會對齊。

15-1.jpg15-2.jpg

九、我的模型是對稱的,但法線圖看起來是不對稱的

當對你的模型應用對稱性時,法線方向可能會改變,因為麵的連接方式已經改變。有時,這意味著你可以在模型的中心看到一條縫。為了避免這種情況,請確保你的低模法線在中心位置是對齊的,並在需要時調整平滑。

另一個可能的原因是三角測量:當把模型導入遊戲引擎時,它們總是被三角測量,有時,這個過程會改變低模法線,在低模麵的對角線上會出現一些偽影。為了避免這種情況,在烘焙前對模型進行三角測量,烘焙法線貼圖,然後應用對稱性修改器。

最後,希望以上的解決方式能對大家產生幫助。

- End -

來源:Thepoly公眾號

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

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

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

微信掃碼入群領福利

掃碼領福利最新AI資訊

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

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

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

×

同學您好!

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