Распространим понятие NURBS-кривых на NURBS-поверхности, для чего сформируем тензорное произведение, аналогично тому, как мы делали для В-сплайнов в уравнении (11.93) [Tiller, 196, Piegl, 166]:
'М»Т=1- (И-94)
22>Л.(«К.(»)
| = 0*=0
Для контроля над формой поверхности дизайнер задает контрольный полиэдр на базе контрольных точек Ри к, а также веса да. к. Как и в случае В-сплайн кривых, если все веса одинаковы, то поверхность упрощается и становится В-сплайн поверхностью из уравнения (11.93). (Проверьте это!)
Как уже рассматривалось ранее, у NURBS-поверхностей имеется два основных преимущества. 1. При правильно выбранных контрольных точках и весах контуры Р(и, v) являются в точности квадратичными поверхностями, в отличие от нерациональных В-сплайн лоскутов, контуры которых могут только приближаться к истинным квадратичным поверхностям.
Создание кривых и поверхностей
2. NURBS-поверхности инвариантны относительно проективных преобразований (projective transformations). Такая инвариантность означает, что для рисования перспективной проекции NURBS-лоскута достаточно найти перспективную проекцию каждой из его контрольных точек, каким-либо способом подобрать веса, а затем применить уравнение (11.94). В отличие от этого нерациональные В-сплайн лоскуты инвариантны относительно аффинных, но не проективных преобразований.
Благодаря их общности и гибкости NURBS-поверхности стали пользоваться популярностью у дизайнеров кривых и поверхностей. Поскольку В-сплайны являются частным случаем NURBS-поверх-ностей, можно использовать единый алгоритм для создания обширного семейства поверхностей. Поэтому дизайнеру вместо инструментария, состоящего из большого числа различных алгоритмов для создания кривых, потребуется всего один метод.
Формирование часто используемых NURBS-поверхностей Семейство NURBS-поверхностей включает в себя невероятное разнообразие форм, причем в него входят как частные случаи некоторые формы, уже рассмотренные в этой главе. Приведем примеры этого семейства.