法线贴图Nomal mapping 原理
法線貼圖多用在CG動畫的渲染以及游戲畫面的制作上,將具有高細節的模型通過映射烘焙出法線貼圖,貼在低端模型的法線貼圖通道上,使之擁有法線貼圖的渲染效果,卻可以大大降低渲染時需要的面數和計算內容,從而達到優化動畫渲染和游戲渲染的效果。
?
現在好多3d網游都沒有法線貼圖啊,呵呵,《giant》就沒有。
CG:計算機圖形學(Computer Graphics,簡稱CG)是一種使用數學算法將二維或三維圖形轉化為計算機顯示器的柵格形式的科學。簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。
維基百科:
法線貼圖
法線貼圖
什么是法線貼圖技術呢?這是一種用來實現3D效果的一種技術,要想理解這種技術還請您聽我慢慢道來。
我們知道,在游戲中經常會有這樣的情況,就是一個平面——這個平面在現實中并不是一個“平”面,例如磚墻的表面帶有石質浮雕等等。這樣的情況如果要求游戲開發人員將復雜的3D細節都做出來是不現實的,因為即使不計較在建模時候的復雜度,過多的3D細節也同樣會大量消耗顯示芯片的性能,讓游戲根本沒有可玩性。
?
如何利用貼圖實現凹凸效果呢?
可行的方法就是將這個平面用一個貼圖覆蓋,用貼圖的紋理實現一定的凹凸效果。但是這種方法實現的效果并不是很好,因為如果視角一變化,看起來就會像一張簡單的畫有圖案的平面了。
后來,聰明的游戲開發者想出了一種方法,就是在貼圖過程中對貼圖進行一定的處理,從而保證了在視角變換以后仍然保證有較為明顯的凹凸效果。
光與影,法線貼圖技術的物理學基礎
我們知道,人之所以能夠對景物看出立體感的主要原因是因為人有兩只眼睛。兩只眼睛看的景象是不同的,所以人們才能分辨出立體感來。但是,由于電腦的屏幕是一個平面,分辨3D效果就只能靠光影效果來實現了。
舉個簡單的例子,這就像我們畫素描的時候,為了不讓一個球體看起來像是一個圓圈,必須讓球體的一些區域是亮的,一些區域是暗的。而且從亮部轉向暗部的時候是一個均勻的按照物理模型特點的過渡,這樣畫出來的球體才像個球體,電腦為我們繪制的過程也是一樣。
?
因為有明暗,我們才能將平面理解成立體
基于這個道理,我們就不難理解可以通過貼圖局部的亮暗變化來實現假的3D效果。換一種說法就是說我們可以通過在貼圖上的局部做一些亮暗的變化來做到一種假的3D效果。
?
光照因角度不同而呈現不同的明暗
那么如何實時的對貼圖進行轉換呢?如果要實現虛擬的光影變換,我們最起碼需要知道在一個平面上真正的凹凸的情況,這樣才能讓顯示芯片進行運算,生成一種假的凹凸的效果。
顯然,記錄真實的凹凸模型是得不償失的——如果那樣的話就沒有任何意義了,我們需要用一種非常簡單的方法來記錄一個貼圖的凹凸情況,于是就誕生了一種全新的方法,法線貼圖技術。
接下來,我們再回到我們剛才談到的法線貼圖的話題上。
法線貼圖就是記錄了一個需要進行光影變換的貼圖上的各個點的凹凸情況的貼圖,顯示芯片根據這個貼圖的內容,來實時的生成新的有過光影變化的貼圖,從而實現立體效果。
那么,究竟是怎樣利用法線貼圖記錄一個平面或者說是一個貼圖的凹凸情況呢?我們知道,物體表面產生明暗變化的直接原因,就是光線照射角度的不同,光線垂直于平面的地方就亮,光線斜射到平面的地方就暗,光線照不到的地方就更暗(應該是黑色,但是由于環境光照所以不會有陰影是真正的黑色)。
借色彩之值存法線之向,巧妙的存儲
學過初中物理的朋友一定還都記得,表示光線射向平面的角度時通常使用光線和該點法線角度來表示。這也就意味著,如果我們將一個貼圖上所有點的法線記錄起來的話,就不難再利用這些信息實現后期的假的凹凸效果了。
記錄這些法線的載體就被我們稱為法線貼圖。為什么稱之為貼圖呢?我們知道,一條法線是一個三維向量,一個三維向量由X、Y、Z等3個分量組成,于是人們想出了一個聰明的方法,就是以這3個分量當作紅綠藍3個顏色的值存儲,這樣的話就生成一張新的貼圖了,這就是法線貼圖的來歷。
?
法線貼圖其實并不是真正的貼圖,所以也不會直接貼到物體的表面,它所起的作用就是記錄每個點上的法線的方向。所以這個貼圖如果看起來也會比較詭異,經常呈現一種偏藍紫色的樣子。(polygons:多邊形)
『小提示-05:事實上,真正的法線貼圖并不是記錄貼圖上每個點的法線的絕對角度,而是記錄的是相對于平面的一個差值。這樣的話,隨著平面的3D變換都能夠實現即時的法線運算了。』
傳統紋理壓縮,法線貼圖不再適用
采用法線貼圖技術的優勢就是利用很少的資源實現了效果非常好的凹凸效果,而且可以利用我們在開篇的時候提到的紋理壓縮技術對法線貼圖進行壓縮,進一步節省資源。
?
3D max里面是如何制作發現貼圖的呢?看下面,圖看不見的話點鏈接。
制作法線貼圖
接下來我們在3ds Max里面制作Normal Map (法線貼圖),將低模和高模分別命名為:low-model和high-model,然后將導出的低模UV 分好,高模不用分UV。
法線貼圖的優缺點:
優點:
法線貼圖的好處有很多,不僅僅能表現出哪里凹,哪里凸,還能表現出很多不同斜率的曲面的情況。所以法線貼圖技術能夠帶來更好的效果。
法線貼圖比起凹凸貼圖而言,能夠實現的效果更加好了,相對的就是運算量更大了,每個象素的光照情況都需要計算這個點的法線向量和光照情況的夾角計算該點的亮度和顏色。
缺點:
??? 當然,法線貼圖技術同樣不是完美的,它也有著自己的不足,凹凸貼圖沒有能夠解決的切向效果問題肯定是仍然不能夠得到解決。
??? 此外,就是法線貼圖技術不能夠解決解決更大的凹凸情況的效果。大家如果去觀察的話,法線貼圖效果能實現的通常是一些內凹或者外凸不是很嚴重的表面效果。
原文未知,我是從這里看到的:http://www.cnblogs.com/lancidie/archive/2010/11/02/1866914.html
總結
以上是生活随笔為你收集整理的法线贴图Nomal mapping 原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科创板如何交易?科创板开户条件和交易细则
- 下一篇: 解密ControlRotation与Ac