admin 管理员组文章数量: 1184232
显存容量=显示分辨率× 位数/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游戏流畅度。
版权声明:本文标题:显存计算与图片资源优化 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1773989614a3568043.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论