纹理贴图错误显示为黑色

"踩坑记录"

Posted by A-SHIN on December 4, 2017

“Yeah It’s on. ”

前言

前篇文章介绍了libpng库。(关于OpenGL如何加载显示PNG,可参考此篇) 我在使用时却错误的显示为黑色

正文

这个问题困扰了我好久,反反复复看了好几遍自己的代码,用gDEBugger调试了N次,最后终于找到了原因。 问题出在设置纹理过滤模式的时候使用了 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR) 然而加载PNG的时候没生成MIPMAP

解决方法有二种:

  • 过滤模式模式换成GL_LINEAR:
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
  • 调用glGenerateMipmap(GL_TEXTURE_2D)生成MIPMAP 最后纹理正常显示出来了 :)

后记