Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Затенение по Гуро (1971) улучшило внешний вид изогнутых объектов.
Интерполяция затенения Фонга , более реалистичная техника затенения, разработанная Буй Туонг Фонгом в 1973 году.

Затенение относится к изображению восприятия глубины в трехмерных моделях (в области трехмерной компьютерной графики ) или иллюстрацияхвизуальном искусстве ) путем изменения уровня темноты . [1] Затенение пытается приблизить локальное поведение света на поверхности объекта, и его не следует путать с методами добавления теней, такими как отображение теней или теневые объемы , которые подпадают под глобальное поведение света.

На рисунке [ править ]

Затенение традиционно используется в рисовании для изображения диапазона темноты путем нанесения более плотного материала или более темного оттенка для более темных областей и менее плотного или более светлого оттенка для более светлых областей. Световые узоры, например объекты со светлыми и затемненными участками, помогают создать иллюзию глубины на бумаге. [2] [3]

Существуют различные методы затенения, в том числе перекрестная штриховка , когда перпендикулярные линии различной степени близости рисуются в сетке для затенения области. Чем ближе линии сходятся, тем темнее выглядит область. Точно так же, чем дальше друг от друга линии, тем светлее будет область.

Порошок затенение является черчением затенения метода. В этом стиле, топал порошок и бумажные пни используются , чтобы нарисовать картину. (Это может быть цвет.) Порошок для культивирования гладкий и не имеет блестящих частиц. На используемой бумаге должны быть мелкие зерна, чтобы порошок оставался на бумаге.

В компьютерной графике [ править ]

Затенение по Гуро , разработанное Анри Гуро в 1971 году, было одним из первых методов затенения, разработанных для трехмерной компьютерной графики .

В компьютерной графике затенение относится к процессу изменения цвета объекта / поверхности / многоугольника в 3D-сцене на основе таких вещей, как (но не ограничиваясь) угол поверхности к источникам света, ее расстояние от источников света, ее угол относительно свойства камеры и материала (например, функция двунаправленного распределения коэффициента отражения ) для создания фотореалистичного эффекта.

Затенение выполняется в процессе рендеринга программой, называемой шейдером .

Угол поверхности к источнику света [ править ]

Затенение изменяет цвета лиц в 3D-модели в зависимости от угла наклона поверхности к источнику света или источникам света.

На первом изображении ниже изображены грани коробки, но все они одного цвета. Здесь также отрисованы краевые линии, что упрощает просмотр изображения.

Второе изображение - это та же модель, но без краевых линий. Трудно сказать, где заканчивается одна грань коробки и начинается другая.

На третьем изображении включено затенение, что делает изображение более реалистичным и упрощает определение лица.

Типы освещения [ править ]

Эффекты затенения от прожектора с использованием трассировщика лучей

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

Окружающее освещение [ править ]

Источник окружающего света представляет собой всенаправленный источник света фиксированной интенсивности и фиксированного цвета, который одинаково воздействует на все объекты в сцене (вездесущий). Во время рендеринга все объекты в сцене становятся ярче с заданной интенсивностью и цветом. Этот тип источника света в основном используется для обеспечения общей картины различных объектов в ней. Это самый простой для реализации тип освещения, который моделирует, как свет может многократно рассеиваться или отражаться , тем самым создавая однородный эффект.

Окружающее освещение можно комбинировать с окружающим окклюзией, чтобы показать, насколько открыта каждая точка сцены, влияя на количество окружающего света, которое она может отражать. Это создает рассеянное, ненаправленное освещение по всей сцене, не отбрасывая четких теней, но с затемненными закрытыми и защищенными областями. Результат обычно визуально похож на пасмурный день.

Точечное освещение [ править ]

Свет исходит из одной точки и распространяется во всех направлениях.

В центре внимания [ править ]

Моделирует прожектор : свет исходит из одной точки и распространяется конусом наружу .

Освещение области [ править ]

Свет исходит из небольшой области на одной плоскости . (Более реалистичная модель, чем точечный источник света.)

Направленное освещение [ править ]

