Каждая многоугольная область мозаичной криволинейной поверхности обрабатывается методом Фонга с использованием следующих процедур.
1. Определить средний единичный вектор нормали в каждой вершине многоугольника.
2. Используя нормали вершин, с помощью линейной интерполяции найти нормали во всех точках спроектированной области многоугольника.
3. Применить модель освещенности к точкам вдоль строк развертки и рассчитать интенсивности пикселей с использованием интерполированных векторов нормали.
БЫСТРАЯ ВИЗУАЛИЗАЦИЯ ПОВЕРХНОСТИ ПО ФОНГУ
Время обработки в методе Фонга можно сократить, аппроксимировав некоторые расчеты в модели освещенности. В быстрой визуализации поверхностей по Фонгу интенсивности рассчитываются с использованием усеченного разложения в ряд Тейлора, а грани сетки имеют форму треугольных участков поверхности.
МЕТОДЫ ПОСТРОЕНИЯ ХОДА ЛУЧЕЙ
В разделе 8.20 было введено понятие расчета луча (ray casting), которое используется в конструктивной блочной геометрии для обнаружения точек пересечения с поверхностью вдоль луча, идущего от положения пикселя. Кроме того, методы расчета луча рассматривались в разделе 9.10 как средство определения видимых поверхностей на сцене. Построение хода луча (ray tracing) - это обобщение стандартной процедуры расчета луча. Вместо того чтобы просто определить поверхности, видимые для каждого положения пикселя, луч с началом в пикселе прокладывается по сцене, как показано на рис. ??, собирая различные вклады в интенсивность. Этот метод является простой и мощной методикой визуализации, позволяющей получать глобальные эффекты
Рис. 10.53. Схема построения хода луча, демонстрирующая эффекты глобального отражения и прозрачности (перепечатано с разрешения Evans & Sutherland)
отражения и пропускания. Кроме того, стандартный алгоритм построения хода лучей выявляет видимые поверхности, определяет затененные области, предусматривает визуализацию эффектов прозрачности, генерирует перспективные проекции и собирает вклады в эффекты освещенности от различных источников света. В настоящее время разработано множество расширений стандартного алгоритма, позволяющих получать фотореалистичные изображения. Изображения сцен, полученные построением хода лучей, могут быть очень реалистичными, особенно если сцена содержит блестящие объекты, но алгоритмы построения хода лучей сопряжены с длительными расчетами. Пример эффектов глобального отражения и прозрачности, которые можно получить с помощью построения хода лучей, демонстрируется на рис. 10.53.
Рис. 10.54. Система координат, в которой выполняется построение хода лучей СТАНДАРТНЫЙ АЛГОРИТМ ПОСТРОЕНИЯ ХОДА ЛУЧЕЙ
Система координат для алгоритма построения хода лучей обычно задается так, как показано на рис. 10.54, со спроектированной опорной точкой, находящейся на оси г, и положениями пикселей на плоскости ху. Затем в этой системе координат описывается геометрия и генерируются лучи, проходящие через пиксели. Если сцена представляет собой перспективную проекцию, каждый луч начинается в опорной точке проекции (центр проекции), проходит через центр пикселя и продолжает движение по сцене, формируя различные ветки луча вдоль путей отражения и пропускания. Затем вклады в интенсивность пикселя на пересекаемых поверхностях суммируются. Данный алгоритм визуализации основан на принципах геометрической оптики. Лучи света от поверхностей на сцене излучаются во всех направлениях, и некоторые из них проходят через положение пикселя на плоскости проекции. Поскольку излучаемых лучей бесконечно много, вклады в интенсивность определенного пикселя определяются путем отслеживания (построения хода) луча света обратно от положения пикселя к сцене. В стандартном алгоритме построения хода лучей для каждого пикселя генерируется один обращенный луч света, что примерно эквивалентно рассмотрению сцены через камеру-обскуру.