好的,所以我试图使用SOIL加载一个.png文件,该文件位于一个“纹理”文件夹中。纹理文件夹与代码位于同一个目录中。我已经进入了XCode项目的方案设置,并将工作目录更改为文件夹所在的目录。然而,当我做这个简单的测试时,它总是指示GLUint纹理为NULL。
GLuint texture = SOIL_load_OGL_texture
(
"textures/image.png",
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
if (texture == 0){
std::cout << "Texture not found!\n";
return 0;
}我不确定我是否在土壤方面做错了什么,但我的预感是文件根本没有被读取。正如我所说的,我更改了XCode中的工作目录,但这并没有改变任何事情。
发布于 2015-03-25 20:30:16
好吧,想清楚了。问题是PNG文件是16位而不是8位。另外,SOIL_load_OGL_texture函数需要在glfwCreateWindow()和glfwMakeContextCurrent()之后调用。
以下是帮助我的答案:SOIL: 'Unable to open file' in C++ and OpenGL with Xcode
https://stackoverflow.com/questions/29264236
复制相似问题