ATF(Adobe Texture Format)简介

2024-02-04 15:18
文章标签 简介 adobe format texture atf

本文主要是介绍ATF(Adobe Texture Format)简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[转]ATF(Adobe <wbr>Texture <wbr>Format)简介


ATF(Adobe Texture Format)是一种能提供最佳压缩效果的文件格式。ATF 文件主要是一个存储有损纹理数据(lossy texture data)的文件容器。它主要使用了两种类似技术:JPEG-XR1 压缩技术和基于块的压缩技术(简称块压缩技术),来实现它的有损压缩。
ATF 为 GPU 优化贴图,支持压缩贴图格式 ATF,减少在使用中显存的总量。这点对于移动设备特别重要。
ATF 格式全称 Adobe Texture Format,说白了,就是奥多比专用贴图格式。这里大家注意到没有?Texture 这个词是在 GPU 加速的字典里才出现的。普通的图只能叫 BitmapData 而到了 GPU 里才能叫 Texture。证明这个 ATF 格式是和 Flash Player 11 支持 GPU 硬件加速是紧密相连的。
那么 ATF 能实现哪些功能让 GPU 加速?ATF 支持2种格式,其中支持一种 DXT1 的格式。问谷哥,这种格式由显卡公司 S3 开发,能够大幅节省显存。而目前流行的格式有 DXT1,DXT3,DXT5 等。这里得给大家做个科普,一张图片在内存里的大小,是根据公式 size = width * height * BPP 决定的。加入一张1024 X 1024的真彩色图片,那么在内存里就 占用了 4MB 空间 。假如使用 DXT1 格式,那么将大幅度减少占用量减少到原来的30%。大幅节省空间。由于解压缩算法是GPU硬件完成,所以能够同时获得空间压缩以及GPU加速的效果。这也就是为什么这种格式如此流行的原因了。
此外还有朋友问,JPEG和PNG也是压缩格式也能获得压缩他们和ATF有什么区别呢JPEG和PNG在外部的确是压缩保存的,当他们被加载, Flash 会做2件事情:
1. 从外部读取2进制文件;
2. Decode,从压缩的二进制还原到 BitmapData;
大家注意到没有?这里就存在巨大的性能损失了!因为 Decode 是由 CPU 完成的,在游戏运行时做这件事情比较频繁的话,就很容易引起卡顿。而这是众多大型MMO游戏卡的根本原因。
而用了 ATF 格式,由于解压缩算法由 GPU 完成,所以 Flash 只要做一件事情,就是加载上传就搞定了,具体调用的 API 接口是 Texture3D.uploadCompressTexture 直接加载,上传搞定。不存在 CPU 开销巨大的 Decode,从根本上保证了游戏流畅度。
当然 ATF 格式作为一个新生儿,还是有很大的成长空间。
1. ATF 需要在未来支持更多的 DXT 格式,最好1-5都能支持。当然这取决于目标硬件的普及程度。(赵客注:ATF 已经支持 DXT5了。感谢James Li 提醒!)
2. ATF 需要优化算法和存储结构,减少本身的体积占用,目前 ATF 格式要比 PNG 格式大20%。
3. 需要整合进 Adobe 各种产品线,比如 Photoshop 能够直接保存出 ATF 格式。
4. 外围拓展,将 ATF 整合进3ds Max,Maya 等3D工具,以及整合进各种3D引擎。

关于Texture:
Mip 映射是一个重要却简单易懂的概念。将一个纹理保存多个缩小版本的方式就叫做 Mip 映射。
【PS:如一个 256*256 尺寸的纹理被保存了 128*128、64*64….1*1 这么多版本的纹理于内存中】。
需要注意的是,若要使用 Mip 映射,那么你的纹理尺寸必须保证为2的倍数(1, 2, 4, 8, 16, 32, 64, 128, 256,512, 1024, 2048),但形状不一定必须是矩形。如果你没有遵守这个规则,那么 Starling 将会为你自动创建一个与当前纹理尺寸最接近的能被2整除的数值作为尺寸的纹理(如你使用的纹理尺寸为31*31,那么 Starling 会为你创建一个32*32尺寸的纹理),但这可能会对内存有一点消耗。为了确保尽可能地优化纹理的内存占用,我们建议您最好使 texture atlases(翻译成中文叫做纹理贴图集,但是没多少人会用中文称呼之),也被广泛称作 SpriteSheet(翻译成中文叫做精灵表,但是也没人这么叫它,都直接用英文名称呼的)的素材集成、使用方式。稍后我们会接着讨论它。
为了保证最佳的呈现品质,GPU 需要一个图片的全部 Mip 映射等级,即由原始尺寸依次除以二直到除不尽 2 了为止。
【PS:对于一个 128*128 尺寸的纹理来说,它的全部 Mip 映射等级为:64*64,32*32,16*16,8*8,4*4,2*2 以及 1*1】
Starling框架能够自动替你生成全部 Mip 映射等级,若是你不用 Starling框架的话,那你就得通过使用 BitmapData.draw 这个 API 并使用一个缩小一倍的 Matrix 作为参数来手动地生成全部的映射等级。
建议为2D内容使用Mip映射,这样可以使它们在缩放时能够减少锯齿的产生。

原文出处:
​http://hi.baidu.com/sgfswen/item/5f8f15ea0a0cf8c9bbf37da6

这篇关于ATF(Adobe Texture Format)简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677930

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工