Курсы лаборатории компьютерной графики
Обязательный полугодовой курс ВМиК МГУ
     

Задание №3. OpenGL: Визуализация односторонних поверхностей.

Начало: 22 апреля 2006 года.
Конец: 7 мая 2006 года (23:59)

Авторы задания:
Алексей Игнатенко
Кристина Каштанова

Введение.

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

Требуется визуализировать одностороннюю поверхность - лист Мёбиуса или бутылку Клейна средствами графической библиотеки OpenGL.

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

Обязательной частью задания является визуализация листа Мёбиуса (5 баллов). В сцене должно присутствовать освещение, т.е. визуализация должна происходить с включенным режимом освещения OpenGL, а объекту должен быть назначен материал (или материалы).

Лист Мёбиуса (или лента Мёбиуса) - простейшая односторонняя поверхность с краем. Попасть из одной точки этой поверхности в любую другую можно, не пересекая края. Одним из способов задания листа Мёбиуса в трёхмерном пространстве является параметрическое:




где
,

Эти формулы задают ленту Мёбиуса ширины 1, чей центральный круг имеет радиус 1, лежит в плоскости x-y с центром в (0,0,0). Параметр u пробегает вдоль ленты, в то время как v задает расстояние от края.

Дополнительная часть.

Одним из возможных способов набрать дополнительные баллы за задание является визуализация дополнительно к листу Мёбиуса бутылки Клейна. Требования к визуализации такие же, как и для листа Мёбиуса

Лист Мёбиуса и бутылку Клейна можно делать как два отдельных приложения, либо как одно приложение с возможным переключением.

В математике бутылка Клейна — это определённая неориентируемая поверхность рода 1, т. е. поверхность (двумерное топологическое пространство), у которой нет различия между внутренней и внешней сторонами. Она тесно связана с лентой Мёбиуса. В отличие от обыкновенного стакана у этого объекта нет «края», где бы поверхность резко заканчивалась. В отличие от воздушного шара можно пройти путь изнутри наружу не пересекая поверхность (т. е. на самом деле у этого объекта нет «внутри» и нет «снаружи»).

Бутылка Клейна представляет собой два "склеенных" листа Мёбиуса.

Классическая параметризация бутылки Клейна (+2 балла):

При: :



При: :



Другая параметризация для бутылки Клейна: в виде восьмёрки (+1 балл):





В этом виде самопересечение имеет форму геометрического круга в плоскости XY. Константа r равна радиусу круга. Параметр u задаёт угол на плоскости XY и v обозначает положение около 8-образного сечения.

Также дополнительные баллы можно получить за реализацию следующего:

  • Наложение текстуры на поверхность(+1-2 балла). Текстура не должна замещать освещение.
  • Присутствие в сцене теней. Для этого необходимо дополнительно поставить в сцену плоскость под объектом или куб вокруг объекта, чтобы на них падала тень: +1 балл - падение теней только на плоскость (куб); +3 балла - самозатенение поверхности
  • Реализация устранения ступенчатости (antialiasing) методом, предложенным в пособии или каким-либо другим также оценивается. 2 балла дается за качественное устранение ступенчатости. Обратите внимание: есть разница между размытием сцены и устранением ступенчатости!.
  • Зеркальная поверхность (+2 балла). При этом окружение должно присутствовать (например, в виде фона). Пример реализации для бутылки Клейна (на рисунке дополнительно присутствует прозрачность):
  • Показ структуры поверхности с помощью каркасной модели, наложенной поверх модели с освещением (как на рисунке) (+2 балла).
    Внимание: засчитывается только реализация каркасной модели в виде четырехугольных ячеек и без мерцания.
  • Возможность вращения объекта. +1 балл за реализацию управления с клавиатуры, +2 балла за удобное вращение мышью (можно использовать модуль trackball)
  • Корректная полупрозрачная поверхность (+3 балла). Внимание: правильная реализация потребует сортировки граней от дальних к ближним для каждого положения камеры. Засчитывается только при реализации возможности вращения модели.

Материалы для выполнения задания

Для изучения возможностей OpenGL предлагаются следующие материалы:

Для использования основных возможностей OpenGL необходимо иметь реализацию базисной библиотеки, а также библиотек GLU и GLUT, описание которых можно найти в учебном пособии. Там же описывается, как настроить OpenGL в среде программирования.

Стандартная библиотека GL и библиотека GLU, как правило, входит в поставку среды программирования. Библиотеку GLUT (версия для Microsoft Visual C++) можно скачать здесь. Дополнительную информацию о библиотеке GLUT можно найти в разделе GLUT на сайте www.opengl.org

Требования к программе

Обязательное требование - выполнить обязательную часть задания. При этом программа должна работать в интерактивном режиме, т.е. допускается время ожидания перерисовки не более 1-2 секунд на современной машине с ускорителем графики.

Еще одно обязательное требование - разбираться в материале. В спорных ситуациях оценка выставляется после личной беседы, выявляющей понимание принципа действия основных алгоритмов.

К программе должны прилагаться все необходимые для ее запуска библиотеки. (опускать можно только слишком большие библиотеки, если они явлются стандартными). Отсутствие библиотек создает неудобства при проверке, однако не фатально. У нас есть набор из наиболее часто недостающих библиотек для Borland C++ Builder и MS Visual C++.

У всех проверящих установлен .NET Framework 1.1. Проверка программ будет вестись на машинах с ускорителями ATI Radeon 9600.

Примечание: glut32.dll в архив можно не включать.

Обязательная часть задания 5 баллов
Классическая параметризация бутылки Клейна 2 балла
Параметризация бутылки Клейна в виде восьмерки 1 балл
Текстура 1-2 балла
Тени 1-3 балла
Устранение ступенчатости 2 балла
Зеркальная поверхность 2 балла
Показ каркасной модели 2 балла
Вращение 1-2 балла
Полупрозрачность 3 балла

Примечания

  • Освещение не обязательно должно выглядеть так же, как на рисунках. Мы можете поставить несколько цветных источнков света, экспериментировать с разными типами источников.
  • Баллы за базу снижаются (до 3-х) если освещение неправильное (неверно выставлены нормали, нет источника света и т.п.)

Оформление работы

Оформление не отличается от обычного. Работу нужно прислать на адрес assign3@graphics.cs.msu.su.

Cмотрите здесь, какие файлы нам присылать и как их оформить. Советуем очень внимательно прочитать весь FAQ

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

Результаты смотрите в интернете. Оценки появятся в течение двух недель после срока сдачи задания.

Все вопросы задавать в нашем форуме.

Главная | О курсе | Лекции | Библиотека | Задания | Оценки | FAQs | Форум
  (с) Лаборатория компьютерной графики, 1997-2005
Дизайн: Алексей Игнатенко