Всем привет! В этом мини уроке речь пойдёт про запекание нормалей с высокополигональных объектов, стандартными средствами 3DS max. На создание этого урока меня вдохновила тема на форуме: https://3ddd.ru/forum/thread/show/problema_s_zapekaniem_normals_map

Это моя первая статья на 3DDD так что не судите строго.

Итак что мы имеем: 2 вида гаек, один высокополигональный переименуем его в Hi:

8943f747c86931fc71b0c0915c7cc40a.png

и 2-й вид низкополигональные модели, их 3 штуки для 3-х способов, переименуем их в Low, Low_a1 и Low_a2, соответственно:

9c62ef954688c133aaa8ad0da37d2789.png

Итак 1 способ который предлагался в теме на форуме: Это запекание карты нормалей с единственной группой сглаживания и с развёрткой имеющей минимальное количество швов. Для этого выделяем объект Low, нажимаем на кнопку Smoth, панели Ribbon:

5ffc68bede0f1e4a1d3bb742b3f819ac.png

И получаем вот такую гайку:

d02be35ea37bfd5e70a029d33eeb9ebe.png

Далее накидываем модификатор Unwrap UVW и выделяем грани которые будут являться швами, после чего нажимаем на кнопку Convert Edge Selection to Seams (Номер 1 на картинке), а затем нажимаем цифру 3 (режим работы с полигонами), Ctrl+A (выделить всё),после чего нажимаем на кнопку Quick Peel (Номер 2 на картинке).

c5aa7835ae232387238e7aa906741e49.png

Получаем вот такую развёртку:

8d7196e17f14c1af631e8f9c48a2c7c1.png

Модель подготовлена! Теперь необходимо установить в те же координаты высокополигональную модель и наконец приступить к настройке.

1-е что необходимо сделать это установить источник освещения типа Skylight из свитка Standart. Затем выделить объект Low. (Вообще данный пункт не обязателен для запекания карты нормалей, ибо там не учитывается освещение, устанавливать источник освещения требуется только если с картой нормалей вы запекаете другие карты, к примеру АО, но так как я обычно запекаю несколько карт, данный пункт появился по привычке)

2-е. Нажать на цифру 0(вызов окна Render To Texture по умолчанию)на клавиатуре.

В открывшимся окне включить чекбокс Enable (номер 1 на картинке), этим чекбоксом активируется проецирование выбранного объекта на текстуру. Затем следует нажать на кнопку Pick...(номер 2 на картинке), в появившемся окне выбрать обьект с именем Hi (номер 3 на картинке), после чего подтвердить свой выбор нажав на Enter.

Далее выберите Use Existing Channel (номер 4 на картинке), таким образом вы указываете 3ds max что у вас уже есть развёртка после чего можете выбрать на каком канале находится нужная. Затем нажмите на кнопку Add...(номер 5 на картинке):

3a9c2e4a8b2dac95b901b9e51fb61825.png

В появившемся окне выберите Normal Map (номер 1 на картинке), затем нажмите Add Elements (номер 2 на картинке) и установите Target Map Slot на Bump (номер 3 на картинке), после чего нажмите на кнопку 1024х1024 (номер 4 на картинке), это позволит вам выбрать разрешение будущей карты. Если размер вам не подходит можно указать его в соответствующем окне немного правее, ограничение - квадрат 8192х8192px.

cc77a814143bd6c99621799456bebe84.png

Далее, если хотите, можете указать путь, формат и имя будущей карты нажав на кнопку со знаком ... рядом со слотом File Name and Type.

Здесь настройка завершена, однако не стоит закрывать окно, просто отодвиньте его чтобы не мешалось. Теперь выделяем объект Low и видим что появился новый модификатор Projection, открываем в нём свиток Cage, затем включаем чекбокс Shaded (это позволяет видеть границы запекаемого объекта, пересечение с которым приведут к появлению красных зон на будущей текстуре), затем в разделе Percent укажите -100 это позволит вам сбросить Cage до границ низкополигональной модели, а затем, поиграйте со значением Amount - вам потребуется установить такое значение чтобы граница между Low poly и Hi Poly моделью была минимальной, но при этом чтобы не было пересечений, если же подобными махинациями не удаётся достичь требуемого результата можно поработать с Cage на уровне вершин и полигонов выбрав соответствующую иконку в свитке Selection.

3f35ec4e8a4d93ce6d512837983db7f0.png

Далее возвращаемся в окно Render to Texture и нажимаем окно Render в самом низу. Сразу замечу что 3DS max не отображает карту которую рендерит, а отображает карту Diffuse слота даже если она не установлена на рендер, то есть если ваша высокополигональная гайка была красного цвета, то в окне вы увидите развёртку залитую красным цветом.

e8abee2aea278000eed90cbc331da50c.png

Открыв текстуру в фотошопе видим следующее:

08c29ee279593e25efa97bbee7f8d914.png

Затем если мы подгрузим лоуполи модель с данной текстурой в Marmoset toolbag увидим следующее:

65e54e9e5ce2a609249e4214ffe2f5b2.jpg

Как бы неплохо, но с косяками. Теперь перейдём ко второму, правильному, способу:

1. Выберите объект Low_a1, нажмите 2 на клавиатуре и выберите все те эджи которые, по вашему мнению, должны быть жёсткими, то есть иметь разные группы сглаживания по разным сторонам эджа. У меня вышло вот так:

3817dcc00c57c0514751c1c2106de34a.png

2. Нажмите на кнопку Hard (номер 1 на картинке), это позволит вам получить эффект описанный выше.

3. Теперь нам нужно сделать развёртку делая швы аккурат в том месте где у нас проходят Hard эджи, для лучшего ориентирования включите их отображение кликнув по чекбоксу Display Hard Edges(номер 2 на картинке). Чуть левее вы можете выбрать цвет отображения Hard эджей.

4. Накидываем модификатор Unwrap UWV, выделяем все наши хард эджи, а также 1 грань внутри гайки. После чего нажимаем на Convert Edge Selection to Seams, а после на Quick Peel. Получив развёртку нажмите на кнопку Pack: Custom (подчёркнута на изображении ниже)

1bbb98505f07021d074d1043c165b206.png

Данную развёртку можно упаковать и лучше, но для примера...

c4138031d5ee2a2c9980d633b3559c9f.png

5. Повторяем все те же действия что и на 1 способе:

4a4584bad372925e52d40cefc274ad5e.png

76ee57f116844b810878f4e5a12da58e.png

c8abff65a9607b8c257023940082037a.png

Нажав рендер получаем вот такую карту нормалей:

1e6644a6b97cee0d32b260f23c926e0c.png

А подгрузив всё в мармосет вот такую модель:

e65c48cb32f9d9e4a1cbce8ba6c8bb3b.jpg

Отлично!

Теперь эксперемента ради рассмотрим третий способ возьмём третью гайку Low_a2, повторим действия с хард эджами и накинем на неё развёртку от гайки Low, что получится? И так ли важна развёртка?

После всех махинаций получаем вот такую карту нормалей:

a3b093c8d4a02cb2a76968f160bcc144.png

А в мармосете мы видим вот такую модель, с косяками на хард эджах:

fb81e3a2b1bba891276d4630dd6f7972.jpg

Итак мы приходим к выводам: 1) можно использовать сколько угодно групп сглаживания 2) швы развёртки должны располагаться на хардэджах.

Всем спасибо за внимание!

Если возникнут вопросы пишите в коментариях, ЛС или во время моих трансляций на твиче: https://www.twitch.tv/alexsaltovsky

P.S. Про карту нормелей можно почитать здесь: http://wiki.polycount.com/wiki/Normal_map , если требуется перевод статьи, пишите - сделаю.

P.P.S. архив с материалами урока для закрепления (3DS Max 2016): https://yadi.sk/i/bRVRq23XeJbgng