OpenGL Mipmapping(Android(安卓)NDK)
16lz
2021-01-26
http://en.wikipedia.org/wiki/Mipmap
这个是我这次在做安卓时遇到的问题
因为GPU的限制,纹理创建时的宽或高需为2的次方
就是1,2,4,8,16,32,64,128.......
图的宽高为31*52,直接作为纹理的宽高
在某些GPU是可以支援非2次方的宽高, 所以没有问题
但还是有很多GPU是不支援的
若是GPU不支援非2次方宽高,则glTexImage2D会产生GL_INVALID_VALUE(1281)的错误
所以就直接将所有的纹理创建为2次方的宽高
就解决了问题
实际实践手法是这样
1.读图
2.读取图的宽高
3.找出适合的纹理宽高(如5*9=>8*16, 31*55=>32*64)
4.用纹理宽高创建缓存
最后再用glTexImage2D创建纹理
这样就在绝大部分Android机子上能运行了
这个是我这次在做安卓时遇到的问题
因为GPU的限制,纹理创建时的宽或高需为2的次方
就是1,2,4,8,16,32,64,128.......
图的宽高为31*52,直接作为纹理的宽高
在某些GPU是可以支援非2次方的宽高, 所以没有问题
但还是有很多GPU是不支援的
若是GPU不支援非2次方宽高,则glTexImage2D会产生GL_INVALID_VALUE(1281)的错误
所以就直接将所有的纹理创建为2次方的宽高
就解决了问题
实际实践手法是这样
1.读图
2.读取图的宽高
3.找出适合的纹理宽高(如5*9=>8*16, 31*55=>32*64)
4.用纹理宽高创建缓存
最后再用glTexImage2D创建纹理
这样就在绝大部分Android机子上能运行了
更多相关文章
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工
- [安卓教学] 创建你的第一个安卓应用 - 课程介绍
- Android:创建可穿戴应用 - 安装和依赖管理
- android ContentProvider 使用实例
- android new socket异常
- 如何创建一个baseactivity
- Android:Creating Your Own Spelling Checker Service(创建拼写检
- 如何创建一个安卓项目
- 监听Home键和返回键