Неравномерный рациональный B-сплайн
Неоднородный рациональный базисный сплайн ( NURBS ) — это математическая модель, использующая базисные сплайны (B-сплайны), которая обычно используется в компьютерной графике для представления кривых и поверхностей . Он обеспечивает большую гибкость и точность при работе как с аналитическими (определяемыми общими математическими формулами ), так и смоделированными формами . Это тип кривого моделирования , в отличие от полигонального моделирования или цифровой скульптуры . Кривые NURBS обычно используются в системах автоматизированного проектирования (CAD), производстве (CAM) и проектировании (CAE). Они являются частью многочисленных общеотраслевых стандартов, таких как IGES , STEP , ACIS и PHIGS . Инструменты для создания и редактирования NURBS-поверхностей встречаются в различной 3D-графике , рендеринге , [1] и пакеты программного обеспечения для анимации .
С ними можно эффективно работать с помощью компьютерных программ, но при этом обеспечить простое взаимодействие с человеком. Поверхности NURBS представляют собой функции отображения двух параметров на поверхность в трехмерном пространстве . Форма поверхности определяется контрольными точками . В компактной форме поверхности NURBS могут представлять простые геометрические фигуры . Для сложных органических форм более подходят Т-образные сплайны и поверхности подразделения , поскольку они вдвое сокращают количество контрольных точек по сравнению с поверхностями NURBS.
В целом редактирование кривых и поверхностей NURBS интуитивно понятно и предсказуемо. [ нужна ссылка ] Контрольные точки всегда либо напрямую связаны с кривой или поверхностью, либо действуют так, как если бы они были соединены резиновой лентой. В зависимости от типа пользовательского интерфейса редактирование кривых и поверхностей NURBS может осуществляться через их контрольные точки (аналогично кривым Безье ) или с помощью инструментов более высокого уровня, таких как сплайновое моделирование и иерархическое редактирование .
История [ править ]
До появления компьютеров проекты рисовались вручную на бумаге с помощью различных инструментов для рисования . Линейки использовались для прямых линий, циркуль для кругов и транспортир для углов. Но многие формы, такие как произвольная кривая носовой части корабля, невозможно было нарисовать с помощью этих инструментов. Хотя такие кривые можно было нарисовать от руки на чертежной доске, судостроителям часто требовалась версия в натуральную величину, которую невозможно было сделать вручную. Такие большие рисунки делались с помощью гибких полосок дерева, называемых сплайнами. Шлицы удерживались на месте в ряде заранее определенных точек, называемых «утками» (они были сделаны из свинца и имели длину около 3 дюймов: «клюв» «утки» прижимался к шпонке; в старых книгах по проектированию яхт предполагалось, что эти методы); Между утками эластичность материала сплайна заставляла полосу принимать форму, которая минимизировала энергию изгиба, создавая тем самым максимально гладкую форму, соответствующую ограничениям. Форму можно было регулировать, перемещая уточек. [2] [3]
В 1946 году математики начали изучать форму сплайна и вывели кусочно- полиномиальную формулу, известную как сплайн-кривая или сплайн-функция. И. Дж. Шенберг дал функции сплайна свое название из-за ее сходства с механическим сплайном, используемым чертежниками. [4]
Когда компьютеры были включены в процесс проектирования, физические свойства таких сплайнов были исследованы, чтобы их можно было смоделировать с математической точностью и воспроизвести там, где это необходимо. Новаторскую работу провели во Франции инженер Renault Поль Пьер Безье и де физик и математик Citroën Кастельжо . Они работали почти параллельно друг другу, но поскольку Безье опубликовал результаты своей работы, кривые Безье были названы в его честь, а имя де Кастельжо связано только с родственными алгоритмами.
Первоначально NURBS использовались только в собственных пакетах САПР автомобильных компаний. Позже они стали частью стандартных пакетов компьютерной графики.
Интерактивная визуализация кривых и поверхностей NURBS в режиме реального времени была впервые коммерчески доступна на рабочих станциях Silicon Graphics в 1989 году. В 1993 году первый интерактивный инструмент моделирования NURBS для ПК под названием NöRBS был разработан CAS Berlin, небольшой начинающей компанией, сотрудничающей с Технический университет Берлина . [ нужна ссылка ]
Преемственность [ править ]
Строящаяся поверхность, например корпус моторной яхты, обычно состоит из нескольких NURBS-поверхностей, известных как NURBS-патчи (или просто патчи ). Эти участки поверхности должны быть совмещены таким образом, чтобы границы были невидимы. Математически это выражается понятием геометрической непрерывности .
Существуют инструменты более высокого уровня, которые извлекают выгоду из способности NURBS создавать и устанавливать геометрическую непрерывность разных уровней:
- Позиционная непрерывность (G 0 ) выполняется всякий раз, когда конечные положения двух кривых или поверхностей совпадают. Кривые или поверхности могут по-прежнему пересекаться под углом, образуя острый угол или край и вызывая неровные блики.
- Тангенциальная непрерывность (G¹) требует, чтобы конечные векторы кривых или поверхностей были параллельны и направлены в одну сторону, исключая острые края. Поскольку блики, попадающие на тангенциально непрерывный край, всегда непрерывны и поэтому выглядят естественно, такого уровня непрерывности часто может быть достаточно.
- Непрерывность кривизны (G²) дополнительно требует, чтобы конечные векторы имели одинаковую длину и скорость изменения длины. Светлые участки, падающие на непрерывную кривизну кромку, не отображают никаких изменений, в результате чего две поверхности кажутся одной. Визуально это можно определить как «идеально гладкое». Этот уровень непрерывности очень полезен при создании моделей, требующих множества бикубических участков, составляющих одну непрерывную поверхность.
Геометрическая непрерывность в основном относится к форме получаемой поверхности; поскольку поверхности NURBS являются функциями, также можно обсуждать производные поверхности по параметрам. Это известно как параметрическая непрерывность . Параметрическая непрерывность данной степени подразумевает геометрическую непрерывность этой степени.
Параметрическая непрерывность первого и второго уровня (C 0 и C¹) для практических целей идентичны позиционным и тангенциальным (G 0 и G¹) непрерывность. Однако параметрическая непрерывность третьего уровня (C²) отличается от непрерывности кривизны тем, что ее параметризация также является непрерывной. На практике непрерывности C² легче достичь, если использовать однородные B-шлицы.
Определение С н непрерывность требует, чтобы n -я производная соседних кривых/поверхностей ( ) равны в суставе. [5] Обратите внимание, что (частные) производные кривых и поверхностей представляют собой векторы, имеющие направление и величину; оба должны быть равны.
Блики и отражения могут обеспечить идеальное сглаживание, которого в противном случае практически невозможно достичь без поверхностей NURBS, имеющих непрерывность как минимум G². Тот же принцип используется в качестве одного из методов оценки поверхности, при котором трассировкой лучей или отображением отражений изображение поверхности с с отражающимися на ней белыми полосами покажет даже самые незначительные отклонения на поверхности или наборе поверхностей. Этот метод основан на прототипировании автомобилей, при котором качество поверхности проверяется путем проверки качества отражений неонового потолка на поверхности автомобиля. Этот метод также известен как «зебра-анализ».
Технические характеристики [ править ]
Кривая NURBS определяется ее порядком, набором взвешенных контрольных точек и вектором узла. [6] Кривые и поверхности NURBS являются обобщением как B-сплайнов , так и кривых и поверхностей Безье , основное отличие которых заключается в взвешивании контрольных точек, что делает кривые NURBS рациональными .
( Нерациональные , также известные как простые , B-сплайны — это особый случай/подмножество рациональных B-сплайнов, где каждая контрольная точка представляет собой обычную неоднородную координату [no 'w'], а не однородную координату . [7] Это эквивалентно весу «1» в каждой контрольной точке; Rational B-сплайны используют букву «w» каждой контрольной точки в качестве веса . [8] )
Используя двумерную сетку контрольных точек, можно создавать поверхности NURBS, включая плоские участки и секции сфер. Они параметризуются двумя переменными (обычно называемыми s и t или u и v ). Это можно расширить до произвольных размеров для создания сопоставления NURBS. .
Кривые и поверхности NURBS полезны по ряду причин:
- Набор NURBS для данного порядка инвариантен относительно аффинных преобразований: [9] такие операции, как вращение и перемещение, можно применять к кривым и поверхностям NURBS, применяя их к их контрольным точкам.
- Они предлагают одну общую математическую форму как для стандартных аналитических форм (например, конических ), так и для форм произвольной формы.
- Они дают возможность создавать самые разнообразные формы.
- Они уменьшают потребление памяти при хранении фигур (по сравнению с более простыми методами).
- Их можно достаточно быстро оценить с помощью численно стабильных и точных алгоритмов .
Здесь NURBS в основном обсуждается в одном измерении (кривые); его можно обобщить до двух (поверхностей) или даже большего количества измерений.
Заказать [ править ]
Порядок кривой NURBS определяет количество близлежащих контрольных точек, которые влияют на любую данную точку кривой. Кривая математически представляется полиномом степени на единицу меньше порядка кривой. Следовательно, кривые второго порядка (которые представляются линейными полиномами) называются линейными кривыми, кривые третьего порядка — квадратичными кривыми, а кривые четвертого порядка — кубическими кривыми. Количество контрольных точек должно быть больше или равно порядку кривой.
На практике чаще всего используются кубические кривые. Кривые пятого и шестого порядков иногда полезны, особенно для получения непрерывных производных более высокого порядка, но кривые более высоких порядков практически никогда не используются, поскольку они приводят к внутренним численным проблемам и, как правило, требуют непропорционально большого времени вычислений.
Контрольные точки [ править ]
Контрольные точки определяют форму кривой. [10] Обычно каждая точка кривой вычисляется путем взвешивания взвешенной суммы нескольких контрольных точек. Вес каждой точки варьируется в зависимости от определяющего параметра. Для кривой степени 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-кривых, обычно обозначаются как , в котором соответствует -я контрольная точка, и соответствует степени базовой функции. [11] Зависимость от параметра часто не учитывается, поэтому мы можем написать . Определение этих базисных функций рекурсивно в .Функции степени 0 являются кусочно- постоянными функциями . Они равны единице на соответствующем участке узла и нулю везде.Эффективно, представляет собой линейную интерполяцию и . Последние две функции отличны от нуля при узловые пролеты, перекрывающие узел пролетает. Функция вычисляется как
Опять же по индукции можно доказать, что сумма базисных функций для конкретного значения параметра равна единице. Это известно как свойство разделения базисных функций.
На рисунках показаны линейная и квадратичная базисные функции для узлов {..., 0, 1, 2, 3, 4, 4,1, 5,1, 6,1, 7,1, ...}
Один пролет узла значительно короче остальных. На этом участке узла пик квадратичной базисной функции более выражен и достигает почти единицы. И наоборот, прилегающие базисные функции быстрее падают до нуля. В геометрической интерпретации это означает, что кривая близко подходит к соответствующей контрольной точке. В случае двойного узла длина размаха узла становится равной нулю, а пик достигает ровно единицы. В этот момент базисная функция перестает быть дифференцируемой. Кривая будет иметь острый угол, если соседние контрольные точки не лежат на одной прямой.
Общая форма кривой NURBS [ править ]
Используя определения базисных функций из предыдущего абзаца кривая NURBS принимает следующий вид: [11]
В этом, количество контрольных точек и — соответствующие веса. Знаменатель — это нормализующий коэффициент, который равен единице, если все веса равны единице. Это видно из разделения свойства единства базисных функций. Это принято писать так
Общая форма поверхности NURBS [ править ]
Поверхность NURBS получается как тензорное произведение двух кривых NURBS с использованием двух независимых параметров. и (с индексами и соответственно): [11]
Манипулирование объектами NURBS [ править ]
К объекту NURBS можно применить ряд преобразований. Например, если некоторая кривая определена с использованием определенной степени и N контрольных точек, та же кривая может быть выражена с использованием той же степени и N+1 контрольных точек. При этом ряд контрольных точек меняют положение, и в вектор узла вставляется узел.Эти манипуляции широко используются при интерактивном проектировании. При добавлении контрольной точки форма кривой должна оставаться прежней, образуя отправную точку для дальнейших корректировок. Некоторые из этих операций обсуждаются ниже. [11] [12]
Вставка узла [ править ]
Как следует из этого термина, вставка узла вставляет узел в вектор узла. Если степень кривой , затем контрольные точки заменены на новые. Форма кривой остается прежней.
Узел можно вставлять несколько раз, вплоть до максимальной кратности узла. Иногда это называют уточнением узла и может быть достигнуто с помощью алгоритма, который более эффективен, чем повторное введение узла.
Удаление узла [ править ]
Удаление узла происходит в обратном порядке по отношению к установке узла. Его цель — удалить узлы и связанные с ними контрольные точки, чтобы получить более компактное представление. Очевидно, что это не всегда возможно при сохранении точной формы кривой. На практике допуск на точность используется для определения возможности удаления узла. Этот процесс используется для очистки после интерактивного сеанса, в котором контрольные точки могли быть добавлены вручную, или после импорта.кривая из другого представления, где простой процесс преобразования приводит к избыточным контрольным точкам.
Степень возвышения [ править ]
Кривая NURBS определенной степени всегда может быть представлена кривой NURBS более высокой степени. Это часто используется при объединении отдельных кривых NURBS.например, при создании поверхности NURBS, интерполирующей набор кривых NURBS, или при объединении соседних кривых. При этом различные кривые должны быть приведены к одинаковой степени, обычно к максимальной степени набора кривых. Этот процесс известен как повышение степени .
Кривизна [ править ]
Важнейшим свойством дифференциальной геометрии является кривизна . . Он описывает локальные свойства (края, углы и т. д.) и отношения между первой и второй производной и, следовательно, точную форму кривой. Определив производные, легко вычислить или аппроксимируется как длина дуги из второй производной . Прямой расчет кривизны Использование этих уравнений является большим преимуществом параметризованных кривых по сравнению с их многоугольными представлениями.
Пример: круг [ править ]
Нерациональные сплайны или кривые Безье могут аппроксимировать круг, но не могут представлять его точно. Рациональные сплайны могут точно представлять любое коническое сечение, включая круг. Это представление не уникально, но одна из возможностей показана ниже:
х | и | С | Масса |
---|---|---|---|
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 до , но это только потому, что вектор узла был произвольно выбран кратным .
См. также [ править ]
- Сплайн
- Поверхность Безье
- алгоритм де Бура
- Треугольная сетка
- Облако точек
- Рациональное движение
- Изогеометрический анализ
Ссылки [ править ]
- ^ https://www.willgibbons.com/rendering-software/
- ^ Шнайдер, Филип. «Кривые NURB: Руководство для непосвященных» . МАКТЕХ . Проверено 26 сентября 2014 г.
- ^ Шнайдер, Филип (март 1996 г.). «Кривые NURB: Руководство для непосвященных» (PDF) . развивать (25): 48–74.
- ^ Шенберг, Эй-Джей (19 августа 1964 г.). «Сплайн-функции и проблема градуировки» . Труды Национальной академии наук Соединенных Штатов Америки . 52 (4). Национальная академия наук : 947–950. Бибкод : 1964PNAS...52..947S . дои : 10.1073/pnas.52.4.947 . ПМК 300377 . ПМИД 16591233 .
- ^ Фоли, ван Дам, Файнер и Хьюз: Компьютерная графика: принципы и практика , раздел 11.2, Аддисон-Уэсли, 1996 (2-е изд.).
- ^ Биоинспирированные самоорганизующиеся роботизированные системы . п. 9 . Проверено 6 января 2014 г.
- ^ «Рациональные B-сплайны» . www.cl.cam.ac.uk.
- ^ «НУРБС: Определение» . www.cs.mtu.edu .
- ^ Дэвид Ф. Роджерс: Введение в NURBS с исторической точки зрения, раздел 7.1
- ^ Гершенфельд, Нил (1999). Природа математического моделирования . Издательство Кембриджского университета . п. 141. ИСБН 0-521-57095-6 .
- ↑ Перейти обратно: Перейти обратно: а б с д Пигл, Лес; Тиллер, Уэйн (1997). Книга NURBS (2-е изд.). Берлин: Шпрингер. ISBN 3-540-61545-8 .
- ^ Пигл, Л. (1989). «Модификация формы рациональных B-сплайнов. Часть 1: кривые». Компьютерное проектирование . 21 (8): 509–518. дои : 10.1016/0010-4485(89)90059-6 .