有一篇好文章,鏈接門:Unity3D手游開發實踐《騰訊桌球》客戶端開發經驗總結
文章里提到了游戲內圖片-文件格式與紋理格式
我才第一次恍然知道了,文件格式和紋理格式原來是醬紫的關系。以前我是有多神經大條,處理了那么多圖片竟然沒有懂細想它們的關系……
常用的圖像文件格式有BMP,TGA,JPG,GIF,PNG等;
常用的紋理格式有R5G6B5,A4R4G4B4,A1R5G5B5,R8G8B8, A8R8G8B8等。
文件格式是圖像為了存儲信息而使用的對信息的特殊編碼方式,它存儲在磁盤中,或者內存中,但是並不能被GPU所識別,因為以向量計算見長的GPU對於這些復雜的計算無能為力。這些文件格式當被游戲讀入后,還是需要經過CPU解壓成R5G6B5,A4R4G4B4,A1R5G5B5,R8G8B8, A8R8G8B8等像素格式,再傳送到GPU端進行使用。
紋理格式是能被GPU所識別的像素格式,能被快速尋址並采樣。舉個例子,DDS文件是游戲開發中常用的文件格式,它內部可以包含A4R4G4B4的紋理格式,也可以包含A8R8G8B8的紋理格式,甚至可以包含DXT1的紋理格式。在這里DDS文件有點容器的意味。OpenGL ES 2.0支持以上提到的R5G6B5,A4R4G4B4,A1R5G5B5,R8G8B8,A8R8G8B8等紋理格式,其中 R5G6B5,A4R4G4B4,A1R5G5B5每個像素占用2個字節(BYTE),R8G8B8每個像素占用3個字節,A8R8G8B8每個像素占用 4個字節。
基於OpenGL ES的壓縮紋理有常見的如下幾種實現:
1)ETC1(Ericsson texture compression),ETC1格式是OpenGL ES圖形標准的一部分,並且被所有的Android設備所支持。
2)PVRTC (PowerVR texture compression),支持的GPU為Imagination Technologies的PowerVR SGX系列。
3)ATITC (ATI texture compression),支持的GPU為Qualcomm的Adreno系列。
4)S3TC (S3 texture compression),也被稱為DXTC,在PC上廣泛被使用,但是在移動設備上還是屬於新鮮事物。支持的GPU為NVIDIA Tegra系列。
補充,補充【好記性不如爛筆頭】常用的圖片 文件格式 和 紋理格式
4,針對移動設備上的圖片優化方法: ios用pvrtc 或者 pvr.ccz Android用ETC1 附: http://www.cnblogs.com/zhengye/articles/2193006.html http://www.cnblogs.com/luming1979