Направленный источник света одинаково освещает все объекты с заданного направления , как световой луч бесконечного размера и на бесконечном расстоянии от сцены; есть затенение, но не может быть никакого спада расстояния. Это похоже на солнце .

Падение расстояния [ править ]

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

На левом изображении не используется уменьшение расстояния. Обратите внимание, что цвета на лицевых сторонах двух ящиков абсолютно одинаковы. Может показаться, что есть небольшая разница в местах, где две грани пересекаются напрямую, но это оптическая иллюзия, вызванная вертикальным краем внизу, где встречаются две грани.

Правое изображение действительно использует спад расстояния. Обратите внимание на то, что передняя сторона коробки доводчика ярче, чем передняя сторона задней коробки. Кроме того, по мере удаления пол из светлого становится темным.

Расчет [ править ]

Спад расстояния можно рассчитать несколькими способами:

  • Степень расстояния - для данной точки на расстоянии x от источника света интенсивность получаемого света пропорциональна 1 / x n .
    • Нет ( n = 0 ) - интенсивность получаемого света одинакова независимо от расстояния между точкой и источником света.
    • Линейный ( n = 1 ) - для данной точки на расстоянии x от источника света интенсивность получаемого света пропорциональна 1 / x .
    • Квадратичный ( n = 2 ) - вот как интенсивность света уменьшается в реальности, если свет имеет свободный путь (то есть в воздухе нет тумана или каких-либо других предметов, которые могут поглощать или рассеивать свет). Для данной точки на расстоянии x от источника света интенсивность получаемого света пропорциональна 1 / x 2 .
  • Также можно использовать любое количество других математических функций .

Техники затенения [ править ]

Во время затенения для расчета освещения часто требуется нормаль к поверхности . Нормали можно предварительно вычислить и сохранить для каждой вершины модели.

Плоское затенение [ править ]

Плоское затенение текстурированного кубоида

Здесь освещение оценивается только один раз для каждого многоугольника (обычно для первой вершины многоугольника, но иногда и для центроида для треугольных сеток) на основе нормали к поверхности многоугольника и в предположении, что все многоугольники плоские. Вычисленный цвет используется для всего многоугольника, благодаря чему углы выглядят резкими. Это обычно используется, когда более сложные методы затенения слишком дороги в вычислительном отношении. Зеркальныйблики плохо отображаются с помощью плоского затенения: если в репрезентативной вершине есть большая зеркальная составляющая, эта яркость отображается равномерно по всей поверхности. Если зеркальный блик не попадает в репрезентативную точку, он полностью пропускается. Следовательно, компонент зеркального отражения обычно не включается в вычисление плоского затенения.

Плавное затенение [ править ]

В отличие от плоского затенения, когда цвета меняются прерывисто на границах многоугольника, при плавном затенении цвет меняется от пикселя к пикселю, что приводит к плавному переходу цвета между двумя соседними многоугольниками. Обычно значения сначала вычисляются в вершинах, а для вычисления значений пикселей между вершинами многоугольников используется билинейная интерполяция . Типы плавного затенения включают затенение Гуро [4] и затенение Фонга . [5]

Затенение по Гуро [ править ]
  1. Определите нормаль в каждой вершине многоугольника.
  2. Примените модель освещения к каждой вершине, чтобы вычислить интенсивность света от нормали вершины.
  3. Интерполируйте интенсивности вершин с помощью билинейной интерполяции по полигону поверхности.

Проблемы:

  • Из-за того, что освещение вычисляется только в вершинах, неточности (особенно зеркальных бликов на больших треугольниках) могут стать слишком очевидными.
  • Тавровые соединения с прилегающими полигонами иногда могут приводить к визуальным аномалиям. В общем, следует избегать Т-образных переходов.
Затенение Фонга [ править ]

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

  1. Вычислите нормальное число N для каждой вершины многоугольника.
  2. Используя билинейную интерполяцию, вычислите нормаль N i для каждого пикселя. (Норма должна быть каждый раз перенормирована.)
  3. Примените модель освещения к каждому пикселю, чтобы вычислить интенсивность света от N i .

Отложенное затенение [ править ]

