Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №6 / Тени_проекции

.doc
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
38.4 Кб
Скачать

Лабораторная работа 5.

Проекция - projshadow

Цель работа :

Изучение построение проекций в OpenGL. Программа демонстрирует проекции теней.

Задание

Вы должны

  1. Добавьте в программу больше теней, сделав их перекрывающимися.

  2. Добавьте в программу больше теней, так, чтобы они отражались на несколько стен.

  3. Ввести в программу тени от цветных источников света, путем замены цвета света и рассеянного света.

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

  5. Объяснить роль stencil buffer

6. Вся программа должна быть переработана для встраивания ее в ваш пользовательский интерфейс (Windows), где пользователю предоставляется возможность выбора ( пункты 1-4)

В отчете представляется описание встроенных методов и добавленных вами.

Порядок выполения работы

Для выполнения этой лабораторной работы предлагается программа

Проекция - projshadow.c, в ней вы должны дописать необходимые фрагменты кода

Приложение

Алгоритм построения тени

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

Тип " простой " тени может быть создан, используя трансформации проекции. Объект просто проектируется на плоскость, затем закрашивается как отдельный примитив.

Имеется последовательность, необходимая, чтобы закрасит объект, который имеет теневой бросок от направленного света расположенного на z оси на плоскость x, y:

1. Закрасьте сцену, включая заслоняющий объект обычным способом.

2. Установите модельную матрицу к идентичности, затем вызовите glscalef1. f, 0. f, 1. f (1. f, 0. f, 1. f).

3. Необходимо поместить и ориентировать заслоняющий объект.

4. Необходимо создать правильный цвет тени.

5. Закрасьте заслоняющий объект.

Этот простой пример может быть расширен, применяя дополнительные трансформции перед glScalef () -запрос поместить тень на соответствующий плоский объект. Применение этой тени подобно применению многоугольник. Глубина сцены должна быть принята во внимание. Чтобы избегать проблем совмещения глубины, тень может быть немного смещение из многоугольника основы, используя смещение многоугольника, проверка глубины может быть нарушена.

Также возможно применение буфера трафаретов, чтобы гарантировать правильную тень.

Направление источника света также может быть изменено, применяя трансформацию отсечения после запроса glScalef (). Эта методика не ограничена направленными источниками света. Точечный источник может быть представлен, прибавляя перспективное преобразование к общей последовательности.

Соседние файлы в папке Лабораторная работа №6