Создание трехмерных моделей для системы визуализации тренажерного комплекса

УДК 004.946

Р.А. Файзрахманов, P.P. Бакунов, А.С. Мехоношин

Пермский национальный исследовательский политехнический университет

СОЗДАНИЕ ТРЕХМЕРНЫХ МОДЕЛЕЙ ДЛЯ СИСТЕМЫ ВИЗУАЛИЗАЦИИ ТРЕНАЖЕРНОГО КОМПЛЕКСА

Описана методика создания трехмерных моделей, нацеленных на эффективное взаимодействие с игровым движком Blender Game Engine (BGE).

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

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

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

Использование современных программных продуктов для проектирования и создания имитационных моделей облегчает генерацию объектно-ориентированных кодов, позволяя разрабатывать достоверные модели, работающие в реальном масштабе времени, быстро и точно.

В процессе обучения на виртуальном ТК важна наглядная и достоверная визуализация учебных сценариев, что способствует лучшему усвоению учебного материала. Поэтому немаловажную роль играют виртуальный мир и расположенные в нем модели оборудования, предназначенные как для визуализации окружающей природной обстановки, так и для демонстрации работы оборудования в рамках выполнения учебных сценариев.

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

- реалистичность и достоверность;

- работа в реальном времени;

- невысокие системные требования к аппаратной платформе;

- короткие сроки разработки.

В процессе создания ТК была поставлена цель: создать трехмерные модели виртуального мира, автомобильного крана-манипулятора на базе шасси КамАЗа и машины хозяйственного назначения «Урал-4320». В ТК, для которого разрабатывались модели, в качестве системы визуализации используется игровой движок BGE (более подробно о BGE указано в [1]), встроенный в программный пакет трехмерного моделирования Blender (более подробная информация о данной программе указана в [2]). Движок BGE является достаточно простым в освоении, он характеризуется реалистичной физикой, а главное - он бесплатный. Однако для работы с большим количеством объектов и сложными физическими взаимодействиями требуются значительные вычислительные ресурсы. Таким образом, с точки зрения трехмерного моделирования требуется создавать модели, содержащие как можно меньшее число полигонов, однако детальность моделей должна быть достаточной для реалистичной визуализации учебных сценариев.

Задача конструирования любой трехмерной модели разбивается на следующие подзадачи:

- определение ключевых элементов, которые должна содержать модель;

- определение требований к размерам и масштабу объектов;

- создание низкополигональной трехмерной модели;

- добавление в модель мелких деталей (для большей реалистичности);

- установка центров вращения, а также масштабирование всех объектов модели;

- связывание объектов связями «родитель-потомок» для обеспечения согласованности манипуляций;

- интеграция математических моделей;

- установка и настройка источников освещения и теней;

- подготовка текстур;

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

Исходя из особенностей ТК, был выделен ряд существенных требований, которым должны удовлетворять создаваемые трехмерные модели. Например, для виртуального мира были выделены следующие требования:

- на земной поверхности должны присутствовать возвышенности и низины;

- в центре виртуального мира должна быть относительно ровная площадка (наклон не более чем на 3°);

- в виртуальном мире должны присутствовать некоторые элементы природной обстановки (деревья, камни и т.п.).

Был составлен ряд требований к размерам и масштабу объектов, которые будут присутствовать на сцене. Поскольку стандартное поле редактирования Blender имеет размерность 60x60 условных единиц (в Blender отсутствует метрическая система единиц), было решено приравнять одну условную единицу Blender к 10 метрам.

Чтобы снизить временные затраты, было принято решение использовать в качестве основы некоторых объектов уже готовые модели (например, кран-манипулятор с грузозахватным приспособлением). Однако эти модели не годились для использования в ТК, так как они были выполнены в неподходящем формате трехмерной графики и обладали избыточным количеством полигонов или же не являлись достаточно подробными. Так, например, была найдена модель шасси КамАЗ-4310, однако значительно отличалась от требуемого шасси автомобильного крана-манипулятора, а также модель была выполнена

в неподходящем формате трехмерной графики 3D Studio Max (max) и обладала избыточным количеством полигонов (на рис. 1 показана трехмерная модель-образец).

Рис. 1. Tpeхмepнaя модель грузовика-образца

Найденная модель была экспортирована из формата max в формат Object (obj) и импортирована в Blender для последующей адаптации. Важно помнить, что у объектов необходимо правильно назначить центры вращения, чтобы в конечном итоге не возникали проблемы с анимацией моделей. Также требуется провести масштабирование всех объектов в соответствии с заданным стандартом.

