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

Задание №4. OpenGL: Интерактивная анимация

Начало: 4 мая 2005 года.
Конец:  18 мая 2005 года (23:59)

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

Введение.

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

Требуется создать заданную анимированную трёхмерную сцену средствами OpenGL.

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

Вам на выбор предлагается реализовать демонстрацию происходящего в одной из предложенных игр: "кости" или "вышибалы". Возможна реализация обоих демонстраций. Все тела в игре должны реалистично анимироваться под действием физических сил. Для реализации физики советуем вам использовать физическую библиотеку Tokamak (архив zip 1.05 MB), так как она наиболее проста в использовании, и к тому же является бесплатной. Подробнее об использовании библиотеки можно прочесть здесь, либо в документации, которая входит в состав библиотеки.

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

  • В сцене должен присутствовать источник света.
  • Каждому объекту должен быть назначен материал.
  • В сцене обязательно должны присутствовать текстуры.

"Кости" (первый вариант задания).

Пример реализации можно скачать здесь (архив rar 603 Kb)

В сцене обязательно должны присутствовать следующие объекты:
  • От двух до пяти кубиков.
    Динамические объекты, текстурированные как игральные кости.
  • Стол.
    Статическая плоскость, на которую падают кубики.

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

"Вышибалы" (второй вариант задания).

Пример реализации можно скачать здесь (архив rar 198 Kb)



В сцене обязательно должны присутствовать следующие объекты:
  • Бита.
    Динамический объект, который изначально находится в неподвижном состоянии, по нажатию кнопки мыши или клавиатуры начинает двигаться в сторону сбиваемого объекта и затем сталкивается с ним, столкнувшись, может продолжать дальшейшее движение.
  • Объект для сбивания.
    Должен обязательно состоять из кубиков (не менее 7). Должен физически правильно рассыпаться при попадании в него биты. Все кубики в объекте должны быть текстурированы.
  • Пол.
    Статическая поверхность.

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

Ниже приведены возможности, за реализацию которых можно получить дополнительные баллы.

  • Отражение на столе, на полу, на кубиках.
  • Реализация устранения ступенчатости (antialiasing) методом, предложенным в пособии или каким-либо другим также оценивается. (Баллы даются за качественное устранение ступенчатости. Обратите внимание: есть разница между размытием сцены и устранением ступенчатости!)
  • Дополнительные объекты в сцене, корректно взаимодействующие с движущимися элементами.
  • Bump-mapping. При этом камера должна приближаться так, чтобы bump-mapping был виден. (Почитать о bump-mapping можно здесь)
  • Тени, отбрасываемые на плоскость (стол, пол).
  • Тени, отбрасываемые кубиками друг на друга. За качественные "мягкие тени" (soft shawdows) даются дополнительные баллы.
  • Управление траекторией полета кубиков/биты.
  • Только "вышибалы": Возможность смены сбиваемого объекта по кнопке мыши либо клавиатуры.
  • Только "вышибалы": Некоторые части (кубики) сбиваемого объекта полупрозрачные (с правильной сортировкой граней).
  • Управление камерой с помощью клавиатуры или мыши.

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

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

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

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

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

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

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

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

Оценка

Обязательная часть задания ("Кости") 4 балла
Обязательная часть задания ("Вышибалы") 7 баллов
Отражения на полу 1 балл
Отражения на кубиках 3 балла
Устранение ступенчатости 1 балл
Дополнительные объекты в сцене 1-2 балла
Bump mapping 2 балла
Тени на плоскость 1 балл
Тени кубиков друг на друга 2 балла
Мягкие тени 3 балла
Управление траекторией полета кубиков/биты 1 балл
Только "вышибалы": Возможность смены сбиваемого объекта по кнопке мыши либо клавиатуры 1 балл
Только "вышибалы": Некоторые части (кубики) сбиваемого объекта полупрозрачные (с правильной сортировкой граней) 1 балл
Управление камерой с помощью клавиатуры/мыши 1-2 балла

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

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

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

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

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

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

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