Substance painter, артефакты при запекании карт

Автор
Сообщение
kophysty
Возраст:
Пол: М
На сайте c: 28.05.2015
Сообщения: 102
Откуда: Москва

Добрый день, подскажите, пожалуйста, по какой причине могут появляться вот такие артефакты при запекании high poly модели на low poly?  Частично smoothing groups исправляет этот артефакт (это вообще влияет на что-то при запекании? И если да, то на какой геометрии low или high?), где-то правка развертки помогла. Но до конца избавиться от него никак не получается. В сложных местах еще можно было бы списать, на то, что развертку фигово сделал, но есть совсем простые детали вроде петли на язычке, где этот косяк ну вот никак не хочет решаться. Похоже, что это проявляется на местах швов развертки, но на первом скрине артефакты не только на швах. Плотность пикселей более или менее равномерная, поэтому не очень понимаю почему это так проявляется в некоторых местах. Есть ощущение, что просто не в том месте проблему ищу.. Заранее спасибо за подсказку. 

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Во первых, нужно выяснить, какая карта так печётся. Если АО, то к хай\лоу поли это отношения не имеет. Скорее всего косяк развёртки. Развёртка у вас - так себе. Или от того, что всё в одном сете печёте. Там по-моему галка где-то должна быть чтобы пёк сеты по отдельности.
ZentexFX
Возраст: 24
Пол: М
На сайте c: 28.05.2018
Сообщения: 14
Откуда:
У меня такая же дичь только похуже, развёртку вертел на трубе как хотел а ничего не вышлоhttp://prntscr.com/q07rc4  
Skorpionchik
Возраст: 32
Пол: М
На сайте c: 25.02.2009
Сообщения: 1549
Откуда: Kyiv

Запекается само на себя, кейдж кастомный сделайте или пеките в несколько проходов с разным значением frontal distance с последующим совмещением.

Ну и ЮВ никуда не годится, много пустого места, и при этом текселя не хватает чтобы пропечь мелкие фаски, потому что они банально меньше пикселя толщиной.

kophysty
Возраст:
Пол: М
На сайте c: 28.05.2015
Сообщения: 102
Откуда: Москва

Большое спасибо за советы. Хочу поделиться некоторыми выводами на примере моей же модели и полезными ссылками для тех, кто также разбирается в теме и столкнётся с похожей проблемой, как у меня. Многое, конечно, из-за недостаточного понимания сути происходящего, поэтому поправьте меня, если я где-то ошибаюсь или заблуждаюсь. Наверняка многое из перечисленного – очевидно. Вкратце: моей задачей было уложить все детали на одну карту, не разбивая на сеты.    

1.      Развертка. Как и отметили опытные коллеги выше, основные проблемы (90%) крылись в развертке. Из-за того, что я раскроил модель в полуавтоматическом режиме в ZBrush вылезло огромное кол-во косяков. Во-первых, многие швы проходили по видимым граням, во-вторых плотность полигонов на видимых местах кое-где была неадекватная, что также вызвало артефакты. Почти всю развертку переделал руками в максе. Основы по развертке, на мой взгляд, хорошо разложены у этого автора (три видео в порядке сложности):

 https://www.youtube.com/watch?v=p_pNYxPFVPQ& ;t=16s

2.      Невидимые области модели. Изначально моделил так, что все детали были толстостенными. В ZBrush лично мне так удобнее с геометрией работать. И при первой развертке в нее попало много невидимых частей, что, естественно, сожрало полезную площадь текселя. Поэтому я решил это двумя способами: часть стенок в максе впоследствии вообще удалил, часть при ручной развертке упаковал до незначительного размера и спрятал в угол. И, естественно, это просто оптимизация модели, над которой я не подумал вначале.

3.      Тексель. При низком разрешении текселя все косяки проявляются еще сильнее. Но в случае с Substance и такой небольшой моделью, как у меня, это не очень актуально, т.к. в Substance Painter разрешение текселя можно менять на лету от 128х128 и вплоть до 8К. Параметр Texture Set Settings – по сути это и есть разрешение одного текселя (если я правильно уловил суть). 4К полностью покрыло мои потребности по плотности пикселей на деталь, чтобы не были видны пиксели при достаточно сильном приближении. В общем-то даже не самая оптимальная развертка (с большим кол-вом пустого пространства) не особо помешала бы. Хотя лишними пиксели, естественно, не бывают. Про тексели и пиксели довольно доступно у этого же автора: https://www.youtube.com/watch?v=DmjP4gq5qYc& ;t=4s

