2/2011 вестник 2/20L]_МГСУ
НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ МЕТОДОВ ПОСТРОЕНИЯ ТЕНЕЙ В КОМПЬЮТЕРНОЙ ГРАФИКЕ
AREAS OFIMPROVEMENTOF METHODSFORGENERATING SHADOWSINCOMPUTERGRAPHICS
И.М. Лебедева I.M. Lebedeva
мгсу
В статье дается краткая характеристика методов построения мягких теней на основе известных алгоритмов расчета освещенности, таких как: метод теневых карт, метод теневых объемов и алгоритм обратной рекурсивной трассировки луча.
The article gives a brief description of methods for generating soft shadows based on the known algorithms for lighting calculations, such as: the method of shadow maps, shadow volumes method and algorithm of the backwardrecursive ray tracing.
В жизни мы видим объекты, потому что они отражают падающий на них свет. В компьютерной графике также, каждая видимая поверхность, чтобы быть визуализированной, должна получить какое-то количество света. Правильно освещение поможет выделить главные элементы сцены, подчеркнуть настроение, добавить эмоциональную окраску.
Реалистичность изображению добавляют тени. Они помогают восприятию формы и размеров объектов сцены, их взаимного расположения, удаленности от наблюдателя и друг от друга.
В компьютерной графике проблема теней решается различными способами. Если скорость прорисовки важнее геометрической точности тени применяют метод теневых карт (ShadowMaps) или проективные тени (planeprojections). Более точные тени позволяет построить метод теневых объемов (ShadowVolumes). Самую реалистичную картину освещенности можно рассчитать с помощью алгоритма лучевой трассировки (raytracing). Помимо геометрической точности теней алгоритм трассировки лучей позволяет получать тени от полупрозрачных объектов, окрашивать отраженный или преломленный свет.
Наблюдения показывают, что тень неоднородна по своей интенсивности. Она состоит из полной тени (umbra) и переходной полосы - полутени (penumbra). Тени с резкими границами встречаются редко и частовыглядят неправдоподобно, будто они нарисованы и существуют отдельно от объекта, их отбрасывающего. Мягкие тени способствуют улучшению восприятия виртуальной сцены, увеличивают ее реалистичность. Характер и степень мягкости тени дают представление о времени года и суток, погоде, наличии облачности. Если речь идет об интерьере, то тени отражают способ
освещения, говорят о мощности и форме осветительных приборов, их количестве и положении.Рассеянное освещение также порождает мягкие тени.
Одним из направлений совершенствования методов расчета теней является попытка смягчения границы между полной тенью и светом. Есть методики для размытия границы на фиксированную величину. Имеются также методы вычисления мягких теней. Если резкие тени в компьютерной графике рассчитываются от точечных источников света, то мягкие - от протяженных, имеющих определенную площадь.
Рис. 1 Тени: слева - резкая, справа - мягкая
Существуют различные методики формирования мягких теней на основе всех имеющихся алгоритмов расчета освещенности. Далее приведены способы построения теней с размытыми границами на основе алгоритмов теневых карт, теневых объемов и трассировки лучей.
Построение мягких теней на основе алгоритма теневых карт
На методе теневых карт основан алгоритм Б1^1е8атр1е8оШЬадо'№8. Этот метод был описан в 2002 году. Область полутени формируется с помощью дополнительных вычислений для каждой точки в момент определения ее освещенности.
Как известно, в соответствие с алгоритмом ShadowMaps, формируется теневая карта, которая представляет собой матрицу видимых со стороны источника освещения точек с расстояниями до них. Для того, чтобы определить, освещена ли точка сцены или затенена, для нее вычисляют расстояние до источника света и сравнивают полученное значение со значением из теневой карты для соответствующей позиции. Если расстояние от точки до источника света больше, чем значение из теневой карты, значит, точка заслонена другим объектом, то естьзатенена. Если расстояния равны - точка освещена.
На следующем этапе проводится проверка на принадлежность точки к области полутени. Для освещенной точки производят поиск точки затененной в пределах заданного радиуса. Если таковая находится, значит, точка лежит в области внешней полутени, и ее освещенность уменьшают пропорционально ее видимости.В противном случае ее продолжают считать освещенной.
Для затененной же точки ищут точку освещенную в пределах того же радиуса. И, если находят, то точке добавляют освещенности пропорционально ее видимости. Считается, что точка лежит в области внутренней полутени.Если же ни одной освещенной точки рядом не находится, то данная точка считается полностью затененной.Таким образом, резкая граница тени размывается и во внешнюю сторону, и во внутреннюю, образуя полутень.
Полученная полутень не является реалистичной, т.к. она одинаково размыта на всем протяжении, в то время как реальная тень имеет постепенно увеличивающуюся размытость по мере удаления от объекта.
2/2011
ВЕСТНИК _МГСУ
Тдо№ч*с.'И ИСТЧЭчнкп секта
внутренняя погутень
Вкециял полутень
Тень, построении (врте.
Рис. 2 Построение мягкой тени по теневой карте
Недостатки базового алгоритма теневых карт сказываются и при построении мягких теней. Это алиасинг (ошибочное затенение), протечки света (темные пятна на стыках) и темные полосы на границах смежных плоскостей.
Рис. 3Алиасинг при построении мягких теней на основе теневых карт
На рисунке хорошо видно проявление алиасинга в виде зубчатой границы тени. Это возможно в случае, когда одной точке теневой карты поставлено в соответствие несколько пикселей изображения. Темные пятна и полосы на стыках поверхностей говорят о том, что в процессе расчета освещенности были ошибочно использованы элементы теневой карты, соответствующие другим поверхностям. И, наконец, на плоскостях, положение которых приближается к параллельности направлению освещения, проявляется алиасинг в виде несуществующих теневых полос. Построение мягких теней на основе алгоритма теневых объемов Алгоритм теневых объемов (БЬаёо'№Уо1ите8) был впервые предложен Франклином Кроу в 1977 году для генерации теней в трехмерном пространстве
По данному алгоритму точка считается затененной, если она лежит внутри одного из теневых объемов. И, наоборот, точка освещена, если она находится вне любого из теневых объемов.
Методы, основанные на алгоритме теневых объемов, например, алгоритм PenumbraWedges (полутеневых клиньев), позволяют получить более точные мягкие тени.
Если теневой объем вытягивается от точечного источника света через силуэтные ребра объекта, то полутеневые клинья могут быть получены только от протяженных источников света.К силуэтному ребру объекта проводят плоскости, касательные к противоположным сторонам источника освещения. Эти грани образуют полутеневой клин. Все, что попало в область пенумберального клина, лежит в области полутени. Чтобы вычислить освещенность в любой из точек из области полутени, необходимо определить, какую часть источника света видно из этой точки.
В реальном времени очень трудно построить плоскость, проходящую через ребро объекта и касательную к объемному источнику света произвольной формы. Это потребует дополнительных компьютерных мощностей. Для построения грани полутеневого клина можно воспользоваться следующим приближением. Каждой вершине силуэта приводятся в соответствие две противоположные точки на источнике света. Эти точки находятся в результате пересечения границы источника линией, параллельной некоторому вектору, представляющему собой интерполированную нормаль в вершине силуэта. Через одну их этих точек и соответствующую вершину силуэта вытягивается грань полутеневого клина. А через другую - грань теневого объема.
Таким образом, метод PenumbraWedges позволяет получить границу полной тени, определить область полутени и рассчитать для нее освещенность.
К недостаткам метода можно отнести трудоемкость построения полутеневого клина для затеняющих объектов со сложной поверхностью.
Построение мягких теней на основе алгоритма обратной рекурсивной лучевой трассировки(ОРЛТ).
Алгоритм лучевой трассировки дает возможность получить наиболее приближенную к реальности картину освещенности. Тени имеют геометрически правильные границы. Полупрозрачные объекты окрашивают в свой цвет взаимодействующий с ними свет.
С помощью алгоритма обратной рекурсивной лучевой трассировки (ОРЛТ) можно рассчитать освещение только от точечных источников света и получить соответственно четкие, резкие тени. Тем не менее, существуют методы получения мягких теней на основе лучевой трассировки. Например, можно получить мягкие тени, как от протяженных источников, если вместо одного испускать к источнику света несколько лучей с определенным угловым шагом.
НАрНА* ■ ТОЛ*
• Г 1а л VI В'ЬЫы^кг ин
Рис. 4 Построение полутеневого клина
2/2011
ВЕСТНИК _МГСУ
Рассмотрим некоторые способы построения мягких теней на основе алгоритма ОРЛТ.
Замена объемного источника множеством точечных источников
Мягкие тени можно получить, если смоделировать протяженный источник света из множества точечных, рассчитав освещенность для каждого из них с помощью алгоритма лучевой трассировки. Если количество точечных источников света будет достаточно большим, то общая освещенность сцены будет физически правильной, изображение будет реалистическим. Понятно, что каждый дополнительный источник света будет увеличивать время на прорисовку изображения.
Рис. 5 Тени от разного количества источников света с резкими тенями.
Количество источников слева направо: 1 , 6 , 11
На рисунке показано, как меняется вид тени при увеличении количества источников света. На левом кадре тени построены трассировкой луча от одного источника света, на центральном кадре- от шести, и на правом - от одиннадцати точечных источников света. Время на визуализацию было потрачено соответственно: 4, 13 и 21 секунду. Рисунки выполнены в AutoCAD .
Метод световых сеток
Метод световых сеток был разработан в 2004 году в Новосибирском государственном университете им. Пирогова (Дебелов В.А. и др.) как адаптация алгоритма обратной лучевой рекурсивной трассировки для построения мягких теней.
В соответствие с методом световых сеток все пространство сцены пронизывается трехмерной сеткой с определенным шагом. Для каждого узла сетки определена маска видимости источников света (0 или 1).
Далее в точке пересечения луча с объектом сцены (точка Р)строится интерполяционная сфера заданного радиуса.Освещенность точки Р вычисляется как усредненное значение видимости всех световых точек, попавших внутрь сферы.
Очевидно, что, если в интерполяционную сферу попали только освещенные точки (или только затененные), то точка Р будет полностью освещена (или затенена). А для точек, находящихся от границы тени на расстоянии, не более радиуса в каждую сторону,интерполяционное множество будет содержать световые точки с различной видимостью. Их усредненная освещенность обеспечит плавный переход оттени к свету.
Дополнительные вычисления, естественно, влияют на скорость визуализации. Но авторы утверждают, что при достижении определенных условий (разрешение экрана и количество источников света) скорость расчета по методу световых сеток даже превышает скорость базового алгоритма обратной рекурсивной лучевой трассировки.
Литература
1. Дебелов В.А., Новиков И.Е. Генерация мягких теней при использовании алгоритма трассировки лучей 2009 институт вычислительной математики и математической геофизики СО РАН.
2. Дебелов В.А., Васильева Л.Ф., Новиков И.Е. Развитие метода световых сеток для алгоритма лучевой трассировки: аппроксимация решения, реализация на графическом акселераторе Тр. 15-й междунар. конф. по компьютерной графике и ее приложениям Графикон 2005. Новосибирск: ИВМиМГ СО РАН. 2005. С. 355-359.
3. Трифонов Д. Мягкие тени на GPU 2008 http://www.uraldev.ru/articles/id/18
4. Variance Shadow Maps (VSM) http://steps3d.narod.ru/tutorials/vsm-tutorial.html
The literature
1. Debelov V.A., NovikovI.E. Generating soft shadows using ray tracing algorithm 2009 Institute of Computational Mathematics and Mathematical Geophysics
2. Debelov VA, Vasil'eva LF, Novikov, E. Development of the light grid algorithm for ray tracing: approximation solutions, the implementation of the graphics accelerator Proc. 15-th Intern. Conf. onComputerGraphicsandApplicationsGraphiCon 2005. Novosibirsk
3. Trifonov D. Soft Shadows on the GPU 2008 http://www.uraldev.ru/articles/id/18
4. Variance Shadow Maps (VSM) http://steps3d.narod.ru/tutorials/vsm-tutorial.html
Ключевые слова:освещенность, тени, мягкие тени, полутеневой клин, теневой объем,
теневая карта, трассировка луча, полутень.
Keywords: illumination, shadows, soft shadowspenumbral wedge, shadow volume, shadow map, ray tracing, penumbra.
e-mail автора: [email protected].
Рецензент: кандидат технических наук, доцент, ГИП ООО «МАККОМ-СТРОИ», Крутиков Юрий Александрович.