ПОЧВА не отображает изображения

У меня проблема с SOIL в C++. Проблема в том, что когда я пытаюсь загрузить изображение с указанного пути, оно показывает только белый цвет.

Сначала я загружаю его в память следующим образом:

_t = SOIL_load_OGL_texture(_texture.c_str(),
                        SOIL_LOAD_AUTO,
                        SOIL_CREATE_NEW_ID,
                        SOIL_FLAG_INVERT_Y);

После этого я использую это так:

glBindTexture(GL_TEXTURE_2D, _t);

glPushMatrix();

glBegin(GL_QUADS);
    glTexCoord2f (0, 0); glVertex3f(-1 + (_p.X)/(App::WinSize().X / 2), 1 - (_p.Y)/(App::WinSize().Y / 2), 0.0f);
    glTexCoord2f (1, 0); glVertex3f(-1 + (_p.X + _s.X)/(App::WinSize().X / 2), 1 - (_p.Y)/(App::WinSize().Y / 2), 0.0f);
    glTexCoord2f (1, 1); glVertex3f(-1 + (_p.X + _s.X)/(App::WinSize().X / 2), 1 - (_p.Y + _s.Y)/(App::WinSize().Y / 2), 0.0f);
    glTexCoord2f (0, 1); glVertex3f(-1 + (_p.X)/(App::WinSize().X / 2), 1 - (_p.Y + _s.Y)/(App::WinSize().Y / 2), 0.0f);
glEnd();

glPopMatrix();

Я использую Visual Studio 2012. Папку с изображениями я поместил в папку, где заканчивается .exe файл при его отладке.

Я не уверен, что это актуально, но вот настройка OpenGL, которую запускает программа во время ее выполнения:

glutInit(&argc, &argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA | GLUT_MULTISAMPLE | GLUT_BORDERLESS);
glEnable(GLUT_MULTISAMPLE);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glClearColor(0.0, 0.0, 0.0, 1.0);
glLoadIdentity();
glOrtho(0.0, size.X, 0.0, size.Y, -1.0, 1.0);
glutInitWindowPosition(position.X, position.Y);
glutInitWindowSize(size.X, size.Y);

person Steffen    schedule 14.08.2013    source источник


Ответы (1)


Проверяете ли вы ошибки в процессе загрузки?

Добавлять

/* check for an error during the load process */
if( 0 == _t )
{
    printf( "SOIL loading error: '%s'\n", SOIL_last_result() );
}

сразу после того, как вы загрузите текстуру, используя SOIL_load_OGL_texture, чтобы проверить, загрузилась ли ваша текстура без ошибок.

person user2681063    schedule 14.08.2013
comment
@Stef: Вы используете относительный путь к изображениям? - person user2681063; 14.08.2013
comment
Я должен использовать правильный путь. .exe находится в папке отладки. С ним я помещаю папку с именем TestImages. Затем я использую путь: TestImages/CrossNoMouse.png - person Steffen; 14.08.2013