«STAR WARS REIMAGINED: african totem C3PO» © 2016, Евгений 
CGtalk.by CG Award 2016: «STAR WARS REIMAGINED: african totem C3PO», Евгений
   
Главная Форумы Галерея Теория Конкурсы Вакансии
Назад   CGtalk.by > Теория
Новые сообщения Зарегистрироваться

Моделирование и текстурирование сложной техники. Часть 5. "Normal и АО"
» Моделирование и текстурирование сложной техники. Часть 5. "Normal и АО"
Jan 13, 2014 - 12:21 AM - Автор: id
<< Часть 4. "О UV"

Содержание
  • Создание Normal-map
  • Создание AO
  • Самопроверка 4
Hi-poly модель для AO и Normal-map: 16-24 часов
Запекание normal-map (+ правка мелких ошибок): до 8 часов
Запекание AO (+ правка ошибок): 2-4 часа

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Создание Normal-map
Без качественных карт нормалей сейчас никуда! Их применение значительно улучшает внешний вид модели.

Запекать нормал будем в 3ds max, используя модификатор Projection и Render to Texture.

Сначала мы будем запекать нормал с hi-poly на low-poly модель. Нормал, генерируемый в Photoshop, будет рассмотрен позже в статье о текстурировании.

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

В самом начале, как обычно, вы берете половину модели с финальной UV-разверткой, которую сделали на предыдущем этапе, и сохраняете копию файла примерно с таким именем:
имя вашей модели_prepаre_to_bake_normal.max

Далее необходимо разбить модель на группы деталей. Мы будем “запекать” normal-map по отдельности для элементов из этих групп.

Группы помещаются на слои, в папки с соответствующими названиями. Количество групп/ папок - на ваше усмотрение. Каких-то строгих правил на этот счет нет. Прислушивайтесь к голосу разума внутри вас!

Иногда нежелательно запекать нормал для пересекающихся объектов, чтобы в местах пересечения не было артефактов. Эти элементы, естественно, должны находится в разных группах.

При работе с одной группой все остальные группы спрятаны (hide).

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

Название файла:	groups_examples.jpg
Просмотров:	874
Размер:	150.1 КБ
ID:	42416

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

Название файла:	all-groups-on.jpg
Просмотров:	632
Размер:	147.6 КБ
ID:	42426

В каждой папке/группе должно содержаться 2 элемента:
  • Название группы элементов_low - низкополигональная геометрия
  • Название группы элементов_hi - высокополигональная геометрия
На скриншоте - финальный вид групп с hi и low-poly элементами.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	group-names.jpg
Просмотров:	793
Размер:	124.1 КБ
ID:	42436

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Подготовка геометрии
У вас есть папки и группы, но пока в них содержатся только low-poly модели.

Мы будем создавать hi-poly на основе low-poly.

Копируем low-poly элемент и корректно называем его, добавив суффикс _hi. После этого low-poly геометрию можно скрыть (hide), чтобы “не путалась под ногами”.

Подготовка геометрии делается просто, надо добавить дополнительные сечения и применить модиикатор TurboSmooth. Все. Никакой магии.

Дополнительные сечения - это, как правило, нулевые фаски. Старые статьи про нормал, где про это сказано пару слов.

Желательно выбрать 2-3 размера фасок (для острых, средних и скругленных углов) и использовать их на всей модели.

Примеры “нарезки” и финальный результат со сглаживанием.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	narezka.jpg
Просмотров:	648
Размер:	70.7 КБ
ID:	42446

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	cutting_example_1.jpg
Просмотров:	963
Размер:	80.9 КБ
ID:	42456

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

Название файла:	cutting_example_2.jpg
Просмотров:	1006
Размер:	167.5 КБ
ID:	42466

Таким образом мы элемент за элементом обрабатываем всю модель.

Даешь каждой low-poly модели по hi-poly принцу на белом коне!


Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Проблемы, возникающие при создании hi-poly моделей

В описании все просто. Сделал фаску, нажал смус- и готово!

В реальности все сложнее.

Некоторые из проблем этого этапа работы
  • большое количество элементов - растет время и ваша усталость
  • сложные и криволинейные поверхности
  • сложные сочленения элементов - мучения в поисках нарезки, дающей хороший результат
  • вшитые элементы на криволинейных поверхностях
Для быстрого решения большинства проблем нужен опыт. Сначала вы тренируетесь на холодильниках или других простых объектах. Потом сложность объектов растет. “Хитрых” сочленений и переходов все больше и больше. И вот спустя 2-3 года вы готовы ко всему.

А если попытаться сделать сложную модель “с наскока”, то можно получить негативный опыт и даже бросить работу на пол-пути! Возненавидеть 3D!

Будет очень хорошо, если в первый раз вам окажет помощь старший и опытный товарищ. Это значительно ускорит ваше обучение.


Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Про мучения вокруг вшитых элементов

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

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

Название файла:	skip_example_1.jpg
Просмотров:	525
Размер:	40.4 КБ
ID:	42476

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

Название файла:	low-hi-piece.jpg
Просмотров:	585
Размер:	41.8 КБ
ID:	42486

Запекаем нормал для корпуса и для возудохозаборника.

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

Название файла:	skip_final.jpg
Просмотров:	821
Размер:	31.5 КБ
ID:	42496

Это простой пример, но, надеюсь, вы вспомните про него, когда вы окажетесь в сложной ситуации. Конечно, такой нормал надо еще “поддержать” диффузной текстурой. Скрыть возможные артефакты и сделать финальную картинку более выразительной.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Перед запеканием
На низкополигональной и высокополигональной модели должна быть назначена одна группа сглаживания и стандартный “серый” материал в состоянии по-умолчанию.

Затем для каждого low-элемента настраивается Projection и Cage. В финале у вас должны получиться пары элементов, готовые для запекания.

Небольшое примечание. Обычно на половину low-poly модели снимается нормал с цельной hi-poly модели.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	half_model.jpg
Просмотров:	487
Размер:	205.9 КБ
ID:	42506

Желательно рендерить normal-map без суперсэмплинга (сглаживания), но с разрешением в 2 раза больше целевого. Например, если вам нужна текстура 2048х2048, то ренедерить надо 4096х4096, а затем уменьшить в Photoshop в 2 раза.

Элементы сохранять в файлы формата PNG. Настройки формата:
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	png-set.gif
Просмотров:	781
Размер:	8.2 КБ
ID:	42516

В итоге у вас получится N-файлов с элементами. Вам останется лишь собрать их в одну текстуру в Photoshop сделав “Paste In Place”

!ВНИМАНИЕ! Иногда для корректной обработки карт нормалей в некоторых игровых движках при запекании в 3ds max надо инвертировать зеленый канал. Если забыли - не беда, можно сделть это в Photoshop, выделив на вкладке Channels зеленый канал и сделав Invert.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	normal_det-01.gif
Просмотров:	470
Размер:	40.1 КБ
ID:	42536

Важный параметр при уменьшении текстуры в Photoshop:
Image Interpolation в Photoshop - Bicubic Sharper.

Когда нужна более чем одна группа сглаживания?
Не всегда одна Smoothing Group выглядит хорошо. Артефакты при ее использовании часто появляются тогда, когда у вашей модели небольшой поликаунт и острые/ прямые углы.

Пример:
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	1sm-gr-sharp-angle.jpg
Просмотров:	552
Размер:	47.0 КБ
ID:	42646

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	2sm-gr-sharp-angle.jpg
Просмотров:	495
Размер:	45.1 КБ
ID:	42656

Надо иметь это ввиду, а исправить очень легко.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Если появился шов-артефакт
Если швов на стыке элементов нет - отлично! Эту часть можно пропустить.

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

Порядок действий: делаем симметрию нужного объекта (без сшивания!), аккуратно выделяем и удаляем лишнее,а затем пришиваем обрезок к исходной половине.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	add_poly-line.jpg
Просмотров:	400
Размер:	174.9 КБ
ID:	42526

Эту же технологию можно применять и для других элементов.

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

Название файла:	seams_remover.jpg
Просмотров:	382
Размер:	81.8 КБ
ID:	42546

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

Название файла:	seams_remover_final.jpg
Просмотров:	384
Размер:	48.7 КБ
ID:	42556

Обратите внимание, в местах стыков элементов расположены технологические швы, и есть “поддержка” сгенерированным в Photoshop нормалом.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Cоздание Ambient Occlusion (AO)
Что такое АО

Зачем делать АО и тратить на это время?

Иногда так спрашивают люди.

Мой вариант ответа. АО это отличная заготовка для диффузной текстуры. Частично ее можно применять для спекуляр-текстуры. АО сразу задает объем. Даже без освещения модель смотрится хорошо. И не так уж много времени на нее тратится.

Для запекания АO используется геометрия, ранее созданная для запекания нормала.

Делаете копию файла со сценой для нормала и называете:
имя вашей модели_prepаre_to_bake_AO.max

Готовите группы/ слои, как для нормала. Однако для АО не нужно много групп. Как правилo, достаточно 1-2.

Запекать можно как и в 3ds max, так и в других программах. Мне нравится результат, который дает программа TopoGun.
Создание AO при помощи программы TopoGun
В 3ds max подготавливаем 2 модели - hi и low-poly.

Пару слов о подготовке:
  • low - половина
  • hi - целая модель для симметричных элементов (корпус и т.д.)
  • mono-mesh
  • все в одинаковых координатах.
Экспортим по отдельности в файлы с именами low и hi, в формат OBJ (пресет Z-Brush).
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj-exp-set.gif
Просмотров:	826
Размер:	18.6 КБ
ID:	42566

Желательно создать проект в программе TopoGun - File-Create project, где вы укажете папку, куда будут сохраняться сгенерированные файлы. Далее программа сама создаст несколько директорий в этой папке.
  • Textures - сюда будут помещаться сгенерированные текстуры.
  • Meshes/ Scenes - сюда удобно скопировать файлы low и hi
Последовательно загружаем low и hi-модели в программу.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	topogun-1.gif
Просмотров:	430
Размер:	55.6 КБ
ID:	42576

Затем выбираем пункт меню Bake - Generate maps.

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

Название файла:	topogun-st-1.gif
Просмотров:	420
Размер:	30.0 КБ
ID:	42586

Настройки Hardware Ambient Occlusion Map.
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	topogun-set-2.gif
Просмотров:	418
Размер:	29.7 КБ
ID:	42596

Затем нажимаем кнопку Generate внизу списка и ждем. В зависимости от мощности вашего ПК процесс “запекания” может занять от 3 минут и более.

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

Название файла:	final_AO.jpg
Просмотров:	431
Размер:	115.3 КБ
ID:	42606

Эту текстуру мы и будем использовать в дальнейшем.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Устранение недостатков на АО текстуре
В результате запекания, как правило, появляются артефакты, которые просто исправить в Photosop.

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

Название файла:	ao-bugs.jpg
Просмотров:	857
Размер:	55.4 КБ
ID:	42616

Такие ошибки, как пятна в нежелательных местах, зарисовываем кистью или штампом, а затем “блюрим” Blur Tool.

“Нестыковки” элементов исправить сложнее, т.к. их граница проходит между двумя уникальными развертками в разных частях текстуры. Если при исправлении это не учитывать, то в результате такая же “нестыковка” может появиться с другой стороны модели, там где до этого все было ОК.

ВНИМАНИЕ!
Обязательно сохраняйте копию оригинальной АО текстуры. Порой внезапно она может понадобиться снова.

Иногда для упрощения исправления можно ретушировать такие места прямо на 3D-модели в Photoshop. Для этого:
Экспортим модель в формат OBJ (без пресета).
Открываем в Photoshop.
Назначаем сгенерированную АО текстуру и правим ее стандартными средствами.
Когда результат нас устраивает (крутим-вертим модель в 3Д, проверяя результат) - копируем исправленную текстуру АО и используем ее в дальнейшем.

Еще один вариант. Вырезаете куски необходимой формы из места, где на АО текстуре нет ошибок, и переносите эту “заплатку” в нужное место.

Пример
Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	fixed_example.jpg
Просмотров:	523
Размер:	79.7 КБ
ID:	42626

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	divider_part_1.gif
Просмотров:	1309
Размер:	1.2 КБ
ID:	42636
Самопроверка 4
  • После создания нормала и АО на основе hi-poly геометрии проверяем:
  • схождение элементов (швы) - как для нормала, так и для АО
  • положение и “вживленность” уникальных элементов, т.е. уникальные (отраженные) элементы должны быть одним целым и не выделяться на фоне основной текстуры по тону.
  • складируем файлы для запекания нормала и АО в надежном месте. Это должно быть всего 2 финальных файла.
Вопросы. Комментарии. Обсуждение.
Все права защищены © Иванов Дмитрий aka i.d. При цитировании ссылка на cgtalk.by обязательна.
Polygon.by. Учебно-практический центр компьютерной графики.

Онлайн журнал о магии компьютерной графики и цифрового искусства «Magic CG»
Пакет инструментов для обеспечения качества 3D-контента для игр
Цвет — это что?

Текущее время 20:52 (GMT +4)


Powered by vBadvanced CMPS v3.0 RC1
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Хостинг и облачные решения — Active Technologies

Все права защищены © 2006 — 2014, CGtalk.by