| PMG http://forum.pmg.org.ru/ |
|
| Ошибка: "Failed to open DIB file ____.bmp" http://forum.pmg.org.ru/viewtopic.php?f=1&t=9397 |
Страница 1 из 2 |
| Автор: | Oleg34 [ 21 май 2012 22:22 ] |
| Заголовок сообщения: | Ошибка: "Failed to open DIB file ____.bmp" |
Здравствуйте! Пытался наложить структуру, но какие бы уроки, какие бы исходники не пробовал, получается одна и та же ошибка. Юзал гугль, по его рекомендациям и полный путь прописывал, и слэш в другую сторону менял, и по разным папкам кидал изображение, и с бубном танцевал. Ничего не получается. Читал и http://www.rsdn.ru/article/opengl/ogltut2.xml#ENIAG и много разной литературы. Но все равно выскакивает окно с предупреждением "Failed to open DIB file ____.bmp" Файл картинки создал в Paint, размер 64Х64. Сохранен как 16-цветный рисунок .bmp Вот сам код: Код: #include <stdlib.h> #include <GL\glut.h> #include <GL\glaux.h> #pragma comment (lib,"glaux.lib") unsigned int textures[1]; void LoadTextures() { AUX_RGBImageRec *texture1; texture1=auxDIBImageLoad(L"D:\\Image2.bmp"); glGenTextures(1, &textures[0]); glBindTexture(GL_TEXTURE_2D, textures[0]); 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, texture1->sizeX, texture1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture1->data ); } void Draw() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_QUADS); glTexCoord2f(0.0,0.0);glVertex2f(-1.0,-1.0); glTexCoord2f(0.0,1.0);glVertex2f(-1.0,1.0); glTexCoord2f(1.0,1.0);glVertex2f(1.0,1.0); glTexCoord2f(1.0,0.0);glVertex2f(1.0,-1.0); glEnd(); glFlush(); } void Initialize() { LoadTextures(); glEnable(GL_TEXTURE_2D); glClearColor(0.0,0.0,0.0,1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-4.0, 4.0, -4.0, 4.0, -10.0, 10.0); glMatrixMode(GL_MODELVIEW); } int main (int argc, char** argv) { //.........инициализация................................................... glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowSize(400, 400); glutInitWindowPosition(100, 200); glutCreateWindow("Lesson_09"); //.......регистрация....................................................... glutDisplayFunc(Draw); //рисование Initialize(); glutMainLoop(); return 0; } Вообще измучился! Элементарная вроде программка, а столько геморроя. Где то читал, что игра Rage на OpenGL написана. Реально создатели герои! |
|
| Автор: | sinus [ 21 май 2012 22:32 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Возможно в файле какието данные отсутствуют, как вариант открыть в графическом редакторе и сохранить, за одно и имя снова написать, в друг буква из кирилици затесалась... |
|
| Автор: | Oleg34 [ 21 май 2012 23:03 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
sinus писал(а): Возможно в файле какието данные отсутствуют Вы имеете в виду в графическом файле? Да нет, я пробовал и свои делать, и сохранял их под цифрами, и из исходников брал.
|
|
| Автор: | sinus [ 22 май 2012 08:43 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Файл самой программы сохранить в кодировке UTF-8. Зделать рисунок 24 бита на пиксель. Для загрузки графических файлов не использовать glaux. |
|
| Автор: | Oleg34 [ 22 май 2012 10:03 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Пересохранил с кодировкой UTF-8, результат тот же. Я забыл написать, что при выполнении компиляции, когда выскакивает окно с предупреждением об ошибке, компилятор останавливается на строке Код: glTexImage2D(GL_TEXTURE_2D, 0, 3, texture1->sizeX, texture1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture1->data ); И подскажите кому не трудно, как загружать файл не используя glaux. И если можно, то для примера мой пример переделайте без glaux, что бы наглядно можно было посмотреть в чем разница. Заранее Всем спасибо! |
|
| Автор: | sinus [ 22 май 2012 12:59 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Oleg34 писал(а): Я забыл написать, что при выполнении компиляции, когда выскакивает окно с предупреждением об ошибке Что за предупреждение, что написано? Может стоит поменять местами LoadTextures(); и glEnable(GL_TEXTURE_2D);. А то получается, что включение 2d текстуры происходит после создания текстуры, хотя может она уже включена по умолчанию(не помню). Oleg34 писал(а): И подскажите кому не трудно, как загружать файл не используя glaux. Задействовать другую библиотеку (например SDL)
|
|
| Автор: | MagicWolf [ 22 май 2012 13:50 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Можно задействовать IPicture: http://pmg.org.ru/nehe/nehe41.htm Или самому разбирать tga: http://pmg.org.ru/nehe/nehe24.htm |
|
| Автор: | Oleg34 [ 22 май 2012 15:16 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
MagicWolf писал(а): Можно задействовать IPicture: http://pmg.org.ru/nehe/nehe41.htm Или самому разбирать tga: http://pmg.org.ru/nehe/nehe24.htm К сожалению, для меня это еще слишком сложно. Я просто не понимаю, делаю все, как в рекомендациях, но ничего не получается. Вообще, по коду, который я составил, кто нибудь пробовал запустить? |
|
| Автор: | sinus [ 22 май 2012 15:38 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Oleg34 писал(а): Вообще, по коду, который я составил, кто нибудь пробовал запустить? Я бы попробовл, но я горожанин города Дебиан из страны Линукс (там нет glaux)
|
|
| Автор: | MagicWolf [ 23 май 2012 11:22 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Oleg34 писал(а): К сожалению, для меня это еще слишком сложно. Я просто не понимаю, делаю все, как в рекомендациях, но ничего не получается. Вообще, по коду, который я составил, кто нибудь пробовал запустить? Выложи тогда весь проект, а не просто исходник. |
|
| Автор: | Oleg34 [ 24 май 2012 21:51 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Вот, пожалуйста, проект. Вернее ссылка на него. http://turbobit.net/gmsutr92z5yv.html Гляньте, если не трудно. Если есть ошибки, то скажите какие. Заранее благодарен. |
|
| Автор: | MagicWolf [ 25 май 2012 13:49 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Попробывал. У меня файл находит D:\\Image2.bmp, но не выводит, так не хватает glutSwapBuffers(); в конце Draw. Когда у тебя пишет "Failed to open DIB file ____.bmp", что вместо ____.bmp? |
|
| Автор: | Oleg34 [ 25 май 2012 20:03 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Дописал функцию glutSwapBuffers(); Результат тот же самый. Может у меня что то недоустановлено в самом MVS 2008? Снял скрины с экрана. |
|
| Автор: | MagicWolf [ 26 май 2012 11:13 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
Очень странно. Файл d:\image2.bmp существует? И права доступа к нему есть? Проблема явно не в коде. Попробуй зайти на http://nehe.gamedev.net/tutorial/texture_mapping/12038/ и внизу страницы скачать DOWNLOAD GLUT Code For This Lesson. ( Conversion by Kyle Gancarz ): http://nehe.gamedev.net/data/lessons/glut/lesson06.zip Попробуй пойдет или нет. Правда там загрузка изображения из tga. |
|
| Автор: | Oleg34 [ 26 май 2012 12:45 ] |
| Заголовок сообщения: | Re: Ошибка: "Failed to open DIB file ____.bmp" |
А вот то, что компилятор не может вычислить выражение sizeX=??? С чего бы это? А вот если не трудно можете скинуть любой свой простейший исходник где текстура натягивается на треугольник и квадрат. Самый элементарнейший. Извините за наглость. Заранее спасибо! |
|
| Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|