Каменный Брод (Луганск)
- 1 year ago
- 0
- 0
Шэйдинг в компьютерной графике — изображение для восприятия глубины в трехмерных моделях или иллюстрациях с помощью различных уровней темноты .
Шэйдинг используется при рисовании для отображения уровней темноты на бумаге путем нанесения красителя или карандаша более плотно или с более темным оттенком для темных областей и менее плотно или с более светлым оттенком для светлых областей. Существуют различные методы шэйдинга, включая штриховку, где перпендикулярные линии разной близости рисуются в виде сетки для затенения области. Чем ближе линии, тем темнее область. Аналогично, чем дальше друг от друга линии, тем светлее область.
Световые узоры, такие как объекты, имеющие светлые и затененные области, помогают при создании иллюзии глубины на бумаге.
В компьютерной графике шэйдинг относится к процессу изменения цвета объекта / поверхности / многоугольника в трехмерной сцене на основе таких факторов, как (но не ограничиваясь этим) угол поверхности к источникам света, расстояние от источников света, угол к камере и материал (например, функция распределения двунаправленного отражения) для создания фотореалистичного эффекта. Шэйдинг выполняется в процессе рендеринга программой, называемой шейдером.
Шэйдинг изменяет цвета граней в 3D-модели в зависимости от угла поверхности источника света или источников света.
На первом изображении ниже изображены грани рамки, но все они одного цвета. Здесь также были нарисованы краевые линии, что облегчает просмотр изображения.
Второе изображение — та же модель, изображенная без линий края. Трудно сказать, где заканчивается одна грань фигуры и начинается другая.
На третьем изображении включена функция шэйдинга, что делает изображение более реалистичным и позволяет легче увидеть фигуру.
Шэйдинг также зависит от используемого освещения. Обычно при рендеринге сцены используется несколько различных методов освещения, чтобы сделать рендеринг более реалистичным. Различные типы источников света используются для получения различных эффектов.
Источник окружающего света представляет собой всенаправленный источник света с фиксированной интенсивностью и фиксированным цветом, который одинаково влияет на все объекты в сцене. При рендеринге все объекты на сцене становятся ярче с указанной интенсивностью и цветом. Этот тип источника света в основном используется, чтобы предоставить сцене базовый обзор различных объектов в ней. Это самый простой тип освещения, который можно реализовать, и он моделирует, как свет может рассеиваться или отражаться много раз, создавая равномерный эффект.
Окружающее освещение может быть объединено с окружающим окклюзией , чтобы показать, как экспонируется каждая точка сцены, влияя на количество окружающего света, который она может отражать. Это создает рассеянное ненаправленное освещение по всей сцене, не отбрасывая четких теней, но создавая затененные закрытые и защищенные области. Результат обычно визуально похож на пасмурный день.
Направленный источник света освещает все объекты одинаково с заданного направления, как свет области бесконечного размера и бесконечного расстояния от сцены.
Свет исходит из одной точки и распространяется во все стороны.
Модели Прожектора . Свет исходит из одной точки и распространяется в конусе наружу.
Свет исходит из небольшой области на одной плоскости. Более реалистичная модель, чем точечный источник света.
Свет, исходящий из небольшого объёма, закрытого пространства, освещающего объекты в этом пространстве.
Шэйдинг интерполируется на основании того, как угол этих источников света достигает объектов в сцене. Конечно, эти источники света могут быть и часто объединены в сцене. Затем средство рендеринга интерполирует, как эти источники света должны быть объединены, и создает 2-мерное изображение для соответствующего отображения на экране.
Теоретически, две параллельные поверхности освещаются одинаковым количеством от удаленного источника света, такого как солнце. Несмотря на то, что одна поверхность находится дальше, ваш глаз видит больше в том же месте, поэтому освещение выглядит одинаково.
Левое изображение не использует уменьшение расстояния. Обратите внимание, что цвета на лицевых гранях двух коробок одинаковы. Похоже, есть небольшая разница в том, где встречаются две грани, но это оптический обман, вызванный вертикальным краем ниже, где встречаются две грани.
Правильное изображение использует уменьшение расстояния. Обратите внимание, что лицевая поверхность передней коробки ярче лицевой поверхности задней коробки. Кроме того, поверхность пола становится темнее, поскольку он отдаляется.
Этот эффект уменьшения расстояния создает изображения, которые кажутся более реалистичными.
Уменьшение расстояния можно рассчитать несколькими способами:
При расчете яркости поверхности во время рендеринга модель освещения требует, чтобы мы знали нормаль поверхности. Однако 3D-модель обычно описывается полигональной сеткой, которая может хранить нормаль поверхности только в ограниченном количестве точек, обычно либо в вершинах, либо на гранях полигона, либо в обеих. Чтобы обойти эту проблему, можно использовать один из нескольких методов интерполяции.
Здесь цвет рассчитывается для одной точки на каждом многоугольнике (обычно для первой вершины в многоугольнике, но иногда используется центроид для треугольных сеток) на основе нормальной поверхности многоугольника и предположения, что все многоугольники плоские. Затем в любом месте цвет интерполируется путем окрашивания всех точек на многоугольнике так же, как и точки, для которой был рассчитан цвет, что дает каждому многоугольнику однородный цвет (аналогично, интерполяции методом ближайшего соседа ). Обычно эта техника используется для высокоскоростного рендеринга, где более продвинутые методы шэйдинга слишком дороги в вычислительном отношении. В результате плоскостного шэйдинга все вершины многоугольника окрашиваются в один цвет, что позволяет различать соседние многоугольники. Зеркальные блики плохо отображаются с плоскостным шэйдингом: если в репрезентативной вершине имеется большой зеркальный компонент, эта яркость равномерно рисуется по всей грани. Если зеркальная область не попадает в репрезентативную точку, оно полностью пропускается. Следовательно, компонент зеркального отражения обычно не включается в вычисление плоскостного шэйдинга.
В отличие от плоскостного шэйдинга, когда цвета изменяются на границах многоугольника, при плавном шэйдинге цвет меняется от пикселя к пикселю, что приводит к плавному переходу цвета между двумя соседними многоугольниками. Обычно значения сначала вычисляются в вершинах, а затем используется билинейная интерполяция для вычисления значений пикселей между вершинами многоугольников.
Типы плавного шэйдинга включают в себя:
Многоугольники, более сложные, чем треугольники, также могут иметь разные цвета, указанные для каждой вершины. В этих случаях базовая логика шэйдинга может стать более сложной.
Для улучшения этой статьи
желательно
:
|