好的,所以我尝试使用SOIL来加载一个纹理"纹理"夹。 textures文件夹与代码位于同一目录中。我已经进入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;
}
我不确定我是否在SOIL方面做错了什么,但我的预感是该文件根本就没有被读取。正如我所说,我在XCode中更改了工作目录,但这并没有改变任何内容。
答案 0 :(得分:0)
好的,明白了。问题是PNG文件是16位而不是8位。此外,SOIL_load_OGL_texture
功能需要在glfwCreateWindow()
和glfwMakeContextCurrent()
之后调用。
以下是帮助我的答案:SOIL: 'Unable to open file' in C++ and OpenGL with Xcode