logo search
Компьютерная графика / МАШ_ГРАФИКА

§ 7. Моделирование отражения от поверхности (затенение)

Допустим, рассчитывается затенение некоторой грани объек-та, имеющей k вершин.При моделировании освещения граней вначале по методам, изложенным выше, рассчитывают осве-щенность вершин (малых участков поверхности возле них) I1,...,Ik . Для расчета отражённого света от внутренних участков граней на практике используют следующие методы.

197

1. Плоское затенение (Flat). Освещенность грани принимают постоянной и равной освещенности одной из вершин Ii (1£ i £ k), либо среднему значению по всем вершинам

Метод прост и наиболее быстро реализуется, но гладкие поверхности при его применении выглядятнереалистично – состоящими из отдельных плоских участков, четко видны ребра на стыках граней .

2. Затенение по Гуро (Gouraud). Применяется для треуголь-ников. Используется двухуровневая линейная интерполяция. Рассмотрим последовательность вычислений на примере расчета освещенности некоторой произвольной внутренней точки грани G (Рис. 9.5).

Рис. 9.5

Шаг 1. По освещенности вершин IA, IB, IC, линейно интер-полируются освещенности ID, IE точек D и E, лежащих на пересечении прямой, проходящей через G параллельно осно-ванию BC , с прилежащими к нему ребрами AB,AC. Также приведена формула для интерполирования освещенности IF точки F, лежащей на ребре BC .

198

Шаг 2. По освещенностям ID, IE точек D и E на ребрах линей-но интерполируется освещенность пикселя, соответствую-щего рассматриваемой точке G внутри треугольника:

В том случае, когда yВ = yА либо yС = yА , yС = yВ (верши-ны треугольника лежат на одном уровне по оси y), у приве-денных интерполяционных формул появляются нули в знаме-нателях. Поэтому вместо них необходимо использовать анало-гичные формулы для интерполяции по оси x.

При расчётах по этому методу изображение значительно улучшается по сравнению с плоским затенением, однако наблюдается эффект “звёздочных бликов”- на гладких по-верхностях отражения точечных источников имеют вид мно-гоугольников.

3. Затенение по Фонгу (Phong). Расчёт содержит несколько действий.

1. По нормалям nA ,nB ,nC в вершинах треугольника ABC интерполируются нормали nD для внутренних точек тре-угольника D.

2. В каждой точке D по нормали nD , относительному поло-жению источника и наблюдателя рассчитывается отражение.

Этот метод является наиболее совершенным. Однако его реализация требует выполнения большого числа операций. Поэтому в системах реального времени он пока используется мало. Для упрощения расчётов затенения по Фонгу нормали к вершинам включают в геометрическую информацию модели.

Помимо отражения затенение граней формируется тенями, падающими на них от других граней. Учёт этого вида зате-нения производится методами, аналогичными методам удале-ния невидимых граней и рассматривается ниже.

199