Содержание к диссертации
Введение
1 Объекты предметной области и обзор текстурных методов их визуализации 16
1.1 Базовые понятия теории векторных полей 16
1.1.1 Векторное поле 16
1.1.2 Основные кривые и поверхности векторного поля . 17
1.1.3 Поле скоростей как результат численного эксперимента 21
1.2 Текстурные методы визуализации векторного поля . 24
1.2.1 Семейство методов свертки вдоль линий тока (LIC) 26
1.2.2 Методы визуализации течения посредством адвекции исходного изображения 29
1.2.3 Текстурные методы визуализации течения с использованием системы частиц 34
1.3 Методы визуализации объемных данных 37
1.3.1 Выводы 43
2 Использование аппаратных возможностей современных графических адаптеров при реализации методов визуа лизации 46
2.1 Основные стадии конвейера растеризации и его расширение с помощью программ графического процессора . 48
2.1.1 Обработка геометрических данных и вершинные программы 50
2.1.2 Растеризация фрагментов и фрагментные программы 54
2.1.3 Операции с фрагментами 58
2.2 Обобщенная модель вычислительного алгоритма на осно ве графического процессора 61
2.2.1 Общая структура 61
2.2.2 Текстурные объекты как способ хранения данных 64
2.2.3 Выводы и результаты 68
3 Методы аппаратной адвекции текстуры в потоке 70
3.1 Модификация алгоритма IBFV на основе графического процессора 71
3.1.1 Метод IBFV 71
3.1.2 Реализация IBFV с помощью вершинных программ (GPU-Based IBFV) 73
3.2 Аппаратная адвекция Лагранжа-Эйлера 77
3.2.1 Метод адвекции Лагранжа-Эйлера 77
3.2.2 GPU-Based LEA 80
3.3 Описание приложения для визуализации сечений трехмер ного течения 84
3.3.1 Входные данные и интерфейс программы 85
3.3.2 Визуализация в системе fViz 87
3.3.3 Визуализация продвижения фронта 89
3.4 Трехмерная адвекция с использованием GPU 91
3.5 Результаты и выводы 97
4 Метод визуализации трехмерного течения с помощью системы частиц 100
4.1 Анимация системы частиц на основе GPU 101
4.1.1 Вычисление координат точек с помощью графического процессора 102
4.1.2 Метод декомпозиции трехмерного текстурного куба в двумерную текстуру 104
4.1.3 Поведение частиц в течении 106
4.1.4 Используемый способ визуализации частиц . 108
4.2 Реализация метода 109
4.3 Сравнение производительности и качества получаемой визуализации с методами, основанными на адвекции текстурного куба 114
4.4 Результаты 117
Заключение 120
Литература
- Основные кривые и поверхности векторного поля
- Обработка геометрических данных и вершинные программы
- Реализация IBFV с помощью вершинных программ (GPU-Based IBFV)
- Метод декомпозиции трехмерного текстурного куба в двумерную текстуру
Введение к работе
Актуальность темы
Весьма распространенным в экологических исследованиях и задачах гидрогазодинамики является расчет двумерного или трехмерного поля скоростей движения среды в ограниченном объеме на регулярной или нерегулярной сетке. Результатом таких экспериментов являются большие массивы векторных и скалярных данных. Успешный исход исследования во многом зависит от того, каким образом полученные данные будут представлены исследователю, и какие выводы он сделает, основываясь на полученной картине. В этой связи, визуализация векторного поля скоростей становится неотъемлемой частью многих задач численного моделирования. Этап визуализации должен предоставить исследователю исчерпывающую информацию о структуре, скорости течения и других его характеристиках.
Значимость этой стадии часто недооценивается и отдается на откуп стандартным математическим пакетам, в которых реализованы устаревшие методы визуализации, такие как стрелочные диаграммы или цветовое кодирование. Эти мгтоды просты в реализации и не требуют больших вычислительных затрат. Недостатком стрелочных диаграмм явпяется низкая разрешающая способность при отображении векторного поля, а изображения, полученные с помощью метода цветового кодирования, не доступны для понимания без дополнительной информации. При этом мало внимания уделяется текстурным методам визуализации течений, в то время как это семейство алгоритмов, позволяющим передать информацию о течении в каждой точке рассматриваемой обласи. Изображения, полученные с помощью этого семейства методсв, непрерывно покрывают всю визуализируемую область течения, в отличие от стрелочных диаграмм Текстурная визуализация дает исследователю понятную картину течения, содержащую информацию о структуре течения и скорости в разных участках. Однако, классические текстурные алгоритмы гакие как LIC (I me Integral Convolution, Cabral and Leedom, 1993) требуют больших вычислительных затрат для своей работы и сложны в реализации.
Это обстоятельство сохранялось до недавнего времени Разработка методов IBFV (Image-Based Flow Visualization, I van Wijk, 2002) и LEA (Lagrangian-Eu)enan Advection, В Jobard, 2002) положила начало адаптации текстурных алгоритмов с использованием аппаратных возможное гей гпгрршпипгп грпфнч^ггпго оборудования. Аппаратная архитектура сАвретвейМй'ОргЦМЛВЦ-жих карт пре-
доставляет большие возможности для управления ходом визуализации трехмерной сцены Наличие графического процессора (GPU -Graphic Processing Unit) и быстрой SDRAM памяти на самой графической плате позволяет рассматривать персональный компьютер как двухпроцессорную машину с разделяемой памятью. Реализация методов визуализации векторных полей с использованием ресурсов GPU позволяет достичь высокой производительности за счет переноса части или всех этапов алгоритма на сторону графического процессора. Применение этого подхода дает возможность производить визуализацию двумерного стационарного течения в интерактивном режиме. В случае нестационарного двумерного или трехмерного течения производительность текстурных алгоритмов резко снижается. Примером такого метода является 3D IBFV (van Wijk, 2004), предназначенный для визуализации стационарного трехмерного течения.
Задача визуализации трехмерного течения требует особенного рассмотрения, поскольку в этом случае мы имеем дело с текстурным кубом, отображение которого необходимо выделять в отдельную стадию алгоритма. Непрерывный характер визуализации является препятствием для визуализации участков течения, скрытых внутри текстурного куба. Для решения этой проблемы возможно рассмотрение текстурного куба в виде отдельных частиц. Примером такого подхода является метод немецких ученых (Weiskopf, 2004), основанный на текстурной адвзкции частиц в трехмерном пространстве. В работах Guthe (2000-2002) предложено производить анимацию множества полупрозрачнь х частиц, на которые накладывается текстурное изображение. Однако, производительность этих алгоритмов невысока. Кроме этого, визуализация нестационарного течения с использованием этих методов является затруднительной.
Цель работы
Целью диссертационной работы является разработка алгоритмического и программного обеспечения для визуализации двумерных и трехмерных течений, эффективно использующего ресурсы графической системы персонального компьютера. Практической целью работы является создание программой системы для визуализации трехмерного векторного поля на основе известных и разработанных автором алгоритмов. Основными критериями оценки производительности алгоритмові визуализации в работе выступают удобство интерпретации и производительность. Необходимым требованием при разработке методов визуализации является их полная или частичная адаптация к реализации на графическом процессоре.
Для достижения этих целей решаются следующие задачи:
адаптация вычислительной модели текстурных алгоритмов визуализации векторного поля к реализации на базе графического процессора
разработка эффективного представления данных для методов, реализуемых на основе вершинных и фрагментных программ для графических процессоров
создание новых методов визуализации, обладающих большей познавательной силой и производительностью
распространение алгоритмов текстурной адвекции на случай трехмерного течения. Для этого необходимо рассмотрение как текстурных методов, так и алгоритмов, основанных на трассировке системы частиц.
Методы исследований
В диссертационной работе использовались численные методы решения дифференциального уравнения и алгоритмический аппарат компьютерной графики, при этом использован подход на основе использования аппаратных графических средств. При реализации программного обеспечения использовались принципы объектно-ориентированного программирования.
Достоверность и обоснованность результатов
Полученные результаты прошли проверку в ходе практического использования программы fViz и в ходе многочисленных экспериментов на тестовых и реально полученных данных. Практический опыт использования описанных алгоритмов подтверждает эффективность и достоверность получаемой визуализации.
Достоверность и обоснованность результатов
Основные результаты, выносимые на защиту
1 Предложена обобщенная модель вычислений на базе графического процессора.
-
Разработана модификация метода IBFV на основе использования графического процессора для визуализации двумерного нестационарного течения (GPU-Based IBFV). Предлагаемый алгоритм использует вершинные программы графического процессора для расчета адвекции текстурного изображения.
-
Предложен алгоритм, реализующий концепцию LEA в случае двумерного течения с помощью фрагментных инструкций графического процессора (GPU-Based LEA).
-
Создана программа fVIz для интерактивной визуализации плоских сечений трехмерного поля скоростей с помощью анимации течения, интуитивно понятной наблюдателю. Приложение реализует как оригинальный метод IBFV, так и предложенный алгоритм GPU-Based IBFV.
-
Разработан алгоритм текстурной визуализации нестационарного трехмерного нестационарного течения на основе предложенного метода GPU-Based IBFV. Показано падение производительности текстурных методов визуализации в случае трехмерного течения.
-
Разработан способ декомпозиции трехмерного текстурного куба для представления трехмерного векторного поля в виде двумерного текстурного объекта.
-
Предложен эффективный алгоритм для визуализации трехмерного нестационарного течения с помощью продвижения следов частиц в потоке. Данный алгоритм активно использует ресурсы графического процессора для расчета анимации множества частиц.
Все предложенные алгоритмы реализованы в виде программных модулей, которые могут быть использованы для построения системы визуализации.
Научная новизна
В работе описывается ряд новых алгоритмов для визуализации двумерных и трехмерных течений. Все они используют в той или иной мере ресурсы графической системы персонального компьютера. Применение современного графического оборудования позволяет достичь лучших результатов в плаче производительности по сравнению с существующими ангори і мами. Основу для трех из представленных методов составляет алгоритм IBFV и адвекция Ла-гранжа-Эйлера (LEA). Предлагается модификация этих методов с помощью графического процессора. Представленные алгоритмы позволяют снизить нагрузку на центральный процессор при визуализации стационарного и нестационарного двумерного течения.
Предлагается способ перехода от визуализации двумерного течения к визуализации трехмерного течения в общем случае Представлен метод текстурной визуализации трехмерного течения с использованием вершинных инструкций графического процессора. Показана непроизводительность чисто текстурных методов визуализации трехмерных течений. Сделан вывод о недостаточной познавательной силе этих алгоритмов в этом случае
В данной работе предлагается использовать GPU для расчета координат продвижения в потоке системы частиц На этой основе разработан метод визуализации трехмерного течения посредством трассировки множества частиц в потоке. В ходе реализации этого
алгоритма решается проблема эффективного представления поля скоростей в виде текстурного объекта. Для этого автором разработан метод декомпозиции трехмерной текстуры в двумерный текстурный массив. Предлагаемый метод визуализации обладает лучшей производительностью и познавательной силой в сравнении с текстурными алгоритмами отображения трехмерного нестационарного течения. Предложен способ визуализации следа частицы как короткого отрезка линии тока Использование текстурных инструкции графического процессора для расчета геометрических данных позволило создать метод, превосходящий текстурные методы визуализации трехмерного течения по разрешающей способности и скорости визуализации.
Практическая ценность
В ходе исследовательской работы была разработана программа визуализации сечений трехмерного течения. Приложение используется в лаборатории вычислительного эксперимента ЮГИНФО для визуального наблюдения результатов математического моделирования.
Все описанные методы реализованы в виде отдельных программ и программных модулей, позволяющих их использовать в пакетах научной визуализации. Представленные в этой работе алгоритмы не ограничиваются случаем стационарного течения, а также могут быть использованы для визуализации течения в произвольной области.
Апробация результатов работы и публикации
Основные результаты работы докладывались и обсуждались на следующих конференциях и круглых :толах: на XIII, XIV, XV Международных конференциях посвящеьных проблемам компьютерной графики «Графикой 2003» (г Москва, 2003г.), «Графикой 2004» (г Москва, 2004г), «Графикой 2005» (г Новосибирск 2005г.); на круглом столе участников конференции «Графикой 2003»; на XII Международной конференции по вычислительной механике и современным прикладным программным системам (г. Владимир, 2003г); на X Всероссийской Школе-Семинаре "Современные проблемы Математического Модегтирования" 'г Абрау-Дюрсо 2003г);
По результатам выполненных исследований опубликовано 7 печатных работ, в гом числе 5 в соавторстве Из них 1 статья в российском рецензируемом журнале, 5 стате? в сборниках трудов и 1 в тезисах докладов всероссийских и международных конференций
Объем и структура работы.
Основные кривые и поверхности векторного поля
Интерес к векторным полям возникает, в основном, вследствие того, что они могут быть использованы для описания динамического поведения системы в фазовом пространстве. Таким образом, они являются источником набора интегральных кривых x(t). Эти кривые определяются посредством обыкновенного дифференциального уравнения, дополненного необходимым для задачи Коши начальным условием [7]. GUT — = /(i, t), x(t0)=x0; (x,t)eExT (1.3)
Если векторное поле f(x, t) удовлетворяет условию непрерывности на Е х Т по обоим аргументам, то существует хотя бы одно решение задачи Коши (1.3). Решение будет единственным, если поле f удовлетворяет условию Липшица:
Определение 2 Говорят, что отображение f(x, t) : Е х Т —у R,n удовлетворяет условию Литиица на Е хТ по аргументу из Е, если существует положительное число L такое, что V х,у Є Е и V t Є Т \f(x,t)-f(y,t)\ L\x-y\ , (1.4) где L — некоторая константа (постоянная Липшица).
Определение 3 Говорят, что отобраоїсеиие f локально удовлетворят условию Литиица на Е х Т по Е, если для каоїсдой точки (xo,t) Є Е х Т существует такая е- окрестность N(xo,t) Є Е хТ, что на пей выполняется условие Липшица.
В частности, можно показать, что любое отображение f Є CY{E х Г) удовлетворяет условию Липшица. Приведем фундаментальную теорему существования и единственности решения Задачи Коши (1.3):
Теорема 1 Пусть отображение f (х, t) : Е х Т —ї R" является непрерывным и локально удовлетворят условию Липшица на ЕхТ по Е для всех (х, t) Є ЕхТ. Тогда решение задачи Коши (1.3) существует и единственно.
Так как в каждой точке кривая x(t) является касательной к векторному полю /, интегральные кривые также называются касательными кривыми поля /. Существует еще два названия этих кривых - траектория и линия пути. Эти два термина возникли вследствие рассмотрения векторного поля, как поля скоростей движения среды. Следуя этой интерпретации, физическим смыслом x(t) является путь, описанный частицей, помещенной в поток.
Частным случаем линии пути является интегральная кривая, полученная при рассмотрении векторного поля в фиксированный момент времени — кривая, полученная с помощью интегрирования уравнения (1.3) с фиксированной по времени правой частью f(x,to), называется линией поля или линией тока. Для стационарного векторного ноля, линии тока будут совпадать с линиями пути. В особой точке поля XQ, в которой /(хо) = 0, частица остается неподвижной, уравнение (1.3) имеет тривиальное решение x{t) = х0.
Линии следа также являются весьма важным объектом в механике жидкостей. Эти линии можно представить как след испускаемый точечным жидкостным пробником в поток в какой-либо точке исследуемого участка течения. Линии следа можно непосредственно наблюдать с помощью материального эксперимента. Геометрически линию следа s(i, т) с фиксированной переменной t и 0 т t можно определить как множество положений точек выпущенных из фиксированной позиции х0 в течение временного интервала [0,t], (см. Рис. 1.1). Данная кривая получается с помощью интегрирования уравнения: -s(t,r) = f(s,t), s(t,0) = xQ. (1.5)
Из определения видно, что для стационарных течений линии следа совпадают с линиями тока и линиями пути.
Другим типом кривых, возникающих в ходе исследования распространения среды, являются материальные линии или линии времени. Материальной линией m(t, а) с фиксированной переменной t называют изображение исходной кривой тп0(сг) поме ее переноса вдать линий тока поля в течение периода времени t (см. Рис. 1.2). Движение каждой точки линии времени задается обычпым образом, как для интегральных кривых: —m(t, j) = f(m,t), m{0,a)=mQ(a). (1.6)
Данная кривая может использоваться для многих визуальных симуляций поведения жидких сред - например, для моделирования распространения фронта течения.
Описанные кривые могут дать исчерпывающую информацию о структуре векторного ноля в двумерном случае. Использование этих объектов при визуализации трехмерного течения затруднительно, поскольку при отображении множества линий возможно появление артефактов, связанных с взаимным пересечением геометрических примитивов. Необходимо также отметить, что описанные интегральные кривые при отображении в трехмерном пространстве требуют дополнительных умственных усилий для воссоздания полной картины течения. Таким образом, в трехмерном случае более удобно для восприятия рассмотреть поверхность векторного поля.
Обработка геометрических данных и вершинные программы
Модуль обработки геометрических объектов работает па уровне вершинных данных. Данную стадию можно представить как набор операций, модифицирующих, некоторым образом, входящий поток вершин. На этом этапе вычисляются линейные преобразования такие как перемещение, вращение, масштабирование и проекция. Также для каждой вершины вычисляется значение освещенности с помощью выбранной локальной модели освещения. Зачастую, стадию обработки геометрических данных называют модулем преобразований и освещения (transform&lightin Преобразование моделирования: Набор линейных преобразований, который используется для задания расположения объектов относительно друг друга. К этим преобразованиям относятся поворот, параллельный перенос, масштабирование и зеркальное отображение. Вес указанные операции задаются с помощью матрицы размером 4 х 4 с использованием однородных координат.
Преобразование вида: Преобразовапие, которое используется для определения положения камеры и направления просмотра называются преобразованием вида. Это преобразование также имеет вид матрицы размером 4x4. Матрицы преобразования моделирования и вида могут быть объединены в вычисленную заранее единую матрицу. Более подробное описание этих преобразований содержится в [15, 32].
Вычисление модели освещения: После того, как все вершины расположены в виртуальной сцене, для каждой из них вычисляется значение освещенности согласно выбранной модели освещения, например модели Фонга. Так как для вычисления освещенности необходима информация о нормали к поверхности в рассматриваемой точке, расчет модели освещения происходит после преобразований моделирования-вида.
Сборка примитивов: На данном этапе происходит объединение вершин в геометрические примитивы. Вершины соединяются линиями, линии объединятся для образования многоугольников. Многоугольники произвольной формы обычно разбиваются на треугольники, для того чтобы обеспечить расположение каждой грани в плоскости. Для интерполирования значений, заданных в вершинах треугольников, используются барицентрические координаты.
Проецирование и отсечение области просмотра: Это преобразование определяет отображаемый объем (так называемый объем видимости), за пределами которого визуализация объектов виртуальной сцены не производится. Таким образом, объекты, выходящие за пределы этого объема либо отображаются частично, либо не отображаются вовсе. Вычисляется проекция геометрических примитивов па плоскость изображения.
Преобразование проецирования на плоскость экрана является последней стадией модуля обработки геометрических данных. После него все дальнейшие операции выполняются на экранной плоскости.
Вершинные программы
В современных графических ускорителях имеется механизм управления модулем трансформации и освещения с помощью так называемых вершинных программ или вершинных шейдеров. Выполнение кода этих программ происходит на стороне графического процессора и не затрагивает ресурсы центрального процессора.
Для использования этой возможности в стандарт OpenGL введено расширение ARB_vertex_program. Это расширение определяет компоненты среды для написания вершинных программ: четырехкомпонентые 32-битные инструкции с плавающей точкой и относительно большой набор регистров такого же типа.
В рамках этого расширения вершинная программа является последовательностью четырехкомпнентных векторных операций с плавающей точкой. Данная последовательность определяет, каким образом входные параметры программы и набор входных вершинных параметров будут преобразованы в набор результирующих атрибутов вершины. Вершина имеет набор стандартных атрибутов, среди которых координаты вершины, ее вес, нормаль в этой точке и координаты текстурной области, g unit, T&L). Более подробно данный модуль может быть описан в виде четырех этапов (рис. 2.2):
Реализация IBFV с помощью вершинных программ (GPU-Based IBFV)
Для расчета текстурных координат в предлагаемом алгоритме используется механизм вершинных программ, что позволяет снять нагрузку с центрального процессора при визуализации нестационарного векторного поля.
Метод IBFV (Image Based Flow Visualization) был предложен Jarke van Wijk [88J. Рассматривается, в общем случае, n-мерное векторное пате (в дальнейшем будем полагать п 2 или 3 ) и соответствующая задача Копій: V(x,t) (=Rn,x =Rn,teR, (3.1) = V(p(t),t)M0)=P (3.2) Численная аппроксимация этого уравнения первого порядка [6] с фиксированным по времени шагом At при обозначении tk = Atk имеет вид: Pk+i=Pk + V(pk,tk)At. (3.3)
Введем в рассмотрение поле материальных значений F(x, t), где х Є S. Физический смысл этого поля таков - в момент времени t в точке х находится частица, обладающая свойством F{x, t). Как правило под абстрактным свойством понимается тройка RGB, вес, значение освещенности в точке и т.д. Временная инвариантность изображения в данном случае означает F(pk+utk+i) = F(pk,tk) если Рк+иРк & S. В общем случае, исходя из (3.11), имеем: F{pk+i,tk+i) = (3.4) 1 0, else
Со временем наступит такой момент, когда большая часть F(x, t) будет иметь значение 0, так как почти все рк выйдут за рамки области S. Воспрепятствовать этому явлению "вымывания,,изображения F(x,t) можно путем подмешивания к полю материальных значений шумового сигнала G(x,t): F(Pk+i,tk+i) = (1 - a)F(pk, tk) + aG(pk+1, tk+l) (3.5) Повторяя это процесс N раз и полагая первое слагаемое F(pQ, 0) абсолютно черным, дабы исключить его влияние на итоговое изображение, имеем: 71-1 F(pn,tn) = a(l -aYG(pk tk-i) (3.6)
Таким образом, цвет каждой точки изображения рп представляет собой численную аппроксимацию свертки шумового изображения вдоль линии тока р с экспоненциально затухающей функцией фильтра а(1 — а) . Это делает метод похожим на алгоритмы семейства Line Integral Convolution, с тем отличием, что наблюдаемый результат в нашем случае является эволюцией во времени выражения (3.6) Шумовое изображение G(x, t) выбирается таким, чтобы оно не содержало компонент высоких частот, например - розовый шум.
Реализация этого метода в контексте OpenGL состоит в разбиении изображения на мелкие квадратные участки, смещенные вдоль линий
тока. Такое смещенное разбиение удобно производить с помощью наложения текстурного изображения на полигональную сетку, узлы которой сдвинуты согласно значению поля скоростей в этих точках. Данное наложение текстуры обеспечивает продвижение отдельных участков изображения в течении в рамках одной итерации метода. После отрисов-ки искаженной текстуры в буфер кадра, с помощью операций альфа-смешивания составляется линейная комбинация F и шумовой тесксту-ры G ;, где к = 1,N. Результат линейной комбинации копируется из буфера кадра и сохраняется в качестве нового изображения F - оно участвует в следующей итерации метода. Необходимо отметить, что строгие рассуждения относительно F(pn,tn) (3.6) справедливы лишь для точек, расположенных в узлах сетки. Внутри ячейки сетки к текстуре будут применены операции билинейного интерполирования с учетом четырех точек, определяющих узлы сетки. Однако выбор достаточно малого шага полигональной сетки (несколько пикселей) позволяет получать качественную визуализацию течения.
Организация вычислений алгоритма IBFV позволяет задействовать ресурсы графической системы компьютера и снять нагрузку с центрального процессора, поскольку все упомянутые операции - наложение текстуры на полигональную сетку, линейная комбинация в буфере кадра и копирование изображения из буфера в текстурную память происходят практически без участия ЦП. Данный метод использует графический процессор неявно, без прямого к нему обращения — на уровне операций текстурирования и альфа-смешивания.
Метод декомпозиции трехмерного текстурного куба в двумерную текстуру
Использование указанных алгоритмических средств даст возможность получать интерактивную анимацию нестационарного течения в реальном времени. В зависимости от времени жизни и количества частиц скорость визуализации меняется от 5 до 50 кадров в секунду. Следствием увеличения времени жизни частицы является уменьшение производительности метода, поскольку при этом растет длина следа частицы и количество передаваемых в графическую карту полигональных данных.
В некоторых случаях, удовлетворительные результаты визуализации можно получить, начиная с 800 частиц, установив время жизни на уровне 50 итераций. Однако, для комфортного восприятия течения необходимо ие менее 10000 частиц. При этом время жизни частицы может варьироваться от 20 до 200 итераций. Необходимо отметить что показатель времени жизни частицы L и значение шага интегрирования h оказывают непосредственное влияние на длину следа частицы. Подбор этих параметров должен осуществляться таким образом, чтобы протяженность линии тока оставалась небольшой. В противном случае, результат визуализации будет искажен накопившейся погрешностью численного метода. С другой стороны, слишком малая величина пробега частицы снижает информативность производимой визуализации.
Анализ конвейера вычислений показал, что самой трудоемкой операцией является растеризация следов частиц. Вычисления ядра фраг-ментной программы составляют не более чем десять процентов времени, необходимого на выполнение одной итерации метода. Данный факт говорит об эффективности предложенного подхода и возможности усовершенствования алгоритма с использованием методов интегрирования высших порядков.
Однако даже в напряженном режиме визуализации (около 20000 частиц, 50 вершин в следе частицы, размерность решетки выборок векторного значения 1283) метод имеет производительность на уровне 10-25 кадров в секунду, что в большинстве случаев превосходит текстурные методы визуализации. При этом, повышение размерности течения не оказывает серьезного влияния на производительность метода. В сводной таблице 4.3 представлена среднестатистическая производительность имеющихся на сегодняшний момент текстурных алгоритмов визуализации.
Автором была произведена визуализация нескольких векторных полей, результаты которой представлены на рис. 4.5.
Дальнейшее развитие этого метода предполагает нахождение опти мального подхода к распределению частиц в единичном кубе. В настоящий момент наблюдается эффект максимальной концентрации отрезков линий тока в тех областях, где частицы проходят максимальное расстояние, в то время как концентрация в других областях течения падает. Возможно, для устранения этого явления потребуется существенный пересмотр модели поведения частицы в пространстве.
Способ изображения линий тока может быть улучшен путем наложения текстуры на полигональный след частицы. Кроме этого возможно применив целого семейства приемов (раскраска линий тока, выборочная подсветка и т.д.) для увеличения познавательной способности анимации. Этому во многом способствует возможность гибко управлять конвейером растеризации.
В этой главе был представлеп алгоритм визуализации трехмерного нестационарного течения. Характерной особенностью этого метода является анимационная последовательность, для генерации которой используется трассировка затухающих следов частиц в течении. Расчет продвижения и визуализация следов частиц происходит па стороне графического процессора.
По аналогии с текстурными методами визуализации в этом алгоритме испотьзуется затухание сигнала во времени. В рамках этой концепции, применительно к геометрическим объектам, частица обладает временем жизни в потоке. Обновление позиции частицы по истечении этого времени происходит с помощью набора шумовых текстурных объектов.
По результатам испытаний и сравнительного анализа этого алгоритма с аналогичными методами из семейства текстурной визуализации можно выделить ключевые особенности и характеристики данного метода:
Высокая скорость визуализации. Благодаря отсутствию громоздких трехмерных текстурных объектов и оптимизации вычислений для их реализации на базе графического процессора получен уровень производительности, в подавляющем большинстве случаев превосходящий текстурные алгоритмы. Узким местом в предлагаемом алгоритме является непосредственно отображение множества отрезков линий тока.