【问题标题】:Loading images in openGL在 openGL 中加载图像
【发布时间】:2013-01-05 15:38:40
【问题描述】:

我目前正在学习如何在 openGL 中加载和使用图像。 我尝试了几个教程的许多示例。 很多教程都使用了一个函数:LoadBMP 什么的。 我使用的头文件没有声明这个函数。

对于加载图像的函数,您是否需要一个 appart 标头? 我查看了 openGL 维基百科,他们说存在 3 个这样的标头。

还是我错了? 您需要 openGL 3.0 或更高版本来加载图像吗?

【问题讨论】:

  • LoadBMP 不是 OpenGL 的一部分。我相信 glaux.h 可能有一些功能可以帮助您加载图像(至少对于位图)。这些函数将返回一个 AUX_RGBImageRec,其中包含您使用 glTexImage 加载的 RGBA 数据。
  • 所以我首先要下载 glaux.h 头文件?只是一个头文件没有.dll文件?
  • DevIL 镜像库是常用镜像库的一个例子。

标签: c++ image opengl textures glut


【解决方案1】:

OpenGL 没有任何加载图像的功能。您可以自己编写 LoadBMP 函数,也可以使用第三方库。有很多可用的,您可以在this 对相关问题的回答中找到其中的一些。

然后,您可以将原始图像数据传递给 OpenGL 纹理创建函数,例如 glTexImage2D,以创建纹理。

【讨论】:

  • 如果你想写你的,说:loadJPEG 加载JPEG图像,你必须解码JPEG格式吗?
【解决方案2】:

OpenGL 只是一个用于访问 GPU 的 API。没有加载任何媒体文件(图像、3d 模型等)的功能。甚至不支持在给定的操作系统中创建窗口(操作系统 API 需要与 OpenGL 粘合)。

您需要从图像中加载字节(使用另一个库),然后您可以使用 OpenGL 将其上传到 GPU。

出于简单的目的,我使用了一个名为SOIL 的库,我认为它很棒。 OpenGL wiki 上有一个 list of related toolkits and APIs 可能有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多