游戏内图片-文件格式与纹理格式

Posted 阳光下的蒲公英

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了游戏内图片-文件格式与纹理格式相关的知识,希望对你有一定的参考价值。

有一篇好文章,链接门: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

 

以上是关于游戏内图片-文件格式与纹理格式的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2dx--纹理使用

Unity 2D精灵

OpenGL ES 压缩纹理

3D模型文件 OBJ格式模型详细介绍

内部格式为 GL_RGBA8 的纹理在片段着色器中显示为浮点数

一个操作让游戏内存立减50+%-CocosCreator性能优化之压缩纹理