Реферат: Коваленко А.Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика»: ? стр., ? ил., ? таблицы, библ.: ? назв., ? приложений.Ключевые слова: атрибут, интерфейс, множественная иерархия.В работе описывается реализация специализированной системы визуализации решений дифференциальной игры. При этом предусматривается унификация этой программы. В программе реализована схема, позволяющая формировать мультииерархии из объектов. Между объектами возможны множественные связи, эта схема позволяет организовать взаимодействие в таких условиях. Также разработана схема манипулирования атрибутами объектов, есть возможность динамического их создания и включения в интерфейс. Тем самым объекты управляются не непосредственно, а с помощью атрибутов. Используя атрибуты можно проводить обмен свойств объектов. В заключении описывается иная схема структуры программы, что может дать возможность сделать программу визуализации менее зависимой от интерфейса и более гибкой.Содержание^ Введение 3 Введение Научная визуализация являлась одной из главных целей применения машинной (компьютерной) графики с 60-х годов. Первые пакеты машинной графики содержали значительный набор средств, направленных на представление результатов численного моделирования. В частности ГРАФОР и СМОГ содержали не только примитивы вывода, но и богатые наборы функций, осуществляющих графическое представление математических объектов. К середине 80-х годов сложилась ситуация, когда, с одной стороны, появилась потребность в создании специализированных средств научной визуализации для представления результатов супервычислений в самых различных областях знаний, а с другой – были разработаны аппаратные, алгоритмические и программные средства компьютерной графики, позволявшие качественное отображение изучаемых объектов и феноменов. Официально научная визуализация оформилась после публикации в ноябре 1987 г. доклада “Визуализация в научных вычислениях”. Доклад содержал три основные части: Определение визуализации. Проблемная область визуализации. Рекомендации для инициативы в научной визуализации.Этот доклад положил начало программе в области научной визуализации, которую начали осуществлять ученые и специалисты США с 1987 г. В приложениях к докладу был приведен обширный список уже существовавших к тому времени разработок в этой области. Вскоре появились спецвыпуски журнала Computer со статьями (по сути, с отчетами) ученых из ведущих исследовательских центров США, в которых рассказывалось о системах визуализации, применяемых в различных областях науки. При анализе средств визуализации следует различать примеры визуализации и системы визуализации. Системы визуализации могут иметь дело с произвольными модельными объектами из определенного класса. Примеры визуализации являются или сделанною вручную демонстрацией, или достаточно гибкой визуализацией особенностей некоторого модельного объекта. При этом следует отметить, что система визуализации может быть проще мощного примера, как по функциям, так и по использованным графическим средствам. Следует отметить две тенденции развития систем визуализации. С одной стороны – разработка универсальных средств визуализации, с другой – специализация по всем направлениям, вплоть до создания специальных графических станций с реализацией для данного случая графическим алгоритмическим и программным обеспечением. Системы визуализации, в свою очередь, можно разделить на универсальные и специализированные, обслуживающие определенный класс пользователей и задач и содержащих свои методики визуализации. Характерным примером универсальной системы визуализации служит Open Visualization Data Explorer (DX), разработанная компанией IBM (первоначально эта система носила коммерческий характер, а в последствие стала доступна для свободного распространения). Эта система характеризуется богатым набором средств визуализации и стандартных способов представления модельных сущностей – видов отображения. Кроме того, в состав DX входит набор неграфических функций, например наборы математических выражений, статистические функции, средства обработки изображений и т.д. Важными являются разработанные в этой системе подход к описанию визуализации, основанный на потоке данных и поддерживающий конвейер визуализации (фильтрация, мэппирование, рендеринг). Для описания визуализации в DX вводится язык на базе потока данных. Средства визуализации в пакетах прикладных программ, например, таких как Maple, MathCAD, также можно рассматривать как универсальные системы визуализации. Т.е. математические объекты, которые можно описать средствами пакета, можно и визуализировать, используя имеющиеся приемы и виды отображения с фиксированными параметрами. Часть пакетов для описания визуализации использует визуальные языки на базе потока данных. Важной особенностью универсальных систем является наличие типового набора видов отображения для типовых математических объектов. Тем самым они могут дать инструмент для разработки специализированной визуализации. Задача пользователя - так описать связь между модельными сущностями, которые необходимо визуализировать, и стандартными видами отображения, чтобы увидеть интересующие его особенности изучаемых объектов. Это зачастую требует от пользователя значительных усилий, а иногда вывод важных особенностей практически неосуществим. В принципе, при помощи универсальных систем можно отобразить любые математические объекты. Другой вопрос, какие усилия требуются от пользователя, причем не столько при визуализации, сколько при интерпретации результатов. Кроме того следует отметить, что полностью универсальных систем визуализации не существует. По сути, универсальные системы содержат некоторый стандартный набор (“универсальных”) видов отображения и приемов визуализации. Специализированные системы облегчают работу пользователя, а, в случае исследования принципиально новых модельных объектов, только за счет их использования можно получить наглядное представление об их природе и особенностях. Существует несколько подходов к обеспечению специализации. В Частности возможна специализация систем по объектам визуализации. Например, система визуализации сеток, реализованная в Sandia Labs, позволяет осуществить различные методики вывода, в том числе с использованием технологий виртуальной реальности. При этом возможно сравнение различных подходов к визуализации модельных объектов. Рис. . Система интерактивной визуализации параллельных вычислений, разработанная в Sandia Labs.Возможна реализация специализированных сред, в которых на основе одной методики визуализации решается целый ряд проблем из различных отраслей знаний. Но классификация систем визуализации проводится, прежде всего, по научным направлениям, для которых разрабатываются соответствующие системы. Существуют такие подразделы научной визуализации, как биомедицинская визуализация, химическая визуализация, визуализация аэро и гидродинамики, географическая визуализация и т.п. Сформулируем приемы построения видов отображения в специализированных системах компьютерной визуализации: Визуальное утрирование особенностей за счет зависимых от данного случая знаний о физической (биологической, информационной и т.п.) и/или математической сущности данных. Выбор необходимой перспективы наблюдения, в которой необходимо строить графический вывод. Построение специальных визуальных объектов, не имеющих соответствия среди модельных объектов, но обеспечивающих их анализ и интерпретацию. Применение множественности видов отображения, показывающие разные аспекты изучаемого явления, создание систем видов отображения, включающих графику, анимацию, табличные и текстовые представления, а также управление выводом за счет непосредственного манипулирования визуальными объектами. Использование при построении видов отображения естественной и привычной образности. Применение в системах визуализации различного назначения новых методик визуализации, в частности методик виртуальной реальности. Схема проектирования и реализации систем визуализацииПрежде всего, схема состоит из ряда позиций, по которым ведется проектирование системы визуализации. Она включает в себя также последовательность вопросов, связанных с этими позициями. Основные позиции проектирования в свою очередь определяют набор ролей участников процесса проектирования и разработки. Опишем сначала участников процесса разработки, понимая при этом, что в реальном проекте одни и те же люди могут играть разные роли. В проектировании и разработке участвуют следующие специалисты: Заказчик-пользователь. Проектировщик визуализации. Специалист в методах компьютерной графики и человеко-компьютерного взаимодействия. Системный программист. Основные позиции схемы проектирования специализированных систем визуализации следующие: Решаемая проблема (задача). Пользователь, для которого предполагается построить средства визуализации. Программа, решающая данную проблему. Образность визуализации и методы взаимодействия. Методики генерации и вывода графики. Системные вопросы. Рассмотрим (неполный) круг вопросов, возникающих в связи с каждой позицией. Отметим, при этом, что все полученные разделы тесно связаны друг с другом, а вопросы из одного раздела, по сути, вытекают из предыдущих. Решаемая проблема (задача). Необходимо уяснить ряд пунктов и получить ответ на вопросы: область исследования, ее физическая и математическая модели, мерность модели и ее объектов, методы и алгоритмы получения численного решения; какова цель моделирования, каков основной набор сущностей моделирования, каковы объекты особого интереса, наличие особых точек, аттракторов, сингулярностей и т.д., можно ли (и нужно ли) изучать эти сущности и объекты особого интереса при помощи косвенных методов и специально построенных искусственных объектов (артефактов), анализа дополнительных характеристик. Пользователь проектируемой системы визуализации. Специальность пользователя, используемые методики исследования, каков набор знаний пользователя (общих, специальных и компьютерных), профессиональная культура опыт работы с вычислительными и, в частности, с визуальными системами, каковы стимулы и мотивации пользователя, какие знания пользователя о модели и программе могут быть использованы при создании видов отображения и генерации конкретных графических выводов. Программа. Имеет место параллельное, распределенное или последовательное исполнение, существует ли возможность доступа к данным во время выполнения программы или программа оставляет результаты счета во внешней памяти или файловой системе, когда генерируются необходимые для визуализации данные (при возможности доступа к данным во время выполнения программы), есть ли возможность во время выполнения программы “разметить” исходные данные с тем, чтобы облегчить выделение особенностей. Образность визуализации и методы взаимодействия. Присущая данной проблематике образность, возможность применения и/или генерации метафоры визуализации, каковы цель визуализации, какие объекты мы будем показывать в каждом конкретном случае, как мы можем отобразить интересующие пользователя объекты, возможность использования стандартных видов отображения и методов взаимодействия с пользователем для отображения важных и интересных особенностей и объектов или необходимость для этого поиска или генерации новых видов отображения, роль динамики для представления изучаемых процессов, возможность использования технологий виртуальной реальности, какие методы человеко-компьютерного взаимодействия следует использовать в выбранных видах отображения. Методики генерации и вывода графики. Какие методики генерации изображения (рендеринга) адекватны выбранным видам отображения, с учетом потенциальной анимации, виртуальной реальности и пр. Системные вопросы. Системные вопросы возникают в связи с реализацией интерфейса между компонентами проектируемого программного комплекса. Особенно серьезными эти вопросы становятся в случае параллельной или распределенной его реализации. Задача на визуализациюВ середине 1997 года возникло сотрудничество с отделом динамических систем в области визуализации решений дифференциальных игр. Были созданы несколько систем.Первой работой являлась система визуализации построения максимальных стабильных мостов в линейных дифференциальных играх для задач с фиксированным моментом окончания и терминальной функцией платы. Каждое множество уровня функции цены является максимальным стабильным мостом. Если функция платы зависит только от двух координат фазового вектора в момент окончания, то стандартным является переход к эквивалентной дифференциальной игре второго порядка. Построение мостов при этом ведется в трехмерном пространстве, определяемом двумерной фазовой переменной и временем. Каждая трубка (максимальный стабильный мост) соответствует определенному значению цены игры. Трубка задается набором параллельных двумерных многоугольных сечений, перпендикулярных оси времени. Сечение определяется упорядоченным списком координат своих вершин. Средства визуализации отдельных мостов или системы мостов должны дать информацию об устройстве функции цены и ее особенностях. Традиционные методы визуализации этих объектов заключались в построении проекций контуров сечений на плоскости, параллельные осям координат. При увеличении числа сечений изображение становится перегруженным. Одновременное же отображение нескольких трубок в этом случае является еще более затруднительным. Необходимо было показать объект в виде поверхности, со всеми ее особенностями. Под особенностями, в основном, понимаются нарушения гладкости, которые могут зарождаться и исчезать на сечениях трубки с течением времени. Далее, чтобы получить представление о функции цены игры в целом, нужно обеспечить одновременное отображение нескольких трубок, построенных для разных значений цены. При этом на изображении должны восприниматься как конкретные мосты, так и вся структура. В результате была разработана система, позволяющая в интерактивном режиме рассматривать трехмерное изображение объектов с разных положений. Мосты представляются в двух видах. Первый - параллельная проекция контуров сечений на произвольную плоскость. Этот вид отображения служит для поиска такого ракурса, который наиболее удовлетворяет пользователя. Когда удачный ракурс найден, используется второй вид отображения - восстановленная с помощью триангуляции по контурам сечений поверхность, которая изображается с закраской Гуро. Поверхность освещается источником света, положение которого устанавливается пользователем. Трубкам присваиваются атрибуты – цвет и прозрачность. Возможна одновременная визуализация нескольких трубок. Допускается переключение режимов прозрачности/непрозрачности и видимости/невидимости. Программы первой версии системы написаны на языке С для UNIX-подобных ОС с оконной системой X Window. В качестве графического языка был использован OpenGL. Графический пользовательский интерфейс был реализован средствами Motif. Важное требование к системам визуализации заключаются в том, что алгоритмы, заложенные в системе, должны сами находить интересные особенности в данных, описывающих математические объекты, чтобы затем на них могло концентрироваться внимание пользователей. При выборе соответствующих алгоритмов для системы визуализации стабильных мостов это требование в целом было учтено. Так, например, изменение индикации точек в диапазоне от 0 до 180 градусов используется для обнаружения нарушения гладкости трубок. Значительную роль в данной системе играют интерактивные средства управления выводом изображения и изменения видов отображения информации. Пользователь имеет возможность изменять положение и ориентацию объекта в трехмерном пространстве, масштаб вывода изображения, положение источника света и секущих плоскостей, изменить ракурс вывода, а также отображать мосты в различных режимах прозрачности. Система имеет следующую логическую структуру: Чтение входных файлов. Восстановление поверхности по сечениям для каждого моста. Инициализация оконной системы и средств пользовательского интерфейса. Цикл обработки сообщений от оконной системы. Для восстановления поверхности по набору сечений применен следующий метод. Алгоритм осуществляет построение треугольников, соединяющих два соседних сечения. На первом этапе производится поиск угловых точек на каждом из многоугольников. Угловой точкой считается вершина, угол при которой меньше заданного значения. Это значение выбирается из эмпирических соображений. Далее из этих точек выбираются два равномощных подмножества, между которыми устанавливается взаимно-однозначное соответствие. Другими словами, соединяются соответствующие угловые точки двух сечений. После этой операции для каждой пары получившихся дуг осуществляется процедура триангуляции. Если все объекты в отображаемой сцене непрозрачны, то для удаления скрытых поверхностей достаточно использования алгоритма z-буфера. При этом порядок вывода примитивов несущественен. Если же в сцене присутствуют полупрозрачные элементы, то возникает дополнительная проблема. Для получения правильного результата необходимо осуществлять вывод, начиная с дальних от наблюдателя элементов и кончая ближними, с использованием процедуры alpha blending, для которой OpenGL позволяет определить стандартные функции. При сортировке треугольников был использован модифицированный алгоритм Ньюэла-Санча. При выводе многоугольника с использованием освещения средства языка OpenGL позволяют использовать два режима - flat и smooth. В последнем случае для каждой вершины в отдельности указывается нормаль к поверхности. Освещенность в вершинах просчитывается на основе закона отражения Ламберта по свойствам отражающей поверхности, положению источников света и направлению нормали. В остальных точках многоугольника освещенность вычисляется путем билинейной интерполяции по ближайшим вершинам. Для изменения ориентации объекта использовался так называемый алгоритм arcball controller. Этот алгоритм позволяет интуитивно понятно осуществлять произвольные вращения объекта в трехмерном пространстве с помощью координатного указателя (например, мыши). Пользователь оперирует на экране с воображаемой сферой. Нажатием клавиши на ней фиксируется точка. При перемещении указателя эта воображаемая сфера поворачивается таким образом, чтобы новое положение выбранной точки совпало с положением указателя. На панели управления системой размещены диалоговые элементы, обеспечивающие: Изменение ориентации мостов за счет вращения объекта в трехмерном пространстве. Изменение положения мостов за счет перемещения объекта в экранной плоскости синхронно с указателем. Изменение масштаба вывода изображения. Изменение положения отсекающей плоскости. Изменение положения источника света. Выбор ракурса вывода из следующего списка: Произвольный. X-Y. Z-Y. X-Z. Отображение мостов в следующих режимах: Непрозрачный. Прозрачный. Невидимый. Изменение индикации точек нарушения гладкости в диапазоне от 0 до 180 градусов. Переход к окончательному просчету визуальной модели. Как уже отмечалось, первый вариант программы написан на языке С для UNIX-подобных ОС с оконной системой X Window на графическом языке OpenGL. На вход системы поступают файлы, полученные при счете на параллельном вычислителе МВС-100. В настоящее время создана новая версия данной системы. При этом система перенесена на платформу ОС Windows 95, а интерфейс реализован средствами Delphi. Соответственно переписаны и все алгоритмы, реализующие описанные выше методики визуализации. В дальнейшем предполагалось расширение возможностей системы по визуализации модельных объектов.В течение 1998 года в отделе Системного Обеспечения ИММ УрО РАН разрабатывались две специализированные системы визуализации, предназначенные для представления модельных объектов, связанных с решением задач оптимального управления и дифференциальных игр. Первая система предназначена для задач дифференциальных игр быстродействия, в которых платой является время перевода системы на заданное множество. В этом случае изображается график функции цены. Функция цены зависит от фазового вектора, характеризующего начальное состояние системы, и имеет своим значением время перевода системы на некоторое заданное - терминальное множество, в случае оптимального поведения игроков. В отделе динамических систем ИММ были разработаны алгоритмы попятного построения множеств уровня функции цены для случая двумерного фазового вектора. В этом случае график функции цены представляет собой поверхность в трехмерном пространстве, имеющую достаточно сложное устройство. Поскольку линии уровня считаются не для всякого момента времени, а через некоторые промежутки, то для полноценного изображения графика необходимо реконструировать поверхность между ними. В качестве метода восстановления поверхности был выбран метод триангуляции. Следует отметить, что достаточно часто соседние линии уровня имеют различное строение. Так, например, они могут иметь различное число компонент связности. Наличие такого сорта особенностей требовало разработки специальных алгоритмов триангуляции, учитывающих специфику строения линий уровня. Суть алгоритма триангуляции заключалась в следующем. На линиях уровня выделяются точки, в которых они резко изгибаются. В качестве критерия резкости используется пороговое значение. Этими точками линии логически разбиваются на несколько компонент таким образом, что в пределах одной компоненты нет никаких резких изгибов. Затем находится соответствие между компонентами на соседних линиях. При этом возможно дальнейшее разбиение линий, так как количество компонент на разных линиях может быть различным. Между соответствующими компонентами триангуляция производится достаточно просто, так как они не обладают особенностями и достаточно похожи. Вышеописанный алгоритм позволял также выделить места, где нарушается гладкость функции цены. В системе трехмерное изображение рассматривалось в различных ракурсах. Существует ряд средств для работы и исследования трехмерного изображения. Система выделяет и изображает также места, в которых функция цены разрывная. Возможно изменение свойств материала, из которого “сделана” поверхность. Возможна установка цвета таким образом, что он будет плавно меняться в зависимости от значения функции. Поверхность освещается точечным источником света. Закраска треугольников производится методом Гуро. Вторая система предназначена для изображения сингулярных поверхностей в линейных дифференциальных играх с фиксированным моментом окончания и функцией платы, зависящей от двух координат фазового вектора в момент окончания. В таких играх множества уровня представляют собой “трубки”, которые строятся в трехмерном пространстве t, y1, y2, где t - время y1, y2 - эквивалентные фазовые координаты. Существует алгоритм построения таких трубок, результатом счета которого является набор сечений трубки плоскостями, перпендикулярными оси t, на заданной сетке моментов времени. Некоторые точки на этих трубках являются наиболее важными для исследования. Это так называемые сингулярные точки. Эти точки бывают разных типов. В пределах одного моста эти точки образуют линии в трехмерном пространстве, которые обладают достаточно сложной структурой. Так, например, они могут расходиться на две линии, или наоборот две линии могут сходиться в одну с течением времени. Если же рассмотреть несколько мостов, то эти линии образуют трехмерную поверхность. Эта поверхность называется сингулярной и имеет достаточно сложную структуру. Были разработаны численные алгоритмы построения сингулярных поверхностей. Эти алгоритмы для каждого сечения каждого моста указывают, какие точки являются сингулярными и какого они типа. Таким образом, для конструирования сингулярной поверхности необходимо: во-первых, построить из сингулярных точек линии в пределах каждого моста. При этом важно учитывать, что таких линий может быть несколько и, что сингулярные точки не всех типов можно соединять. Во-вторых, построить поверхность между линиями на разных мостах. Алгоритм построения поверхности заключается в следующем. Во-первых, в пределах одного моста соединяются близкие сингулярные точки, имеющие одинаковый тип и таким образом, чтобы одна точка соединялась не более чем с двумя другими. Построенные линии являются простыми, т.е. не расходятся на две линии и состоят из точек одного типа. Во-вторых, на соседних мостах ищутся соответствующие линии одного типа и объединяются в сегменты. Между соседними линиями в сегменте производится триангуляция. Сегменты являются трехмерными поверхностями. Последний этап алгоритма – это обход границ сегментов и триангуляция между сегментами. При этом один сегмент может соединяться с несколькими, и соединяемые сегменты могут состоять из сингулярных точек разных типов. В зависимости от типа сингулярности сегменты раскрашиваются в разные цвета. Треугольники между сегментами закрашиваются методом Гуро, что обеспечивает плавный переход цвета. Система позволяла рассматривать трехмерное изображение в различных ракурсах. Поверхность освещается точечным источником света. Возможно изображение поверхности на разных стадиях реконструкции. Разработанные системы имели своей главной целью обеспечить качественное исследование моделируемых объектов. При каждой новой постановке задачи приходилось заново создавать не только те части системы, в которых реализуется специфика задачи и которые отвечают за восполнение/фильтрацию данных и мэппинг, но и непосредственно за визуализационную часть системы, отвечающую за рендеринг, а также интерактивную оболочку, реализующую ставшими стандартными действиями. Естественным решением этой проблемы является разработка унифицированных средств разработки специализированных систем визуализации. Опыт работы с пользователем на этапе разработки специализированных систем визуализации показал, что пользователь хочет, может и должен принимать более активное участие в проектировании и реализации различных компонент системы, так как именно он знает, как должны выглядеть отображаемые модельные сущности. С другой стороны неправильно нагружать математика необходимостью разбираться в возможностях очередной графической среды и в тонкостях алгоритмов рендеринга. Пользователь-математик должен получить инструмент, позволяющий описать специфические для данной задачи процедуры восполнения/фильтрации и задать отображение (мэппинг) модельных сущностей на визуальные объекты, составляющие необходимый ему вид отображения. Специализированные системы научной визуализации должны отвечать требованиям когнитивной (способствующей мышлению) визуализации, так как когнитивная визуализация обеспечивает эффективную интерпретацию результатов вычислений. Когнитивная визуализация должна осуществляться за счет разработки набора видов отображений. При этом полезным инструментом может выступать понятие метафоры. С ее помощью осуществляется перевод (переформулирование) понятий математической модели с языка строгих математических конструкций, где возможности нашей интуиции зачастую ограничены, в визуальный. Язык визуализации можно рассматривать как набор графических образов, предъявляемых наблюдателю. Рис. . Схема визуализацииСловарь этого языка составляют виды отображения, используемые в той или иной системы. На язык накладывается набор требований, которые в совокупности могут обеспецить когнитивную составляющую системы. Декомпозиционный анализ функциональности созданных ранее систем привел к такой структуре унифицированной системы, в которой она содержит модуль визуализации, общий для различныхспециализированных систем, и набор модулей, восстанавливающих 3-мерную сцену с учетом особенностей конкретных математических объектов. Для визуализации и исследования новых объектов пользователь-математик сможет разрабатывать собственные модули по заданной схеме. Формат входного потока данных такого модуля согласован с соответствующей счетной программой, выходного – с модулем визуализации. Рис. . Схема работы системыНа входе имеются файлы с численными данными о неких математических объектах (D1, D2, D3) разных типов. Для каждого типа файлов пользователь определяет формат последовательность модулей (P1, P2, P3, P4) в целях преобразования исходной информации в описание трехмерной сцены. Любая цепочка состоит из нескольких модулей (возможно одного), каждый из которых осуществляет некоторое преобразование данных. Первый модуль принимает на вход файл с исходной информацией, второй – результат работы первого и т.д. Формат промежуточных данных не оговаривается, и в каждой отдельной цепочке он может быть произвольным. Важно, чтобы последний в цепочке модуль выдавал описание (L1, L2, L3) сцены в рамках языка в формате принятом в модуле визуализации. Система представляла собой Java приложение. Использовался Sun JDK 1.3.1. Систему можно было разделить на три основные части: Чтение и обработка конфигурационного файла. Система запуска модулей обработки. Восстановление объектов, представляющих трехмерную сцену. Интерфейс пользователя управления сценой и свойствами объектов. Конфигурационный файл представлял собой данные в формате xml и состоит из трех разделов. Описание всех обработчиков, для каждого: название, тип, строка запуска (для простых обработчиков), обрабатываемый тип файла. Описание типов файлов, которые могут обрабатываться системой. Тип файла определяется по сигнатуре расположенной в начале файла. Для каждого файла указывается последовательность вызовов обработчиков, которая необходима для получение правильной сцены. Описание установок “по умолчанию” для разных свойств вновь загруженных объектов. При запуске системы проверялась правильность конфигурационного файла и корректность цепочек обработчиков для всех типов файлов. После того, как пользователь выбирает требуемый файл, системы определяет его тип по сигнатуре и запускает соответствующую цепочку обработчиков, передавая каждому следующему результат предыдущего в качестве входных данных. После того, как последний обработчик заканчивал работу, система должна была получить файл с описанием трехмерной сцены в одном из поддерживаемых форматов. Для поддержки нескольких форматов данных был создан универсальных класс загрузчика и его расширения для конкретных форматов. Для вывода трехмерной графики и обеспечения интерактивной работы пользователя со сценой была использована высокоуровневая библиотека вывода компьютерной графики Java3D. Система предоставляла пользователю 3 вида геометрических объектов: Массив треугольников с нормалями в каждой точке. Массив линий. Массив точек. Каждый имеет набор визуальных свойств, как общих для всех объектов, так и индивидуальных. Например, общий – видимость, цвет, прозрачность, а индивидуальными – цвет изнанки для массива треугольников. Несколько объектов могут быть объединены в группу. Группы объектов могут быть вложенными. Таким образом, получалась иерархическая структура объектов. Рис. . Диаграмма основных классов системы SVObject представляет собой абстрактный класс, в котором определены методы для всех основных действий над объектами и их свойствами. От него наследуется класс, представляющий массивы графических примитивов (SVArray) и класс группы (SVGroup). Такой подход позволяет унифицировать обращение к группе объектов и к конкретному объекту. В данных классах также реализована была связь системы с библиотекой Java3D.Техническое задание на новую системуУчитывая опыт работы с предыдущими системами визуализации результатов построения максимальных стабильных мостов в линейных дифференциальных играх, были предложены следующие требования по разработке новой системы: Требования по сохранению и загрузке. Требования по разработке интерфейса. Требования по визуализации. Требования по взаимодействию. Дополнительные требования.Рассмотри данные пункты подробно. В требования по сохранению и загрузке входит: Организация функций сохранения информации о трубках (мостах), а также дополнительной информации о визуализации в указанный файл (в том числе дополнение этого файла). Организация функций загрузки информации из указанного файла (файлов). Разработка структуры файла, что непосредственно вытекает из предыдущих пунктов. При этом обеспечивая удобство записи и чтения внешней программы-фильтра (имеющей другую архитектуру и способ записи информации). Файл должен быть двоичным (с целью уменьшения его размеров). При указании фильтра система должна запускать цепочку обработчиков, а конечный результат (набор данных в формате системы, содержащий сцену) отображать пользователю.Требования по организации интерфейса: Интерфейс приложения должен состоять из меню, главного окна визуализации, окна-навигатора объектов, окна действия над объектами. В меню должны быть включены такие пункты как “сохранить” (save), “открыть ”(open), “новый проект”(new), “выход ”(exit). В окне-навигаторе должны отображаться имена объектов, размещенные по иерархиям (см. дополнительные требования и требования на визуализацию). В окне действия, должны размещаться элементы управления выбранного из окна-навигатора объекта. В окне визуализации отображаются поверхности (трубок) и дополнительная информация (например, контуры трубок).Требования по визуализации: В предыдущих системах предоставлялась возможность использования только одного источника света. В предложении ставится задача обеспечения поддержки до 8 источников света. Система визуализирует поверхности в виде набора треугольников. Т.к. в системе имеется освещение, то в вершинах этих треугольников должны быть заданы нормали, с использованием которых ведется затенение/закраска (shading). Методы закраски Гуро (Gouraud shading) и flat. Возможность визуализировать линии, точки. Возможность скрыть некоторые объекты. Полупрозрачность поверхностей. Цвет поверхности, цвета вершин. Способы визуализа