ПРИМЕНЕНИЕ АППАРАТНОГО РАСТЕРИЗАТОРА В ЗАДАЧАХ МОДЕЛИРОВАНИЯ ГИДРОДИНАМИЧЕСКИХ ПОЛЕЙ В ТРАЛОВЫХ СИСТЕМАХ ПРИ ГИДРОЛОКАЦИИ
Аннотация и ключевые слова
Аннотация (русский):
Предложен быстрый метод перестроения трехмерной расчетной сетки для задач моделирования гидродинамических полей в траловых системах при гидролокации в динамике с применением аппаратного растеризатора графического процессора. При изменении положения обтекаемого объекта необходимо периодически обновлять граничные условия в узлах сетки вблизи его поверхности, что при трехмерной постановке является трудоемкой задачей. Предлагаемый метод позволяет многократно ускорить процесс обновления сетки по сравнению с программными реализациями. Суть метода заключается в особенности реализации пиксельного шейдера графического конвейера при рендеринге, а именно возможности вывода непосредственно в трехмерный буфер узлов расчетной сетки с учетом информации о Z -координате пикселя и вектора скорости точки поверхности. Апробация метода выполнена на разработанной по нему компьютерной программе. Метод можно применять как при расчете влияния гидродинамических полей на распространение акустических волн, так и в других приложениях.

Ключевые слова:
растеризатор, рендеринг, графический конвейер, расчетная сетка, гидродинамические поля, траловая система
Текст
Текст произведения (PDF): Читать Скачать

В промышленном рыболовстве управление и контроль геометрии и положения элементов трала происходит с применением гидролокации [1-3]. Такие устройства, как датчики положения траловых досок [4, 5] и других элементов траловой системы [6, 7], обмениваются информацией по звуковому каналу в водной среде. При движении трала в воде вокруг его элементов возникают поля давлений, скоростей и вязкостей, что оказывает влияние на распространение звуковой волны. Математическое описание гидродинамических полей основывается на системах уравнений гидродинамики [8]. Для их решения на ЭВМ применяют различные численные методы. К одному из них относится итерационный неявный конечно-разностный метод покоординатного расщепления с использованием трехмерной расчетной сетки [4]. Суть метода заключается в расщеплении систем уравнений в частных производных Навье - Стокса [4, 8] на три, по одной на каждую координату, с последующей их линеаризацией (заменой нелинейных членов константами в пределах одной итерации и последующей коррекцией на следующей итерации). В результате получается три системы линейных алгебраических уравнений, которые решаются независимо друг от друга с последующим усреднением искомых неизвестных скоростей, давлений и вязкостей. Каждая система, являясь трехдиагональной [4], решается итерационным методом. При переходе от систем дифференциальных уравнений к конечно-разностной схеме осуществляется дискретизация значений координат вблизи поверхности объекта исследования (датчика положения - источника излучения и приема звуковой волны) с привязкой их к конечному множеству узлов трехмерной расчетной сетки. Каждому узлу сетки ставятся в соответствие как искомые величины (скорость, давление, вязкость жидкости), так и граничные условия различного рода. К одному из граничных условий относится равенство скорости движения жидкости на поверхности объекта и скорости движения части объекта в окрестностях узла расчетной сетки. При динамической постановке задачи, когда положение граничных поверхностей постоянно меняется, необходимо периодически (зависит от требуемой точности моделирования) обновлять граничные условия в узлах сетки вблизи поверхности объекта. Из-за большого количества узлов расчетной сетки при трехмерной постановке задачи данная операция является трудоемкой. Материалы исследования Для уменьшения трудоемкости обновления расчетной сетки авторами статьи предлагается метод, основанный на применении аппаратного растеризатора [9] графического процессора. Данный метод дает многократное ускорение процесса обновления сетки по сравнению с программными реализациями. Суть метода заключается в особенности реализации пиксельного шейдера [10] графического конвейера при рендеринге трехмерной модели объекта. В машинной графике задача рендеринга трехмерных сцен заключается в преобразовании пространственных форм в их проекцию на плоскости, в том числе и перспективную. Весь процесс преобразования разбит на последовательные этапы. Обработка всех этапов происходит параллельно во времени на разных частях графического конвейера. Одни этапы выполняются аппаратно, другие - специальной программой для графического процессора, называемой шейдером. Рассмотрим основные этапы более подробно. На рис. 1 показан графический конвейер при рендеринге с использованием вершинного и пиксельного шейдеров и аппаратного растеризатора. Рис. 1. Графический конвейер При трехмерном описании отображаемого объекта (трехмерной модели) его поверхность дискретно делится на примитивы - треугольники. Список координат вершин всех треугольников поступает на вход графического конвейера, а именно на его первый этап - вершинный шейдер. Задачей шейдера является осуществление аффинных преобразований координат и цветов каждой вершины в соответствии с заданными пространственной моделью и моделью освещенности. В результате модель приводится к базису, в котором плоскость OXY параллельна плоскости экрана. Архитектура графического процессора спроектирована таким образом, что на его вычислительных блоках обработка множества вершин выполняется одновременно. После преобразования координат вершин осуществляется их растеризация в плоскости OXY. В современных графических процессорах этап растеризации осуществляется на нескольких аппаратных растеризаторах одновременно. Задачей растеризатора является разбивка области внутри треугольного примитива на конечное множество пикселей (полная заливка области). Пиксель представляет собой элементарную единицу двумерной области плоскости проецирования. Размерность области в пикселях определяется степенью требуемой дискретизации результата. Каждый пиксель имеет заданные координаты на плоскости, а также может иметь другие атрибуты, передаваемые на вход конвейера либо вычисляемые в процессе обработки на конвейере. К таким атрибутам относится цвет, глубина (Z-координата) и др. Значения таких атрибутов, как цвет пикселя и его Z-координата, в процессе растеризации треугольного примитива вычисляются методом интерполяции соответствующих значений, генерируемых вершинным шейдером, по трем вершинам. Пиксельный шейдер в самой простой реализации осуществляет запись атрибута цвета в двумерный выходной буфер по координатам пикселя. Если вести запись не в двумерный, а в трехмерный буфер размерностью расчетной сетки и с учетом информации о Z-координате пикселя, а вместо цвета взять вектор скорости точки поверхности, то мы получим трехмерное отображение поля скорости (граничных условий вблизи поверхности объекта) на расчетной сетке. Для получения корректного результата моделирования необходимо выполнить условие неразрывности поверхности по всему объекту. Внутренние и внешние области должны быть полностью разделены при расчете. Растеризатор гарантирует неразрывность только в плоскости растеризации (плоскости OXY). По Z-координате же условие неразрывности выполняться не будет. Данная проблема решается трехкратным рендерингом на каждую ортогональную плоскость расчетной сетки. Ниже приведен исходный код шейдеров для рендеринга в плоскости OXY на расчетной сетке размерностью 128 узлов по каждой из координат. Рендеринг в остальных двух плоскостях происходит аналогично. Шейдер использует следующие переменные и константы: LVel - линейная скорость объекта; AVel - угловая скорость объекта; MC - центр масс объекта; GridDDiag - длина диагонали сетки в метрах; GridMinX - координаты сетки в пространстве в метрах; GridD - размер сетки в метрах; CELL_CV - флаг наличия поверхности. // вершина struct Vertex_t { float3 X : POSITION; // координаты вершины float3 CN: NORMAL1; // нормаль к поверхности }; // пиксель struct Cell_t { float4 X : SV_POSITION; // координаты пикселя float4 VP : COLOR; // вектор скорости }; ByteAddressBuffer Vertexes : register(t0); // массив вершин RWBuffer Grid : register(u0); // буфер типов граничных условий RWBuffer Layers : register(u1); // буфер поля скоростей // вершинный шейдер Cell_t VsRaster3dX(Vertex_t v) { Cell_t c; c.VP.w = 0; c.VP.xyz = LVel.xyz + cross(AVel.xyz, v.X - MC.xyz); c.X.w = 1; c.X.xzy = (v.X + v.CN * GridDDiag - GridMinX.xyz) / (GridD.xyz * float3(64, 1, -64)) - float3(1, 0, -1); return c; } // пиксельный шейдер void PsRaster3dX(Cell_t c) { uint a = uint(c.X.x) + uint(c.X.z) * 128 + uint(c.X.y) * (128 * 128); Grid[a] = CELL_CV; Layers[a] = c.VP; } На рис. 2 показан результат работы программы на примере рендеринга поверхности траловой доски. Рис. 2. Результат работы рендеринга на расчетную сетку Данный метод можно применять при расчете гидродинамических полей, влияющих на распространение акустических волн от/до движущихся устройств при зондировании, при управлении и контроле состояния траловой системы (для различных датчиков положения), а также в других приложениях. Заключение Описан метод отображения поверхностей трехмерных объектов на узлы расчетной сетки при моделировании гидродинамических полей в окрестностях движущихся объектов, использующий аппаратную растеризацию на графическом процессоре. Данный метод позволяет значительно ускорить процесс обновления граничных условий систем гидродинамических уравнений при движении исследуемых объектов. Метод эффективен при расчете гидродинамических полей, влияющих на распространение акустических волн от/до движущихся устройств при зондировании, при управлении и контроле состояния траловой системы, а также в других приложениях.
Список литературы

1. Недоступ А. А., Ражев А. О. Математические модели распространения акустических волн с учетом реверберации, временного и доплеровского рассеивания // Инновации в науке, образовании и предпринимательстве: материалы XVI Междунар. конф. VI Междунар. Балт. мор. форума (Калининград, 3-6 сентября 2018 г.). Калининград: Изд-во БГАРФ, 2018. Т. 1. С. 221-227.

2. Недоступ А. А., Ражев А. О. Математическая модель имитатора устройств гидролокации // Морские интеллектуальные технологии (в базе Web of Science). 2018. № 4 (42). Т. 4. С. 283-286.

3. Goddard R. P. The Sonar Simulation Toolset, Release 4.6: Science, Mathematics, and Algorithms. Applied Physics Laboratory Universyty of Washington, 2008. 113 p.

4. Недоступ А. А., Ражев А. О. Математическая модель взаимодействия распорной траловой доски с водной средой // Морские интеллектуальные технологии (в базе Web of Science). 2017. № 3 (37). Т. 1. С. 154-157.

5. Наумов В. А., Мейлус Е. Г. Метод расчета гидродинамических коэффициентов траловой доски // Изв. Калинингр. гос. техн. ун-та. 2005. № 9. С. 53-57.

6. Reite K. J. Modeling and control of trawl systems. Norway, Trondheim: Norwegian University of Science and Technology, 2006. 238 p.

7. Nedostup A. A., Razhev A. O. Statement of the problem of dynamic similarity of the trawl system // Вестн. Астрахан. гос. техн. ун-та. Сер.: Рыбное хозяйство. 2017. № 4. С. 61-68.

8. Харченко С. А. Влияние распараллеливания вычислений с поверхностными межпроцессорными границами на масштабируемость параллельного итерационного алгоритма решения систем линейных уравнений на примере уравнений вычислительной гидродинамики // Параллельные вычислительные технологии: тр. Междунар. науч. конф. (Санкт-Петербург, 28 января - 1 февраля 2008 г.). Челябинск: Изд-во ЮУрГУ, 2008. С. 494-499.

9. Фролов В. Введение в технологию CUDA // ВМиК МГУ. Сетевой журнал «Компьютерная графика и мультимедиа». 2008. № 1 (16). URL: http://masters.donntu.org/2013/fknt/reznichenko/library/article5.htm (дата обращения: 10.02.19).

10. Недоступ А. А., Ражев А. О. Применение графического процессора в задачах имитационного моделирования динамических процессов в ставном подвесном неводе // Наука, образование, инновации: пути развития: материалы VI Всерос. конф. (Петропавловск-Камчатский, 21-24 апреля 2015 г.). П-Камчатский: Изд-во КамчатГТУ, 2015. С. 88-92.


Войти или Создать
* Забыли пароль?