Модели затенения

Июнь 23, 2010 в категории Статьи

Если бы модель освещенности можно было применить для расчетов в каждой точке поверхности, необходимость в создании моделей затенения попросту не возникла. Однако такой расчет очень расточителен в отношении вычислительных ресурсов компьютерной системы и потому неприемлем. На практике расчет освещенности выполняется не для всех точек поверхности, а лишь для некоторых из них. Задача моделей затенения (shading) состоит в том, чтобы «правильно» определить эти точки и аппроксимировать результат вычислений модели освещения в этих точках на всю поверхность с соблюдением принципа фотореалистичности.

latshading

Самая первая и самая быстрая модель затенения, разработанная в компьютерной графике – Flat shading, в настоящее время мало используется и имеет скорее историческое значение. Ее суть состоит в том, что освещенность рассчитывается только для одной точки полигона, а затем рассчитанное значение присваивается всем остальным точкам полигона. Более точно, для каждого полигона поверхности вычисляется нормаль, с помощью которой и определяется общая для одного полигона освещенность. Таким образом, цвет в пределах одного полигона неизменен и резко меняется на границах между разными полигонами, в результате этого трехмерная поверхность приобретает «граненый» вид (рис. 1).

Рис. 1

При увеличении количества полигонов, образующих поверхность, а также при большом удалении трехмерного объекта от камеры и источников света, эта модель затенения может давать вполне фотореалистичные результаты (рис. 2).

Рис. 2

Модель затенения Гуро

Ее автор Henry Gauround, модель разработана в 1971 году. В этой модели освещенность рассчитывается для каждой вершины полигона, а полученный цвет интерполируется сначала вдоль границ полигона и затем – для внутренних точек. Для расчета освещенности вершины используется нормаль, получаемая усреднением нормалей всех полигонов, для которых данная вершина является общей (нормали всех полигонов, содержащих эту вершину, складываются по правилам векторного сложения, и результат делится на сумму длин векторов нормалей полигонов, вектор вершины должен быть единичной длины) (рис. 3).

Рис. 3

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

Рис. 4

Расчетные формулы для интерполяции цвета вершин в пределах полигона вдоль направления сканирующей линии приведены на рис. 5.

Рис. 5

Основным достоинством затенения по методу Гуро является сглаженность цветовых переходов при высокой скорости вычислений. Но эта модель имеет и ряд серьезных недостатков, главным среди которых является неверное отображение подсветок, особенно если поверхность низкополигонная. Во-первых, подсветки имеют «звездообразную» форму и часто визуально проявляют полигональную структуру поверхности. Во-вторых, подсветки могут внезапно исчезать, если попадают на внутреннюю точку полигона. Наблюдать за этими явлениями можно в видовом окне 3ds Max, вращая низкополигонную сферу. Второй существенный недостаток – зависимость результата интерполяции от поворотов. Причина тому – в интерполяции цвета вдоль сканирующей линии, при повороте полигона относительно которой расчет цвета одного и того же пиксела осуществляется с использованием разных границ полигона.

Страниц: 1 2

Реклама: Светодиодные светильники из Венгрии http://www.svetilnikild.ru/.