28.10.2019

Интеграционная шина устанавливает единые правила. Datareon ESB Корпоративная сервисная шина данных. Но я слышал, что SOA это XML, SOAP и веб сервисы¶


В этом разделе мы обсудим процесс выбора метода моделирования. В Maya моделирование осуществляется на основе трех разных форматов: неоднородных рациональных сплайнов Безье (о них мы поговорим в этой главе), сеток полигонов (они являются предметом обсуждения следующей главы) и поверхностей с иерархическим разбиением (этот усовершенствованный метод будет представлен в главе 6). Хотя традиционным методом является именно NURBS-моделирование, проще всего описать процесс создания объектов на основе полигональных сеток. Поэтому начнем мы именно с него.

Полигональное моделирование

Полигоны, или многоугольники, состоят из граней (faces). Одна грань представляет собой плоскую поверхность, полученную соединением трех точек, называемых вершинами (vertex). Положение вершин определяет форму и размер грани. Линии, соединяющие вершины друг с другом, называются ребрами (edges). Как правило, полигональные грани имеют три вершины, но могут иметь и четыре вершины и, соответственно, как треугольную, так и четырехугольную форму.

Грани соединяются друг с другом вдоль ребер, формируя более сложную поверхность (рис. 4.2).

Рис. 4.2. Полигональная сфера и составляющие ее подобъекты

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

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

Практические навыки моделирования на основе полигонов вы получите в главе 5.

NURBS-моделирование

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

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

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

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

Рис. 4.3. Кривая Безье и ее компоненты

В то время как управляющие точки контролируют кривизну сплайна Безье, сами сплайны, называемые изопараметрическими кривыми (isoparams), определяют Кривизну NURBS-поверхности (рис. 4.4). Расстояние между двумя изопараметрическими кривыми называется интервалом (span). Чем больше количество интервалов, тем более детализированной является поверхность. Однако имейте В Виду, что наличие в сцене поверхностей с высокой детализацией замедляет процесс визуализации.

Рис. 4.4. NURBS-поверхность создается между изопараметрическими кривыми; отредактировать ее форму можно перемещением управляющих вершин

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

NURBS-поверхность позволяет получить более гладкую деформацию (рис. 4.5), в то время как полигональная сетка разбивается на набор граней в местах расположения ребер. Для достижения такого же результата у сеток полигонов требуется дополнительная детализация.

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

Рассмотрим процесс создания NURBS-кривой. Выберите в меню File (Файл) команду New (Создать) и разверните на весь экран окно проекции Perspective (Перспектива). Выберите в меню Create (Создать) команду CV Curve Tool (Построение CV-кривой) и обратите внимание на то, как при этом изменится форма указателя мыши. Несколько раз щелкните в разных точках координатной плоскости, формируя кривую. Как легко заметить, кривая Безье создается между управляющими вершинами. Нажмите клавишу Enter, чтобы закончить кривую.

Рис. 4.5. Результат сгиба NURBS-цилиндра (слева) и полигонального цилиндра (справа). NURBS-цилиндр остался гладким, в то время как полигональная модель приобрела фасеточный вид

Поверхности с иерархическим разбиением

Поверхности с иерархическим разбиением приобрели лучшие черты NURBS-no-верхностей и полигональных сеток. Они совмещают простоту создания модели и гладкость ее формы.

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

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

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

Выбор формата

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

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

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

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

В уходящем году инженерная отрасль отметила знаменательный юбилей – тридцать лет промышленного использования неоднородных рациональных B-сплайнов (сокращенно NURBS – от англ. Non-Uniform Rational B-Spline) для моделирования трехмерных кривых и поверхностей. В августе 1981 г. американский авиастроительный концерн Boeing предложил сделать NURBS частью промышленного стандарта IGES . И хотя это решение формально было утверждено только пару лет спустя, отрасль САПР среагировала на предложение моментально: в том же году о поддержке NURBS объявили обе ведущие компании, производящие инженерное ПО – SDRC и Computervision . Сейчас, 30 лет спустя, отыскать САПР без поддержки NURBS практически невозможно. В чем причина этого феномена? Почему изобретение NURBS революционизировало отрасль? Ниже мы попытаемся ответить на эти вопросы, а заодно вспомним всех исследователей, внесших вклад в развитие и становление NURBS.

