ASTC的登场则带着更鲜明的野心。它不再满足于固定的压缩模式,而是通过“自适应块大小”的设计,为不同纹理量身定制压缩方案。 更值得称道的是,ASTC对HDR纹理的出色支持,让虚拟世界的光影层次得以跃升:当阳光穿过云层在地面投下的光斑,或是篝火在暗夜里跳动的火焰,这些高动态范围的场景,经ASTC压缩后仍能呈现出从极暗到极亮的细腻过渡 ASTC的自适应能力背后,是一套复杂的“块内预测与编码”机制。 ASTC则在高端设备上展现优势:同一张金属质感的纹理,经ASTC压缩后,反光的锐利边缘和表面的细微划痕都能清晰保留,而ETC2在相同压缩率下,可能会让这些细节变得模糊。 当我们在手机上滑动3D模型,欣赏其表面细腻的纹理时,很少有人意识到,ASTC与ETC2正在后台进行着一场静默的守护。
该值是COMPRESSED_RGBA_ASTC_4x4的枚举值。所以现在我们知道了格式是ASTC,即自适应可扩展纹理压缩,一种用于存储纹理数据的有损压缩格式,并使用4x4像素的块大小。 这简化了我们的任务,现在需要找到一种将ASTC数据转换为原始图像数据的方法。一番搜索后,我找到了python库astc_decomp,它正是做这个的。 所以我现在需要将各个部分组合如下:读取KTX文件并解析格式以获取LZFSE压缩数据,以及宽度和高度参数解压缩LZFSE以获取ASTC数据将ASTC转换为RAW图像流使用PIL库将RAW图像保存为PNG将所有这些结合起来 需要注意的是,并非所有KTX文件都使用COMPRESSED_RGBA_ASTC_4x4格式,只有iOS创建的文件才使用。 因此,你可能会遇到许多部署或随应用程序分发的KTX文件无法用此工具解析,因为它只处理ASTC 4x4格式。享受吧!
一波3D相关的LayaAir引擎功能更新来了,LayaAir 2.12不仅带来了重磅的性能分析工具,纹理压缩格式也新增支持了开发者期待的ETC2与ASTC。 除了新增了ETC2的纹理压缩格式,引擎在2.12版本上,还新增支持了ASTC的纹理格式。相对于ETC格式只能用于安卓,PVR格式只能用于iOS,ASTC纹理格式是一种安卓与iOS通用的纹理压缩格式。 LayaAir引擎2.12版开始支持的ASTC纹理格式如下面的表格所示: ASTC_4x4 ASTCSRGB_4x4 ASTC_6x6 ASTCSRGB_6x6 ASTC_8x8 ASTCSRGB_8x8 ASTC_10x10 ASTCSRGB_10x10 ASTC_12x12 ASTCSRGB_12x12 即使是引擎旧版已支持的纹理压缩格式PVRTC,在2.12版开始也新增了一种模式选项PVRTC1 例如ETC2纹理压缩、ASTC纹理压缩、骨骼遮罩。 还增加了用于表现LayaAir 3D引擎渲染效果的示例,例如下面截图的次表面效果,景深效果。
基因表达谱的分析提示绝大多数亚型表达AstC或Tk的其中一个,所以可以通过AstC/Tk的表达与否把EE细胞分为两大类:Class I(AstC)和Class II(Tk)。 在前段肠道区域中存在一类AstC和Tk均不表达的EE细胞,且这些EE细胞表达另一种神经内分泌肽sNPF,这类EE被命名为Class III EE。 最终发现转录因子Mirr和Ptx1分别调控Tk+ Class II EE和AstC+ Class I EE的分化。
ASTC 3.0 采取了大胆的行动,将射频传输的服务与互联网传输的服务合并。 在这个 Streaming Media 的视频中,Nadine Krefetz 主持了与来自 ASTC 的 Madeleine Noland、来自 Evoca TV 的 Todd Achilles、来自 在 ASTC 3.0 的情况下,发射器通常可以覆盖 40 英里。该研讨会讨论了分割带宽的方式,以提供不同的服务,并具有不同的鲁棒性。
为解决这一问题,我们对比测试了多种主流压缩格式,包括ETC2、ASTC、PVRTC等,在不同场景光照条件下(强光、月光、阴影)评估它们的细节保留率、色带情况与加载速度。 结果显示,ASTC 6x6压缩格式在保持同等显存占用的前提下,暗部细节保留率比ETC2提升40%,色带问题基本消除,月光下的地面纹理过渡自然,且在支持ASTC格式的中高端设备上,贴图加载速度提升25%, 然而,考虑到部分低端安卓设备不支持ASTC格式,若仅使用ASTC格式,会导致这些设备无法正常显示烘焙贴图,出现“模型变黑”的问题。 为兼顾兼容性与画质,我们采用“格式自适应”方案,通过在游戏启动时加入设备检测模块,自动判断设备GPU是否支持ASTC格式:若支持则加载ASTC压缩的烘焙贴图,享受更好的画质与加载速度;若不支持则加载ETC2 格式贴图,并通过后期处理shader中的“暗部细节增强”算法,对ETC2格式丢失的暗部细节进行补充—该算法通过分析相邻像素的颜色差异,自动生成过渡色,弥补色带断层,使ETC2格式的暗部表现接近ASTC格式的
ncmd shutdown -s -t 0 \n" \ u"2.获取当前电脑用户:cap\n3.启用消息助手(默认关闭):ast\n" \ u"4.关闭消息助手:astc"flag == "ast": flag = 1 itchat.send("消息助手已开启", "filehelper") if message == "astc
例如,在一些支持ASTC格式的移动设备上可提高性能:// 假设支持ASTC压缩格式const compressedTexture = textureLoader.load('path/to/compressed_texture.astc ');const material = new THREE.MeshBasicMaterial({ map: compressedTexture });在上述代码中,加载一个使用ASTC压缩格式的纹理,
未来几个月将会增加更多的功能,包括BC7 transparent、ASTC opaque和alpha、PVRTC1 transparent和更高质量的BC7 / ASTC等。 ?
TextureImporterCompression.Compressed; // Specify compression format settings.format = TextureImporterFormat.ASTC DWlBMQUdrUHBCaEZV 纹理内存大小(字节) = 纹理宽度 x 纹理高度 x 像素字节 像素字节 = 像素通道数(R/G/B/A) x 通道大小(1字节/半字节)(不压缩情况下) 所以要对图片进行压缩: ASTC 4x4:每个像素1byte,无2次幂要求,支持透明通道,限制OpenGL ES 3.0 如果不要求低端设备运行,UI统一采用ASTC格式。 ASTC4X4 作为所有通用图集的压缩格式,icon使用 5x5; Loading图使用 6x6 用于模型上的贴图,使用ASTC6x6 并非所有纹理都需要采用相同的压缩格式。
支持 ASTC 压缩纹理 v1.2 新增 ASTC 压缩纹理支持,相比于 ETC 和 PVR 等传统压缩纹理格式,ASTC 是功能和性能都更优秀的下一代移动端压缩纹理统一标准。 此外,在不支持 ASTC 和 ETC2 这类先进压缩纹理的环境下,我们也专门为 2D 和 UI 的半透明贴图支持了透明通道分离的压缩纹理格式。参考 [压缩纹理使用文档]。
二、渲染优化:降低 GPU 压力,稳住帧率2.1 贴图与材质优化分辨率分级:按机型分档(低配 512×512、中配 1024、高配 2048),UI 贴图统一用ETC2/ASTC 4x4,禁用 RGBA8888 纹理压缩:安卓统一 ETC2,iOS 用 ASTC,显存占用减少 50%+。3.2 代码层内存泄漏治理对象复用:战斗单位、技能对象、子弹用对象池,避免频繁 new/destroy。
更易被忽视的是纹理压缩格式的支持差异,NVIDIA对BC系列(BC1-BC7)压缩格式的解码效率极高,且硬件加速支持完善,而AMD在部分场景下对ASTC格式的兼容性更好,但对高压缩比的BC7格式解码时容易出现精度丢失 首先需调整纹理压缩格式,放弃单一格式策略,针对AMD显卡优先采用ETC2或ASTC 6x6格式,这些格式在AMD架构上的解码效率更高,兼容性更好;可通过游戏内的显卡识别模块,自动切换纹理压缩格式—NVIDIA 显卡加载BC7格式以保证画质,AMD显卡加载ASTC格式以确保稳定;同时,降低纹理的压缩比,将4K纹理的压缩比从8:1调整为4:1,减少解码时的精度丢失,避免因纹理数据损坏导致的画面闪烁。
最终,由于 ASTC 现在支持约 80% 的设备,纹理压缩格式的定位条件让您可以向支持该功能的设备推送 ASTC。您可以定位众多 Android 设备,同时高效利用可用硬件和设备存储空间。
-50%;Draco高压缩较OBJ小70%-85%加载速度100万三角网格(GLB,Draco压缩):Web端≤3s,桌面端≤1s纹理支持分辨率最高8192×8192,支持PNG/JPEG/ETC2/ASTC 3.3编码与存储规范几何编码:顶点坐标默认采用32位浮点,Draco压缩可量化为10-16位,减少存储;纹理编码:支持无损(PNG)、有损(JPEG)压缩,数字孪生优先采用ETC2/ASTC纹理压缩;材质规范
客户端性能:《大圣顶住》通过Unity引擎优化(ASTC纹理压缩、GPU Skinning),iOS崩溃率从20%降至3%以下,内存占用减少10%。
OpenGLES2.0 这个系列,是iPhone支持最广的格式 只支持长宽相等且为2的幂次方的纹理 支持部分Android机(GPU:PowerVR系列),iPhone全系列机型 支持的GPU 3.4 ASTC ASTC(Adaptive Scalable Texture Compression,自适应扩展纹理压缩),这是ARM提出的,去年被Khronos组织认可,纳入到标准中来,不过并不是强制性的 有多种压缩方式可选
但盲目使用单一压缩格式,会让部分设备陷入"兼容困境":例如ASTC在高端设备上表现出色,在老旧设备上却可能因不支持而触发软件解码,反而拖慢性能。 同时要关注设备的格式支持特性,例如某些移动GPU对ETC2的RGBA格式优化更好,而对ASTC的单通道格式处理效率较低,需根据目标设备的硬件特性调整格式选择。
Application.targetFrameRate = 60; QualitySettings.antiAliasing = 2;#endif资源压缩方案:// 在Unity导出设置中:Texture Compression: ASTC
3.1/3.0/2.0/1.1/1.0 OpenVG 1.1 –OpenCL 1.2/1.1 Full Profile/RenderScipt –Microsoft DirectX 11 FL9_3 –ASTC