激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

「知識分享」3D制作人員需掌握的Unity知識

發(fā)布時間:2024-01-11 19:48:08 瀏覽量:141次

工作中經(jīng)常遇到3D制作不了解引擎要求導致返工或是被客戶說沒有經(jīng)驗,所以就邀請了工作十多年,經(jīng)驗豐富的TA-紅偉大哥做了一篇相關(guān)文章為大家解惑,紅偉大哥也有相關(guān)獨立游戲開發(fā)經(jīng)驗。


很多3D同學都會面臨一個問題,就是對引擎不熟悉,導致對某些資源規(guī)范和優(yōu)化方法知其然不知所以然,特別是3D相關(guān)的同學,由于平時工作基本上不需要跟引擎打交道。另外3D美術(shù)外包更是如此,更沒有機會接觸到引擎。

于是,為了給廣大3D同學謀福利,此篇就誕生了。


引擎是什么?

想想汽車引擎是什么就明白了,要想讓汽車跑,必須要有引擎,同樣游戲要想運行起來也需要引擎,引擎將我們的美術(shù)資源與程序組合起來并利用渲染、物理等模塊進行拼裝使其可以正常運行。汽車引擎有各種品牌,游戲引擎也是一樣,目前市場主流引擎有:Unity和Unreal,本篇我們主要討論Unity。


Unity引擎

Unity的版本相當?shù)亩啵刂鼓壳盀橹?,最新的正式版?017.4.1f1。

每個版本的后綴你會發(fā)現(xiàn)不一樣,分別代表什么意思呢?

· b (beta版,也就是測試版,還沒有正式發(fā)布,b1代表beta第一個版本,b2代表beta第二個版本)。

· f (正式版,面向所有開發(fā)者的版本,一般比較穩(wěn)定)。

· p (補丁版,一般是針對正式版進行的bug修復版本)。

比如上面的2017.4.1f1就是指版本為2017.4.1的第1個正式版.

選擇什么版本一般由項目主程來決定,所以我們不用過多操心,只要保證項目成員版本統(tǒng)一就可以了。


本篇重點

接下來,我們步入主題,我們以下幾個維度來重點分析下(由于篇幅有限,不能把每個步驟操作都詳細說明,還請各位3D同學見諒)


1. 規(guī)范

2. 品質(zhì)

3. 性能


規(guī)范

美術(shù)資源,不管是3D還是2D,也不管是模型還是動作亦或者是特效,在引擎中都要有一定的規(guī)范才行,因為這些資源并不是給我們自己用的,而是團隊中大家都會共同用到的資源,特別是程序,如果規(guī)范沒有定清楚,會導致工程很混亂,不管是后期維護的成本還是開發(fā)的成本都會增加不少。

那么關(guān)于3D模型的規(guī)范有以下幾點:

· 單位



3D資源導入Unity時,首先面臨的問題就是單位,由于Unity中的單位是米,所以我們通過以上設置即可達到max與Unity的單位統(tǒng)一,這對于整體比例把控以及引擎中世界大小的制定相當重要。

· 方向



由于Unity的坐標系是左手坐標系,max是右手坐標系,而且Unity中z軸的正方向被認為是前方(物理系統(tǒng),方向變換等都是基于此進行的),所以為了使其簡單化,3D資源最好是將方向調(diào)整為unity的標準。


標準:在max中,更改模型的軸,使其Z軸指向物體的前方,Y軸朝上!


品質(zhì)

不管是角色還是場景最終的美術(shù)效果都要以引擎的為準,不以引擎為目的的資源都是耍流氓!那如何要做到這一點呢?其實很簡單,單說品質(zhì)這一點,只有一個概念——Shader。

Shader可能大家不是很了解,但是大家一定都對材質(zhì)相當熟悉,那事情就簡單了,你可以理解為材質(zhì)的底層就是Shader,Shader是引擎中渲染一個物體時所必須要用到的一段程序代碼,一般是由TA或者程序來為項目制作的。一個物體的材質(zhì)質(zhì)感如何完全取決于Shader,材質(zhì)只不過是更上一層,可以用來調(diào)整 Shader中參數(shù)的對象而已。關(guān)于Shader,水很深,我們不做過多不相關(guān)介紹,本文主要圍繞作為3D美術(shù)所必須知道的知識來講解。


既然我們已經(jīng)知道了3D軟件中的效果并不是最終游戲所呈現(xiàn)的效果這件事情,那么作為一個有責任的3D同學,就要想辦法去使自己做的3D資源能夠在引擎中顯示出最佳效果。

