1. 程式人生 > >unity3d遊戲開發之UV貼圖教程

unity3d遊戲開發之UV貼圖教程


一、理解UV貼圖UVs是駐留在多邊形網格頂點上的兩維紋理座標點,它們定義了一個兩維紋理座標系統,稱為UV紋理空間,這個空間用U和V兩個字母定義座標軸。用於確定如何將一個紋理影象放置在三維的模型表面。
本質上,UVs是提供了一種模型表面與紋理影象之間的連線關係,UVs負責確定紋理影象上的一個點(畫素)應該放置在模型表面的哪一個頂點上,由此可將整個紋理都鋪蓋到模型上。如果沒有UVs,多邊形網格將不能被渲染出紋理。
通常在建立MAYA原始物件時,UVs一般都被自動建立(在建立引數面板上有一個Create UVs選項,預設是勾選的),但大部分情況下,我們還是需要重新安排UVs,因為,在編輯修改模型時,UVs不會自動更新改變位置。
重新安排UVs,一般是在模型完全做好之後,並且在指定紋理貼圖之前進行。此外,任何對模型的修改都可能會造成模型頂點與UVs的錯位,從而使紋理貼圖出現錯誤。更多精彩請點選【狗刨學習網】
二、UVs和紋理對映

NURBS表面與多邊形網格的貼圖機制不同,NURBS表面的UV是內建的(已經自動定義出U、V),這些UV不能被編輯,移動CV將會影響紋理貼圖。而多邊形的UVs並非一開始就存在,還必須明確地建立並且可以隨後進一步修改編輯。
三、UV貼圖為一個表面建立UVs的過程叫UV貼圖(UV mapping)。這個過程包括建立、編輯。其結果是明確地決定影象如何在三維模型上顯示,這項技術的熟練程度直接影響模型的最後表現。
四、建立UVs
Maya中有很多UVs建立工具:如,自動UV工具、平面UV工具、圓柱UV工具、球形UV工具、使用者自定義UV工具等。每種建立工具都是使用一種預定的規則將UV紋理座標投射到模型表面,自動建立紋理影象與表面的關聯。通常,對自動產生的UV還必須使用UV編輯器進一步編輯才能達到所需要的效果。因為每次對模型的修改(如擠壓,縮放,增加、刪除等等)都會造成UVs錯位,所以最好的工作流程是等模型完全設計好了之後,再開始建立UVs。
五、觀察和評估UVs
一旦已經為一個模型建立了UVs,即可使用UV編輯器編輯它。這個編輯器,可以在一個二維平面上觀察UV座標點和它與紋理影象的關係,並且能手動編輯UV及它的各種元素。
通常,使用建立工具預設產生的UVs可能不符合我們的需求,因此,可以在UV編輯器裡,用眼睛觀察評估,並且手動調節UVs的位置(重新排列)。
調節UVs的參考原則是信賴最終需要貼圖的紋理影象。也可以說,不同的影象需要不同的UVs位置。
下述幾種情況需要使用UV編輯器調節:1、當模型最終要貼的影象被確定時,可能需要調節UV(甚至某些情況下還要調節模型網格),以適合那個影象。2、想使用一個影象多次重複時。例如一個磚牆。3、在使用了自動建立UV時。自動建立的UV通常總是產生多個基於表面的分離的UV網格,因此可能需要重新排列或者縫合一些分離的UV。4、當模型表面的貼圖發生嚴重的扭曲、拉伸變形時,可能需要在UV編輯器中將一些UV展開和鬆馳(Unfold 和 Relax)。注意,要為一個模型建立最好的UV,可能需要經過多次嘗試,以及採用不同的UV建立方法。
六、UV貼圖技巧
MAYA提供了許多建立和編輯UV的工具,其中UV編輯器是最主要的工具。
懂得如何為一幅現有的影象找到一個最佳的UV,是一項非常重要的技術,以下是一些基本的指導原則:1、保持UVs座標值在0-1的範圍在UV編輯器中,UV空間顯示為一個網格標記,工作區域為0到1。預設,在UV建立過程中,MAYA會自動設定UVs的值處於0-1之間。但在UV經過移動、縮放之後,UV可能被放置在0-1之外。在多數情況下,應該將UV值保持在0-1內。當UV值超出0-1時,紋理影象會出現重複或者環繞。更多精彩請點選【狗刨學習網】
2、消除UV殼重疊相互連線UV點而形成的網格,稱為UV殼(UV shell)。在UV編輯器中,如果UV殼出現重疊,則在模型的相應的頂點部位出現影象重複現象。通常應該消除這種重疊,除非有特殊的需要。例如一個模型有兩個不同的部位有相同的影象,則這兩個部位的UV殼可以重疊放置在這個影象上。
3、正確安排UV殼之間的間隔兩個UV殼之間的間隔也是一個重要的考慮內容。它們不能太過於靠近,否則在渲染時會將另一UV殼的影象內容也渲染出來。
4、儘量使用捕捉UVs在編輯UVs時,類似於編輯場景中的元素,也能使用多種捕捉方法控制UVs。可以捕捉到背景網格線、其他UV點、以及影象畫素點(需要將編輯區域放大N倍才能感覺到這種捕捉)。
七、UV編輯器簡介有多種方式開啟UV編輯器:用Window > UV Texture Editor,或者用Edit UVs > UV Texture Editor,或者在檢視選單中用Panels > Panel > UVTexture Editor。說明UV編輯器是一個非常重要的編輯器。在UV編輯器可以檢視和互動式編輯紋理座標(UVs)。選擇、移動、縮放和修改UV拓撲,也能顯示背景紋理影象作為調節的參考。UV編輯器與場景檢視,可以同時顯示所選擇的UVs和與之相對應的頂點。利用UV編輯器所包含的許多工具,能有效地編輯UVs。如旋轉和翻轉,切割和縫合等等,也能輸出一個編輯好的UVs佈局為一幅影象,再用PS等軟體創造出一幅紋理貼圖。注意,UV編輯器的有一些工具在主選單的Edit UVs中。UV編輯器的檢視也能使用快捷方式進行移動和縮放(滑鼠滾輪縮放,ALT+中鍵移動)。在UV編輯器中也有右鍵標記選單。它包括了幾乎所有的操作。
八、UV集可以為同一個模型建立多個UV排列方案(數量不限),每個方案稱為一個UV集。在某個模型需要多個不同的UV佈局時,UV集非常有用。例如,想建立一個上面有些塗鴉圖案的磚牆。可以使用一個紋理作為磚,另一個紋理作為塗鴉,如果磚紋理需要重複顯示而塗鴉不需要,則可以為這兩個紋理使用不同的UV佈局(UV集)。更多精彩請點選【狗刨學習網】
使用UV集的關鍵步驟是:1、指定多個紋理給材質。如可以為某材質指定一個顏色紋理和一個透明度紋理。此外,也可以為某個單個的屬性(如顏色)指定一個分層紋理。2、使用不同佈局建立UV集(在建立引數中有一個UV集選項)。3、使用“關係編輯器”將紋理與UV集關聯起來。
九、建立平面UV貼圖通過一個平面將UV對映到模型表面。模型表面最好是相對平坦的,或者至少在相機的某個角度能夠全部看見。通常,這種技術建立的UV殼是重疊的,看起來就象是一個簡單的UV殼。所以,在建立完後應該使用Edit UVs > Layout將重疊的UV殼分離。
Best Plane Texturing Tool工具分配UVs給一個面(事先通過頂點選擇的面)。可以先選面再使用Best PlaneTexturing Tool工具,或者,也可以先使用BestPlane Texturing Tool工具再逐一地選擇想貼圖的面。1、選擇模型想貼圖的一個面;2、使用Create UVs > Best Plane Texturing Tool工具;3、單擊其他的面增加進選區,注意,不能框選,只能用單擊逐一選擇。選完按回車。4、選擇三個或者多個頂點(可切換到頂點選擇模式)。——這個可能是用來確定主平面的。5、再按回車。建立完畢。進入UV編輯器檢視和編輯建立好的UVs。建立平面UV貼圖(基於相機平面)上面例子是以選擇的頂點來確定一個對映主平面,現在是使用相機平面來作為UV對映主平面。1、在模型上選擇一個或者幾個想貼圖的面;(不選的將不參與佈局)2、滾動檢視,使這個面朝向自己,或者,乾脆切換進正交檢視中,讓它完全對準自己;3、使用Create UVs > Create UVs Based On Camera工具,建立即完成。進入UV編輯器檢視和編輯建立好的UVs。
十、建立平面UV貼圖(基於一個可控平面)1、選擇一個想貼圖的面;2、開啟Create UVs > Planar Mapping >引數盒,在Fit projection to中,如果選擇Best plane,則建立一個基於剛才選擇的對映平面;如果是選擇Bounding box,則建立一個基於模型的box平面作為對映平面。3、單擊Project,建立UV佈局,並出現手動調節器可進行一些調節簡單調節;4、最後進入UV編輯器中進行復雜調節。
十一、對平面UV貼圖的一些說明1、平面貼圖能建立看起來象紋理邊界的共享、重疊的UVs。開啟Display> Polygons > Texture Border Edges(顯示紋理邊界),可以清楚看到這個邊界。(或者在UV編輯器中按顯示邊界圖示)。2、的共享、重疊的UVs可能會引起接縫問題,解決這個問題可手動分離UVs(用Edit UVs> Layout >引數盒,設定Separateshells為Folds,Shell layout設定為Along U 或者 Into Square)。3、如果想一次對多個模型建立平面UV貼圖,可選把這些模型聯合(combine),建立UV完成後,再將它們分離(separate);否則,只能一個一個地分別建立了。4、如果一個模型是複雜的有機器官,而且你想一張圖進行貼圖,則平面貼圖可能會產生交迭和扭曲,此時,可考慮採用其他的貼圖建立技術。
十二、圓柱UV貼圖基於一個圓柱,沿著模型網格周圍進行包裹,而產生的UV佈局。模型最好是沒有突出物或者空洞。1、選擇想貼圖的面;2、使用Create UVs > Cylindrical Mapping工具,3、使用手動控制器操作圓柱外形;4、最後在UV編輯器中進一步編輯。
十三、球形UV貼圖基於一個球,沿著模型網格周圍進行包裹,而產生的UV佈局。模型最好是沒有突出物或者空洞。1、選擇想貼圖的面;2、使用Create UVs > Spherical Mapping工具,3、使用手動控制器操作圓柱外形;4、最後在UV編輯器中進一步編輯。
十四、自動UV貼圖由系統針對模型的形狀,自動查詢和確定UV佈局,可能會使用多個對映平面(產生多個UV殼)。對複雜的模型和有空洞的模型,使用自動UV貼圖非常有效。在進一步的操作中,可能需要對分離的殼進行縫合。
可以確定對映平面的數量,也能使用場景中某個物件作為對映平面(通過Load Projection)。1、選擇一個模型,同時開啟它的UV編輯器;2、使用Create UVs > Automatic Mapping >引數盒,設定好引數;3、單擊Project。使用手動調節器調節(在通道欄也能再次調出這個調節器)。4、使用UV編輯器進一步調整。
十五、使用者自定義UV貼圖由使用者指定的一個對映平面來建立UV佈局。關於對映物件的標準要求:1、被用作使用者自定義對映的物件必須有UV紋理座標;2、推薦這個物件是由分離的面組成。例如,想把某個原始polygons作為對映物件的話,它必須先要用Mesh > Extract分離網格。(不要用Nurbs和細分表面來作對映物件)。3、這個物件確定了將來建立UV佈局時的對映平面的位置和形狀;4、這個物件最大的面數不能超過31。
操作方法:1、選擇一個要貼圖的模型,並開啟它的UV編輯器;2、開啟Create UVs > Automatic Mapping >引數盒,勾選Load Projection,在輸入框輸入想用來做對映物件的名字,或者,在場景中選擇這個物件,然後單擊Load Selected載入;3、單擊Project。使用手動調節器調節(在通道欄也能再次調出這個調節器)。4、使用UV編輯器進一步調整。
十六、確認UV的放置建立UV佈局時,如何確認它們的位置是否正確合理?一個確認方法是,指定一個包含紋理的材質給這個模型。通過觀察紋理來確認。MAYA提供了一個快速觀察紋理的方法,開啟Create UVs > Assign Shader to Each Projection,MAYA會自動建立一個叫“defaultPolygonShader”的材質(它包含棋盤格紋理),指定給正在建立UV而已的模型(這個材質也加入進該模型的節點,所以也可以在該節點更換其他的紋理)。預設,快速觀察紋理的方法是關閉的。
十七、在兩個模型之間遷移UV佈局通常遷移使用在這種場合:建立複雜模型的UV佈局時,先拷貝這個複雜模型,用光滑工具光滑它的網格(避免UV出現重疊),然後對它建立UV佈局,之後,再將這個佈局遷移到複雜的模型。1、拷貝模型;2、使用Mesh > Average Vertices > 引數盒,進行光滑。(注意,這個光滑技術不會增刪頂點數量);為達到最佳效果,可以多次重複使用這個工具。3、為這個光滑模型建立UV佈局,然後調節,直到滿意;