|
Фактически грани определяют поверхности,
отражающие свет. Цвет света зависит от
материала, присвоенного поверхности, и
от цвета света, освещающего поверхность.
Если материал не присвоен, для отражения
света используется цвет объекта. Способ,
в соответствии с которым цвет
затеняется, в дальнейшем управляется
посредством сглаживания. Если
поверхность не гладкая, каждая грань
отражает свет как независимая плоскость.
Если она сглажена с соседними гранями
того же каркаса, совместно используемые
ребра сглаживаются и геометрия
визиализируется более гладкой, чем есть
на самом деле.
Сглаживание граней
Корректное применение сглаживающих групп
может усложнить простую модель и
улучшить сложную, а некорректное
применение часто вызывает появление
странных полос или уничтожает детали. За
счет тщательного присвоения сглаживающих
групп выбранным граням внутри каркаса
можно создавать экономически оправданные
и визуально правильные модели.
ПРИМЕЧАНИЕ
Помните, что сглаживание - это иллюзия
визуализации, которая всегда пытается
аппроксимировать затенение одной и той
же формы - сферы. "Степеней" гладкости
не существует. Грани являются либо
сглаженными, либо нет.
Понимание сглаживания граней
Сглаживание может происходить только
между объединенными гранями и,
следовательно, не может выполняться
между объектами или элементами. Грани
будут продолжать сглаживаться до тех
пор, пока они могут отслеживать линию
объединенных граней, содержащих ту же
сглаживающую группу.
Каждая грань, которой присвоена одна или
несколько сглаживающих групп, проверяет
каждую совместно используемую вершину,
чтобы посмотреть, имеет ли соседняя
объединенная грань, совпадающую
сглаживающую группу. При обнаружении
совпадения происходит сглаживание через
две грани. Наличие множества совпадений
сглаживающих групп не оказывает влияния
на величину сглаживания, поскольку
"степеней" сглаживания не существует.
Поверхность либо сглаживается, либо нет.
Присвоение грани нескольких сглаживающих
групп вызывает только то, что грани
должны сравнивать значительно большее
количество сглаживающих групп с другими
гранями. Если совпадения не найдено,
между гранями создается ребро, если
только они не копланарные.
Функция Smoothing всегда пытается
аппроксимировать эффект сферической
формыОбъекты с острыми углами отражают
неуклюжее сглаживание на вертикальных
поверхностях, поскольку затенение
протягивается диагонально поперек сторон
каркаса. Если каркас имеет большее число
сторон и эти стороны прогрессивно
уменьшаются, подсветка диагонали
обостряется в угле и достигает
вертикали, вследствие чего сглаживание
выглядит более естественным. Как
правило, углы сглаживания острее 120°
(что равно угловому порогу 60°) создают
нежелательные результаты.
Использование AutoSmooth
Функция AutoSmooth (автоматическое
сглаживание) обеспечивает самый простой
метод присвоения сглаживающих групп
выборке граней. AutoSmooth сравнивает
сопровождающее их значение порога с
углом между выбранными объединенными
гранями. Если угол между объединенными
гранями меньше значения углового порога,
AutoSmooth присваивает этим граням общую
группу сглаживания.
Функция AutoSmooth значительно экономит
время и работает с большинством
каркасов. Копланарньш граням
присваивается уникальное сглаживание для
каждой грани, если порог равен 0°.
Например, рамка получает одну
сглаживающую группу при пороге 90°,
разные группы для каждой стороны при
пороге больше 0° и меньше 90° и разные
группы для каждой грани при пороге 0°.
AutoSmooth выполняет присвоения
достаточно эффективно и обычно
присваивает минимум групп. Сглаженная
рамка получает три, а не шесть
сглаживающих групп, поскольку три группы
можно чередовать так, чтобы они не
касались. Подобная эффективность, часто
делает грани удобными группами выборок
для других операций.
ПРИМЕЧАНИЕ
Если сглаживание выглядит некорректно,
проверьте конструкцию каркаса.
Совпадающие вершины или соседние грани
могут вызвать появление швов, а
избыточные грани - нерегулярностей
визуализации, подобных "миганию".
AutoSmooth работает лучше всего, если
грани каркаса образуют углы, которые
соответствуют требованиям их
сглаживания. Каркас, имеющий много фасок
с углами 45°, часть из которых
необходимо сгладить, а часть оставить
острыми, является плохим кандидатом для
AutoSmooth.
СОВЕТ
Для обеспечение корректного
функционирования AutoSmooth на каркасах
с изменяющимися угловыми переходами
переместите вершины областей небольших
углов (путем фиксации) для создания
более острых углов, которые легко
отделяются через предельный Angle
Threshold. Теперь AutoSmooth будет
присваивать группы, соответствующие
геометрическим линиям модели. После
присвоения временно перемещенные вершины
можно вернуть в первоначальные
положения. В качестве альтернативы можно
выполнить отсоединение областей граней в
элементы так, чтобы сглаживание между
ними не происходило.
Хотя AutoSmooth работает на выборках,
наибольшая эффективность ее работы
достигается в случае применения к целым
элементам. AutoSmooth начинает с самой
нижней из 32 сглаживающих групп и
продвигается вверх. Выполнение
нескольких AutoSmooth на различных
выборках одного элемента увеличивает
вероятность того, что гранями в
различных операциях будут совместно
использоваться большее число популярных
сглаживающих групп с меньшими номерами.
В результате сглаживание может произойти
там, где оно нежелательно и, вероятнее
всего происходить не будет при выборе
для операции AutoSmooth целого элемента.
Лучше всего выполнять AutoSmooth на
выборке при удалении сглаживания с
целого элемента и необходимости
применения AutoSmooth к дискретным
невстречающимся частям. При этом общие
сглаживающие группы не касаются и
нежелательное сглаживание не возникает.
Идентификация сглаживающих групп
Массив из 32 кнопок сглаживающих групп (Smoothing
Group) является первым ключом для
идентификации того, какая сглаживающая
группа каким граням присваивается. При
выборе грани любая присвоенная ей
сглаживающая группа индицируется в виде
нажатых кнопок. В выборке граней кнопки
нажимаются, если группа совместно
используется всеми гранями, и кнопка
теряет свой номер (но не нажимается),
если сглаживающая группа присвоена
только некоторым граням в выборке.
ПРИМЕЧАНИЕ
Странные полосы и сильно потемневшие
ребра часто являются признаком
некорректности установок сглаживания.
Если кажется, что объект визуализируется
неправильно, проверьте корректность
присвоения сглаживающих групп.
Функция Select By Smooth Group (выбрать
по сглаживающей группе) представляет
собой диалог (см. рис. 13.32),
показывающий каждую сглаживающую группу,
присвоенную объекту в настоящий момент.
Нажатие кнопки с номером и щелчок на ОК
выбирает грани, которым присвоена эта
группа.
Опция Clear Selection (очистить выборку)
выполняет Select None и затем
обеспечивает выбор по сглаживающей
группе для выбранной группы. Выключение
этой опции добавляет новую выборку к
текущей.
СОВЕТ
Имеется возможность выбрать грани без
установок сглаживания путем выбора всех
сглаживающих групп и последующим
выполнением Invert Selection
(инвертировать выборку).
Присвоение сглаживания вручную
Посредством 32 кнопок Smoothing Group
можно присвоить или отменить
сглаживающую группу для любой выборки
граней. Такое присвоение вручную
обеспечивает полное управление
результатом в отличие от автоматического
метода AutoSmooth. Для отмены
сглаживающей группы щелкните на ее
кнопке, чтобы ее отжать. Если кнопка не
имеет номера, т.е. выборка не содержит
ничего общего, необходимо щелкнуть на
кнопке дважды - один раз для присвоения
группы целой выборке и второй раз для
удаления ее.
При присвоении сглаживающих групп
следует рассмотреть несколько вопросов,
связанных с формой модели. Какие части
необходимо визуализировать круглыми?
Какие секции должны иметь резко
очерченные ребра? Какие плоскости должны
содержать грани? После решения этих
вопросов ручное присвоение сглаживающих
групп становится предметом изучения
выборки граней.
Если сглаживание усложняет формы,
например, создает чрезмерно
разукрашенное изделие из железа или
шрифт с фасками, общепринятый прием
заключается в определении множества
выборок, включающих в себя области,
затем отмену выборки, инвертирование и
скрытие граней. Общая стратегия
предполагает сначала идентификацию
плоских поверхностей. Последние
необходимо выбрать, присвоить им
уникальные сглаживающие группы и затем
скрыть, дабы обеспечить способ для
последующих выборок. При этом выполнение
последующих выборок значительно
ускоряется, поскольку при каждом проходе
остается все меньшее количество
неприсвоенных граней.
Другим общепринятым приемом является
переход к Select All, выполнение
AutoSmooth и затем корректировка одних
лишь неправильных граней. Сглаженные
затененные видовые окна сообщают о
состоянии сглаживания и обеспечивают
строгий отчет о том, насколько хорошо
присвоены сглаживающие группы. При
обнаружении ошибочного сглаживания
выберите грань и проверьте номера ее
групп. Выберите соседние грани, сравните
и принимайте решение о том, как
продолжать. Часто наилучший путь
заключается в снятии сглаживания с этих
трудных областей и повторном присвоении
"с нуля".
При выборе номеров сглаживающих групп
обеспечивается полная свобода, и пусть
выбор из 32 групп вас не ошеломляет.
Такое количество поддерживается для
того, чтобы выборки можно было
организовать без неразберихи, и даже
наиболее сложные модели имели
достаточное количество групп. Выбор
меньших, больших или последовательных
номеров значения не имеет. Меньшие
номера используются AutoSmooth первыми,
поэтому есть смысл во избежание
конфликтов устанавливать большие номера.
Часто оказывается, что для большинства
каркасов достаточно от двух до шести
сглаживающих групп. Большее количество
групп обычно означает, что каркас очень
сложный или отдельные группы
обеспечиваются для упрощения
формирования выборок.
СОВЕТ
Некоторые присваивают одинаковый номер
сглаживающей группы для данного
геометрического состояния так, что
группы становятся удобными методами
выборки. Например, непротиворечивое
присвоение группы с номером 32
наконечникам обеспечивает быстрый способ
дальнейшего выбора наконечников. То же
самое относится к фаскам, сторонам,
закругленным областям, кромкам и пр.
Управление нормалями граней
Каждая грань обладает нормалью, которая
перпендикулярно восходит из центра
грани. Нормаль указывает в направлении
от стороны грани, которую можно видеть.
Невозможность видеть другую сторону
грани называется отбором задней грани и
представляет собой метод, который обычно
используется для ускорения графики и
является режимом по умолчанию в
интерактивном и окончательном
визуализаторах 3DS МАХ. Нормали граней
также являются важной индикацией
геометрии, поскольку непротиворечивые
нормали определяют направление
поверхности и делают это независимо от
того, является ли она внутренним объемом
или внешней поверхностью. По этим
причинам нормали граней используются
несколькими функциями для принятия
решений по визуализации и моделированию.
О каркасе, имеющем на всех поверхностях
непротиворечивые нормали, говорят, что
он унифицирован.
ПРИМЕЧАНИЕ
Если объект выглядит "обратным" или
"вывернутым", причина обычно заключается
в перевернутых нормалях. Такой
неправильный вид обычно появляется при
работе с поверхностями вращения. То, что
выглядит "внутренним", нормаль делает
"внешним".
Нормали в 3DS МАХ определяют настоль
много, что их нельзя игнорировать. Для
EditMesh нормали определяют Pivot Point
Center грани, направление вытягивания и
угловые пороги, используемые Explode,
AutoSmooth и AutoEdge. Другие
модификаторы, например Optimize,
Displace, MeshSmooth и Relax, вычисляют
свои эффекты с использованием нормалей.
Унифицированные нормали критичны при
создании составных булевых объектов.
Некоторые материалы, включая карты
граней и многие процедурные текстуры,
основывают свои результаты на нормалях
граней.
ПРИМЕЧАНИЕ
Опция, игнорирующая нормали граней и
визуализирующая обе стороны (для
двусторонних (2-Sided) материалов или
опция Force 2-Sided в Renderer) является
плохим выбором с учетом того, как много
операций моделирования зависят от
правильных нормалей. Чаще корректировка
неправильных нормалей, появление
которого вызвано неправильным
моделированием, занимает меньше времени,
чем использование опции 2-Sided и
визуализация дополнительных граней,
отмена отбора задних граней и борьба с
результирующей некорректной моделью.
Унификация нормалей
Функция 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 и переключить целый каркас.
СОВЕТ
Часто проще переключить нормали целого
каркаса на неправильное направление и
работать "назад", переключая видимые
нормали. После того, как все ложные
грани переключены и каркас больше не
виден, выполните Select All и затем
переключение для получения
унифицированного каркаса.
Унификация нормалей против двусторонних
материалов
Для визуализации обеих сторон грани и
экономии времени на корректировку
нормалей всегда доступна опция 2-Sided.
Это достигается либо через свойства
материала, либо путем указания Renderer
на необходимость обработки целой сцены
как двусторонней. Такой "ускоренный"
способ моделирования отражается на
времени визуализации, поскольку каждая
грань вычисляется в обоих направлениях.
Кроме того, увеличиваются требования к
памяти, если имеются отбрасываемые тени
или отражения.
ПРИМЕЧАНИЕ
Если к объектам применяется опция
2-Sided, они приобретают вид бесконечно
тонких оболочек - чего-то такого, что
реально не существует и странно выглядит
при визуализации. Поскольку практически
все, что создается, имеет какую-то
толщину, следует рассмотреть
необходимость моделирование внутренней и
внешней частей модели, если только она
не выполнена из действительно тонкого
материала, подобного бумаге долларовых
банкнот.
Для правдоподобной передачи естественных
свойств некоторых материалов, в
особенности стекла, необходим
двусторонний материал. Каркасы, видимые
с двух сторон и недостаточно закрытые на
сцене, чтобы восприниматься как
бесконечно тонкие (например, листья,
флаги, бумага, ткань и мешки) также
являются подходящими кандидатами для
двусторонних материалов. Задним частям
объектов, отражающихся в зеркале, часто
присваиваются двусторонние материалы с
целью подчеркивания их односторонности.
Для специфических причиняющих
беспокойство объектов, которые
визуализируются некорректно, можно
присваивать двусторонний материал.
Последнее является альтернативой
визуализации целой сцены в режиме Force
2-Sided.
Легко сделать вывод, что двусторонний
материал требует всего в два раза больше
ресурсов для визуализации его как
одностороннего материала; таким образом,
это не очень большие затраты. Однако на
практике визуализатор вычисляет
приблизительно в четыре раза больше
граней, в том числе для каждой тени,
отбрасываемой светом, и для каждой
отражающей поверхности внутри сцены. Эти
дополнительные грани являются
результатом визуализации обеих сторон
того, что обращено к вам (двухкратное
увеличение), и затем обеих сторон того,
что не обращено к вам (может быть,
дополнительное двухкратное увеличение,
но, вероятно, больше).
Присвоение ID материала
По умолчанию каждая грань начинает с
присвоенного ей Material ID#1. Грани не
хранят действительных имен материалов, а
только их ID#. Если материал является
чем угодно за исключением Multi/Sub-Object,
ID материала не оказывает влияния. Если
объекту присваивается материал Multi/Sub-Object,
ID материала диктует какой присваивается
подматериал из определения материала.
Во время принятия решения о том, как
присвоить выбранным граням материал
подобъекта, сначала необходимо учесть,
должны ли оставаться выбранные грани
частью большего объекта. Если
моделирование завершено и нет
необходимости, чтобы выбранные грани
сглаживались с другими гранями, которые
имеют другие материалы, лучшим решением
может оказаться отсоединение выбранных
граней как независимых объектов и
присвоение им стандартного материала.
Обычно, когда для части объекта
требуется другой материал, отличный от
используемого остальной частью, в
поверхности между двумя материалами
появляется видимый разрыв, по крайней
мере, шов. Избежать такой ситуации можно
путем отсоединения граней, выбранных для
присвоения материала подобъекта.
Типичная ситуация, когда требуется
выполнить сглаживание и использовать ID
материала с материалом Multi/Sub-Object,
возникает в случае применения на
непрерывной поверхности различных красок
или отделок. Выпуклая стенка с красками
различных цветов, хромовая ручка с
захватом и ваза с различной глазурью -
это все примеры когда сглаживание
необходимо продолжать, но также примеры,
для которых нужны различные материалы.
Выбор по ID
Рассмотрение ID материалов завершается
замечанием о том, что присвоение ID
по-прежнему разрешает выборку граней и
сохранение набора выборок. Выбор по
Material ID создает выборку граней с
требуемым ID, что позволяет видеть какой
части каркаса какой материал присвоен,
при условии, что мультиматериалы не
используются. Если материал Multi/Sub-Object
не используется, можно безопасно
сохранять наборы выборок граней с
различными ID#. Сохранение наборов
выборок не влияет на материал, но
создает очень удобные наборы выборок на
уровне граней. |