為Unity3D創(chuàng)建素材(1):圖片、著色器恰画、材質(zhì)球


圖片

Unity3D支持使用大部分位圖格式作為圖片素材宾茂,甚至包括帶圖層和圖層效果的.psd格式文件。

但在實際使用中锣尉,并不推薦直接使用非通用的文件格式。這是因為對于任何格式的圖片素材决采,Unity3D在導入時都會自動執(zhí)行一個轉(zhuǎn)換過程自沧,如果面對的是非通用格式,則會調(diào)用相應的第三方軟件功能來執(zhí)行轉(zhuǎn)換树瞭,所以實際轉(zhuǎn)換過程會比較慢拇厢,而且有些特殊文件格式,如果沒有安裝對應的軟件晒喷,甚至根本不能識別孝偎。

因此,推薦先使用PS將圖片素材另存為.png格式(無損且較辛骨谩)衣盾,然后使用.png格式的文件作為圖片素材來使用寺旺。

在Project面板中選擇圖片,Inspector中對應出現(xiàn)圖片轉(zhuǎn)換的參數(shù)選項(要注意的是势决,選擇不同Texture Type阻塑,其他的選項會略有不同)。

unity_image_01.png

unity_image_02.png
  • Texture Type:選擇貼圖類型
  • Texture Shape:選擇貼圖形狀果复,這里是設置在預覽區(qū)的顯示方式陈莽,有2DCube兩種,這個圖例中選擇2D是因為這是2D游戲素材
  • Advanced:高級選項(略)
  • Alpha Source:選擇透明通道來源
  • Wrap Mode:修改貼圖重復包裹方式虽抄,Repeat代表會不斷重復走搁,Clamp代表如果模型UV不在(0,1)象限的話就不會被附上貼圖,只會顯示材質(zhì)的默認顏色
  • Filter Mode:對通道數(shù)據(jù)的過濾方式迈窟,通常選擇Bilinear私植,但如果是高動態(tài)色彩貼圖(hdr),就要選擇Point (no filter)

各種不同的貼圖類型:

unity_image_03.png
  • Default是作為普通類型菠隆,也就是顏色貼圖
  • Normal map是作為法線貼圖兵琳,法線貼圖必須指定成這個type,否則渲染不正確
  • Editor GUI and Legacy GUI
  • Sprite是作為“精靈”來使用骇径,2D精靈是一種特殊的圖片顯示方法躯肌,圖片不失真,不受光照破衔,同時還具備可切割的屬性清女,通常用作UI元素或者2D游戲的素材
  • Cursor是拿來替換游戲中鼠標形狀的
  • Cookie
  • Lightmap是作為光照烘焙貼圖使用,有的時候我們想把以前烘焙好的貼圖直接導入使用晰筛,就要選擇這個類型
  • Single Channel是單通道圖片嫡丙,這種類型的貼圖轉(zhuǎn)換后只會保留alpha通道的信息

最下面一欄是關于貼圖尺寸和貼圖壓縮的選項:

unity_image_04.png
  • Max Size代表轉(zhuǎn)換后該貼圖的最大可能尺寸,如果本身貼圖尺寸就小于這個尺寸的話读第,貼圖不會被放大曙博,但如果本身貼圖尺寸大于這個尺寸,就會被縮小成這個尺寸怜瞒;
  • Compression選擇壓縮質(zhì)量父泳,有高中低三檔;
  • Format(略)

最關鍵的是吴汪,做完所有設置工作以后一定要點擊Apply按鈕應用設置惠窄,否則就白做了。旁邊的Revert按鈕可以將設置參數(shù)恢復到修改前的狀態(tài)漾橙。

普通圖片素材

普通圖片素材選擇Default類型即可杆融。需要注意的是,對于一些很小的貼圖霜运,最好設置一下Max Size屬性脾歇,這樣比較節(jié)約系統(tǒng)資源蒋腮。

Sprite類型素材

Sprite類型又叫精靈類型,主要用于UI介劫、粒子徽惋、2D游戲等等。

將圖片設置成sprite類型之后會得到以下特性座韵,首先险绘,圖片不會被壓縮,所以不會有JPEG圖片顏色失真等現(xiàn)象誉碴;其次宦棺,圖片可以被再次分割成為多個Sprite。

Unity3D 2017中新增了對Sprite的九宮格切分功能支持黔帕。所謂九宮格切分是指將圖片按3*3的方式分成9個部分代咸,當該圖片被縮放是,不同部分會進行不同的變化成黄,四個角落的4部分會保持不變呐芥,上中和下中的兩部分會橫向重復(tile),左中和右中的兩部分會縱向重復(tile)奋岁,而正中間一部分會橫向縱向一起重復(tile)思瘟。這種方式很適合用在2D游戲的地面、墻面闻伶、門窗等物體上滨攻。

對法線貼圖的處理

法線貼圖必須設置成Normal map類型,否則不會被正確識別蓝翰。

對HDR素材的處理

HDR素材要單獨設置光绕。通常被運用在天空球的貼圖上。
HDR素材最關鍵的是要設置其為16bit色深或者32bit色深畜份,否則引擎會自動將其處理成8bit色深的普通貼圖诞帐,這樣就丟失了高動態(tài)顏色信息了。


著色器(shader)

著色器(Shader)和材質(zhì)球(Material)的區(qū)別

使用過三維軟件的同學對材質(zhì)的概念都很熟悉爆雹,在Maya中我們稱之為“材質(zhì)球”停蕉,其英文名稱是Material。但在Unity3D(以及其他的很多游戲引擎)中顶别,“材質(zhì)”通常被用來指Shader谷徙,而非Material拒啰,所以這里我給shader起了個專門的中文名字叫“著色器”驯绎,以示區(qū)別。

Shader是編寫的材質(zhì)腳本谋旦,而shader編譯出來的結(jié)果顯示為各種不同的material剩失。很多游戲都自己寫shader屈尼,這樣更自由也更優(yōu)化,但我們不具備這個能力拴孤,只能使用系統(tǒng)給出的默認shader或者下載其他人寫好的shader來使用脾歧。

自己寫的shader需要放在Assets文件夾下才會起作用⊙菔欤可以在Project面板中點擊Create或者直接右鍵單擊選擇創(chuàng)建不同類型的shader資源鞭执。

unity_shader_01.png

根據(jù)shader中編寫的設置,shader會出現(xiàn)在material設置選項的Shader下拉框中芒粹,比如上面圖例中的NewSurfaceShader就顯示在Custom一欄之中兄纺。

內(nèi)置常用Shader的使用

因為內(nèi)置shader太多了,而且并不是所有的都常常會被用到化漆,所以這里我先不細講每一種shader可以做什么估脆,只介紹最常用的基本類別。

  • Standard類型的shader和我們在Maya中使用的材質(zhì)球最接近座云,初學者為了方便可以完全用這一個shader來制作所有材質(zhì)疙赠。
  • Mobile類別下面的shader顧名思義是給移動平臺做游戲時使用的shader,下屬的shader基本上也能涵蓋各種用途了朦拖。
  • Nature類別下的shader主要是給Unity3D自己的Tree類型物體準備的圃阳,有些特殊屬性專門針對Tree物體的顯示。通常創(chuàng)建Tree的時候會自動賦上對應的material贞谓,初學者不要胡亂改shader類型和參數(shù)限佩。
    同理,Particles類別下的shader專為Unity3D的自帶粒子系統(tǒng)準備裸弦,Skybox類別下的shader專為Unity3D的自動天空盒功能準備祟同,Sprites是給精靈面片用的,UI是給UI物體貼圖用的理疙,VR是給VR用的(我也不清楚怎么用)晕城。
  • Unlit類別下的shader都是所謂“無光照“shader,也就是說光照對這類材質(zhì)無影響窖贤。

分成這么多類別砖顷,主要還是出于性能優(yōu)化的考慮。比如Standard shader當然可以用來模擬unlit shader赃梧,但使用unlit shader無疑會減少很多計算量滤蝠。


材質(zhì)球(Material)

材質(zhì)球(Material)可以被認為是一個基于shader的參數(shù)文件,同樣需要手動創(chuàng)建在Assets目錄中授嘀,后綴名是.mat物咳。

Maya的材質(zhì)球可以隨著.ma格式文件被導入Unity3D(但嚴重不推薦)。

實際上Unity3D自動識別了Maya材質(zhì)球的相關參數(shù)蹄皱,并以此創(chuàng)建了基于Stadard Shader的新的.mat文件览闰,然后賦給轉(zhuǎn)換后的模型芯肤。因此實際上并不一定能夠保證新material的效果和在Maya中的效果一樣,畢竟兩個軟件所采用的渲染方式都是天差地別的压鉴。

所以建議大家導入模型之后還是自行創(chuàng)建material并手動指定比較好崖咨。自動轉(zhuǎn)換的material如果不使用的話最好刪除掉,避免混淆油吭。

所以击蹲,在Unity3D中給模型添加材質(zhì)的一般流程是這樣的:

  1. 如果不是使用內(nèi)置shader的話,就要先下載shader資源并導入Unity3D婉宰,或者用可視化shader插件(比如Shader Forge)創(chuàng)建好shader际邻;
  2. 在Unity3D中新建一個Material,并附加給模型芍阎;
  3. 選擇這個Material世曾,指定合適的shader(在Assets目錄下的所有有效shader都會自動被加載到material的shader選擇列表中去);
  4. 修改Material的各項參數(shù)并指定各種貼圖

