Unity-導(dǎo)入紋理
紋理是一種位圖圖像。您可以在數(shù)字內(nèi)容創(chuàng)作應(yīng)用程序(例如 Photoshop)中創(chuàng)建紋理,然后將其導(dǎo)入 Unity。
在 3D 項(xiàng)目中,Unity 將 Assets 文件夾中的圖像和電影文件導(dǎo)入為紋理。在 2D 項(xiàng)目中,Unity 將 Assets 文件夾中的圖像和電影文件導(dǎo)入為精靈。
只要圖像滿足指定的大小要求,Unity 便可以導(dǎo)入并優(yōu)化圖像,以供游戲使用。這一點(diǎn)可以擴(kuò)展到多層 Photoshop PSD 或 TIFF 文件。
要在 Unity 中將圖像和電影文件導(dǎo)入為紋理和精靈,請(qǐng)執(zhí)行以下操作:
在 Project 窗口中選擇圖像文件。
在 Inspector 中,設(shè)置?Texture Import Settings。
單擊?Apply?按鈕以保存更改。
要在項(xiàng)目中使用導(dǎo)入的資源,請(qǐng)執(zhí)行以下操作: * 對(duì)于 3D 項(xiàng)目,創(chuàng)建材質(zhì)并為新材質(zhì)分配紋理。 * 對(duì)于 2D 項(xiàng)目,請(qǐng)使用?Sprite Editor。
建議和限制
以下主題提供了關(guān)于導(dǎo)入紋理時(shí)的建議,并詳細(xì)介紹了所有限制:
HDR 紋理
紋理大小
Mipmap
法線貼圖
Alpha 貼圖
細(xì)節(jié)貼圖
反射(立方體貼圖)
各向異性過(guò)濾
支持的文件格式
HDR 紋理
從包含 HDR 信息的 EXR 或 HDR 文件導(dǎo)入時(shí),紋理導(dǎo)入器會(huì)自動(dòng)為輸出紋理選擇正確的 HDR 格式。此格式會(huì)根據(jù)您要構(gòu)建的目標(biāo)平臺(tái)自動(dòng)更改。
紋理尺寸大小
理想情況下,紋理尺寸大小應(yīng)該是每邊為 2 的冪(即 2、4、8、16、32、64、128、256、512、1024、2048 像素 (px),以此類推)。紋理不必是正方形;也就是寬度可與高度不同。
在 Unity 中可以使用 NPOT(非 2 的冪)紋理大小。但是,NPOT 紋理大小通常需要稍微多一點(diǎn)的內(nèi)存,并且 GPU 的采樣速度可能更慢,因此,只要有可能,最好使用 2 的冪大小以提高性能。
如果平臺(tái)或 GPU 不支持 NPOT 紋理大小,Unity 會(huì)對(duì)紋理進(jìn)行縮放和填充以達(dá)到下一個(gè) 2 的冪大小。此過(guò)程會(huì)使用更多內(nèi)存并使加載速度變慢(尤其是在較舊的移動(dòng)設(shè)備上)。通常,只應(yīng)將 NPOT 大小用于 GUI 用途。
您可以使用紋理導(dǎo)入器的?Advanced?部分中的?Non Power of 2?選項(xiàng)在導(dǎo)入時(shí)放大 NPOT 紋理資源。
注意:特定平臺(tái)可能會(huì)限定最大紋理尺寸大小。對(duì)于 DirectX,不同功能級(jí)別的最大紋理大小如下:
圖形 API/功能級(jí)別????????????????????????????????????最大 2D 和立方體貼圖紋理尺寸大小(像素)
DX9 著色器模型 2(2004 年前的 PC GPU)/OpenGL ES 2.0????????????????2048
DX9 著色器模型 3(2006 年前的 PC GPU)/Windows Phone DX11 9.3 級(jí)別/OpenGL ES 3.0????????????????????????4096
DX10 著色器模型 4/GL3(2007 年前的 PC GPU)/OpenGL ES 3.1???????8192
DX11 著色器模型 5/GL4(2008 年后的 PC GPU)????????????????????????????????16384
注意:
紋理導(dǎo)入器僅允許您選擇最大為 8K 的尺寸大?。?8192 x 8192 像素)。
對(duì)于立方體貼圖,大部分?Mali GPU?都支持最高 4K 的紋理尺寸大小。
Mipmap
Mipmap 是圖像逐漸減小版本的列表。如果紋理使用 Mipmap 時(shí),當(dāng)紋理遠(yuǎn)離攝像機(jī)時(shí),Unity 會(huì)自動(dòng)使用較小版本的紋理。這樣可以降低渲染紋理的性能成本,而且不會(huì)造成明顯細(xì)節(jié)損失。Mipmap 還可以減少紋理鋸齒和閃爍。
啟用 Mipmap 會(huì)讓內(nèi)存使用量增加 33%,因此,僅當(dāng)紋理與攝像機(jī)之間的距離將發(fā)生改變時(shí),才應(yīng)該對(duì)紋理使用 Mipmap。如果紋理與攝像機(jī)之間的距離不會(huì)改變(比如用于 UI、天空盒等等對(duì)象的紋理),則不應(yīng)對(duì)這種紋理使用 Mipmap。
可以使用紋理串流 (Texture Streaming)?來(lái)控制 Unity 在運(yùn)行時(shí)加載 Mipmap 的方式。
法線貼圖
法線貼圖由法線貼圖著色器用于使簡(jiǎn)單多邊形模型看起來(lái)好像包含更多細(xì)節(jié)。Unity 使用編碼為 RGB 圖像的法線貼圖。您也可以選擇從灰度高度貼圖圖像生成法線貼圖。
Alpha 貼圖
Alpha 貼圖是僅包含 Alpha 信息的紋理??梢允褂?Alpha 貼圖對(duì)材質(zhì)應(yīng)用不同級(jí)別的透明度。
在 Unity 中,可以通過(guò)如下方式來(lái)創(chuàng)建 Alpha 貼圖:創(chuàng)建在 Alpha 通道中包含信息的紋理,或創(chuàng)建灰度紋理并將灰度值轉(zhuǎn)換為 Alpha 值。
有關(guān)更多信息,請(qǐng)參閱?Alpha Source?紋理導(dǎo)入設(shè)置的文檔。
細(xì)節(jié)貼圖
如果您想創(chuàng)建地形,通常要使用主紋理來(lái)顯示地形的各個(gè)區(qū)域,如草地、巖石和沙地。如果地形很大,可能會(huì)變得非常模糊。細(xì)節(jié)紋理通過(guò)在靠近主紋理時(shí)淡入小細(xì)節(jié)來(lái)隱藏這一情況。
繪制細(xì)節(jié)紋理時(shí)應(yīng)注意,中性灰色不可見,白色使主紋理變亮兩倍,黑色使主紋理完全變黑。
請(qǐng)參閱有關(guān)輔助貼圖(細(xì)節(jié)貼圖)的文檔以了解更多信息。
反射(立方體貼圖)
要將紋理用于反射貼圖(例如在反射探針或立方體貼圖的天空盒中),請(qǐng)將?Texture Shape?設(shè)置為?Cube。請(qǐng)參閱有關(guān)立方體貼圖紋理的文檔以了解更多信息。
各向異性過(guò)濾
各向異性過(guò)濾可提高從掠射角觀察時(shí)的紋理質(zhì)量。此渲染在顯卡上非常消耗資源。提高各向異性水平通常對(duì)于地面和地板紋理而言是一種很好的做法。請(qǐng)使用?Quality?設(shè)置強(qiáng)制對(duì)所有紋理進(jìn)行各向異性過(guò)濾或完全禁用該功能。

支持的文件格式
Unity 可讀取以下文件格式:
BMP
EXR
GIF
HDR
IFF
JPG
PICT
PNG
PSD
TGA
TIFF
注意,Unity 可以導(dǎo)入多層 Photoshop PSD 或 TIFF 文件,Unity 在導(dǎo)入這些后會(huì)自動(dòng)展平,這樣就不會(huì)在游戲中造成大小損失。這種展平操作發(fā)生在 Unity 中導(dǎo)入的數(shù)據(jù),而不是文件本身,因此您可以繼續(xù)保存和導(dǎo)入 PSD 或 TIFF 文件,以原生方式使用這些文件類型時(shí)不會(huì)丟失任何工作。這很重要,因?yàn)橹恍杳總€(gè)紋理的一個(gè)副本即可在不同的應(yīng)用程序(Photoshop、3D 建模應(yīng)用程序以及 Unity)中使用紋理。