曾經似懂非懂好幾年😂 一次搞懂「法線貼圖」是什麼!


哈囉!Reader

用Blender創作時,不管是使用下載的資產或是自己創作,或多或少都會接觸到一些PBR材質相關的內容。而PBR的核心,其實就是讓模型在「質感」跟「細節」上更加擬真。(不知道什麼是PBR材質,可以到我的頻道觀看-15分鐘學會PBR材質-觀念篇

「質感」上,我們透過定義材質的金屬度、粗糙度(和其他物理參數),來實現真實物體的反射效果。

「細節」上,則會使用「法線貼圖」,來增加模型的表面細節。

我們知道,當一個模型的面數越高,表示越能做出更豐富的細節。理論上,極高的面數當然可以做出極為真實的模型。但是當我們需要在遊戲或動畫中使用這些資源的時候,過高的面數會對遊戲的容量跟效能產生極大的負荷。這就是為什麼,我們需要找到保持模型效能的同時,也能增加模型細節的解答,而這個解答就是法線貼圖,又稱Normal map

Normal map的作用

不曉得你有沒有看過肌肉衣?不知道的可以去Google一下🤣 Normal map的作用,其實就類似穿上肌肉衣…只不過肌肉衣本身是帶有真實的凹凸浮雕;而Normal Map神奇的地方,在於它不真正改變模型表面,而只是改變模型反射的光影變化,來欺騙我們的眼睛,讓我們以為模型具有這些細節(如果從側面看,就會發現模型其實還是平的,但還是足以讓我們感覺很真實。)

Normal map 的原理

要理解Normal Map的原理,首先需要知道我們是如何觀察模型的細節的。
當光照射到一個物體表面時,光線會與物體的表面結構相互作用(反射、折射或吸收)。而透過觀察光在表面上的反射情況,我們便可以間接地觀察到模型表面的結構和細節

以上圖為例,男孩手拿一個3D模型的,而光反射的角度,取決於這個面的方向(也就是法向)。當光透過進到我們眼睛裡,我們即可觀察到它(一個面、一個法向、一個反射結果)

前面說到,Normal Map的作用,就像給模型穿上肌肉衣一樣。是經由貼圖的方式,將原本低面數的簡單模型上,上豐富的法線訊息,從而產生更多的細節。

換句話說,原本每一個面只能定義一個法線方向,使用Normal Map後,變成每個像素點都能自由定義任意的法線方向,而達到了保持模型低面數,又增加豐富細節的目的。

而貼圖紀錄法線資訊的原理,則是在每張圖片的RGB色板中,分別記錄向量空間的(X,Y,Z)向量值(好像是高中數學😂),因此每個像素顏色,都可以轉換成數值,指出不同的法向結果。最後,著色器會透過UV映射的方式,將這些法向傳送到模型本身,就完成法線貼圖的任務啦!

如何製作Normal map

最後也來了解一下,最常見的,也是我們最容易接觸到的Normal map製程,就是高低模烘培的方式。

這種製程,需要先準備個模型:一個是真正擁有高面數細節的模型(簡稱高模);另一個則是拆好UV的低面數模型(簡稱低模,常經由拓樸高模取得)然後,我們會將這兩個模型疊放在一起,並將高模的法線資訊轉錄到低模上。這個過程就是所謂的烘焙(Baking)。烘焙的原理其實大同小異,但每個軟體的作法不同。之後我會再做影片分享在Blender中烘培的方法😁。

總之,這樣一來,我們就得到了一張法線貼圖,我們的低模就可以透過它模仿出高模的光影效果,在渲染或遊戲引擎中使用囉!


寫了一篇硬梆梆的科普文,雖然這些東西現在看來不難。但十年前資訊有限的年代,也是花了我好些功夫才理解🥲希望這些內容能解答一些人一直以來對Normal map的疑惑,未來在這方面的應用上,比較不會陌生囉!

那我們下封信再見囉😊

查克

Hi!我是查克

這裡是我曾經寄送的電子報,相信內容會對你有幫助喔! 如果你希望每週能收到有關於3D創作的實用內容, 歡迎填寫EMAIL訂閱我的電子報喔!

Read more from Hi!我是查克

哈囉!Reader 在我頻道的第一部Youtube影片中,我講解了角色打光的一些基本觀念,包含燈光的種類、參數跟布光方法等(如果沒有看過的,可以點連結看看喔!)今天想跟大家分享一個很簡單,可以讓燈光顏色更自然的實用節點—黑體節點(Blackbody Node) ▋ 什麼是黑體? 你可能看過直播或影片製作時,會使用一種可調色溫的補光燈。黑體節點就是讓我們在 Blender 中的燈光顏色可以像這種補光燈一樣,透過調整色溫的方式來進行調節。 黑體的原始定義是:當黑體被加熱升溫時,會輻射出不同顏色的光,從深紅、橘黃到白色、藍色,隨著溫度提升,光的顏色也會改變(可能和我們直覺的想法有點相反,可以把它想像成加熱的金屬棒,溫度越高,顏色會從紅色漸漸轉變為藍色)具體的數值和顏色對應,你可以參考下方的範例圖片。 黑體節點的效果 在Blender中,雖然燈光的顏色預設是可以隨意調整的,但如果今天要製作比較寫實、符合真實世界規律的燈光顏色的話,則需要遵循一定的色溫範圍。黑體節點可以讓我們很輕鬆的找到符合自然界的真實燈光效果,讓整個畫面更加自然(如果是霓虹燈或特殊顏色效果的燈光,則不受此限) ▋...

嗨,Reader 開始分享Blender教學以來,我發現很多同學對於UV、材質、點上色等等概念還是很模糊。就算跟著教學做,還是覺得一知半解。這封信希望幫助你一次性理清Blender中最常用的模型上色方法,希望對你有幫助喔! ▋ 一切的開始,賦予材質(Material) 任何模型在剛創建的時候,都是沒有顏色的。如果你要給模型上色(包括貼圖)的話,原理上其實是把顏色資訊指定給材質;再把材質指定給模型。所以,任何上色操作以前,都先要給模型賦予一個材質,方便後續的操作。 圖像→材質→模型 ▋ 賦予材質顏色(貼圖、上色) 有了材質後,就可以來討論要如何將模型透過材質來上色。 一個預設的原理化BSDF材質,可以調整基礎色來直接設置單一顏色,但如果我們不要單色,而是比較複雜的紋路、圖騰、圖案等,則會根據不同的情況,選擇不同的上色方法,我認為最常用的種類型分為以下兩種。 來源為圖像:將圖片“貼”到模型上 來源為點著色:直接在模型上“畫” 根據不同圖像來源分類 ▋ 來源為圖像:...

哈囉!Reader 每個禮拜我都會寫一些跟CG創作有關的小觀念,在Email內跟你們分享。而其中很多內容其實都來自於我的線上課程的學員,或是一些來詢問問題的網友,最近我遇到一個連續被問到的類似的問題,跟建立建模的思路有關,跟你分享🙂 3D新手很容易有個疑問,就是會不知道怎樣去區分什麼種類的模型,適合用怎樣的製作方式?要討論這個問題之前,我們需要先簡單的說明一下,Blender有哪些常見的建模方式: 多邊形建模(Poly Modeling) - 由一個初始模型,透過編輯模型的點、線、面,去拓展、構建出所需的造型。 雕刻建模(Sculpt)- 在一個網格基底上,透過推拉、變形、雕塑的方式來捏出複雜的造型。 曲線建模(Curve Modeling) - 利用曲線物體建構出一些流線型或管狀物件。 其它- 融球、修改器、粒子等… 其中,比較容易混淆的,是多邊形建模跟雕刻建模這兩種類型。什麼時候用多邊形?什麼時候用雕刻?下面就透過幾張圖,試著幫助你釐清一下建模的思路,讓你可以找到當下最適合的建模方法😎 舉以下兩張圖片為例,多邊形或雕刻兩種方法來選的話,你各自會選用哪個方式來製作呢?...