Научная статья на тему 'Разбиение объектов с помощью плагина в пакете трехмерного моделирования Autodesk 3ds Max'

Разбиение объектов с помощью плагина в пакете трехмерного моделирования Autodesk 3ds Max Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
713
85
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЪЕКТ / ПЛАГИН / ТРЕХМЕРНОЕ МОДЕЛИРОВАНИЕ / ДИАГРАММЫ ВОРОНОГО / ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ / OBJECT / PLUGIN / THREE-DIMENSIONAL MODELING / VORONOV DIAGRAMS / IMITATIONAL MODELING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шпилевский Денис Леонидович, Гусакова Татьяна Михайловна

Исследована проблема создания дополнительного программного обеспечения (плагина) для реализации разбиения объектов в пакете трехмерного моделирования 3ds Max на основе диаграмм Вороного.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

BREAKING THREE-DEIMENSIONAL OBJECTS USING PLUGIN IN AUTODESK 3DS MAX

Article is dedicated to the problem of creating additional software (plugin) for breaking three-dimensional objects in Autodesk 3ds Max using Voronov diagram.

Текст научной работы на тему «Разбиение объектов с помощью плагина в пакете трехмерного моделирования Autodesk 3ds Max»

Complete

END

Команды:

Show _me

PlaySoundOn _me Beep TRUE

Выполнятся за один и тот же такт программы.

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

Литература

1. Андреев А. Эволюция современных языков программирования // Мир ПК. 2001. № 3.

2. АхоА., Ульдман Дж. Теория синтаксического анализа, перевода и компиляции: в 2 т. М.: Мир, 1978.

3. Бен-Ари. Языки программирования. Практический сравнительный анализ. М.: Мир, 2000.

4. Вельбицкий И.В. Технология программирования. Киев: Техника, 1984.

ШЕВЧЕНКО ЯН ВЛАДИМИРОВИЧ - аспирант кафедры компьютерных технологий, Чувашский государственный университет, Россия, Чебоксары ([email protected]).

SHEVCHENCO YAN VLADIMIROVICH - post-graduate student of Computer Technologies Department, Chuvash State University, Russia, Cheboksary.

ЖЕЛТОВ ПАВЕЛ ВАЛЕРИАНОВИЧ. См. с. 136.

УДК 004.942

Д.Л. ШПИЛЕВСКИЙ, Т.М. ГУСАКОВА

РАЗБИЕНИЕ ОБЪЕКТОВ С ПОМОЩЬЮ ПЛАГИНА В ПАКЕТЕ ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ AUTODESK 3DS MAX

Ключевые слова: объект, плагин, трехмерное моделирование, диаграммы Вороного, имитационное моделирование.

Исследована проблема создания дополнительного программного обеспечения (плагина) для реализации разбиения объектов в пакете трехмерного моделирования 3ds Max на основе диаграмм Вороного.

D.L. SHPILEVSKYI, T.M. GUSAKOVA BREAKING THREE-DEIMENSIONAL OBJECTS USING PLUGIN IN AUTODESK 3DS MAX Key words: object, plugin, three-dimensional modeling, Voronov diagrams, imitational modeling.

Article is dedicated to the problem of creating additional software (plugin) for breaking threedimensional objects in Autodesk 3ds Max using Voronov diagram.

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

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

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

Имитационное моделирование - это частный случай математического моделирования. Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами, т.е. в разработке симулятора (англ. simulation modeling) исследуемой предметной области для проведения различных экспериментов. Самым важным является то, что временем в модели можно управлять: замедлять в случае с быстропротекающи-ми процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны.

Имитационное моделирование применяется в таком вопросе, как разбиение геометрических объектов с помощью прикладной математики и применение физических движков для симуляции взаимодействия полученных подобъ-ектов друг с другом и окружающим миром. Вышеописанные задачи находят максимальное применение в области компьютерной графики, так как применение компьютерной графики как с научной, так и с точки зрения цифрового искусства вполне оправданно в области создания цифровых спецэффектов для киноиндустрии и компьютерных игр [2, 3]. Такая область применения называется CGI (Computer Graphics Imagery или Computer-Generated Imagery) [2].

Одним из востребованных видов работ в 3Б-графике в наше время является вышеупомянутое разбиение цельного геометрического объекта на большое количество геометрически корректных «осколков», т.е. объектов, которые при сборке дали бы цельный исходный геометрический объект. Реализовать такой процесс возможно в современных пакетах трехмерного моделирования благодаря возможности быстрого «построения» модели трехмерного объекта.

В частности, в пакете трехмерного моделирования 3ds Max имеются средства, позволяющие имитировать действие на трехмерные объекты таких физических сил, как тяжесть, трение или инерция, а также воспроизводить результаты столкновений объектов [3]. Говоря о разбиении геометрии и разрушении объектов на основе этого разбиения, важно отметить, что пакет 3ds Max предоставляет удобное и мощное программное средство для ускорения и автоматизации вышеописанных действий с объектами. А именно, в 3ds Max имеется встроенный язык программирования Maxscript, который является мощным дополнением к пакету 3ds Max. Большое количество задач, которые невозможно решить стандартным путем через обычный набор инструментов 3ds Max, решается благодаря данному языку. Одним из самых важных достоинств данного языка является возможность создания плагинов с удобным пользовательским интерфейсом, а также возможность расширения стандартного интерфейса 3ds Max с помощью написанных дополнительных модулей. Без использования данного программного модуля при разбиении геометрии

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

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

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

