Ход выполнения работы

Лабораторная работа №4. Построение поверхностей вращения с использованием сплайнов

 

Цель: научиться строить криволинейные поверхности с помощью полигональных сеток и на базе сплайнов.

Программное обеспечение: OpenGL, MS Visual Studio.

Теория

1. Моделирование поверхностей полигональными сетками. Каркасные аппроксимации гладких объектов [13: стр.350-, стр.385-].

2. Сплайновые представления [9: стр. 594-].

3. Функции OpenGL аппроксимации сплайнами [9: стр. 649-].

 

 

Ход выполнения работы

1. Изучить по теоретическим источникам методы моделирования поверхностей полигональными сетками, и сплайновые представления.

2. На языке программирования С++ с использованием библиотеки OpenGL разработать функцию вывода поверхности вращения, полученную поворотом профиля (см. варианты заданий) вокруг оси OZ.

3. С использованием сплайна любого типа аппроксимировать профиль и построить новую поверхность.

4. Реализовать возможность поворота полученной поверхности на произвольный угол.

5. Реализовать возможность визуализации модели в каркасном режиме, так и с помощью сплошной закраски.

6. Дополнительное задание (до +100 баллов): трехмерный ландшафт: для построения поверхности используется карта высот, хранящаяся в виде полутонового bmp-файла. Поверхность изображается как набор клеток со сторонами фиксированного размера, углы которых расположены на разной высоте. На клетки накладывается текстура, имитирующая растительность (поверхность воды, гор и т.д.). Камера перемещается на постоянной высоте над поверхностью. Рельеф поверхности описывается с помощью функции, задающей высоту каждого угла каждой клетки. Эта функция задается с помощью полутонового изображения – карта высоты, каждый пиксел которой соответствует углу одной из клеток поверхности. Значения интенсивности изображения лежат в диапазоне от 0 до 255, и именно эти значения принимаются за значения высоты в углах клеток. Положение камеры задается в системе координат, связанной с картой высоты.

 

7. По результатам выполнения лабораторной работы оформить отчет, в который включить:

а) титульный лист;

б) индивидуальное задание;

г) блок-схемы реализованных алгоритмов с описанием алгоритма по блок-схеме;

д) результаты тестирования программы (скриншоты с описанием выполняемых функций);

е) описание функций OpenGL, использованных в ходе выполнения лабораторной работы:

Функция glBegin
Цель Отметить начало группы вершин, определяющих один или несколько примитивов
Включаемый файл <gl.h>
Синтаксис void glBegin(GLenum mode);
Описание Применяется вместе с glEnd для разграничения вершин примитива OpenGL
Параметры mode – задает создаваемый примитив. Например, GL_POINTS – все заданные вершины используются для создания отдельных точек.
Что возвращает Ничего

к) аналогичное описание разработанных функций в ходе выполнения лабораторной работы;

л) описание материалов, предоставляемых в электронном виде (описание структуры проекта):

 

Наименование файла и размещение Описание
../2d/main.cpp Основной модуль программы, содержит…

В электронном виде сдается:

а) исходники с подробными комментариями;

б) исполняемый файл со всеми необходимыми библиотеками для корректного запуска в среде Windows.

ВАЖНО! Все рабочие файлы проекта, например, с расширениями .vcproj, .obj, .pdp и т.д. прикладывать не нужно.

 


Варианты индивидуальных заданий

Профиль поверхности вращения Профиль поверхности вращения