2013-01-05 116 views
0

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

你需要一个appart头文件来加载图片吗? 我看着openGL维基百科,他们说有3个这样的头文件。

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

+1

LoadBMP不是OpenGL本身的一部分。我相信glaux.h可能有一些功能可以帮助您加载图像(至少对于位图)。这些函数将返回一个AUX_RGBImageRec,它将使用glTexImage加载的RGBA数据。 – Aeluned

+0

所以我首先必须下载glaux.h头文件?只是一个头文件没有.dll文件? – abcdef

+0

DevIL图像库是常用图像库的一个例子。 – Grimmy

回答

8

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

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

+0

如果你想写你的,请说:loadJPEG加载JPEG图像,你是否必须解码JPEG格式? – abcdef

+1

@abcdef是的,你必须自己解码jpeg格式 –

3

OpenGL只是一个访问GPU的API。没有功能可以加载任何媒体文件(图像,3D模型等)。甚至没有支持在给定的操作系统中创建窗口(OS API需要与OpenGL绑定)。

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

为了简单起见,我使用了一个名为SOIL的库,我觉得它很棒。 OpenGL wiki上有一个list of related toolkits and APIs,这可能很有用。