---
title: "一次搞懂「法線貼圖」是什麼！"
slug: understanding-normal-maps-in-3d
url: https://course.zack3d.art/posts/understanding-normal-maps-in-3d
published_at: 2024-03-05
modified_at: 2026-07-21
author: "ZACK3D｜角色創藝學院"
category: "預設類別"
tags: ["教學分享"]
access: public_access
---

# 一次搞懂「法線貼圖」是什麼！

> 似懂非懂好幾年😂 

By **ZACK3D｜角色創藝學院** - 十年3D美術/3D列印玩家 | 2024-03-05

用Blender創作時，不管是使用下載的資產或是自己創作，或多或少都會接觸到一些PBR材質相關的內容。而PBR的核心，其實就是讓模型在「質感」跟「細節」上更加擬真。（不知道什麼是PBR材質，可以到我的頻道觀看－15分鐘學會PBR材質－觀念篇）「質感」上，我們透過定義材質的金屬度、粗糙度（和其他物理參數），來實現真實物體的反射效果。「細節」上，則會使用「法線貼圖」，來增加模型的表面細節。我們知道，當一個模型的面數越高，表示越能做出更豐富的細節。理論上，極高的面數當然可以做出極為真實的模型。但是當我們需要在遊戲或動畫中使用這些資源的時候，過高的面數會對遊戲的容量跟效能產生極大的負荷。這就是為什麼，我們需要找到保持模型效能的同時，也能增加模型細節的解答，而這個解答就是法線貼圖，又稱Normal map。Normal map的作用不曉得你有沒有看過肌肉衣？不知道的可以去Google一下🤣 Normal map的作用，其實就類似穿上肌肉衣…只不過肌肉衣本身是帶有真實的凹凸浮雕；而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中烘培的方法😁。總之，這樣一來，我們就得到了一張法線貼圖，我們的低模就可以透過它模仿出高模的光影效果，在渲染或遊戲引擎中使用囉！
