stringtranslate.com

Неравномерный рациональный B-сплайн

Кривая NURBS. (См. также: анимированное создание NURBS-сплайна .)
Поверхность NURBS с зеленой заливкой
NURBS-поверхность

Неоднородный рациональный базисный сплайн ( NURBS ) — это математическая модель, использующая базисные сплайны (B-сплайны), которая обычно используется в компьютерной графике для представления кривых и поверхностей . Он обеспечивает большую гибкость и точность при работе как с аналитическими (определяемыми общими математическими формулами ), так и смоделированными формами . Это тип кривого моделирования , в отличие от полигонального моделирования или цифровой скульптуры . Кривые NURBS обычно используются в системах автоматизированного проектирования (CAD), производстве (CAM) и проектировании (CAE). Они являются частью многочисленных общеотраслевых стандартов, таких как IGES , STEP , ACIS и PHIGS . Инструменты для создания и редактирования поверхностей NURBS можно найти в различных пакетах программного обеспечения для 3D-графики и анимации .

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

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

История

Плоский сплайн — физическое проявление сплайна как математического понятия.

До появления компьютеров проекты рисовались вручную на бумаге с помощью различных инструментов для рисования . Линейки использовались для прямых линий, циркуль для кругов и транспортир для углов. Но многие формы, такие как произвольная кривая носовой части корабля, невозможно было нарисовать с помощью этих инструментов. Хотя такие кривые можно было нарисовать от руки на чертежной доске, судостроителям часто требовалась версия в натуральную величину, которую невозможно было сделать вручную. Такие большие рисунки делались с помощью гибких полосок дерева, называемых сплайнами. Шлицы удерживались на месте в ряде заранее определенных точек, называемых «утками» (которые были сделаны из свинца и имели длину около 3 дюймов: «клюв» «утки» прижимался к шпонке; в старых книгах по проектированию яхт предполагалось, что эти методы); между утками эластичность материала сплайна заставляла полосу принимать форму, которая минимизировала энергию изгиба, создавая тем самым максимально гладкую форму, соответствующую ограничениям. Форму можно было регулировать, перемещая уточек. [1] [2]

В 1946 году математики начали изучать форму сплайна и вывели кусочно- полиномиальную формулу, известную как сплайн-кривая или сплайн-функция. И. Дж. Шенберг дал функции сплайна свое название из-за ее сходства с механическим сплайном, используемым чертежниками. [3]

Когда компьютеры были включены в процесс проектирования, физические свойства таких сплайнов были исследованы, чтобы их можно было смоделировать с математической точностью и воспроизвести при необходимости. Новаторскую работу провели во Франции инженер Renault Пьер Безье и физик и математик Citroën Поль де Кастельжо . Они работали почти параллельно друг другу, но поскольку Безье опубликовал результаты своей работы, кривые Безье были названы в его честь, а имя де Кастельжо связано только с родственными алгоритмами.

Первоначально NURBS использовались только в собственных пакетах САПР автомобильных компаний. Позже они стали частью стандартных пакетов компьютерной графики.

Интерактивная визуализация кривых и поверхностей NURBS в режиме реального времени была впервые коммерчески доступна на рабочих станциях Silicon Graphics в 1989 году. В 1993 году первый интерактивный инструмент моделирования NURBS для ПК под названием NöRBS был разработан CAS Berlin, небольшой начинающей компанией, сотрудничающей с Технический университет Берлина . [ нужна цитата ]

Непрерывность

Строящаяся поверхность, например корпус моторной яхты, обычно состоит из нескольких NURBS-поверхностей, известных как NURBS-патчи (или просто патчи ). Эти участки поверхности должны быть совмещены таким образом, чтобы границы были невидимы. Математически это выражается понятием геометрической непрерывности .

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

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

Параметрическая непрерывность первого и второго уровня (C 0 и C¹) для практических целей идентична позиционной и тангенциальной (G 0 и G¹) непрерывности. Однако параметрическая непрерывность третьего уровня (C²) отличается от непрерывности кривизны тем, что ее параметризация также является непрерывной. На практике непрерывности C² легче достичь, если использовать однородные B-шлицы.

Определение непрерывности C n требует, чтобы n -я производная соседних кривых/поверхностей ( ) была равна в месте соединения. [4] Обратите внимание, что (частные) производные кривых и поверхностей представляют собой векторы, имеющие направление и величину; оба должны быть равны.

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

Технические характеристики

Кривая NURBS определяется ее порядком, набором взвешенных контрольных точек и вектором узла. [5] Кривые и поверхности NURBS являются обобщением как B-сплайнов , так и кривых и поверхностей Безье, основное отличие которых заключается в взвешивании контрольных точек, что делает кривые NURBS рациональными . ( Нерациональные , также известные как простые , B-сплайны представляют собой особый случай/подмножество рациональных B-сплайнов, где каждая контрольная точка представляет собой обычную неоднородную координату [no 'w'], а не однородную координату . [6] Это эквивалентно весу «1» в каждой контрольной точке; Rational B-сплайны используют букву «w» каждой контрольной точки в качестве веса . [7] ) Используя двумерную сетку контрольных точек, NURBS-поверхности включают плоские участки и разделы сфер могут быть созданы. Они параметризуются двумя переменными (обычно называемыми s и t или u и v ). Это можно расширить до произвольных размеров для создания сопоставления NURBS .

Кривые и поверхности NURBS полезны по ряду причин:

Здесь NURBS в основном обсуждается в одном измерении (кривые); его можно обобщить до двух (поверхностей) или даже большего количества измерений.

Заказ

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

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

Контрольные точки

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

Контрольные точки определяют форму кривой. [9] Обычно каждая точка кривой вычисляется путем взвешивания суммы нескольких контрольных точек. Вес каждой точки варьируется в зависимости от определяющего параметра. Для кривой степени d вес любой контрольной точки отличен от нуля только в d+1 интервалах пространства параметров. Внутри этих интервалов вес изменяется в соответствии с полиномиальной функцией ( базисной функцией ) степени d. На границах интервалов базисные функции плавно стремятся к нулю, причем гладкость определяется степенью полинома.

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

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

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

Контрольные точки могут иметь любую размерность . Одномерные точки просто определяют скалярную функцию параметра. Обычно они используются в программах обработки изображений для настройки кривых яркости и цвета. Трехмерные контрольные точки широко используются в 3D-моделировании, где они используются в повседневном значении слова «точка» — местоположения в 3D-пространстве. Многомерные точки могут использоваться для управления наборами значений, зависящих от времени, например, различными настройками положения и вращения руки робота. Поверхности NURBS — всего лишь применение этого. Каждая контрольная «точка» на самом деле представляет собой полный вектор контрольных точек, определяющий кривую. Эти кривые имеют общую степень и количество контрольных точек и охватывают одно измерение пространства параметров. Путем интерполяции этих векторов управления по другому измерению пространства параметров получается непрерывный набор кривых, определяющих поверхность.

Вектор узла

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

Последовательные узлы могут иметь одинаковое значение. Затем это определяет пролет узла нулевой длины, что означает, что две контрольные точки активируются одновременно (и, конечно, две контрольные точки становятся деактивированными). Это влияет на непрерывность результирующей кривой или ее высших производных; например, он позволяет создавать углы на гладкой кривой NURBS. Ряд совпадающих узлов иногда называют узлом определенной кратности . Узлы кратностью два или три называются двойными или тройными. Кратность узла ограничена степенью изгиба; поскольку более высокая кратность разделит кривую на непересекающиеся части и оставит контрольные точки неиспользованными. Для NURBS первой степени каждый узел связан с контрольной точкой.

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

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

Узлы, необходимые только для внутренних расчетов, обычно бесполезны для пользователей программного обеспечения для моделирования. Поэтому многие приложения для моделирования не позволяют редактировать или даже видеть узлы. Обычно можно определить разумные векторы узлов, наблюдая за изменениями в контрольных точках. Более поздние версии программного обеспечения NURBS (например, Autodesk Maya и Rhinoceros 3D ) позволяют интерактивно редактировать положения узлов, но это значительно менее интуитивно понятно, чем редактирование контрольных точек.

Построение базисных функций

Базисные функции B-сплайна, используемые при построении NURBS-кривых, обычно обозначаются как , что соответствует -й контрольной точке и соответствует степени базисной функции. [10] Зависимость от параметра часто не учитывается, поэтому мы можем написать . Определение этих базисных функций рекурсивно в . Функции степени 0 являются кусочно- постоянными функциями . Они равны единице на соответствующем участке узла и нулю везде. По сути, это линейная интерполяция и . Последние две функции отличны от нуля для узловых пролетов и перекрываются для узловых пролетов. Функция вычисляется как

Сверху вниз: линейные базисные функции (синий) и (зеленый) (вверху), их весовые функции и (в центре) и результирующая квадратичная базисная функция (внизу). Узлы: 0, 1, 2 и 2,5.

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

и

Функции и положительны, когда соответствующие базисные функции более низкого порядка не равны нулю. Индукцией по n следует , что базисные функции неотрицательны для всех значений и . Это делает вычисление базисных функций численно стабильным.

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

Линейные базисные функции
Квадратичные базисные функции

На рисунках показаны линейная и квадратичная базисные функции узлов {..., 0, 1, 2, 3, 4, 4,1, 5,1, 6,1, 7,1, ...}.

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

Общий вид кривой NURBS

Используя определения базисных функций из предыдущего параграфа, кривая NURBS принимает следующий вид: [10]

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

в котором функции

известны как рациональные базисные функции .

Общая форма поверхности NURBS

