当前位置首页 > 初中物理 > 辅导探讨

iOS图片格式和纹理格式的区别和联系方式有哪些?

更新时间:2024-02-22 文章作者:佚名 信息来源:网络整理 阅读次数:

图片格式是图片文件的存储格式。 用于图片文件的存储和传输。 通常用于磁盘文件、内存和网络传输。lHH物理好资源网(原物理ok网)

纹理格式是显卡可以直接采样的纹理数据的格式。 它是将纹理加载到显卡时使用的数据格式。lHH物理好资源网(原物理ok网)

图像格式和纹理格式之间的关系是无关紧要的。 计算机中的所有图像文件,如果需要用作纹理,必须先转换为显卡识别的纹理格式,然后才能提交给显卡。lHH物理好资源网(原物理ok网)

有许多常用的图像格式,包括位图和矢量、压缩和未压缩、无损和有损压缩。 例如,bmp是一种未压缩的位图格式,png是一种使用lz77压缩算法对位图进行无损压缩的格式。 并且jpg是一种有损压缩格式,并且jpg没有alpha通道。lHH物理好资源网(原物理ok网)

纹理格式取决于显卡和图形API的支持。 更基础的32位纹理,或者不带Alpha通道,或者16位纹理等,目前显卡级图形API都广泛支持。 一些特殊的纹理格式只能由支持特定图形API的图形设备支持。 例如,iOS中独特的DXTx系列、广泛使用的ETC系列以及iOS中最新的ASTC系列纹理格式只能在特定设备上支持。lHH物理好资源网(原物理ok网)

当将图像加载到纹理中时,需要根据相应的规范对图像格式进行解码,通常是解码成原始位图图型和图形的区别,然后重新编码成你需要的纹理格式。 游戏引擎,例如Unity或,通常会为我们完成这个过程,而开发者不必自己关注细节。lHH物理好资源网(原物理ok网)

然而,这种加载方法有一个问题。 解压缩、解码、重新编码、压缩等都是消耗CPU的操作,这意味着会比较耗时。 因此,它会导致一张图像从磁盘加载,直到提交到显存成为纹理。 过程比较慢,加载过程中会出现明显的卡顿和掉帧现象。lHH物理好资源网(原物理ok网)

为了加快这个时间,Unity在打包资源时,无论是安装包图型和图形的区别,都采用了一种机制,将图像预先转换为对应平台的纹理格式。 由于包中保存的已经是最终的纹理格式,因此加载时省略了图像解码、解压、纹理编码的过程,可以加快加载速度。 这就是Unity的包不跨平台的原因之一,因为纹理格式是与平台相关的。lHH物理好资源网(原物理ok网)

这就是为什么 jpg 文件很小,但生成的纹理却更大的原因。 JPG 是一种有损压缩图像文件格式。 一般来说,有损压缩可以获得比无损压缩更小的文件大小,并且JPG没有Alpha通道。 这个jpg文件对应的纹理格式可能是原始的位图格式,当然会比jpg大很多。lHH物理好资源网(原物理ok网)

仔细选择纹理格式非常重要。 针对不同的目标平台和不同的显示要求,选择您使用的纹理格式和纹理大小对于图形优化非常重要。lHH物理好资源网(原物理ok网)

如果目标平台是PC,并且不需要极高清晰度的图像质量,那么DXTx当然是你的最佳选择,并且可以使用压缩来进一步减小纹理尺寸。 通常选择不带透明通道的DXT1,带透明通道的DXT1。 DXT5。 DXT 纹理格式也是一种有损压缩编码纹理。 它的原理和JPG类似,但是采样速度的大小固定为4x4,所以不能像JPG那样选择质量。 其纹理大小比原始32位RGBA纹理表小8倍。 (DXT1) 和 4x (DXT5)。lHH物理好资源网(原物理ok网)

如果目标平台是移动设备,目前该设备上主要使用ETC格式,只有少数设备支持DXT格式。 高端 iOS 设备支持新格式 ASTC。 您可以查看文档以了解有关如何使用它的详细信息。lHH物理好资源网(原物理ok网)

如果必须使用JPG图片来加载,则只能将JPG图片文件不作为文件使用,而是作为二进制资源使用。 它在运行时被实时加载到内存中,然后转换成纹理。 这节省了空间,但增加了时间开销。lHH物理好资源网(原物理ok网)

发表评论

统计代码放这里