Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по компьютерной графике.doc
Скачиваний:
740
Добавлен:
17.03.2015
Размер:
17.09 Mб
Скачать

8.2 Метод Гуро

Этот метод предназначен для создания иллюзии гладкой криволинейной поверхности, которая описана в виде многогранников или полигональной сетки с плоскими гранями. Ес­ли каждая плоская грань имеет один постоянный цвет, который определен в соответствии с учетом отражения, то разные цвета соседних граней очень заметны, и поверхность выгля­дит именно как многогранник. Казалось, этот дефект можно замаскировать за счет увеличе­ния количества граней при аппроксимации поверхности. Но зрение человека имеет способ­ность подчеркивать перепады яркости на границах смежных граней — такой эффект назы­вается эффектомполос Маха. Вследствие этого, для создания иллюзии гладкости нужнонамного увеличить количество граней, что приводит к существенному замедлению визуа­лизации — чем больше граней, тем меньше скорость рисования объектов.

Метод Гуро основан на идее закрашивания каждой плоской грани не одним цветом, а плавно изменяющимися оттенками, которые вычисляются путем интерполяции цветов приле­гающих граней. Закрашивание граней по методу Гуро осуществляется в четыре этапа.

  • Вычисляются нормали к каждой грани.

  • Определяются нормали в вершинах. Нормаль в вершине определяется усреднением нормалей прилегающих граней (рис. 8.6).

Рис. 8.6. Нормаль в вершине а

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

Вектор нормали в вершине (а) равняется

Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пиксела) удобно выполнять во время цикла за­полнения полигона. Рассмотрим заполнение контура грани горизонталями в экранных ко­ординатах (рис. 8.7).

Рис. 8.7. Заполнение полигона грани

Интерполированная интенсивность I в точке (X, У) определяется, исходя из пропорции

откуда

Значение интенсивности I1 и I2 на концах горизонтального отрезка вычислим путем интерполяции интенсивности в вершинах

8.3 Метод Фонга

Аналогичен методу Гуро, но при использовании метода Фонга для определения цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.

  • Определяются нормали к граням.

  • По нормалям к граням определяются нормали в вершинах. В каждой точке закрашивае­мой грани определяется интерполированный вектор нормали.

  • Цвет каждой точки грани вычисляется в соответствии с направлением интерполирован­ного вектора нормали и согласно выбранной модели отражения света.

Метод Фонга сложнее метода Гуро. Для каждой точки (пиксела) поверхности необходи­мо выполнять намного больше вычислительных операций. Тем не менее, он дает значи­тельно лучшие результаты, в особенности при имитации зеркальных поверхностей.

Общие черты и отличия методов Гуро и Фонга можно показать на примере образца ци­линдрической поверхности, которая аппроксимирована плоскими гранями (рис. 8.8). Пусть точечный источник света находится позади нас. Проанализируем результаты закрашивания граней поверхности для имитации отражения света.

Рис. 8.8. Отличия закрашивания методами Гуро и Фонга

Основные отличия можно заметить, рассматривая закрашивания передней грани. Она перпендикулярна направлению лучей света. Поэтому нормали в вершинах этой грани рас­полагаются симметрично — они образуют попарно равные по абсолютной величине углы с лучами света. Для метода Гуро это обуславливает одинаковые интенсивности отраженного света в вершинах передней грани. А раз интенсивности для всех вершин одинаковые, тоцвет всех точек этой грани — константа (при линейной интерполяции), что, в данном слу­чае, неправильно.