Шаг 9 - Первые объекты

Продолжим изучение fullscreen OpenGL ;)

Надеюсь, что вы успешно преодолели предыдущий шаг и сделали скелет приложения. (надо отметить, что с точки зрения синтаксических ошибок он самый сложный)

Теперь я не буду полностью приводить весь код (его много и он повторяется), а буду приводить отдельные функции или, если они большие, то буду указывать, что и куда добавить.

Итак в этом шаге мы будем рисовать треугольничек и квадратик. Опять создайте новый проект Win32. Скопируйте туда файл skeleton.cpp и переименуйте его. Настройте проект (т.е. добавьте библиотеки). Замените имя окна и имя класса окна ( это так, приличия ради )

Все, что мы будем делать в этом шаге - это дополним функцию Draw();

GLvoid Draw(GLvoid)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();

	glTranslatef(-1.5f, 0.0f, -5.0f);

	// модифицируем текущую матрицу ( которая в данный момент единичная).
	// Посмотрите MSDN по этой функции. Мы будем постоянно ее использовать 
	// ( и функция glRotatef(:) в пре с ней ). Понимание матричных 
	// операций и их реализацию в OpenGL - это ключ к победе. 
	// Главное помнить, что все построения в OpenGL происходят 
	// относительно текушей матрицы (той, которая находится на вершине 
	// матричного стека, но это я забегаю вперед )

	glBegin(GL_TRIANGLES);			// Начинаем рисовать треугольник
		glVertex3f( 0.0f, 1.0f, 0.0f);	// Top
		glVertex3f(-1.0f,-1.0f, 0.0f);	// Bottom Left
		glVertex3f( 1.0f,-1.0f, 0.0f);	// Bottom Right
	glEnd();

	glLoadIdentity();

	// Приводим текущую матрицу в единичную ( попробуйте 
	// закомментировать эту строку, получите квадрат, отстоящий 
	// от треугольника на -5.0 ;) Что ж, как говорится: "Учите мат. часть,
	// товарищ курсант" )

	glTranslatef(1.5f, 0.0f, -5.0f);
	glBegin(GL_QUADS);				// Рисуем квадратик
		glVertex3f(-1.0f, 1.0f, 0.0f);	// Top Left
		glVertex3f( 1.0f, 1.0f, 0.0f);	// Top Right
		glVertex3f( 1.0f,-1.0f, 0.0f);	// Bottom Right
		glVertex3f(-1.0f,-1.0f, 0.0f);	// Bottom Left
	glEnd();
}

Вот и все. В следующем шаге мы их покрасим ;)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Kirill V. Ratkin - 14.01.2000