Публикую продолжение обучающих материалов от ценящего время моделера 3D техники
Раньше я уже публиковал его труд здесь про UV и там про основы моделирования под сглаживание.
Поехали!
Когда я обучаю людей, я не устаю снова и снова повторять: лоупольность – это хорошо, это очень хорошо. Делать модель лоупольной нужно везде и всегда где это возможно, если в итоге мы получаем абсолютно индентичный результат с хайпольным аналогом.
За "легкую" модель в будущем вам обязательно скажет "спасибо" любой, кто будет с ней работать. Кубик со 100000 полигонами бесспорно выглядит красиво, но что если... в будущем в сцене должно будет быть 10000 кубиков? Тогда открытие такой сцены, работа с ней и рендеринг – станут настоящей пыткой для любого пользователя, у которого компьютер не хайенд-навороченный монстр или рендер-ферма.
В сегодняшней теме одна из таких фичей, которая помогает делать модель красивой при значительно меньших затратах (полигонов), но при этом выдавая абсолютно идентичный результат с хайпольными аналогами.
Поговорим про нормали полигонов (не путать с нормал-картами)))
Я создал сцену с 4-мя кубиками. На заднем фоне я разместил геометрию полос, дабы более наглядно показать изложенный материал.
Итак. Поговорим про чамферы (Chamfer). Поверите ли вы, если я скажу, что фактически никогда их не использую? Если быть точным, то в 99% случаев)))
Причин несколько:
- При использовании чамфера мы получаем больше полигонов, нежели при предложенном мной способе.
- После использования чамфера происходит искажение отражения на нормалях на соприкасающихся планарных полигонах.
- Чамфер сложно корректировать (если к примеру мне захочется сделать блик на изломе больше (или меньше) – это будет проблемой)
Слева на право (сверху внизу):
- Первый кубик – базовый. С ним я ничего не буду делать кроме работы с группами сглаживания.
- Второй кубик – проработан моим способом, посредством добавления 1 пояса еджей с каждой стороны.
- Третий кубик – "обработан" чамфером по всем еджам.
- Четвёртый кубик – "обработан" чамфером по всем еджам + дополнительно добавлено по одному поясу еджей с каждой стороны.
Итак, назначим на все кубики одну группу сглаживания (не путать с сабдивижнами)
и рассмотрим на схеме эффект от этого действия на нормали наших кубиков. От правильности работы нормали зависит правильность отражений на полигонах.
- На первом кубике при работе группы сглаживания мы, по сути, имеем ооочень грубый шарик... Далее я верну ему разные группы сглаживания, чтобы он являлся ориентиром по отражениям в сравнении с другими кубиками.
- На втором кубике мы ничего не чамферили, а просто добавили по поясу еджей с каждой стороны [они еще называются лупами, примечание автора блога]. При работе одной группы сглаживания на изгибах геометрии, она пытается непосредственно ... сгладить (знаю...масло-масляное)))) эти самые изгибы геометрии. Добавленные нами еджи являются сдерживающим фактором в пределах которых и происходит это самое сглаживание. Так как следующий после зоны сглаживания полигон находится в одной плоскости с тем, что находится на изломе геометрии между ними не происходит уже никаких сглаживаний и соответственно, на этом полигоне не будет уже никаких искажений отражений.
- Третий кубик: основной (самый большой) планарный полигон не находится в одной плоскости с крайним еджем из зоны чамфера, поэтому между ними так же происходит сглаживание, что однозначно вызывает искажения отражений на планарном (самом большом) полигоне.
- Четвёртый кубик: то же, что и третий, но скорректирован способом как на втором кубике, благодаря чему здесь мы так же имееем корректное отражение на планарном (самом большом) полигоне.
(кликните для увеличения)
Давай посмотрим как это выглядит на рендере:
(кликните для увеличения)
Как я говорил выше, я верну первому кубику разные группы сглаживания, чтобы он был ориентиром в сравнении "правильности" отражений на планарных полигонах (в нашем случае это верхние полигоны на кубиках с отражением полос):
(кликните для увеличения)
Как мы можем видеть, предложенный мной способ обработки даёт нам более корректное отображение отражений на модели. При этом он менее полигонален и более гибок в настройке (при желании увеличить\уменьшить радиус загиба угла, стоит просто передвинуть добавленный пояс еджей в нужном направлении с включенной привязкой "по еджам").
Ты спросишь, почему я показал 4-ый вариант? Ведь он даже более полигонален, нежели третий. Всё просто. Второй вариант годится абсолютно везде, где модель не будет видно, как говорится "в силуете". Но в иных случаях следует использовать вариант 4. Это мелочи и они не критичны, но я давно понял, что тысяча таких вот мелочей делает картинку значительно живее. Это может быть не видно явно, но глаз подсознательно видит такие вещи и чувствует.
(кликните для увеличения)
Реклама на 3D блоге: если вам нужно приобрести лицензионный Photoshop CC, 3ds Max 2014 или купить Corel Videostudio Pro X6, то это можно сделать в онлайн-магазине store.softline.ru
Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.
комментариев 15 к статье “Как правильно сглаживать 3D модели (лупами или чамфером)”
Извините, в данный момент комметарии закрыты.
Не понятно написано, размазано как то. Что такое правильно, не правильно? Правильнее сказать с оптимизацией или без. Имхо 3тий вариант выглядит лучше всего без танцев с бубном. И почему ко второму варианту не применит смуз? Или тут дело в оптимизации? Тогда опять 3тий вариант выглядит лучше всего. Это Квад-чамфер который сейчас доступен как плагин, а в 2015 максе будет по умолчанию. Но имхо квад-чамфер как отдельный плагин лучше всего работает. И еще, возможно дело в углах сглаживания.
pshttp://www.mariussilaghi.com/products/quad-chamfer
Квад Чамфер фантастическая штука
да, полезно очень, только я не понял где нужно использовать 2й вариант а где 4й(((
Спасибо за полезную инфу. Все очень понятно.
Я давно уже применяю «2 способ» на некоторых деталях, но, Chamfer часто тоже выручает
Полезный материал. Для моделирование предметов интерьера, большинство из которых смотрятся силуэтно, оптимальный способ чемфера с минимальным радиусом и количеством ребер. Для корректности отражений, я задаю группу сглаживания только на скругленные углы, а на плоскостях вообще сглаживание убираю. Для удобства и скорости работы лучше использовать плагин EdgeChEx, который позволяет выделить полигоны области скругления одним кликом при преобразовании обьекта в editable poly.
Сногсшибательно!!!!!!!
«Второй кубик – проработан моим способом, посредством добавления 1 пояса еджей с каждой стороны.»
можно описать способ или небходимо с помощью connect нарезать и подгонять еджики на всех гранях кубика,я правильно понимаю?
Да, правильно. Либо connect-ом, либо инструментом Swift loop либо еще десятком способов 😉
а еще можно Slice-ом нарезать
Что-то меня это совсем не радует, даже обеспокаивает о «правильности отражений на всех 3д моделях». Или я чего-то не
до понимаю. Нет, конечно, что вот таким способом сглаживать лоупольные модели — это хорошо, но я о другом.
А вот почему. Взял, к примеру, тот 2й куб, проработанным «спец. способом», посредством добавления 1 пояса еджей с
каждой стороны. Для эксперимента, взял и применил к этому 2му кубу TurboSmooth с 1 интерацией сглаживания.
Назначил 1 группу сглаживания, по умолчанию 45* градусов, и на рендере получается такая картина:
Которая заставляет задуматься о «правильности отражений на всех моделях». Ведь форма модели далеко не такая…, какую себе представляет система сглаживания, я так думаю, она себе представляет, что там (на изгибе) вообще полу-труба какая-то .
Вот не смотря на форму и изгибы геометрии, она создает сглаживание по своим алгоритмам, которые приводят к такому бредовому результату. Вот как можно быть уверенным, после такого, что на всех остальных моделях, точнее на их «неких» изгибах геометрии или обычных частях, правильные отражения? Действительно, когда посидишь и подумаешь над этим. Если она не может должным образом сгладить вот такие углы у куба, то как она может нормально сглаживать другие изгибы полигонов моделей, угол изгиба которых чуть меньше, чем у куба? Начинаешь понимать, что будто система не совершенна. Она как то семплирует угловатую геометрию, придавая ей иллюзию гладкости, но в тоже время не совсем верную, с моей точки зрения.
Оно должно семплировать именно тот участок, где полигоны изгибаются на 15 градусов. Но в итоге, система в добавок семплирует, или что она там делает, участок находящийся вокруг этого изгиба, охватывая пояс эджей лежащий уже на планаре.
— Факт в том, как именно она это сглаживает угловатую геометрию. Вот для обычного куба, на котором нет ни фасок, ни вот этого специального второго способа приведенного в этой статье, AutoSmooth создает 3 или 6 групп сглаживания, потому что там углы больше или равны 45 градусам и отражения на нем правильные.
На моём кубе есть изгиб полигонов, у которого угол меньше 45 градусов, к примеру, это = 15*
— AutoSmooth всему мешу присвоит только 1 группу сглаживания — и, из-за непонятной системы сглаживания, куб получается с такими глюками на отражениях, что не правильно.
После такого увиденного, я не могут поверить в правильность отражений на всей поверхности какой-либо модели, там персонаж, машина или пр. . Я себе, конечно, не представляю именно такие «кривые отражения», а просто представляю их неправильными или не особо точными.
Поиграв со значениями настроек угла в свитке Smooth Groups, я добился оптимального значения — «15». Теперь отражения стали «правильными»:
Но поверхность куба уже не является сглаженной:
Если попытаться поставить ближайшие значения, например, 18* или 20* — то куб либо слегка сгладится, но все-равно будет угловатым (будет несколько групп сглаживаний, как и при 15* градусах, также будут конфликтные швы между группами), либо к нему вернутся те кривые отражения соответственно.
Понимаете, оно должно само определять, вычислять углы на изгибах или полигонов, и по этим вычислениям строить систему сглаживания, чтобы были правильные отражения.А то смотря на отражение этого куба, ощущается, что система делает некие упрощения или еще что-то…
Вот даже попробовал оставить у куба только две стороны, и ничего в отражениях не изменилось в лучшую сторону:
Не сидеть же и добавлять на изгибы дополнительные ребра уже в готовом Mid, High-poly модели, к примеру, машине или особенно на персонажей, и пр., чтобы были правильные отражения на некоторых изгибах моделей? Или все-таки придется?
У кого есть какие мнения по этому поводу?
Доброго дня всем участникам беседы.
Спасибо за замечательный урок товарищу DesertBull.
Уважаемый MaxVolume, не могли бы Вы загрузить ваши скриншоты еще раз? К сожалению они уже удалены. Очень интересно проследить ход ваших мыслей.
Спасибо.
Также в целом мне не ясно почему «способ 2» менее затратен чем 3?
Ведь если применить одинарный Chamfer (способ 3, с треугольником на стыке трех ребер) — полигонаж куба составит 44 триса, в то время как способ 2 дает результат в 108 трисов.
На примере автора есть два «лишних» ребра, которые на мой взгляд и так обработаются сглаживанием.
Поправьте меня пожалуйста, если я где-то ошибаюсь.
С уважением.
Ярослав
Эх, прошли те времена когда все пищали от радости от внедрения normal shading (сейчас просто smoothing)
Сейчас проблемы прям «серьезнее» — как это — правильно работает или нет….
Великолепно! Отличный урок! Проверил!, всё работает! До этого урока, эти группы сглаживания меня задолбали своими искажениями. И в тоже время, без них не обойтись. А теперь всё ясно: что бы на крупных поликах избежать искажений, нужно этот полик окружить узкой полосой компланарных полигонов, и всё класс!
Только я в одном не согласен с автором — насчёт того, когда применять способ 2, а когда способ 4. Автор предлагает судить по наличию «силуэтности». Но мы не знаем, кто и как будет использовать нашу модель. Значит у нас определённый угол может находиться не в силуэте, а у другого он попадёт в силуэт, и будет стрёмно.
Лично я буду делать так: если угол «резкий» — способ 2, если угол плавный (большой радиус скругления) — способ — 4.
И ещё хотелось бы узнать у автора: каким способом можно быстро наносить рёбра по способу 2?
Кстати, по фотографиям в этой статье, заметил ещё одну интересную особенность, которая может быть полезной — чем больше угол между нормалями соседних полигонов, тем больше искажения.
Чуть не забыл. Спасибо автору за полезную статью!