Вывод из всех этих устрашающих экспериментов следующий. Перед применением очередной операции сплайнового моделирования старайтесь контролировать как количество сегментов, так и тип параметризации на выбранных поверхностях и кривых. Привычка перестраивать поверхности, сохраняя форму (Keep=CV) и перераспределяя параметр (Parameter Range=0 to #Spans), поможет сэкономить вам массу времени, которое в противном случае придется затратить на устранение проблем.
Конвертирование сплайнов в полигоны и тесселяция Любую сплайновую поверхность можно превратить в полигональную. Обратное утверждение - неверно. Полигональную поверхность можно пытаться представить в виде некоторого (обычно весьма большого) числа сплайновых патчей. Ниже я покажу, как.
Преобразование сплайнов в полигоны может понадобиться, например, для экспорта вашей модели в игровой движок или в систему рендеринга, не поддерживающую майские сплайны. Конвертация сплайнов в полигоны производится с помощью операции Modify=>Convert=>NURBS to Polygons. В Option Box этой операции вы можете выбрать, каким методом производить конвертацию.
По умолчанию выбран метод Standart Fit - он автоматически добавляет разбиения на полигоны в местах большой кривизны, на основе критериев и параметров, которые вы задали в Option Box.
Для экспорта в игровые программы иногда удобно использовать метод Count, задающий только требуемое число полигонов, a AAAYA сама определяет критерии разбиения.
Самым предсказуемым является метод General, позволяющий установить, на сколько полигонов будет разбит каждый сегмент поверхности. Для этого надо в параметрах разбиения Initial Tessellation Controls обязательно установить U/V Type=Per Spans # of Iso Params (для каждого сегмента между изопармами) и задать необходимое число разбиений для Number U и Number V.
Кстати, все методы и параметры можно настроить после конвертации, в результате которой создается нода nurbsTessellate - в ее атрибутах есть все необходимые настройки для экспериментов.
Процесс превращения сплайновой поверхности в полигональную также происходит каждый раз в процессе рендеринга и называется тесселяцией (tessellation). Вы можете задавать настройки тесселяции для каждой поверхности в Attribute Editor в разделе Tessellation.
Эти настройки похожи на параметры конвертации для операции Convert=>NURBS to Polygons, и для каждого объекта их надо настроить индивидуально. Вы должны понимать, что именно эти настройки определят, насколько груб или гладко будет выглядеть ваш сплайновый объект на финальной картинке - плюс от них зависит и время просчета этой картинки.
К сожалению, и родной майский рендерер и даже mental may в текущей версии используют явное разбиение сплайновых поверхностей на полигоны перед просчетом (mental ray делает это достаточно интеллектуально, так что зачастую вам попросу не приходится заботится о настройках тесселяции). Поэтому необходимо держать в уме, что даже самая гладкая и «красивая» сплайновая модель с процессе рендеринга превращается в полигоны.
Теперь немного о конвертировании полигонов в сплайновые поверхности. Может так случиться, что вы, например, неожиданно выиграете в лотерею тысяч семьдесят долларов и купите на них хороший Зй-сканер. Результат работы такого сканера - облако точек, которое, как правило, довольно безболезненно превращается в густую полигональную сетку. Хитрыми методами количество вершин такой модели может быть снижено до адекватного числа, однако превратить такую полигональную сетку в сплайновую модель нажатием одной кнопки невозможно. Для этого существует целый класс программ, типа Paraform, интеллектуально «обтягивающих» полигональную сетку набором сплайновых патчей, причем границы патчей задает вручную сам пользователь. Любые методы автоматической конвертации вряд ли принесут успех.