|
В эту главу включены следующие основные темы:
Начнем с манипуляции вершинами, поскольку это основной и часто наиболее подходящий элемент управления каркасом. Подавляющее большинство операций 3DS МАХ (и операций компьютерной графики) манипулирует вершинами с гранями, которые просто размещаются вдоль них. Грани, которые совместно используют вершины, всегда манипулируются вершинами. Каждый раз при создании или клонировании каркаса вершины также создаются, поскольку при помощи них определяются грани.
Трансформация вершин очень напоминает перемещение, вращение и масштабирование граней или ребер. Причина такого сходства заключается в том, что редактирование каркаса всегда влияет на расположение вершин. При редактировании каркаса в 3DS МАХ выполняется манипуляция вершинами - не гранями, элементами или ребрами. Грани и ребра, из которых состоит каркас, следуют вдоль него к новым положениям, заданными вершинами. При масштабировании элемента происходит масштабирование положения его вершин. При вращении граней выполняется вращение положений вершин, и грани изменяют ориентацию на основе новых положений вершин. Учитывайте последнее при выполнении любой операции редактирования каркаса или любой связанной с этим модификации, чтобы сделать результаты более предсказуемыми и очевидными.
При входе на уровень выборки Vertex (вершина) все вершины отображаются в виде крестов (см. рис 13.1). В отличие от граней вершины отображаются даже в том случае, если они расположены на частях каркаса, нормали к граням которых указывают в направлении от вас. В этот момент каждая создаваемая выборка состоит из вершин, и на них влияют только трансформации. Как и обычно, настройка вершин подтягивает грани, созданные на них.
Изолированные и уединенные вершины обычно существуют только по одной причине - для создания на них граней. Изолированные вершины редко служат для других целей. Вершины сами по себе никогда не определяют каркас и не могут быть визуализированы независимо. При удалении граней 3DS МАХ запрашивает, требуется ли одновременно удалить висячие вершины. Если на этих вершинах в будущем не планируется создавать новые грани, ответом всегда должно быть "да".
Выбор вершин очень прост, поскольку опции окна и пересечения не применяются. Щелчок на вершине выбирает ее. Выборка области (прямоугольной, круговой или в виде изгороди), которая охватывает вершину, также ее выбирает. Как обычно, нажатие клавиши Ctrl позволяет производить добавления к выборке, а нажатие клавиши Alt вычитает выборку. Чаще всего будет использоваться выборка области и удаление паразитных вершин посредством другой области или селективных щелчков.
Скрытие вершин является методом предохранения их от случайного редактирования. Скрытые вершины скрывают свои крестики отображения, но не скрывают каркаса, который определяют. После скрытия вершины выбирать нельзя и на них не будут оказывать влияние никакие действия. В таком состоянии вершины очень напоминают неподвижные объекты. Скрытие вершин является весьма ценным инструментом, если необходимо сохранить определенную область каркаса, но модифицировать другие части - в особенности те, которые расположены близко к скрытым вершинам. Скрытые вершины можно также использовать для изолирования областей каркаса от операций на уровне граней. На скрытых вершинах нельзя построить грани и они не учитываются при выборках граней с использованием опции By-Vertex (при помощи вершин).
ПРЕДУПРЕЖДЕНИЕ
Бывает, что вершины трудно увидеть из-за их размера. Перед выбором вершин для редактирования неплохо выполнить Select None для обеспечения того, чтобы выборка была только тем, что вы предполагаете. Поскольку выборки передаются вверх по стеку, легко забыть о более ранней выборке, которая в настоящий момент активна, в особенности в том случае, если выборка была установлена посредством модификатора, примененного гораздо раньше.
Трансформации Move, Rotate и Scale в линейке инструментов являются основными методами манипуляции вершинами. При этом особое значение приобретают тонкости, описанные в разделе "Общие термины и понятия для каркасов" главы 12. Возможность редактирования каркасов на уровне вершин обладает достаточной мощью. При манипуляции положением вершин происходит притягивание, растяжение и масштабирование построенных на них граней. Основной секрет эффективной манипуляции вершинами состоит в выборе корректных вершин для редактирования и оставлении других в стороне.
Несмотря на то, что вершины можно редактировать индивидуально, большая часть редактирования вершин выполняется при помощи выборок. Передача одиночных вершин вверх по стеку в качестве активной выборки редко оказывает (если вообще оказывает) большой эффект. Для получения какого-либо эффекта при вращении или масштабировании одиночной вершины следует использовать центр системы координат. В противном случае выполняется вращение и масштабирование вокруг самой вершины и ничего не происходит.
Широко используемая практика заключается в определении ЗD-примитивов и путем редактирования вершин превращении их в совершенно другие объекты. В приведенном ниже упражнении задается базовый цилиндр и за счет редактирования всего нескольких вершин превращается в гантелю, после чего поверхность совершенствуется путем присвоения сглаживающих групп.
Как показывает следующее упражнение со сферой, для исследования мощных эффектов, которые можно получить за счет манипуляции вершинами, сложная модель не нужна.
Функция Affect Region (влияние на область) позволяет оказывать влияние на целую область вершин при гораздо меньшей выборке или, более часто, при выборке только одной вершины. В случае отметки флажка Affect Region каждая выполняемая трансформация влияет на область вершин, а не только на выбранные вершины. При отмеченном флажке Affect Region фундаментально изменяется метод редактирования вершин, поскольку теперь одна вершина ведет себя подобно магниту и при изменении своего положения в трансформациях Move, Rotate и Scale тащит за собой другие.
Affect Region работает совместно с управляющей кривой области. Кривая области является визуализацией результата перемещения одиночной вершины из плоской сетки. Щелчок на Edit Curve (отредактировать кривую) выводит диалог Edit Affect Region Curve (редактировать кривую влияния на область) (см. рис. 13.6). Как можно видеть, установка Falloff (граница области затухания) определяет радиус "сферы" выборки. Внутри этой сферы оказываемое влияние на каждую вершину соответствует значениям кривой области.
ПРЕДУПРЕЖДЕНИЕ
Влияние кривой области лучше всего показать на примере одной вершины на рамочной сетке. Рисунки 13.7 и 13.8 показывают перемещение одной вершины на одно и то же расстояние в рамках куба с размером 100 единиц. Верхние ряды на обеих рисунках показывают, как форма кривой области дублируется вытесненными вершинами. С учетом этого можно предсказать влияние определяемых кривых области. Для вытаскивания гладких кривых посредством Affect Region следует манипулировать одиночными вершинами или изолированными гранями и пристально следить за управляющей кривой области.
Результат редактирования вершин с помощью Affect Region аналогичен работе с лоскутами, поскольку перемещение одиночной вершины во многом подобно вытягиванию вершины лоскута. Основное отличие, конечно, заключается в том, что последующее перемещение вершины не восстанавливает предыдущего каркаса, в то время как изменение направления на противоположное перемещает лоскут. На рисунке 13.9 сравнивается результаты вытаскивания центральной вершины из каркасных и лоскутных цилиндров.
Опция Ignore Backfacing (игнорировать заднюю грань) управляет тем, на какие вершины оказывается влияние внутри радиуса распада. При выключенной опции Ignore Backfacing влияние оказывается на каждую вершину внутри радиуса распада. Когда эта опция включена (что происходит по умолчанию), грани, совместно использующие выбранные вершины, анализируются на предмет определения направлений их нормалей. Определяется усредненная нормаль граней и сравнивается с нормалью каждой другой грани в радиусе распада. Если усредненная нормаль может "видеть" другие грани (сравниваемый угол меньше 90°), влияние оказывается на вершины, совместно использующие эти грани. Вершины, совместно использующие заднюю грань и видимые грани, считаются видимыми и на них оказывается влияние.
СОВЕТ
ПРЕДУПРЕЖДЕНИЕ
Если нормали указывают от вас, вершина "не может" увидеть их грани, и Affect Region не выбирает их вершин. На грани, нормали которых находятся "на ребрах" точно под углом 90°, влияние оказывается. Рисунок 13.10 демонстрирует эффект перемещения средней вершины верхнего переднего ребра куба внутри радиуса распада, который превышает высоту куба. Первый куб показывает результаты при выключенной опции Ignore Backface - смещается каждая вершина, даже те, которые находятся на дне. Средний куб показывает результат с включенной опцией Ignore Backface - нижние вершины не перемещаются, поскольку их нельзя увидеть, в то время как вершины ребер находятся под углом 90° и выбираются. Последний куб имеет выключенную опцию Ignore Backface, но перемещает вершину из второго ряда - на боковые вершины влияния не оказывается, поскольку теперь они представляют для вершины заднюю грань.
Поскольку нормаль к грани, используемой Affect Region, является усреднением, можно получить поразительные результаты, если совместно используемые выбранными вершинами грани имеют различные нормали (когда вершины выбираются на противоположных сторонах рамки). В этом случае усредненная нормаль может не включать в себя вершины, которые были бы включены в случае индивидуального выбора вершин. Если результирующие вершины, на которые оказывается влияние, сильно отличаются от того, что требуется, лучше выполнить клонирование граней из выборки и использовать для операции эту новую изолированную выборку. При этом создается усредненная нормаль, не включающая в себя дополнительных граней, которые первоначально образовывались при безуспешном получении усредненной нормали.
Во многих ситуациях используется несколько приблизительных перемещений или вращении вместо выполнения одного большого. Первый куб на рисунке 13.11 показывает эффект вращения вершины на 90° за одно движение, и результирующее искажение оказывается линейным. Оставшиеся кубы демонстрируют небольшие последовательные движения, дающие в сумме 90°, и результатом является криволинейное искажение. Средний куб не игнорирует задние грани и поэтому вытаскивает каждую вершину в своем диапазоне. Последний куб имеет отмеченный флажок Ignore Backfacing и теряет вершины в критические моменты.
Каждый раз при создании или клонировании каркаса также создаются вершины, поскольку они определяют грани. Хотя по такому методу часто создаются вершины, необходимые для другого моделирования, может потребоваться создавать другие вершины независимо и в точном месте расположения для образования соединенных "внахлест" граней.
Вершины нельзя создавать изолировано. Они должны добавляться к существующему объекту из модификатора EditMesh. Внутри EditMesh вершины можно создавать индивидуально посредством функции Vertex/ Create (вершина/создать) или выполнить клонирование выборки вершин в виде части объекта или нового объекта. Клонирование вершин существующего каркаса является единственным методом создания изолированных вершин как объектов.
Функция Vertex/Create устанавливает режим, при котором каждый щелчок на экране создает в этом месте вершину на активной сетке. Создание вершин с помощью такого метода весьма полезно, в особенности при использовании объекта активной сетки и ключей толчков. Подобный режим позволяет перемещать активную сетку, не выходя из текущей команды подобъекта, и создавать уровни вершин с управляемой высотой.
Самым большим источником создания вершин являются существующие каркасы. Грани каркаса можно либо разрушать путем удаления и оставления "облака" вершин, либо выбирать вершины граней и клонировать их при выполнении трансформации. Клонированные вершины оставляют свои грани позади себя и создают объект без поверхности. При необходимости клонирования каркаса вместо этого можно выполнять клонирование его граней. При клонировании следует определиться между выбором или нового объекта, или выбором изолированных вершин внутри текущего объекта.
В общем случае необходимо дублировать существующие вершины каркаса в место, в котором они смогли бы стать строительными блоками для другого каркаса, связанного с первым. При намерении добавлять вершины к объекту и необходимости их корреляции с существующими вершинами клонируйте их в требуемое место для использования в качестве исходных. Этот метод обычно проще в реализации и более точен, чем тщательное размещение активной сетки для каждого уровня новых вершин.
ПРИМЕЧАНИЕ
Vertex Create (создать вершину) представляет собой единственный метод создания вершин "с нуля" и отличается от клонирования. Создаваемые вершины всегда являются частью первоначального объекта и обычно служат строительными блоками для будущего создания вершин. При создании вершин происходит определение двух координат, а третья точка обеспечивается при помощи активной сетки видового окна. Это можно перекрыть при использовании фиксации вершины и ребра.
Vertex Create хорошо работает при фиксации вершины и ребра. Установка свойства фиксации вершины в 1, а всех остальных в Off (выключено) (см. рис. 13.12) обеспечивает то, что фиксация будет происходить только к вершинам. При использовании 3D Snap Vertex Create разрешает создавать проволочный каркас, на котором строятся перекрывающиеся сетки. В случае 2.5D Snap создается спроектированный на активную сетку видового окна шаблон вершин. Хотя это требуется редко, из этих спроектированных шаблонов можно создать сглаженные проекции других каркасов.
Работа с вершинами выполняется с помощью определяющих точек и только это является единственны способом влияния на топологию вершин. Помимо всегда доступного Delete, несколько функций для вершин являются уникальными, из которых чаще всего применяется Weld (объединить).
Объединение сплавляет две или более вершин вместе для образования одной вершины, перетаскивающей за собой любые грани, построенные на первоначальных вершинах. Объединение используется для связывания отдельных вершин вместе с целью создания элемента или объединения граней элемента в более простой каркас. Функция Weld до сих пор является часто используемой кнопкой на уровне Vertex, и посредством нее можно достаточно точно либо обобщенно выполнить объединение.
ПРИМЕЧАНИЕ
Хотя координаты отображения могут выходить за пределы необъединенных граней, сглаживающие группы подобным свойством не обладают. Без возможности выполнения правильного сглаживания каркас никогда не будет выглядеть корректно. Ребра, встречающиеся без совместно использующих их и, таким образом, объединенных вершин, нельзя сгладить и при этом всегда образуется ребро.
Метод Target (цель) из Weld выполняет переход в режим, в котором нужно выбрать вершины и перетащить их на целевую вершину, как показано на рисунке 13.13. Курсор определяет вершину, с которой выполняется объединение, и изменяется на крестообразный, когда он находится над вершиной одного и того же объекта. Целевая вершина определяется близостью курсора в пикселах экрана. Эта чувствительность в пикселах фиксирована и приблизительно равна радиусу в пять пикселов. Таким образом активное видовое окно оказывает большое влияние на то, что объединяется. Работа в ортогональном видовом окне разрешает объединять вершины, расположенные (по глубине) на большом расстоянии друг от друга, что может оказаться как идеальным, так и нежелательным. Работа с видом User или Perspective обычно дает более четкое понимание о взаимоотношениях межцу вершинами при объединении. Часто удобно выбирать вершины на ортогональных видах и затем объединять с целевой на виде User или Perspective.
ПРИМЕЧАНИЕ
Метод Selected (выбранные) из Weld анализирует текущую выборку вершин и использует значение Weld Threshold (порог объединения) как "строку" диапазона для прохода по всем выбранным вершинам. Если любая из вершин попадает в диапазон порога другой вершины, они объединяются. Если все вершины не попадают в диапазоны порога других вершин, ничего не объединяется и выводится предупреждение, показанное на рисунке 13.14. Места расположения всех вершин, попадающих в пределы порога, усредняются для создания нового расположения результирующей объединенной вершины. Результирующая вершина остается выбранной. Из-за выполнения усреднения мест расположения объединенные вершины будут перемещаться до тех пор, пока они не совпадут. Если требуется объединить только совпадающие вершины и совершенно не сдвигать вершины, Weld Threshold необходимо установить в 0. При очень высоких порогах Weld Selected функциокально может оказаться аналогичной Vertex Collapse (разрушение вершины) для той же выборки.
На практике Weld Selected регулярно используется при объединении частей модели, которые выравниваются с совпадающими вершинами или имеют вершины, которые очень близки к этому. Может быть, эти отдельные элементы, используемые вместе, являются результатом булевой операции или взяты из другой программы, не имеющей возможности объединения каркасов. В таких случаях выполнение Select All и объединение при низком пороге работает хорошо. Для точного объединения следует выбирать Weld Target, поскольку в таком случае можно иметь уверенность в получении положительных результатов.
Функция Collapse имеет деструктивный характер, однако весьма полезна. При щелчке на Collapse текущая выборка вершин объединяется в одну общую вершину. Эта вершина располагается в месте, являющемся усредненным положением выбранных вершин. Это место совершенно предсказуемо, если разрушенные вершины являются копланарными, как показано на рисунке 13.15. При отсутствии копланарности усредненное положение объединенной вершины обычно вызывает "выбоину" в поверхности. В отличие от Face Collapse (разрушить грань) и Edge Collapse (разрушить ребро) Vertex Collapse не работает на одиночной вершине, поскольку там нечего усреднять. В действительности. Face Collapse и Edge Collapse являются супермножествами Vertex Collapse и оказывают влияние соответственно на две и три вершины.
Разрушение объединяет каждую выбранную вершину независимо от того, как далеко друг от друга они находятся, и от того, что они могут принадлежать отдельным элементам. Эта характеристика показана на рисунке 13.16, на котором для разрушения была выбрана центральная вершина на каждой из сторон. Единственный раз, когда Collapse обрабатывает каждую выборку по отдельности, является применение EditMesh к выборке объектов, в которой каждый объект объединяется отдельно.
Collapse может использоваться в качестве быстрого метода объединения элементов вокруг общей точки, (см. рис. 13.17). Эта возможность подчеркивает тот факт, что Collapse применяется для обнаружения важных точек конструкции из-за метода, при помощи которого усредняются отличия. Например, при разрушении двух вершин можно установить среднюю точку. Мы не слышали о создании изолированных вершин для разрушения с целью поиска подобных точек. Аналогично этому модификатор EditMesh можно добавить после того, как все объекты будут выровнены с разрушенными вершинами.
Отсоединение вершин разрывает вершины и каждую определяемую ими грань из каркаса в новый объект. Отсоединение вершин аналогично отсоединению граней за исключением того, что при отсоединении вершин имеется большая уверенность в экстенте каркаса. Грань можно легко потерять и не выбрать ту, нормаль которой обращена в направлении от вас. Имея дело с вершинами, можно иметь уверенность в том, что определяется весь каркас.
При необходимости выполнения отсоединения вершин, а не граней, необходимо выполнить клонирова-ние выборки вместо ее отсоединения. Клонирование осуществляется путем трансформации (чаще всего Move) и нажатия клавиши Shift. При этом создается "облако" вершин без граней. При клонировании существует опция для выполнения выборки нового объекта. Если выборка вершин после клонирования превращается в новый объект, на нем нельзя построить грани из первоначального объекта. Если новый объект не создается, новые вершины остаются выбранными с целью манипуляции. В отличие от отсоединения клонирование автоматически не предохраняет вершины от перемещения. Если необходимо обеспечить неподвижность вершин после клонирования, разрешите фиксацию, нажмите Shift и щелкните один раз над выборкой.
Удаление вершин является быстрым способом очистки ненужных участков каркаса, поскольку больше ничего не осталось, и работа из-за подсказок может замедлиться. При удалении вершины также удаляются все грани, совместно ее использующие. Например, удаление центральной вершины наконечника цилиндра выполняет удаление всего цилиндра. Это может вызвать удивление, но помните, что критерием для создания поперечного сечения граней является охват любой из их вершин. Как всегда, клавиша Delete является клавиатурной альтернативой для функции Delete.
В настоящем разделе выполняется переход от вершинам к граням - второму основному компоненту редактирования каркасов. Манипуляция местами расположения граней во многом напоминает работу с наборами по три вершины, но по сравнению с вершинами грани определяют гораздо больше информации. Вершины определяют место расположения границы грани; грани определяют направление нормалей и поверхность, которая может иметь установки материала, отображения и сглаживания. При редактировании вершин моделирование выполняется в объектной форме и касается только положения. При редактировании граней необходимо также знать, как поверхность отражает свет.
СОВЕТ
Уровень граней (рис. 13.18) обеспечивает несколько режимов для выбора граней и манипуляции ними. Навигация на уровне граней - один из самых длинных свитков 3DS МАХ - может быстро стать искусством. Однако этот свиток настоль длинный по той причине, что грани обладают многими свойствами и грань нельзя редактировать без того, чтобы по крайней мере подумать о разветвлениях для визуализированной поверхности. При манипуляции гранями фактически выполняется работа с вершинами в заблокированных наборах по три вершины, поэтому многое из того, что вы узнали о моделировании при помощи вершин, непосредственно применимо к моделированию посредством граней.
Грани можно выбирать при помощи множества различных способов: по одной, посредством области, по копланарным взаимоотношениям или даже по установкам материала и сглаживания. Выбор наиболее быстрого и точного метода относится к искусству хорошего моделирования. Как всегда методы выборки применяются для управления результатами выбранного элемента; текущий режим выборки никогда не влияет на результат последующих функций.
Выборка граней распределяется на три категории геометрических определений: грань, многоугольник и элемент.
Face selection (выборка грани) выбирает одиночную треугольную грань и является самым быстрым из предлагаемых методов, гораздо быстрее, чем многоугольник или элемент, при работе с очень большими каркасами. Выбор грани отображает все ребра выбранных граней даже в том случае, если они, как обычно, невидимы.
Polygon selection (выборка многоугольника) выбирает объединенные грани, которые не разделены видимыми ребрами и попадают внутрь значения Planar Threshold (планарный порог). Часто удобно выбирать с помощью многоугольника и затем переключаться в режим Face Select (выбор грани) для отображения каждого ребра выборки.
Element selection (выборка элемента) выбирает все грани, которые могут отследить путь совместно используемых (объединенных) вершин. Выборка элемента игнорирует видимость ребер и Planar Threshold и имеет дело только с экстентами каркаса. Выборка элемента всегда находится в режиме Crossing (пересечение).
By Vertex (с помощью вершины) изменяет способ оценки выборки. Если флажок By Vertex не отмечен (по умолчанию), щелчок в любом месте внутри грани, многоугольника или элемента выбирает этот подобъект. При отмеченном By Vertex необходимо щелкнуть на вершине (или охватить ее) для выбора необходимого подобъекта. Активизация опции By Vertex в основном используется для выборок окон, поскольку первоначальной выборки больше не существует. Если By Vertex активна, выборка выполняется в соответствии с вершинами, поэтому скрытое состояние вершин не нарушается. Это единственная ситуация, при которой скрытое состояние выборки одного уровня влияет на другой уровень.
Каждый раз при щелчке и перетаскивании начинается выборка области. Форма выборки управляется плавающей группой линейки инструментов. Она может быть прямоугольной, круговой или иметь вид изгороди. Изменение формы области является обычным приемом и существенно упрощает использование клавиатурных альтернатив. Выборка области работает совместно с методами выборки окна и пересечения. Выборка окна должна охватывать всю геометрию выборки - все три вершины грани или все вершины многоугольника. Выборка пересечения требует охвата только одной вершины для выборки каждой грани, многоугольника или элемента, которые совместно используют эту вершину. Режим пересечения весьма полезен для быстрых выборок, в то время как режим окна является лучшим для тщательного выполнения выборки.
ПРЕДУПРЕЖДЕНИЕ
Выборки области проектируются обратно в видовое окно и выбирают грани, которые могут быть не видны; фильтрации задних граней не существует. Поэтому хорошая практика предполагает постоянную проверку своей выборки в различных видовых окнах, дабы убедиться в том, что же выбрано. Тренога осей является надежной сигнализацией случайной выборки. Если ось неправильно отцентрирована или появляется несколько осей, вероятно выбрано больше, чем необходимо.
СОВЕТ
Опция By Vertex становится очень важной, если выборки области выполняются внутри каркаса. Без нее при первом щелчке мышью для определения области выбирается грань, многоугольник или элемент - результат, который вряд-ли кого-то устроит. При включенной опции By Vertex при первом щелчке ничего не выбирается, поэтому выборка области выполняет точную выборку области вершин, которые после этого охватываются.
ПРИМЕЧАНИЕ
При работе с большими каркасами реакция системы может показаться замедленной при перемещении выборок, граней или элементов, поскольку для каркаса корректируются все четыре видовых окна. Для получения максимального быстродействия запретите обновление всех видовых окон так, чтобы корректировалось одно активное окно. После этого можно выполнять правый щелчок в другом видовом окне для просмотра результатов.
ПРИМЕЧАНИЕ
Скрытие граней не просто делает их невидимыми. При скрытии граней их нельзя больше выбирать и на них не оказывают влияния производимые действия. Скрытие граней является очень ценным инструментом при необходимости защиты некоторых областей каркаса от выборки или модификации, в особенности, если выборка или модификация выполняются в соседних гранях. Скрытые грани также можно использовать для отделения областей каркаса от операций на уровне вершин и ребер.
ПРИМЕЧАНИЕ
После скрытия граней для всех оставшихся граней можно выполнить Select All, а затем операцию, которая уже не будет оказывать влияние на скрытые грани. На скрытые грани не влияет удаление любой из прочих граней. На скрытые грани влияние оказывается только при модификации вершин, на которых они построены. При трансформации граней, объединенных со скрытыми гранями, трансформируются также объединенные вершины скрытых граней. На уникальные вершины скрытых граней на уровне граней повлиять нельзя. На рисунке 13.19 показано, как выборка граней была скрыта, а оставшиеся грани перемещены, в результате чего скрытые грани растянулись.
Грани удобно скрывать при присвоении ID материала подобъекта и сглаживающих групп. После присвоения своих тщательно сделанных выборок скройте их и перейдите к следующим выборкам, не опасаясь оказать влияние на только что присвоенные. Скрытие граней ускоряет последующие выборки, поскольку потребуется сортировать все меньшее и меньшее количество граней.
ПРИМЕЧАНИЕ
Трансформации Move, Rotate и Scale линейки инструментов являются главными методами манипуляции гранями. Трансформация граней очень похожа на перемещение, вращение и масштабирование эквивалентных выборок вершин, но с одним существенным отличием - при использовании EditMesh грани позволяют выполнять трансформации вокруг отдельных центров. Эта возможность является одним из фундаментальных отличий между использованием EditMesh и EditableMesh.
При использовании EditMesh в режиме Pivot Point Center каждая выборка граней определяет свою собственную систему координат на основе усредненных нормалей выборки. Это позволяет перемещать, вращать и масштабировать несоприкасающиеся выборки граней одновременно так, как будто вы манипулируете каждый раз только с одной.
СОВЕТ
Для создания граней в рамках уровня Face применяется множество методов. Грани можно вытягивать, укладывать мозаикой, клонировать и даже создавать по одной каждый раз. Extrude (вытянуть) является наиболее мощным методом, Build (построить) наиболее общепринятым, a Tesselate (уложить мозаикой) связан с наибольшим количеством граней.
Функция Extrude создает грани путем перемещения выбранных граней наружу и построения сторон или "стенок", соединяющих выборку с ее периметром. Эта функция выполняет переход в режим вытягивания и прекращает текущую трансформацию, выбранную из линейки инструментов.
СОВЕТ
Extrude является одной из редких функций 3DS МАХ, которая разрешает определить свой результат в видовом окне. В этом режиме курсор превращается в пиктограмму Extrude, когда находится над выборкой. После этого вытягивание можно определить путем перетаскивания курсора; поле Amount сообщает высоту вытягивания.
СОВЕТ
Вытягивание нельзя настраивать. После выполнения вытягивания оно устанавливается. Попытка "настроить" вытягивание приводит к дополнительному вытягиванию на той же самой выборке. Поэтому перед отпусканием стрелки счетчика или перетаскиваемого курсора следует тщательно проанализировать вытягивание. Настройка существующего вытягивания может сэкономить значительное время, если необходимо быстро получить последовательные сегменты вытягивания. На рисунке 13.20 показано способ предоставления объектам последовательных вытягивании с целью добавления сегментов.
Extrude перемещает выборку граней в соответствии с ее усредненной нормалью. Если выборка плоская/ копланарная (что, вероятно, является результатом выборки многоугольника), вытягивание перпендикулярно плоскости. Если выборка некопланарная, нормали выбранных граней усредняются и вытягивание следует этому вектору. Например выбор прилегающих сторон рамки производит вытягивание сторон под углом 45°. Для получения управляемых результатов Extrude лучше всего использовать с копланарными выборками.
Функция Extrude игнорирует состояние центра выборки линейки инструментов и всегда обрабатывает его так, как будто используется Pivot Point Center. Каждая несоприкасающаяся выборка граней имеет собственную нормаль. Можно создавать несоприкасающиеся выборки и вытягивать их одновременно, и они будут это делать так, как будто их вытягивают друг за другом. На рисунке 13.21 показано создание сложной формы путем выполнения серии вытягивании и промежуточного неоднородного масштабирования на несоприкасающихся выборках.
Нормали вытянутых граней направлены наружу при положительном вытягивании и вовнутрь - при отрицательном. Координаты отображения "растягиваются" вдоль длины новых сторон. Помните, что обычно отображение лучше применять после модификатора EditMesh, поскольку так можно сделать все топологические изменения.
В случае применения модификатора EditMesh к замкнутой форме (например, к тексту) форма сразу покрывается каркасным наконечником. После этого можно использовать функцию Extrude для быстрого придания глубины, подобно применению модификатора Extrude. В отличие от модификатора Extrude функция Extrude не создает наконечник на другой стороне. Таким образом функция Extrude весьма полезна, если форма уже является каркасом (либо за счет разрушения, либо за счет импорта из другой программы) и необходимо получить результат применения модификатора Extrude к замкнутым формам.
ПРИМЕЧАНИЕ
Укладка граней мозаикой используется в основном для увеличения плотности каркаса; она применяется на выбранных областях для создания дополнительных вершин и граней, которыми можно манипулировать, или для увеличения общей детализации с целью будущего применения модификаторов. Например, каркас может не содержать достаточное количество сегментов для правильного изгиба, или модификатор Displace (сместить) может потребовать более плотного каркаса для достижения большей степени детализации для смещенного растрового изображения.
Грани, уложенные мозаикой, предполагают наличие сглаживающей группы (групп) их предка. При использовании укладки мозаикой Edge вместе с Tension (натяжение) необходимо проанализировать результирующую геометрию, чтобы убедиться, в порядке ли операция AutoSmooth. Вновь созданные ребра граней, уложенных мозаикой, всегда отображаются независимо от видимости предка. Использование AutoEdge со значением 1 после укладки граней мозаикой очищает внешний вид каркаса, делая копланарные ребра невидимыми. Грани, созданные за счет укладки мозаикой, принимают установки материала и координат отображения первоначальных граней. Заметное изменение происходит только для случая, когда каркасу присваивается материал карты грани.
Опция укладки мозаикой Face-Center (центр грани) разделяет каждую выбранную грань на три. Новые ребра фактически разделяют пополам углы первоначальной грани, а новой вершиной является центр тяжести первоначальной грани. Грани, созданные посредством такой опции, всегда копланарны по отношению к первоначально выбранным граням. Такой метод создает интересный шаблон, который может использоваться сам по себе (рис. 13.22). Повторяемые применения Face-Center продолжают добавлять плотность к одной и той же выбранной области и эта область не вырастает, так как это происходит при укладке мозаикой Edge.
Метод укладки мозаикой Edge разделяет каждую выбранную грань на четыре грани путем деления каждого ребра пополам и соединения новых вершин с центральной гранью. Если ребро совместно используется другой гранью, добавление новой вершины заставляет эту грань разделиться на две грани. Это поясняет способ, в соответствии с которым укладка мозаикой ребер распространяет свое влияние на соседние грани. Может показаться, что такое распространение создает больше граней, чем это необходимо, но во избежании наличия швов соседние грани должны создаваться по порядку. Сглаживание не может произойти между двумя соседними гранями, не использующими совместно двух вершин. На рисунке 13.23 показана укладка мозаикой верхушки сосуда с целью моделирования закругленного края.
Метод Edge также работает со значением Tension (последнее перестает быть серым при активной Face-Center), которое управляет расположением вновь созданных вершин. При проекции новых вершин наружу или "накачке" с положительным натяжением, либо проекции их вовнутрь или "откачке" с отрицательным натяжением никакого влияния на вершины первоначальных граней не оказывается. Tension имеет значения от -100 до 100, и для значения 0 никакой эффект не создается. Если необходимо, чтобы грани, уложенные мозаикой, оставались копланарными (как при Face-Center), установите Tension в 0.
Без использования Tension укладка мозаикой увеличивает только плотность каркаса; она не оказывает влияние на профиль. Если объект содержит кривые, для приведения в соответствие со спроектированной кривой могут потребоваться новые вершины. Опорным значением (значением по умолчанию) для Tension является +25. Это значение проецирует новые вершины так, чтобы они следовали по кругу или сфере. Укладка мозаикой ребер для всей сферы при значении Tension, равном 25, имеет тот же эффект, что и удвоение сегментации сферы (см. рис. 13.24). Правильный выбор значения Tension зависит от кривизны геометрии. Выполнение множества укладок мозаикой с максимальными значениями Tension является отличным методом "комканья" и загрубления поверхности.
Новые вершины, спроецированные при помощи значения Tension, используются для создания кривой, проходящей через все грани, на которые оказывается влияние. Если выполняется укладка мозаикой на совершенно плоской поверхности, Tension влияния не оказывает. На рисунке 13.25 показано распространение последующих укладок ребер мозаикой, при которых поверхность не деформируется до тех пор, пока не достигает угла и не имеет граней, между которыми кривая усредняется.
ПРИМЕЧАНИЕ
Полезным методом для использования с каркасами, имеющими укладку мозаикой, является выбор вершин граней до того, как выполнять на них укладку мозаикой. После укладки мозаикой такая выборка первоначальных вершин может оказаться удобной при управлении поверхностью, поскольку теперь можно перемещать и масштабировать первоначальные вершины, либо инвертировать выборку и манипулировать новыми вершинами. Выполнение однородного масштабирования на инвертированной выборке вершин часто бывает очень похожим на эффект использования элемента управления Tension. На рисунке 13.26 показан пример GeoSphere, у которой выбраны все вершины, выполнена укладка мозаикой на всех ее гранях и масштабирование первоначальной выборки вершин вовнутрь.
Build Face (построить грань) позволяет создавать одну за другой треугольные грани на существующих вершинах. Щелчок на Build Face выполняет переход в режим "сшивания" граней, который является единственным в 3DS МАХ методом ручного создания граней. Данный режим переключает отображение вершин на крестики, поэтому целевые вершины легко видеть.
Построение граней является процедурой "соединить по точкам", используя три вершины, определяющие новую грань. Все три вершины должны принадлежать одному и тому же объекту и не должны быть скрытыми, поскольку в виде крестиков отображаются только видимые вершины выбранного объекта. Построение граней не создает и не изменяет вершины, поэтому новые грани автоматически объединяются с гранями, уже совместно использующими эти вершины. При этом курсор изменяет вид на перекрестие, находясь над действительной вершиной.
СОВЕТ
Нормальное направление вновь построенной грани диктуется порядком, в котором выбираются три вершины. Выбор вершин против часовой стрелки делает грань видимой, в то время как выбор вершин по часовой стрелке помещает грань вдали от вас.
ПРИМЕЧАНИЕ
Вновь созданные грани получают установки по умолчанию Material ID#, и если каркасу присваивается какое-либо отображение - координат отображения. Несмотря на то, что присвоение'Material ID#1 часто оказывается корректным, отображение и нехватка сглаживания редко кого-то устраивают. Обычно необходимо завершить построение грани и затем присвоить корректное сглаживание и координаты отображения.
Для любых трех вершин существуют две грани с противоположно направленными нормалями. При попытке создания уже существующей грани появляется предупреждение, показанное на рисунке 13.27, и создание продолжить далее невозможно. Подобное запрещение имеет место ввиду того, что каркасы с дублированными гранями вызывают ряд проблем, куда входят в первую очередь аномалии визуализации и неудачно завершенные булевы операции.
Несколько функций разрешают изменять топологию поверхности каркаса за счет разрыва, отсоединения, разрушения, преобразования ее в планарную и удаления. Характер этих функций стремятся близок к деструктивному; они используются, главным образом, при необходимости существенного изменения поверхности модели.
Рассмотрим Face Explode (разбить грани на компоненты) - инструмент для разрыва на части или рассечения каркасов. Explode разделяет каркасы путем создания дубликатов вершин и "разъединения" граней. Разрывается ли каркас на грани или элементы зависит от сопровождающего значения Angle Threshold (угловой порог).
Грани, у которых угловые отношения имеют значения ниже Angle Threshold, при разбиении образуют элементы. Угол в 0° разбивает все грани, в то время, как угол 180° разрывает объекты на элементы. Для случая куба угловой порог, например, 90° оставляет куб в неприкосновенности, а 89° разделяет его на б элементов (по одному для каждой стороны), а значение углового порога в 0° разделяет его на отдельные грани. Если вы умеете анализировать угловой порог, применяйте Explode для отделения частей своей модели с целью использования их где-нибудь в других местах.
Опция разбиения на объекты или элементы достаточно проста и состоит в следующем. Если необходимо, чтобы разбитые части имели свою собственную историю редактирования и дорожки анимации, выбирайте объекты. Если необходимо, чтобы разбитые части были частью того же самого объекта, разбивайте части на элементы.
СОВЕТ
Помните, что при использовании EditMesh история ваших действий обеспечивается модификатором. Если объект разбивается на другие объекты, позже модификатор EditMesh можно удалить. При этом первоначальный объект повторно появляется нетронутым, а созданные при разбиении объекты остаются. Это один из способов разделения частей модели без причинения ущерба оригиналу.
Функция Detach (отсоединить) используется для создания новых объектов из частей выбранного объекта. Вся выборка становится одним объектом, даже если ее результатом является множество элементов. Новый объект наследует ориентацию ограничивающей рамки первоначального объекта.
СОВЕТ
Функция Collapse упрощает каркас за счет использования уникального метода удаления граней. Выбранные грани удаляются и заменяются центрированной вершиной. Каждая соседняя грань, совместно использующая вершину вместе с удаленной гранью, растягивается (и объединяется) до места расположения новой вершины. Если соседняя грань совместно использует две вершины (ребро) с удаленной гранью, она удаляется. Разрушение одной грани может за один раз удалить максимум четыре грани - разрушенную и три грани, совместно использующие ребра. Разрушение выборки граней ведет к очень быстрому уменьшению числа граней модели, однако каркасная поверхность сохраняется, что особенно полезно при уничтожении копланарных граней. Например, на углах можно легко отколоть кусочки, что показано на рисунке 13.28.
Самым поразительным является то, что Collapse обрабатывает выборку как единое целое даже в том случае, если она несоприкасающаяся, аналогично функционированию Vertex Collapse. При несоприкасающихся выборках разрушенные вершины по-прежнему располагаются методом усреднения положений каждой выбранной грани. Это не всегда приемлемо, если только не планируется разрушение с помощью анализа того, где будет находиться результирующая вершина. Для большинства случаев моделирования разрушение следует ограничивать до соприкасающейся выборки. 22*
Разрушение часто используется в качестве инструмента создания скульптур, играя роль стамески для отсекания кусков от профиля каркаса и количества граней. Разрушение лучше всего использовать на каркасах, содержащих значительное количество граней, с которыми необходимо работать. Функция может оказаться полезной для фрактально сгенерированных ландшафтов и органических каркасов, которые требуется улучшить и индивидуализировать. При использовании на каркасах с регулярной поверхностью Collapse обеспечивает точки сжатия, в которых располагаются новые вершины. Обратитесь к обсуждению Vertex Collapse ранее в этой главе где рассматривается более управляемый метод и дополнительные примеры.
Функция Make Planar (сделать планарными) анализирует нормали выбранной грани и определяет усредненную нормаль на основе общего размера грани (например, грани, расположенные под правильными углами одна по отношению к другой, будут образовывать только угол в 45° при условии одинакового размера). Затем грани вращаются для выравнивания на той же самой плоскости. На рисунке 13.29 показано как выборки даже несоприкасающихся граней устанавливаются под углом для образования общей плоскости. Эта функция часто используется для уплощения нерегулярностей в том, что должно быть плоской плоскостью. Функцию Make Planar можно применять для создания планарных соотношений между многочисленными элементами с целью быстрого определения критических отношений (см. рис. 13.30).
СОВЕТ
Функция Delete выполняет в точности то, что означает ее название - ту же функцию, что и клавиша Delete. Эффект Delete очевиден за исключением работы со скрытыми гранями.
Сразу после скрытия выборки ее периметр остается подсвеченным красным цветом, поскольку скрытые грани по-прежнему находятся в выбранном состоянии и при нажатии Delete будут удаляться. Грани, которые скрыты, но еще не удалены, могут действовать в качестве "предварительного просмотра" удаления.
Можно скрывать грани и добавлять их к выборке при удерживании клавиши Ctrl в нажатом состоянии. Можно продолжать выбирать и скрывать грани в течение всего времени построения "скрытой" выборки. После получения удовлетворительного результата нажмите Delete и все скрытое удалится.
Фактически грани определяют поверхности, отражающие свет. Цвет света зависит от материала, присвоенного поверхности, и от цвета света, освещающего поверхность. Если материал не присвоен, для отражения света используется цвет объекта. Способ, в соответствии с которым цвет затеняется, в дальнейшем управляется посредством сглаживания. Если поверхность не гладкая, каждая грань отражает свет как независимая плоскость. Если она сглажена с соседними гранями того же каркаса, совместно используемые ребра сглаживаются и геометрия визиализируется более гладкой, чем есть на самом деле.
Корректное применение сглаживающих групп может усложнить простую модель и улучшить сложную, а некорректное применение часто вызывает появление странных полос или уничтожает детали. За счет тщательного присвоения сглаживающих групп выбранным граням внутри каркаса можно создавать экономически оправданные и визуально правильные модели. Основная концепция сглаживания по отношению к объектам была описана в главе 7, "Основы создания объектов", однако следует также понимать, как присваивать сглаживание на уровне грани, если каркас полностью нерегулярный.
ПРИМЕЧАНИЕ
Сглаживание может происходить только между объединенными гранями и, следовательно, не может выполняться между объектами или элементами. Грани будут продолжать сглаживаться до тех пор, пока они могут отслеживать линию объединенных граней, содержащих ту же сглаживающую группу.
Каждая грань, которой присвоена одна или несколько сглаживающих групп, проверяет каждую совместно используемую вершину, чтобы посмотреть, имеет ли соседняя объединенная грань совпадающую сглаживающую группу. При обнаружении совпадения происходит сглаживание через две грани. Наличие множества совпадений сглаживающих групп не оказывает влияния на величину сглаживания, поскольку "степеней" сглаживания не существует. Поверхность либо сглаживается, либо нет. Присвоение грани нескольких сглаживающих групп вызывает только то, что грани должны сравнивать значительно большее количество сглаживающих групп с другими гранями. Если совпадения не найдено, между гранями создается ребро, если только они не копланарные.
Функция Smoothing всегда пытается аппроксимировать эффект сферической формы. Рисунок 13.31 демонстрирует, что сглаживание встречных граней, расположенных под углом острее 60° может приводить к нереальным эффектам, поскольку производится попытка сглаживания углов сферическим образом. Объекты с острыми углами отражают неуклюжее сглаживание на вертикальных поверхностях, поскольку затенение протягивается диагонально поперек сторон каркаса. Если каркас имеет большее число сторон и эти стороны прогрессивно уменьшаются, подсветка диагонали обостряется в угле и достигает вертикали, вследствие чего сглаживание выглядит более естественным. Как правило, углы сглаживания острее 120° (что равно угловому порогу 60°) создают нежелательные результаты.
Функция AutoSmooth (автоматическое сглаживание) обеспечивает самый простой метод присвоения сглаживающих групп выборке граней. AutoSmooth сравнивает сопровождающее их значение порога с углом между выбранными объединенными гранями. Если угол между объединенными гранями меньше значения углового порога, AutoSmooth присваивает этим граням общую группу сглаживания.
Функция AutoSmooth значительно экономит время и работает с большинством каркасов. Копланарньш граням присваивается уникальное сглаживание для каждой грани, если порог равен 0°. Например, рамка получает одну сглаживающую группу при пороге 90°, разные группы для каждой стороны при пороге больше 0° и меньше 90° и разные группы для каждой грани при пороге 0°. AutoSmooth выполняет присвоения достаточно эффективно и обычно присваивает минимум групп. Сглаженная рамка получает три, а не шесть сглаживающих групп, поскольку три группы можно чередовать так, чтобы они не касались. Подобная эффективность, часто делает грани удобными группами выборок для других операций.
ПРИМЕЧАНИЕ
AutoSmooth работает лучше всего, если грани каркаса образуют углы, которые соответствуют требованиям их сглаживания. Каркас, имеющий много фасок с углами 45°, часть из которых необходимо сгладить, а часть оставить острыми, является плохим кандидатом для AutoSmooth.
СОВЕТ
Хотя AutoSmooth работает на выборках, наибольшая эффективность ее работы достигается в случае применения к целым элементам. AutoSmooth начинает с самой нижней из 32 сглаживающих групп и продвигается вверх. Выполнение нескольких AutoSmooth на различных выборках одного элемента увеличивает вероятность того, что гранями в различных операциях будут совместно использоваться большее число популярных сглаживающих групп с меньшими номерами. В результате сглаживание может произойти там, где оно нежелательно и, вероятнее всего происходить не будет при выборе для операции AutoSmooth целого элемента. Лучше всего выполнять AutoSmooth на выборке при удалении сглаживания с целого элемента и необходимости применения AutoSmooth к дискретным невстречающимся частям. При этом общие сглаживающие группы не касаются и нежелательное сглаживание не возникает.
Массив из 32 кнопок сглаживающих групп (Smoothing Group) является первым ключом для идентификации того, какая сглаживающая группа каким граням присваивается. При выборе грани любая присвоенная ей сглаживающая группа индицируется в виде нажатых кнопок. В выборке граней кнопки нажимаются, если группа совместно используется всеми гранями, и кнопка теряет свой номер (но не нажимается), если сглаживающая группа присвоена только некоторым граням в выборке.
ПРИМЕЧАНИЕ
Функция Select By Smooth Group (выбрать по сглаживающей группе) представляет собой диалог (см. рис. 13.32), показывающий каждую сглаживающую группу, присвоенную объекту в настоящий момент. Нажатие кнопки с номером и щелчок на ОК выбирает грани, которым присвоена эта группа.
Опция Clear Selection (очистить выборку) выполняет Select None и затем обеспечивает выбор по сглаживающей группе для выбранной группы. Выключение этой опции добавляет новую выборку к текущей.
СОВЕТ
Посредством 32 кнопок Smoothing Group можно присвоить или отменить сглаживающую группу для любой выборки граней. Такое присвоение вручную обеспечивает полное управление результатом в отличие от автоматического метода AutoSmooth. Для отмены сглаживающей группы щелкните на ее кнопке, чтобы ее отжать. Если кнопка не имеет номера, т.е. выборка не содержит ничего общего, необходимо щелкнуть на кнопке дважды - один раз для присвоения группы целой выборке и второй раз для удаления ее.
При присвоении сглаживающих групп следует рассмотреть несколько вопросов, связанных с формой модели. Какие части необходимо визуализировать круглыми? Какие секции должны иметь резко очерченные ребра? Какие плоскости должны содержать грани? После решения этих вопросов ручное присвоение сглаживающих групп становится предметом изучения выборки граней.
Если сглаживание усложняет формы, например, создает чрезмерно разукрашенное изделие из железа или шрифт с фасками, общепринятый прием заключается в определении множества выборок, включающих в себя области, затем отмену выборки, инвертирование и скрытие граней. Общая стратегия предполагает сначала идентификацию плоских поверхностей. Последние необходимо выбрать, присвоить им уникальные сглаживающие группы и затем скрыть, дабы обеспечить способ для последующих выборок. При этом выполнение последующих выборок значительно ускоряется, поскольку при каждом проходе остается все меньшее количество неприсвоенных граней.
Другим общепринятым приемом является переход к Select All, выполнение AutoSmooth и затем корректировка одних лишь неправильных граней. Сглаженные затененные видовые окна сообщают о состоянии сглаживания и обеспечивают строгий отчет о том, насколько хорошо присвоены сглаживающие группы. При обнаружении ошибочного сглаживания выберите грань и проверьте номера ее групп. Выберите соседние грани, сравните и принимайте решение о том, как продолжать. Часто наилучший путь заключается в снятии сглаживания с этих трудных областей и повторном присвоении "с нуля".
При выборе номеров сглаживающих групп обеспечивается полная свобода, и пусть выбор из 32 групп вас не ошеломляет. Такое количество поддерживается для того, чтобы выборки можно было организовать без неразберихи, и даже наиболее сложные модели имели достаточное количество групп. Выбор меньших, больших или последовательных номеров значения не имеет. Меньшие номера используются AutoSmooth первыми, поэтому есть смысл во избежание конфликтов устанавливать большие номера. Часто оказывается, что для большинства каркасов достаточно от двух до шести сглаживающих групп. Большее количество групп обычно означает, что каркас очень сложный или отдельные группы обеспечиваются для упрощения формирования выборок.
СОВЕТ
Каждая грань обладает нормалью, которая перпендикулярно восходит из центра грани. Нормаль указывает в направлении от стороны грани, которую можно видеть. Невозможность видеть другую сторону грани называется отбором задней грани и представляет собой метод, который обычно используется для ускорения графики и является режимом по умолчанию в интерактивном и окончательном визуализаторах 3DS МАХ. Нормали граней также являются важной индикацией геометрии, поскольку непротиворечивые нормали определяют направление поверхности и делают это независимо от того, является ли она внутренним объемом или внешней поверхностью. По этим причинам нормали граней используются несколькими функциями для принятия решений по визуализации и моделированию. О каркасе, имеющем на всех поверхностях непротиворечивые нормали, говорят, что он унифицирован.
ПРИМЕЧАНИЕ
Нормали в 3DS МАХ определяют настоль много, что их нельзя игнорировать. Для EditMesh нормали определяют Pivot Point Center грани, направление вытягивания и угловые пороги, используемые Explode, AutoSmooth и AutoEdge. Другие модификаторы, например Optimize, Displace, MeshSmooth и Relax, вычисляют свои эффекты с использованием нормалей. Унифицированные нормали критичны при создании составных булевых объектов. Некоторые материалы, включая карты граней и многие процедурные текстуры, основывают свои результаты на нормалях граней.
ПРИМЕЧАНИЕ
Функция Unify сбрасывает выборку нормалей граней в соответствии с требованием 3DS МАХ по умолчанию - переориентация нормали к грани от центра выборки. Эта функция является быстрым методом унификации целого каркаса (хорошо работает с Select All) и обычно должна быть первым шагом для исправления некорректного каркаса. Для правильной работы Unify грани и вершины каркаса уже должны соблюсти золотое правило построения каркаса - каждая грань, совместно использующая ребро с соседней гранью, должна также совместно использовать две вершины.
ПРИМЕЧАНИЕ
Unify работает лучше всего, если выбран целый элемент, имеющий минимум разомкнутых'концов. Унификация выборок внутри элемента не настоль надежна, как унификация целого элемента, поскольку выборка может расширяться не так далеко, чтобы обеспечить для Unify ясную картину каркаса. Копланарные выборки будут выполнять унификацию, но направление, в котором выборки унифицируются, имеет шансы 50/50 оказаться ошибочным, поскольку копланарные грани понятия не имеют о направлении.
Опция Show Normals показать нормали отображает нормали каждой выбранной грани в виде вектора "от синего к белому". Такое обозначение позволяет быстро обнаружить нормаль с некорректным направлением. Поэтому использование Show Normals для идентификации нормалей с неправильным направлением может стать более эффективным, чем анализ граней. Сопровождающий Show Normals параметр Scale масштабирует размер вектора нормали и не оказывает влияния на каркас. Для некоторых видов геометрии может оказаться полезным резкое увеличение масштаба, чтобы увидеть пересечение нормалей (например, нормали внутреннего купола будут пересекаться в его центре). Векторы нормалей выполняют только отображение и манипулировать ими непосредственно нельзя (вместо этого на выбранных гранях следует использовать функцию Flip).
Обычная Unify не работает на любом каркасе. Для копланарных, внутренних, вращающихся или импортированных каркасов настройку нормалей необходимо выполнять вручную. Эта задача может оказаться быстрой, если нормали просто смотрят в неправильном направлении, и достаточно утомительной в случае неправильно построенного каркаса (вероятнее всего в другой программе), при этом нормали имеют случайное направление. Общая ситуация заключается в необходимости посмотреть внутрь созданного объекта. Унификация нормалей всегда направляет нормали наружу от центра выборки, и для направления их вовнутрь необходимо вручную переключить целый каркас.
Если каркас унифицирован, но расположен в неправильном направлении, выполните выбор по элементу или Select All и щелкните на Flip переключить. Теперь направление нормалей изменяется на противоположное. Эта процедура работает хорошо для быстрого переключения копланарных каркасов, поверхностей вращения и объектов, которые требуется рассматривать изнутри.
Если каркас всюду имеет случайные нормали и не может обеспечить непротиворечивую унификацию, вероятно он построен неправильно (грани, совместно использующие ребра, не используют совместно вершин). Такая ситуация практически всегда является результатом импортирования моделей, созданных где-то в другом месте. Многие программы моделирования, записывающие файлы DXF (например, AutoCAD) не имеют метода хранения нормалей граней и не поддерживают основ каркасного моделирования. В случае с некорректной моделью следует принять решение, основанное на будущих планах моделирования независимо от того, сколько времени требуется для переключения нормалей. Если планируется просто присвоить отображение, материалы и выполнить визуализацию, можно отказаться от переключения нормалей и перейти к применению двусторонних материалов. Отметим, что такой выбор оказывает отрицательное влияние на время визуализации и увеличивает требования к памяти. С другой стороны, если планируется выполнять любое моделирование, в особенности моделирование составных булевых объектов, нужно потратить время на унификацию нормалей либо за счет корректировки нетрадиционного моделирования и использования Unify, либо путем ручного переключения нормалей.
Хотя переключение нормалей может показаться игрой, тем не менее это часто утомительное занятие. Применение и комбинирование нескольких методов выборки граней и опций является обычным методом выполнения такой рутинной работы. При этом весьма удобно определить горячую клавишу для Backface Cull, поскольку довольно часто требуется сравнивать перключенные и непереключенные представления.
Начинайте переключение нормалей со скрытия областей каркаса, которые имеют корректные нормали. Если большая часть оставшегося каркаса обращена в неправильном направлении, выполните Select All и щелкните на Flip. По крайней мере теперь работа выполняется для менее, чем половины граней. Продолжайте выбирать грани с некорректными направлениями и выполняйте переключение выборок. Если нормали каркаса становятся более унифицированными, может оказаться, что переключение граней, обращенных к вам, проще переключения граней, обращенных от вас. Можно либо перейти на противоположный вид, либо выполнить Select All и переключить целый каркас.
СОВЕТ
Для визуализации обеих сторон грани и экономии времени на корректировку нормалей всегда доступна опция 2-Sided. Это достигается либо через свойства материала, либо путем указания Renderer на необходимость обработки целой сцены как двусторонней. Такой "ускоренный" способ моделирования отражается на времени визуализации, поскольку каждая грань вычисляется в обоих направлениях. Кроме того, увеличиваются требования к памяти, если имеются отбрасываемые тени или отражения.
ПРИМЕЧАНИЕ
Для правдоподобной передачи естественных свойств некоторых материалов, в особенности стекла, необходим двусторонний материал. Каркасы, видимые с двух сторон и недостаточно закрытые на сцене, чтобы восприниматься как бесконечно тонкие (например, листья, флаги, бумага, ткань и мешки) также являются подходящими кандидатами для двусторонних материалов. Задним частям объектов, отражающихся в зеркале, часто присваиваются двусторонние материалы с целью подчеркивания их односторонности. Для специфических причиняющих беспокойство объектов, которые визуализируются некорректно, можно присваивать двусторонний материал. Последнее является альтернативой визуализации целой сцены в режиме Force 2-Sided.
Легко сделать вывод, что двусторонний материал требует всего в два раза больше ресурсов для визуализации его как одностороннего материала; таким образом, это не очень большие затраты. Однако на практике визуализатор вычисляет приблизительно в четыре раза больше граней, в том числе для каждой тени, отбрасываемой светом, и для каждой отражающей поверхности внутри сцены. Эти дополнительные грани являются результатом визуализации обеих сторон того, что обращено к вам (двухкратное увеличение), и затем обеих сторон того, что не обращено к вам (может быть, дополнительное двухкратное увеличение, но, вероятно, больше).
По умолчанию каждая грань начинает с присвоенного ей Material ID#1. Грани не хранят действительных имен материалов, а только их ID#. Если материал является чем угодно за исключением Multi/Sub-Object, ID материала не оказывает влияния. Если объекту присваивается материал Multi/Sub-Object, ID материала диктует какой присваивается подматериал из определения материала.
Во время принятия решения о том, как присвоить выбранным граням материал подобъекта, сначала необходимо учесть, должны ли оставаться выбранные грани частью большего объекта. Если моделирование завершено и нет необходимости, чтобы выбранные грани сглаживались с другими гранями, которые имеют другие материалы, лучшим решением может оказаться отсоединение выбранных граней как независимых объектов и присвоение им стандартного материала. Обычно, когда для части объекта требуется другой материал, отличный от используемого остальной частью, в поверхности между двумя материалами появляется видимый разрыв, по крайней мере, шов. Избежать такой ситуации можно путем отсоединения граней, выбранных для присвоения материала подобъекта.
Типичная ситуация, когда требуется выполнить сглаживание и использовать ID материала с материалом Multi/Sub-Object, возникает в случае применения на непрерывной поверхности различных красок или отделок. Выпуклая стенка с красками различных цветов, хромовая ручка с захватом и ваза с различной глазурью - это все примеры когда сглаживание необходимо продолжать, но также примеры, для которых нужны различные материалы.
Рассмотрение ID материалов завершается замечанием о том, что присвоение ID по-прежнему разрешает выборку граней и сохранение набора выборок. Выбор по Material ID создает выборку граней с требуемым ID, что позволяет видеть какой части каркаса какой материал присвоен, при условии, что мультиматериалы не используются. Если материал Multi/Sub-Object не используется, можно безопасно сохранять наборы выборок граней с различными ID#. Сохранение наборов выборок не влияет на материал, но создает очень удобные наборы выборок на уровне граней.
Последним из трех основных элементов каркасного редактирования являются ребра. Ребра представляют собой побочный продукт создания граней и не могут существовать без них. Хотя сами по себе ребра не являются частями геометрии, 3DS МАХ разрешает их использовать для манипуляции гранями, частями которых они являются, и формирования основы по которой можно создавать дополнительные грани.
Свиток Edge, показанный на рисунке 13.34, до сих пор является простейшим из уровней выборок. Ребра подчиняются тем же правилам выборок окном и областью пересечения, что и выборка граней. Однако можно обнаружить, что если все ребра не отображаются, выбрать только то, что нужно, оказывается затруднительным. В особенности это справедливо при создании выборок областей внутри каркаса. В то время как выборка граней имеет опцию By Vertex, выборка ребер подобной опции не имеет. При определении области уже первый щелчок мышью выполняет выборку, по этому высока вероятность попадения на нежелательное невидимое ребро.
ПРЕДУПРЕЖДЕНИЕ
При трансформации ребра на самом деле происходит трансформация определяющих его двух вершин. Ребра являются способом блокировки одной вершины по отношению к другой. Ребро можно рассматривать как жесткую гантелю, которая перемещает веса на обеих концах, не деформируя при этом себя. Способ, в соответствие с которым ребро блокирует две вершины друг по отношению к другу, подобен тому, как грань блокирует выборку из трех вершин. В случае применения EditMash каждое ребро обладает локальной осью, так что имеется возможность использования центра-точки вращения.
Как и для граней, каждая соприкасающаяся выборка определяет центр выборки. Эта возможность отсутствует в EditableMesh.
Ребра не скрыты, а скорее сделаны "невидимыми". Невидимые ребра ведут себя иначе, чем скрытые грани и вершины. С другой стороны, скрытые грани и вершины "защищают" себя от дальнейшей модификации; скрытые ребра этого не делают. Даже не видя ребер, их можно выбирать, трансформировать, вытягивать, делить, поворачивать, разрушать и удалять. Хотя модификация невидимых ребер может оказаться удобной, она также и опасна, поскольку существует вероятность сделать гораздо больше, чем это необходимо.
Видимость ребер влияет на несколько вещей в модели. При моделировании видимые ребра определяют границу для выборки многоугольником. При визуализации визуализируются только видимые ребра, когда граням, которым они принадлежат, задается материал в виде проволочного каркаса (см. рис. 13.35). Скрытые ребра влияют также на ориентацию отображенных материалов грани. Однако в большинстве случаев единственными отличиями между видимыми и невидимыми ребрами являются организационная и визуальная ясность. Невидимые ребра часто делают модель более ясной и понятной, поскольку отображаются только рельефные линии. Кроме того, невидимые ребра увеличивают скорость перерисовки за счет уменьшения количества линий.
Невидимые ребра можно отображать при помощи опции Edges Only (только ребра), которая находится ниже Display Optimization (оптимизация отображения) в панели Display (см. рис. 13.36). Если планируется работа с ребрами, перед выполнением основного редактирования необходимо войти в панель Display и выключить Edges Only. Опция Edges Only на визуализацию влияния не оказывает.
СОВЕТ
Отображением ребер можно точно управлять посредством опций Visible (видимое) и Invisible (невидимое). Решите, какие ребра должны быть видимыми, выберите их и щелкните на Invisible или на Visible для изменения их состояния. В то время, как выбор видимых ребер с целью превращения их в невидимые достаточно прост, обратная задача может таковой не оказаться. Помните, что в отличие от скрытых граней и вершин, невидимые ребра можно выбирать даже в том случае, если они не отображаются. Для получения уверенности в том, что выбирается, выключите опцию Edges Only. Эта процедура упрощается за счет использования клавиатурной альтернативы Edges Only; при этом нет необходимости покидать панель Modify.
Несмотря на то, что присвоение видимости вручную обеспечивает управление, подобная процедура может оказаться утомительной. AutoEdge анализирует выборку ребер и сравнивает нормали граней, совместно использующих эти ребра, с сопровождающим значением Angle Threshold. Как и для AutoSmooth и Explode, чем выше значение Angle Threshold, тем больше ребер можно сделать невидимыми. Чем выше значение порога, тем больше количество острых углов попадает в диапазон.
СОВЕТ
При работе с выборкой доступно управление размером части модели, которая вычисляется при текущем значении Angle Threshold. Это вычисление может играть важную роль, если различные части модели имеют различные острые углы, а общий AutoEdge отображает в конкретной области либо очень много или очень мало.
Хотя ребра сами по себе не являются геометрической реальностью, 3DS МАХ позволяет создавать грани на базе ребер посредством Extrusion (вытягивание) и Dividing (разделение).
Вытягивание (extruding) ребра подобно вытягиванию грани за исключением того, что создается только одна сторона. Каждое вытянутое ребро перемещает вершины ребра и создает две новых грани. Направление вытягивания определяется плоскостью, образованной выбранными ребрами. Соседние ребра, лежащие на плоскости, надежно вытягиваются под углом 90° к этой плоскости.
Вытягивание отдельных ребер непредсказуемо, поскольку две вершины не могут определить плоскость. Функция пытается определить направление вытягивания на основе граней, прилегающих к ребру, но это редко создает необходимые углы. Аналогичная трудность возникает при вытягивании несоприкасающихся выборок ребер. Лучшим методом вытягивания ребер является работа с соприкасающимися ребрами. Каждая соприкасающаяся группа ребер определяет собственное направление вытягивания.
СОВЕТ
Как и для Face Extrude вытягивание можно выполнять в интерактивном режиме с помощью мыши или счетчика величины. Каждое перетаскивание или освобождение мыши или счетчика создает дополнительное вытягивание, за счет чего можно быстро создавать полосы вытянутых граней.
СОВЕТ
Функция Edge Divide влияет на одно ребро за счет вставки новой вершины в среднюю точку ребра и разделения первоначальной грани на две. Если ребро совместно используется двумя гранями, разделяются обе, в результате чего создается четыре грани. Вновь созданные ребра всегда становятся видимыми, поэтому можно наблюдать за результатами. Edge Divide подобна функции Edge/Refine из EditSpline, и можно считать, что она выполняет "вставку вершины в среднюю точку". Независимо от того, как ее называть, она обладает возможностью создания вершины и граней в местах расположения средних точек. Показанная на рисунке 13.37 геометрия была создана из Box при помощи Edge Divide и последующих масштабирующих трансформаций вершины.
Разделение ребер представляет собой удобный способ введения вершины и добавления грани в области каркаса, которые необходимо объединить. Многие модели, созданные в других программах, имеют некорректную укладку мозаикой и могут иметь неодинаковое количество вершин в точках перехода (примером этого является экспорт в 3DS в рамках AutoCAD сплошных ACIS). Для правильного сглаживания такого рода поверхностей необходимо создавать вершины с целью балансировки количества вершин в сочленениях. После достижения в месте перехода одинакового количества вершин вершины с обеих сторон следует объединить для продолжения сглаживания и ликвидации шва.
Новые грани, созданные при помощи Divide, наследуют от предка координаты отображения, но не приобретают каких-либо сглаживающих групп. Если модель использует сглаживание, сглаживающие группы необходимо присвоить после завершения разделения ребер.
ПРИМЕЧАНИЕ
Несмотря на кажущуюся незначительность, функции Edge Turning является одним из наиболее основных инструментов каркасного редактирования. Этот инструмент часто используется перед и после Edge Divide, Vertex Collapse и Face Extrude для создания правильной топологии поверхности для каркаса.
Edge Turn влияет на одиночное совместно используемое ребро путем изменения направления ребра на другие вершины двух граней. Edge Turn не оказывает влияния на изолированные грани или периметр, а также на ребра, которые совместно не используются. Поскольку координаты отображения фактически хранятся вместе с вершинами, поворот ребер не влияет на отображение. Направление поворота можно быстро изменить на противоположное за счет повторного поворота того же ребра.
ПРИМЕЧАНИЕ
Поворот ребра является тонким инструментом моделирования, который часто используется для изменения профиля каркаса. Поворот представляет собой повторную настройку, которая не усложняет каркас, поскольку она просто переориентирует то, что уже существует. Если область каркаса необходимо сделать несколько шероховатой или немного сгладить, в этом может помочь поворот ребра. .Если булева операция не работает, поворот ребра на копланарных гранях может перенастроить геометрию так, что та же операция будет работать без изменения положения или сложности объекта, что потребовалось бы в противном случае. Но чаще всего поворот ребра применяется для установки шаблонов внутри каркаса (см. рис. 13.38) и ориентации ребер для последующих операций моделирования.
Edge Collapse (разрушение ребра) работает на текущей выборке ребер. Разрушение ребра похоже на разрушение вершины или грани, но гораздо менее предсказуемо. Разрушение ребра разрушает одну из вершин ребра и "перетаскивает" все ребра, которые ранее совместно использовались этой вершиной, к оставшейся вершине. Две грани, которые совместно использовали первоначальное ребро, удаляются и покрываются за счет растяжения соседних граней. К сожалению, невозможно определить, какая из вершин ребра разрушится.
При разрушении выборки ребер каждая соприкасающаяся выборка разрушается до одной вершины. Эта вершина стремится оказаться на краю выборки, однако место ее расположения надежно предсказать нельзя. То, что заменяет соприкасающуюся выборку, может оказаться трудно увидеть, поскольку каждая грань, совместно использующая ребро, считается подлежащей разрушению.
Edge Delete (удаление ребра) работает на текущей выборке ребер. При удалении ребра фактически удаляются грани, совместно использующие ребро, а вершины остаются неповрежденными. Такое удаление объясняет, почему при удалении ребер никогда не возникает сообщение "Delete Isolated Vertices" (удалить изолированные вершины) в отличие от удаления граней. Можно выбирать и, таким образом, удалять невидимые ребра. Как всегда, соблюдайте осторожность после выполнения Select All, поскольку невидимые ребра могут быть по-прежнему активными. Надежность удаления повышается, если перед созданием выборки ребер выполнить Select None.