Я запускаю проект Glut на CodeBlocks, у меня есть класс «imageloader», который я использую для текстурирования сферы с растровым изображением. Он работает просто Fine, когда я указываю местоположение изображения, как это loadTexture(loadBMP("C:\\Users\\Ndumiso\\Desktop\\Project1\\images\\earth.bmp"));
Я создал папку под названием «изображения» и скопировал изображение в эту папку. Here's how it looks when you run itC++ OpenGL Texture, не найти изображение
учти, у меня есть один и тот же образ внутри же место, как .exe исполняемый файл (например, бен \ Debug \ Earth.bmp)
Но я терплю неудачу, когда я это сделать, как этот loadTexture(loadBMP("earth.bmp"));
Он не может найти изображение.
Я не могу использовать метод выше, длинный абсолютный путь, каждый раз, когда проект переходит на другой компьютер, путь должен быть изменен каждый раз, прежде чем запускать проект, иначе это даст вам ошибку. Поэтому я не могу представить свой проект так.
вот только фрагмент кода в моей main.cpp (дайте мне знать, если вам нужно больше кода):
//Makes the image into a texture, and returns the id of the texture
GLuint loadTexture(Image* image) {
GLuint textureId;
glGenTextures(1, &textureId); //Make room for our texture
glBindTexture(GL_TEXTURE_2D, textureId); //Tell OpenGL which texture to edit
//Map the image to the texture
glTexImage2D(GL_TEXTURE_2D, //Always GL_TEXTURE_2D
0, //0 for now
GL_RGB, //Format OpenGL uses for image
image->width, image->height, //Width and height
0, //The border of the image
GL_RGB, //GL_RGB, because pixels are stored in RGB format
GL_UNSIGNED_BYTE, //GL_UNSIGNED_BYTE, because pixels are stored
//as unsigned numbers
image->pixels); //The actual pixel data
return textureId; //Returns the id of the texture
}
GLuint _textureId2;
void initRendering() {
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
quad = gluNewQuadric();
_textureId2 = loadTexture(loadBMP("C:\\Users\\Ndumiso\\Desktop\\TestClasses\\images\\earth.bmp"));
}
При запуске программы в среде IDE, особенно с подсоединенным отладчик, Текущий рабочий Dir может быть изменен IDE. Обратитесь к документации IDE, чтобы узнать, как изменить рабочий каталог. Если вы используете Visual Studio, это можно сделать в свойствах проекта в настройках отладчика. По умолчанию это $ (ProjectDir) (папка с файлом .vcxproj). – Drop