|
В 3DS МАХ в настоящее время существует
два типа лоскутов: QuadPatch (Quad -
четырехугольный участок) и TriPatch (Tri
- треугольный участок). Оба типа
лоскутов базируются на кривых Безье.
Примитивы QuadPatch и TriPatch (их можно
найти под Patch Grids в выпадающем
списке Geometry в Create Panel) создают
отдельные лоскуты соответствующего типа,
к которым посредством модификатора
EditPatch можно добавлять дополнительные
лоскуты.
Модификаторы, подобные Lathe и Extrude,
могут экспортировать свои объекты в виде
лоскутов, а каркасы несложно
преобразуются в лоскутные объекты. Важно
осознавать, что различные методы
создания порождают лоскуты либо Tri,
либо Quad, и данные два типа при
редактировании дают разные результаты..
Легко заметить, что объектный каркас
TriPatch сгибается постепенно, во многом
подобно листу бумаги. Объект QuadPatch
сгибается больше похоже на резину, а не
на бумагу. Дело в том, что QuadPatch
оказывает влияние на четверку смежных
управляющих вершин - вершины по
диагонали влияют на поверхности друг
друга. По контрасту TriPatch влияет
только на вершины, не затрагивая при
этом разделяющие ребро и поверхность
диагональных вершин.
Опции отображения лоскутов
Лоскутные объекты определяются решеткой
(lattice), которая порождает поверхность
(surface). Решетка представляет из себя
сетку из управляющих вершин, векторных
ручек и промежуточных вершин .
Существует выбор, отображать ли решетку,
поверхность или и то и другое. На
практике при работе на уровне Vertex
решетка скрывается и показывается лишь
на уровнях Edge или Patch.
Edge и
Patch "видны" только на самой решетке.
При работе на уровнях Edge или Patch все
произведенные выделения указываются на
решетке и на поверхности ничего не
отображается. Если решетки не видно, то
выделения по-прежнему делаются, но они
невидимы (ситуация довольно опасная).
Элементы управления отображением решетки
и поверхности обеспечиваются на всех
уровнях, поскольку во время работы их
постоянно приходится включать и
отключать.
Поверхность лоскута является результатом
решетки и не может редактироваться
непосредственно. Это большое достижение,
а не ограничение, поскольку
предоставляет возможность в любое время
определить плотность поверхности
лоскута. В результате можно работать с
очень простым представлением и усложнять
его при более тонком редактировании или
когда того требует результат
визуализации.
Понимание кривых Безье
Лоскуты Безье ведут себя во многом
подобно сплайнам (spline -
кусочно-полиномиальная функция) Безье.
Классический сплайн Безье использует
четыре точки для определения своей
кривой. Кривая проходит через первую и
последнюю точки и интерполируется между
двумя средними точками. Для лоскутов
вершины являются конечными управляющими
точками сплайна, а векторы лоскута
определяют промежуточные управляющие
точки.
Концепция двух промежуточных управляющих
точек существенна для точного понимания,
что такое решетка лоскута. Вершины
лоскута являются конечными точками,
через которые проходит сплайн Безье. На
эти вершины ссылаться проще, поскольку
они представляют собой часть поверхности
объекта. Таким образом вектора на
решетке определяют две других
управляющих точки сплайна.
Ребра лоскута охватывают его по
периметру независимо от того, какой это
лоскут - Tri или Quad, и имеют три
соединенных сегмента линии. Хотя ребра
могут выглядеть несколько странными, на
самом деле они соединяют четыре
определяющие точки кривой Безье. Каждое
ребро начинается и завершается вершиной
с сегментами, определенными положением
векторных ручек. Таким образом, лоскуты
состоят из трех или четырех ребер, в
зависимости от своего типа - TriPatch
или QuadPatch. Эти ребра определяют
сплайны Безье, которые в свою очередь
определяют лоскут.
Векторы являются линиями, которые
соединяют управляющие ручки лоскута с
вершинами. Ручки на самом деле
представляют собой промежуточные
управляющие точки для сплайна Безье,
который определяет ребро лоскута. Это
означает, что между вершинами лоскута
существуют две векторные ручки, и
вершина имеет столько векторов, сколько
ребер ее пересекает. В других программа
векторы часто называются узлами, точками
пересечения или управляющими точками. В
данной главе на векторы ссылаются как на
визуальную линию, а на ручки - как на
управляющие точки на концах вектора.
ПРИМЕЧАНИЕ
Манипулирование вершинами при
отключенной решетке может привести к
неожиданным результатам. При отключенной
решетке векторы кажутся свойствами
вершин, тогда как фактически они
являются точками интерполяции для
определяемого сплайнового ребра.
Внутренние вершины
Другие линии решетки лоскута пересекают
лоскут. Эти внутренние "ребра"
оканчиваются у векторных ручек и
проходят через то, что носит название
внутренних вершин. Внутренние вершины на
самом деле являются вторичными
управляющими ручками, которые влияют на
кривизну лоскута. (Называть их
"вершинами" исключительно некорректно и
лучше всего представлять их как
внутренние ручки или внутренние
управляющие точки). Данные внутренние
управляющие вершины ведут себя очень
похоже на векторные ручки, более тонко
управляя кривизной Безье. Обратите
внимание на то, что хотя ребра лоскута
формируют настоящие сплайны Безье
(проходящие через вершины лоскута), но
внутренняя решетка сплайнов не
формирует, поскольку их конечные точки
являются ручками вектора, который не
обязан быть на поверхности.
Внутренние вершины важны, поскольку
предоставляют возможность искажать
одиночный лоскут таким образом, который
бы в отсутствие внутренних вершин
потребовал бы дополнительных вершин и,
следовательно, большего количества
лоскутов. Настройка внутренних вершин
деформирует единственный лоскут так, что
обычно для этого требуется вершины
четырех лоскутов.
Внутренние вершины/управляющие ручки
Хотя внутренние вершины и полезны,
однако получить их достаточно
затруднительно. При первом
редактировании лоскута он находится в
режиме Auto Interior и внутренние
вершины невидимы, поскольку внутренние
управляющие точки при настройке
векторных ручек, ребер и лоскутов
перемещаются.
Внутренние вершины не появляются до тех
пор, пока режим лоскута не изменится на
Manual Interior. Для изменения режима
следует, находясь на уровне выбора
подобъекта Patch, щелкнуть на лоскуте
правой кнопкой мыши.
После перевода лоскута в режим Manual
Interior визуально ничего не происходит
до тех пор, пока не будет осуществлен
возврат на уровень Vertex. После этого
все внутренние вершины появятся желтыми
(четыре вершины для QuadPatch и три для
TriPatch). Это касается всех лоскутов,
которые в настоящее время находятся в
режиме Manual Interior . В отличие от
векторных ручек вы не должны выделять
внутренние вершины прежде чем с ними
манипулировать - они доступны для
манипуляций всегда.
То, что не совсем очевидно - это
влияние, который режим Manual Interior
оказывает на редактирование Edge и Patch.
При работе в режиме Auto Interior
внутренние вершины перемещаются при
манипулировании ребрами и лоскутами.
Режим же Manual Interior замораживает
внутренние вершины на своих начальных
местах. Теперь их можно редактировать
только вручную на уровне Vertex. Рисунок
14.5 демонстрирует перемещение ребра в
Auto Interior и в Manual Interior.
Редактирование вершин в режиме Manual
Interior также выполняется по-другому,
нежели в режиме Auto Interior.
Внутренние вершины уже больше не стянуты
вместе. На рисунке 14.6 показано
редактирование одной и той же вершины в
обоих режимах. Перемещение вершин без
своих внутренних соседних вершин
приводит к появлению заостренных
поверхностей. Конечно, как показывает
рисунок 14.7, редактирование только
внутренних вершин дает в результате в
равноценные полезные поверхности.
Трансформация лоскута или ребра изменяет
вершины и ручки ребра или лоскута, но не
затрагивает внутренние вершины. Хотя это
и полезно, но для неподготовленного
человека может оказаться непонятным.
Будучи готовым к такому результату,
можно с большей пользой применять режим
Manual Interior.
ПРИМЕЧАНИЕ
Изменение режима лоскута с Manual
Interior на Auto Interior прерывает все
редактирование, произведенное для
внутренних вершин. (К счастью это
поправимо, если перейти снова в режим
Manual Interior). Если вы начинаете
манипулировать внутренними вершинами,
для сохранения манипуляций следует
оставить лоскут в режиме Manual Interior.
Деление и распространение
Деление лоскута делит каждый выделенный
лоскут на четыре. Новые лоскуты,
независимо от их типа - Quad или Tri,
имеют ребра в средних точках ребер
исходного лоскута. . Делятся только
лоскуты, которые граничат с делящимися
ребрами, и многие делятся только один
раз.
Опция Propagate обеспечивает деление
лоскутов так, чтобы поддержать
последовательность вершин и ребер. Если
только вы не желаете получить
визуального разрыва модели, то при
делении должны всегда распространять
деления лоскута. Без распространения
через ребро нельзя будет продолжить
сглаживание. Причина проста - новым
вершинам не с чем соединяться.
Визуальным эффектом будет гребень на
шве, поскольку сглаживание не может быть
продолжено через ребро. Это сделает
область похожей на "клапан", который
вот-вот будет сорван. |