Растушевка по Гуро
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Трехмерный (3D) компьютерная графика |
---|
Основы |
Основное использование |
Связанные темы |
Затенение Гуро ( / ɡ uː ˈ r oʊ / goo- ROH ), названное в честь Анри Гуро , — метод интерполяции, используемый в компьютерной графике для создания непрерывного затенения поверхностей, представленных полигональными сетками . На практике затенение Гуро чаще всего используется для достижения непрерывного освещения на треугольных сетках путем вычисления освещения в углах каждого треугольника и линейной интерполяции полученных цветов для каждого пикселя , покрытого треугольником. Гуро впервые опубликовал эту технику в 1971 году. [ 1 ] [ 2 ] [ 3 ] Однако расширенная аппаратная поддержка превосходных моделей затенения привела к тому, что затенение Гуро в значительной степени устарело в современном рендеринге.
Описание
[ редактировать ]Затенение Гуро работает следующим образом: оценка нормали к поверхности каждой вершины в многоугольной 3D-модели либо указывается для каждой вершины, либо находится путем усреднения нормалей к поверхности многоугольников, которые встречаются в каждой вершине. вычисления освещения на основе модели отражения, например модели отражения Фонга Используя эти оценки, затем выполняются , для получения интенсивности цвета в вершинах. Затем для каждого пикселя экрана , покрытого полигональной сеткой, интенсивность цвета может быть интерполирована на основе значений цвета, рассчитанных в вершинах.
Сравнение с другими методами затенения
[ редактировать ]Затенение Гуро считается более совершенным, чем плоское затенение , и требует значительно меньше обработки, чем затенение Фонга , но обычно приводит к граненому виду.
По сравнению с штриховкой Фонга, сила и слабость штриховки Гуро заключается в ее интерполяции. Если сетка покрывает больше пикселей в пространстве экрана, чем имеет вершин, интерполяция значений цвета из выборок дорогостоящих вычислений освещения в вершинах требует меньше ресурсов процессора, чем выполнение расчета освещения для каждого пикселя, как в затенении Фонга. Однако сильно локализованные эффекты освещения (такие как зеркальные блики , например, блеск отраженного света на поверхности яблока) не будут отображаться правильно, и если блик находится в середине многоугольника, но не распространяется на его границы, вершина, она не будет видна при рендеринге по Гуро; и наоборот, если подсветка возникает в вершине многоугольника, она будет отображаться правильно в этой вершине (поскольку именно здесь применяется модель освещения), но будет неестественно распространяться по всем соседним многоугольникам с помощью метода интерполяции.
Проблему легко обнаружить на рендеринге, на котором должна присутствовать зеркальная подсветка, плавно перемещающаяся по поверхности модели при ее вращении. Вместо этого затенение по Гуро будет создавать блики, которые постоянно появляются и исчезают в соседних частях модели, достигая пика интенсивности, когда предполагаемое зеркальное освещение выравнивается с вершиной модели. Хотя эту проблему можно решить, увеличив плотность вершин в объекте, в какой-то момент уменьшающаяся отдача от этого подхода будет способствовать переключению на более детальную модель затенения.
-
Сфероподобная сетка с затенением Гуро — обратите внимание на плохое поведение зеркального блика.
-
Еще одна сфероподобная сетка, визуализированная с очень большим количеством полигонов.
Линейная и гиперболическая интерполяция
[ редактировать ]В оригинальной статье Гуро описывалась линейная цветовая интерполяция. [ 1 ] В 1992 году Блинн опубликовал эффективный алгоритм гиперболической интерполяции. [ 4 ] который используется в графических процессорах как перспективная альтернатива линейной интерполяции. И линейный, и гиперболический варианты интерполяции цветов от вершин к пикселям обычно называют «затенением Гуро».
Полосы Маха
[ редактировать ]Любая линейная интерполяция интенсивности вызывает разрывы производных, которые вызывают полосы Маха , общий визуальный артефакт затенения Гуро.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Гуро, Анри (1971). Компьютерное отображение криволинейных поверхностей, Докторская диссертация (Диссертация). Университет Юты.
- ^ Гуро, Анри (1971). «Непрерывное затенение изогнутых поверхностей» (PDF) . Транзакции IEEE на компьютерах . С-20 (6): 623–629. дои : 10.1109/TC.1971.223313 . S2CID 123827991 .
- ^ Гуро, Анри (1998). «Сплошное затенение изогнутых поверхностей». В Розали Вулф (ред.). Оригинальная графика: новаторские усилия, которые сформировали эту область . АКМ Пресс. ISBN 1-58113-052-Х .
- ^ Блинн, Джеймс Ф. (июль 1992 г.). «Гиперболическая интерполяция» . IEEE Компьютерная графика и приложения . 12 (4): 89-94. дои : 10.1109/MCG.1992.10028 . S2CID 207973430 .