带你读《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

相关文章
|
2月前
|
KVM 虚拟化
KVM的热添加技术之内存
文章介绍了KVM虚拟化技术中如何通过命令行调整虚拟机内存配置,包括调小和调大内存的步骤,以及一些相关的注意事项。
68 4
KVM的热添加技术之内存
|
2月前
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
|
4月前
|
存储 缓存 Java
Android性能优化:内存管理与LeakCanary技术详解
【7月更文挑战第21天】内存管理是Android性能优化的关键部分,而LeakCanary则是进行内存泄漏检测和修复的强大工具。
|
4月前
|
机器学习/深度学习 存储 缓存
操作系统中的内存管理技术
在数字世界的复杂架构中,操作系统扮演着枢纽的角色,其中内存管理作为其核心组件之一,保障了计算资源的高效利用与稳定运行。本文将深入探讨操作系统中内存管理的关键技术,包括虚拟内存、分页和分段机制,以及现代操作系统如何通过这些技术优化性能和提高系统稳定性。通过具体实例和数据分析,我们将揭示这些技术如何在实际应用中发挥作用,并讨论它们面临的挑战及未来发展方向。 【7月更文挑战第16天】
78 6
|
4月前
|
存储 缓存 安全
操作系统中的内存管理:技术与挑战
在数字化时代,操作系统的内存管理成为计算机科学领域中一个至关重要的技术环节。本文将深入探讨现代操作系统中内存管理的基本原理、关键技术及其面临的挑战。通过对分页、分段、虚拟存储和缓存策略等核心概念的介绍,我们旨在揭示内存管理如何优化系统性能,保障数据安全,并提高资源利用率。同时,文章还将讨论内存泄漏、碎片化以及安全性问题等当前内存管理技术所面临的主要挑战。
61 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
297 0
|
5天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
13 1
|
9天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
14天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
19天前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
35 4