Работая над приданием нужной формы стандартной NURBS-поверхности типа CV, мы совсем не пользовались богатой палитрой специализированных инструментов для создания NURBS-поверхностей. В данном подразделе нам предстоит восполнить этот пробел.
Главной специфической особенностью NURBS-поверхностей, коренным образом отличающей их от стандартных сеток, полисеток или сеток кусков Безье, является отсутствие возможности выдавливания фрагментов таких поверхностей. Если у сетки (полисетки) можно выдавить отдельные ребра, грани или полигоны, у сетки кусков Безье — отдельный кусок или несколько кусков, чем мы с успехом пользовались в предыдущей главе, то у NURBS-поверхностей просто нет таких подобъектов, которые допускали бы выдавливание. Это создает определенные сложности при моделировании объектов с ветвящейся топологией, таких, скажем, как туловище персонажа с ответвляющимися от него руками и ногами или ладонь с «растущими» из нее пальцами.
Данные сложности, впрочем, носят чисто условный характер. Да, вы не сможете добиться нужного результата, действуя так, как привыкли поступать, работая с сетками. Но искомого результата можно добиться, используя специальные приемы и инструменты, разработанные непосредственно для моделирования объектов с помощью NURBS-поверхностей. С некоторыми из этих приемов и инструментов мы познакомимся далее в ходе работы над упражнениями данного подраздела.
Еще одной особенностью NURBS-объектов, к которой требуется привыкнуть, является зыбкость и условность грани различий между NURBS-кривыми и NURBS-поверхностями. Ну, то, что NURBS-поверхность может включать NURBS-кривые в качестве подобъектов, это еще понятно. Но с таким же успехом NURBS-кривая может иметь в качестве своих подобъектов NURBS-поверхности. В общем случае имело бы смысл говорить не о кривых и поверхностях типа NURBS, а о коллекциях подобъектов, в качестве которых могут выступать точки, управляющие вершины, кривые и поверхности. При этом совершенно неважно, как называется такая коллекция: NURBS Curve (NURBS-кривая) или NURBS Surface (NURBS-поверхность). Кстати, преобразование обычной сплайновой кривой в объект типа NURBS ведет к созданию NURBS-поверхности, а не NURBS-кривой.
В ходе выполнения следующих нескольких упражнений вам предстоит решить нетривиальную задачу — сотворить модель Деда Мороза, подобную показанной на рис. 10.11. Это будет первый и единственный персонаж, которому предстоит обосноваться в создаваемом нами виртуальном мире. В главе 1 вы уже видели его фигуру, стоящую под елочкой в кафе «МАХ».