Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

СОВРЕМЕННЫЕ АЛГОРИТМЫ ГЕНЕРАЦИИ ТЕНИ

Короткова Е.В. 1 Белов Ю.С. 1
1 Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
В компьютерной графике тени имеют большое значение, так как именно они показывают относительное расположение объектов в трехмерном пространстве: например, без них сложно определить, на сколько высоко находится некий объект в виртуальном пространстве или какова его истинная геометрическая форма. В настоящее время все современные алгоритмы генерации теней основаны на классическом алгоритме теневых карт (Standard shadow maps, SSMs) и разрабатываются для уменьшения артефакта алиасинга (ступенчатости) и улучшения общего качества тени. В данной статье будут рассмотрены некоторые современные и популярные алгоритмы генерации тени, уменьшающие артефакт алиасинга несколькими способами: за счет геометрического искривления пространства, за счет разбиения пространства на несколько частей и за счет дополнительной фильтрации прямо на карте теней.
тени в компьютерной графике
алгоритмы генерации тени
алгоритм теневых карт
алиасинг
perspective shadow maps
logarithmic perspective shadow maps
cascaded shadow maps
variance shadow maps
percentage-closer filtering.
1. Боресков А.В. Variance Shadow Maps (VSM). URL: http://steps3d.narod.ru/tutorials/vsm-tutorial.html (дата обращения 23.09.2017).
2. Короткова Е.В., Белов Ю.С. АЛГОРИТМ ТЕНЕВЫХ КАРТ // Электронный журнал: наука, техника и образование. 2016. №3 (7). С. 18-23. URL: http://nto-journal.ru/uploads/articles/3876c35c121cfe7452b68ae5dd15e79e.pdf (дата обращения 05.10.2017).
3. Короткова Е.В., Белов Ю.С. Обзор алгоритмов генерации тени. Всероссийская Научно-Техническая Конференция. Наукоемкие технологии в приборо - и машиностроении и развитие инновационной деятельности в вузе, 2016.
4. Короткова Е.В., Белов Ю.С. УЛУЧШЕНИЯ СТАНДАРТНОГО АЛГОРИТМА КАРТ ТЕНЕЙ ДЛЯ УСТРАНЕНИЯ АРТЕФАКТА SHADOW ACNE // Электронный журнал: наука, техника и образование. 2017. №СВ2 (13). С. 125-130. URL: http://nto-journal.ru/uploads/articles/3dc447ff76ecefacbd74869c94a1b444.pdf (дата обращения 05.10.2017).
5. Dimitrov R. Cascaded Shadow Maps. URL: https://developer.download.nvidia.com/SDK/10.5/opengl/src/cascaded_shadow_maps/doc/cascaded_shadow_maps.pdf (дата обращения 24.09.2017).
6. Lloyd D. B., Govindaraju N. K., Quammen C. Logarithmic perspective shadow maps. ACM Transactions on Graphics, 2008.
7. Molnar S. Practical logarithmic rasterization for low error shadow maps. URL: http://www.graphicshardware.org/previous/www_2007/presentations/lloyd-lograsterization-gh07.pdf (дата обращения 24.09.2017).
8. Stamminger M., Drettakis G., Dachsbacher C. Perspective Shadow Maps. Game Programming Gems 4, Charles River Media, 2004, pp. 399–410.

Введение

Алгоритм SSMs обрел высокую популярность благодаря своей простоте и производительности, однако, его основной недостаток – высокая подверженность алиасингу [2]. Современные алгоритмы генерации теней стремятся сохранить простоту и быстродействие SSMs, но при этом уменьшить ошибку алиасинга.

Перспективные карты теней (Perspective Shadow Maps, PSM)

Основная идея этого алгоритма состоит в том, чтобы сгенерировать карту теней не в обычном мировом пространстве, а в пост-проективном пространстве [8], - которое получается после проецирования сцены на камеру.

Рис. 1. Мировое пространство (слева) и пост-проективное (справа) [8].

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

Рис. 2. Обычная карта теней в SSMs (слева) и PSM (справа) [7].

Существенным недостатком PSM является то, что качество тени полностью зависит от взаимного расположения источника света и наблюдателя: если за наблюдателем находятся объекты, отбрасывающие тени, – в отрисованной сцене их не будет; также в ходе реализации этого алгоритма авторы не учли такие проблемы отрисовки теней как Shadow acne и артефакт Питера Пена [4]; кроме того, этот алгоритм уменьшает ошибки алиасинга по координате х, но увеличивает их по координате у.

Логарифмические перспективные карты теней (Logarithmic Perspective Shadow Maps, LogPSMs)

LogPSMs – это алгоритм искривления пространства, основанный на технике PSM, для генерации теней высокого качества и с низкой ошибкой алиасинга.

Практически полное устранение алиасинга достигается за счет использования перспективной параметризации вместе с логарифмической трансформацией: вначале алгоритм производит перспективное проецирование сцены, потом для устранения алиасинга в направлении координаты у использует логарифмическую трансформацию, после чего совершает перераспределение разрешения карты теней [6].

Рис. 3. Слева-направо: обычная карта теней, карта после перспективного проецирования, карта после логарифмической трансформации, карта после перераспределения разрешения [7].

Алгоритм одинаково хорошо работает как с точечными, так и с направленными источника света и не требует высокого разрешения карты теней. Основной недостаток алгоритма состоит в том, что логарифмическая растеризация не поддерживается современным аппаратным обеспечением.

Каскадные карты теней (Cascaded Shadow Maps, CSMs)

CSMs – это алгоритм разбиения пространства. Основная идея CSMs состоит в следующем: хранение информации о всей сцене в одной карте теней требует ее высокого разрешения, поэтому целесообразно использовать для одной сцены несколько карт теней с разными разрешениями. Алгоритм подразделяет пирамиду просмотра на несколько подпирамид (минимум – две) и для каждой создает свою карту теней: для объектов, находящихся ближе всего к наблюдателю создается карта теней более высокого разрешения, а для объектов, находящихся далеко от наблюдателя – низкого разрешения [5]. Во время отрисовки сцены для каждого объекта выбирается соответствующая карта теней. Недостаток – дополнительная нагрузка на аппаратное обеспечение.

Рис. 4. Пирамида просмотра разделенная на две части [5].

Разностные карты теней (Variance Shadow Maps, VSMs)

VSMs – это алгоритм, исправляющий ошибку алиасинга путем дополнительной фильтрации. VSMs основан на алгоритме PCF (Percentage-closer filtering), но улучшает его за счет выполнения фильтрации непосредственно на самой карте теней: пишется шейдер для формирования специальной многоканальной карты теней, в которой сохраняется значения глубины пикселя и квадрата глубины пикселя, далее происходит фильтрация карты (например, размытие по Гауссу), находится среднее значение глубины и среднеквадратическое отклонение; далее проводиться стандартный тест глубины, и, если в результате оказывается, что точка находиться в тени, ей присваивается значение выведенное из неравенства Чебышева (а не значение единицы как в SSMs) [1]. Недостатки – обязательное наличие многоканальной текстуры для хранения данных и ошибки приближения при возведении значения глубины в квадрат.

Вывод

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


Библиографическая ссылка

Короткова Е.В., Белов Ю.С. СОВРЕМЕННЫЕ АЛГОРИТМЫ ГЕНЕРАЦИИ ТЕНИ // Международный студенческий научный вестник. – 2017. – № 5. ;
URL: https://eduherald.ru/ru/article/view?id=17744 (дата обращения: 16.04.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674