如何在OpenGL 3.3中实现3d纹理

时间:2012-07-25 21:40:17

标签: c++ opengl 3d textures

所以我刚刚意识到我正在为3d纹理工作的代码是针对OpenGL 1.1或者其他东西而在OpenGL 3.3中不再支持的。没有glTexture3D还有另一种方法吗?也许是通过我不了解的OpenGL 3.3中的库或其他函数?

编辑: 我不知道在哪里读到3D纹理是从新版本的OpenGL中取出的(今天一直在谷歌搜索),但请考虑一下:

我一直在关注教程/指南here。该程序编译顺利。现在阅读文章中的以下引用:

  

可能存在运行程序的环境不支持3D纹理,这会导致我们返回一个NULL地址,并且尝试使用NULL指针是一件坏事,所以一定要检查它并适当地做出响应(提供的示例以错误退出)。

该引用是指以下功能:

glTexImage3D = (PFNGLTEXIMAGE3DPROC) wglGetProcAddress("glTexImage3D");

在我的计算机(具有OpenGL 3.3)上运行我的程序时,同样的函数为我返回null。当我的朋友在他的计算机(具有OpenGL 1.2)上运行它时,它不会返回null。

1 个答案:

答案 0 :(得分:1)

自OpenGL-1.2以来,上传3D纹理的方式没有变化。其功能仍然命名为

  • glTexImage3D
  • glTexSubImage3D
  • glCopyTexSubImage3D