Скачиваний:
115
Добавлен:
23.02.2015
Размер:
702.98 Кб
Скачать
  1. Примеры практических заданий

    1. Cornell Box

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

Требуется создать изображение сцены Cornell Box. Эта классическая сцена представляет собой комнату кубического вида, с отсутствующей передней стенкой. В комнате находятся геометрические предметы различных форм и свойств (кубы, параллелепипеды, шары), и протяженный источник света на потолке. Присутствует также камера с заданными параметрами (обычно она расположена так, чтобы была видна вся комната). В одной из лабораторий Корнельского университета (http://graphics.cornell.edu) такая комната существует в реальности, и ее фотографии сравниваются с изображениями, построенными методами трассировки лучей для оценки точности методов. На странице лаборатории можно найти описание геометрии сцены в текстовом формате.

Реализации сцены, приведенной на рисунке достаточно для выполнения задания, хотя возможно введение новых предметов дополнительно к существующим, или вместо них. Приветствуется использование примитивов библиотек GLUT и GLU.  Внимание! Сцена не должна превращаться в набор разнородных предметов. Эстетичность и оригинальность выполненного задания принимается во внимание.

Протяженный источник света на потолке комнаты можно эмулировать несколькими точечными источниками.

За  простейшую реализацию сцены ставится 7 баллов.

Реалистичность сцены можно значительно повысить за счет разбиение многоугольников. Суть этого в том, что модели освещение OpenGL освещенность вычисляется в вершинах многоугольника с учетом направления нормалей в этих вершинах, а затем линейно интерполируется  по всей поверхности. Если используются относительно большие многоугольники, то, очевидно, невозможно получить действительно плавные переходы  и затенения. Для преодоления этого недостатка можно разбивать большие грани (стены, например) на множество меньших по размерам. Соответственно разброс в направлении нормалей в вершинах одного многоугольника не будет столь велик и затенение станет более плавным. (1 балл)

Наложение текстур на объекты сцены поощряется 2-мя баллами.

Дополнительными баллами оценивается присутствие в сцене теней. Один из простейших алгоритмов наложения теней приведен в разделе 7.2. За его реализацию можно получить до 2 баллов. Использование более продвинутых алгоритмов (например, shadow volumes) будет оценено дополнительными баллами.

Реализация устранения ступенчатости (antialiasing) методом, предложенным в разделе 7.1. или каким-либо другим оценивается в 2 балла.

За введение в сцену прозрачных объектов и корректный их вывод дается 1 балл. Механизм работы с прозрачными объектами описан в разделе 6.1.

Задание оценивается, исходя из 15 баллов.

В приведенной ниже таблице указано распределение баллов в зависимости от реализованных требований:

 

Простейший вариант сцены (только освещение)

7 баллов

Разбиение полигонов

+1 балл

Использование текстур

+2 балла

Наложение теней

+2 балла

Устранение ступенчатости

+2 балла

Использование прозрачных объектов

+1 балл

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

Соседние файлы в папке Программирование графических приложений