OpenGL-SOIL无法加载JPG或PNG图像

利亚库尔

我正在尝试在OpenGL中创建上下文加载器,但无法让SOIL加载图像。

这是代码:

Texture2D TextureLoader::loadSprite(const char* path)
{
    int width, height;
    GLuint texture = SOIL_load_OGL_texture(path, SOIL_LOAD_RGBA, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);

    if (texture == 0)
    {
        Texture2D failedTexture;
        return failedTexture;
    }

    glBindTexture(GL_TEXTURE_2D, texture);

    glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width);
    glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glBindTexture(GL_TEXTURE_2D, 0);

    Texture2D texture2d(texture, width, height);
    return texture2d;
}

它总是在纹理== 0检查时失败。映像文件与构建项目时生成的可执行文件位于同一目录中。我已经尝试了PNG和JPG,但都无法使用。

迈克尔·肯泽尔

尽管您似乎有所假设,但SOIL_load_OGL_texture几乎可以肯定不会检查可执行文件的目录。相对路径相对于进程当前工作目录根据您的描述,我假设您正在使用Visual Studio IDE。默认情况下,Visual Studio在运行程序时会将项目文件的目录用作工作目录。您可以在项目属性>调试>工作目录中更改该设置。我建议将其更改为计划在其中运行完成的应用程序的任何目录。

如果确实要指定相对于可执行文件路径的图片路径,那么建议使用绝对路径。不幸的是,没有办法可靠地找到标准C ++中可执行文件的路径。在Windows上,您可以使用GetModuleFileName()查看此问题以获取有关此主题的更多信息。拥有可执行文件的绝对路径后,将路径提取到目录并附加文件名。如果您可以使用C ++ 17,则std::filesystem可以帮助您处理路径…

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安装SOIL(简单OpenGL图像加载器)?

来自分类Dev

使用SOIL加载jpeg图像时OpenGL处理缓慢

来自分类Dev

opengl 3.1纹理无法加载

来自分类Dev

opengl 3.1纹理无法加载

来自分类Dev

OpenGL纹理无法正确加载

来自分类Dev

OpenGL加载并渲染png到屏幕

来自分类Dev

图像加载存储等效于OpenGL 3

来自分类Dev

使用 OpenGL 加载纹理

来自分类Dev

OpenGL(python)-显示图像?

来自分类Dev

OpenGL Shader无法编译

来自分类Dev

无法编译OpenGL代码

来自分类Dev

纹理图像无法正确显示-OpenGL

来自分类Dev

使用SOIL使用OpenGL映射纹理

来自分类Dev

使用SOIL进行OpenGL纹理化

来自分类Dev

使用SOIL使用OpenGL映射纹理

来自分类Dev

JavaScript加载jpg或png图像源

来自分类Dev

OpenGL 3.3无法渲染任何纹理(黑色纹理,C ++,GLFW / SOIL)

来自分类Dev

OpenGL图像加载/存储24位RGB图像

来自分类Dev

OpenGL函数加载如何工作?

来自分类Dev

如何让 GHCi 加载 Opengl 包?

来自分类Dev

OpenGL图形的QT小图像

来自分类Dev

OpenGL图像中的格式转换

来自分类Dev

OpenGL中的KTX与DDS图像

来自分类Dev

在OpenGL中渲染裁剪的图像

来自分类Dev

OpenGL图形的QT小图像

来自分类Dev

OpenGL-具有Alpha通道的PNG无法正常工作

来自分类Dev

使用通用Lisp OpenGL保存和加载图像

来自分类Dev

OpenGL从机顶盒图像加载RGB纹理

来自分类Dev

使用通用Lisp OpenGL保存和加载图像