В этом уроке, предметами нашего изучения станут закруглённые края/галтели (Fillets) и фаски/скосы (Chamfers), а также различные приёмы, с помощью которых они моделируются. Для начала – что такое фаска и галтель? В мире математически идеальной компьютерной графики грани объектов ровные, точнее жёстко-очерченные или так называемые "твёрдые грани" (hard edges). Когда вы создаёте куб, все его грани являются остроконечными, в реальности, практически все предметы имеют закруглённые грани (иногда, конечно, едва заметные). Взгляните на это фото стола :
Твёрдые грани, на самом деле закруглённые, если рассмотреть их вблизи. Когда вам нужно добиться того, чтобы предметы, созданные в программе моделирования, выглядели более правдоподобно, закругление граней является необходимым требованием, которое будет придавать вашей работе больший реализм и зрительную привлекательность, так как, например, только на округлённых гранях возможны блики, недостижимые при математически совершенных углах.
Фаска это когда грань срезается (например) на 45 градусов. Галтель почти то же самое, но срез граней делается с закруглением. Более понятно, на приведённой ниже диаграмме :
Исходная модель
Вот наша исходная модель, со всеми идеально прямыми гранями. Модель в формате obj можно загрузить здесь.
Вот наша исходная модель, со всеми идеально прямыми гранями. Модель в формате obj можно загрузить здесь.
Полигональная модель, 50 многоугольников в видовом окне, и 50 после рендера.
Попробуем разные возможные способы снятия фаски и закругления краёв для данной модели. Вот список всех приёмов в 3DStudio MAX, которыми мы воспользуемся :
3DStudio MAX
Фаски в Edit Poly
Для начала, используем встроенный в модификатор Edit Poly метод создания фаски (модификатор можно использовать и с Edit Mesh и с Editable Poly). Применяем к объекту модификатор Edit Poly, выделяем все твёрдые грани и нажимаем Chamfer.
Polys (полигональная модель), 324 многоугольника в видовом окне и при рендере.
Выглядит гораздо лучше, обратите внимание на появившиеся едва заметные блики на этих гранях, модель стала реалистичнее и визуально интересней. Единственный минус, количество многоугольников возросло с 50-ти до 324-ёх. Однако, так как созданная фаска является частью модификатора edit poly, его можно отключить в случае, когда объект будет находиться достаточно далеко от камеры, или включить расчёт изменений модификатора только при рендеринге, в результате чего окна просмотра не будут перегружены дополнительными многоугольниками. И если нужно будет изменить геометрию объекта до того, как был применён модификатор, можно отключить (или совсем удалить) его, чего нельзя получить если моделировать фаску на исходном объекте. На самом деле, это весьма знáчимая особенность стека модификаторов в max-е.
Многократное создание фаски в Edit Poly.
Тот же самый (предыдущий) способ снятия фаски, только применённый повторно для уже срезанных граней.
Результат применения этого способа очень похож на способ сглаживания (округления) граней, но добавляет бóльшее количество дополнительных многоугольников в сетку модели.Также этот метод создаёт дополнительную геометрию в объекте, особенно в углах (см. ниже), множество трёх- и шестигранников, которые, как правило, не желательны.
И наконец, видимые различия между однократным и многократным закруглением настолько незначительны, что зритель вряд ли заметит их пока не приблизится к объекту достаточно близко, следовательно, использование данного метода весьма спорно.
Срезанные грани (несколько раз), 932 многоугольника в видовом окне и при рендере.
Создание фаски с помощью сегментов в Edit Poly
Max 2008 дополнил модификатор edit poly новым параметром, воспроизводящим предыдущий метод (многократную фаску) полуавтоматически. Создавая фаску, просто установите значение "Segments" выше, чем 1...
Полученный результат при близком рассмотрении:
И рендер:
Срезанные грани по сегментам, 562 многоугольника в видовом окне и при рендере.
Срезанные грани по сегментам, 562 многоугольника в видовом окне и при рендере.
Здесь имеем те же преимущества и недостатки, что и при использовании метода многократного снятия фаски. Хотя, всё же есть несколько различий, например, данный способ : 1) легче создаётся, 2) уменьшает (и оптимизирует) количество получаемых многоугольников и 3) углы сглаживаются более продуманно, хотя треугольники всё же присутствуют, как можно заметить на предпоследней картинке.
Meshsmooth с дополнительными замкнутыми контурами (Extra Loops)
Двигаемся дальше и рассмотрим закруглённые грани (галтели). Предположим, мы будем рассматривать данный объект с достаточно близкого расстояния, сравнивая эффект закруглённых граней с эффектом фасок.
Начнём с секций или сабдивов (subdiv=subdivision – подраздел(ение), секция). Получить сабдивы в 3ds max можно, используя модификатор meshsmooth (или turbosmooth, у которого меньше настроек, но который и памяти использует меньше). Вот пример :
Начнём с секций или сабдивов (subdiv=subdivision – подраздел(ение), секция). Получить сабдивы в 3ds max можно, используя модификатор meshsmooth (или turbosmooth, у которого меньше настроек, но который и памяти использует меньше). Вот пример :
Meshsmooth, 708 многоугольников в видовом окне, 11328 многоугольников при рендере.
Выглядит даже лучше, чем объект с фасками, однако, заметьте увеличившееся количество многоугольников в видовом окне, и значительно бóльшее их количество при финальном просчёте (рендеринге). Это обусловлено двумя причинами. Количество многоугольников в видовом окне выросло из-за того, что при использовании этого метода округления граней необходимо создание дополнительной геометрии вокруг граней. Без дополнительной геометрии, грани станут слишком сглаженными. Вот пример такой дополнительной геометрии, которую нужно добавлять.
Хотя добавление дополнительных сечений заняло у меня больше времени (что означает больше времени на моделирование модели в целом), и в результате стало больше многоугольников, конечный объект выглядит лучше, чем объект с фасками. Другой недостаток в том, что в 3ds max, сабдивы рассчитываются отдельным шагом. Другие рендеринг-алгоритмы способны рассчитывать сабдивы во время рендера, и добавлять столько дополнительных многоугольников, сколько требуется для получения конечной поверхности. Так, если объект находится вдали от камеры, он сглаживается меньше, а большие плоские площади не сглаживаются так, как будут сглаживаться грани объектов. В max-е плоские поверхности, которые не нуждаются в сглаживании всё равно будут сглаживаться, вот почему (частично) количество многоугольников при рендере может быть достаточно большим.
Другим преимуществом данной техники является то, что все углы модели становятся четырёхугольными, вместо "ужасных" треугольных, получаемых при некоторых других способах закругления граней.
Meshsmooth с загибом (Creasing)
А как насчёт опции загиб/складка в Meshsmooth? В модификаторе Meshsmooth есть опция, называемая складка или загиб (у Turbosmooth-а такой опции нет, и для данного способа он не подойдёт). Вместо добавления дополнительной геометрии для сглаживания граней в сетке объекта, вы указываете насколько грань будет загнута, точнее натянута (с прилегающими к ней многоугольниками внутри модификатора meshsmooth), указывая значение для грани: 0 – без натяжения, 1 – величина полного натяжения, и промежуточные величины. Вот результат :
Загиб (натяжение) граней в Meshsmooth, 50 многоугольников в видовом окне, 1600 при рендере.
В видовом окне количество многоугольников равно исходному количеству, при рендере их количество меньше, по сравнению с предыдущим способом, однако, как видно результат нисколько не напоминает эффект фаски. Загибы (складки) могут быть полезны в некоторых ситуациях при моделировании органики, но в общем, у меня никогда не получалось воспроизвести эффект фаски у моделей с твёрдыми гранями.
Meshsmooth-методы: четырёхугольника (Quad) и классический (Classic)
В модификаторе Meshsmooth есть ещё пара методов сглаживания кроме NURMS-сглаживания. Попробуем классический (Classic), установим параметр Strength меньше 0,5, например 0,1. Этот метод сглаживания создаёт результат, похожий на создание фаски в ручную, с той лишь разницей, что с некоторыми гранями "происходит что-то странное", как на картинке ниже :
Meshsmooth Classic, 50 многоугольников в видовом окне, 1596 при рендере.
При использовании другого метода – Quad Output, применённого к модели с твёрдыми гранями, также получаем не те результаты, которые хотелось бы.
Meshsmooth Quad Output, 50 многоугольников в видовом окне, 1600 при рендере.
Meshsmooth с EdgeChEx
Этот метод очень похож на метод Meshsmooth с использованием дополнительных замкнутых контуров, за исключением того, что мы используем плагин-модификатор EdgeChEx для создания дополнительных контуров, вместо создания их вручную. Плагин можно скачать здесь.
Возьмём наш объект, применим модификатор (EdgeChEx), затем применим Meshsmooth. Возможно, нужно будет немного понастраивать параметры модификатора, и затем, может даже преобразовать объект в editable poly и подрегулировать полученные с помощью модификатора грани, но всё равно это на много быстрее, чем добавлять дополнительную геометрию вручную. Вот результат рендера :
Возьмём наш объект, применим модификатор (EdgeChEx), затем применим Meshsmooth. Возможно, нужно будет немного понастраивать параметры модификатора, и затем, может даже преобразовать объект в editable poly и подрегулировать полученные с помощью модификатора грани, но всё равно это на много быстрее, чем добавлять дополнительную геометрию вручную. Вот результат рендера :
Meshsmooth, 900 многоугольников в видовом окне, 14400 при рендере.
Вот некоторые настройки плагина :
Power Solids
Другой метод – это использовать PowerSolid. Плагин PowerSolids от npowersoftware это тип геометрии, которую можно обозначить как "что-то переходное между многоугольной сеткой (Polygon object) и сеткой NURBS".
Как и в методе Meshsmooth с загибом (Creasing), создаётся поверхность, и для выделенных граней устанавливается величина их закругления. Для большей скорости, есть автоматическое закругление граней, в котором задаётся величина закругления для любого угла (не затрагивая граней, существующих на плоских поверхностях объекта). Взгляните на результат:
Как и в методе Meshsmooth с загибом (Creasing), создаётся поверхность, и для выделенных граней устанавливается величина их закругления. Для большей скорости, есть автоматическое закругление граней, в котором задаётся величина закругления для любого угла (не затрагивая граней, существующих на плоских поверхностях объекта). Взгляните на результат:
PowerSolids, 1900 многоугольников при рендере.
Выглядит превосходно и это при среднем количестве многоугольников. Кроме того, если объект становится меньше, powersolids автоматически уменьшит величину аппроксимации сетки объекта (tesselation). Единственным недостатком powersolids является то, что их нельзя деформировать, применяя к ним модификаторы подобные bend, twist или skin; сначала нужно преобразовать powersolids в полигональный объект, после чего, получим те же ограничения полигонального объекта .
Закруглённые углы в mentalray
В свойствах материала mentalray есть параметр (bump-карты), создающий иллюзию закруглённых углов (краёв). Назначим объекту материал Arch and Design, переходим в Special Effects и включаем свойство Round Corners. Вот его настройки:
Довольно симпатичный результат, и без добавления каких-либо дополнительных многоугольников...
Закруглённые углы в mentalray, 50 многоугольников в видовом окне и при рендере.
Пара проблем лишь в том, что 1) рендер только через mentalray и 2) поскольку используется bump-карта, этот метод хорошо работает только на большом расстоянии, если приблизиться, иллюзия исчезает. Посмотрим на угол и грани объекта крупным планом :
Ссылку на оригинал перевода этой статьи, пожалуйста, укажите, что это копия статьи: http://cgtut.virtualer.info/fillchamf.html
ОтветитьУдалить