Возможность настройки глубины разбиения. Предусмотрено, насколько крупными/мелкими будут подобъекты разбиения и сколько будет подобъек-тов разбиения.

Сохранение некоторых свойств разбиваемого объекта. Предусмотрена настройка для сохранения основных свойств объекта разбиения.

Переходя к вопросу программной реализации функциональных возможностей вышеописанного плагина, важно отметить, что одной из наиболее интересных задач статической вычислительной геометрии является построение диаграмм (ячеек) Вороного, на которых основывается разбиение объектов в описываемом плагине [1].

Диаграмма Вороного конечного множества точек S на плоскости представляет собой такое разбиение плоскости, при котором каждая область этого разбиения образует множество точек, более близких к одному из элементов множества S, чем к любому другому элементу множества [1]. Названа так в честь российского учёного Георгия Феодосьевича Вороного (1868-1908). Существуют также другие названия: мозаика Вороного, разбиение Вороного, разбиение Дирихле. Поскольку работа с разбиением объекта на подобъекты ведется в трехмерном пространстве, необходимо дать описание многогранника Вороного. Трехмерный многогранник Вороного - это совокупность точек трехмерного пространства, каждая из которых находится не дальше от точки О данного пространства («центра»), чем от других таких центров. Пространство в данном случае ограничено поверхностью объекта, который бьется на осколки, а многогранники Вороного и будут являться собственно осколками. Пример таких многогранников виден на рисунке.

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

Основной алгоритм, используемый при создании многогранников Вороного (подобъектов разбиения), можно описать следующим образом: в любой объект интегрируется система частиц PCloud и по координатам частиц «режется» геометрия - получается равномерно раздробленная геометрия. Дробление производится стандартным модификатором Slice пакета 3ds Max, потом закрываются пустоты модификатором Cap Holes и делается это n (n - 1) раз, где n - требуемое количество осколков. Таким образом, используется модификация алгоритма, работающего с полуплоскостями в двумерном случае, приспособленная для многогранников Вороного. Алгоритм имеет квадратичную сложность.

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

Разбиение геометрии реализовано с помощью двух основных вложенных циклов. Внешний цикл отвечает за количество повторений разбиения для каждого полученного осколка-подобъекта. Внутренний цикл создает систему частиц на основе «облака» частиц с количеством частиц, равным первоначально указанному количеству объектов дробления. Затем с учетом основных свойств и правил создания многогранников Вороного генерируется вспомогательная плоскость сечения, которая производит отрезание кусков геометрии от рассматриваемого на текущем шаге цикла объекта. Данное действие производится с помощью модификатора Slice, после применения которого все полости созданного объекта-осколка закрываются благодаря применению модификатора Cap Holes. Полученные многогранники для дальнейшей работы с ними конвертируются в стандартные mesh-объекты.

Следующий блок кода отвечает за корректное наименование полученных многогранников разбиения. В скрипте реализовано несколько возможностей иерархического наименования и расположения осколков в системе «родитель-наследник». Простейший вариант предусматривает последовательное наименование многогранников по схеме: имя_изначального_объекта + Part_+ последовательный номер многогранника (полученный как количество кусков разбиения в степени итератора). Наиболее сложный вариант предусматривает возможность сохранения каждой итерации дробления в виде отдельного слоя с многоуровневым наименованием объектов и сохранением привязки созданных многогранников к родительскому (изначальному) объекту. Для лучшего визуального восприятия полученного дробления при отсутствии материала на первоначальном объекте дробления скрипт предоставляет возможность выбора одного цвета для многогранников либо возможность генерации разного цвета

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

Литература

1. Austin D. Voronoi Diagrams and a Day at the Beach // American Mathematical Society: сетевой журнал. 2011. URL: http://www.ams.org/samplings/feature-column/fcarc-voronoi (дата обращения: 02.02.2011 г.).

2. BrookerD. Essential CG Lighting Techniques with 3ds Max. Focal Press: Elsevier Inc., 2008. 398 p.

3. Daniele T. Poly-Modeling with 3ds Max. Thinking outside the box. Focal Press: Elsevier Inc., 2009.

269 p.

ШПИЛЕВСКИЙ ДЕНИС ЛЕОНИДОВИЧ - аспирант кафедры прикладной математики и информатики, Марийский государственный университет, Россия, Йошкар-Ола ([email protected]).

SHPILEVSKYI DENIS LEONIDOVICH - post-graduate student of Applied Mathematics and Informatics Department, Mary State University, Russia, Yoshkar-Ola.

ГУСАКОВА ТАТЬЯНА МИХАЙЛОВНА - заместитель министра образования и науки Республики Марий Эл; кандидат экономических наук, доцент кафедры прикладной математики и информатики, Марийский государственный университет, Россия, Йошкар-Ола ([email protected]).

GUSAKOVA TATYANA MIKHAILOVNA - Deputy Minister of Education and Science of the Republic of Mari El; candidate of economics sciences, assistant professor of Applied Mathematics and Informatics Department, Mary State University, Russia, Yoshkar-Ola.

i Надоели баннеры? Вы всегда можете отключить рекламу.