🏆 個人愚見,沒事寫寫筆記
🏆《博客內容》:Unity3D開發內容
🏆🎉歡迎 👍點贊?評論?收藏
🔎Unity支持的圖片格式
??BMP:是Windows操作系統的標準圖像文件格式,特點是幾乎不進行壓縮,占磁盤空間大
??TIF:基本不損失圖片信息的圖片格式,缺點是體積大
??JPG:一般指JPEG格式,屬于有損壓縮格式,能夠讓圖像壓縮在很小的存儲空間,一定程度上會損失圖片數據,無透明通道
??PNG:無損壓縮算法的位圖格式,壓縮比高,生成文件小,有透明通道
??TGA:支持壓縮,使用不失真的壓縮算法,還支持編碼壓縮。體積小,效果清晰,兼備BMP的圖像質量和JPG的體積優勢,有透明通道
??PSD:是PhotoShop(PS)圖形處理軟件專用的格式,通過一些第三方工具或自制工具可以直接將PSD界面轉為UI界面
??其它還支持:EXR、GIF、HDR、IFF、PICT等等
??Unity最常用的圖片格式:JPG、PNG、TGA三種格式
🔎圖片設置的6大部分
??紋理類型:Texture Type
🛠?Default:默認紋理,大部分導入的模型貼圖都是該紋理
??sRGB(Color Texture):啟用可以將紋理存儲在伽馬空間中(對每一個像素做一次冪函數運算)
??Alpha Source:指定如何生成紋理的Alpha通道
📌None:無論輸入紋理是否有Alpha通道,導入的紋理都沒有Alpha通道
📌Input Texture Alpha:輸入紋理中的Alpha
📌From Gray Scale:從輸入紋理RGB值的平均值生成Alpha
??Alpha Is Transparency:啟用可以避免邊緣上的過濾瑕疵
🛠?Normal map:法線貼圖格式
法線貼圖就是在原物體的凹凸表面的每個點上均作法線 法線就是垂直于某個點的切線的方向向量
??Create From Grayscale: 啟用此屬性可以從灰度高度貼圖創建法線貼圖
📌Bumpiness: 控制凹凸程度,值越大凹凸感越強
📌Filtering: 如何計算凹凸值
Smooth:使用標準算法生成法線貼圖
Sharp:生成比標準模式更銳利的法線貼圖
🛠?Editor GUI and Legacy GUI:?一般在編輯器中或者GUI上使用的紋理
🛠?Sprite(2D and UI)?:2D游戲或者UGUI中使用的格式
??Sprite Mode: 圖像中提取精靈圖形的方式
📌Single:按原樣使用精靈圖像
📌Multiple:瓦片模式,如果是圖集,使用該選項,可以在Sprite Editor編輯窗口自定義圖片
📌Polygon:網格精靈模式
📌Pixels Per Unit:世界空間中的一個距離單位對應多少像素:1米=100像素
📌MeshType:網格類型;只有Single和Multiple模式才支持
Full Rect:創建四邊形,將精靈顯示在四邊形上
Tight:基于像素Alpha值來生成網格,更加貼合精靈圖片的形狀
任何小于32*32的精靈都使用FullRect模式,即使設置成Tight模式也是
📌Extrude Edges:使用滑動條確定生成的網格中精靈周圍流出的區域大小
📌Pivot:精靈圖片的軸心點,Single模式才有此選項 對應九宮格布局的九個點,還可以自定義
📌Generate Physics Shape:啟用此選項,Unity會自動根據精靈輪廓生成默認物理形狀 只有Single 和Multiple模式才可使用
📌Sprite Editor:編輯Sprite,需要安裝2D Sprite包
🛠?Cursor:自定義光標
🛠?Cookie:光源剪影格式
??Light Type:應用的光源類型
一般點光源的剪影需要設置(Texture Shape)為立方體紋理(Cube) ,方向光和聚光燈的剪影設置為2D紋理(2D)
📌Spotlight:聚光燈類型,需要邊緣純黑色紋理
📌Directional:方向光,平鋪紋理
📌Point:點光源,需要設置為立方體形狀
🛠?Lightmap:光照貼圖格式
🛠?Single Channel:紋理只需要單通道的格式
??Channel:希望將紋理處理為Alpha還是Red通道
📌Alpha:使用Alpha通道,不允許進行壓縮
📌Red:使用紅色通道
??紋理形狀:Texture Shape
紋理不僅可以用于模型貼圖,還可以用于制作天空盒和反射探針,紋理形狀設置主要就是用于在兩種模式之間進行切換
🛠?2D:2D紋理,最常用設置,這些紋理將使用到模型和GUI元素上
🛠?Cube:立方體貼圖,主要用于天空盒和反射探針
??Mapping:如何將紋理投影到游戲對象上
📌Auto:根據紋理信息創建布局
📌6 Frames Layout:紋理包含標準立方體貼圖布局之一排列的六個圖像
📌Latitude-Longitude Layout:將紋理映射到2D維度/經度
📌Mirrored Ball:將紋理映射到類似球體的立方體貼圖上
??Convolution Type:紋理的過濾類型
📌None:無過濾
📌Specular:將立方體作為反射探針
📌Diffuse:將紋理進行過濾表示輻照度,可作為光照探針
??Fixup Edge Seams:Convolution Type 為None 和 Diffuse下才有用。解決低端設備上面之間立方體貼圖過濾錯誤
??高級設置
高級設置主要是紋理的一些尺寸規則、讀寫規則、以及MipMap相關設置
🛠?Non-Power of 2:如果紋理尺寸非2的冪如何處理
📌None:紋理尺寸大小保持不變
📌To nearest:將紋理縮放到最接近2的冪的大小 (注意:PVRTC格式要求紋理為正方形)
📌To larger:將紋理縮放到最大尺寸大小值的2的冪的大小
📌To smaller:將紋理縮放到最小尺寸大小值的2的冪的大小
🛠?Read/Write Enabled:啟用可以使用Unity中提供的一些方法從紋理中獲取到數據(一般需要獲取圖片數據時才開啟)
??MipMap:開啟MipMap功能后,Unity會幫助我們根據圖片信息生成n張不同分辨率的圖片,在場景中會根據我們離該模型的距離選擇合適尺寸的圖片用于渲染,提升渲染效率。Mipmap 需要占用一定的內存空間。。
🛠?Streaming Mipmaps:啟用則可以使用紋理串流,主要用于在控制加載在內存中的Mipmap級別,用于減少Unity對于紋理所需的內存總量,用性能換內存
??Mip Map Priority: Mipmap優先級,Unity根據優先級來確定分配資源時優先考慮哪些Mipmap
🛠?Generate Mip Maps:允許生成MipMap
??Border Mip Maps:啟用可避免顏色向外滲透到較低 MipMap級別的邊緣
??Mip Map Filtering: 優化圖像質量的過濾方法
📌Box:隨著尺寸減小,級別更加平滑
📌Kaiser:隨著Mipmap尺寸大小下降而使用的銳化算法,如果遠處紋理太模糊,可以使用該算法
??Mip Maps Preserve Coverage: Mipmap的Alpha通道在Alpha測試期間保留覆蓋率
📌Alpha Cutoff Value:覆蓋率參考值
??Fadeout Mip Maps: 級別遞減時使Mipmap淡化為灰色
??平鋪拉伸
🛠?Wrap Mode:平鋪紋理時的方式
??Repeat: 在區塊中重復紋理
??Clamp: 拉伸紋理的邊緣
??Mirror: 在每個整數邊界上鏡像紋理以創建重復圖案
??Mirror Once: 鏡像紋理一次,然后將拉伸邊緣紋理
??Per-axis: 單獨控制如何在U軸和V軸上包裹紋理
🛠?Filter Mode:紋理在通過3D變化拉伸時如何進行過度
??Point:紋理在靠近時變為塊狀
??Bilinear:紋理在靠近時變得模糊
??Trilinear:與Bilinear類似,但紋理也在不同的Mip級別之間模糊
🛠?Aniso Level:以大角度查看紋理時提高紋理質量。性能消耗高
??平臺設置
🛠?Max Size:設置導入的紋理的最大尺寸,即使美術出的很大的圖,也可以通過這里把它們限制在一定范圍內
🛠?Resize Algorithm:當紋理尺寸大于指定的Max Size時,使用的縮小算法
??Mitchell:默認米切爾算法來調整大小,該算法是常用的尺寸縮小算法
??Bilinear:使用雙線性插值來調整大小。如果細節很重要的圖片,可以使用它,它比米切爾算法保留的細節更多
🛠?Format:紋理格式 各平臺支持的格式有所不同 如果選擇Automatic 會根據平臺使用默認設置
📌各平臺都支持的格式:
📌移動端和網頁端特有格式:
??移動平臺注意事項:
📌IOS:選擇默認的紋理壓縮設置 (PVRTC) 可獲得更大的兼容性。 如果您的應用程序不包含 OpenGL ES 2 支持,則可以選擇一種 ASTC 格式。這些格式提供更好的質量和靈活性,并且壓縮速度比 PVRTC 快。
📌Andorid:由于安卓設備眾多,設備標準都不統一,一般會根據不同的設備標準制作多個安裝包
📌1.構建一個以 OpenGL ES 3 為目標的 APK
1-1訪問 Android 的 Player Settings (菜單:Edit > Project Settings >Player Settings, 然后選擇 Android 類別)。
1-2.向下滾動到 Graphics APIs 部分。
1-3.確保 OpenGL ES 2 不在列表中。
1-4.構建 APK (菜單:File > Build Settings,然后單擊 Build)。
📌2.構建一個以 OpenGL ES 2 為目標的單獨 APK
2-1訪問 Android Player Settings。
2-2.向下滾動到 Graphics APIs 部分。
2-3.在列表中添加 OpenGL ES 2 并刪除 OpenGL ES 3 和 Vulkan。
2-4.構建 APK。
??Compression: 選擇紋理的壓縮類型,幫助Unity正確選擇壓縮格式 會根據平臺和壓縮格式的可用性進行壓縮
📌None:不壓縮紋理
📌Low Quality:以低質量格式壓縮紋理
📌Normal Quality:以標準格式壓縮紋理
📌High Quality:以高質量格式壓縮紋理