Graphics & Media Lab. >> Курсы >> Курс Ю.М.Баяковского 2001

Компьютерная графика
О курсе
О курсе
Лекции
Лекции
Практикум
Практикум
FAQs
FAQs
Оценки
Оценки
Глоссарий
Глоссарий
Литература
Литература
 
OpenGL (Поверхности Безье)
Начало: 20 апреля 2001 года.
Конец:  4 мая 2001 года.
 
Автор задания: Татьяна Шумаева
Цель задания.

Научиться работать с поверхностями Безье в трехмерном пространстве: выводить и манипулировать (создание интерактивной программы) ими с использованием OpenGL.

Описание задания.

Введение.

Поверхности Безье - это один из способов визуализации гладких поверхностей.

Рис.1. Поверхность Безье

Рис.1. Поверхность Безье.

Если у нас есть совокупность точек (прямоугольная сетка) в пространстве, то можно построить гладкую поверхность, которая будет "повторять" многогранную поверхность (Рис.1.)

Рис.2. Сетка поверхности Безье

Рис.2. Зеленые точки - это контрольные точки, по которым строится поверхность. Желтые линии их соединяют. Сетка белого цвета - это аппроксимирующая сетка поверхности Безье.

Обязательная часть:

  • Нужно создать одну поверхность Безье, заданную как минимум 16-ю контрольными точками, используя функции из библиотеки GL (glMap2[fd], glMapGrid2[fd], glEvalMesh2). За сложность и оригинальность поверхности будут добавляться баллы. За неинтересную поверхность быллы могут вычитаться. Источник света присутствует.

    Для лучшего понимания, можно изучить программу, использующую поверхности Безье.

  • Реализовать возможность передвижения (вращения) поверхности для того, чтобы можно было изучить ее со всех сторон. Два способа реализации:

    интерактивный (используя мышку)

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

    В этом случае можно воспользоваться модулем trackball (исходники trackball.c trackball.h), самостоятельно изучив его. Он позволяет интуитивно-понятно управлять вращением объекта.

    Еще один из возможных способов реализации - это использование специальной панели.

    Пример панели управления движением объекта

    Рис.3. Пример панели управления.

    Если кликать мышкой на левую/правую половину панели, то перемещение (вращение) происходит в положительную/отрицательную сторону. Чем дальше от центра тем быстрее.

    неинтерактивный - перемещение и вращение по заранее заданным траекториям

    Не требуется вмешательства пользователя. При этом объект должен хорошо просматриваться со всех сторон!

Дополнительная часть: Оценка:
  • Простейший вариант программы без интерактивного манипулирования : 5 баллов
  • Простейший вариант программы c интерактивным манипулированием : 7 баллов (+ дополнительные баллы за удобство)
  • Перемещение опорных точек : +5 балла
  • Считывание из файла : +3 балла
  • Реализация NURBS : +3 балла

Дополнительные баллы можно получить за необычные решения, эстетичность и т.п.

Дополнительные источники информации: Оформление задания

Оформление задания ничем не отличается от предыдущих ( см. FAQ)
Архив должен содержать readme.txt файл в специальном формате.

Примечание: нет необходимости присылать файлы glut32.dll, glu32.dll

Результаты работы

Работа высылается по адресу: assign5@graphics.cs.msu.su

На основную
На главную
Наверх
Наверх
 
Graphics & Media Lab. >> Библиотека | Курсы | Графикон
 
Hosted by Graphics & Media Lab
http://graphics.cs.msu.su
lab_logo
Дизайн: Алексей Игнатенко
Поддержка: Ольга Соловьева