Скульптурные поверхности

Хорошо известно, что научные исследования в области трехмерного геометрического моделирования начались вовсе не в рамках CAD (проектирования с помощью компьютера), а со стороны CAM (производства с помощью компьютера). Изобретение в начале 1950-х гг. станка с ЧПУ (числовым программным управлением) в MIT (Массачусетском технологическом институте, США) породило потребность в цифровой модели детали, необходимой для создания управляющей программы для станка. Изучением принципов моделирования трехмерных объектов занялись различные исследовательские группы, а основными заказчиками этих исследований стали крупнейшие предприятия аэрокосмической и автомобильной отраслей промышленности.

Рис. 1. Citroёn DS

Посмотрите на фотографию модели Citroёn DS (годы выпуска 1955-1975), ставшей автомобильной иконой на все времена. Точное изготовление таких сложных «скульптурных» поверхностей требует использования продвинутого математического аппарата, и совершенно не случайно одно из первых исследований в этой области было проведено французским математиком Полем де Кастельжо (Paul de Casteljau), работавшим на Citroёn. Он предложил способ построения гладкой поверхности по набору контрольных точек, задающих ее геометрические свойства. Результаты его работы были опубликованы только в 1974 г., но само исследование было проведено еще в 1959 г., что дает основания именно его считать автором кривых и поверхностей, получивших имя совсем другого француза – Пьера Безье (Pierre Bézier). Впрочем, прежде чем рассказать о нем, напомним о самой проблематике «скульптурных» инженерных поверхностей.

Как можно конструктивно (не в виде абстрактного алгебраического уравнения, а путем геометрических построений) задать гладкую поверхность, обладающую требуемой эстетической формой? Простейшим способом задания является указание четырех точек в трехмерном пространстве, которые формируют так называемый билинейный лоскут (bilinear patch):

Рис. 2. Билинейный лоскут

Билинейный лоскут является разновидностью линейчатой поверхности (ruled surface), которая целиком состоит из отрезков, соединяющих две кривых:

Рис. 3. Линейчатая поверхность

Стивен Кунс (Steven Coons), профессор MIT, обобщил такой способ задания на поверхности с двойной кривизной, получившие его имя (Coons patch):

Рис. 4. Лоскут Кунса

Опубликованный им в 1967 г. препринт “Surfaces for Computer-Aided Design in Space Form” получил широкую известность как «Малая красная книга». Предложенный им аппарат граничных кривых и функций сопряжения дал основу для всех дальнейших исследований в этой области. Именно Кунс первым из исследователей предложил использовать рациональные полиномы для моделирования конических сечений. Выдающийся вклад Кунса в развитие отрасли САПР подчеркивается еще и тем, что он являлся научным руководителем Айвэна Сазерлэнда (Ivan Sutherland), создателя знаменитой системы Sketchpad, ставшей прообразом нынешних САПР.

Кривые Безье

Лоскут Кунса позволял контролировать форму поверхности на ее границах, но не между ними. Необходимость контролировать форму внутри хорошо понимал Пьер Безье, разрабатывавший в начале 1960-х гг. систему UNISURF для проектирования поверхностей автомобилей Renault.

Рис. 5. Пьер Безье

Безье, как истинный представитель французской математической школы, хорошо знал труды Шарля Эрмита (французского математика XIX в.), в частности аппарат кубических кривых, названных в его честь. Эрмитова кривая (Hermite curve) является геометрическим способом задания кубической кривой: с помощью концевых точек и касательных векторов в них. Варьируя направления и величины этих векторов, можно контролировать форму Эрмитовой кривой:

Рис. 6. Семейство Эрмитовых кривых

Безье не нравилось то, что, задавая Эрмитову кривую, мы указываем только ее поведение в концевых точках, но не можем влиять явным образом на форму кривой между этими точками (в частности, кривая может удалиться сколь угодно далеко от отрезка, соединяющего ее концевые точки). Поэтому он придумал конструктивно задаваемую кривую (позднее получившую его имя), форму которой можно контролировать в промежуточных, так называемых контрольных, точках. (Bézier curve) всегда выходит из первой контрольной точки, касаясь первого отрезка ломанной, соединяющей все контрольные точки, и заканчивается в последней контрольной точке, касаясь последнего отрезка. При этом любая точка кривой всегда остается внутри выпуклого замыкания множества контрольных точек:

