При решении задач компьютерной графики, таких как генерация фотореалистичных изображений, одним из ключевых вопросов является вычисление освещенности каждого объекта сцены.
Существует два основных подхода динамического расчета освещенности. Первый подход основан на алгоритмах моделирования распространения (трассировки) лучей света в пространстве. Достаточно часто такие алгоритмы реализуются с помощью ЯПВУ и исполняются на ЦПУ. Второй подход использует алгоритмы расчета освещенности фрагмента поверхности на основе данных о его окружении. В этом случае используется язык шейдеров. Шейдерные программы исполняются на графическом процессоре видеокарты.
В данной работе рассматриваются приложения компьютерной графики реального времени. Это значит, что первый подход труднореализуем, так как ввиду его высокой вычислительной сложности на данный момент он не может выполняться в режиме реального времени на большинстве современных настольных компьютеров.
Как правило, работы, посвященные второму подходу, сосредоточены на физически аккуратном моделировании сложных процессов отражения, преломления и рассеивания света, излучаемого точечным источником света. Таким образом, решается задача моделирования освещения точечным источником света множества сложных материалов: меха, камня, дерева, пластика, полированного или матового металла и т.д. Однако источник света не всегда представляет собой точку, либо он не может быть эффективно ею заменен. Лампы дневного света, экраны мониторов, абажуры комнатных светильников представляют собой примеры источников света, которые имеют соответственно протяженность, площадь и объем.
Для визуализации сцен, освещенных протяженным источником света, была поставлена задача - получить реалистичные зеркальные блики и рассеянное отражение на поверхностях объектов сцены. В ходе решения этой задачи автором были разработаны две специальные модели освещения с использованием шейдерной графики в режиме реального времени.
Первая модель освещения использует грубый метод разбиения светящегося отрезка на множество точечных источников освещения. Такой метод основан на предположении, что некоторое ограниченное число светящихся точек могут осветить сцену подобно светящемуся отрезку.
Эта модель допускает настройку различных параметров: координат концов светящегося отрезка, цвета источника, яркости источника, коэффициенты затухания света и число источников, которые будут замещать собой отрезок. С помощью этой модели можно получить достаточно качественный результат, однако он ощутимо требователен к производительности ЭВМ. Иногда для ускорения расчетов приходится жертвовать четкостью блика, делая его более размытым даже на зеркальных поверхностях.
Кроме того, этот метод был позднее успешно применен при моделировании светящегося прямоугольника и потенциально может быть расширен для моделирования любого светящегося тела.
Вторая разработанная модель освещения представляет наибольший интерес, так как лишена недостатков первой, превосходя ее по качеству и скорости. Эта модель основана на неочевидном эвристическом предположении, что светящийся отрезок может быть эффективно замещен всего одним точечным источником света, координаты которого необходимо будет вычислять заново для каждого освещаемого фрагмента сцены . Ключевым в данной модели является предположение, что такая точка должна быть точкой светящегося отрезка и находиться как можно ближе к освещаемому фрагменту.
Такой метод перевычисления координат источников света позволяет вернуть светящемуся отрезку свойство непрерывности, утраченное в первой модели. Вторая модель обладает значительно более высоким быстродействием и значительно более высоким качеством результата. Например, можно получить зеркальные блики, более четкие, чем у первой модели. При этом скорость работы даже на сложных сценах будет высокой.
Имеется возможность настроить координаты, цвет и яркость источника света. По сравнению с первой моделью в процессе настройки не приходится выбирать между качеством и производительностью. В то же время эту модель намного сложнее использовать для источников света другой формы и в настоящее время ведутся работы в этом направлении.
Обе описанные модели имеют совместимость с существующими алгоритмами моделирования сложных материалов и хорошо зарекомендовали себя на практике как качественный и быстрый способ добавить на сцену источник освещения, имеющий форму отрезка.
Модели освещения неточечным источником света были реализованы на языке GLSL и включены в модуль графического расширения, предназначенный для создания приложений компьютерной графики в различных предметных областях.