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

Задание №3. OpenGL: Виртуальный Город

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

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

Введение

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

Требуется создать средствами OpenGL статическое изображение модели небольшого виртуального города.

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

Обязательная часть предполагает рисование сцены, включающей в себя следующие элементы:

  • Деловой центр города. Должен состоять минимум из четырех домов разной высоты и ориентации. Один из домов должен быть цилиндрической формы. На одном из домов должен присутствовать шпиль.
  • Кольцевая дорога. Должна окольцовывать центр города. Может быть реализована как кольцо, четырехугольник и пр.
  • Пригород. Должен состоять минимум из пяти домов разной высоты и ориентации. Причем высота домов должна быть меньше чем высота домов центра. Дома должны иметь покатые крыши (как у коттеджей)
  • Источник света. (Им может быть солнце или луна).

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

Cцена должна быть реалистичной, за исключением количества домов и дорог: не нужно гнаться за их большим количеством! Домов лучше сделать несколько, но правдоподобных.

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

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

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

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

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

Для изучения возможностей 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 в архив можно не включать.

Оценка

Обязательная часть задания 7 баллов
Текстуры 1-2 балла
Тени 1-2 балла
Устранение ступенчатости 2 балла
Динамическое освещение 1 балл
Случайная генерация города 1-2 балла
Движение машин по дорогам 1-2 балла
Дополнительные дороги 1 балл
Река 1-3 балла
Деревья 1-2 балла
Переключение между камерами 1 балл

Примечания

  • Соблюдайте все требования базы по части формы домов. Если хотя бы одно не будет выполнено, за работу будет поставлено 0 баллов (невыполнение базы).
  • Баллы за базу могут быть снижены (до 4-х), если объекты в сцене не выглядят реалистично.
  • Реалистично выглядит объект или нет остается на усмотрение проверяющего и не является поводом для апелляции.
  • Также баллы за базу снижаются (до 4-х) если освещение неправильное (неверно выставлены нормали, нет источника света и т.п.)
  • Пример работы, приведенный в начале текста задания, получил бы 14 баллов = 7 база + 2 текстуры + 2 тени + 2 устранение ступенчатости + 1 дополнительные дороги, если бы дома в пригороде были разной высоты. Поскольку это требование базы не выполнено, за работу ставится 0 баллов.

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

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

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

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

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

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

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