在3ds max中,利用normal map 製作精美骰子



使用normal map的目的

使用normal map的主要目的是使得low-poly的模型看起來如同high-poly的模型那樣精緻,比如一個1500個三角形面片的模型在細節上看起來跟一個擁有200萬個三角形面片的模型一樣精細。基本想法是將high-poly模型的細節拿來放到一張normal map中,將該normal map應用到low-poly模型,這樣low-poly模型將會看起來跟high-poly模型那樣精緻。

下面開始講如何利用normal map 製作精美骰子
一、配置場景環境
1. 場景單位,Customize > Units Setup..., 選擇Generic Units;
2. 渲染驅動器,Customize > Preferences..., Viewports tab > Display Drivers, 確保驅動器是Direct3D 9.0。如果不是,則可以從Choose Driver選擇它。

二、創建兩個Box, 一個爲low-poly,另一個爲high-poly
1. 創建一個50*50*50的box,命名爲lowPolyDice;

2. 將lowPolyDice複製一份,命名爲highPolyDice;

注:highPolyDice由lowPolyDice複製而來這一步非常重要,這意味着它們的結構及空間位置都是一樣的,這在後面生成normal map非常重要。若它們倆的位置不一致,則生成的normal map會有錯誤。


三、在具體做骰子之前需要知道的事情
1. 生成normal map有兩種方法:
 製作lowPolyDice和highPolyDice,然後在3ds max中生成normal map;
 只製作lowPolyDice,使用Photoshop生成normal map,事先需要安裝NVIDIA Normal Map Filter; 具體安裝與使用見http://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop;
2. 選擇何種方法來生成normal map的技巧
 如果模型的邊緣非常光滑,則使用high-poly模型來生成normal map;
 如果模型上有文字,或者非常精細的細節,則選擇在photoshop中生成normal map;
3. 本文利用混合法來生成normal map
 對於骰子光滑的邊緣以及面上的洞,在highPolyDice上造型;
 對於bevel的文字,則使用Photoshop;
四、創建highPolyDice

1. chamfer edges and connect

0) 在編輯highPolyDice時,可以先隱藏lowPolyDice。但是注意不要改變它們的位置關係;

1) 將上述已創建好的highPolyDice轉化爲editable poly;

2) 激活按邊選擇,用ctrl+A全選它所有的邊,對所有邊進行chamfer,值爲2;
3) 選中8個角落處的所有邊8*3 = 24條,並connect,如Fig. 1。這一操作的目的是當使用修改器MeshSmooth時,能使它仍然保持成立方體;
Fig. 1
2. 加強edge部分
1) 仍然激活按邊選擇,以一個頂點作爲基點,選中highPolyDice的一條邊,用Ring選擇所有與該邊平行的邊,並以2段數Connect它們,如Fig.2中右下角小圖;
2) 以Loop選擇方式,選擇第一步所生成的邊,分別將它們向兩邊緣平移。爲方便計算平移的量,將highPolyDice移至中心點,我這裏的平移量爲14,具體操作的時候,這個數值可以調整;
3) 對於與基點相連的另外兩條邊,重複作第一步與第二步,結果如Fig.2;
Fig. 2
3. 重複2的操作,但這次不需要平移行生成的邊,這樣保證將每個面分成等面積的塊,如Fig.3。
Fig. 3
4. 打洞,進行如下操作:
1) 激活按多邊形選擇,選擇所有需要打洞的塊,如Fig.4右下角小圖;注意,在選擇六點時,由於它的三個塊是連續的,在進行下面操作可能會得到錯誤的結果,所以對於六點我們可以先選擇分隔開的四點,對它操作完後,再進行另外兩點同樣的操作。
2) 進行Inset,值爲2;
3) 進行Bevel,高爲-2,outline amount爲-1,最後結果如Fig.4;
Fig. 4
5. 完成highPolyDice
1) 退出按邊選擇模式,給模型添加修改器MeshSmooth, 迭代次數爲3,如Fig.5;
Fig. 5
五、在生成normal map之前,對lowPolyDice進行unwrap,以確保它的多邊形沒有使用同一個UV空間

1. 修改lowPolyDice紋理座標

0) 隱藏highPolyDice,顯示lowPolyDice;

1) 給lowPolyDice添加修改器unwrap,並打開UV編輯器;
2) 激活按多邊形選擇,菜單Mapping > Flatten Mapping...,按其默認設置並確定,生成的紋理圖片如Fig.6左上角小圖;
3) 將最上面的方格移動到如Fig.6紅色塊顯示位置;
Fig. 6
六、生成normal map
0. 確保同時顯示highPolyDice和lowPolyDice,此時兩者的幾何空間應該是重疊的,如Fig.7中右下角視圖中綠色部分顯示的是highPolyDice;
1. 選中lowPolyDice,點擊Rendering > Render To Texture..., 或者按快捷鍵 0打開對話框;
2. Enable Projection Mapping (2),並點擊Pick,選擇highPolyDice,此時工程會自動給lowPolyDice加Projection修改器;
3. 點擊Options... (3)打開Projection Options對話框,勾選Use Cage;若以antiliasing方式渲染紋理圖片,則點擊Set up...打開Render Setup對話框,勾選Antialiasing,並且在Global Supersampling 下勾選Enable Global Supersampler, 選擇Max 2.5 Star;若不想以antiliasing方式渲染紋理圖片,則勾選Disable all Samplers;
4. 點擊Add... (5),選擇normal map;
5. 在File Name and Type (6)可以選擇normal map輸出的路徑;
6. 其它設置如Fig.7所示;按Render渲染出來.tga文件自動保存到設置好的路徑中;生成好後,normal map顯示在viewport中,正確的normal map 如Fig.7右下角圖;

Fig. 7
七、將生成的normal map在photoshop中打卡,保存.psd格式,並應用到lowPolyDice

1. 在photoshop中添加文字併合併到normal map中

1) 將normal map在photoshop中打開,新建一個圖層,輸入如圖示文字;

2) 將文字層轉化爲normal map,利用NVIDIA Normal Map Filter,Filters > NVIDIA Tools > NormalMapFilter...;


3) 將文字層與normal map圖層合併爲一個圖層,並保存;

2. 創建standard material,並將normal map設成bump map

1) standard material > Maps > Bump..., 選擇Normal Bump, 在normal map的normals 選項,選擇上述保存的圖片;
2.將生成好的材質應用到lowPolyDice, 渲染後的效果如Fig.8

Fig. 8

八、通過normal map生成specular map 和 diffuse map

1. 通過normal map生成specular map

1) 對normal map 先後進行去色(Desaturate),反向;

2) 調節色階(Level);

3) 其他地方選擇並填充爲白色,結果如頁首效果圖;

4) 將specular map應用到材質specular level對應的map中;

2. 通過normal map生成diffuse map

1) 用魔術棒,調節顏色容差值,選擇圈圈以外的地方並用紅色填充;

2) 選擇紅色區域並反選,填充爲白色;

3) 將它應用到diffuse map中,結果如頁首效果圖;


參考教程:
http://www.game-artist.net/forums/spotlight-articles/43-tutorial-introduction-normal-mapping.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章