Имитация связки модификаторов Symmetry и TurboSmooth в Maya
- Смоделируйте половину симметичного обьекта.
- Создайте независимый ее дубликат.
- Соедините атрибут Out Mesh узла формы оригинала с атрибутом In Mesh узла формы копии.
- Отразите копию инструментом Mirror Geometry.
- Свяжите копию с узлом сглаживания командой Smooth.
- Получите удобную связку для моделирования.
Если вы считаете, что я открываю Америку, можете дальше не читать.
А в уроке я собираюсь реализовать в Maya самый удобный для меня способ моделирования, которым часто пользуются в Max. По ходу дела вы также почитаете краткий обзор методик организации моделирования в Maya.
Симметричный обьект удобно моделировать в следующем порядке. Моделируется половина. Затем она зеркально отражается инструментом, который должен уметь объединять вершины на плоскости отражения. В 3ds Max это модификатор Symmetry, в Maya - это, например, инструмент Mirror Geometry. Вы получаете полную модель, к которой можно применить сглаживание. В 3ds Max это делает, например, модификатор TurboSmooth, в Maya - команда Smooth. Если применить сглаживание перед созданием зеркальной копии, инструмент отражения (при недостаточно тщательном подборе значения порога расстояния слияния (treshold)) может обьединить лишние вершины.
Вот фрагмент панели Modify в 3ds Max.
Изображенные средства управления позволяют следующее. В любой момент можно отключить, а также включить сглаживание (для контроля финального результата), можно также отключить видимость зеркальной копии (чтоб не мешала), можно моделировать на низкополигональном уровне, одновременно оценивая окончательный сглаженный вид. Мне это представляется весьма удобным.
Многие спецы скажут:
-ну и что. В Maya такое также возможно.
Отвечаю.
Похоже, но не так. Давайте вкратце проанализируем способы.
Вариант первый. В роли зеркальной копии - экземпляр (instance).
Экземпляр в Maya представляется узлом формы, который обслуживают два узла трансформации (если экземпляров два. В общем случае, на каждый экземпляр - свой узел трансформации). То есть, один и тот же обьект может находиться одновременно в двух разных местах.
При помещении узлов трансформации на отдельные слои, общий узел формы помещается, естественно, лишь на один слой. Отключение видимости слоя, содержащего этот узел формы приводит к отключению видимости всех экземпляров обьекта в сцене. Учтите, это не наследование видимости, это один и тот же узел формы.
На рисунке обозначены: Low2 и Low1 - имена слоев, содержащих экземпляры, bodyLow и bodyLow1 - имена узлов трансформации, bodyLowShape - имя узла формы.
Я не стал тратить слишком много времени на поиски решения, поскольку на виду другой недостаток - ближайшие вершины обеих половин модели (оригинала и копии) необходимо обьединять вручную.
Вариант второй. Использование команды Smooth Proxy.
Малополигональная и сглаженная копии разносятся по слоям. Видимости копий отключаются независимо. С параметрами, показанными на рисунке стрелками, автоматически получается зеркальная сглаженная копия с обьединенными вершинами, расстояние между которыми меньше указанного в поле Tolerence. Обратите внимание, вершины сливаются не у малополигональной, а у сглаженной копии.
На этом рисунке видно, что при значении Tolerence равном 0.0010 (значение по умолчанию) остается шов, а при 0.1 хорошо видны искажения, возникшие из-за слияния лишних вершин. Хороший результат получился со значением 0.01.
Поэкспериментировав с параметром Tolerence, вы можете найти оптимальное значение порога обьединения. Все же мне представляется более удобным использовать в роли зеркальной копии малополигональную: не нужно отслеживать случайно отклонившиеся или слившиеся вершины, не нужно подбирать с особой тщательностью Tolerence. Другими словами, проще отделить свеклу от моркови в целом виде, чем в измельченном.
Вариант третий. Отражение командой Mirror Geometry.
На выходе мы получаем общий узел формы bodyLowShape. Редактирование на уровне компонентов происходит именно в этом узле. Узел находится в конце цепочки и представляет всю модель, поэтому изменения одной половины модели на другой не отражаются. Другая причина такой "пассивности" узла кроется в принципах узловой аррхитектуры: узел управляется информацией извне и не может дать самому себе команду на симметричное обновление.
В такой последовательности Mirror Geometry применять не стоит. Это лишь демонстрация типичного применения этой команды. Чуть ниже мы опять применим Mirror Geometry, воспользовавшись предусмотрительностью разработчиков программы. И узел PolyMirror1 заменит нам instance.
Давайте попробуем имитировать в Maya Max'овский способ, описаный вкратце вначале.
Смоделируйте одну половину симметричной модели и поместите ее на отдельный слой.
Продублируйте половину со значениями окна Duplicate Options по умолчанию.
У вас получится нетрансформированная копия со своим узлом фоормы.Я эту копию отодвину немного вглубь, чтоб можно было различить.
Белая копия останется малополигональной, это будет оригинал.
Откройте окно Window > General Editors > Connection Editor. Откройте окно Outliner, в меню Display окна поставьте галочку возле пункта Shapes и выделите узел формы ближайшей копии.
В окне Connection Editor нажмите кнопку Reload Left.
В окне Outliner выделите узел формы дальней копии и в Connection Editor нажмите кнопку Reload Right.
Установите связь между атрибутами Out Mesh и In Mesh просто выделив эти атрибуты, как показано на рисунке.
Теперь все изменения оригинала будут отражаться на копии.
Выделите копию и примените к ней команду Mirror Geometry. Попробуйте подвигать вершины оригинала. Обе половины копии изменяются симметрично. Посмотрите в гиперграф.
Сеть узлов имеет очень похожий вид на тот, что показан в третьем варианте. Но теперь узел bodyLowShape, представляющий оригинал, находится в начале цепочки. Любые изменения в этом узле передаются через узел polyMirror1 в узел bodyLow1Shape, представляющий симметричную полную копию. Измененные данные на входе узла bodyLow1Shape вызывают его обновление.
Мы симитировали Максовский модификатор Symmetry.
Осталось разделить оболочку копии и усреднить ее нормали узлом сглаживания. Для этого выделите копию и выберите команду Polygons > Smooth.
Узел bodyLow1Shape (в сцене это симметричная сглаженная модель) теперь перестраивается с учетом выходных данных узла сглаживания polySmoothFace1.
Вот и все.
Разнесите малополигональный оригинал и сглаженную копию по отдельным слоям, забудьте про все эти узлы и приступайте к моделированию....