有没有办法确定 OpenGL 纹理或 QOpenGLTexture 的图形内存占用?

Posted

技术标签:

【中文标题】有没有办法确定 OpenGL 纹理或 QOpenGLTexture 的图形内存占用?【英文标题】:Is there a way to determine the graphics memory footprint of an OpenGL texture or of a QOpenGLTexture? 【发布时间】:2019-03-14 22:28:59 【问题描述】:

有没有办法确定 OpenGL 纹理的图形内存占用?

如果没有,有没有办法确定 QOpenGLTexture 对象的图形内存占用?

【问题讨论】:

"如果没有,有没有办法确定 QOpenGLTexture 对象的图形内存占用?" ...嗯?如果您无法判断 OpenGL 纹理从 OpenGL 外部占用了多少内存,那么围绕该对象的 Qt 包装器如何判断? 我不确定这是否是您所说的内存占用,但纹理通常未压缩存储在 VRAM 中,因此您可以根据纹理的分辨率和类型计算内存使用情况(请参阅 @987654321 @) 【参考方案1】:

您可以通过将纹理大小乘以其内部格式的每像素字节数来计算纹理所需的绝对最小内存。这必须为每个 mipmap 级别完成,并且您将所有这些都添加起来。但这不会告诉您纹理数据存储可能需要的任何特定于实现的填充。

所以,这充其量只是一个估计值。

【讨论】:

以上是关于有没有办法确定 OpenGL 纹理或 QOpenGLTexture 的图形内存占用?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL:使用 FTGL 和纹理

OpenGL在没有或有静态设备上下文的情况下加载纹理?

如何在OpenGL中反转纹理颜色

opengl 多个对象,纹理和非纹理,伪影

OpenGL - 纹理加载不正确

OpenGL ES纹理