Рис. 7. Кривая Безье с четырьмя контрольными точками

Безье опубликовал работу по своим кривым в 1962 г., но когда двенадцать лет спустя компания Citroёn рассекретила свои исследования, выяснилось, что эти кривые были известны де Кастельжо как минимум за три года до Безье. Де Кастельжо описывал их конструктивно, и соответствующий алгоритм получил название в его честь.

Позднее Форрест установил связь между кривыми Безье и полиномами в форме Бернштейна (который были известны математикам еще с начала XX в.) Он показал, что функция, задающая кривую Безье, может быть представлена в виде линейной комбинации базисных полиномов Бернштейна. Это позволило исследовать свойства кривых Безье, опираясь на свойства данных полиномов.

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

Рис. 8. Поверхность Безье

Сплайны

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

Способ борьбы с алгебраической степенью сложной кривой известен математикам давно – достаточно построить кривую, состоящую из гладко сопряженных сегментов, каждый из которых имеет ограниченную алгебраическую степень. Такие кривые называются сплайнами , а в математический обиход их ввел американский математик румынского происхождения Исаак Шёнберг . Его теоретические работы практическим образом (в контексте САПР) переосмыслил Карл де Бур, американский математик немецкого происхождения. Его работа “On calculating with B-Splines”, равно как и вышедшая в том же году (1972) статья Кокса “The numerical evaluation of B-Splines” установили связь между геометрической формой составной кривой и алгебраическим способом ее задания.

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

Уравнение B-сплайна имеет вид, аналогичный кривой Безье, но сопрягающие функции не являются многочленами Бернштейна, а определяются рекурсивным образом в зависимости от значения параметра. Область задания параметра B-сплайна разбита на узлы (knots), которые соответствуют точкам сопряжения алгебраических кривых заданной степени.

Изобретение NURBS

Первой работой с упоминанием NURBS стала диссертация Кена Версприла (Ken Versprille), аспиранта Сиракузского университета в Нью-Йорке .

Рис. 9. Кен Версприл, изобретатель NURBS

Версприлл получил степень бакалавра математики в Университете Нью-Хэмпшира, затем обучался в магистратуре и аспирантуре Сиракузского университета, где в то время работал профессором Стивен Кунс. Проникшись идеями Кунса, Версприл опубликовал первое описание NURBS и посвятил этой теме свою диссертацию. Вскоре после защиты он был принят на работу в компанию Computervision на должность старшего программиста для разработки функционала трехмерного моделирования в системе CADDS 3 . И хотя порученная ему работа (реализация сплайнов) совпадала с интересующей его темой, его босс, будучи сконцентрирован на выполнении проекта в срок, настоял на отказе от NURBS и реализации более простого (с математической точки зрения) аппарата кривых Безье.

Спустя несколько лет Версприлл занял руководящую позицию в Computervision, и компания наконец решила поддержать NURBS. Программист, которому поручили реализацию, пришел к Кену за советом, который не заставил себя ждать: «Измени в таком-то файле такой-то флаг с 0 на 1 и перекомпилируй код!» Оказалось, что Версприлл с самого начала реализовал NURBS, просто не включил соответствующий код в релиз. И после исправления пары ошибок этот код заработал!

В 2005 году CAD Society, некоммерческая ассоциация отрасли САПР, присудила Кену Версприллу награду за неоценимый вклад в технологию САПР в виде NURBS. Премия была вручена на конгрессе COFES, состоявшемся в том же году в Аризоне.

Вклад Boeing

В 1979 г. авиастроительная корпорация Boeing решила начать работы по разработке собственной CAD/CAM системы под названием TIGER . Одна из задач, стоявших перед ее разработчиками, состояла в выборе подходящего представления для 11 требуемых форм кривых, включавших в себя все от отрезков и окружностей до кривых Безье и B-сплайнов. В процессе работы один из исследователей – Юджин Ли (Eugene Lee) – обнаружил, что основная задача (нахождение точки пересечения двух произвольных кривых) может быть сведена к решению задачи нахождения точки пересечения кривых Безье, поскольку любая гладкая кривая в некоторой окрестности может быть аппроксимирована кривой Безье. Это мотивировало исследователей к поиску способа представления всех кривых с использованием одной формы. (О диссертации Версприла они, похоже, ничего не знали.)

