stringtranslate.com

затенение по Гуро

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

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

Описание

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

Сравнение с другими техниками штриховки

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

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

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

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

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

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

полосы Маха

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

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

Ссылки

  1. ^ ab Gouraud, Henri (1971). Компьютерное отображение криволинейных поверхностей, докторская диссертация (диссертация). Университет Юты.
  2. ^ Гуро, Анри (1971). «Непрерывное затенение криволинейных поверхностей» (PDF) . IEEE Transactions on Computers . C-20 (6): 623–629. doi :10.1109/TC.1971.223313. S2CID  123827991.
  3. ^ Гуро, Анри (1998). «Непрерывное затенение криволинейных поверхностей». В Rosalee Wolfe (ред.). Семенная графика: пионерские усилия, которые сформировали область . ACM Press. ISBN 1-58113-052-X.
  4. ^ Блинн, Джеймс Ф. (июль 1992 г.). «Гиперболическая интерполяция». IEEE Computer Graphics and Applications . 12 (4): 89-94. doi :10.1109/MCG.1992.10028. S2CID  207973430.