NURBS-поверхности
NURBS-поверхность (от англ. Non-Uniform Rational B-Spline — неоднородный рациональный B-сплайн) — это математическая модель, используемая в компьютерной графике и системах автоматизированного проектирования (САПР) для представления и описания гладких криволинейных поверхностей произвольной формы. NURBS-поверхности являются расширением B-сплайнов и позволяют точно задавать как аналитические геометрические формы (например, сферы, цилиндры, конусы), так и сложные свободные формы (скульптурные поверхности, корпуса автомобилей, фюзеляжи самолётов). Основное свойство NURBS — возможность локального управления формой поверхности путём изменения весов контрольных точек, что обеспечивает высокую гибкость моделирования при сохранении гладкости.
История
Концепция NURBS возникла в 1950-х — 1960-х годах в рамках развития теории сплайнов. Первые работы по B-сплайнам были выполнены математиками Исааком Шёнбергом (США) и Карлом де Буром (Германия/США). В 1970-х годах Кеннет Версприль (США) и другие исследователи обобщили B-сплайны на рациональный случай, что позволило точно представлять конические сечения (окружности, эллипсы, параболы). В 1980-х годах NURBS стали стандартом в промышленных САПР, таких как CATIA (Франция) и Unigraphics (США). В 1991 году Международная организация по стандартизации (ISO) включила NURBS в стандарт STEP (ISO 10303) для обмена данными о продукте. С 1990-х годов NURBS активно применяются в анимации, компьютерных играх и визуализации, хотя в ряде современных систем (например, в Blender) их частично вытеснили полигональные сетки и Subdivision Surface.
Математическое определение
NURBS-поверхность задаётся как двумерная параметрическая функция, зависящая от двух параметров (u, v). Формально она определяется как:
\[ S(u, v) = \frac{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) N_{j,q}(v) w_{ij} P_{ij}}{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) N_{j,q}(v) w_{ij}} \]
где:
- \(P_{ij}\) — контрольные точки (сетка из (n+1) × (m+1) точек);
- \(w_{ij}\) — веса контрольных точек (положительные числа);
- \(N_{i,p}(u)\) и \(N_{j,q}(v)\) — базисные B-сплайн-функции степени p по u и q по v;
- u, v — параметры, изменяющиеся в диапазоне [0, 1].
Ключевые компоненты
- Контрольные точки — образуют сетку (control net), определяющую общую форму поверхности. Перемещение одной точки влияет на локальный участок поверхности.
- Веса — регулируют степень притяжения поверхности к контрольной точке. При увеличении веса поверхность приближается к точке; при весе, равном 1, поверхность ведёт себя как обычный B-сплайн.
- Узловые векторы (knot vectors) — последовательности значений параметров u и v, определяющие, где и как базисные функции меняются. Неравномерное распределение узлов (неоднородность) позволяет создавать острые углы или разрывы гладкости.
- Степень (p, q) — определяет гладкость поверхности. Обычно используются степени 3 (кубические) для большинства промышленных приложений, реже 2 или 5.
Свойства
- Гладкость: NURBS-поверхности обладают непрерывностью \(C^{p-1}\) (где p — степень), что гарантирует отсутствие изломов и резких переходов.
- Локальность: изменение одной контрольной точки или веса влияет только на ограниченную область поверхности, определяемую узловым вектором.
- Точность: возможность точного представления конических сечений (окружностей, эллипсов) и аналитических поверхностей (сфер, цилиндров) без аппроксимации.
- Инвариантность: результат аффинных преобразований (перенос, поворот, масштабирование) NURBS-поверхности остаётся NURBS-поверхностью.
- Параметрическая непрерывность: поверхность может быть разбита на участки (patches), стыкующиеся с заданной гладкостью.
Классификация
По степени
- Линейные (p=1): образуют многогранные поверхности (плоские грани).
- Квадратичные (p=2): параболические и сферические поверхности.
- Кубические (p=3): наиболее распространены в САПР и анимации.
- Высшие степени (p>3): используются редко из-за сложности управления и склонности к осцилляциям.
По типу узлового вектора
- Однородные (Uniform): узлы расположены равномерно, что упрощает вычисления, но ограничивает гибкость.
- Неоднородные (Non-Uniform): узлы могут быть сгущены в областях, требующих детализации, или разряжены на плоских участках.
- Рациональные (Rational): включают веса, позволяя точно представлять конические сечения.
- Нерациональные (Non-Rational): веса всех точек равны 1, что соответствует B-сплайнам.
Применение
Промышленное проектирование (САПР)
NURBS-поверхности являются основой большинства систем автоматизированного проектирования (CAD), таких как AutoCAD, SolidWorks, CATIA, Siemens NX, PTC Creo. Они используются для моделирования:
- корпусов автомобилей, самолётов, судов;
- лопаток турбин, пропеллеров;
- кузовов бытовой техники, мебели;
- пресс-форм и штампов.
Компьютерная графика и анимация
В 3D-редакторах (Maya, 3ds Max, Rhino 3D, Cinema 4D) NURBS-поверхности применяются для создания органических моделей, персонажей, архитектурных форм. Однако в современных игровых движках (Unity, Unreal Engine) NURBS обычно конвертируются в полигональные сетки для рендеринга в реальном времени.
Обратный инжиниринг
При сканировании физических объектов (например, с помощью 3D-сканеров) полученное облако точек аппроксимируется NURBS-поверхностями для создания точных цифровых моделей.
Медицина
В медицинской визуализации NURBS используются для моделирования органов и тканей (например, при планировании хирургических операций или протезировании).
Примеры
- Сфера: может быть точно представлена как NURBS-поверхность с 8 контрольными точками и весами, равными 1/√2 для угловых точек.
- Цилиндр: задаётся 4 контрольными точками по окружности и 2 по высоте.
- Тор: требует 16 контрольных точек и специальных весов для точного представления.
Сравнение с другими методами
| Метод | Преимущества | Недостатки |
|---|---|---|
| NURBS | Точность, гладкость, локальность, аналитическое представление | Сложность вычислений, трудоёмкость ручного моделирования, неэффективность для рендеринга в реальном времени |
| Полигональные сетки | Простота, скорость рендеринга, поддержка GPU | Аппроксимация кривых, ступенчатость, большие объёмы данных |
| Subdivision Surface | Гладкость, простота создания из низкополигональных сеток | Не точное представление аналитических форм, сложность управления |
| T-Splines | Уменьшение числа контрольных точек, возможность локального сгущения | Меньшая распространённость, сложность алгоритмов |
Критика и ограничения
- Вычислительная сложность: расчёт NURBS-поверхностей требует больше ресурсов, чем работа с полигональными сетками, особенно при высокой степени.
- Трудность ручного моделирования: для создания сложных форм требуется много контрольных точек, что может быть неудобно для художников.
- Проблемы с рендерингом: NURBS не поддерживаются напрямую большинством графических процессоров, поэтому требуется конвертация в полигоны.
- Ограничения в топологии: NURBS-поверхности по определению являются четырёхугольными (4-сторонними), что затрудняет моделирование объектов с отверстиями или разветвлениями.
Интересные факты
- Термин «NURBS» был введён в 1980-х годах компанией Boeing (США) для описания методов, используемых в авиастроении.
- NURBS-поверхности лежат в основе формата IGES (Initial Graphics Exchange Specification), одного из первых стандартов обмена данными между САПР.
- В 2000-х годах компания Autodesk (США) интегрировала NURBS в свой продукт AutoCAD, что сделало их доступными для широкого круга инженеров.
- NURBS-моделирование используется в архитектуре для создания сложных фасадов и конструкций (например, здание Музея Гуггенхайма в Бильбао, Испания).
Источники
- Piegl L., Tiller W. The NURBS Book. — 2nd ed. — Springer, 1997. — ISBN 978-3-540-61545-3.
- Rogers D. F. An Introduction to NURBS: With Historical Perspective. — Morgan Kaufmann, 2001. — ISBN 978-1-55860-669-2.
- Farin G. Curves and Surfaces for CAGD: A Practical Guide. — 5th ed. — Morgan Kaufmann, 2002. — ISBN 978-1-55860-737-8.
- Международный стандарт ISO 10303-42:2003 (STEP) — Industrial automation systems and integration — Product data representation and exchange — Part 42: Integrated generic resource: Geometric and topological representation.
- Документация по NURBS в системах САПР (Autodesk, Dassault Systèmes, Siemens PLM Software).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →