Задание №4. OpenGL: Интерактивная анимация под музыку
Начало: 8 мая 2006 года
Конец: 20 мая 2006 года (23:59)
Авторы:
Кристина Каштанова
Алексей Игнатенко
Введение
Цель задания: получение навыков работы с трехмерными динамическими данными, синхронизация движения трёхмерных объектов со звуковым
сопровождением, использование приемов работы с OpenGL для увеличения реалистичности интерактивной визуализации сцены.
Требуется реализовать заданный трехмерный объект, движущийся под музыку.
Описание задания
Необходимо создать упрощённую модель человека, танцующего под музыку. Модель человека должна представлять собой трёхмерный объект, состоящий из туловища, двух рук, двух ног и головы.
Указанные элементы должны двигаться, подражая танцевальным движениям. Движения должны соответствовать человеческим, то есть, как минимум, части тела должны двигаться друг относительно друга способом, не противоречащим анатомии человека (части тела не должны гнуться в неестественную сторону, пересекаться во время движения и т.п.).
Также движения должны быть синхронизированы с проигрываемым звуковым файлом Для проигрывания звукового файла и синхронизации рекомендуем использовать свободно распространяемую библиотеку BASS
(zip 577Кб).
Для помощи в освоении библиотеки предлагается изучить краткий урок по использованию. Он включает исходные коды (шарики, движущиеся под музыку), которые можно использовать для выполнения задания.
Обязательная часть.
- В сцене должен присутствовать как минимум один источник света
- В сцене должна присутствовать упрощённая модель человека (руки, ноги, туловище и голова). Каждая из частей модели может быть задана жесткой моделью (например, цилиндром, сферой для головы).
- Каждому объекту должен быть назначен материал .
- Приложение должно воспроизводить звуковой файл. Должен воспроизводиться произвольный mp3-файл (см. также требования к программе).
- Руки и ноги модели должны двигаться в такт проигрываемой композиции.
Рисовать модель можно, используя стандартные трёхмерные объекты (сферы, цилиндры, диски и т.д.), которые можно реализовать самостоятельно, либо используя библиотеку GLU или GLUT. Допускается загрузки модели из внешнего файла.
Предлагается пример выполнения задания (zip 801kb)
Ваша реализация модели человека не обязательно должна включать все элементы модели на рисунках. Достаточно реализации элементов, указанных в требованиях основной части.
За основную часть задания дается 8 баллов.
Дополнительная часть
Ниже приведены возможности, за реализацию которых
можно получить дополнительные баллы.
- Улучшенная анимация. Движение (наклоны, повороты) в такт музыке не только рук и ног человека, но и туловища, головы. Засчитывается при естественных движениях. (+1-2 балла).
- Детализированная модель человека (например, рука состоит из плеча, запястья и кисти и т.д.). Дополнительные элементы должны двигаться относительно других элементов тоже в такт музыке, т.е. не должны быть жестко закрепленными. Например, кольцо, зафиксированное на руке, не будет засчитано, тогда как кольцо, которое двигается в такт музыке, оставаясь на руке, будет засчитано. (+2-4 балла, в зависимости о числа дополнительных элементов и качества анимации).
-
Присутствие в сцене более одной танцующей модели, при этом все модели должны
танцевать по-разному (за две модели +1 балл, за более 2-х +2 балла). Модели могут быть одинаковым.
- Реализация окружения следующего вида: пол и несколько (три или более) направленных источников света прожекторного типа (spot light) разного цвета -- аналог дискотеки. Источники должны освещать модель и пол под моделью. При этом на полу должны быть четко различимы освещенные круги света (для этого потребуется подразбиение модели пола), а направление источников света должно анимироваться в такт музыке. (+2 балла)
-
Возможность смены звуковых файлов во время выполнения. Должно быть реализовано через нажатия кнопок 1,2,3, при этом должны загружаться файлы 1.mp3, 2.mp3, 3.mp3). Трех файлов достаточно. (+1 балл).
- Наличие в сцене текстур (+1-2 балла, в зависимости от степени реалистичности наложения текстур). Текстуры должны комбинироваться с освещением.
- Зеркальные отражения на плоскости пола (+2 балла).
- Тени, отбрасываемые на плоскость (+2 балла).
- Тени, отбрасываемые объектами друг на друга, либо самозатенение (4 балла).
- Управление камерой с помощью клавиатуры или мыши (+1-2 балла).
Материалы для выполнения задания
Для изучения возможностей OpenGL предлагаются следующие материалы:
Материалы для работы со звуком и синхронизации:
Дополнительные полезные материалы и ссылки:
Требования к программе
Программа должна загружать файл 1.mp3 из каталога, где лежит запускаемый файл программы. Если реализовано переключение между файлами, они должны называться 1.mp3, 2.mp3, 3.mp3.
Файлы mp3 к программе прикладывать необязательно. Если вы используете mp3-файлы, отличные от тех, что предлагаются в задании, мы можете включить 1 (один) mp3-файл в архив с программой, он должен называться 1.mp3 и лежать в подкаталоге bin рядом с запускаемым файлом программы. При этом размер письма с программой не должен превышать 7мб
Скорость работы должна быть ориентировочно не менее 5 кадров/сек на современной машине бюджетного уровня (P4 2000, графический ускоритель уровне NVidia GeForce4)
Еще одно обязательное требование - разбираться в
материале. В спорных ситуациях оценка выставляется
после личной беседы, выявляющей понимание принципа
действия основных алгоритмов.
К программе должны прилагаться все необходимые для
ее запуска библиотеки (опускать можно только
слишком большие библиотеки, если они явлются
стандартными) . Отсутствие библиотек создает
неудобства при проверке, однако не фатально. У нас
есть набор из наиболее часто недостающих библиотек
для Borland C++ Builder и MS Visual C++. У всех проверящих
установлен .NET Framework 1.1
Примечание: glut32.dll в архив можно не включать.
Оценка
| Обязательная часть задания |
8 баллов |
| Улучшенная анимация |
1-2 балла |
| Детализация модели танцора |
2-4 балла |
| Несколько танцоров |
1-2 балла |
| Окружение (дискотека) |
2 балла |
| Смена звукового сопровождения |
1 балл |
| Текстуры |
1-2 балла |
| Зеркальные отражения от пола |
2 балла |
| Тени на плоскость |
2 балла |
| Тени объектов друг на друга |
4 балла |
| Управление камерой с помощью клавиатуры/мыши |
1-2 балла |
Примечание: демонстрационная программа (см. раздел "Материалы для выполнения
задания") набрала бы 14 баллов (8 баллов обязательная часть + 2 балла за улучшенную анимацию + 3 балла за
детализацию модели + 1 балл за управление камерой с помощью мыши).
Оформление работы
Оформление не отличается от обычного. Работу нужно прислать на адрес
assign5@graphics.cs.msu.su.
Cмотрите здесь, какие файлы нам присылать и как их оформить. Советуем очень внимательно прочитать
весь FAQ
Результаты работы
Результаты смотрите в интернете.
Оценки появятся в течение двух недель после срока сдачи задания.
Все вопросы задавать в форуме.
|