О курсе |
Лекции |
Практикум |
FAQs |
Оценки |
Глоссарий |
Литература |
OpenGL-1 (Cornell Box) |
Начало: 16 марта 2001 года.
Конец: 30 марта 2001 года. Автор задания: Игнатенко
Алексей
Цель задания
Целью задания является создание изображения заданной трехмерной статичной сцены средствами OpenGL с использованием, возможно, стандартных геометрических примитивов. Описание задания Требуется создать изображение сцены Cornell Box. Сцена представляет
из себя комнату кубического вида с отсутствующей передней стенкой. В комнате
находятся геометрические предметы различных форм и свойств, и источник
света на боковой стенке. Присутствует также камера с заданными параметрами. На рисунке показан
один из вариантов предлагаемой сцены. ( картинка получена методом
трассировки лучей)
Описание геометрии можно найти здесь в формате файла 3D Studio. Если вы не умеете работать с этим форматом - задайте похожую геометрию сами. Реализации этой сцены достаточно для выполнения задания, хотя возможно введение новых предметов дополнительно к существующим или вместо них. Приветствуется использование примитивов библиотек GLUT и GLU. Внимание! Сцена не должна превращаться в набор разнородных предметов. Эстетичность и оригинальность выполненного задания принимается во внимание. Протяженный источник света на стене комнаты можно эмулировать несколькими точечными источниками. За простейшую реализацию сцены ставится 7 баллов. Ниже приведены возможности, за реализацию которых можно получить дополнительные баллы. Реалистичность сцены можно значительно повысить за счет разбиение полигонов. Суть этого в том, что модели освещение OpenGL освещенность вычисляется в вершинах полигона с учетом направления нормалей в этих вершинах, а затем линейно интерполируется по всех поверхности. Если используются большие полигоны, то, очевидно, невозможно получить действительно плавные переходы и затенения. Для преодоления этого недостатка можно разбивать большие грани ( стены, например) на множество более малых по размерам. Соответственно разброс в направлении нормалей в вершинах одного полигона не будет столь велик и затенение станет более плавным. (1 балл) Наложение текстур на объекты сцены поощряется 2-мя баллами. Дополнительными баллами оценивается присутствие в сцене теней. Один из простейших алгоритмов наложения теней приведен в учебном пособии (см. ниже). За его реализацию можно получить от 2 баллов. Использование более продвинутых алгоритмов ( в т.ч. shadow volumes - обратите внимание!) будет оценено дополнительными баллами. Реализация устранения ступенчатости ( antialiasing ) методом, предложенным в пособии или каким-либо другим оценивается в 2 балла. За введение в сцену прозрачных объектов и корректный (!) их вывод дается 1 балл. Механизм работы с прозрачным объектами описан в учебном пособии. Материалы для выполнения задания Для изучения возможностей OpenGL предлагаются следующие материалы
Базисная библиотека
Библиотека GLU
Библиотека GLUT
Библиотека GLAUX
Все файлы.
Оценка Задание оценивается, исходя из 15 баллов. В нижеследующей таблице указано распределение баллов в зависимости от
реализованных требований:
Дополнительные баллы можно получить за хорошую оптимизацию рендеринга, необычные решения, эстетичность и т.д. Нет необходимости делать интерактивную программу, но создание таких программ тоже поощряется дополнительными баллами. Оформление задания Оформление задания ничем не отличается от предыдущих ( см. FAQ)
Примечание: нет необходимости присылать файлы glut32.dll, glu32.dll и opengl32.dll
Результаты работы Работа высылается по адресу assign3@graphics.cs.msu.su
Ваши вопросы вопросы по заданию и/или по OpenGL можно
задать Алексею Игнатенко по электронной
почте или лично (четверг и пятница после 5-й пары
- 703 (или 77) аудитория).
|
На главную |
Наверх |
Hosted by Graphics & Media Lab
http://graphics.cs.msu.su |
Дизайн: Алексей
Игнатенко
Поддержка: Ольга Соловьева |