Научная статья на тему 'МЕТОДЫ РЕАЛИЗАЦИИ СТРУЙ ВОДЫ И ПЕНЫ В 3D СЦЕНАХ С ИСПОЛЬЗОВАНИЕМ МЯГКИХ ЧАСТИЦ'

МЕТОДЫ РЕАЛИЗАЦИИ СТРУЙ ВОДЫ И ПЕНЫ В 3D СЦЕНАХ С ИСПОЛЬЗОВАНИЕМ МЯГКИХ ЧАСТИЦ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
37
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА ЧАСТИЦ / МЯГКИЕ ЧАСТИЦЫ / ВИЗУАЛИЗАЦИЯ / СТРУЯ / GPU / CUDA / PARTICLE SYSTEM / SOFT PARTICLES / VISUALIZATION / JET

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мальцев А.В., Трушин А.М.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

WATER AND FOAM JETS 3D RENDERING WITH SOFT PARTICLES

The paper suggests an approach to water and foam jet modeling with “soft” particles. The particle parameters estimation and visualization of their 3D models are performed with modern multi-core graphics processors. The proposed methods have been verified as a part of a simulator’s visualization system.

Текст научной работы на тему «МЕТОДЫ РЕАЛИЗАЦИИ СТРУЙ ВОДЫ И ПЕНЫ В 3D СЦЕНАХ С ИСПОЛЬЗОВАНИЕМ МЯГКИХ ЧАСТИЦ»

УДК 551.577:004.94

МЕТОДЫ РЕАЛИЗАЦИИ СТРУЙ ВОДЫ И ПЕНЫ В 3D СЦЕНАХ С ИСПОЛЬЗОВАНИЕМ МЯГКИХ ЧАСТИЦ

А. В. Мальцев, А. М. Трушин

ФГУ «Федеральный научный центр Научно-исследовательский институт системных исследований

Российской академии наук»

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

Ключевые слова: система частиц, мягкие частицы, визуализация, струя, GPU, CUDA.

WATER AND FOAM JETS 3D RENDERING WITH SOFT PARTICLES

A. V. Maltsev, A. M. Trushin

System Research Institute, Russian Academy of Sciences

The paper suggests an approach to water and foam jet modeling with "soft" particles. The particle parameters estimation and visualization of their 3D models are performed with modern multi-core graphics processors. The proposed methods have been verified as a part of a simulator's visualization system.

Keywords: particle system, soft particles, visualization, jet, GPU, CUDA.

Введение

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

С целью обеспечения режима реального времени (частота смены кадров не менее 25 раз в секунду) при расчете параметров и визуализации сложных многоэлементных систем частиц все больше применяются методы и алгоритмы, основанные на использовании возможностей многоядерных графических процессоров (GPU). Так в статье [1] описываются методы и алгоритмы реализации систем частиц с использованием шейдеров. Авторы работы [2] рассматривают GPU-моделирование снега на основе систем частиц в трехмерных сценах.

В публикации [3] нами предложены методы и алгоритмы реализации атмосферных осадков с использованием частиц, основанные на шейдерной обработке и архитектуре параллельных вычислений CUDA. Изложенные в ней базовые принципы работы с системой частиц применимы и для случая реализации струй жидкостей и пены. Суть подхода состоит в выполнении двухэтапной обработки системы частиц в момент формирования изображения каждого кадра изображения. Первый этап включает расчет с использованием программно-аппаратной архитектуры CUDA параллельных вычислений на GPU состояния системы в заданный момент времени в виде массива данных о частицах. Производится формирование новых частиц, расчет текущих параметров уже существующих, а также удаление частиц, время жизни которых истекло.

На втором этапе выполняется визуализация полученного массива с синтезом «на лету»

необходимой геометрии частиц, расчетом их освещенности и наложением текстур. Данный этап предполагает использование вершинного, геометрического и фрагментного шейдеров. Геометрический шейдер применяется для синтеза полигональной модели частицы. Во фрагментном шейдере для каждого фрагмента каждой частицы определяется освещенность от источников света, размещенных в виртуальной сцене, с учетом применяемых к частицам материалов и различных текстур (диффузной, отражения, прозрачности и т.п.).

