android - OpenGL 纹理的分辨率是否会自动缩小?

标签 android opengl-es bitmap textures

我的意思是,如果我想为纹理使用位图,我是否应该确保该位图尽可能小以节省纹理的内存? (当然,我在创建纹理后丢弃了位图本身)。或者我可以只使用 512x512 bmp 和 OpenGL 自动根据较小的尺寸制作纹理(因为它只是在突破游戏中成为一个球)?

因为我可以想象,如果要在多种分辨率下使用位图,从 ldpi 手机到平板电脑(Android...),确定位图的完美大小需要花费大量时间。或者我必须为同一图像创建不同大小的图像,例如 512,256,128 。 . . ?

最佳答案

OpenGL 纹理与您创建它一样大(例如,使用 glTexImage2D)。如果你想从位图创建纹理,你要么使纹理与位图一样大,要么自己以某种方式缩小位图数据。 OpenGL 应该如何自动知道您的应用程序的最佳纹理大小,更不用说为您缩小它,这当然是您的工作。

如果您真的在谈论自动 mipmap 生成,那么这是可能的,您应该看看 Salvatore 的回答。但是,如果您真的说 OpenGL 会为您的纹理选择“最佳”尺寸并使用完全不同尺寸的图像初始化其数据,那绝对不可能。

关于android - OpenGL 纹理的分辨率是否会自动缩小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931604/

相关文章:

android - android动画中的平滑文本变化

android - 如何使用okHttp读取从resteasy发送到android的多部分响应?

c++ - 获取 QOpenGLFramebufferObject 抗锯齿纹理的替代方法,而不是多重采样 + blitting

android - ImageView:如果 ImageView 不可见(在 ScrollView 内),则自动回收位图

c++ - 使用 C++ 在 Linux 中绘图并创建位图

Android - R.Resource ID 在运行时是否发生变化

android - fragment 中未定义的 getSupportFragmentManager()

ios - 使用 GL_FLOAT 和 GL_LUMINANCE 进行线性插值?

ios - 在 Objective C 中动态设置 C 结构数组的大小?

css - 浏览器如何缩放位图字体?