Автор задания:
Алексей Игнатенко
Введение
Цель задания - получение навыков работы с
геометрическими моделями, визуализация данных с
помощью 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 баллов.
Оформление работы
Оформление не отличается от обычного. Работу
нужно прислать на адрес
assign4@graphics.cs.msu.su.
Cмотрите здесь, какие файлы нам присылать и как
их оформить. Советуем очень внимательно прочитать
весь FAQ
Результаты работы
Результаты смотрите в интернете.
Оценки появятся в течение двух недель после срока сдачи задания.
Все вопросы задавать в нашем форуме.
|