Затенение Гуро

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

Затенение Гуро, названного в честь Анри Гуро - метод интерполяции, используемый в компьютерной графике для создания непрерывного затенения поверхностей, представленных полигональными сетками. На практике затенение по Гуро чаще всего используется для достижения непрерывного освещения на треугольных сетках путем вычисления освещения в углах каждого треугольника и линейной интерполяции результирующих цветов для каждого пикселя. покрыто треугольником. Гуро впервые опубликовал эту технику в 1971 году.

Содержание
  • 1 Описание
  • 2 Сравнение с другими методами затенения
  • 3 Затенение Гуро использует линейную интерполяцию
  • 4 полосы Маха
  • 5 См. Также
  • 6 Ссылки
Описание

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

Сравнение с другими методами затенения
Сравнение плоского затенения и затенения Гуро.

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

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

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

Затенение Гуро использует линейную интерполяцию
Сравнение затенения Гуро (линейная интерполяция) и затенения не-Гуро (интерполяция с правильной перспективой)

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

Полосы Маха

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

См. Также
Ссылки
  1. ^ Гуро, Анри (1971). Компьютерное отображение криволинейных поверхностей, докторская диссертация (Диссертация). Университет Юты.
  2. ^Гуро, Анри (1971). «Непрерывное затенение криволинейных поверхностей» (PDF). Транзакции IEEE на компьютерах. C-20 (6): 623–629. doi : 10.1109 / T-C.1971.223313.
  3. ^Гуро, Анри (1998). «Непрерывное затемнение криволинейных поверхностей». В Розали Вулф (ред.). Семенная графика: новаторские усилия, сформировавшие сферу деятельности. ACM Press. ISBN 1-58113-052-X.
Последняя правка сделана 2021-05-22 03:04:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте