0

所以我刚刚意识到我正在为 3d 纹理编写的代码是用于 OpenGL 1.1 或其他东西的,并且在 OpenGL 3.3 中不再支持。没有glTexture3D还有另一种方法吗?也许通过我不知道的 OpenGL 3.3 中的库或其他函数?

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

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

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

该引用是指以下功能:

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

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

4

1 回答 1

1

自 OpenGL-1.2 以来,上传 3D 纹理的方式没有改变。用于此的函数仍被命名

  • glTexImage3D
  • glTexSubImage3D
  • glCopyTexSubImage3D
于 2012-07-25T21:48:38.713 回答