Non-Uniform Rational B-Spline (NURBS) (Неравномерные Рациональные B-Сплайны)

Что значит слово “NURBS”?

NURBS - этоаббревиатура от "Неравномерные Рациональные B-Сплайны". Неравномерными рациональными В-сплайнами можно описывать 3D геометрию.

Где используется NURBS для описания 3D геометрии?

NURBS геометрия имеет пять важных качеств, которые делают его идеальным выбором для компьютерного моделирования.

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

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

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

Объём информации, необходимой для представления части геометрии при помощи NURBS намного меньше, чем объём информации, необходимый для описания широкораспространёнными приближениями при помощи граней.

Правило оценки NURBS, рассматриваемое ниже, реализуется с помощью компьютера точно и эффективно.

Что такое NURBS геометрия?

Есть много путей, чтобы ответить на этот вопрос. Если у Вас не вызывает дискомфорта чтение математических формул, то Вы можете получить более подробную информацию, читая книги и статьи, перейдя на раздел NURBS и щёлкая по ссылкам на openNURBS веб-сайте site (http://www.opennurbs.com/books.php)

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

Кривую NURBS определяет четыре вещи: degree (степень), control points (контрольные точки), knots (узлы), и evaluation rule (правила оценки).

Degree (Степень) является положительным целым числом.

Это число, как правило, 1, 2, 3 или 5. Для прямых и ломаных Rhino использует degree (степень) 1, для окружностей degree (степень) 2, и большинство кривых свободной формы используют degree (степень) 3 или 5. Rhino позволит вам работать с NURBS, которые имеют степени от 1 до 11. Иногда будут использоваться линейные, квадратные, кубические и кривые пятого порядка. Линейный означает степень 1, квадратный означает степень 2, кубический означает степень 3 и квинтика означает степень 5.

Вы можете видеть ссылки на порядок кривой NURBS. Порядок кривой NURBS это целое положительное число, равное degree (степень)+1. Следовательно, степень равна порядок -1.

Это позволило увеличить степень кривой NURBS, не изменяя её формы. Но невозможно, не меняя формы кривой NURBS, уменьшить её степень.

Список контрольных точек будет состоять, по крайней мере, из degree (степень)+1 точки.

Один из самых простых способов изменения геометрии кривой NURBS состоит в перемещении её контрольных точек. Rhino предоставляет несколько способов перемещения контрольных точек. Для выполнения больших корректировок в свободной форме Вы просто используете мышь, чтобы перетащить контрольную точку. А для малых точных корректировок Rhino предоставляет другие адаптированные инструменты.

С контрольными точками сассоциировано число, называемое weight (весом). За немногими исключениями, значения веса - положительные числа. Когда контрольные точки кривой имеют один и тот же вес (обычно 1), кривая называется нерациональной, в ином случае её назвали бы рациональной. Буква R в слове NURBS означает "рациональный" и указывает на то, что кривая NURBS может быть рациональной. На практике, большинство кривых NURBS - нерациональные. Немного кривых NURBS, а также окружности и эллипсы могут послужить яркими примерами постоянной рациональности. Rhino предоставляет инструменты для рассмотрения и изменения веса контрольных точек.

Список узлов будет состоять из числа степень+N-1, где N - число контрольных точек. Иногда этот список чисел называют knot vector (вектор узла). В этих терминах, слово vector (вектор) не означает 3D направление.

Этот список чисел узлов должен удовлетворять нескольким техническим условиям. Стандартный способ удовлетворить требования технических условий состоит в том, чтобы числа оставались такими же или больше, пока Вы идёте вниз по списку и было бы лимитировано число дублирующихся значений не больше, чем величиной степени. Например, для кривой NURBS со степенью 3 с 15 контрольными точками, список чисел 0,0,0,1,2,2,2,3,7,7,9,9,9 является удовлетворительным списком узлов. Список 0,0,0,1,2,2,2,2,7,7,9,9,9 недопустим, потому что есть четыре 2-ки и четыре - число большее, чем степень.

Количество дубликатов значения узла называют knot’s multiplicity (кратностью узла). В предыдущем примере удовлетворительного перечня узлов, узел со значением 0 имеет кратность три, узел со значением 1 имеет кратность один, узел со значением 2 имеет кратность три, узел со значением 7 имеет кратность два, и узел со значением 9 имеет кратность три. Значение вышеупомянутого узла будет полно-многократным, если степень будет продублирована много раз. В примере, значения узла 0, 2 и 9 имеют полную кратность. Узел, значение которого, появляется лишь один раз, называется simple knot (простым узлом). В примере значения узла 1 и 3 - значения простых узлов.

Если список узлов начинается с полно-многократного узла, продолжается простыми узлами и завершается полно-многократным узлом, и значения равномерно распределены, то такие узлы называют uniform (равномерными). Для примера, если кривая NURBS имеет степень 3 и 7 контрольных точек с узлами 0,0,0,1,2,3,4,4,4, то эта кривая имеет равномерные узлы. Узлы 0,0,0,1,2,5,6,6,6 - неравномерные. Узлы, которые не являются равномерными называют non uniform (неравномерными). NU (НеРавномерность) в NURBS означает неравномерность и указывает, что узлам в кривой NURBS позволено быть неравномерными.

Дублирующие значения в середине списка узлов делают кривую NURBS менее гладкой. В крайнем случае, полно-многократный узел в середине списка узлов означает, что на кривой NURBS есть место, которое может быть согнуто в резкий kink (загиб). По этой причине многие дизайнеры любят добавлять и удалять узлы, а затем настраивать контрольные точки для создания кривых, имеющих сглаженные или загнутые формы. Rhino имеет инструменты для удаления и добавления узлов. Так как число узлов равно N+степень+1, где N - количество контрольных точек, добавление узлов также добавляет контрольных точек и удаление узлов уменьшает количество контрольных точек. Узлы могут быть добавлены без изменения формы кривой NURBS. Обычно, удаление узлов изменяет форму кривой. Но Rhino предоставляет продвинутый интерфейс, который автоматически удаляет соответствующий узел при удалении контрольной точки.

Распространенным заблуждением является то, что каждый узел соединен с контрольной точкой. Это является правдой только для polylines (ломаных) NURBS степени 1. Для повышения степени NURBS, где есть группы из узлов с двумя разными степенями, которые соответствуют группам степени+1 контрольных точек. Например, предположим, что мы имеем кривую NURBS со степенью 3 и 7-ю контрольными точками и узлами 0,0,0,1,2,5,8,8,8. Первые четыре контрольных точки будут сгруппированы с первыми шестью узлами. Контрольные точки со второй по пятую сгруппируются с узлами 0,0,1,2,5,8. Контрольные точки с третьей по шестую сгруппируются с узлами 0,1,2,5,8,8. Последние четыре контрольные точки будут сгруппированы с последними шестью узлами.

Некоторые моделлеры, которые используют старые алгоритмы для оценки NURBS требуют два дополнительных значения узла для подсчёта от общего (degree+N+1 )количества узлов. Когда Rhino экспортирует и импортирует геометрию NURBS, то автоматически добабляются и удаляются эти два лишние узла, как требует того ситуация.

Правило оценки использует математическую формулу, которая и присваивает номер точки.

Эта формула включает степени, контрольные точки и узлы. В формуле есть некоторые функции, называемы B-spline basis functions (базовые функции нерациональных сплайнов). Буквы BS в слове NURBS означают B-spline (Нерациональный сплайн). Число, с которого стартует правило оценки, вызывают параметром. Вы можете думать о правиле оценки как о черном ящике, который потребляет параметр и производит точку. Степени, узлы и контрольные точки определяют, как работает этот чёрный ящик.

Rhino имеет инструменты оценки. Вы можетие выделить кривую NURBS, ввести значение параметра и произвести соответствующую точку.

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

Более детально

http://ru.wikipedia.org/wiki/NURBS