數碼資源網

文章頻道 軟件下載 安卓下載 蘋果下載

當前位置:首頁文章中心建模專欄Maya → MAYA中法線貼圖的應用的綜述

MAYA中法線貼圖的應用的綜述

時間:2007-06-08 08:36:15人氣:159作者:網友整理
瑪雅maya最新網站地址1.1.71.4.7
  • 類型:安卓圖像處理大小:33.85M語言:簡體中文 評分:4.0
  • 瑪雅maya最新網站地址APP是一款既熱門又實用的動畫製作編輯軟件。在使用軟件過...
立即下載
Maya影視安卓版(影音資源播放平台) v1.3 手機版
Maya影視安卓版(影音資源播放平台) v1.3 手機版 for Android
  • 類型:安卓影音播放大小:23.92M語言:簡體中文 評分:3.0
  • 您有沒有非常想看的電影找不到資源,要麼就是收費的尷尬情況出現呢?Maya影視安卓...
立即下載
中法翻譯1.1.12
中法翻譯1.1.12 for Android
  • 類型:安卓學習閱讀大小:12.30M語言:簡體中文 評分:4.9
  • 中法翻譯軟件這是一款非常強大的一個線上手機翻譯軟件,在中法翻譯軟件內,您可以成功...
立即下載

最近搜集了不少資料和試驗,打算把MAYA中法線貼圖(NORMAL MAP)的相關信息綜合一下並且心思一下思路。慢慢來!:)
法線貼圖(NORMAL MAP)是一種較新的貼圖技術,類似於BUMP MAP,通過對模型表麵的法線的矯正來用以表現模型的細節與紋理,其效果比後者要好,能達到BUMP MAP所達不到的效果,但是其並不能真正的在模型表麵產生細節,相對於DISPLACEMENT MAP而言,又不如其滿意。而且其製作和應用很麻煩,問題也很多,所以這種技術CG中並不常用,不過,在遊戲中卻有相當的發展空間。其他不多說了,先來看個圖:

為什麼同一個模型(10*10段的多邊形球體)會出來兩種效果,我使用了SOFTEN/HARDEN EDGE命令來柔化了右邊的模型邊,這樣看起來就圓滑了很多!
我現在打開了CUSTOM POLYGON DISPLAY OPTIONS,顯示出來法線來看看區別:

模型的法線有兩種:點法線和麵法線。麵法線是在麵中心發出,表示麵的方向;而點法線是從點發出的,取決於點周圍的麵的方向,左右模型的區別說明了SOFTEN/HARDEN EDGE命令工作原理。同時也NORMAL MAP的基礎。(其實還有一種:UV COODINATE NORMAL。但MAYA中似乎沒有這個概念,這個東東是在NORMAL MAP應用中許多問題產生的根源,這裏暫不講述)

下麵我們開始。建立一個POLYGON球體,參數如下。
然後再複製出一個隱藏。

[page]

對這個球體平滑2次後,用雕刻工具作出一些細節。

打開HYPERSHADE,賦予這個球一個新的LAMBERT材質。
再建立一個SAMPLEINFO和SETRANGE節點,作如下連接:

這樣我們把這個球的法線與攝象機信息輸入,將其輸出到物體材質的COLOR上,這裏我的材質選擇了SURFACESHADER,這並不重要。隻是為了方便觀察效果。

調節參數:我們將法線變量轉化為顏色值,需要重新定義取值區間,由[-1,1]轉化為[0,1]。

[page]

顏色改變,但是你會發現硬件顯示的顏色與渲染的顏色不一樣!
這可是個問題的關鍵!而且不管你如何移動或旋轉攝象機和模型,物體的顏色分布都不變化,上麵是綠色,左邊藍,右邊紅。這可不是我們想要的。

這個問題的原因是因為SAMPLEINFO輸出的法線信息是基於攝象機的,所以與攝象機關聯,而並非物體本身,這樣我們後麵的得到的也是不能用的法線信息。
為了解決這個問題,我們斷開SAMLPEINFO和SETRANGE之間的聯係,新建一個VECTOR PRODUCT節點,如下連接。

將透視攝象機的節點拖進,輸入其世界矩陣信息到VECTOR PRODUCT節點,運算方式為VECTOR MATRIX PRODUCT,再將輸出值連接到SETRANGE的
VALUE上。

這樣做是矢量與矩陣運算,把攝象機坐標係轉換為世界坐標係,這樣攝象機的變化不在影響物體的顏色分布了,但是如果我們轉動物體,問題仍然出現。所以要把物體的變化的信息也要加進去,將世界坐標係轉換為物體坐標係。
如果將此時的顏色轉換為貼圖,我們就叫它World-space normal map。(後麵在介紹這些分類)

如圖再加入如下類似的節點,注意這次選擇的是WORLD INVERSE MATRIX。
圖中COLORBALL就是這個球體的模型節點,你可以在OUTLINER中找到它,拖到HYPERSHADE裏。


 


[page]

這樣,我們看到顏色顯示與渲染的一致了,以渲染出來的為準,這樣移動攝象機或物體,顏色分布就正確的象貼在物體上一樣。

選中球體和其材質,使用CONVERT TO FILE TEXTURE OPTIONS將顏色轉化為貼圖,參數如下,分辨率和自行設置。

此時生成的貼圖,顏色以紅,綠,藍分布類似彩虹,就叫做
Object- 或 Local-space normal map。這個與上麵的World-space normal map看上去會很類似。

下麵看看如何使用這張貼圖

顯示出原來的複製出的那個低精度的球體,命名為NORMALBALL。賦予一個材質,然後連接。使用這樣的貼圖相當於一次逆運算。我想不用多說了吧。


[page]

看看效果,我這裏用的SOFTWARE渲染。

效果還不錯,但是問題總是伴隨著,如果我們保持攝象機不動,旋轉物體,你看會怎樣?

細節正確,但是光影卻完全錯誤,陰影也象貼圖一樣“粘”在模型上,與燈光的位置毫無關係了,這可是不允許的!
所以,我們還要把NORMBALL的節點引入,再次逆運算。

這樣,模型細節和光影都正常了,旋轉模型和鏡頭都沒有問題,可以用於構建場景了。
但是,這樣就完了嗎?

我們先來看看在HARDWARE渲染和HIGH QUALITY RENDING渲染結果。

這是什麼玩意的一坨啊?
顯然,在即時運算更新時顯示是不正常的,這意味著對於遊戲的設計顯然是不可用的 ,同樣,MENTALRAY渲染也是不行的!
而且後麵還有更大的問題存在呢!
按F9進入點元素模式,對這個球隨意進行一些變形。

[page]

再轉回物體模式,渲染看。注意場景中隻有一盞燈。

發現了嗎,光影還是錯誤的,又是這個討厭的問題!
這就意味著如果要在物體以下的級別變形,比如蒙皮,綁定等,就會出現嚴重的問題。

在MAYA7以後有這樣一組工具:SURFACE SAMPLER(相當於MAYA6中
TRANSFER SURFACE OPTIONS),這個工具裏麵包含了很多有用的工具。
當MAP SPACE選中OBJECT SPACE時,那麼TRANSFER IN WORLD SPACE
/OBJECT SPACE所生成的NORMAL MAP就相當於World-space normal map
和Object- 或 Local-space normal map。

那麼還有個TANGENT SPACE是什麼呢?
TANGENT SPACE就是切線坐標,即與法線垂直正交的方向,其有個很重要的特性就是它是針對模型上的每個點的坐標,而不是整個物體,這正是我們需要的特性。
這個工具的用法我以前的帖子裏講過的,很簡單的。文件格式常用TIF的,有很多優勢。

[page]

 

生成的貼圖就是所謂的Tangent-space normal map,其明顯不同,顏色是以蘭色為基調的。這個應該說是比較完美的,不會出現前麵的問題。來看看。
MAYA中沒有直接的NORMAL MAP的通道,使用麻煩,不象3DMAX或LIGHTWAVE,所以這方麵的文章才比較少,不過MAYA7以後加入了,它是隱藏在
BUMP2D的節點中,使用和BUMP MAP一樣簡單。

打開HIGH QUALITY RENDERING,這樣我們終於看到了期望的結果。
而且各個角度都正常。

有時硬件即時顯示並不能很正確,如果看不到正確結果,可以用
HARDWARE渲染一下看。
不過遺憾的是,MAYA中這個節點隻能被硬件渲染,同樣不支持在SOFTWARE和MENTALRAY渲染。但是也是,本來MAYA中這個節點就是為了製作遊戲而生的,針對的多是遊戲中的渲染引擎。
還有人用這樣的方法連接:

這種直接連接的方法可得到同樣的硬件渲染效果,也可以軟件渲染,但是光影失真;不支持MENTALRAY。最大的問題就是:如果要與其他BUMP MAP聯合使用就會很困難。

繼續……
至此我們可以先總結一下,以便有更好的理解和應用。
World-space normal map
1. 彩色.
2. 使用後物體不能旋轉和以點為基礎的變形,否則材質和陰影會亂掉
3. 適用於不動的物體(比如建築物).
4. 計算快

Object- or Local-space normal map
1. 和World-space normal map一樣,不同的隻是針對了部分元素遊戲編碼
2. 物體可以旋轉,但是不能在物體以下級別變形.
3. 適用於某些簡單機械運動中的元素(門,車輛,機械等)
4. 計算較快

Tangent-space normal map
1. 以蘭色為基調
2. 物體可以旋轉和變形
3. 適用於變形物體(角色,水麵,布料等)
3. 計算最慢(並不經常).

