УДК 004.946:620.22
РАСПРЕДЕЛЕННАЯ РЕАЛИСТИЧНАЯ ВИЗУАЛИЗАЦИЯ ВИРТУАЛЬНЫХ СЦЕН С ИСПОЛЬЗОВАНИЕМ ТЕКСТУР ФИЗИЧЕСКИХ ПАРАМЕТРОВ МАТЕРИАЛОВ
А. В. Мальцев, М. В. Михайлюк
Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук avmaltcev@mail. ru, mix@niisi. ras. ru
Предложены распределенные методы для реалистичной визуализации (рендеринга) трехмерных виртуальных объектов с использованием вычислительных возможностей современных графических процессоров (GPU). Идея рассматриваемых решений заключается в моделировании отражения света от поверхностей объектов виртуальной среды с приближенной имитацией физических свойств их материалов. Задание таких свойств осуществляется с помощью нескольких текстур специального формата. Данные из этих текстур используются в пиксельном шейдере на GPU при расчете отраженного света, который выполняется по оригинальной вычислительной модели. Последняя представляет модифицированную BRDF модель Кука - Торренса и позволяет моделировать в виртуальной среде несколько различных типов источников освещения, а также тени от объектов. Созданные методы и алгоритмы основаны на использовании распределенных вычислений на современных многоядерных графических процессорах и поддерживают визуализацию сложных высокополигональных виртуальных сцен в масштабе реального времени, что обеспечивает их применимость в системах виртуального окружения и имитационно-тренажерных комплексах. На основе предложенных в работе решений реализованы программные модули для систем визуализации трехмерных сцен, позволяющие выполнять реалистичный рендеринг объектов виртуальных пространств.
Ключевые слова: визуализация, распределенные вычисления, шейдеры, виртуальный объект, текстура, материал.
DISTRIBUTED REALISTIC VISUALIZATION OF VIRTUAL SCENES USING TEXTURES OF MATERIALS' PHYSICAL PARAMETERS
A. V. Maltsev, M. V. Mikhaylyuk
System Research Institute, Russian Academy of Sciences, avmaltcev@mail. ru, mix@niisi. ras. ru
The paper proposes distributed methods for realistic rendering of three-dimensional virtual objects using computing abilities of modern graphics processors (GPU). The idea of the considered solutions is to simulate a light reflected from surfaces of virtual environment objects with approximate imitation of their materials' physical properties. Specifying of such properties is done by means of several textures with special format. Data from these textures are used in pixel shader when reflected light is calculated on GPU by own illumination model. The proposed model is the modification of the Cook-Torrance BRDF model and allows simulating in virtual environment both different light source types and shadows cast by objects. Created methods and algorithms are based on using of distributed computing on modern multi-core GPUs and support real-time visualization of complicated high polygonal virtual scenes. This provides their applicability in virtual environment systems and simulation-training complexes. Based on proposed solutions, software modules for 3D scene visualization systems are created. The modules allow performing realistic rendering of virtual environment objects.
Keywords: visualization, distributed computing, shaders, virtual object, texture, material.
Темпы развития цифровых технологий в современном мире способствуют широкому распространению компьютерного моделирования во многих научных и технических областях. Моделирование и рендеринг трехмерных виртуальных сцен применяются, также в тренажерных комплексах управления сложными техническими устройствами и системах виртуального окружения. Данные технологии активно используются для обучения управлению автомобилями, самолетами, кораблями и т. д. Предъявляемые к таким комплексам и системам требования к качеству и реалистичности визуализируемых изображений постоянно возрастают. Развитие вычислительных устройств, позволяющих быстро и эффективно решать задачи с высокой степенью распараллеливания, также не стоит на месте. Так, число ядер в современных графических процессорах (GPU) уже насчитывает несколько тысяч. Это открывает новые возможности для распределенного моделирования и реалистичной визуализации виртуальной среды в масштабе реального времени и делает создание новых методов и алгоритмов реалистичной визуализации трехмерных виртуальных сцен на GPU актуальным направлением научных исследований.
Одной из ключевых задач в визуализации виртуальных объектов является моделирование отражения света от их поверхностей. Большую роль в данном вопросе играет используемая вычислительная модель расчета освещенности. Как правило, если требуется быстрый рендеринг с синтезом кадров изображения трехмерной сцены в реальном времени, используются упрощенные модели такие, как модель Фонга [1] или Блинна [2]. Для достижения фотореалистичного качества служат различные типы глобальных моделей освещения [3-5]. Применение последних в тренажерных комплексах и системах виртуального окружения на данном этапе развития техники весьма затруднительно ввиду их очень высокой вычислительной сложности, препятствующей обеспечению режима реального времени. Упрощенные же модели не позволяют достичь желаемого уровня реалистичности синтезируемого изображения. Поэтому перспективным направлением развития систем визуализации в настоящее время является разработка и реализация новых методов и технологий PBR (physically based rendering), достаточно хорошо имитирующих физически корректное освещение, но соблюдающих при этом баланс между качеством картинки и скоростью синтеза кадра. Подобные решения применяются, например, в графических движках Unity и Unreal Engine 4 [6]. Однако эти и большинство других зарубежных разработок являются платными коммерческими продуктами и требуют приобретения специальных лицензий, что затрудняет их широкое использование при создании отечественных имитационно-тренажерных комплексов и систем виртуального окружения.
В данной работе предлагаются новые методы и подходы к реалистичной визуализации трехмерных виртуальных сцен в масштабе реального времени. В их основе лежит приближенная имитация физических свойств отражения света материалами объектов с использованием распределенных вычислений на многоядерных GPU по собственной модели расчета освещенности, за основу которой была взята BRDF модель Кука - Торренса. Далее рассмотрим предлагаемые решения более подробно.
Текстуры физических параметров материала
Для моделирования реалистичного отражения света от поверхностей виртуальных объектов в данной работе используется набор текстур, описывающих физические свойства материалов, из которых сделаны эти объекты. Общее количество текстурных карт в таком наборе может варьироваться для разных материалов, но четыре из них являются базовыми и должны присутствовать в каждом материале. К ним относятся текстуры Tbase основного цвета (или альбедо), Tmet металлических свойств материала, Trg шероховатости поверхности и карта нормалей Tn.
Основываясь на зависимости свойств отражения света материалами от их способности проводить электрический ток, предлагаемый подход разделяет визуализируемые поверхности виртуальных объектов на металлические и неметаллические (диэлектрики). Особенностями
Мальцев А. В., Михайлюк М. В.
Распределенная реалистичная визуализация виртуальных сцен с использованием текстур физических параметров материалов
чистых металлов является высокая отражательная способность падающих на их поверхность световых лучей и полное поглощение преломленного света. Последнее приводит к отсутствию диффузной компоненты в отраженном световом потоке. У диэлектриков же преобладающей составляющей отраженного света является именно диффузная, а сама отражательная способность довольно низкая. Отметим, что в природе существует также особый класс полуметаллов, но моделирование таких объектов в трехмерных виртуальных сценах выполняется очень редко, поэтому полуметаллы в этом исследовании не рассматриваются.
Рис. 1. Карта Tmet металлических Рис. 2. Карта Tba.se основного цвета
свойств материала
Чтобы определенить какие участки поверхности объекта являются металлом, а какие -диэлектриком, используется карта Tmet металлических свойств материала (metallic map) (рис. 1). Она представляет собой текстуру в оттенках серого цвета, где белый цвет (значение 1.0) соответствует чистому металлу, черный (значение 0.0) - диэлектрику. Зачастую возникает необходимость моделирования металла, подвергшегося загрязнению или окислению. При высокой степени коррозии или загрязнения, как и в случае нанесенной на поверхность металла краски, по свойствам отражения он перестает быть металлом и отмечается в текстуре Tmet значением 0.0. Легкие загрязнения снижают отражательную способность металла и задаются в Tmet серым цветом со значением из диапазона (0.0, 1.0).
Карта Tbase основного цвета (albedo map) (рис. 2) задается в виде трехканальной цветной текстуры и содержит информацию, различающуюся для металлов и диэлектриков. Те ее пикселы, которые соответствуют областям карты Tmet, заданным как диэлектрик, хранят значения коэффициентов отражения света для R, G и B компонент диффузной составляющей отражения, т. е. определяют диффузный цвет материала. Пикселы, относящиеся к металлическим областям, определяют силу отражающей способности моделируемого металла в виде значений F0 коэффициента Френеля для R, G и B компонент светового луча при нулевом угле его падения на поверхность. Для корректного визуального восприятия текстуры альбедо при ее отображении на устройствах вывода ее данные закодированы в цветовом пространстве sRGB. Поэтому перед их использованием с целью вычисления отраженного от поверхности объекта света важно осуществить преобразование данных из пространства sRGB в линейное пространство с помощью гамма-коррекции.
Карта Trg шероховатости (roughness map) (рис. 3) является текстурой в оттенках серого цвета, задающей распределение микрограней на поверхности с рассматриваемым материалом.
Белый цвет (значение 1.0) при этом соответствует наибольшей степени шероховатости, а черный (значение 0.0) задает идеально гладкую поверхность.
Рис. 3. Карта Trg шероховатости Рис. 4. Карта T n нормалей
Карта Tn нормалей (normal map) (рис. 4) представляет собой текстуру, в каждом пикселе которой в цветовом формате закодирован вектор нормали, соответствующий точке поверхности, к которой применяется материал. 8-битные каналы R, G и B кодируют соответственно x, y и z компоненты вектора нормали. Значение каждого канала перед использованием конвертируется из целочисленного дискретного диапазона (0, 255) в непрерывный диапазон чисел с плавающей точкой (-1.0, 1.0).
Расчет отраженного света
Распределенный расчет интенсивности света, отраженного от поверхностей виртуальных объектов, на основе описанного набора текстурных карт выполняется с использованием шейдерной обработки на современных многоядерных графических процессорах. Для этого была разработана собственная математическая модель (подробно описана нами в работе [7]) для попиксельного расчета отраженного освещения, представляющая модификацию BRDF модели Кука - Торренса [8]. Она позволяет реализовывать различные типы источников освещения, а также тени с регулируемой плотностью, мягкостью и цветом. Согласно предлагаемой модели значения интенсивности отраженного освещения в точках объектов, соответствующих пикселам синтезируемого изображения виртуальной среды, вычисляются во фрагментном шейдере по формулам:
Ir = RaIa +s(FIj max(0,Lj xN)((l-ksh ])(1 -knet)Rd + ksh]csh + fshJmetRs)) , (1)
j=0
ksh dsh x fsh,
где Ir - искомая интенсивность в некоторой точке P поверхности объекта;
Ra - коэффициент отражения материалом рассеянного света;
Ia - интенсивность рассеянного света в виртуальной сцене;
n - общее число активных источников освещения;
Ij - интенсивность света от j-го источника освещения;
Мальцев А. В., Михайлюк М. В. Распределенная реалистичная визуализация виртуальных сцен с использованием текстур физических параметров материалов
Lj - единичный вектор из точки Р нау-й источник света;
N - единичный вектор нормали в точке Р;
kmet - доля зеркальной составляющей отражения;
Яа и Яц - отражаемые материалом в точке Р диффузная и зеркальная составляющие
света;
с^ - цвет тени;
dsh - коэффициент плотности тени;
fsh - параметр, определяющий наличие или отсутствие тени в точке Р;
^ - функция, учитывающая различные типы и параметры источника света [7].
Вектор N в рассматриваемой точке Р считывается из карты Тп нормалей по текстурным координатам э и t, вычисляемым путем интерполяции известных текстурных координат в вершинах треугольного полигона, которому принадлежит точка Р. Коэффициент kmet определяется по карте Tmet металлических свойств материала с помощью тех же текстурных координат. Яа представляет собой цвет материала для диэлектриков и хранится в карте Тьаэе основного цвета. Свет, зеркально отражаемый от поверхности, определяется по формуле:
Я _ D х G х Р э _ ж(У,N)х(L],N) ,
где V - единичный вектор направления из Р на наблюдателя;
D - функция для моделирования распределения микрограней на поверхности (при расчете используется значение параметра шероховатости, считываемое из карты Т^ шероховатости по текстурным координатам э и t);
G - функция для моделирования самозатенения микрограней;
Р - функция расчета коэффициента Френеля, определяющего долю отраженной в точке поверхности энергии (при расчете используется коэффициент Френеля который для металлов считывается из карты Тьаэе основного цвета, а для диэлектриков приравнивается к усредненному значению 0,04). С подробным описанием используемых функций D, G и Р можно ознакомиться в работе [7].
На рис. 5 продемонстрирован результат шейдерной визуализации виртуального объекта (крышки люка) с применением описанных подходов и набора текстур физических параметров материала, представленных на рис. 1-4.
Рис. 5. Результат шейдерной визуализации виртуального объекта
Заключение. В результате проведенных исследований были разработаны оригинальные методы и подходы для реалистичной визуализации трехмерной виртуальной среды с имитацией ряда физических свойств их материалов. Особенностью предлагаемых решений является широкое использование распределенных вычислений на современных многоядерных графических процессорах и проведение вычислений с помощью шейдерной модели последнего поколения, что обеспечивает рендеринг высокополигональных виртуальных сцен в масштабе реального времени. Предложенные решения реализованы в виде программных модулей и прошли успешную апробацию в составе системы визуализации, разработанной в ФГУ ФНЦ НИИСИ РАН.
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 18-07-00950.
Литература
1. Phong B. T. Illumination for computer generated pictures // Communications of ACM. 1975. № 6. P. 311-317.
2. Blinn J. F. Models of light reflection for computer synthesized pictures // Proceedings of 4th annual conference on computer graphics and interactive techniques. 1977. P. 192-198.
3. Keller A. Instant radiosity // Proceedings of the 24th annual conference on Computer graphics and interactive techniques. 1997. P. 49-56.
4. Ritschel T., Dachsbacher C., Grosch T., Kautz J. The state of the art in interactive global illumination // Computer Graphics Forum. 2012. V. 31 (1). P. 160-188.
5. Jensen H. W. Global illumination using photon maps // Proceedings of the 7th Eurographics Workshop on Rendering. 1996. P. 21-30.
6. Karis B. Real Shading in Unreal Engine 4 [Электронный ресурс]. URL: https://de45xmedrsdbp.cloudfront.net/ (дата обращения: 03.07.2018).
7. Мальцев А. В., Омельченко Д. В. Модель расчета отраженного света для имитации на GPU физически корректного освещения объектов виртуальной среды // Тр. НИИСИ РАН. 2018. Т. 8. № 4.
8. Cook R. L., Torrance K. E. A reflectance model for computer graphics // ACM Transactions on Graphics. 1982. № 1 (1). P. 7-24.