Material可以在Inspector最下面的預覽窗口被預覽到谴咸,右上方的模型按鈕可以切換不同的預覽模型(有方塊轮听、球、圓環(huán)岭佳、單面等)

常用材質(zhì)球參數(shù)

Standard:
unity_material_standard.png
  • Albedo是顏色血巍,可以將貼圖資源從Project面板拖到前面的小方塊上來添加貼圖,貼圖與后面的顏色設置相乘才是最終的效果(也就是說這個顏色會被multiply到貼圖顏色上去)
  • Metallic是金屬質(zhì)感珊随,數(shù)值越高述寡,反光顏色越偏向本色(貼圖顏色×顏色值)
  • Smoothness是光滑度,數(shù)值越高叶洞,表面越光滑鲫凶,高光越集中,反射越清晰
  • Source是透明通道來源衩辟,可以選擇使用Albedo貼圖上的透明通道或者Metallic貼圖上的透明通道
  • Normal Map是法線貼圖
  • Height Map是高差圖
  • Occlusion是模擬AOCC效果的貼圖
  • Detail Mask是在表面再疊加一層細節(jié)遮罩時使用的貼圖
  • Emission勾選表示材質(zhì)“自發(fā)光”螟炫,會多出一個Color參數(shù)來指定發(fā)光的顏色、發(fā)光貼圖艺晴、發(fā)光強度昼钻。強度可以設置到超過1,表示是一個很亮的物體封寞。自發(fā)光材質(zhì)會影響光照烘焙的結(jié)果
  • Tiling是貼圖重復次數(shù)
  • Offset是貼圖位移
  • Secondary Maps是可以添加次級細節(jié)貼圖然评,當物體很靠近攝影機是會自動切換顯示次級細節(jié)貼圖
    • Detail Slbedo ×2是次級細節(jié)顏色貼圖,建議創(chuàng)建成原來貼圖的2倍大
    • Normal Map是次級細節(jié)法線貼圖
  • Tiling同上
  • Offset同上
  • UV Set是選擇UV組

Standard (Specular setup)與Standard的唯一區(qū)別狈究,就在于采用Specular而非Metallic屬性來設置高光碗淌,這樣可以獲得不同于顏色貼圖色彩的高光顏色。

unity_material_standard2.png
Mobile/Bumped Specular:
unity_material_mobile_specular.png

Mobile類型的shader就簡單很多了,可以看到只有最最基礎的參數(shù):

  • Shininess:光亮度
  • Base (RGB) Gloss (A):這里使用一張貼圖的RGB通道作為顏色贯莺,A通道作為高光貼圖
  • Normalmap:法線貼圖
Unlit/Texture:
unity_material_unlit_texture.png

Unlit類型的shader就更簡單,就只有貼圖參數(shù)宁改。Unlit/Color更簡單缕探,就只有一個顏色參數(shù)。Unlit/Transparent可以識別貼圖的A通道并將其作為透明貼圖还蹲,Unlit/Transparent Cutout與之類似爹耗,但處理透明貼圖的方式不太一樣,會將半透明區(qū)域簡化成全透明或者全不透明谜喊。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末潭兽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斗遏,更是在濱河造成了極大的恐慌山卦,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诵次,死亡現(xiàn)場離奇詭異账蓉,居然都是意外死亡,警方通過查閱死者的電腦和手機逾一,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門铸本,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遵堵,你說我怎么就攤上這事箱玷。” “怎么了陌宿?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵锡足,是天一觀的道長。 經(jīng)常有香客問我壳坪,道長舱污,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任弥虐,我火速辦了婚禮扩灯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霜瘪。我一直安慰自己珠插,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布颖对。 她就那樣靜靜地躺著捻撑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顾患,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天番捂,我揣著相機與錄音,去河邊找鬼江解。 笑死设预,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的犁河。 我是一名探鬼主播鳖枕,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桨螺!你這毒婦竟也來了宾符?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤灭翔,失蹤者是張志新(化名)和其女友劉穎魏烫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肝箱,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡则奥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狭园。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片读处。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡伏尼,死狀恐怖片拍,靈堂內(nèi)的尸體忽然破棺而出来吩,到底是詐尸還是另有隱情宴抚,我是刑警寧澤慨削,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布愈捅,位于F島的核電站拯刁,受9級特大地震影響谍咆,放射性物質(zhì)發(fā)生泄漏窃肠。R本人自食惡果不足惜包个,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冤留。 院中可真熱鬧碧囊,春花似錦、人聲如沸纤怒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泊窘。三九已至熄驼,卻和暖如春像寒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓜贾。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工诺祸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祭芦。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓筷笨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親实束。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容