4.      Запекание в Substance. Никакое объяснение не даст понимания лучше, чем самостоятельные эксперименты. Если необходимо, как в моем случае, запечь все текстуры на одну карту, то моя практика показала, что на качество и кол-во артефактов не влияет запекались ли они сразу в одну карту или же если их сначала печь по отдельности на разные карты через разные текстурные сеты. Во всяком случае на своей модели я разницы не увидел. Естественно, развертка всех элементов должна быть предварительно подготовлена таким образом, чтобы все они при склейке ложились в один тексель без наложений/пересечений. И главное, во что я очень долго врубался, это то, что, по сути, один текстурный сет – это один материал. Т.е. если вы загружаете в Substance модель, на которой два материала с разным ID, то получаете два текстурных сета, на которых можно независимо друг от друга рисовать, включать/отключать и на которые вы получите разные текстурные карты. 3 материала – 3 сета и т.д. Уроки на русском, которые мне помогли лучше разобраться в матчасти:

https://www.youtube.com/watch?v=aA8oXL1gzOQ 

https://www.youtube.com/watch?v=Ez7ZqxHp00I 

5.      Группы сглаживания. Часть артефактов, во всяком случае мне так показалось, удалось минимизировать за счет предварительной настройки групп сглаживания. Хотя бы подчеркнуть очевидные ребра на модели  (Smooth в режиме авто достаточно в большинстве случаев).    

Еще уроки по Substance Painter (на английском), которые мне очень понравились: https://www.youtube.com/playlist?list=PLkzopwqcFevYLqzU5eUZSFzyidouqwSQP 

И последнее, что еще добавлю: при наложении материалов некоторые нюансы, которые хотелось еще подправить стали совсем незаметны, поэтому при исправлении таких косяков, нужно тоже отдавать себе отчет в целесообразности этого. Это все, чем я хотел поделиться, надеюсь, кому-то пригодится мой опыт. Вымученную модель AirMax 97 скоро выложу в базу. Скрин с разверткой, на которой в итоге остановился и предварительные рендеры модели также прикладываю.  

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Цитата kophysty:
И главное, во что я очень долго врубался, это то, что, по сути, один текстурный сет – это один материал.

Нет. Сет это сет, а материал это материал. Вы можете в один сет запаковать сколько хотите материалов и разделять их по маске. Т.е в одной текстурной карте могут быть области(шеллы) с совершенно противоположными характеристиками.

Ещё по поводу запекания. Для гарантировано хорошего результат необходимо, перед запеканием, лоу-поли меш триангулировать вручную. В противном случае, автоматические алгоритмы триангуляции будут давать разный результат в разном софте, что приведёт к артефатам.

kophysty
Возраст:
Пол: М
На сайте c: 28.05.2015
Сообщения: 102
Откуда: Москва
Цитата dontpiter:
Цитата kophysty:
И главное, во что я очень долго врубался, это то, что, по сути, один текстурный сет – это один материал.

Нет. Сет это сет, а материал это материал. Вы можете в один сет запаковать сколько хотите материалов и разделять их по маске. Т.е в одной текстурной карте могут быть области(шеллы) с совершенно противоположными характеристиками.

Я хотел сказать, что материал, наложенный в максе при экспорте дает сет в Painter. А внутри сета, да, может быть сколько угодно материалов Substance. Именно так я работал со своей моделью - по карте, которая была в ХайПоли модели. Но это уже другая история, как мне показалось, которую я сюда решил не приплетать.   

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Цитата kophysty:
Я хотел сказать, что материал, наложенный в максе при экспорте дает сет в Painter.

Да, это один из способов идентификации элементов меша. Есть ещё метод  - по vertex paint. Задаёте в максе каждому элементу разные цвета вертексов, а потом в сабстансе генерируете маску. Этот метод больше подходит для небольших моделей. Резделение на сеты нужно для больших моделей и сцен, когда приходится работать с UDIM-развёркой.

Skorpionchik
Возраст: 32
Пол: М
На сайте c: 25.02.2009
Сообщения: 1549
Откуда: Kyiv
Цитата dontpiter:
Нет. Сет это сет, а материал это материал. Вы можете в один сет запаковать сколько хотите материалов и разделять их по маске. Т.е в одной текстурной карте могут быть области(шеллы) с совершенно противоположными характеристиками.

Ересь) то что вы имеете ввиду, это просто разные слои. Вы разделяете материалы по типу (метал, пластик, дерево). Но по сути автор парвильн онаписал, один сет это один материал. Есть сет текстур (нормалка, дифуз и т.д.), есть шейдер, все это вместе создает материал, который ложится на меш по ЮВ.

kophysty
Возраст:
Пол: М
На сайте c: 28.05.2015
Сообщения: 102
Откуда: Москва
Цитата ZentexFX:
У меня такая же дичь только похуже, развёртку вертел на трубе как хотел а ничего не вышло�http://prntscr.com/q07rc4   

В вашем случае не совсем понятно, что дано. По первому взгляду на скрин есть ощущение, что проецируемая модель сильно отличается по форме от той, на которую происходит запекание. Как минимум внутри обоих объектов есть разные по форме противоречащие друг другу элементы.

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Цитата Skorpionchik:
Но по сути автор парвильн онаписал, один сет это один материал. Есть сет текстур (нормалка, дифуз и т.д.), есть шейдер, все это вместе создает материал, который ложится на меш по ЮВ.

