ИСПОЛЬЗОВАНИЯ ТЕХНОЛОГИИ CORBA ПРИ ПОСТРОЕНИИ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ВИЗУАЛИЗАЦИИ ВЕКТОРНЫХ И СКАЛЯРНЫХ ПОЛЕЙ А.А. Аниканов Южно-Российский региональный центр информатизации высшей школы, г.Ростов-на-Дону Введение В последние годы наблюдается рост исследований в области визуализации скалярных и векторных полей, что связано с сильным развитием средств компьютерной графики. Традиционные методы визуализации такие, как стрелочные диаграммы и изолинии не способны детально передавать структуру полей. Были предложены методы, решающие данную проблему. В области визуализации скалярных полей широкое распространение получили методы цветового кодирования [5]. Для векторных полей методы построения линий тока позволили более детально передавать топологию поля. Текстурные методы [3] позволили передавать почти всю информацию о двумерном векторном поле. Недостатком текстурных методов является большое количество вычислительных затрат. В этой связи актуальной является задача построения систем визуализации с распределенными вычислениями и использованием клиент серверной модели для проведения части визуализации на удаленных серверах и передачи итоговой информации через Интернет на клиентские машины. Кроме того, многие методы визуализации используют ранее предложенные методы в своем составе. По этой причине, важной является задача разбиения программного обеспечения на независимые повторно используемые компоненты. Для построения программного обеспечения в виде независимых компонентов хорошо подходит технология CORBA [2]. Для той же цели может быть использована технология COM. Однако ее использование ограничено платформами Windows. Такое ограничение существенно сузит области применимости программ визуализации. В настоящей работе предложен способ разбивки системы визуализации на независимые компоненты с помощью технологии CORBA на основе разработанного ранее автором программного обеспечения ВизАЭффект. В первой части работы описываются основные идеи используемых методов визуализации. Во второй части предложена структура компонентной модели визуализации. 1. Используемые методы визуализации. В программе ВизАЭффект были реализованы следующие методы визуализации. Карта движения – текстурный метод визуализации векторного поля. Алгоритм построения линий тока для векторных полей с произвольной границей. Метод передачи третьей компоненты трехмерного векторного поля при визуализации сечений поля. Рассмотрим основные идеи данных методов. Метод анимации векторных полей с помощью карты движения был предложен в [4]. Он основывается на карте движения – структуре, которая используется для создания анимации текстурных пятен вдоль линий тока, и представляет собой двумерный массив ячеек такого же размера, что и конечное изображение. При рисовании линий тока в эти ячейки заносятся значения индексов из таблицы цветов. При проведении циклического сдвига инРис. 1 дексов в таблице, происходит эффект анимации. Пример результатов визуализации данным методом с помощью программы ВизАЭффект показан на рис. 1. ВизАЭффект изначально разрабатывалась для визуализации течений в водном объекте. Численное интегрирование линий тока обычно осуществляется методом РунгеКутта 4-го порядка с адаптивным размером 3 Рис. 2. шага, контролем погрешности и интерполяцией Эрмита [6]. Однако, для использования данного метода при визуализации течений в водных объектах необходимо построение линий тока с учетом произвольной границы поля, определяемой формой дна объекта. В таких условиях может возникнуть ситуация, когда отрезок линии пересекает границу, либо следующую точку линии вообще не возможно вычислить. Для решения данной проблемы в [1] предложен специальный алгоритм, идея которого заключается в использовании метода Рунге-Кутта более низкого порядка, а так же в делении шага интегрирования пополам в случаях невозможности вычисления следующей точки или пересечения отрезка линии с границей поля. В целях облегчения анализа структуры поля по изображениям сечений был предложен метод, заключающейся в кодировании цветом третьей компоненты векторов поля. Для этого предложено строить отображение значений угла между вектором поля и плоскостью сечения на некоторую палитру цветов. Таким образом, получается цветное изображение, кодирующее третью компоненту векторного поля. 2. Структура компонентной модели визуализации. При визуализации векторного поля с помощью программы ВизАЭффект осуществляются следующие процессы. Из трехмерного векторного поля извлекается двумерное. Далее, либо порождается стрелочная диаграмма, либо интегрируются линии тока из выбранных точек, либо создается карта движения, которая затем используется для расчета кадров анимации. Кодирование цветом третьей компоненты поля совмещается с изображениями стрелочных диаграмм, линий тока и каждого кадра циклической текстурной анимации. При визуализации сечений скалярного поля из трехмерного поля порождается двумерное. Далее скалярные Значения поля отображаются на оптимизированную палитру цветов. Полученное цветное изображение поступает на выход визуализации. Используя данную структуру процессов визуализации, была разработана компонентная модель системы визуализации векторных и скалярных полей, схема которой показана на рис. 2. Далее рассмотрим эту модель более подробно. Компонент "трехмерное векторное поле" имеет метод считывания информации о поле из файла и метод выдачи значения поля в заданной точке. Такой интерфейс скрывает внутреннюю структуру поля и делает независимым программное обеспечение от типа входных данных. Подобный интерфейс имеет компонент "трехмерное скалярное поля". Компонент "двухмерное векторное поле" имеет похожий интерфейс. Но к списку методов добавляется метод извлечения информации о двумерном векторном поле из трехмерного поля в соответствии с выбранным сечением. Аналогичные методы имеет компонент "двумерное скалярное поле". Только в данном случае к списку методов добавляется извлечение информации о скалярном поле угла между векторами трехмерного поля и плоскостью среза на основе информации о выбранном сечении. Выходными данными для компонент двумерного векторного и скалярного поля будут являться только значения поля в заданной точке, что позволяет в дальнейшем наращивать или заменять методы визуализации. Используя вызов метода выдачи значения двумерного векторного или скалярного поля, строятся компоненты, реализующие методы визуализации: стрелочная диаграмма, линия тока, карта движения, цветовой код скалярных данных. На основе этих компонент нижнего уровня далее возможно построение компонент, реализующих различные интерфейсы визуализации скалярных и векторных данных. Заключение Основным результатом представленной работы является предложенная структура компонентной модели визуализации векторных и скалярных полей, разработанная на основе программы ВизАЭффект. В работе показана актуальность создания распределенных компонентно-ориентированных систем визуализации научных данных. Предложено использовать технологию CORBA для разработки программно и аппаратно независимой системы визуализации. Работа выполняется в рамках федеральной целевой научно-технической программы "Исследования и разработки по приоритетным направлениям развития науки и техники" на 2002-2006 годы, Блок1 "Ориентированные фундаментальные исследования", раздела "Информационные технологии и электроника" по теме №10: "Компонентно-ориентированная методология построения интегрированных информационных систем математического моделирования и научной визуализации". 1. 2. 3. 4. ЛИТЕРАТУРА: Аниканов А.А. Визуализация векторных полей с использованием текстурной анимации // Изв. вузов. Сев.-Кав. регион. Естеств. науки. 2001. №4. С. 5-9. Аншина М. Симфония CORBA // Открытые системы, 1998. №3. Cabral B., Leedom L. C. Imaging vector fields using line integral convolution // Computer Graphics (SIGGRAPH'93 Proceedings). 1993. Aug. Vol. 27. P. 263-272. Jobard B., Lefer W. The Motion Map: efficient computation of steady flow animation // IEEE Visualization '97. Phoenix, Arizona, USA. 1997. P. 323-328. 4 5. 6. Rheingans P., Tebbs B. A Tool for Dynamic Exploration of Color Mappings // Computer Graphics, 24, n.2, 1990. P. 145-146. Stalling D., Hege H.-C. Fast and resolution independent line integral convolution // SIGGRAPH'95 Conference Proceedings. 1995. P. 249-256. 5