游戲內圖片-文件格式與紋理格式


有一篇好文章,鏈接門: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系列。

Unity3D手游開發實踐《騰訊桌球》客戶端開發經驗總結 ...

 

補充,補充【好記性不如爛筆頭】常用的圖片 文件格式 和 紋理格式

4,針對移動設備上的圖片優化方法:

ios用pvrtc 或者 pvr.ccz

Android用ETC1

 

附:

http://www.cnblogs.com/zhengye/articles/2193006.html

http://www.cnblogs.com/luming1979

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM