Введение
Одним из перспективных направлений прикладной области информационных технологий является применение трехмерных интерактивных виртуальных сред при создании систем математического моделирования технологических процессов и комплексов. Для решения таких задач необходимо наличие эффективных технологий создания программного обеспечения в виде 3D виртуальных сред или систем виртуальной реальности (СВР). Такие системы должны обеспечивать адекватность виртуальной среды и быстродействие вычислительных процессов, достаточное для формирования качественных изображений высокого разрешения в режиме реального времени.
Выбор среды разработки
При выборе среды разработки программного обеспечения учитывались следующие основные характеристики:
- качественное и оптимизированное отображение трёхмерного пространства на различных платформах;
- наличие компонентов, позволяющих реализовывать физическое содержание задач;
- наличие мощного языка программирования;
- обеспечение возможности работы с базами данных;
- обеспечение возможности командной разработки приложений.
Из известных на сегодняшний день инструментальных средств, специализированных пакетов и различных технологий, ориентированных на создание виртуальных сред (UDK, Quest3d, CryEngine, Amira, Unity3D, Alternativa3D и другие), был обоснован по ряду критериев выбор программного комплекса Unity 3D. Созданные с помощью Unity 3D приложения работают под операционными системами Windows, Mac OS X, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3 и XBox 360. Этот инструмент также позволяет создавать интернет-приложения.
Технология разработки
Общая схема технологии разработки программных приложений 3D виртуальных сред применительно к задачам математического моделирования технологических процессов и комплексов приведена на рисунке 1. Основными этапами технологии являются:
- сбор и анализ данных об объектах и процессах комплекса;
- разработка проекта системы;
- разработка математических моделей и алгоритмов;
- создание трехмерных моделей и выполнение процедуры текстурирования;
- разработка, реализация и тестирование программного обеспечения.
Назначение и содержание работ указанных этапов сводится к следующему.
Сбор и анализ данных об объектах и процессах комплекса. На этом этапе производится сбор информации о средствах технического и технологического оснащения комплекса в виде чертежей, фото и видео материалов, технологических инструкций, данных о параметрах и режимах процессов. Необходимо детальное изучение принципов работы систем автоматизации и управления, оборудования, механизмов, обязанностей, траекторий движения и действий технологического персонала. Особое внимание уделяется наблюдению и анализу физико-химических процессов, протекающих в реакционных зонах агрегатов для формирования математических и информационных моделей. Анализируются основные каналы управления, определяются их статические и динамические характеристики. Строятся диаграммы взаимосвязей процессов, стадий и операций на соответствующих технологических уровнях иерархии.
Рисунок 1 – Структура технологии разработки 3D виртуальных сред
Разработка проекта системы заключается в создании полного и всестороннего описания сценариев работы системы и разработке проектных решений для следующих трех взаимосвязанных этапов технологии: разработка математических моделей, разработка программного обеспечения (ПО) и 3D-моделирование.
При разработке концепции и сценариев в первую очередь формулируется общий механизм работы виртуальной среды. Выделятся основополагающий компонент – главный агрегат, с которым взаимодействуют все остальные. В технологическом комплексе может быть несколько различных главных агрегатов либо набор типовых. Затем определяются факторы, связывающие такие агрегаты в систему, и выделяются общие ресурсы. Разрабатываются методика и алгоритмы распределения общих ресурсов. Формируются зависимости действий вспомогательного оборудования и агрегатов от главного агрегата для формирования иерархии связей и алгоритмов работы. Создаются сценарии для каждого отдельного типа оборудования. Определяются границы и степень реалистичности виртуального мира. Возможности и роли пользователя. При этом учитывается требование о том, что пользователь будет видеть виртуальный мир и действовать от первого лица.
Проектирование пользовательских интерфейсов заключается в разработке макетов всех интерфейсов, задании взаимосвязи и переходов между ними. При этом выбираются компоненты, стили и цветовые палитры.
Разработка структуры и диаграмм программного обеспечения. На данном этапе формулируется общая структура ПО на основе сценариев и требований. Создаются диаграммы классов, диаграммы состояний и деятельности виртуальных агрегатов и оборудования [1]. В связи с наличием в комплексах большого количества виртуальных объектов и сложных связей между ними, структура ПО должна быть прозрачной, гибкой и масштабируемой. Все уровни логики должны рассчитываться на основе математических моделей и алгоритмов деятельности.
Разработка требований к 3D моделям. Формулируются следующие требования к моделям: степень детализированности (полигональности) модели, т.е. уровень геометрического соответствия реальному объекту для каждого уровня детализации; соответствие виртуальных единиц измерения реальным. Выбираются технологии текстурирования, а также параметры: разрешение, цветовая гамма и др. [2]. Разрабатывается единая иерархическая система именования 3D объектов. Составные части объектов, на которые распространяются одни и те же алгоритмы воздействия, объединяются в группы.
Разработка математических моделей осуществляется согласно иерархии объектов технологических комплекса, в соответствии с которой необходимо создавать три категории математических моделей, а именно:
- модель и алгоритмы работы технологического комплекса, отражающие организационно производственный механизм функционирования всей системы (верхний уровень);
- модели расчета режимов технологических процессов и работы оборудования (средний уровень) [3];
- модели и алгоритмы расчета параметров управления графическими объектами (нижний уровень).
Создание трехмерных моделей и выполнение процедуры текстурирования.
На основе сформулированных требований и входных данных при помощи программной системы для создания и редактирования трехмерной графики создаются 3D модели сооружений и оборудования. В первую очередь создаются высокодетализированные или высокополигональные модели. На основе этих моделей генерируется текстура нормалей. В зависимости от необходимого количества уровней детализации производится поэтапное снижение полигональности модели. При помощи графических редакторов создаются основные текстуры. Настраиваются материалы основных текстур и текстур нормалей. После триангуляции модели экспортируются.
Разработка и тестирование программного обеспечения.
Создание и наполнение сцены осуществляется путем импорта и расстановки 3D моделей, светильников и других необходимых объектов. Особое внимание уделяется настройке света и материалов. При необходимости разрабатываются собственные шейдеры (программные модули, выполняемые непосредственно видео контроллером). Создаются образцы виртуальных работников, производится настройка анимации, вычисляется карта навигации. Расставляются опорные точки.
Создание персонажа заключается в разработке элемента виртуального мира, которым будет управлять пользователь, – это персонаж от первого лица. Персонаж состоит из контроллера, который обрабатывает события клавиатуры, мыши, камеры, обработчика коллизий и аудио слушателя.
Программная реализация глобальной логики, математических моделей и интерфейсов производится на языке C# согласно спроектированным диаграммам классов, поведений и состояний, а также структурам математических моделей и алгоритмов. Программируются пользовательские интерфейсы на основе разработанных шаблонов, и выполняется тестирование [4].
Сборка программного обеспечения производится с целью соотнесения программных модулей и виртуальных объектов. Настраиваются различные параметры как приложения в целом (например, системные настройки), так и виртуальных объектов в отдельности (например, настройка систем частиц).
Оптимизация задач быстродействия делится на два направления: минимизация источников света и минимизация отображаемой геометрии. Для минимизации источников света создаются карты освещения поверхностей объектов виртуального мира. Расчет освещения при отображении каждого кадра заменяется на единовременную загрузку ресурсов [5]. Минимизация отображаемой геометрии достигается за счет настройки уровней детализации, что позволяет в зависимости от удаленности персонажа отображать модели с различным уровнем детализации, и технологии окклюзивного обрезания, которая позволяет скрывать объекты, находящиеся вне поля зрения пользователя [6].
Конечная компиляция. На данном этапе выбираются настройки компилятора под определённую операционную систему и компилируется готовое приложение.
При необходимости осуществляется возврат на любой из этапов технологии разработки ПО.
Результаты разработки 3D – виртуального металлургического цеха.
На основе рассмотренной выше технологии осуществлена разработка виртуального металлургического цеха. На этапе проектирования разработана обобщенная диаграмма классов, которая представлена на рисунке 2.
Рисунок 2 – Обобщенная диаграмма классов ПО
Как видно из рисунка, здесь выделены следующие главные классы:
- «Главный менеджер» реализует модели верхнего уровня. Ассоциирован со всеми «Менеджерами агрегатов» и управления ими.
- «Менеджер агрегата» реализует модели среднего уровня. Управляет жизненным циклом одного агрегата.
- «Менеджер модулей расчета процессов» реализует модели среднего уровня.
- «Модуль расчета моделей работы оборудования» реализует модели среднего уровня. Отвечает за визуализацию технологических процессов.
- «Хранилище глобальных данных» проектируется согласно паттерну одиночка (Singleton). Необходимо для хранения глобальных переменных и предоставления глобальной точки доступа к ним.
- «Медиатор» проектируется согласно паттерну посредник (Mediator) для осуществления процессов синхронизации и обмена данными.
В процессе работы приложения выполняется несколько задач одновременно – расчет моделей процессов, обработка действий пользователя, отображение пользовательского интерфейса, расчет работы виртуального оборудования и др. Они нуждаются в синхронизации и обмене данными. Для обеспечения слабой связанности объектов применяется паттерн «Посредник» (Mediator) [4]. Посредник – поведенческий шаблон проектирования, обеспечивающий взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга. Таким образом, вся логика синхронизации прячется за кулисами медиатора.
Для реализации моделей процессов применен паттерн «Шаблон» [4]. «Шаблонный метод» (Template method) — поведенческий шаблон проектирования, определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом. В качестве шаблона (родителя) выступает класс «Модуль расчета модели процесса». Наследуя шаблон, реализуются модели процессов. Структурно модели представляют системы линейных и нелинейных дифференциальных и алгебраических уравнений, которые обоснованы, исходя из фундаментальных законов и анализа практик применения такого класса моделей для описания технологических процессов.
Реализованы следующие типы оборудования: загрузочные и мостовые краны, разливочный комплекс, шлакосъемное оборудование, оборудование подачи сырья и транспортировки готовой продукции. Выполнено моделирование процессов, протекающих в реакционных агрегатах, а также деятельности персонала. На рисунке 3 представлены снимки с экрана виртуального цеха.
Рисунок 3 – Виртуальный цех
Заключение. Рассмотренная технология позволяет также осуществлять создание обучающих систем, тренажеров и симуляторов промышленных агрегатов, виртуальных лабораторных работ по техническим дисциплинам в составе вариативных модулей для электронного обучения и дистанционных образовательных технологий.
Рецензенты:
Пимонов А.Г., д.т.н., профессор, заведующий кафедрой прикладных информационных технологий ФГБОУ ВПО «Кузбасский государственный технический университет», г. Кемерово.
Каледин В.О., д.т.н., профессор, декан факультета информационных технологий Новокузнецкого института (филиала) ФГБОУ ВПО «Кемеровский государственный университет», г. Кемерово.