Научная статья на тему 'Разработка подпрограмм в программной среде 3D Studio Max'

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Загородний В. В., Деговцов А. А., Комиссаров Д. В.

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

Текст научной работы на тему «Разработка подпрограмм в программной среде 3D Studio Max»

УДК 004

В.В. Загородний, А.А. Деговцов, Д.В. Комиссаров СГГ А, Новосибирск

РАЗРАБОТКА ПОДПРОГРАММ В ПРОГРАММНОЙ СРЕДЕ 3D STUDIO MAX

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

В отличие от распространенных двумерных ГИС системы автоматизированного проектирования (САПР), такие как, AutoCad, MicroStation, 3D Studio Max, позволяют решать задачи в трехмерном пространстве. Поэтому, обычно результат трехмерной съемки объектов передается заказчику в формате перечисленных САПРовских систем. Однако их возможностей недостаточно для выполнения сложного пространственного анализа, присущего ГИС. Одним из вариантов разрешения этой проблемы является развитие функциональных возможностей САПР посредством разработки набора небольших подпрограмм, предназначенных для выполнения прикладных задач.

Например, такая задача возникла при построении двумерных профилей трасс Новосибирского биатлонного комплекса (НБК). Схемы лыжных трасс были построены в среде 3DS Max в виде сплайнов, состоящих из сегментов типа «кривая», связанных между собой вершинами типа «безье с изломом», поскольку такой тип сплайна позволил наиболее точно описать черты поверхности трассы. Необходимо было развернуть построенные трехмерные сплайны на плоскость. Поставленная задача выполнена также с помощью программного продукта (1111) 3D Studio Max, поскольку он позволяет расширять свои возможности используя встроенную объектноориентированную программную среду, базирующуюся на языке программирования высокого уровня С++.

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

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

Одной из основных особенностей отличающих ГИС от САПР является совмещение пространственной информации с атрибутивной или семантической. Таким свойством можно наделить, например САПР 3DS MAX, используя средства внутренней среды программирования MaxScript Language. Следовательно, для имитации полноценной ГИС необходимо разработать механизм взаимодействия 3D Studio Max с базой данных созданной в Excel, Access, Paradox и др.. В этой базе данных может храниться информация о типе объекта (строение, дорога, ограждений, коммуникация), его назначении (промышленный, жилой, административный), материале (бетон, кирпич, дерево, асфальт), составе (сложный, простой) и т.д..

Для этих целей в среде MaxScript Language разработана подпрограмма Linker, которая позволяет подсоединить к созданной трехмерной модели объекта одну из распространенных баз данных (Excel, Access, Paradox) и редактировать ее. Linker выполняет анализ всех объектов проекта, объединяя их в древовидную структуру по группам. Для каждой группы резервируется набор необходимых параметров (например, для городского ландшафта: этажность здания, огнестойкость, адрес и т. д.), которые будут впоследствии представлены как свойства объектов в трехмерном редакторе 3D Studio Max. Такой подход позволяет вносить необходимые изменения и уточнения в характеристики объектов не только в процессе обработки таблицы в базе данных, но и сохранять и редактировать их внутри 3D Studio Max.

Для формирования и экспорта таблиц Linker использует встроенные ActiveX-компоненты Windows и подключается к необходимой программе обработки баз данных с помощью технологии OLE (Object Linking and Embedding). Пользователь также может выделить только необходимые для экспорта объекты и зарезервировать любые необходимые свойства для последующей связи объектов трехмерной модели и таблицы базы данных по их идентификатору.

Представленные примеры демонстрируют, что разработка дополнительных подпрограмм позволяет максимально приблизить функциональность конкретного САПР к возможностям современных ГИС.

© В.В. Загородний, А.А. Деговцов, Д.В. Комиссаров, 2006

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