Mipmap生成第二次失败

时间:2014-03-24 16:52:35

标签: opengl

我有以下情况:我有一个带有纹理的材质,我从文件加载。在某些情况下,我只是加载图像,创建OpenGL纹理并生成mipmaps。然后只需渲染它。最小化时工作正常。在其他情况下。在初始mipmaps生成之后,我对该纹理进行了一些处理。因为我只在零级进行处理,所以在返回渲染器之前重新生成mipmap。问题是在第二代mipmap之后它们不存在纹理看起来好像有GL_NEAREST mag和min.I无法理解为什么它第二次不起作用。这是我生成mipmap的代码:

glBindTexture(GL_TEXTURE_2D,_id);   
glTexParameteri  ( _target, GL_TEXTURE_BASE_LEVEL, 0 );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);  
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);                       
glGenerateMipmap(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,0);

我的硬件是NVidia QUADRO K4000,OpenGL 4.2

还有一件事。在OpenGL调试输出中,我收到以下警告:

  

状态使用警告:纹理2是基础级别不一致。检查纹理大小.Severity:低   ,ID131204

我也用gDebugger进行了调试,它在第二代之后清楚地显示了mipmaps = 1的数量,而在第一代​​之后它是10.Btw,第二次它已经是不同的纹理对象,从初始纹理得到它的数据。

0 个答案:

没有答案