Метод Фонга

В методе закраски, разработанном Фонгом, используется интерполяция вектора нор­мали к поверхности вдоль видимого интервала на сканирующей строке внутри много­угольника, а не интерполяция интенсивности. Интерполяция выполняется между началь­ной и конечной нормалями, которые сами тоже являются результатами интерполяции вдоль ребер многоугольника между нормалями в вершинах. Нормали в вершинах в свою очередь вычисляются так же, как в методе закраски, построенном на основе интерполя­ции интенсивности. Как и выше, интерполяцию вдоль ребер можно выполнить поэтапно, вычисляя все три компоненты вектора нормали при пе­реходе от каждой сканирующей Рис. 22.

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

Чтобы закрасить куски бикубической поверхности, для каждого пиксела, исходя из уравнений поверхности, вы­числяется нормаль к поверхности. Этот процесс тоже доста­точно дорогой. Затем с помощью любой модели за­краски определяется значение интен­сивности. Однако прежде чем применить метод закраски к плоским или би­кубическим поверхностям, необходимо иметь информацию о том, какие источники света (если они имеются) в действительности освещают точку. Поэтому мы должны рассматривать также и тени.

Тени

Алгоритмы затенения в случае точечных источников света идентичны алгоритмам уда­ления скрытых поверхно­стей! В алгоритме удаления скрытых поверхностей определя­ются поверхности, которые можно увидеть из точки зрения, а в алгоритме затенения вы­деляются поверхности, которые можно «увидеть» из источника света. По­верхности, ви­димые как из точки зрения, так и из источника света, не лежат в тени. Те же поверхности, которые видимы из точки зрения, но невидимы из источника света, находятся в тени. Эти рассуждения можно легко рас­пространить на случай нескольких источников света. От­метим, однако, что, используя такой простой подход, нельзя смоделировать тени от рас­пределенных источников света. При наличии таких источников потребуется вычислять как тени, так и полутени.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: