CompressedTextureInfo textureInfo = etc1::ParseETC1Texture(input_data);if (!textureInfo.is_valid) { LogE("LoadTexture: etc1 textureInfo parsed invalid.");}GLuint texture_id = 0;glGenTextures(1, &texture_id);glBindTexture(GL_TEXTURE_2D, texture_id);glCompressedTexImage2D(GL_TEXTURE_2D, 0, textureInfo.internal_format, textureInfo.width, textureInfo.height, 0, textureInfo.size, textureInfo.data);四、总结压缩纹理的加载,主要是搞清楚如何解析压缩纹理数据 。一般而言,压缩纹理加载到内存后,都有一个 Header,通过 Header 可以解析出其宽高等信息,计算出纹理图像大小 。最后调用glCompressedTexImage2D
方法即可渲染 。可见压缩纹理完全没有图像的解码工作,大大提升加载速度 。
最后 , 介绍几款纹理压缩工具:
- etc2comp:支持生成etc2纹理
- etc1tool:支持生成etc1纹理,在Android SDK目录下,Android/sdk/platform-tools/etc1tool
- ISPCTextureCompressor:支持etc1、astc等
- astc-encoder:ASTC官方编码器
推荐阅读
- 手把手教你玩转 Gitea|使用 Docker 安装 Gitea
- 26 《吐血整理》高级系列教程-吃透Fiddler抓包教程-Fiddler如何抓取Android7.0以上的Https包-上篇
- 苹果手机怎么使用超级截屏(苹果手机超级截屏在哪里)
- DirectX 使用 Vortice 从零开始控制台创建 Direct2D1 窗口修改颜色
- 为什么阿里Java开发手册不推荐使用Timestamp
- VMware安装Win11+WSA子系统和使用教程
- 支付宝取消自动续费怎么取消? 支付宝取消自动续费怎么取消
- 宝马3系320Li的使用日记 宝马3系320li价格
- 晚上避光使用了果酸面霜,为什么脸色还是变黑了
- 手镯变黑怎么恢复 银手镯变黑怎么清洗变亮