最常用的方法就是將自己制作的3D資源導入到Unity中進行觀察效果(一定要使用項目定好的Shader,否則也是白調(diào)),來回反復調(diào)整,以使其在引擎中達到最佳。

那么要做到這一點我們需要掌握什么知識呢?

· Unity引擎的簡單使用(基礎教程網(wǎng)上很多,有天賦的同學自己打開軟件摸摸也就了解了)

· 重點學習下如何在Unity中給3D模型賦材質(zhì),以及調(diào)整材質(zhì)效果。

然后你就可以為所欲為了。。。


優(yōu)化

模型效果上來了,但是程序說太耗了,要優(yōu)化,這時我們不能讓自己于一臉蒙逼的狀態(tài),一定要有所覺悟,知道該如何去優(yōu)化。關(guān)于優(yōu)化,并且跟3D同學相關(guān)的,我們有以下幾點需要注意:


頂點數(shù)

很多同學以為模型影響消耗的都是三角面數(shù),只要控制三角面數(shù)就好了,其實不然,三角面數(shù)固然重要,但是頂點數(shù)也不容忽視,這里普及一個知識點:渲染一個模型需要用到Shader,而Shader中又一定分為頂點著色器與片斷著色器,而頂點數(shù)量的多少直接與Shader中頂點著色器的消耗成正比。也就是就頂點數(shù)越多消耗越大!

除了常規(guī)美術(shù)上的少點少面以外,我們這里額外說兩點與引擎相關(guān)的,如何去減少頂點數(shù)。

首先我們做個簡單的測試:

在max建一個Box,然后導入到Unity中,觀察他們的頂點數(shù)區(qū)別。



max:8個頂點,12個三角面

unity:24個頂點,12個三角面

三角面數(shù)一致,頂點數(shù)竟然相差這么大!


產(chǎn)生頂點數(shù)不一致的原因主要有兩點:

1. 光滑組不一致,當多個面設置了不同的光滑組時(如果這些都處于一個平面,則不會)就會導致頂點數(shù)增加。

2. 當模型上一個頂點在UV中對應多個頂點時(切割UV會產(chǎn)生這種效果)也會導致頂點數(shù)增加。

當兩個面光滑組不一致時,它們所共用的頂點將需要兩個表現(xiàn)法線方向的信息,unity中無法通過一個頂點來獲取到這些信息,所以在unity中會被識別為兩個頂點,同樣,模型上的一個頂點,在UV中出現(xiàn)在多個位置,也會被unity識別為兩個頂點。

當然了,并不是說完全不能用光滑組與UV切割,只是如果我們知道了這些原理,那么在制作時就能夠盡量去規(guī)避這些問題了。


三角面數(shù)

這個沒有什么好說的,在保證效果的前提下,能少則少。


貼圖

貼圖的做法和Shader息息相關(guān),需要在前期與TA一起討論清楚,其中尺寸可以做的大些,因為可以直接在unity中根據(jù)需求縮小,如果做小了,放大就會有損失了。還有要注意,最好是方形,同時是2的次冪。如果貼圖需要有額外的信息存儲到Alpha通道,則用tga,否則用png格式。


材質(zhì)

材質(zhì)數(shù)量直接影響DrawCall,所以盡量做到一個物體一個材質(zhì)球,特別是在max中盡量少用多維子材質(zhì)。因為多維子材質(zhì)的信息會被導入到unity中,并以多個材質(zhì)的形式出現(xiàn),除非你真的需要這么做。


頂點色

頂點色如果不需要的話一定要清除,因為頂點色在unity中會影響合批,導致性能下降,同時本身的頂點色數(shù)量也會導致模型本身的資源加大。



模型中的頂點色一旦修改,就會使模型附帶了頂點色屬性,既使你更改回默認顏色和透明度也是一樣,這個時候只能通過ChannelInfo來移除了,注意在ID那一列中,標識為:VC的就是頂點色(Vertex Color)。


UV數(shù)量

模型的UV數(shù)量正常情況下只需一套,如果在max設置了多套,既使沒有用到也會被導出到unity中,同樣也是通過Channel Info來移除。


如果大家能做到以上這些,那么TA和程序會愛死你的!




這里是最接地氣最普通的3D美術(shù)圈從業(yè)人員的交流地,希望可以將最實用的知識分享給你。

勵志成為業(yè)界一股清流,如果對你有用,期待你的轉(zhuǎn)發(fā)帶給我們更多動力呦~

熱門課程推薦

熱門資訊

請綁定手機號

x

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定