OpenGL加载原始图片失败

OpenGL fail to load raw picture

本文关键字:失败 原始 加载 OpenGL      更新时间:2023-10-16

我正在尝试执行使用原始图片作为纹理的代码。问题是图片无法加载。我需要把图片放在哪里,以便程序可以找到它?它目前在我正在工作的项目文件夹。我工作在Codeblocks 12.11 (Win7, MinGW)

bool setup_textures()
{
    RGBIMG img;
    // Create The Textures' Id List
    glGenTextures(TEXTURES_NUM, g_texid);
    // Load The Image From A Disk File
    if (!load_rgb_image("glass_128x128.raw", 128, 128, &img)) return false;
    // Create Nearest Filtered Texture
    glBindTexture(GL_TEXTURE_2D, g_texid[0]);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, 3, img.w, img.h, 0, GL_RGB, GL_UNSIGNED_BYTE, img.data);
    // Create Linear Filtered Texture
    glBindTexture(GL_TEXTURE_2D, g_texid[1]);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D, 0, 3, img.w, img.h, 0, GL_RGB, GL_UNSIGNED_BYTE, img.data);
    // Create MipMapped Texture
    glBindTexture(GL_TEXTURE_2D, g_texid[2]);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
    gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img.w, img.h, GL_RGB, GL_UNSIGNED_BYTE, img.data);
    // Finished With Our Image, Free The Allocated Data
    delete img.data;
    return true;
}

问题是与glass_128x128加载的行。Raw失败并返回false;

进入:

Project -> Properties -> Build targets -> [name of target] -> Execution working dir

,并确保将其设置为与glass_128x128.raw相同的目录。它很可能运行在您的调试构建放入的任何目录中,该目录与您的映像所在的目录不同。