1

当您在 Visual Studio 2008 中创建一个新的 opengl 项目时,您会得到三个文件夹:一个用于头文件,一个用于源文件,一个用于资源文件。

将jpg图片放在资源文件中然后链接到它以将其作为纹理加载是否可行?我想将 jpg 图片作为纹理加载,但我想通过资源文件来做到这一点,以便调试 exe 包含这些文件。

如何链接到我放入资源文件的图片?

4

2 回答 2

1

在项目中resource view,右键单击yourproject.rc。单击Import...按钮。选择要插入的 JPEG 文件。当它要求您命名类型时,请将其命名为“JPEG”。从那里,JPEG 将被编译到您的可执行文件中。

要加载它,您使用FindResource获取资源的句柄,然后LoadResource将其加载到内存中,然后LockResource获取其地址。从那里您可以使用普通的 JPEG 解码器将其转换为可用作纹理的形式。或者,您可以下载DevIL来为您处理几乎所有这些。

于 2010-11-17T03:37:13.250 回答
0

我相信如果您将纹理链接为资源,它将存储在您的.exe文件中。这不是一个常用的解决方案 - 通常您希望将资源存储在您旁边的单独文件夹(或存档/VFS 文件)中.exe- 然后在您运行程序后将从该文件加载纹理。这也意味着您在替换或修改纹理时不必重新编译大的 .exe 文件。所以我对你的第一个问题的回答是——不,这不是真的可行,除非你需要将整个应用程序和资源放在一个.exe.

如果您喜欢后一种文件选项(我推荐),那么从文件中使用纹理的最简单方法是使用像SOIL这样的加载器库,它将 OpenGL 纹理从任何格式加载到单行代码。

于 2010-11-17T11:02:08.533 回答