Важным локальным открытием стала возможность представления окружностей и других конических сечений с помощью рациональных кривых Безье . Другим шагом к открытию стало использование в промышленной практике давно известных из научной литературы неоднородных B-сплайнов. Наконец, исследователи пришли к интеграции двух этих понятий в единую формулу – NURBS. После чего потребовалось немало усилий, чтобы убедить всех остальных разработчиков TIGER начать использовать единое представление для всех типов кривых.

Вскоре после этого компания Boeing предложила включить NURBS в формат IGES, подготовив технический документ с исчерпывающим описанием нового универсального типа геометрических данных. Предложение было с энтузиазмом воспринято – прежде всего, благодаря позиции компании SDRC.

Вклад SDRC

В 1967 г. бывшие профессора машиностроительного факультета Университета Цинциннати (США) создали компанию SDRC (Structural Dynamics Research Corporation). Изначально ориентированная на оказание консалтинговых услуг в области машиностроения, SDRC со временем превратилась в одного из ведущих разработчиков САПР в мире. Начав с области CAE (средств инженерного анализа) компания затем сосредоточилась и на CAD (проектирование), разработав систему I-DEAS, которая позволяла решать широкий спектр задач – от концептуального проектирования посредством каркасного и твердотельного моделирования до черчения, конечно-элементного анализа и составления программ для станков с ЧПУ. В основе САПР I-DEAS лежала подсистема твердотельного моделирования GEOMOD.

Изначально GEOMOD представляла твердые тела в виде многоугольных сеток, аппроксимирующих их оболочку. Осознав важность предложения Boeing по стандартизации NURBS, программисты SDRC с энтузиазмом взялись за реализацию NURBS в GEOMOD. Основным разработчиком алгоритмов был Уэйн Тиллер (Wayne Tiller), впоследствии ставший соавтором знаменитой монографии "The NURBS Book" .

Рис. 10. Уэйн Тиллер, президент GeomWare, соавтор "Книги NURBS"

Система I-DEAS прекратила свое существование, после того как в 2001 г. компания EDS поглотила SDRC, а Уэйн Тиллер применил полученный опыт при реализации библиотеки NLib (см. ниже).

Вклад GeomWare, IntegrityWare и Solid Modeling Solutions

Cox, M. G., 1972, The Numerical Evaluation of B-Splines, J. Inst. Mathematics and Applications, Vol. 10, pp. 134-149.

De Boor, C., 1972, On Calculation with B-Splines, J. Approximation Theory, Vol. 6, No. 1, pp. 50-62.

Doo, D., 1978, A subdivision algorithm for smoothing down irregularly shaped polyhedrons, Proceedings on Interactive Techniques in Computer Aided Design, pp. 157-165.

Lee, E. T. Y., 1981, A Treatment of Conics in Parametric Rational Bezier Form, Boeing document, Boeing, Seattle, Wash.

Piegl, L., 1991, On NURBS: A Survey, IEEE CG&A, Vol. 11, No. 1, pp. 55-71. http://www.ece.uvic.ca/~bctill/papers/mocap/Piegl_1991.pdf

Piegl, L. A., and Tiller, W., 1997, The NURBS Book, Springer.

Schoenberg, I. J., 1946, Contributions to the problem of approximation of equidistant data by analytic functions, Part A: On the problem of smoothing or graduation, a first class of analytic approximation formulas, Quart. Appl. Math. 4, 45–99.

Sederberg, T.-W., Zheng, J., Bakenov, A., and Nasri, A., 2003, T-Splines and T-NURCCs, ACM Transactions on. Graphics, 22(3), 477-484, http://cagd.cs.byu.edu/~tspline/innovation/papers/tspline.pdf

Versprille, K. J., 1975, Computer-Aided Design Applications of the Rational B-Splines Approxamation Form, doctoral dissertation, Syracuse Univ., Syracuse, N.Y.


© 2024
alerion-pw.ru - Про лекарственные препараты. Витамины. Кардиология. Аллергология. Инфекции