Нет. Вы не понимаете как работает PBR. Текстурный сет в сабстансе это просто способ разделения текстурных координат модели для удобства работы в UDIM. Чтобы не приходилось создавать текстур гигантского разрешения. Небольшие модели(типа кроссовок) модели, не требующие текстур большого размера, вообще не нужно делить на сеты - это только плодит лишние файлы на диске. Шейдер у вас один - тот который вы выбрали при старте проекта. Слои - это просто данные, которые идут на вход шейдера, это и есть материалы по сути. Тесктурный сет - менеджер этих данных. Он отвечает за то, как материалы будут распределены на UV. На выходе вы получаете набор карт. В сете может содержаться сколько угодно материалов. Даже если сет у вас всего один.

Автор впринципе мог не морочиться с сетами а просто клость материалы по полигруппам. сабстанс поддерживает плигруппы из браша

Skorpionchik
Возраст: 32
Пол: М
На сайте c: 25.02.2009
Сообщения: 1549
Откуда: Kyiv
Цитата dontpiter:
Нет. Вы не понимаете как работает PBR

Конечно я не понимаю, я вообще новичек в 3д, всего 4 колды сделал...)))

Цитата dontpiter:
В сете может содержаться сколько угодно материалов.

В максе, мармосете или любом другом софте Вы накинете один материал и загрузите в него один текстурный сет.

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Цитата Skorpionchik:
Цитата dontpiter:
Нет. Вы не понимаете как работает PBR

Конечно я не понимаю, я вообще новичек в 3д, всего 4 колды сделал...)))

"Век живи - век учись!" (с)

jjunny
Возраст:
Пол: М
На сайте c: 18.11.2014
Сообщения: 175
Откуда: Таджикистан
Цитата kophysty:

а не лучше было б разделить на 2-3 UDIMs вместо одной неайсовой uv, чтоб и тексели в пропорции и текстуры бы круче вышли в качестве, да и удобней работать в пейнтере имхо

Skorpionchik
Возраст: 32
Пол: М
На сайте c: 25.02.2009
Сообщения: 1549
Откуда: Kyiv

У Вас и сейчас ЮВ очень не оптимальна, пустого пространства процентов 30, можн овсе увеличить и упаковать плотнее. Но по хорошему нужно с геометрии начинать, можно развернуть до десяти крупных ЮВ шеллов и запечь все на нормалку, тогда и текстуринком будет как надо.

А сейчас даже не совсем понятно зачем вы пеинтер используете, то же самое можно было сделать в максе, набросив с десяток материалов на ассет.

2-3 UDIM и вес текстур увеличит в 2-3 раза.

Кстати, а каков окончательный результат вы хотите получить?

dontpiter
Возраст: 42
Пол: М
На сайте c: 16.03.2016
Сообщения: 1334
Откуда: Москва
Цитата Skorpionchik:
В максе, мармосете или любом другом софте Вы накинете один материал и загрузите в него один текстурный сет.

Вот при чём тут макс? В PBR материал описывается набором текстурных карт. Сабстанс материал - это просто архив с картами и всё.  В сабстансе в сет я могу напихать сколько угодно и каких угодно карт. Попробуйте это провернуть в максе.

Даже я неправильно говорю - напихать. Ключевая разница в том, что материал а максе и в мармосете получает данные из карты, а текстурный сет в сабстансе эти данные создаёт на основе того что вы положите в слои. Создаёт карты, котрые вы потом экспортите на диск. Так что, если сравнивать, то аналог материала это слой)

Skorpionchik
Возраст: 32
Пол: М
На сайте c: 25.02.2009
Сообщения: 1549
Откуда: Kyiv
Цитата dontpiter:
Вот при чём тут макс? В PBR материал описывается набором текстурных карт. Сабстанс материал - это просто архив с картами и всё.  В сабстансе в сет я могу напихать сколько угодно и каких угодно карт. Попробуйте это провернуть в максе. Даже я неправильно говорю - напихать. Ключевая разница в том, что материал а максе и в мармосете получает данные из карты, а текстурный сет в сабстансе эти данные создаёт на основе того что вы положите в слои. Создаёт карты, котрые вы потом экспортите на диск. Так что, если сравнивать, то аналог материала это слой)

Вы сейчас говорите о движке рендера, а не о материале, в любом случае не мне с Вами спорить, делайте как знаете. Да и вопрос в теме не об этом.

kophysty
Возраст:
Пол: М
На сайте c: 28.05.2015
Сообщения: 102
Откуда: Москва
Цитата Skorpionchik:

Кстати, а каков окончательный результат вы хотите получить?

Я уже получил результат, который хотел. 

Моделька прошла модерацию, так что кому интересно - теперь ее можно скачать. Лайки приветствуются)

https://3ddd.ru/3dmodels/show/krossovki_nike_air_max_97  

Читают эту тему: