- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用该函数从显卡获取我的纹理,但出于某种原因,如果 miplevel > 0
,它不会在某些卡上返回任何内容这是我用来获取图像的代码:
glGetTexImage(GL_TEXTURE_2D, miplevel, GL_RGB, GL_UNSIGNED_BYTE, data);
这是我用来检查使用哪种方法进行 mipmapping 的代码:
ext = (char*)glGetString(GL_EXTENSIONS);
if(strstr(ext, "SGIS_generate_mipmap") == NULL){
// use gluBuild2DMipmaps()
}else{
// use GL_GENERATE_MIPMAP
}
到目前为止它工作正常,所以它说下面的那些 ATI 卡支持 GL_GENERATE_MIPMAP。
以下是经过测试的卡片:
此时我正在使用 miplevel 0 并通过自己的代码生成 mipmap。有更好的解决方法吗?
此外,对于所有卡片,glGetError() 返回 0,因此不会发生错误。它只是不起作用。可能是驱动问题?
我仍在寻找比自己在 CPU 上调整大小更好的修复方法...
最佳答案
检查 glGetTexImage 报告的错误。它很可能会告诉您错误是什么。
编辑:听起来像是使用 ATI 编写糟糕的 OpenGL 驱动程序的乐趣。假设您的驱动程序是最新的,请使用 nVidia 卡,解决它或接受它不会工作。那几乎是您唯一的选择。可能值得为此麻烦 ATI,但他们很可能什么都不做,唉。
Edit2:在问题卡片上,您使用的是 GL_GENERATE_MIPMAP 吗?除非明确构建,否则您可能无法获取 mip 级别......?即尝试 gluBuild2DMipmaps() 的一切。
编辑 3:虽然如此。它“可能”是您出现问题的原因。 ATI 卡从本地拷贝抓取纹理对我来说听起来不太可能,但是如果您使用自动生成的 mip 贴图,那么它会完全在卡上完成并且永远不会将它们复制回来。明确尝试在本地构建 mip 贴图,看看是否能解决您的问题。它可能不会,但是您确实需要尝试这些事情,否则您将永远无法找出问题所在。唉,反复试验是解决此类问题的全部方法。这就是为什么有相当多的游戏拥有包含驱动程序名称、卡名称和驱动程序版本的大型数据库,以决定某个功能是否有效。
关于c++ - glGetTexImage() 在 ATI 卡上不能正常工作?当 mip 级别 > 0 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188074/
我需要从大纹理 (2048x2048) 中提取一个较小的矩形 (200x200),并将 RGBA 像素放入内存中。似乎有两种方法可以做到这一点: a) 使用 glGetTexImage 并传入接收整个
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前
我对 OpenGL 和 glGetTexImage() 有疑问。 我想获取我之前创建的纹理的像素代码如下: glGenTextures(1, &texture); glBindTexture(GL_T
我正在尝试通过 glGetTexImage 检索纯 alpha 纹理的像素信息。 问题是,glGetTexImage-Call 似乎比它应该读取的数据多,导致内存损坏和 delete[]-Call 崩
我在某些 ATI 卡(Radeon X1650、X1550 + 等)上遇到了难题。 消息是:“模块'atioglxx.dll'中地址6959DD46的访问冲突。读取地址00000000” 它发生在这一
在了解到我必须使用 FBO 之后从着色器读取 float 据,我试过这个但没有运气: glGenTextures( 1, &renderTex ); glBindTexture( GL_TEXTU
我无法将立方体贴图读回 CPU。当我将数据传递给 glTexImage2D 中的立方体贴图时调用,可以毫无问题地读回此数据。但是当我渲染到立方体贴图时,只有立方体贴图的正 x 侧包含敏感数据。其他一切
我写了一些代码,太长无法粘贴到这里,它通过使用无绑定(bind) imageLoad 和 imageStore 的片段着色器渲染到 3D 1 组件浮点纹理。 该代码绝对有效。 然后我需要解决一些 GL
我使用该函数从显卡获取我的纹理,但出于某种原因,如果 miplevel > 0,它不会在某些卡上返回任何内容 这是我用来获取图像的代码: glGetTexImage(GL_TEXTURE_2D, mi
我是一名优秀的程序员,十分优秀!