О ФАКУЛЬТЕТЕ КАФЕДРА ДЕКАНАТ НОВОСТИ

Общие положения OpenGL

Графическая библиотека OpenGL (Open Graphics Library) в настоящий момент хорошо известна и описана в литературе. Она позволяет без специальных математических знаний создавать сложные трехмерные объекты и манипулировать ими.
Для выполнения нашей лабораторной работы достаточно знать лишь несколько графических функций (команд). Любознательным студентам следует обратиться к литературе. Структура программы и синтаксис команд объясняется на лекции. Однако для «особо талантливых и одаренных» студентов, пропустивших лекцию можно сделать краткие напоминания о понятиях: вершины и примитивы библиотеки OpenGL.

Под вершиной понимается точка в трехмерном пространстве, координаты которой можно задавать следующим образом:
void glVertex[2 3 4][s i f d](type coords)
или
void glVertex[2 3 4][s i f d]v(type *coords)

Координаты точки задаются максимум четырьмя значениями: x, y, z, w, при этом можно указывать два (x,y) или три (x,y,z) значения, а для остальных переменных в этих случаях используются значения по умолчанию: z=0, w=1. Число в названии команды соответствует числу явно задаваемых значений, а последующий символ – их типу.
Однако чтобы задать какую-нибудь фигуру одних координат вершин недостаточно, и эти вершины надо объединить в одно целое. Для этого в OpenGL используется понятие примитивов, к которым относятся точки, линии, треугольники, четырехугольники, многоугольники (полигоны) и так далее.

Задание примитива происходит внутри командных скобок:

void glBegin( GLenum mode)
void glEnd(void)

Параметр mode определяет тип примитива. Для однотипности команд мы будем рассматривать каждую грань делали как полигон:
GL_POLYGON последовательно задаются вершины выпуклого многоугольника.
Для задания текущего цвета вершины используются команды
void glColor[3 4][b s i f](GLtype components)
или
void glColor[3 4][b s i f]v(GLtype components)
Первые три параметра задают R, G, B компоненты цвета, а последний параметр при необходимости определяет alpha-компоненту, которая задает уровень прозрачности объекта.

Например, чтобы нарисовать грань детали в виде полигона из четырех вершин красного цвета, достаточно написать:

glBegin(GL_POLYGON);
glColor3f(1.0,0.0,0.0);
glVertex3f(0.9, 0.2,0.1);
// где x=0.9, y=0.2, z=0.1
glVertex3f(0.9, 0.6, 0.1);
//где x=0.9, y=0.6, z=0.1
glVertex3f( 0.9, 0.6, 0.3);
//где x=0.9, y=0.6, z=0.3
glVertex3f( 0.9, 0.2, 0.3);
//где x=0.9, y=0.2,z=0.3
glEnd();

Для задания цвета фона используется команда
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha).
Значения должны находиться в отрезке [0,1] и по умолчанию равны нулю.

<<ПРЕДЫДУЩАЯ <<СОДЕРЖАНИЕ>> СЛЕДУЮЩАЯ>>




О факультете Кафедра Деканат Новости

Контактная информация:
Санкт-Петербург, ул. Саблинская, 14, м. Горьковская
email: fitp@mail.ifmo.ru, тел: 232 4985

Используются технологии uCoz