Страница 14

Введение в OpenGl. Учебник

Главная
Страница 1
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 7
Страница 8
Страница 9
Страница 10
Страница 11
Страница 12
Страница 13
Страница 14
Страница 15
Страница 16
Страница 17
Страница 18
Страница 19
Страница 20
Страница 21






Скачать учебник
Предыдущая страница
Следующая страница
>

Загружает в палитру по индексу index, RGB-значение, определенное параметрами red, green и blue. Последние три параметра нормализуются до диапазона [0.0, 1.0].

1.9.4 Рисование трехмерных объектов

Многие программы примеры используют простые трехмерные объекты для иллюстрации различных методов и техник визуализации изображения. GLUT содержит несколько функций для рисования таких объектов. Все эти функции работают в непосредственном режиме. Каждая из них имеет два варианта: первый рисует объект в виде проволочного каркаса и не генерирует нормалей, второй рисует объект сплошным и генерирует нормали поверхности (для чайника помимо этого генерируются координаты текстуры). Если используется освещение, следует выбирать сплошную версию объекта. Все объекты рисуются с учетом текущих параметров, например, цвета и характеристик материала. Кроме того, все объекты рисуются центрированными относительно текущих модельных координат.

void glutWireSphere (GLdouble radius, GLint slices, GLint stacks);
void glutSolidSphere (GLdouble radius, GLint slices, GLint stacks);

Рисуют проволочную или сплошную сферу с радиусом radius, количеством частей (полигонов из которых состоит сфера) slices – вокруг оси z и stacks – вдоль оси z. Для того, чтобы понять, что означает вокруг оси z и вдоль нее, представьте себе, что вы смотрите в длинную трубу. В данном случае направление вашего обзора совпадает с осью z трубы. Она может быть мысленно разделена как вдоль (на длинные фрагменты), так и поперек (на кольца). После таких разбиений труба фактически состоит из множества мелких кусочков. В случае сферы количество разбиений поперек задается параметром stacks, а количество разбиений вдоль – параметром slices. Из этого следует, что чем больше разбиений, тем более гладкой выглядит сфера на экране, но тем больше вычислений требуется для ее рисования.

void glutWireCube (GLdouble size);
void glutSolidCube (GLdouble size);

Рисуют проволочный или сплошной куб с длиной ребра size.

void glutWireTorus (GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings);
void glutSolidTorus (GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings);

Рисуют проволочный или сплошной торус (бублик) с внешним радиусом outerRadius и внутренним радиусом innerRadius. Параметр rings задает желаемое число колец из которых будет состоять торус, параметр nsides – из скольких частей будет состоять каждое кольцо.

void glutWireCone (GLdouble radius, GLdouble height, GLint slices, GLint stacks);
void glutSolidCone (GLdouble radius, GLdouble height, GLint slices, GLint stacks);

Рисуют проволочный или сплошной конус радиусом radius, высотой height. Значение параметров slices и stacks аналогично таким же параметрам для сферы.

Предыдущая страница
Следующая страница
Hosted by uCoz