如果我們要在軟件渲染或MENTALRAY渲染中也應用該則呢們辦呢?
一般來說,在MAYA中或第三方的渲染器渲染NORMAL MAP,需要建立一定的節點來模擬,這可不是一件愉快的事情。我這裏用MAYA的節點軟件渲染,看看效果:

還不錯,但是它的節點卻是比較複雜的。這個節點來自於headus (metamorphosis) Pty Ltd。但是原節點的坐標並不適用MAYA(針對的是ZBRUSH),我將其修改重新連接。
總的來說就是要把攝象機的NORMALCAMERA和TANGENTU,V的信息都輸出,與NORMAL MAP輸出的信息進行點乘運算,連接到物體材質的
NORMALCAMERA。這樣軟件渲染時就可以收集到相應信息。

如果需要,我在後麵共享了這個節點,耐心讀完我的帖子,你可以找到它。
適用與任何版本的SOFTWARE渲染,速度較慢,不支持硬件渲染。

[page]

但是MENTALRAY就比較麻煩,目前我試驗的節點如下:
相當於在軟件渲染節點上再與透視攝象機進行矢量矩陣運算,輸出到材質。
遺憾的是,隻支持MAYA6.5以下的MENTALRAY版本,MAYA7中的MENTALRAY由於更新了渲染方式和代碼,無效!
你也可以使用Jan Sandstrom的JS_Normalmapper的MENTALRAY節點。但是同樣是不支持MAYA7。

同時,在MENTALRAY渲染中可以使用GLOBAL ILLUMINATION,但開啟FINAL GATHER渲染無效!這是由於FG的運算方式決定的,目前尚未有辦法解決!

下來我們介紹一下NORMAL MAP與BUMP MAP的聯合使用。
從本質來說,NORMAL MAP更接近BUMP MAP而不是DISPLACEMENT MAP。
但是也就是說NORMAL MAP要和BUMP MAP合用,是很難發現區別的,所以會產生錯覺,在應用中較難發現錯誤,這是在遊戲運用中比較麻煩的,往往不能及時更正,導致計劃拖延。

先來介紹硬件即時渲染中的合用。
BUMP MAP分為BUMP3D和BUMP2D,曾經有位介紹過了這兩種
BUMP效果的合用,你可以在以前的帖子裏找到。但是在試驗中發現,如果合用的話,其效果隻能在軟件渲染中體現,硬件渲染是無效的。這樣NORMAL MAP和BUMP MAP直接采用這種合用,即時顯示是無法正確的。而我們需要在遊戲製作中能即時瀏覽到。
所以我采用了層紋理(LAYERED TEXTURE)來混合。這裏用了個BUMP3D的節點。

在層紋理中混合方式選擇OVER,NORMAL MAP在上層。控製其ALPHA值調節凸凹效果(或BUMP DEPTH)。注意!這樣做會其實是削弱了NORMAL MAP的效果,所以ALPHA不能太低。其實在後麵的SETRANGE節點的用途是可以輸入表達式通過與ALPHA值相關聯的矯正削弱現象。
你也可以將BUMP3D層放在上層混合,你看看會有什麼結果?

即時顯示的效果出現,但是似乎哪裏不對勁。
我前麵提到了,這個區別是很難看出來,因為我們用的BUMP紋理並不是法線貼圖,但是用法是直接連入,但仍有效,是因為其是3D紋理,這點視覺差別是幾乎可以忽略的。
那麼實際的用法該如何呢?

這裏我們要用到一個小插件:TranSpace(你可以在網上很容易找到)
它的作用是把BUMP信息轉化為TANGENT NORMAL信息,可以用來
BAKE NORMAL MAP。

As Color Output:確保顏色值區間。應當鉤選。
Invert Y(V):對於某些ATI和某些其他軟件,要反轉Y(V)方向。選擇鉤選
Normalize Output:確保法線值區間。選擇鉤選。
這個插件可以用我前麵的方法模擬,不過很麻煩。
下麵是HRADWARE渲染後效果。

[page]

BUMP2D的紋理或文件紋理就比較麻煩了。因為大多數時候,他們並不能被正確的硬件顯示!采用與BUMP3D相同的連接。

解決這個很簡單,隻要把BUMP紋理轉換成一張法線貼圖就可以了,然後混合。

在軟件渲染中就比較容易,和BUMP嵌套是一樣的,2D和3D紋理都一樣的可以得到滿意的效果。


 

相關文章

感謝速聯科技、八度網絡、九九數據、億恩科技、群英網絡讚助部分帶寬!

關於本站 | 聯係方式 | 版權聲明 | 下載幫助(?) | 網站地圖

Copyright 2002-2020 95262.com 【數碼資源網】 版權所有 粵ICP備2020128507號-1

本站所有軟件來自互聯網,版權歸原著所有。如有侵權,敬請來信告知 ,我們將及時撤銷。