Поверхность NURBS получается как тензорное произведение двух кривых NURBS с использованием двух независимых параметров и (с индексами и соответственно): [10]

с

как рациональные базисные функции.

Манипулирование объектами NURBS

Проектирование моторной яхты с использованием поверхностей NURBS

К объекту NURBS можно применить ряд преобразований. Например, если некоторая кривая определена с использованием определенной степени и N контрольных точек, та же кривая может быть выражена с использованием той же степени и N+1 контрольных точек. При этом ряд контрольных точек меняют положение, и в вектор узла вставляется узел. Эти манипуляции широко используются при интерактивном проектировании. При добавлении контрольной точки форма кривой должна оставаться прежней, образуя отправную точку для дальнейших корректировок. Некоторые из этих операций обсуждаются ниже. [10] [11]

Вставка узла

Как следует из этого термина, вставка узла вставляет узел в вектор узла. Если степень кривой равна , то контрольные точки заменяются новыми. Форма кривой остается прежней.

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

Удаление узла

Удаление узла происходит в обратном порядке по отношению к установке узла. Его цель — удалить узлы и связанные с ними контрольные точки, чтобы получить более компактное представление. Очевидно, что это не всегда возможно при сохранении точной формы кривой. На практике допуск на точность используется для определения возможности удаления узла. Этот процесс используется для очистки после интерактивного сеанса, в котором контрольные точки могли быть добавлены вручную, или после импорта кривой из другого представления, когда простой процесс преобразования приводит к избыточным контрольным точкам.

Степень возвышения

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

Кривизна

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

Пример: круг

NURBS имеет возможность точно описывать круги. Здесь черный треугольник — это контрольный многоугольник кривой NURBS (показан как w=1). Синяя пунктирная линия показывает соответствующий контрольный многоугольник кривой B-сплайна в однородных трехмерных координатах , образованный путем умножения NURBS на контрольные точки на соответствующие веса. Синие параболы представляют собой соответствующую кривую B-сплайна в 3D, состоящую из трех парабол. При выборе контрольных точек и весов NURBS параболы становятся параллельными противоположной грани серого конуса (с кончиком в начале координат 3D), поэтому деление на w для проецирования парабол на плоскость w = 1 приводит к образованию дуг окружности ( красный круг; см. конический раздел ).

Нерациональные сплайны или кривые Безье могут аппроксимировать круг, но не могут представлять его точно. Рациональные сплайны могут точно представлять любое коническое сечение, включая круг. Это представление не уникально, но одна из возможностей показана ниже:

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

Кривая точно представляет окружность, но она не параметризована точно длиной дуги окружности. Это означает, например, что точка at не лежит в (за исключением начальной, средней и конечной точки каждой четверти круга, поскольку представление симметрично). Это было бы невозможно, поскольку координата x круга обеспечила бы точное рациональное полиномиальное выражение для , что невозможно. Круг делает один полный оборот, когда его параметр изменяется от 0 до , но это только потому, что вектор узла был произвольно выбран кратным .

Смотрите также

Рекомендации

  1. ^ Шнайдер, Филип. «Кривые NURB: Руководство для непосвященных». МАКТЕХ . Проверено 26 сентября 2014 г.
  2. ^ Шнайдер, Филип (март 1996 г.). «Кривые NURB: Руководство для непосвященных» (PDF) . развивать (25): 48–74.
  3. Шенберг, IJ (19 августа 1964 г.). «Сплайн-функции и проблема градуировки». Труды Национальной академии наук Соединенных Штатов Америки . Национальная академия наук . 52 (4): 947–950. Бибкод : 1964PNAS...52..947S. дои : 10.1073/pnas.52.4.947 . ПМК 300377 . ПМИД  16591233. 
  4. ^ Фоли, ван Дам, Файнер и Хьюз: Компьютерная графика: принципы и практика , раздел 11.2, Аддисон-Уэсли, 1996 (2-е изд.).
  5. ^ Био-самоорганизующиеся роботизированные системы. п. 9 . Проверено 6 января 2014 г.
  6. ^ «Рациональные B-сплайны». www.cl.cam.ac.uk. _
  7. ^ "NURBS: Определение" . www.cs.mtu.edu .
  8. ^ Дэвид Ф. Роджерс: Введение в NURBS с исторической точки зрения, раздел 7.1
  9. ^ Гершенфельд, Нил (1999). Природа математического моделирования . Издательство Кембриджского университета . п. 141. ИСБН 0-521-57095-6.
  10. ^ abcd Пигл, Лес; Тиллер, Уэйн (1997). Книга NURBS (2-е изд.). Берлин: Шпрингер. ISBN 3-540-61545-8.
  11. ^ Пигл, Л. (1989). «Модификация формы рациональных B-сплайнов. Часть 1: кривые». Системы автоматизированного проектирования . 21 (8): 509–518. дои : 10.1016/0010-4485(89)90059-6.

Внешние ссылки