В данной статье описываются методы моделирования струй воды и пены в трехмерных виртуальных сценах, основанные на использовании мелкоразмерных систем частиц, обработка и визуализация которых производится по изложенным в [3] принципам. Подробно рассматривается построение предлагаемых геометрических моделей частиц воды и пены. Также в работе предлагается решение проблемы появления четких границ на пересечениях струй с другими виртуальными объектами путем применения «мягких» частиц.

VCS

Y

г:

X

Рис. 1

Рис. 2

Моделирование струй пены

Синтез частиц пены в данной работе выполняется с помощью модели в виде «спрайта» (квадрата, всегда повернутого лицевой стороной к виртуальной камере). В геометрическом шейдере для каждой частицы спрайт создается так, чтобы его центр располагался в точке P размещения этой частицы. Нормаль N к поверхности спрайта задается как нормализованная разность Owes (начальной точки O видовой системы координат (СК) VCS камеры с координатами в мировой СК WCS) и P (рис. 1).

Формируемый спрайт содержит два треугольника с вершинами соответственно Vo, Vi, V2 и Vi, V2, V3. Для оптимизации работы графического конвейера, совокупность данных треугольников предлагается представлять в виде треугольного стрипа V0V1V2V3. Для определения координат вершин, вычисляется пара перпендикулярных векторов A и B таких, что A || V0V2, B || VoVi:

[eywcs, N ] в=[ N, A]

A =

y,wcs, N]|

орт оси

[ N, A]

где ey,wcs - орт оси Y системы VCS с координатами, пересчитанными в СК WCS, а квадратные скобки обозначают векторное произведение. Тогда, если s - размер стороны спрайта, то:

V = P + 0.5s(A - B), V = V + sB,

V = V - sA , V = V - sA .

Рис. 3 Рис. 4

Координаты полученных вершин, предварительно умноженные на произведение проекционной Mproj и видовой Mv матриц, передаются на выход геометрического шейдера. Их текстурные координаты задаются соответственно как To (1.0, 0.0), Т (1.0, 1.0), T2 (0.0, 0.0) и Тз (0.0, 1.0).

Придание подготовленным спрайтам вида частиц пены осуществляется путем наложения на каждый из них во фрагментном шейдере текстуры прозрачности (двумерной текстуры в градациях серого цвета, в которой более темные участки отвечают за большую прозрачность, а более светлые - за меньшую). Для этой цели в данной работе была создана собственная анимированная текстура пены в формате AVI. Один из кадров такой текстуры представлен на рисунке 2. Основной цвет материала выбирается в зависимости от требуемого цвета пены. Пример моделирования струи пены в виртуальной сцене представлен на рисунке 3.

Моделирование струй воды

Визуализация частиц воды выполняется путем генерации в геометрическом шейдере виртуальной модели капли состоящей из двух полупрозрачных пирамид. Пирамиды задаются высотами М и кг и имеют общее основание в виде правильного треугольника со стороной равной a (рис. 4). При этом кг / М = k, где k > 1 - регулируемый коэффициент, обеспечивающий придание модели капли вытянутой формы. С целью построения описанного многогранника для произвольной частицы со скоростью v, вводится система координат с центром в точке P размещения этой частицы и осью Y с ортом ey = -v / |v|. Оси X и Z выбираются так, чтобы получившаяся система была правосторонней. Отметим, что координаты ортов ex, ey, ez трех осей X, Y и Z необходимо вычислять в мировой системе WCS.

Вершины модели капли-частицы вычисляются по формулам:

V0 = P + he , V = P + 0.5а

-e, -e„

V = V + аех, Г3 = Р, Г4 = Р-И2ву .

Полученные точки являются вершинами шести треугольных граней нашей модели капли. Перед отправкой координат этих вершин на выход геометрического шейдера их необходимо умножить на произведение проекционной Ырщ и видовой матриц. Также на

Рис. 5 Рис. 6

выход шейдера передается цвет Сщъ и значение Са альфа-канала (получены эмпирическим путем), отвечающего за прозрачность, для каждой рассчитанной вершины, которые при дальнейшей интерполяции по граням в графическом конвейере обеспечат схожесть нашей модели с каплей воды:

= (0.867,0.867,1.0), Са,0 = 0.3, Са1 = 0.234,

Са,2 - 0.234, Са,3 = 0.3, Са,4 = 0.1.

Пример моделирования струи воды в виртуальной сцене представлен на рисунке 5.

VCS

Камера

