Cocos 開發(fā)教程:3D模型的基本概念
3.1 計(jì)算機(jī)如何制作一個(gè)3D模型
?
講述這個(gè)問題之前,我們先來看下現(xiàn)實(shí)生活中我們要做一個(gè)模型,應(yīng)該如何做呢?首先我們要把模型的形狀給雕刻構(gòu)建出來,現(xiàn)實(shí)生活中的物體都是由分子組成的連續(xù)的表面,計(jì)算機(jī)是離散的無法做到這點(diǎn),所以計(jì)算機(jī)通過微分的方式,把一個(gè)曲面分成”多個(gè)平面”來模擬實(shí)現(xiàn)連續(xù)的物體表面。常見的平面我們有三角形,四邊形, 五邊形等,任何一個(gè)平面都可以分割成若干三角形,所以計(jì)算機(jī)所指的面都是三角形,這樣做有一個(gè)好處,底層與顯卡只要處理同一種面(三角形)就可以了,這樣渲染流水線處理會(huì)簡(jiǎn)單統(tǒng)一。每個(gè)三角形都是由空間中的3個(gè)頂點(diǎn)來確定的,當(dāng)空間中的3個(gè)點(diǎn)定下來,他們就能確定一個(gè)三角形平面。三角形的3個(gè)頂點(diǎn),我們?cè)?D里面通常稱為面的頂點(diǎn)。
?

空間的物體也可以由若干三角形來構(gòu)成,雕刻成形狀,如果物體是曲面,那么就會(huì)通過將曲面分小成若干小三角形來組成曲面形狀。理論上來說,三角形分的越小,越接近于真實(shí)的曲面,當(dāng)然三角形分的越小,面的數(shù)目越多,處理起來性能也越差。一般在建模的時(shí)候,人眼看上去接近曲面就可以了。
所以計(jì)算機(jī)制作3D模型的第一個(gè)步驟就是建模,建模的時(shí)候,會(huì)先確定一個(gè)坐標(biāo)系(原點(diǎn)與x, y,z軸),這個(gè)坐標(biāo)系我們通常叫做模型坐標(biāo)系,所有的三角形面的頂點(diǎn)的位置都是基于這個(gè)坐標(biāo)系的。模型中頂點(diǎn)的坐標(biāo)我們又叫做頂點(diǎn)的模型坐標(biāo)。由此我們可以得到如下推論:
頂點(diǎn)的世界坐標(biāo) = 物體的世界坐標(biāo) + 頂點(diǎn)的模型坐標(biāo)
(注:這里的+是疊加變換,包括旋轉(zhuǎn)等,不是簡(jiǎn)單的坐標(biāo)相加)
建模完成以后,物體的形狀就被雕刻出來了,接下來就是給每個(gè)面涂上顏色。發(fā)揮一下我們的想象力,我們用一張白紙包住整個(gè)模型,然后用圖釘基于面的每個(gè)頂點(diǎn)把圖釘按下去,這樣這個(gè)白紙就會(huì)貼合固定到模型上了。接下來美術(shù)就在白紙上涂顏色,圖好以后,模型上色完成,變成物體的形狀。
接下來我們?cè)侔选眻D釘”取下來,把貼在模型上的白紙展開出來,我們就得到了上好顏色的紙,我們叫做紋理貼圖,如圖所示:

剛才每個(gè)頂點(diǎn)的固定圖釘,都會(huì)在紋理貼圖上留下一個(gè)小針孔(如圖中的紫色點(diǎn)),這個(gè)針孔所在的位置叫做頂點(diǎn)的紋理坐標(biāo)。紋理坐標(biāo)是一個(gè)二維坐標(biāo)(x, y),坐標(biāo)系的原點(diǎn)是左下角(0, 0), 右上角是1, 1, 根據(jù)這個(gè)標(biāo)準(zhǔn),來確定紋理每個(gè)頂點(diǎn)的紋理坐標(biāo)。到此我們就建好了一個(gè)模型。美術(shù)交付的時(shí)候就包含了 fbx模型文件與模型的紋理貼圖,當(dāng)然還有其它的一些細(xì)節(jié)增強(qiáng)的貼圖,如法線貼圖等,fbx存放的是模型的頂點(diǎn)數(shù)據(jù)等,紋理貼圖就是物體的表面顏色。最后總結(jié)以下美術(shù)3D建模的一些基本概念:
(1)3D模型是由一個(gè)個(gè)的三角形面組成的形狀,每個(gè)三角形由3個(gè)頂點(diǎn)組成,三角形組成的模型形狀,像網(wǎng)格一樣,所以我們把建模的三角形面的數(shù)據(jù)又叫做網(wǎng)格數(shù)據(jù),后文成Mesh。
(2) 每個(gè)三角形的面有3個(gè)頂點(diǎn),很多同學(xué)理解為頂點(diǎn)就是頂點(diǎn)坐標(biāo),其實(shí)這個(gè)說法是錯(cuò)誤的,3D中的頂點(diǎn)包含了: 頂點(diǎn)的坐標(biāo)(position), 頂點(diǎn)的紋理坐標(biāo)(uv), 頂點(diǎn)的法線坐標(biāo)(Normal)等。所以頂點(diǎn)是這些數(shù)據(jù)的集合,并不單指模型頂點(diǎn)的位置
?
3.2 模型動(dòng)畫
?
模型制作好以后,有些人物角色還需要做模型動(dòng)畫, 讓角色能有動(dòng)作。模型動(dòng)畫其實(shí)就是模型的頂點(diǎn)在一段時(shí)間內(nèi)的連續(xù)變換,比如一組待機(jī)動(dòng)畫,哪些頂點(diǎn)會(huì)動(dòng),如何動(dòng),每個(gè)頂點(diǎn)在動(dòng)畫中每一幀的的位置如何,這樣每一幀,頂點(diǎn)的位置不一樣,然后把每一幀播放出來,計(jì)算出頂點(diǎn)在這一幀的位置(動(dòng)畫采樣), 每一幀,頂點(diǎn)的位置不同,人眼會(huì)把每幀的相關(guān)形狀補(bǔ)間起來,形成了動(dòng)畫的感覺,叫做模型動(dòng)畫,比如3D魚模型的游動(dòng),在每一幀,尾巴處的頂點(diǎn)位置不同,導(dǎo)致物體的形狀不同,連起來就形成了3D動(dòng)畫。模型頂點(diǎn)的動(dòng)畫運(yùn)動(dòng)數(shù)據(jù),也可以存放到fbx文件里面。

今天的分享就到這里了,希望幫助你建立一些基本的3D概念。關(guān)注我們學(xué)習(xí)更多游戲開發(fā)相關(guān)的知識(shí)。
?