Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 16:16   #1
Argentum_47
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 2
Печаль Проблема с текстурированием объекта в OpenGL

Всем добрый день.
В данный момент я начинаю изучать OpenGL на языке C++ по урокам от NeHe.
И тут я наткнулся на одну проблему, изучая урок о наложении текстуры на объект.
Ошибка:
Цитата:
1>------ Построение начато: проект: OpenGL Lesson, Конфигурация: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _auxDIBImageLoadW@4 в функции "void __cdecl LoadGLTextures(void)" (?LoadGLTextures@@YAXXZ)
1>C:\Documents and Settings\Admin\мои документы\visual studio 2010\Projects\OpenGL Lesson\Debug\OpenGL Lesson.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Скриншот:

Код:
Код:
#include <stdlib.h>
#include <glut.h>
#include <gl\glaux.h>

GLint Width = 800, Height = 600;
float rotx, roty, rotz;
unsigned int texture[1];

void LoadGLTextures()
{

	AUX_RGBImageRec *texture1;
	texture1 = auxDIBImageLoad((LPCWSTR)"main/CRATE.bmp");

	glGenTextures(1, &texture[0]);
	glBindTexture(GL_TEXTURE_2D, texture[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 | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();

	glTranslatef(0.0, 0.0, -5.0);
	glRotatef(rotx, 1.0, 0.0, 0.0);  
	glRotatef(roty, 0.0, 1.0, 0.0);  
	glRotatef(rotz, 0.0, 0.0, 1.0);  
	glBindTexture(GL_TEXTURE_2D, texture[0]);

	glBegin(GL_QUADS);
								// Передняя грань
		glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ лево
		glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ право
		glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх право
		glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх лево

						// Задняя грань
		glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ право
		glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх право
		glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх лево
		glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ лево

						// Верхняя грань
		glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево
		glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Низ лево
		glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Низ право
		glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право
	
						// Нижняя грань
		glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Верх право
		glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Верх лево
		glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево
		glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право

						// Правая грань
		glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ право
		glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право
		glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх лево
		glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево

						// Левая грань
		glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ лево
		glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право
		glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх право
		glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево

	glEnd();

	glutSwapBuffers();
}

void timer(int)
{
	++rotx;
	++roty;
	++rotz;

	glutPostRedisplay();
	glutTimerFunc(20, timer, 0);
}

void Reshape(GLint w, GLint h)
{
	Width = w;
	Height = h;

	glViewport(0, 0, w, h);

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective( 45.0f, (GLfloat)w/(GLfloat)h, 0.1f, 100.0f );
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}


int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
	glutInitWindowSize(Width, Height);
	glutCreateWindow("OpenGL1");

	LoadGLTextures();
	glEnable(GL_TEXTURE_2D);

	glClearColor(0.5, 0.5, 0.5, 1.0);
	glShadeModel(GL_SMOOTH);
	glClearDepth(1.0);
	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LEQUAL);
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

	glutDisplayFunc(Draw);
	glutReshapeFunc(Reshape);

	timer(0);
	glutMainLoop();
}
Прошу вас решить данную проблему!

Заранее благодарен

P.S. ОС - Windows XP, среда разаработки - Visual C++ 2010 Express.

Последний раз редактировалось Argentum_47; 21.03.2012 в 16:21.
Argentum_47 вне форума Ответить с цитированием
Старый 21.03.2012, 17:16   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы библиотеку то подключите.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.03.2012, 17:23   #3
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну как всегда
прототип auxDIBImageLoad в #include <gl\glaux.h> есть,
а библиотеку #pragma comment(lib, "glaux.lib") подключить лень.
EUGY вне форума Ответить с цитированием
Старый 21.03.2012, 17:29   #4
Argentum_47
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 2
По умолчанию

Спасибо, буду знать

За одно еще один вопрос: Куда надо кинуть bmp-изображение и как правильно указывать путь к нему?
Argentum_47 вне форума Ответить с цитированием
Старый 21.03.2012, 18:04   #5
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Как фантазия подскажет, в ресурсы например.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с удалением динамического объекта StrangeR_965 Общие вопросы Delphi 1 01.02.2012 01:06
Проблема с OpenGL mr-Brown Общие вопросы C/C++ 12 16.11.2010 16:59
Как в OpenGL сделать свет (прожектор) исходящий от объекта (сферы) Mindzor Общие вопросы C/C++ 3 19.09.2010 14:25
Загрузка объекта OpenGL? spamer Мультимедиа в Delphi 6 05.10.2009 18:13
Движение объекта по точкам(OpenGl).Подскажите. spamer Общие вопросы Delphi 12 10.04.2009 17:06