Проектирование программного обеспечения для трехмерного NURBS моделирования
Автор: Карабчевский В.В., Радченко В.И.
Источник: Научные работы ДонНТУ, серия Информатика, кибернетика и вычислительная техника
, 2011, – выпуск 14(188), С.207-210.
Автор: Карабчевский В.В., Радченко В.И.
Источник: Научные работы ДонНТУ, серия Информатика, кибернетика и вычислительная техника
, 2011, – выпуск 14(188), С.207-210.
В работе рассматриваются методы и алгоритмы представления пространственных кривых и поверхностей в компьютерной графике средствами NURBS. Цели работы - получение углубленных знаний и практических навыков в изучаемой области графического моделирования; программная реализация алгоритмов работы с NURBS; создание собственной функциональной библиотеки на основе реализованных алгоритмов.
Дизайнерская и инженерная деятельность в современных условиях тесно связана с использованием персональных электронных вычислительных машин. На сегодняшний день для того чтобы быть эффективным конструктором или дизайнером, необходимо иметь инструменты, позволяющие быстро разрабатывать проекты, взаимодействовать с различными подразделениями, вовлеченными в процесс разработки, передавать созданные модели на другие производственные этапы. Начиная от эскиза, рисунка, физической модели, сканированных данных, или одной лишь идеи – перед разработчиком всегда стоит необходимость иметь системы для точного моделирования и документирования проекта, визуализации, анимации и анализа проектируемых моделей. Современный рынок программного обеспечения предоставляет широкий выбор средств автоматизированного моделирования и проектирования, в их числе, как универсальные пакеты, представленные такими брендами, как Autodesk 3ds Max, Maya, для графического моделирования, и AutoCAD, SolidWorks, для инженерной деятельности, так и узко специализированные программные системы. В работе рассматривается применение технологии NURBS на примере разработки собственной программной библиотеки для работы с NURBS и построения на ее основе системы трехмерного моделирования.
NURBS, Неоднородные Рациональные B-сплайны, являются математическим представлением 3-D геометрии, которое может точно описать любую форму от простой 2-D линии, круга, дуги или кривой до самой сложной 3-D органической поверхности. В силу своей гибкости и точности, модели NURBS могут использоваться в различных областях, от иллюстрации и анимации до проектирования в производстве.
NURBS широко применяются для задания кривых и поверхностей во многих современных CAD системах. С помощью В-сплайнов можно представить достаточно сложные поверхности, что позволяет построить гибкую систему моделирования. Примерами систем, поддерживающих работу с В-сплайнами, являются Rhinoceros, T-Flex[7,8].
Существующие профессиональные среды моделирования предоставляют обширную функциональность и поддержку своим клиентам, но по своей природе являются закрытым коммерческим программным обеспечением. В силу этого невозможно использовать, модифицировать их исходный код или узнать подробности реализации программной архитектуры этих систем. Целью работы является проектирование собственной модификации интерактивной графической системы, позволяющей создавать и редактировать пространственные кривые и поверхности различного вида, моделировать на их основе комплексные геометрические объекты. Составные элементы данной системы могут быть в дальнейшем использованы как в учебном процессе, так и при решении прикладных задач компьютерной графики и моделирования, разработки специализированного программного обеспечения.
Существует мно¬го поверхностей, для которых невозможно или достаточно трудоемко получить аналитическое описание. Эти поверхности пред¬ставляются в кусочном виде. В рассуждениях используется векторное параметрическое представление, потому что оно не зави¬сит от осей, устраняет бесконечные значения углов наклона относительно некото¬рой произвольной системы координат, устраняет неоднозначность представления многозначных поверхностей и пространственных функций, облегчает представление поверхностей в однородных координатах, и такое представление совместимо с использованием преобразований трехмерных однородных координат[3].
Существуют две основные идеи, лежащие в основе методов описания подобных поверх¬ностей. В первой математическую модель стараются создать по заранее известным данным. Во второй кривую или поверхность стараются создать с самого начала. В этом случае кроме количественных критериев требуется учет практического опыта, и часто необходимо интерактивное вмешательство разработчика [5].
NURBS обладают важными качествами, которые делают их идеальным выбором для автоматизированного моделирования:
- NURBS может точно представить и стандартные геометрические объекты, и геометрию произвольной формы, такую как кузова автомобилей или человеческое тело (рис. 1);
- являются обобщением нерациональных B-сплайн кривых и поверхностей, а так же нерациональных и рациональных кривых и поверхностей Безье;
- у NURBS есть точное и общеизвестное математическое определение;
- расчет NURBS, может быть реализован на компьютере эффективеными и устойчивыми алгоритмами без потери точности;
- количество информации, необходимой для представления NURBS геометрии, намного меньше чем количество информации, требуемой для полигональных моделей;
- существует несколько промышленных стандартов способов обмена геометрией NURBS, что дает возможность использовать ценные геометрические модели в различных средах моделирования[1].
Алгоритмы представления и расчета NURBS легли в основу программной реализации функциональной библиотеки для работы с кривыми и поверхностями. Кроме NURBS, в разработанной библиотеке реализованы методы работы со следующими видами пространственных кривых и поверхностей: кубические сплайны [3], поверхности Кунса [2,3], а также В-сплайны, кривые и поверхности Безье, представляющие собой частный случай NURBS [1].
На базе программной библиотеки была разработана интерактивная система моделирования, которая обеспечивает возможность создания и редактирования кривых и поверхностей, изменения их параметров, применение стандартных преобразований. Изменение опорных точек и параметров объектов происходит в интерактивном режиме с немедленной визуализацией результатов расчетов на экране.
Система обладает интуитивно понятным пользовательским интерфейсом: программный продукт обеспечивает пользователю максимально понятную и простую работу за счет продуманного оформления интерфейса, контекстных подсказок, горячих клавиш и предупреждений. За основу был взят стандартный интерфейс, существующих профессиональных сред моделирования. Интерфейс главного окна (рис. 2) приложения включает в себя: окно проекций (горизонтальная, фронтальная, профильная и пользовательская плоскости проекций), панель создания и редактирования объектов (справа от окна проекций), панель инструментов, меню.
Приложение позволяет создавать, редактировать, анализировать кривые, поверхности, и работать с NURBS-объектами. Система обеспечивает гибкость моделирования благодаря широкому набору возможностей рабочей среды.
Базовая функционалность системы включает в себя:
-развитый инструментарий трёхмерного моделирования;
-возможности построения различных типов поверхностей и кривых произвольной формы;
-интерактивное редактирование опорных точек, касательных векторов;
-изменение специфических параметров объекта: порядка, весовых коэффициентов, компонентов узловых векторов;
-применение стандартных преобразований, таких как масштабирование перенос, поворот, как к отдельному объекту или группе объектов, так и к набору контрольных вершин выбранного объекта;
- поддержка нескольких режимов визуализации: затенение по Гуро, плоское затенение и каркасная сетка.
Система позволяет работать как с базовыми примитивами, так и с комплексными геометрическими моделями образованными на их основе. На рисунке 3 приведен пример линейчатых поверхностей, у которых в качестве направляющих используются кривые линии. Базовая функциональность приложения легко расширяется за счёт различных модулей, дополняющих систему эффективным инструментарием для решения специализированных задач. Например, возможности разработанной библиотеки нашли практическое применение при решении задач генерации, визуализации и анализа поверхности ландшафта, расчета линий равного уровня, восстановления трехмерной геометрии объекта на основе существующих двумерных графических файлов.
Приложения, использующие разработанную программную библиотеку, получили высокие отзывы и оценки на Международной студенческой научно-технической конференции «Графика XXI века» в Севастополе, прошедшей 4-8 октября 2010 года [4], а также на международной студенческой олимпиаде 2010-2011 учебного года по системам автоматизированного проектирования и компьютерного моделирования в машиностроении, проведенной на базе Хмельницкого национального университета.
Разработанная система, написана на языке Visual С++ в интегрированной среде разработки Microsoft Visual C++ 2008 с использованием компонентов программной технологии .NET Framework 3.5 и графической библиотеки OpenGL. Функциональная библиотека написана на языке С++, является кроссплатформенным ядром системы, подключается к программному проекту графического редактора в виде статической библиотеки.
Выбор программных средств, для разработки проекта был сделан исходя из специфики поставленной задачи. Некоторые из особенностей которой:
- наличие удобного визуального интерфейса, схожего с большинством существующих профессиональных систем моделирования;
- наличие сложной иерархии классов и необходимость объектно-ориентированного подхода к представлению предметной области, позволяющего разрабатывать большие программные комплексы быстрее, используя повторно имеющие модули, обеспечивать инкапсуляцию данных, полиморфизм операций, наследование свойств и методов.
На основе исследования предметной области была разработана система моделирования, позволяющая работать с различными видами кривых и поверхностей (в частности, В-сплайны и NURBS). Разработанный графический редактор может быть в дальнейшем использован в образовательных целях на курсе «Графическое и геометрическое моделирование и интерактивные системы» в качестве демонстрации примера моделирования трехмерных объектов.
Программная библиотека, предоставляющая функциональность для работы с кривыми и поверхностями, может быть использована для решения прикладных задач в компьютерной графики и начертательной геометрии, построения специализированного программного обеспечения в области компьютерного моделирования и дизайна. Структура программной библиотеки спланирована таким образом, что расширение системы, посредством добавления новых программных модулей или внесения изменений в существующие, не представляет собой особых сложностей и не повлечет за собой необходимости повторного проектирования и изменения всей системы в целом. Весь комплекс поддерживаемых базовых примитивов предоставляет широкие возможности и перспективы для дальнейшего расширения функциональности библиотеки и ее практического применения.
В дальнейшем предполагается расширение функциональности библиотеки, добавление средств интеграции с различными CAD пакетами и поддержки экспорта / импорта наиболее популярных форматов моделей, использование распараллеливаемых алгоритмов и мощностей современных GPU для ускорения и оптимизации расчета геометрии.
1 Piegl L., Tiller W. «The NURBS Book. 2nd Edition» – Springer, 1997. – 646 p.
2 Farin G. «Curves and surfaces for CAGD. A practical guide» – Morgan-Kaufmann, 2002. – 499 p.
3 Роджерс Д., Адамс Дж. «Математические основы машинной графики» – М.:Мир, 2001. – 606 с.
4 Карабчевский В.В., Радченко В.И. «Исследование методов и алгоритмов представления про-странственных кривых и поверхностей в компьютерной графике» // «Графика XXI века. Тезисы докладов XXI Международной студенческой научно-технической конференции» – Севастополь, 2010 – С.76-78.
5 Фоли Дж., вэн Дэм А. «Основы интерактивной машинной графики: В 2-х книгах. Кн. 1» – М.:Мир, 1985. – 368 с.
6 Шикин Е.В., Плис Л.И. «Кривые и поверхности на экране компьютера. Руководство сплайнам для пользователей» – М.:ДИАЛОГ-МИФИ, 1996. – 240 с.