Неравномерный рациональный B-шлиц - Non-uniform rational B-spline

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

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

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

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

Историческое прошлое

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

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

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

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

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

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

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

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

  • Позиционная непрерывность (G 0 ) сохраняется, когда концевые положения двух кривых или поверхностей совпадают. Кривые или поверхности могут по-прежнему пересекаться под углом, образуя острый угол или край и вызывая прерывистые блики.
  • Тангенциальная непрерывность (G¹) требует, чтобы конечные векторы кривых или поверхностей были параллельны и указывали одинаково, исключая острые края. Поскольку блики, падающие на непрерывную по касательной кромку, всегда непрерывны и поэтому выглядят естественно, такого уровня непрерывности часто бывает достаточно.
  • Непрерывность кривизны (G²) дополнительно требует, чтобы конечные векторы имели одинаковую длину и скорость изменения длины. Световые участки, падающие на кромку с непрерывной кривизной, не изменяются, в результате чего две поверхности отображаются как одна. Визуально это можно определить как «идеально гладкое». Такой уровень непрерывности очень полезен при создании моделей, которые требуют множества бикубических участков, составляющих одну непрерывную поверхность.

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

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

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

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

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

Поверхностное моделирование.svg

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

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

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

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

порядок

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

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

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

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

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

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

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

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

Контрольные точки могут иметь любую размерность . Одномерные точки просто определяют скалярную функцию параметра. Обычно они используются в программах обработки изображений для настройки кривых яркости и цвета. Трехмерные контрольные точки широко используются в трехмерном моделировании, где они используются в повседневном значении слова «точка», местоположения в трехмерном пространстве. Многомерные точки могут использоваться для управления наборами значений, зависящих от времени, например, различными настройками положения и вращения манипулятора робота. Поверхности 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-кривых, обычно обозначаются как , в котором соответствует th контрольной точке и соответствует степени базовой функции. Зависимость от параметра часто не учитывается, поэтому мы можем писать . Определение этих базисных функций рекурсивно в . Функции степени 0 являются кусочно- постоянными функциями . На соответствующем участке узла они равны единице, а в остальном - ноль. Фактически, это линейная интерполяция и . Последние две функции не равны нулю для узловых пролетов и перекрываются для узловых пролетов. Функция вычисляется как

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

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

а также

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

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

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

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

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

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

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

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

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

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

Общий вид NURBS-поверхности

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

с участием

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

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

MOTORYACHT дизайн с использованием NURBS поверхностей

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

Узел вставки

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

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

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

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

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

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

Кривизна

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

Пример: круг

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

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

Икс у z Масса
1 0 0 1
1 1 0
0 1 0 1
-1 1 0
-1 0 0 1
-1 -1 0
0 -1 0 1
1 -1 0
1 0 0 1

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

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

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

использованная литература

  1. ^ Шнайдер, Филипп. «Кривые NURB: Руководство для непосвященных» . MACTECH . Проверено 26 сентября 2014 года .
  2. Schoenberg, IJ (19 августа 1964 г.). «Сплайновые функции и проблема градации» . Труды Национальной академии наук Соединенных Штатов Америки . Национальная академия наук . 52 (4): 947–950. DOI : 10.1073 / pnas.52.4.947 . PMC  300377 . PMID  16591233 .
  3. Перейти ↑ Foley, van Dam, Feiner & Hughes: Computer Graphics: Principles and Practice , section 11.2, Addison-Wesley 1996 (2nd ed.).
  4. ^ Био-вдохновленные самоорганизующиеся робототехнические системы . п. 9 . Проверено 6 января 2014 .
  5. ^ "Рациональные B-шлицы" . www.cl.cam.ac.uk .
  6. ^ «NURBS: Определение» . www.cs.mtu.edu .
  7. ^ Дэвид Ф. Роджерс: Введение в NURBS с исторической точки зрения, раздел 7.1
  8. ^ Гершенфельд, Нил (1999). Природа математического моделирования . Издательство Кембриджского университета . п. 141. ISBN. 0-521-57095-6.
  9. ^ a b c d Пигль, Лес; Тиллер, Уэйн (1997). Книга NURBS (2-е изд.). Берлин: Springer. ISBN 3-540-61545-8.
  10. ^ Piegl, L. (1989). «Изменение формы рациональных B-шлицев. Часть 1: кривые». Компьютерный дизайн . 21 (8): 509–518. DOI : 10.1016 / 0010-4485 (89) 90059-6 .

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