sharpeye visualization system
DESCRIPTION
under developmentTRANSCRIPT
О ТЕКУЩИХ РЕЗУЛЬТАТАХ РАЗРАБОТКИ
СРЕДЫ НАУЧНОЙ ВИЗУАЛИЗАЦИИ
SHARPEYE Кумков С.С., Шмаков Е.В., Васёв П.А.
Институт Математики и Механики УрО РАН
www.sharpeye.lact.ru
Роль визуализации: помощь в
понимании результатов экспериментов
Вычисления
Результаты вычислений
Визуализация
Понимание
Как визуализируют результаты?
Существует всего 3 подхода:
Универсальные системы ParaView, TecPlot, AVS, Excel
+ Широкий набор видов отображения
- Перегруженный интерфейс
- Часто невозможно настроить все требуемые нюансы
Системы визуализации предметной области или особых сущностей IVS3D, VENUS, VolVis
+ Подходящие виды отображения с учетом нюансов
- Существуют только для популярных классов задач
Специализированные системы и методы Создание программы визуализации самостоятельно.
+ Можно учесть все нюансы задачи и пожелания
- Стоимость разработки - высока
Проблема
• Универсальную систему часто сложно адаптировать
ко всем нюансам задачи визуализации.
• Предметные системы – их слишком мало, на все
задачи их нет и никогда не будет.
• Специальная система – идеал, но как же дорого его
создавать!
Решение для случая 3D
Чем по сути отличаются специализированные системы визуализации между собой?
• Загрузка данных и преобразование их в
визуальные сущности. У каждой задачи свой формат исходных данных, но в итоге они
формируют 3-мерную сцену объектов.
• Управление со стороны пользователя. Разные задачи – разные элементы управления, управляющие загрузкой
и отображением.
Остальные аспекты – могут быть универсальными.
Подбор окружения исполнения (MFC, .NET Forms, WCF, VCL, Qt etc),
Выбор графической библиотеки (OpenGL, DirectX , WebGL) или среды рендеринга (VTK, OGRE, Open Inventor etc),
Реализация алгоритмов рендеринга.
Программирование оконного интерфейса, возможностей по настройке системы.
Настройка параметров сцены - освещение, камеры, анимация.
Экспорт результатов визуализации.
Проект SharpEye Среда для создания специализированных систем визуализации
Основной функционал
Постановка С.С. Кумкова
• Загрузка-удаление объектов, их хранение в
нескольких иерархиях, операции над группами.
• Операции с атрибутами объектов: изменение цвета,
прозрачность, видимость-невидимость.
• Геометрические операции со сценой (повороты,
масштабирование, перемещение).
Операции с отдельными объектами не нужны!
• Операции со светом (перемещение источника,
добавление, удаление, изменение яркости,
включение-выключение).
• Экспорт изображений.
Типовой сценарий разработки
1. Реализовать функцию преобразования данных в
визуальные сущности.
2. При желании, добавить элементы управления.
function load( f,scene )
{
model m = scene.create(«model1»)
while (!feof(f)) {
double tri[9] = f.readline.split
m.add_triangle( tri )
}
m.add_slider(«test1»,0,50,0.25)
return 0;
}
Устройство сцены
• Сцена содержит модели (у каждой свое имя).
• Модель содержит набор треугольников.
• Таким образом, задача функции-загрузчика –
прочитать данные и создать сцену через API.
Сцена
Модель1 ▲▲▲
Модель2 ▲▲
Свойства моделей
У каждой модели есть стандартные и дополнительные «свойства».
Стандартные свойства:
• видимость,
• прозрачность,
• цвет лицевой и обратной стороны треугольников.
Система отображает элементы управления для стандартных свойств.
Источники света
• Все типы. Настраиваются вручную или через API.
Управление камерами
• Камера – суть точка обзора. Настраиваются вручную
или через API.
Дополнительные элементы управления
К каждой модели через API можно
добавить индивидуальные элементы
управления.
Система будет вызывать настроенные
обработчики событий для этих
элементов при взаимодействии с
пользователем.
Дополнительные свойства моделей
• Кроме стандартных свойств, каждой
модели можно добавить сколько
угодно дополнительных свойств.
• Можно настроить получение
уведомлений при изменении этих
свойств.
• Также для свойств можно заказать
отображение элементов управления.
Группировка моделей
• Возможность размещения модели в одновременно в
разных группах.
• Операции над группами.
• Вложенные группы.
Экспорт результатов визуализации
• Экспорт изображений и сцены в формате 3d (obj)
• Публикация в Интернет (просмотр obj через WebGL)
Пример 1. 84 сроки кода!
Пример 2. 82 строки кода!
Архитектура среды
Ядро
Хранилище
Интерфейс
пользователя
Менеджер
плагинов
Входные
данные
Входные
данные
Входные
данные
…
Фильтр 1
Фильтр 2
Фильтр 2
Фильтр 1 Фильтр 3
Перспективный функционал
• Разумное API.
• Возможность доступа к данным удаленных систем.
• Удаленная визуализация.
• Экспорт видео.
• Написание управляющих скриптов:
- различные языки, не только C#;
- написание скриптов непосредственно в рамках
системы.
• Обмен скриптами.
• Архитектура на основе WebGL.
СИСТЕМА
ВИЗУАЛИЗАЦИИ
SHARPEYE Кумков С.С., Шмаков Е.В., Васёв П.А.
Институт Математики и Механики УрО РАН
www.sharpeye.lact.ru