X

Реализация мягких частиц

I | ЧУ ЧУ "I ЧУ ЧУ

При пересечении частицы, представленной геометрической фигурой или «спрайтом», с гранью виртуального объекта граница этого пересечения, как правило, резко видна наблюдателю. Это происходит вследствие того, что на саму частицу и на грань наложены различные текстуры и материалы, при этом освещение на них также отличается из-за разницы в углах падения световых лучей от источника освещения. Рисунок 6 демонстрирует описанный эффект на примере пересечения струи пены, реализованной с помощью системы частиц, с ландшафтом в виртуальной сцене.

Чтобы устранить резкие границы пересечений и улучшить общее визуальное представление изображения в данной работе используются так называемые «мягкие» . .

частицы. Подход состоит в следующем. \ \ Частица

Перед визуализацией системы частиц производится копирование текущего буфера глубины виртуальной сцены в текстуру Тъи( в оттенках серого цвета, имеющую формат ОЬ_ВЕРТН_СОМРО№ЭТ32Р. На этапе выполнения фрагментного шейдера производится сравнение глубины относительно камеры каждого фрагмента ¥ частицы со значением глубины сцены по лучу,

выходящему из центра камеры и Рис. 7

проходящему через данный фрагмент,

Объект

которое было записано в буфер глубины до визуализации системы частиц и хранится в Тьи/ (рис. 7). Данное значение соответствует точке Рьи/ некоторого виртуального объекта сцены или расстоянию до дальней плоскости отсечения камеры. Для проведения сравнения вычисляются z-координаты точек Р и Рьи/ в текущей видовой системе координат VCS.

Чтобы вычислить искомую z-координату Рьи/,г точки Рьи/ вначале необходимо получить экранные координаты Рх, Ру рассматриваемого фрагмента Р, хранящиеся в переменной gl_РragCoord [4]. Используя функцию 1ех1же2ВКес1 [4], прочтем значение глубины гьи/ из текстуры Тьи/, записанное в пикселе (Рх, Ру). Тогда z-координата точки Рьи/, соответствующей полученной глубине 2ьи/, в системе координат VCS камеры вычисляется по формуле [5]

Pbuf ,z

Z r • z

f n

( Zf Zn )• Zbuf Zf

где zf, Zn - расстояния до дальней и ближней плоскостей отсечения виртуальной камеры.

Значение координаты Fz фрагмента F частицы в системе координат VCS получаются путем автоматической интерполяции переданных на выход геометрического шейдера VCS-координат вершин генерируемой модели частицы. Для их вычисления необходимо умножить в геометрическом шейдере известные координаты вершин в мировой системе WCS на текущую матрицу видового преобразования виртуальной камеры.

Если I F: - Pbuf,: \ < s, где 5 -регулируемый пользователем вещественный параметр «мягкости» частицы, будем считать, что фрагмент F попадает в область пересечения частицы с другим виртуальным объектом. Тогда текущее значение а альфа-канала (прозрачности) данного фрагмента изменяется по формуле

F - P

buf

а - а ■

я

В результате резкая граница пересечения частицы и объекта размывается в некоторой области, размеры которой определяются параметром 5. На рисунке 8 показано применение описанного метода реализации мягких частиц для моделирования струи пены.

Данная работа выполняется при поддержке РФФИ, грант № 16-07-00796.

Литература

1. Мальцев А.В. Реализация системы частиц в реальном времени на GPU // Программные продукты и системы, № 4, 2014, с. 57-62.

2. Zou C., Xie X., Zhao G. Algorithm for generating snow based on GPU // ICIMCS 2010, Proceedings of the Second International Conference on Internet Multimedia Computing and Service, 2010. Pp. 199-202.

3. Мальцев А.В. Моделирование атмосферных осадков в трехмерных сценах с использованием CUDA // Информационные технологии и вычислительные системы, № 2, 2015, с. 31-39.

4. The OpenGL Shading Language, URL: https://www.opengl.org/registry/doc/ GLSLangSpec.3.30.6.clean.pdf (дата обращения: 10.10.2016).

5. Получение исходных 3D-координат по значениям из z-буфера. URL: http:// steps3d.narod.ru/tutorials/depth-to-eyez-tutorial.html (дата обращения: 10.10.2016).

i Надоели баннеры? Вы всегда можете отключить рекламу.