среда, 28 декабря 2011 г.

Hi Poly. WIP-4. О картах

Насколько вы знаете, этап снятия карт занял у меня довольно много времени. Не потому что они как то долго снимались. Нет!
Просто, мне нужно было найти оптимальный для меня способ снятия карт с высокополигональной зибрашевской модели в 30 миллионов полигонов.

Я была в отчаянии, когда вдруг в один вечер 3 человека( не знающих друг друга) произнесли одну и туже мысль -- разбить лоуполи по частям и снимать на отдельные части карты, с последовательной сборкой их в Фотошопе!
Спасибо каждому из них за совет, потому что это сработало!




Итак, у меня была готовая лоупольная модель с юви развёрткой. ( не забудьте применить к ней Soften Edges)



Я разбила эту модель на части, которые соответствовали Shell-ам на uv развёртке.
(выделила шел, конвертнула в полигоны, extract и separate-- получила отдельную геометрию, которую экспортнула в obj) . Все отдельные части я положила в отдельно созданную папку -- Low Poly parts.


Хайпольную модельку в ZBrush я оптимизировала Desimation Masterom ( причём оптимизировала каждый сабтул в отдельности, а не всю модель целиком. Такой способ мне показался наиболее корректным)

В итоге я получила модель в 7 с лишним миллионов полигонов вместо 30 миллионов.

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


Каждый subtool был экспортирован в obj в отдельную папку -- Hi Ploy (имена файлам лучше давать на английском. Не обращайте внимание на УСЛОВНЫЕ имена файлов, которые дала сабтулам я)))


Настало время открыть XNormal, программу, о которой я слышала много хороших отзывов и мне очень хотелось с ней познакомиться поближе.
Вообщем, мне хватило пересмотреть несколько туторов на их официальном сайте, чтобы понять что Это за программа и как с ней работать. Во время работы над моделью я узнала о таком понятии как cage ( спасибо Ripper-у! )

Следует с этим внимательно разобраться каждому, кто собирается снимать карты в XNormal.
Разберётесь -- поймёте. Но и cage я научилась настраивать довольно неплохо. ( это можно сделать двумя способами в XNormal:

1. Отрегулировать величину Ray Distance в закладке Tools.



2. Отрегулировать вручную значение Cage с помощью бегунков в закладке 3D Viewer--Launch Viewer ( Не забудьте записать настроенные meshes в *sbm формат)


да! Так вернёмся к картам.
Сначала мне нужно снять Normal Map.

Я открываю XNormal и иду в вкладку High Definition-- там я загружу часть хайпольной геометрии с которой буду снимать карту.

RMB на строке-- Add Meshes


Открываю папку с хайпольной геометрией, которую я создала из сабтулов в ZBrush и выбираю нужный мне mesh.


Увеличиваю mesh Scale На нужное мне значение. ( ZBrush экспортит в маленького размера геометрию, с которой трудно снимать карты, поэтому мы увеличиваем её размер) В моём случае, мне рекомендовали 100.


Затем загружаем Low Poly геометрию. Идём во вкладу Low Poly Definition Meshes и выбираем из папки с лоупольной геометрией соответствующий mesh , на который мы будем проецировать Normal Map.




Для Low poly выставила Average Normals И поменяла размер меша на 100

Перешла во вкладку Baking Options

тут задала размер текстурной карты, выбрала формат и папку, куда будет записываться карта, выбрала тип карты ( Normal) которую будем прожигать.




Edge Padding-- это дополнительное место к шелу ( вокруг шела) при снятии карты.

Bucket Size -- это размер обрабатываемой поверхности при прожиге.
( можно увидеть его работу в момент рендеринга карты в отдельном окне.

Жму Generate Maps.
Получаю отдельную карту для куска лоупольной модели


Таким образом, карта за картой, я создаю отдельные карты, которные потом просто собираю в Photoshop в одну карту.

получаю в итоге вот такой результат




СЕйчас я уже с улыбкой смотрю на свою первую полученную в XNormal карту нормалей.


Затем я конвертнула карту нормалей и создала Cavity map.
Она пригодится мне для работы над диффузной картой.


При снятии Cavity и Ambient Occlusion maps мне очень помог вот этот урок.

В итоге у меня были ещё две новых карты -- кавити (EMB и EDT)

Ambient Occlusion карта снималась по такому же принципу как и Normal карта -- по частям и потом собиралась вся карта в Фотошопе.

Все карты готовы. Собираю в один фотошоповский файл и начинаю рисовать дифузную карту -- текстуру.



Самая сложная для меня задача -- снятие карт выполнена !


Продолжаю работать над текстурой!

55 комментариев:

  1. Хорошо сняла карты! Текстурка тоже хорошо смотрится!

    ОтветитьУдалить
  2. лет через 5-10, когда придет pTex, новички будут со священным ужасом читать перед сном такие уроки :)
    Я хоть и не занимаюсь таким картоснятием, но в действительности выглядит так, как будто можно ускорить процесс. Майка, зБраш, хНормал, Фотозад... не многовато ли софта для лоу-поли?

    ОтветитьУдалить
  3. Лоуполька лоупольке рознь.
    Помните те мечи, которые я делала? Тоже ведь лоуполи, а за день могла 2 модельки сделать с текстурами.

    тут же совсем другие задачи и стиль.
    Майка, зБраш, хНормал, Фотозад...
    Можно было обойтись по идее одним брашем.. но такого качества как я получила я бы в Браше не достигла с моим опытом работы.. поэтому пока только так :)

    ОтветитьУдалить
  4. привет Ветса вот ссылка на кучу текстур человека
    http://rutracker.org/forum/viewtopic.php?t=3214051

    ОтветитьУдалить
  5. Извините пожалуйста! Так долго разбираюсь с этой проблемой, не могли бы вы мне поподробнее ответить на несколько вопросов по снятию карт??? а то еще ниодной не получилось снять( Спасибо большое заранее!

    ОтветитьУдалить
    Ответы
    1. Привет!
      Давайте вопросы, потому что пока не понятно что у Вас не получается? я вроде бы всё подробно расписала, как я снимаю карту )

      Удалить
  6. Смотрите, я делаю так, в Zbrush делаю модель, высокополигональную, ну пока у меня получается неочень но не суть) сделал модель, делаю ретопологию и перегоняю в maya низко полигональную, делаю развертку, как правило просто автоматическую допустим на всю модель накидываю, потом кидаю модель с разверткой в браш и с хай поли на лоуполи просто проецирую и тут уже вывожу карту, но проблема в том что у меня куча стыков появляется на модели, а еще когда близко приближаешь модель, какая то ступенька как в фотошопе появляется при резком переходе цветов, будто моя модель состоит из маленьких пиксилей, короче швы и плохое качество карты какое то( я вот думаю, важно ли какую делаешь развертку?

    ОтветитьУдалить
  7. трудно сказать не видя что у вас там получается.. но меня удивила автоматическая развёртка )) это как? модете показать ювишки что у вас получились в итоге? скрин хотя бы. а вот по поводу пикселей --не знаю... может антиализинг надо включить где то? вы карты снимаете в браше? или в xnormal?

    ОтветитьУдалить
  8. Я вот сейчас по вашему уроку кстати более менее получилось, я правильно делаю, карту нормал мап кидаю в бамп слот и выбираю tangent space normals? вот во вьюпорте смотрится вроде бы ничего так, нажимаю рендер, как то жестко выдавливает нормал мап, не мягко, а прям очень...тут какртинки не послать(((

    ОтветитьУдалить
  9. бамп -- его глубину можно настроить в атрибутах. depth
    картинку можно залить на сайт ( например radikal.ru) и выслать мне ссылку.

    ОтветитьУдалить
  10. http://rghost.ru/38557131 вот, в строку скопировать надо, ну мне кажется плохо как то(

    ОтветитьУдалить
  11. посмотрела картинку. ощущение что дивайдить модель слева ещё надо -оттого у вас зубцы на деталях и получаются. они ж и на карту проецируются.. справа --не совсем поняла -- что это?

    ОтветитьУдалить
  12. да это шлем ) еще дивайдить??? у меня на 7 уже, а еще больше дивайдят???

    ОтветитьУдалить
  13. 7 ой уровень???? выглядит так как будто 3 или 4 уровень.. при 7 ом не долждно быть таких рубцов там где выдавлены детали.. странно это очень

    ОтветитьУдалить
  14. короче у меня вообще теперь еще и сломан ZBrush похоже) что за невезение) ну всеравно спасибо))))

    ОтветитьУдалить
  15. а подскажите еще пожалуйста, в какой программе вы делаете развертку???)

    ОтветитьУдалить
  16. в Maya?оО ничего себе, мне показалось в UVLayout, так ровненько всё, чтоб в майа так разрезать это же вечность надо потратить, я пробовал как то выделять луп из ребер потом Кут Эйджес и Unfold, так он раскраивает нормально но одна часть больше другая меньше, а у вас тут вообще шедевр)

    ОтветитьУдалить
  17. напишите пож урок по развертыванию в майа, вот подобного персонажа! Я ради такого даже заплачу!!! правда!)

    ОтветитьУдалить
  18. у меня сейчас на это просто нет времени... простите. Извините, мне надо работать.

    ОтветитьУдалить
  19. 30 миллионов? и они открылись у тебя на компе?
    сколько у тебя оперативки? у меня при 4 миллионов мая отзываться вообще перестаёт

    ОтветитьУдалить
  20. Здравстуйте, спасибо за урок, помогло. Вроде, все получается, но столкнулся с одной проблемой, шев на карте нормалей. Снимаю в xnormal с хайполи вместе с картой диффуза.
    Только с картой диффуза шва не видно, а вот при включении бампа на месте стыка uw становится видно шев и причем сильно. Рендерю в 3д максе, нормали закидываю через Normalbump, блюр у бмпшки убираю на минимум. По идее, шва не должно быть, ведь снимается с гладкой хайполи модели. В чем может быть дело, не подскажете?
    Карта нормалей почти без артифактов, на месте разреза их нет, по крайней мере:

    http://cs419217.vk.me/v419217110/7682/QfmtPHtPUtE.jpg

    Рендер:

    http://cs419217.vk.me/v419217110/7692/LEOlfVXvan4.jpg

    ОтветитьУдалить
    Ответы
    1. Здравствуйтею
      Однозначно сложно сказать. Попробуйте выделить ейджи на стыке и сделать им Softer edges ( то есть смягчить нормали)
      Как это сделать в Максе, к сожалению не знаю.
      и ещё как вариант попробуйте смягчить все нормали у лоупольки, на которую запекаете нормал карту.

      Удалить
    2. не, тут все сложнее, похоже. xnormal неправильно пережигает высоты, отчего на стыке ув они получается просто разными, это видно если карту нормалей ставишь в канал цвета. Единственная мысль, что с координатами что-то не так, из-за переходов по программам, отчего теперь нужно как-то особо настроить в хнормале x+ y+ z+ на другие, может, вообще местами поменять. Нашел что для моделей из макса нужно ставить y-. Хотя мне не помогает, но, возможно, проблема здесь

      Удалить
  21. ужас, замучился разбираться. В общем, если вдруг, для 3д макса должно быть выполнено два условия, чтобы шва на uv разрезе не было видно:
    1. гамма в программе должна быть выставлена на 1
    2. нужно в настройках нормалмапа отразить зеленый канал.
    Невыполнение одного из них, либо обоих вместе ведут к видимому шву. Решение, как обычно, простое, но ни в одном месте Интернета не написано, что нужно именно оба этих момента поставить. Поэтому и экспериментировал либо с одним, либо с другим (не говоря о массе других совершенно бесполезных советах) и не имел результата. А еще прикол в том, что я экспериментировал с этим, засунув карту нормалей в канал диффуза и пробовал там же, но там даже с обоими условиями края uv-координат не сходятся, только в канале бампа.
    Хотя вам, наверно, это не особо имтересно )

    ОтветитьУдалить
    Ответы
    1. Про настройку зелёного канала я слышала, я просто не думала, что это может дать шов. Буду знать на всякий случай, если вдруг столкнусь с Max.
      Гамма программы на 1. Что это? Где это? и что это даёт?
      пока не совсем понимаю о чём речь.

      Но интересно.

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

      Это опыт. Бесценный.
      Вот про гамму в программе на 1 -- хотелось бы узнать.

      Удалить
    2. мм, с картой нормалей-то разобрался, но теперь проблема в cavity map, которую я делаю с карты нормалей EMB и EDT по указанной методике. Гамма... я так понял, вы не работаете в 3д максе, иначе бы знали ) Там это Rendering/Gamma/LUT Setup.
      А мне пришлось уже залезть в разные тонкости, но с кавити это не помогло. В общем, если вставляем карту нормалей в канал цвета, видим следующую картину:
      http://www.render.ru/forum/images/upload/2104072.jpg
      вид такой из-за того, что канал нормалей использует какой-то другой просчет координат (Tangent space/Object space - первый из них, как использовать правильно второй и можно ли из него сделать кавити - не разобрался). В канале цвета это выглядет вот так, но когда вставляешь эту карту в канал бампа, этих швов нету и все выглядет хорошо. Содержимое карты как-то иначе в канале нормалей раскладывается по uv-развертке. Не так как в канале цвета. Я это так понял. А вот когда из карты нормалей делается кавити, это должно учитывается и как-то пересчитваться, чтобы она правильно легла в канал цвета. Вот как я это понял, потому что один и тот же результат наблюдал в 3д максе и в Майе и в Збраше.
      Но моя новая проблема: при создании карты кавити из карты нормалей пересчета не происходит и виден резко шев. Примера нет, но это будет тот же вид, что и картинка выше, только черно-белая ). Облазил весь инет, решения не нашел, писал на сайт разработчикам, но они мою тему почему-то тупо удалили )
      В итоге мучений я понял только, что это как-то связано с развертой uv. когда моя развертка, скажем, рубашки, имеет всего один шев сзади, cavity получается отличная. Когда развертка состоит из двух частей, скажем, та же рубашка, но разрезанная на две части, на одной из частей что-то происходит не так и она получается как бы инвертированной, из-за чего становится виден шев. Хотя пробовал даже вручную инвертировать вторую часть - не помогает.
      Надеюсь, объяснил понятно ) Вот такая странность. Если делаю развертку вещи из одной части, проблем нет, если из двух или более, на кавити появляются швы. Делал бы "литую" развертку, но не для всех предметов одежды это возможно.

      Удалить
  22. пока пришел только к выводу, что xnormal при пересчете карты cavity делает какие-то ошибки, если uv-развертка состоит из нескольких частей (передняя часть рубашки и задняя, разрезанные по бокам). Как с этим справиться - не понятно :(

    ОтветитьУдалить
  23. Этот комментарий был удален автором.

    ОтветитьУдалить
  24. Еще самое забавное, что корявая карта кавити делается только из карты нормалей. А вот если ее запекать отдельно как карту с хай-поли (в baking options галочку) как и оклюжен, никаких швов нету ))

    ОтветитьУдалить
  25. По картинке я вижу что шов сделан с наружной стороны брюк.
    я стараюсь всегда делать шов внутри.. чтобы как раз спрятать швы, если они есть...
    По поводу запекания кавити из нормала.. у меня таких проблем нет..
    Но соглашусь с тем что швы много зависят от развёртки--это да.

    ОтветитьУдалить
  26. Да там не просто шов, там явно криво пережглось, высоты на краях шва как будто вывернуты. Если пихнуть ее в канал нормалей, то скорее всего (ибо пример не мой, но аналогичный) на рендере проблем не будет (проверял подобные случаи), а вот в диффуз явно не пойдет, как и кавити из нее вряд ли будет нормальной (хотя тут тоже не угадаешь). И отдельные каналы RGB из не для улучшения карты цвета в фотошопе тоже не испльзуешь... Пробовал.
    А вы сами пробовали ставить полученную карту нормалей вместо канала бампа (не помню как в других, но в 3д маске это канал бамп) ставить вместо текстуры? Очень удивлюсь если швы сойдутся, у меня ни разу не сходились. хотя делаю все, вроде как, правильно. Попробуйте из любопытства, сначала поставить карту нормалей в бамп, проверить, видно ли швы, а потом ее же сунуть в цвет )

    ОтветитьУдалить
  27. Пробовала на днях. Согласна что если нормалку в бамп перевести и положить отдельным слоем в диффуз-- как раз то о чём вы говорите и получается-- шов очевиден.
    Вот странно, как его избегает Данил Соловьёв, который рассказывал об этом способе внедрения Нормалки в диффузку на НОДЕ ?

    потому я этот шов внутрь прячу и дорабатываю руками... А вообще, это не выход конечно... я так понимаю, не каждую нормалку так можно сделать.

    вот если узоры например рельефные надо положить-- то да, а на одежде --не сработает-- будет шов.

    ОтветитьУдалить
  28. я постараюсь сделать выписку тех карт которые я делаю и покажу как они у меня получаются и как я с ними работаю. Так наглядней будет.

    Не обещаю что прям на днях, но сделаю. Есть такое желание.

    ОтветитьУдалить
    Ответы
    1. спасибо, а что за споособ внедрения нормалки Данила Соловьева? Не встречал
      Если я правильно понял, нормалка использует систему просчета tangent space, а диффуз object space - в этом все дело. При переводе нормалки в кавити, происходит пересчет этих систем, так что на кавити не видно шва. Обычно. Но в моем случае почему-то этого перевода систем координат не происходит. Думаю, разве что поискать другой тангент калькулятор для xnormal (там можно сменить, но на выболре только один по умолчанию). Карту нормалей можно делать и сразу в object space, она тогда выходит без швов в канале диффуза, но с ней все странно ) Да и кавити делается только из нормалки в системе tangent.
      Вот в какие дебри пришлось залезть в поисках решения, но пока все равно без толку )

      Удалить
  29. также в xnormal есть конвертер специальный для перевода карты из тангент спейс в объжект и обратно, но карта в объекте выглядит вообще иначе и толку от нее для текстуры никакого, но шов да, шов пропадает )

    ОтветитьУдалить
  30. еще пробовал две проги для создания кавити из нормалки crazybump и nDo - но там шев также есть. Что странно. Кстати, хорошие проги, интересные карты делают, например nDo оч понравилось как карту оклюзий делает (http://www.3dmir.ru/s_tutor/tutor/652.html) да и крейзи бамп имеет интересные функции по изменению карт, выделению деталей и т.д. хотя, может уже сталкивались.
    Но пока я не решу своей проблемы со швом от них мне толку немного )
    Грешил на развертку или на прогу для развертки uv-layout, но развертка в других программах также дала шев. Пока единственный метод решения делать всего один шов в одной плоскости, но на многих объектах это невозможно

    ОтветитьУдалить
  31. а еще я почему-то пишу шов то через е, то через о )) Знаю, что правильно через о, но отчего-то пальцы упорно печатают е, сорри О_о

    ОтветитьУдалить
  32. нашел только http://www.render.ru/books/show_book.php?book_id=1670
    В целом не увидел на модели монолитных частей, на которых мог бы получиться заметный шов, т.е. вроде, везде можно пустить шов на соединение элементов брони, где он не будет виден. Вроде.
    Как последний вариант всегда можно вернуть модель в збраш, наложишь, и там избавиться от всех швов, хотя я очень не хочу так делать, потому что, вроде, можно как-то получить нормальную савити и без этих изощрений )

    ОтветитьУдалить
    Ответы
    1. Я тоже разрезы делаюи на соединении деталей, и на внутренних поверхностях.

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

      Удалить
  33. да, а вот, например, простые элементы одежды, типа майки, рубашки? Их в один шов никак не сделать часто.
    Кстати, корень проблемы, вроде нашел, с помощью инфы 4.4.1. в статье http://dtf.ru/articles/print.php?id=52070

    ОтветитьУдалить
    Ответы
    1. Давно видела эту статью но так ни разу от начала до конца её не прочла.. Похоже, надо будет разбираться с ней.. потому как все эти тангенсы всегда меня в ступор вводили.

      За ссыль --спасибо.
      да,надо будет почитать снова.

      Удалить
  34. Привет! Твой блог как всегда выручает)) Хочу описать небольшую проблемму с которой столкнулась и которую решила, вдруг кому пригодится. Извини, если повторю то что уде где-то в окмментах написано. Когда запекаешь нормалку для hard-surface иногда появляется градиент. Нормалка выглядит как радуга. Это связано с установкой Smooth shade all на модели Maya. Чтоб получить нерадужную номалку нужно при подгрузке лоупольки поменять в ее свойствах параметр для колонки Smooth Normals на Harden normals. И радуга уйдет.

    Творческих всем успехов и приятных праздников!

    ОтветитьУдалить
    Ответы
    1. Привет Маша!)
      Спасибо)
      а что значит --радужная нормалка?

      Удалить
    2. Проверила.
      Всегда использую Average normals
      http://s019.radikal.ru/i621/1401/47/29a2f5b307d7.jpg

      Удалить