Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема 2. Инструментальные средства научной визуализации



Тема 2. Инструментальные средства научной визуализации

Общие характеристики инструментальных средств.

Как было указано в параграфе 1.2., процесс решения задачи анализа тех или иных научных данных методом научной визуализации включает в себя 2-а этапа. На первом этапе осуществляется разработка и реализация алгоритма визуализации исходных данных. Этот алгоритм реализуется с использованием компьютера.

Реализация осуществляется путем написания прикладной программы визуализации на некотором входном языке программирования используемого инструментального средства (совокупности средств) в виде некоторого программного продукта (совокупности программных продуктов). Соответственно в прикладной программе визуализации должны быть описаны используемые шаги конвейера визуализации (отметим, что в общем случае, в прикладной программе визуализации могут описываться не все шаги конвейера визуализации, подобные ситуации рассмотрены ниже при описании примеров инструментальных средств). Отметим также, что прикладная программа визуализации может быть непосредственно написана человеком, решающим задачу анализа данных, либо он использует «чужую», написанную ранее прикладную программу.

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

1. функциональные процедуры задание исходных данных; 2. функциональные процедуры фильтрации; 3. функциональные процедуры мэппинга; 4. функциональные процедуры рендеринга.

Прикладная программа визуализации обрабатывается компьютером и инициирует выполнение этих функциональных процедур при реализации соответствующих шагов алгоритма визуализации. Результаты выполнения функциональных процедур доступны прикладной программе визуализации для последующего использования (рис.2.1). Рис. 2.1

Результатом выполнения функциональных процедур 1-й группы является представление исходных данных в памяти компьютера (компьютерная модель этих данных).

Результатом выполнения функциональных процедур 2-й группы является компьютерная модель отфильтрованных данных.

Результатом выполнения функциональных процедур 3-й группы является компьютерная модель пространственной сцены.

Результатом выполнения функциональных процедур 4-й группы является проекционное графического изображение на используемом графическом терминале.

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

Отметим, что то или иное инструментальное средство научной визуализации может располагать не всем набором функциональных процедур. При отсутствии необходимой функциональной процедуры, эта функциональная процедура описывается человеком в теле прикладной программы визуализации.

Рассмотрим примеры программных продуктов, которые могут быть использованы в качестве инструментальных средств (причем как автономно, так и совместно) для решения прикладных задач анализа данных методом научной визуализации.

Программный продукт 3ds Max

3ds Max — широко известный программный продукт, обладающий развитыми функциональными возможностями для моделирования и визуализации произвольных сложных пространственных сцен, которые могут быть использованы при написании сложных прикладных программ визуализации.

Разработка 3ds Max (тогда этот программный продукт назывался 3d Studio Max) была начата в 1993 году, когда входящей в состав компании Autodesk группе Kinetix поручили создать новый продукт на базе пакета 3d Studio для MS DOS. Главными особенностями программного продукта должны были стать: графический интерфейс, объектно-ориентированная архитектура и полная поддержка системой Windows.

Структура 1-й версии программного продукта, вышедшая в 1995 году, подразумевала, что любая функциональная процедура, задаваемая человеком, может быть выполнена дополнительным модулем (плагин). Следует отметить, что основные концепции программного продукта, в том числе объектно-ориентированная архитектура и «мертвая» привязка к платформе Windows актуальна и по сей день. Название программного продукта менялось, в настоящее время он называется 3ds Max.

Рассмотрим основные характеристики функциональных процедур 3ds Max, используемого в качестве инструментального средства при написании прикладных программ визуализации. В начале, рассмотрим основные характеристики входного языка программирования 3ds Max - языка MaxScript, используемого для написания прикладной программы визуализации.

Функциональные процедуры фильтрации данных

В программном продукте 3ds Max отсутствуют программные средства которые можно было бы использовать в качестве программных функциональных процедур фильтрации. Поэтому эти функциональные процедуры необходимо включать в тело прикладной программы визуализации, написанной на языке MaxScript. Для этого могут быть использованы различные типы операторов MaxScript, упомянутые выше.

Пример 2.2

Будем рассматривать в качестве исходных данных численные значения координат десяти пространственных точек из предыдущего примера. Пусть фильтрация исходных данных состоит в том, чтобы из числа исходных 10-ти точек нужно для последующей визуализации отобрать только те из них, которые лежат внутри куба. Грани этого куба параллельны координатным плоскостям, координаты левого нижнего угла (-5, -5, -5), координаты правого верхнего (5, 5, 5). Отфильтрованные данные заносятся в массивы ArrayX2, ArrayY2, ArrayZ2 соответственно. Фрагмент прикладной программы визуализации, описывающий функциональную процедуру фильтрации, будет иметь следующий вид:

……….

ArrayX2 = # ()

ArrayY2 = # ()

ArrayZ2 = # ()

for i = 1 to 10 do ----- оператор цикла,