Необходимо использовать отношения «родитель-потомок» для всех связанных друг с другом объектов. Такая иерархия позволяет объектам правильно взаимодействовать и двигаться относительно друг друга. В качестве примера можно привести автомобильный кран-манипулятор. Станина является объектом-родителем для всех объектов, смежных с ней, так что для перемещения всего шасси достаточно переместить только станину. То же относится к поворотам и масштабированию.

Поскольку цель ТК не только наглядно, но и достоверно (с точки зрения физики) демонстрировать работу некоторых механизмов и оборудования, то к трехмерной модели крана-манипулятора и грузозахватного приспособления были прикреплены математические модели, описывающие движения поршней, а также качания грузозахватного приспособления. Математические модели были реализованы

на языке Python, который прекрасно взаимодействует с игровым движком BGE.

Крайне важным вопросом является освещение сцены. Освещение виртуального мира выполнено методом трех точек [3]. Это очень простая классическая схема для получения обильного мягкого освещения на сцене. Были использованы лампы типа Sun. Лучи от таких ламп идут параллельно друг другу. Однако такие лампы могут генерировать тени только методом трассировки лучей. К сожалению, в BGE отсутствует поддержка этого метода. Поэтому в виртуальном мире для генерации теней используются лампы типа Spot. Это единственный тип ламп, который может давать мягкие (буферизированные) тени. Однако и тут есть проблема, которая заключается в том, что для расчета детализированных теней на большой площади требуется огромный объем памяти. Поэтому было принято следующее решение: буферизированные тени в виртуальном мире должны отбрасывать только те подвижные объекты, которые играют первостепенную роль в работе тренажера. Для статичных объектов тени можно реализовать искусственно, используя специальную текстуру, наложенную там, куда должна отбрасываться тень.

Рис. 2. Расположение источников света и купола неба

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

Расположение источников освещения, а также купола неба показано на рис. 2.

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

Отдельного упоминания заслуживает способ нанесения текстур. На трехмерную модель невозможно нанести двумерное изображение без искажений. Существует много различных методов трансляции двумерной текстуры на модель, один из самых сложных - создание UV координат. В Blender для этого есть специальный редактор - UV/Image editor. Редактируя положение грани в UV/Image editor, можно изменять, какое место в рисунке текстуры отображает та или иная грань. Чтобы нанести на объект текстуру, необходимо «разрезать» модель (сделать развертку), после чего совместить развертку с текстурой (в качестве примера на рис. З показана развертка модели шины).

Рис. З. Развертка модели шины

Т екстура 1  Трафарет 1 Текстура 2 Трафарет 2 - Текстура 3

ИТОГОВОЕ

ИЗОБРАЖЕНИЕ

Рис. 4. Способы комбинирования текстур

Если текстур несколько, то подбираются режимы смешивания (наложения) текстур (Add, Subtract, Mix и т.д.). Для создания плавных переходов между различными текстурами можно использовать

трафареты (Stencils). Трафареты - это, по сути, маски. Как известно, текстуры модели располагаются послойно [3]. Суть вышеизложенного проиллюстрирована на рис. 4.

По вышеописанной методике был создан трехмерный виртуальный мир площадью 600х600 метров (рис. 5), а также модели автомобильного крана-манипулятора (рис. 6) и грузовика «Урал-4320» (рис. 7).

Рис. 5. Модель виртуального мира

Рис. 6. Модель шасси КамАЗа

Рис. 7. Модель грузовика «Урал-4З20»

Модели содержат множество деталей, делающих их реалистичными. В то же время число полигонов в сумме невелико (около 65 000), что благоприятно сказывается на требованиях к производительности аппаратной базы тренажерного комплекса.

Прототип тренажерного комплекса тестировался на компьютере со следующими системными требованиями:

- операционная система: Windows XP;

- процессор: Intel Core 2 Duo @ 2.0;

- оперативная память: 2 Gb;

- видеопамять: 512 Mb;

- видеокарта: nVidia GeForce 8800 GT;

- DirectX: 9.0c;

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

На стадии тестирования прототипа была признана пригодность созданных моделей для использования в системе визуализации тренажерного комплекса, разрабатываемого на кафедре ИТАС.

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

Библиографический список

1. Blender Game Kit 2-nd edition [Электронный ресурс]. - URL: http://b3d.mezon.ru/index.php/Blender_GameKit_2 (дата обращения 23.06.2011).

2. Blender Basics 3-rd edition [Электронный ресурс]. - URL: http://b3d.mezon.ru/index.php/Blender_Basics_3-rd_edition (дата обращения 23.06.2011).

3. Essential Blender [Электронный ресурс]. - URL:

http://wiki.blender.org/index.php/Doc:2.4/Books/Essential_Blender (дата обращения: 29.04.2011).

Получено 09.09.2011