stringtranslate.com

Растушевка по Гуро

Треугольная сетка, закрашенная Гуро, с использованием модели отражения Фонга

Затенение Гуро ( / ɡ ˈ r / goo- ROH ), названное в честь Анри Гуро , — метод интерполяции , используемый в компьютерной графике для создания непрерывного затенения поверхностей, представленных полигональными сетками . На практике затенение Гуро чаще всего используется для достижения непрерывного освещения на треугольных сетках путем расчета освещения в углах каждого треугольника и линейной интерполяции полученных цветов для каждого пикселя , покрытого треугольником. Гуро впервые опубликовал эту технику в 1971 году. [1] [2] [3] Однако расширенная аппаратная поддержка превосходных моделей затенения привела к тому, что затенение Гуро в значительной степени устарело в современном рендеринге.

Описание

Затенение Гуро работает следующим образом: оценка нормали к поверхности каждой вершины в многоугольной 3D-модели либо указывается для каждой вершины, либо находится путем усреднения нормалей к поверхности многоугольников, которые встречаются в каждой вершине. Используя эти оценки, затем выполняются вычисления освещения на основе модели отражения, например модели отражения Фонга , для получения интенсивности цвета в вершинах. Для каждого пикселя экрана , покрытого полигональной сеткой, интенсивность цвета затем может быть интерполирована на основе значений цвета, рассчитанных в вершинах.

Сравнение с другими техниками затенения

Сравнение плоской штриховки и штриховки по Гуро

Затенение Гуро считается более совершенным, чем плоское затенение , и требует значительно меньше обработки, чем затенение Фонга , но обычно приводит к граненому виду.

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

Проблему легко обнаружить на рендеринге, на котором должна присутствовать зеркальная подсветка, плавно перемещающаяся по поверхности модели при ее вращении. Вместо этого затенение по Гуро будет создавать блики, которые постоянно появляются и исчезают в соседних частях модели, достигая пика интенсивности, когда предполагаемое зеркальное освещение выравнивается с вершиной модели. Хотя эту проблему можно решить, увеличив плотность вершин в объекте, в какой-то момент уменьшающаяся отдача от этого подхода будет способствовать переключению на более детальную модель затенения.

Линейная и гиперболическая интерполяция

В оригинальной статье Гуро описывалась линейная интерполяция цвета. [1] В 1992 году Блинн опубликовал эффективный алгоритм гиперболической интерполяции [4] , который используется в графических процессорах как перспективно-корректная альтернатива линейной интерполяции. И линейный, и гиперболический варианты интерполяции цветов от вершин к пикселям обычно называют «затенением Гуро».

Полосы Маха

Любая линейная интерполяция интенсивности вызывает разрывы производных, которые вызывают полосы Маха , общий визуальный артефакт затенения Гуро.

Смотрите также

Рекомендации

  1. ^ Аб Гуро, Анри (1971). Компьютерное отображение криволинейных поверхностей, Докторская диссертация (Диссертация). Университет Юты.
  2. ^ Гуро, Анри (1971). «Непрерывное затенение изогнутых поверхностей» (PDF) . Транзакции IEEE на компьютерах . С-20 (6): 623–629. дои : 10.1109/TC.1971.223313. S2CID  123827991.
  3. ^ Гуро, Анри (1998). «Сплошное затенение изогнутых поверхностей». В Розали Вулф (ред.). Оригинальная графика: новаторские усилия, которые сформировали эту область . АКМ Пресс. ISBN 1-58113-052-Х.
  4. ^ Блинн, Джеймс Ф. (июль 1992 г.). «Гиперболическая интерполяция». IEEE Компьютерная графика и приложения . 12 (4): 89-94. дои : 10.1109/MCG.1992.10028. S2CID  207973430.