( ----- где значение переменной i изменяется от 1 до 10

x = ArrayX [i] ------ присвоение переменной x значения текущего элемента массива

y = ArrayY [i] ------ присвоение переменной y значения текущего элемента массива z = ArrayZ [i] ------ присвоение переменной z значения текущего элемента массива

if (x > -5 and x < 5 and y > -5 and y< 5 and z > -5 and z < 5) --- оператор условия

--- проверка нахождения точки

--- внутри куба

then

(

append ArrayX2 x ------ занесение выбранного значения переменной x в массив

append ArrayY2 y ------ занесение выбранного значения переменной y в массив

append ArrayZ2 z ----- занесение выбранного значения переменной z в массив

)

)

……….

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

Программный продукт VTK

VTK — широко известный программный продукт, который, в отличие от рассмотренных в предыдущих параграфов 3ds Max и HyperFun, является специализированным инструментарием, предназначенным для решения задач научной визуализации.

VTK представляет собой широкий набор функциональных процедур визуализации. Эти функциональные процедуры подразделяются на 4-ре рассмотренные ранее группы функциональных процедур визуализации, а именно процедуры задания исходных данных, процедуры фильтрации, процедуры мэппинга и процедуры рендеринга.

Первая версия VTK была разработана в 1993 году сотрудниками компании GE Corporate R& D. VTK распространяется как открытое программное обеспечение. В его дальнейшем развитии принимали участие пользователи из различных стран. На сегодняшний день VTK принято считать наиболее развитым программным инструментальным средством с объектно-ориентированной архитектурой, предназначенным для написания прикладных программ визуализации.

Рассмотрим основные характеристики функциональных процедур VTK, используемого в качестве инструментального средства при написании прикладных программ визуализации. В начале, рассмотрим основные характеристики наиболее часто используемого входного языка программирования VTK – языка C++, используемого для написания прикладной программы визуализации.

Программирование на языке C++

Язык C++ - язык программирования общего назначения, он обеспечивает гибкие эффективные средства для написания любых программ, в том числе программ визуализации. Язык является объектно-ориентированным, предусматривающим использование классов. Функциональные процедуры визуализации представлены в VTK как классы, описываемые на языке C++. Эти функциональные процедуры инициируются с помощью языковой конструкции - оператора функции. В общем случае может использоваться несколько операторов функции. Наряду с этим язык C++ предоставляет возможность использования всех типов операторов, описанных ранее при рассмотрении 3ds Max и HyperFun.

Оператор функции может описываться с помощью синтаксической конструкции, которая в общем случае имеет вид:

< название класса>:: < название функции> (< параметр функции>, < параметр функции>, …< параметр функции> );

Как правило, в прикладной программе визуализации экземпляр класса VTK задается с помощью оператора функции New(), после чего ему присваивается имя и вызов всех последующих операторов функций происходит через это имя. Более подробную информацию о синтаксических конструкциях С++, используемых для задания и последующей работы с экземплярами классов, можно найти в документации по С++.

Обращение к результатам выполнения функциональных процедур задания исходных данных, фильтрации и мэппинга при написании прикладных программ визуализации с использованием программного инструментального средства VTK, как правило, происходит с помощью оператора функции GetOutputPort(). Получение функциональными процедурами фильтрации и мэппинга результатов выполнения соответствующих функциональных процедур, как правило, происходит с помощью оператора функции SetInputConnection(..). Фрагметры прикладных программ визуализации с использованием этиъ операторов функций приведены в приерах 2.26 и 2.28.

Рассмотрим примеры использования операторов функций для вызова функциональных процедур VTK. Начнем с рассмотрения функциональных процедур задания исходных данных.

Функциональные процедуры задания исходных данных

При использовании языка C++ функциональными процедурами задания исходных данных являются процедуры открытия файла, чтения данных из файла, закрытия файла. Инициация этих функциональных процедур может быть выполнена с помощью стандартных операторов функций С++ fopen(..), fread(..), fclose(..) и т.д. Более подробную информацию об этих операторах функций можно найти в любой документации по языку С++. Помимо этого, VTK предоставляет также набор специализированных функциональных процедур задания исходных данных, более простых в использовании по сравнению с указанными выше. Как правило, это функциональные процедуры открытия, чтения исходных данных и закрытия файлов определенного типа: xyz, pdb, Gaussian Cube и т.д. Как и для всех групп функциональных процедур VTK, инициация этих функциональных процедур происходит с помощью операторов функций.

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

Пример 2.25

……………..

vtkXYZMolReader *pdb0= vtkXYZMolReader:: New(); // выбор функциональной процедуры чтения исходных данных как задание экземпляра (c именем pdb0) класса (с именем vtkXYZMolReader)

pdb0-> SetFileName (" caffeine.xyz" ); // оператор функции SetFileName(), инициирующий выполнение выбранной функциональной процедуры открытия, чтения исходных данных и закрытия файла с именем " caffeine.xyz". Результат выполнения данной функциональной процедуры доступен, по умолчанию, для последующих функциональных процедур через соответствующий оператор функцию GetOutputPort().

………………

Результатом выполнения этой функциональной процедуры будет компьютерное представление исходных данных в виде совокупности четверок (x, y, z, s), где x, y, z – координаты точки, s –числовое значение, соответствующие типу атома.

Тема 2. Инструментальные средства научной визуализации


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-30; Просмотров: 378; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь