图片显存计算

 

显存容量=显示分辨率×颜色位数/8bit

注意,图片在显存中的占用空间和存储时的占用空间,是不同的概念,显存主要是解码后的每个点的数据,文件数据要看你的格式、压缩比、文件头、附加信息等等,因此文件数据和图片在内存和显存中的数据差别可能会很大。

以下图为例

直接查看属性,可以看到,文件大小,41.8KB,170*153分辨率,占用空间44.0KB,占用空间和文件本身大小差距不大,存储文件占用的内存受到文件格式、压缩比等的影响。但是项目中调用这张图片资源时,占用的显存却并不是44KB或者41.8KB。运行显存包含解码后每个像素点的数据。

计算显存

显存容量=显示分辨率×颜色位数/8bit

注意这个公式的分辨率是显示分辨率,而不是图片分辨率

(图片所占显存大小 = 图片长度(像素) * 图片宽度(像素) * 一个像素所占内存空间(单位:字节) )

计算显存时,分辨率取的不是图片本身的分辨率,而是图片本身分辨率向上取2^n之后的分辨率,因为显存纹理的宽和高都要是2次幂数

属性详情显示位深(即颜色位数)为24位,故一个像素占用字节数为24/8(一个字节占用8位)=3,

2^4<170<2^5

2^4<153<2^5

 

所以图片占用显存大小为

2^5*2^5*3 = 192KB,远大于文件本身的41.8KB,因此,在项目设计时,散图资源如果在2^n附近时,尽量让美术修改到小于等于2^n大小。对游戏体验影响较大,并且可以极大降低显存,提升H5游戏流畅度。

发布了61 篇原创文章 · 获赞 1 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章