Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Запекание карт нормалей, АО и всякое такое.

Любые вопросы связанные с 3D моделированием, работой в Photoshop

Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 18.11.2016, 23:25

И так, попробуем разобраться с тем, что вы хотели знать о нормалях, но боялись спросить.
Я не буду описывать теорию карт нормалей и их запекания, просто дам пару ссылок чуть позже. Показывать куда ткнуть мышкой, чтобы получилось красиво, тоже не буду - видеотуториалов очень много.
Для запекания нормалей не нужно обладать талантами или какими то глубокими знаниями. Даже наоборот, весь этот PBR придуман для того, чтобы любой человек, едва научившись читать, мог делать 3Д и текстуры высокого качества. Вопрос только в потраченном времени. Для меня вполне очевидно, что для человека, производящего 3Д контент, лучше посредственно уметь запекать и генерировать текстуры, чем хорошо рисовать или работать с фототекстурами. Но на этом пути PBR есть множество нюансов и особенностей, которые зачастую не очевидны, но позволяют экономить нервы, время и получить вполне приличный результат. Конечно, я тоже мало чего знаю и умею, но небольшой опыт у меня есть, что-то я продумывал сам, что - то советовали опытные товарищи, что - то я читал. Потом осмыслял и применял. И чуть позже я покажу эти моменты, чтобы другим было проще освоить эти технологии. Может быть и вы сможете поделиться своими наработками.

Что касается теории - почти всё написано здесь: http://render.ru/books/show_book.php?book_id=3033
В общем - тут наиболее полное описание на русском языке с кучей примеров, с разбором ошибок.
Есть ещё полезная статья о лоуполи моделировании вообще и запекании нормалей в частности: http://render.ru/books/show_book.php?book_id=3790

Если совсем кратко. Мы создаём игровую лоуполи модель с UV развёрткой, затем из неё делаем хайполи модель. Для неё UV развёртка не требуется. Затем запекаем на лоуполи модель карту нормалей с хайполи модели. Таким образом, нормали полигонов лоуполи модели заменяются на нормали с хайполи модели, что делает нашу игровую модель более сглаженной. После запекания карты нормалей, мы можем эту карту отредактировать, добавив, например, заклёпки или болты. Затем применяем эту карту нормалей к нашей лоуполи модели и запекаем с неё ambient occlusion map (АО - карта затенения), cavity map, curvature map - последние две карты не идут в игровой движок, а являются вспомогательными для программ процедурного текстурирования типа substance painter или quixel DDO. Да, ещё уточнение - я говорю только за моделирование техники. Растительность, одежда и прочее имеет свои особенности, но я этого не знаю :)

Добавлено спустя 26 минут 7 секунд:
И так - первый момент. Зачем вообще нужно запекать карты нормалей? Для техники - это визуальное сглаживание острых углов, имитация фасок. Модель приобретает вид, близкий к хайполи модели.
Посмотрим, как это выглядит
Итак, есть модель колёсной пары для ужд. Модель сделана по чертежу
Изображение
Изображение
Модель имеет 1316 треугольников. Кстати именно количество треугольников, а не полигонов имеет значение для игрового движка. В общем, моделька средняя по детализации.
Вот её вид без подсветки ребер. Конечно можно переназначить группы сглаживания, но мы не будем этого делать.
Изображение
Как видно по чертежу, колесо цельнолитое с плавными закруглениями, с отсутствием ярко выраженных ребер.Так же есть фаска по линии сопряжении боковины обода с беговой поверхностью. Это как раз тот случай, когда карты нормалей сильно нам помогут
UV развёртка:
Изображение
Дальше делаем заготовку хайполи модели под турбосмус. Подробности будут позже:
Изображение
Ну и применяем модификатор турбосмус с 4-мя итерациями:
Изображение
Моделька хороша, на миллион треугольников колёса. Здесь размер фасок увеличен против реальных, но в игровых движках фаски будут выглядят обычно меньше чем в максе.
Дальше запекаем с красивой модельки карту нормалей и применяем её на игровую модель:
Изображение
Как видим, наша первоначальная моделька на 1316 треугольников похорошела
Изображение

Именно сглаживание модели и является основной целью запекания карт нормалей с хайполи моделей. Второстепенные цели - повышение детализации дополнением заклёпок, болтов, выштамповок, имитации фактуры литых деталей и прочего, хотя часть из вышеперечисленного проще рисовать на карте нормалей. За сим пока всё. Позже разберу по шагам как это всё делалось.
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение le Sandro » 19.11.2016, 06:19

Тему закрепил.
В свете нового геймдева будет весьма полезна.
Аватара пользователя
le Sandro
 
Сообщения: 1971
Зарегистрирован: 30.03.2005, 00:14
Откуда: Пенза
Благодарил (а): 703 раз.
Поблагодарили: 493 раз.
Блог: Просмотр блога (2)
Играю в: RailWorks
Роль: Разработчик

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 22.11.2016, 12:30

Закончим с определением целей для запекания карт нормалей. В принципе, на каждой модели мы должны определить для себя эти цели, так как именно эти решения определяют что именно будет делаться на высокополигональной модели. На нашей колесной паре существуют и дожны быть на карте нормалей скругления и фаски, отверстия в диске колеса, проточки под подшипники, возможно фактура литья на диске колеса. Всё из этого, кроме скруглений и фасок, легче и быстрее добавлять непосредственно в текстуру. Фаски и закругления нарисовать в карте нормалей или крайне сложно или невозможно. А смоделить их довольно просто. Поэтому мы именно их запекаем, остальное дорисовываем. При работе над тележкой вагона, потребуется запекать в дополнении к фаскам и скруглениям штамповку на крышках букс, пружины, листовые рессоры и некоторые другие вещи.
Если вы моделите кирпичный дом, то очевидно что вам нет смысла запекать скругления. В тоже время, идея моделить каждый кирпич с неровностями и трещинками, с раствором в швах явно находится на грани безумия. Но замоделить и запечь на карту нормалей элементы карнизов, оконные рамы, элементы дверей и покрытие кровли (шифер, черепица) будет достаточно здраво.
Ну после того, как цели обозначены, присрупаем к процессу...
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 22.11.2016, 12:37

Фаски и закругления нарисовать в карте нормалей или крайне сложно или невозможно.


Для этого умный современный софт поддерживает инструментарий скульптинга. Так что - можно, но действительно нелегко. Проще порой смоделить. А вот для всякого рода балласта, камней и т.п. двевесной коры - лучше снять карту высот (например, в PixPlant), и по ней построить карту нормалей.


Подписался на месяц на Quixel, хочу поработать в лицензионной Megascans Studio. Ломаная не умеет строить собственные сабстансы из импортируемых карт - только работает со скачанными готовыми сабстансами. Там кривой JSON-генератор. Программка должна работать и при отключенной подписке - главное, чтобы имелся аккаунт Quixel.

Quixel Suite не покупал, пока не вижу в нем необходимости - он делает практически то же, что и Substance Painter, только в качестве плагина к фотошопу. Мне удобнее красить кисточкой и проекциями по модели, а не по ее текстурам (сабстанс умеет и первое, и второе, на выбор, а Pixplant красит только по текстурам с возможностью превью модели). Работаем!
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 22.11.2016, 13:09

Quixel suite vs Substance Painter это как 3Ds Msx vs Maya. В квикселе 3 плагина к фотошопу: ндо, ддо и 3до. 3до позволяет работать с 3д моделью и красить по ней. Ддо генерирует текстуры простых и составных материалов. Ндо самая годная вещь из комплекта - работа с картами нормалей.
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 22.11.2016, 13:33

Пока не попробую, насколько хорошо 3DO работает со сценой, ничего сказать на сей счет не могу. Но обе определенно хороши.

Substance Painter без проблем подгружает тепловоз с кучей иерархии и мульти-материалом впридачу. Что есть хорошо. Megascans Studio создает обалденные материалы с микрорельефом. Что тоже очень хорошо.
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 22.11.2016, 14:25

Я текстурил в ддо, но хочу изучить и попробовать субстанс пайнтер в этот раз. Но квиксель ндо точно буду использовать. Хочу также отметить, что к запеканию карт нормалей это не имеет прямого отношения, поскольку запеканиемпроизводиться в 3Ds Max. Хотя можно запекать и в Substance painter или xnormals. Но большая часть работы всё равно производится в 3д редакторе
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 28.11.2016, 21:21

Ну раз начали, то продолжим. И так, цели запекания определены, начинаем процесс...
Для запекания карты нормалей нам нужны две модели - низкополигональная (игровая) с UV развёрткой и высокополигональная, для которой наличие UV развёртки не требуется. Низкополигональная модель с её развёрткой приведены на скринах выше. Особых хитростей в ней нет, как впрочем и особой оптимизации. Единственное, что могу отметить - разбивка цилиндрических деталей на сегменты зависит от размера этих деталей. Для сохранения плотности сетки можно уменьшать разбивку на сегменты от обода колеса к его ступице. Для этого, а так же для простоты создания ЛОДов удобно делать количество сегментов из этого ряда: 4, 8, 16, 32, 64, 128, ... Но можно обойтись просто чётным числом, или числом, кратным 4.
Для создания UV развёртки основное правило для запекания такое: полигоны с разной группой сглаживания (SG), обязательно должны быть разделены на UV развёртке. Подробнее читайте по ссылке в первом посте. Несоблюдение этого правила даст артефакты на карте нормалей по ребру между полигонами c разными SG. Я гарантирую вам это.
Второе, что нужно сделать на развёртке - свести к минимуму количество полигонов с потянутой текстурой, избегать скачков текселя (плотности текселя). На скрине видно как тянется текстура на конической части ступицы:
Изображение
Вручную растягиваем вершины, сглаживая искажения:
Изображение
Добиваемся, чтобы на всей модели квадратики текстуры хоть издалека были бы квадратными.
Ниже отмечены полигоны, развёртка которых растягивалась ручками:
Изображение
Так же для удобства создания ЛОДов вокруг круглых элементов на развёртке оставляем пустое пространство, чтобы эти элементы можно было вписать в квадрат. Теперь о совмещении полигонов на UV развёртке. Совмещать полигоны крайне не рекомендуется. Но в некоторых случаях это оправдано, например для рамы вагона. Там можно совмещать и зеркалить внутренние поверхности профилей рамы. Здесь я совместил торцы осей, естественно не из за экономии места, а для того, чтобы проверить что из этого получится.
Теперь пара слов о текселе текстуры. Под этим обычно понимается в моделировании относительный текстель, т.е. количество пикселов на 1 метр модели. Исходя из планируемого текскеля, определяется размер текстуры. Для современных игр нормальный тексель около 400 пикс/м. Для колеса можно поменьше, для некоторых элементов можно и повыше. Для днища вагона можно 150...200 пикс/м. Для программ процедурного текстурирования желательно, чтобы тексель всех элементов текстуры был одинаков, хотя могут быть варианты. Я делал все элементы в одном масштабе и уменьшал их одновременно.
Теперь определяем разрешение текстуры. Прикидываем на глаз 512х512 и смотрим, что круг диаметром 600мм будет в этом случае занимать примерно 200 пикселов, что даёт нам тексель чуть больше 300 пикс/м, что нас устраивает. Точнее можно будет вымерять в Фотошопе. Исходя из разрешения текстуры, корректируем положение полигонов чтобы между ними оставалось минимум 10 пикселов и от внешних полигонов до края текстуры 5 пикселов.
Осматриваем нашу игровую модель и обнаруживаем маленький косяк - большие многоугольные полигоны на ступице колеса.
Изображение
Они нам могут подарить разные артефакты, поэтому разобьем эти полигоны на более мелкие. Можно просто провести параллельные рёбра, разбив большие полигоны на 3-х и 4-х угольные. А можно сделать вершины в центре и разбить на треугольники. Первый вариант не прибавляет количества треугольников в модели, но не очень удобен для создания высокополигональной модели и ЛОДов. Второй вариант добавит 8 треугольников к нашей модели, но сэкономит нам время.
Изображение
Торцы осей можно не разбивать, оставив как есть. Они отделены от соседних полигонов другой группой сглаживания и не дадут артефактов.
На этом с низкополигональной моделью мы заканчиваем, дублируем её и называем высокополигональной:)

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

Добавлено спустя 3 минуты 29 секунд:
Нарезаем цепочки поддерживающих рёбер, т.н. "лупы":
Изображение

Добавлено спустя 7 минут 40 секунд:
Тут, в принципе, всё понятно. Хочу отметить, что размер фаски делается значительно больше реального, так как в игровом движке фаска будет меньше.
Сами лупы делаются так: выбираем одно из рёбер, примыкающих к угловому ребру. Затем выделяем остальные в цепочке (ring/Alt+R или loop/Alt+L). Затем жмём Connect/ Shift+Ctrl+E, причём часто можно задать две цепочки ребер. Потом сдвигаем или масштабируем полученные лупы к краю полигона с включенной галочкой Constrains - Edge:
Изображение
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 28.11.2016, 21:46

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

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


Сам же пишешь - и сам же себе противоречишь.
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 28.11.2016, 22:08

Тут есть одна хитрость, сильно помогающая в нарезании лупов. Например, нужно быстро подготовить под сглаживание такую поверхность:
Изображение
Нет ничего проще! Выделяем ребра, жмём Connect:
Изображение
Потом включаем Constrains - Edge, сдигаем цепочку рёбер до упора, пока они не сольются с границей полигона, отпускаем левую кнопку мыши, затем, не снимая выделения с этой цепочки, сдвигаем её чуть обратно. Вуаля!
Изображение
Таким образом, пользуясь инструментом Connect, быстро и легко нарезаем цепочки ребёр, обозначая фаски. Инструмент Chamfer используем только там, где нужна настоящая фаска под углом. Естественно, рёбра вокруг этой фаски также обрамляем цепочками ребер. Назначаем модели одну группу сглаживания, результат контролируем периодически применяя модификатор TurboSmooth. Довольно быстро высокополигональная модель построена:
Изображение

Добавлено спустя 1 минуту 24 секунды:
Skif писал(а):Плоскости разбиваешь на торцах колес неправильно. Никаких вершин в центре быть не должно - просто расставь правильно группы сглаживания, и никаких артефактов эта плоскость не даст. Многогранник без центра всегда занимает примерно в полтора раза меньше полигонов, чем такой же, с треугольными сегментами.

Если отделить группой сглаживания, то и на текстуре надо разделять. Тогда центральную часть колеса придётся вытащить из колеса на UV развёртке, что плохо. Там вначале я писал про это:
Tractorist писал(а):Для создания UV развёртки основное правило для запекания такое: полигоны с разной группой сглаживания (SG), обязательно должны быть разделены на UV развёртке. Подробнее читайте по ссылке в первом посте. Несоблюдение этого правила даст артефакты на карте нормалей по ребру между полигонами c разными SG. Я гарантирую вам это.

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

Добавлено спустя 11 часов 37 минут 18 секунд:
Вот кстати Skif поднял интересную тему про количество полигонов. Без относительно запекания нормалей, расскажу про полигоны и треугольники чуть подробнее. Итак, нужно чётко понимать что при экспорте в любой игровой движок, модель разбивается на треугольники. Никаких полигонов не бывает ни в одной игре. Вообще даже в 3ДС Максе изначально тоже не было полигонов, была только editable mesh, которая состояла только из треугольников. Потом добавили editable poly для удобства моделирования. Но эти полигоны всегда разбиваются на треугольники при экспорте. Проблема как раз в том, что большой полигон может разбиться на треугольники так, что будут артефакты. Конечно можно смотреть и редактировать триангуляцию в специальном режиме, но 3Д Макс может пересчитать эту триангуляцию автоматом. Поэтому лучше добавить рёбра, они сами никуда не уедут. Так же в свете вышеизложенного очевидно, что количество полигонов в модели вообще никак не характеризует саму модель, а скорее показывает число сферических коней в вакууме, наблюдаемое из данной точки галактики и поделённое на дату рождения соседа напротив. Какие бы многоугольные полигоны вы не сделали бы, они всегда будут разбиты на треугольники. В связи с этим не очень понятно, откуда прозошла вера в количество полигонов. Но подозреваю что это прикол от создателей 3д Макса, которые сделали в статистике отображение количества полигонов по умолчанию, а многие моделлеры не знают/ ленятся переключить статистику на треугольники. Вообще треугольники vs полигоны довольно очевидная тема. Вряд ли кто- то даже попытается доказать что количество полигонов модели важнее количества треугольников в ней, или хотя бы как то связано с количеством треугольников. Но самое интересное в том, что при более полном понимании работы 3д в игровом движке открываются вещи менее очевидные но при этом не менее интересные. Например то, что количество треугольников в модели тоже лишь очень отдалённо характеризует тяжесть этой модели для игрового движка, ибо есть разные нюансы в алгоритмах обработки 3Д, которые могут по разному грузить видеокарту в одном движке даже моделями с одинаковым количеством треугольников. В связи с этим, подход к оптимизации модели не должен быть столь прямолинейным, как сокращение количества вершин/ треугольников. Про количество полигонов, понятно, даже можно не говорить.

Добавлено спустя 9 часов 42 минуты 44 секунды:
Закончим с лирическим отступлением на треугольники и вершины. В любом игровом движке смежные рёбра и вершины соседних треугольников, у которых разные группы сглаживания или по ребру проходит разрыв UV развёртки, дублируются. Количество треугольников в модели остаётся прежним, но количество вершин и рёбер возрастает, что тоже не есть хорошо для производительности. Поэтому лучше по минимому использовать разделение по группе сглаживания.

Добавлено спустя 13 минут 8 секунд:
Вот если взять вариант Skifа по борьбе с артефактами на центральном полигоне колеса с отделением его по группе сглаживания, то в 3д Максе всё отлично. Количество вершин и треугольников остаётся прежним. Но при экспорте в игру сразу добавится 64 новых вершины и 64 ребра. В моём варианте добавляется 8 треугольников , 4 вершины и 12 ребер. При этом Skif уверен, что в его варианте " в полтора раза меньше полигонов", что есть правда. Вот такая занимательная математика.
Это я пишу не затем, чтобы кого-то обидеть, или самоутвердиться, а чтобы показать, что в 3Д есть много тонкостей и не очевидных вещей.
Затраты ресурсов компа в игре на обработку модели зависят от количества треугольников, количества вершин и количества рёбер модели. При этом, как мы видим, количество треугольников тоже не является универсальной характеристикой модели.
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 29.11.2016, 21:27

от если взять вариант Skifа по борьбе с артефактами на центральном полигоне колеса с отделением его по группе сглаживания, то в 3д Максе всё отлично. Количество вершин и треугольников остаётся прежним. Но при экспорте в игру сразу добавится 64 новых вершины и 64 ребра. В моём варианте добавляется 8 треугольников , 4 вершины и 12 ребер. При этом Skif уверен, что в его варианте " в полтора раза меньше полигонов", что есть правда. Вот такая занимательная математика.


Чувак, ты пишешь фигню. Тоже без обид.

Ибо я тоже считаю только и исключительно в треугольниках. Считаем вместе:

Изображение


Точка в геометрическом центре полезна, когда создаешь от нее фаски или выдавливаешь поверхности вращения сложной формы. Но в конце от нее всегда нужно избавляться. Чем больше граней у "псевдоокружности", тем больше разница в числе треугольников при совершенно одинаковом числе граней полигона. Это я и имел в виду.
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 29.11.2016, 22:49

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

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


Сам же пишешь - и сам же себе противоречишь.

Ок, сделаю как ты написал, даже невзирая на артефакты при запекании карт нормалей. Просто расставлю правильно группы сглаживания.
Вот исходный вариант, возможны проблемы в центральной части колеса:
Изображение
1316 треугольников и 664 вершины
Второй вариант - мой, с вершинами в центре:
Изображение
1324 треугольника и 668 вершин, прибавилось 8 треугольников и 4 вершины
Третий вариант - как Skif предложил с правильно расставленными группами сглаживания:
Изображение
Тоже 1316 треугольников и 664 вершины, ничего не прибавилось
Кажется 3Д макс как бы показывает нам, что вариант 3 хорош. Теперь экспортируем в FBX:
Первый вариант:
Изображение
1316 треугольников и 1098 вершин
Второй вариант:
Изображение
1324 треугольника и 1102 вершины
И третий вариант:
Изображение
1316 треугольников и 1188 вершин
Т.е. первый вариант имеет потенциал по артефактам. А какой из последних двух вариантов лучше для игры? Ведь производительность зависит и от количества треугольников и от количества вершин. А третий вариант, который смотрелся явным лидером в 3Д Максе, имеет на 8 треугольников меньше и на 86 вершин больше. И даже на скринах видно, что памяти он занимает больше. По производительности в игре второй и третий варианты примерно равноценны.

Skif писал(а):...Чем больше граней у "псевдоокружности", тем больше разница в числе треугольников при совершенно одинаковом числе граней полигона. Это я и имел в виду.

ЭЭЭ тут не понял. Вершина в центре даёт +2 треугльника при любом количестве сегментов.
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 05.12.2016, 23:52

Должен отметить, что Quixel я таки поборол и успешно запустил...

При всех запусках "через жопу" неожиданно получился самый желанный - версия 2.0.2 (самая пожалуй полная из взломанных, как я оценил по объему пакетов) встала... на 32-битный фотошоп CS3, старый, теплый, ламповый и знакомый до жути. Единственный недостаток - 32 бита, все таки. А значит, только 3 Гб ОЗУ под Фотошоп. Увы, CS3 х64 не выпускался. Зато работают все инструменты Quixel, кроме Megascans (а эти материалы я могу и вручную подтащить в него, делов то, тьфу). Похоже, не реализованы в этом билде. Ну, и фиг на них.

Работает, в общем... Впрочем, я еще проверю - не заработает ли теперь 2.2.2 на CC2015. Возможно, что-то доставилось из недостающего в винде. Не получится, можно откатить назад на 2.0.2.
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Skif » 30.01.2017, 12:03

Продолжение будет? Дальше самое интересное - cage и Projection! Хочу посмотреть, как снять Cage с этой колесной пары, не изменяя ее размеров, и что получится в результате.

Ну, и важный момент - колесо должно вращаться, а при такой ориентации макс наверняка запечет нормали с учетом освещения дефолтным источником сверху вниз. Т.е. стоит повернуть колесо - и освещение пойдет вразнос?
Skif
 
Сообщения: 2866
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 263 раз.
Поблагодарили: 813 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Запекание карт нормалей, АО и всякое такое.

Сообщение Tractorist » 04.02.2017, 20:35

Ну мы запекаем нормали в tangent space, в текстурном координатном пространстве, поэтому освещение при повороте колеса будет корректно просчитываться.
Ок, продолжаем.
Собираем в одной сцене лоуполи (LP) и хайполи (HP) модели. Делаем Reset XForm. Модели должны совпадать. Убираем с UV развёртки LP повторяющиеся элементы. В нашем случае это торец оси и одно из колёс. Колесо просто удаляем на HP и LP. Торец оси сдвигаем в редакторе UV развёртки
Изображение

Добавлено спустя 24 минуты 35 секунд:
Далее выбираем LP модель, жмём 0 или через меню Render to texture. Дальше настраиваем как на скриншотах. Включаем галочкой projection mapping, жмём pick, выбираем HP модель.
Изображение
Далее в настройках cage жмём reset (2), затем стрелочками amount (3) делаем cage чуть больше размера модели. Расстояние между cage и моделью должно быть минимальным. Для простого по форме объекта cage строится программой достаточно корректно. Для сложных по геометрии объектов, можно скопировать LP геометрию, увеличить её масштабированием и смещением отдельных граней, а затем импортировать как cage. Можно cage редактировать на уровне вершин, рёбер и полигонов, раскрыв модификатор projection в стеке модификаторов. Конечно в двух словах про cage не напишешь, но у нас случай простой и cage на скрине вполне нормальный. Единственный косяк, который у нас получился - это пересечение cage и геометрии в том месте, где диск колеса насажен на ось. Обычно пересечение cage с геометрией даёт артефакты, таких случаев надо избегать. Применительно к нашей колёсной паре, можно диск колеса сдвинуть с оси например на 0,5м на LP и HP. Тогда стрёмных пересечений не будет. Но я и так потратил много времени, описывая как сделать правильно, поэтому ничего не буду сдвигать, а артефакты, если они появятся, уберу кисточкой в фотошопе. Padding ставим побольше, например 20
Нижняя часть настроек:
Изображение

Добавлено спустя 4 минуты 39 секунд:
Далее запекаем тестуру, открываем её в фотошопе, обнаруживаем артефакт на оси:
Изображение
Замазываем полоску кисточкой, и запечённая карта нормалей готова

Добавлено спустя 5 минут 4 секунды:
Далее дорабатываем текстуру в программе Quixel NDO. Описывать работу в NDO я пока не буду, по уму для этого нужно создавать отдельную тему. Если в кратце, то я добавил отверстия в диске колеса, проточки на оси под буксовые подшипники, а так же наложил фактуру литого металла на диск колеса. Фактуру литого металла я взял с фотографии башни танка:
Изображение

Добавлено спустя 21 минуту 52 секунды:
Дальше запекаем карту затенения - АО. Для этого создаём сцену с LP моделью, назначаем на модель стандартный материал с картой нормалей. Карта нормалей назначается в слот bump, а затем normal bump и только там указываем нашу карту нормалей:
Изображение
Цвет diffuse в настройках материала делаем белым. Остальные настройки не трогаем. Включаем отображение материала в видовых экранах.
Дальше изготавливаем дополнительные объекты для имитации теней от буксовых узлов и от вагона. Этим объектам назначаем стандартный материал белого цвета:
Изображение

Добавлено спустя 3 минуты 52 секунды:
Добавляем в сцену источник света Skylight с параметрами:
Изображение

Добавлено спустя 13 минут 23 секунды:
Далее выбираем LP модель, нажимаем 0 или через меню render to texture. Настраиваем параметры:
Изображение
Обращаю внимание, что в настройках рендера отключены сглаживание и прочие улучшайзеры для сокращения времени просчёта. Результаты работы этих фич Вы никогда не сможете увидеть на готовой текстуре, поэтому смело их отключаем. Нижняя часть окна настроек:
Изображение
Здесь обратите внимание, что выбрана complete map и белый цвет фона

Добавлено спустя 6 минут 1 секунду:
Запекаем, смотрим результат. Это заготовка для карты АО:
Изображение

Добавлено спустя 6 минут 50 секунд:
Так как карту АО я давно уже доработал, можно оценить финальный результат. Колёсная пара с однотонной серой диффузной текстурой, с картой нормалей и с АО. Выглядит достаточно неплохо:
Изображение
Tractorist
 
Сообщения: 69
Зарегистрирован: 10.11.2016, 19:22
Откуда: Санкт-Петербург
Благодарил (а): 8 раз.
Поблагодарили: 29 раз.
Имя: Александр

След.

Вернуться в 3DS Max & Photoshop

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0