带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(4)

简介: 带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(4)

带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(3)https://developer.aliyun.com/article/1340978?groupCode=taobaotech

使用压缩纹理(WebGL)

在 WebGI 上使用纹理压缩主要有如下步骤

1.下载纹理压缩素材;

2.解析ktx文件;

3.判断设备支持的纹理压缩格式;

4.通过getExtension获取纹理压缩扩展:

5.上传纹理压缩数据到GPU;

其中上传纹理主要指compressedTexlmage2D、compressedTexlmage3D两个API,其入参均可以从KTX文件中拿

 

var ext = gl.getExtension('WEBGL_compressed_texture_etc');
var texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGBA8_ETC2_EAC, 512, 512,
0, textureData);


兼容性情况

 

  1. Android平台 Android平台由于机型、厂商众 纹理压缩的支持况较为复 EC1支持的最为广但是由千ETC1不支持Alpha 导致其使用场景有 ETC2罢盖度也挺高但是需要启OpenGL    es   3.x; google play Andra高端机型ASTC的支持度覆盖度77以上(具体GPU型号 高通骁龙415及以上(2015) , ARM Mali T624(2012)及以 NVIDIA egra k1(2014)及以上)。
  2. iOS平台 iOS平台PVRC格式支持最广泛苹果也推荐使用此格式2017芯片发布后开始支持(ETC/ETC2) 格式2014 AB芯片及以上开始支持ASTC格式

image.png

 

 

综上Andro口平台选用ETC + ASTC, iOS平台高版本使用ASTC 、低版本PVRTC兜底即可覆盖所有设备。开发者运行时可以 诵过API glgetString(GL_E XTENS IONS) 获取当前设备支持的 压缩纹理格式 WebGL 通过getSupportedExtensions()API获得相同信患。

 

带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(5)https://developer.aliyun.com/article/1340976?groupCode=taobaotech

目录
打赏
0
0
0
0
52
分享
相关文章
|
7月前
|
KVM的热添加技术之内存
文章介绍了KVM虚拟化技术中如何通过命令行调整虚拟机内存配置,包括调小和调大内存的步骤,以及一些相关的注意事项。
153 4
KVM的热添加技术之内存
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
177 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
7月前
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
Android性能优化:内存管理与LeakCanary技术详解
【7月更文挑战第21天】内存管理是Android性能优化的关键部分,而LeakCanary则是进行内存泄漏检测和修复的强大工具。
操作系统中的内存管理:技术与挑战
在数字化时代,操作系统的内存管理成为计算机科学领域中一个至关重要的技术环节。本文将深入探讨现代操作系统中内存管理的基本原理、关键技术及其面临的挑战。通过对分页、分段、虚拟存储和缓存策略等核心概念的介绍,我们旨在揭示内存管理如何优化系统性能,保障数据安全,并提高资源利用率。同时,文章还将讨论内存泄漏、碎片化以及安全性问题等当前内存管理技术所面临的主要挑战。
133 0
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
131 29
JVM简介—1.Java内存区域
JVM实战—2.JVM内存设置与对象分配流转
本文详细介绍了JVM内存管理的相关知识,包括:JVM内存划分原理、对象分配与流转、线上系统JVM内存设置、JVM参数优化、问题汇总。
JVM实战—2.JVM内存设置与对象分配流转
JVM简介—2.垃圾回收器和内存分配策略
本文介绍了Java垃圾回收机制的多个方面,包括垃圾回收概述、对象存活判断、引用类型介绍、垃圾收集算法、垃圾收集器设计、具体垃圾回收器详情、Stop The World现象、内存分配与回收策略、新生代配置演示、内存泄漏和溢出问题以及JDK提供的相关工具。
JVM简介—2.垃圾回收器和内存分配策略
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
892 1
|
2月前
|
JVM: 内存、类与垃圾
分代收集算法将内存分为新生代和老年代,分别使用不同的垃圾回收算法。新生代对象使用复制算法,老年代对象使用标记-清除或标记-整理算法。
29 6
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等