Отложенное затенение - это метод затенения, с помощью которого вычисление затенения откладывается на более поздний этап путем рендеринга за два прохода, потенциально повышая производительность, не отбрасывая дорогостоящие затененные пиксели. Первый проход только захватывает параметры поверхности (такие как глубина, нормали и параметры материала), второй выполняет фактическое затенение и вычисляет окончательные цвета. [6] [7] [8] : 884

Другие подходы [ править ]

Оба Гуро и Фонга затенения могут быть реализованы с помощью билинейной интерполяции . Бишоп и Веймер [9] предложили использовать разложение в ряд Тейлора полученного выражения в результате применения модели освещения и билинейной интерполяции нормалей. Следовательно, использовалась полиномиальная интерполяция второй степени . Этот тип биквадратной интерполяции был дополнительно разработан Баррерой и др. [10], где один полином второго порядка использовался для интерполяции рассеянного света модели отражения Фонга, а другой полином второго порядка использовался для зеркального света.

Сферическая линейная интерполяция ( Slerp ) использовалась Куиджем и Блейком [11] для вычисления как нормали к многоугольнику, так и вектора в направлении к источнику света. Похожий подход был предложен Хастом [12], который использует кватернионную интерполяцию нормалей с тем преимуществом, что нормаль всегда будет иметь единичную длину и избежать вычислительной тяжелой нормализации.

Плоское или плавное затенение [ править ]

Компьютерное зрение [ править ]

Реконструкция " Форма по штриховке "

В компьютерном зрении некоторые методы трехмерной реконструкции основаны на затенении или изменении формы на основе затенения . На основе затенения изображения трехмерная модель может быть восстановлена ​​из одной фотографии. [13]

См. Также [ править ]

  • Шейдер
  • Список распространенных алгоритмов затенения
  • Список художественных техник
  • Полоски зебры для визуализации кривизны
  • Ламбертовский коэффициент отражения

Ссылки [ править ]

  1. ^ «Графика: Затенение» . hexianghu.com . Проверено 10 сентября 2019 .
  2. ^ «Техника рисования» . Рисунок с уверенностью. Архивировано из оригинального 24 ноября 2012 года . Проверено 19 сентября 2012 года .
  3. ^ «Учебник по затенению, Как затенять в рисовании» . Dueysdrawings.com. 2007-06-21 . Проверено 11 февраля 2012 .
  4. ^ Гуро, Анри (1971). «Непрерывное затемнение криволинейных поверхностей». Транзакции IEEE на компьютерах . С-20 (6): 623–629. DOI : 10.1109 / TC.1971.223313 .
  5. ^ Б.Т. Фонг, Освещение для компьютерных изображений , Сообщения ACM 18 (1975), нет. 6, 311–317. ( PDF )
  6. ^ «Прямая визуализация против отложенной визуализации» .
  7. ^ «LearnOpenGL - отложенное затенение» .
  8. ^ Akenine-Меллер, Томас; Хейнс, Эрик; Хоффман, Нати (2018). Рендеринг в реальном времени (Четвертое изд.). ISBN 978-1-1386-2700-0.
  9. ^ Гэри Бишоп и Дэвид М. Веймер. 1986. Быстрое затенение Фонга. SIGGRAPH Comput. График . 20, 4 (август 1986), 103–106.
  10. ^ Т. Баррера, А. Хаст, Э. Бенгтссон. Программное обеспечение быстрого затенения, близкого к качеству Фонга . WSCG'06 , стр. 109–116. 2006 г.
  11. ^ Kuijk, AAM и EH Blake, Более быстрое затенение Фонга с помощью угловой интерполяции . Форум компьютерной графики 8 (4): 315–324. 1989 ( PDF )
  12. ^ А. Хаст. Затенение кватернионной интерполяцией . WSCG'05 . С. 53–56. 2005 г.
  13. ^ Хорн, Бертольд К.П. « Форма из затенения: метод получения формы гладкого непрозрачного объекта с одного взгляда ». (1970). ( PDF )

Дальнейшее чтение [ править ]

  • Введение в затенение.