[轉(zhuǎn)]圖文詳解Unity3D中Material的Tiling和Offset是怎么回事

Tiling和Offset概述

Tiling表示UV坐標(biāo)的縮放倍數(shù),Offset表示UV坐標(biāo)的起始位置。
這樣說(shuō)當(dāng)然是隔靴搔癢。
下面用*.3ds文件作為模型,介紹Tiling和Offset到底是怎么回事。
3DS格式解析
比如我有這樣一個(gè)tank_player.3ds模型。右側(cè)的'select'處的圖片就是貼圖。



*.3ds文件最基本的內(nèi)容包括頂點(diǎn)列表Vertices、貼圖坐標(biāo)列表UVs、面列表Faces。其中Vertices和UVs的數(shù)目相等。下面就是用文本描述的tank_player.3ds文件的內(nèi)容,這是一個(gè)樹(shù)結(jié)構(gòu),用先序遍歷即可將其改寫(xiě)為二進(jìn)制的3ds文件。這個(gè)XML結(jié)構(gòu)就是從二進(jìn)制的tank_player.3ds分析來(lái)的。

這里面的_VerticesList 是頂點(diǎn)坐標(biāo)列表,每個(gè)Vector都是3D模型中的一個(gè)頂點(diǎn);_MappingCoordinatesList是貼圖坐標(biāo)列表UVs,每個(gè)TexCoord都是在貼圖上的一個(gè)坐標(biāo)點(diǎn)。FacesDescription則是面列表,由于Vertices和UVs的數(shù)目相等,每個(gè)triIndex都用索引指定了3個(gè)vertex和3個(gè)UV。3個(gè)vertex就在3D世界畫(huà)了一個(gè)三角形,這些三角形就組成了上圖所示的坦克模型。3個(gè)UV則在貼圖上畫(huà)了一個(gè)三角形。貼圖是這樣的:


而UVs在貼圖上畫(huà)出的三角形則如下圖所示。



可以看到是完全對(duì)應(yīng)的。一個(gè)triIndex指定了3D模型的一個(gè)三角形平面A,也指定了貼圖上的一個(gè)三角形平面B,把B貼到A上,就是我們看到的3D模型了。
這么半天都在講解3DS文件格式,是為了方便下面開(kāi)始說(shuō)明Tiling和Offset的用法。

Offset是什么意思
為了簡(jiǎn)單,我們看下面這個(gè)模型。它就是4個(gè)三角形拼接成的一個(gè)正方形。



此模型的UVs畫(huà)出來(lái)是這樣的:



此模型的貼圖如下。
[圖片上傳中。。。(6)]
Offset這個(gè)概念就從這個(gè)貼圖上開(kāi)始說(shuō)。

如下圖所示,貼圖左下角為原點(diǎn)(0, 0),右上角為(1, 1),畫(huà)直角坐標(biāo)系,橫軸為X方向的Offset,縱軸為Y方向的Offset。
[圖片上傳中。。。(7)]
Offset的作用,就是決定UVs在貼圖上的起始位置。
下圖所示,是Offset在X和Y軸都為0時(shí)的樣子。UVs坐標(biāo)框住了貼圖下半塊左邊的那一部分,那么這部分貼圖就會(huì)被貼在模型上。



所以你會(huì)看到這樣的結(jié)果。

現(xiàn)在我把Y軸的Offset設(shè)置為0.5。意思是UVs的左下角變成了(0, 0.5)。

那么UVs在貼圖上的貼合情形就如下圖所示了,此時(shí)UVs框住了貼圖上半邊左側(cè)的那塊(紅色的半圓)。

可以想象現(xiàn)在的模型是什么樣子了吧?

Tiling是什么意思
說(shuō)完Offset,Tiling就好理解了。Offset控制了UVs的起始位置,Tiling則控制了UVs的縮放比例。默認(rèn)(1, 1)的縮放比例就是原始比例?,F(xiàn)在我把Y軸的Tiling改為2。



那么UVs與貼圖的貼合情況就成了這樣:



貼圖還是那個(gè)貼圖,UVs的縱坐標(biāo)則都乘以2了。所以最后的模型就會(huì)是這樣:
[圖片上傳中。。。(16)]

總結(jié)
Tiling表示UV坐標(biāo)的縮放倍數(shù),Offset表示UV坐標(biāo)的起始位置。
綜合利用Offset和Tiling,就可以做一點(diǎn)有趣的事了。
本文的模型是從坦克艦隊(duì)里分析轉(zhuǎn)化得到的。我將在另一篇文章里說(shuō)明轉(zhuǎn)化方法。
原文地址:http://www.cnblogs.com/bitzhuwei/p/explain-offset-and-tiling-with-Unity-and-3ds.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 常見(jiàn)到的*.obj文件有兩種:第一種是基于COFF(Common Object File Format)格式...
    DIGITALMAN閱讀 20,857評(píng)論 2 50
  • 我們都知道,一個(gè)三維場(chǎng)景的畫(huà)面的好壞,百分之四十取決于模型,百分之六十取決于貼圖,可見(jiàn)貼圖在畫(huà)面中所占的重要性。在...
    自由的天空閱讀 12,921評(píng)論 0 12
  • Untiy模型、貼圖制作規(guī)范及注意事項(xiàng) 模型制作規(guī)范 當(dāng)一個(gè)VR模型制作完成時(shí),它所包含的基本內(nèi)容包括場(chǎng)景尺寸、單...
    HYZOR閱讀 131,638評(píng)論 0 17
  • 抵抗嫉妒的唯一方法謙卑. 莫扎特傳這部影片,好就好在它雖是一部人物傳記片,但敘事的手法很新穎,獨(dú)具匠心,導(dǎo)演沒(méi)有按...
    丸兔閱讀 792評(píng)論 0 0
  • 媽媽說(shuō):當(dāng)我們愛(ài)上一個(gè)人,就有一白只蝴蝶在肚中翩翩起舞。到底是我們那一說(shuō)到那個(gè)人就渾身起勁喋喋不休,還是那一不在身...
    菜pan閱讀 440評(píng)論 0 0

友情鏈接更多精彩內(nèi)容