一、圖片導(dǎo)入概述
??Unity?支持的圖片格式有很多
-
BMP:是 Windows 操作系統(tǒng)的標(biāo)準(zhǔn)圖像文件格式,特點(diǎn)是幾乎不進(jìn)行壓縮,占磁盤空間大
-
TIF:基本不損失圖片信息的圖片格式,缺點(diǎn)是體積大
-
JPG:一般指 JPEG 格式,屬于有損壓縮格式,能夠讓圖像壓縮在很小的存儲空間,一定程度上會損失圖片數(shù)據(jù),無透明通道
-
PNG:無損壓縮算法的位圖格式,壓縮比高,生成文件小,有透明通道
-
TGA:支持壓縮,使用不失真的壓縮算法,還支持編碼壓縮。體積小,效果清晰,兼?zhèn)?BMP 的圖像質(zhì)量和 JPG 的體積優(yōu)勢,有透明通道
-
PSD:是PhotoShop(PS)圖形處理軟件專用的格式,通過一些第三方工具或自制工具可以直接將 PSD 界面轉(zhuǎn)為 UI 界面
? 其它還支持 EXR、GIF、HDR、IFF、PICT 等等
? 其中 Unity 最常用的圖片格式是 JPG、PNG、TGA 三種格式
二、紋理類型設(shè)置 Texture Type
? 設(shè)置紋理類型主要是為了讓紋理圖片有不同的主要用途,指明其是用于哪項(xiàng)工作的紋理
(一)Default
? 默認(rèn)紋理,大部分導(dǎo)入的模型貼圖都是該類型
-
sRGB(Color Texture):啟用可以將紋理存儲在伽馬空間中(對每一個像素做一次冪函數(shù)運(yùn)算)
人眼對光強(qiáng)的反應(yīng)不呈線性。我們在觀察光時會發(fā)現(xiàn)一些亮度比另一些亮度更容易看到,即從黑到白的線性漸變在我們?nèi)搜壑胁皇蔷€性漸變的左:線性漸變。右:人眼對該漸變的感知情況。
由于歷史原因,監(jiān)視器和顯示器具有相同的特性。向監(jiān)視器發(fā)送線性信號會導(dǎo)致看起來像上圖右側(cè)的漸變,人眼觀察感覺是錯誤的。為了彌補(bǔ)這一點(diǎn),需要發(fā)送經(jīng)校正的信號來確保監(jiān)視器能夠呈現(xiàn)出看起來自然的圖像。這種校正稱為伽馬校正。
伽馬和線性顏色空間同時存在的原因是,光照計(jì)算應(yīng)該在線性空間中進(jìn)行,以便確保數(shù)學(xué)上的正確性,但結(jié)果應(yīng)該在伽馬空間中呈現(xiàn)以便讓人眼看起來正確。在幀緩沖格式限制為每通道 8 位的舊硬件上,計(jì)算光照時使用伽馬曲線可在人類可感知的范圍內(nèi)提供更高的精度。在人眼最敏感的范圍內(nèi),使用的位數(shù)最多。
伽馬空間的公認(rèn)標(biāo)準(zhǔn)稱為 sRGB 。該標(biāo)準(zhǔn)定義了它與線性空間之間的一個映射,使得人眼能充分利用 8 位 / 通道的精度
線性渲染指的是渲染場景的過程,此情況下的所有輸入都是線性的,也就是說,沒有經(jīng)過伽馬校正以適合人眼觀察或輸出到顯示器。
-
Alpha Source:指定如何生成紋理的 Alpha 通道
- None:無論輸入紋理是否有 Alpha 通道,導(dǎo)入的紋理都沒有 Alpha 通道
- Input Texture Alpha:輸入紋理中的 Alpha 通道
- From Gray Scale:從輸入紋理 RGB 值的平均值生成 Alpha,一般不使用
-
Alpha Is Transparency:啟用可以過濾邊緣上的瑕疵,建議啟用
(二)Normal Map
? 法線貼圖就是在原物體的凹凸表面的每個點(diǎn)上均作法線
? 法線:垂直于某個點(diǎn)的切線方向的方向向量
- Create From Grayscale:啟用此屬性可以從灰度高度貼圖創(chuàng)建法線貼圖
- Bumpiness:控制凹凸程度,值越大,凹凸感越強(qiáng)
- Filtering:如何計(jì)算凹凸值
- Smooth:使用標(biāo)準(zhǔn)算法生成法線貼圖
- Sharp:生成比標(biāo)準(zhǔn)模式更銳利的法線貼圖
(三)Editor GUI and Legacy GUI
? 一般在編輯器中或者 GUI 上使用的紋理
(四)Sprite(2D and UI)
? 2D 游戲或者 UGUI 中使用的格式
-
Sprite Mode:圖像中提取精靈圖形的方式
- Single:按原樣使用精靈圖像
- Multiple:瓦片模式。如果是圖集,使用該選項(xiàng)則可在 Sprite Editor 窗口中自定義圖片
- Polygon:網(wǎng)格精靈模式
-
Pixels Per Unit:世界空間中的一個距離單位對應(yīng)多少像素
-
MeshType:網(wǎng)格類型
只有 Single 和 Multiple 模式才支持
-
Full Rect:創(chuàng)建四邊形,將精靈顯示在四邊形上
-
Tight:基于像素 Alpha 值來生成網(wǎng)格,更加貼合精靈圖片的形狀
任何小于 32 * 32 的精靈都會使用 Full Rect 模式,即使是設(shè)置成 Tight 也是
-
-
Extrude Edges:使用滑動條確定生成的網(wǎng)格中精靈周圍流出的區(qū)域大小
-
Pivot:精靈圖片的軸心點(diǎn)
Single 模式才有此選項(xiàng),對應(yīng)九宮格布局中的 9 個點(diǎn)
-
Generate Physics Shape:啟用此選項(xiàng),Unity 會自動根據(jù)精靈輪廓生成默認(rèn)物理形狀
只有 Single 和 Multiple 模式才可使用
-
Sprite Editor:編輯 Sprite,需要安裝 2D Sprite 包,后續(xù)講解
(五)Cursor
? 自定義光標(biāo)
(六)Cookie
? 光源剪影格式
-
Light Type:應(yīng)用的光源類型
一般點(diǎn)光源的剪影需要設(shè)置為立方體紋理,方向光和聚光燈的剪影設(shè)置為 2D 紋理
- Spotlight:聚光燈類型,需要邊緣純黑色紋理,Texture Shape 會自動變?yōu)?2D
- Directional:方向光,平鋪紋理,Texture Shape 會自動變?yōu)?2D
- Point:點(diǎn)光源,需要設(shè)置為立方體形狀,Texture Shape 會自動變?yōu)?Cube
-
Alpha Source:指定如何生成紋理的 Alpha 通道
- None:無論輸入紋理是否有 Alpha 通道,導(dǎo)入的紋理都沒有 Alpha 通道
- Input Texture Alpha:輸入紋理中的 Alpha 通道
- From Gray Scale:從輸入紋理 RGB 值的平均值生成 Alpha,一般不使用
-
Alpha Is Transparency:啟用可以過濾邊緣上的瑕疵,建議啟用
(七)Lightmap
? 光照貼圖格式
(八)Single Channel
? 紋理只需要單通道的格式
-
Channel:希望將紋理處理為 Alpha 還是 Red 通道
- Alpha:使用 Alpha 通道,不允許壓縮
- Red:使用 Red 通道
-
Alpha Source:指定如何生成紋理的 Alpha 通道
- None:無論輸入紋理是否有 Alpha 通道,導(dǎo)入的紋理都沒有 Alpha 通道
- Input Texture Alpha:輸入紋理中的 Alpha 通道
- From Gray Scale:從輸入紋理 RGB 值的平均值生成 Alpha,一般不使用
-
Alpha Is Transparency:啟用可以過濾邊緣上的瑕疵
三、紋理形狀設(shè)置 Texture Shape
? 紋理不僅可以用于模型貼圖,還可以用于制作天空盒和反射探針
? 紋理形狀設(shè)置主要就是用于在兩種模式之間進(jìn)行切換
(一)2D
? 2D 紋理,最常用的設(shè)置,這些紋理將使用到模型和 GUI 元素上
(二)Cube
? 立方體貼圖,主要用于天空盒和反射探針
-
Mapping:如何將紋理投影到游戲?qū)ο笊?/p>
- Auto:根據(jù)紋理信息創(chuàng)建布局
- 6 Frames Layout:紋理包含標(biāo)準(zhǔn)立方體貼圖布局之一排列的六個圖像
- Latitude-Longitude Layout:將紋理映射到 2D 維度 / 經(jīng)度
- Mirrored Ball:將紋理映射到類似球體的立方體貼圖上
-
Convolution Type:紋理的過濾類型
- None:無過濾
- Specular:將立方體作為反射探針
- Diffuse:將紋理進(jìn)行過濾表示輻照度,可作為光照探針
-
Fixup Edge Seams:解決低端設(shè)備上面之間立方體貼圖過濾錯誤
Convolution Type 為 None 或 Diffuse 才有用
四、紋理高級設(shè)置 Advanced
? 高級設(shè)置主要是紋理的一些尺寸規(guī)則、讀寫規(guī)則、以及 MipMap 相關(guān)設(shè)置
(一)MipMap
? 在三維計(jì)算機(jī)圖形的貼圖渲染中有一個常用的技術(shù)被稱為 Mipmapping。
? 為了加快渲染速度和減少圖像鋸齒,貼圖被處理成由一系列被預(yù)先計(jì)算和優(yōu)化過的圖片組成的文件,這樣的貼圖被稱為 Mipmap,Mipmap 需要占用一定的內(nèi)存空間
? Mipmap 中每一個層級的小圖都是主圖的一個特定比例的縮小細(xì)節(jié)的復(fù)制品,雖然在某些必要的視角,主圖仍然會被使用,來渲染完整的細(xì)節(jié)。但是當(dāng)貼圖被縮小或者只需要從遠(yuǎn)距離觀看時,Mipmap 就會轉(zhuǎn)換到適當(dāng)?shù)膶蛹?/p>
? 因?yàn)?Mipmap 貼圖需要被讀取的像素遠(yuǎn)少于普通貼圖,所以渲染的速度得到了提升。而且操作的時間減少了,因?yàn)?Mipmap 的圖片已經(jīng)是做過抗鋸齒處理的,從而減少了實(shí)時渲染的負(fù)擔(dān)。放大和縮小也因?yàn)?Mipmap 而變得更有效率。
? 如果貼圖的基本尺寸是 256 * 256 像素的話,它的 Mipmap 就會有 8 個層級,每個層級是上一層級的四分之一的大小
? 依次層級大小就是:128 * 128、64 * 64、32 * 32、16 * 16、8 * 8、4 * 4、2 * 2、1 * 1(一個像素)
? 開啟 MipMap 功能后,Unity 會幫助我們根據(jù)圖片信息生成 n 張不同分辨率的圖片,在場景中會根據(jù)我們離該模型的距離選擇合適尺寸的圖片用于渲染,提升渲染效率
? 在 Unity 中,啟用選項(xiàng) Generate Mip Maps 后,可以看見圖片的 Mipmap:
(二)參數(shù)介紹
-
Non-Power of 2:如果紋理尺寸非 2 的冪該如何處理
-
None:紋理尺寸大小保持不變
-
To nearest:將紋理縮放到最接近 2 的冪的大小
(PVRTC 格式要求紋理必須為正方形)
-
To larger:將紋理縮放到最大尺寸大小值的 2 的冪的大小
-
To smaller:將紋理縮放到最小尺寸大小值的 2 的冪的大小
-
-
Read / Write Enabled:啟用可以使用 Unity 中提供的一些方法從紋理中獲取到數(shù)據(jù),會占用額外內(nèi)存
-
Streaming Mipmaps:啟用則可以使用紋理串流
主要用于在控制加載在內(nèi)存中的 Mipmap 級別,用于減少 Unity 對于紋理所需的內(nèi)存總量,用性能換內(nèi)存
-
Mip Map Priority:Mipmap 優(yōu)先級
Unity 根據(jù)優(yōu)先級來確定分配資源時優(yōu)先考慮哪些 Mipmap
-
-
Generate Mip Maps:允許生成 MipMap
2D 游戲不需要啟用
-
Border Mip Map:啟用可避免顏色向外滲透到較低 MIP 級別的邊緣,默認(rèn)啟用即可
-
Mip Map Filtering:優(yōu)化圖像質(zhì)量的過濾方法
-
Box:隨著尺寸減小,級別更加平滑
-
Kaiser:隨著 Mipmap 尺寸大小下降而使用的銳化算法,效果較好
如果遠(yuǎn)處紋理太模糊,可以使用該算法
-
-
Mip Maps Preserve Coverage:Mipmap 的 Alpha 通道在 Alpha 測試期間保留覆蓋率
- Alpha Cutoff Value:覆蓋率參考值
-
Fadeout Mip Maps:級別遞減時使 Mipmap 淡化為灰色,需要保留顏色時則不勾選
-
五、紋理平鋪拉伸設(shè)置
? 平鋪拉伸主要設(shè)置紋理的平鋪規(guī)則以及拉伸規(guī)則
(一)準(zhǔn)備工作
? 在 Unity 2D 中創(chuàng)建 Quad 與 Material,Material 選擇 Unlit / Texture 材質(zhì),并關(guān)聯(lián)一張圖片,將 Material 拖到 Quad 上
- Tiling:平鋪數(shù)量,表示在 X 軸和 Y 軸上平鋪多少張圖片
- Offset:偏移位置
? 我們將 Tiling 的 X 和 Y 都設(shè)置為 2
(二)參數(shù)介紹
-
Wrap Mode:平鋪紋理時的方式
-
Repeat:在區(qū)塊中重復(fù)紋理
-
Clamp:拉伸紋理的邊緣
-
Mirror:在每個整數(shù)邊界上鏡像紋理以創(chuàng)建重復(fù)圖案
-
Mirror Once:鏡像紋理一次,然后將拉伸邊緣紋理
看上去像是直接 Clamp,但我們設(shè)置偏移位置 Offset 中 X 為 -1 后,可以看見是鏡像了的
-
Per-axis:單獨(dú)控制如何在 U 軸和 V 軸上包裹紋理
這里 U 和 V 軸相當(dāng)于 X 和 Y 軸
-
-
Filter Mode:紋理在通過 3D 變化拉伸時如何過渡
- Point:紋理在靠近觀察時變?yōu)閴K狀
- Bilinear:紋理在靠近觀察時變得模糊,推薦使用
- Trilinear:與 Bilinear 類似,但紋理也在不同的 Mip 級別之間模糊
-
Aniso Level:以大角度斜視查看紋理時提高紋理質(zhì)量,性能消耗高
六、紋理平臺打包設(shè)置
? 平臺設(shè)置主要設(shè)置紋理最終打包時在不同平臺的尺寸、格式、壓縮方式
? 它非常的重要,因?yàn)樗绊懥四愕陌笮『妥x取性能方面的問題
-
Max Size:導(dǎo)入紋理的最大尺寸,一般設(shè)置為 2048 即可
-
Resize Algorithm:當(dāng)紋理尺寸大于 Max Size 時,使用的縮小算法
- Mitchell:米切爾算法,常用
- Bilinear:雙線性插值調(diào)整大小,相比 Mitchell 保留的細(xì)節(jié)會更多一些
-
Format:紋理格式
各個平臺支持的格式不同,如果選擇 Automatic,會根據(jù)平臺使用默認(rèn)設(shè)置
IOS —— 選擇默認(rèn)的紋理壓縮設(shè)置(PVRTC)可以獲得更大的兼容性
Andorid —— ASTC、ETC2 / EAC、ETC、RGBA 16 位、RGBA 32 位
-
Compression:紋理的壓縮類型
- None:不壓縮紋理
- Low Quality:低質(zhì)量格式壓縮
- Normal Quality:標(biāo)準(zhǔn)格式壓縮
- High Quality:高質(zhì)量格式壓縮
-
Use Crunch Compression:啟用后,使用 Crunch 壓縮
壓縮時間長,但解壓速度快
- Compression Quality:壓縮質(zhì)量,質(zhì)量越高,則紋理越大,壓縮時間越長
-
Split Alpha Channel:分離 Alpha 通道
僅當(dāng)壓縮格式為 ETC 時才會出現(xiàn)
會把一張圖分成兩張紋理,一張包含 RGB 數(shù)據(jù),一張包含 Alpha 數(shù)據(jù),會節(jié)約內(nèi)存文章來源:http://www.zghlxwxcb.cn/news/detail-492146.html
-
Override ETC2 fallback:若設(shè)備的格式不支持 ETC2,則將使用該格式文章來源地址http://www.zghlxwxcb.cn/news/detail-492146.html
到了這里,關(guān)于Unity核心1——圖片導(dǎo)入與圖片設(shè)置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!