Как сделать карту нормалей в blender

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Baking или запекание текстур и карт нормалей имеет ряд подводных камней с которыми я помогу вам разобраться в этом .

Запекаем карту нормалей (normalmap) в Блендере 2.8 на основе высокополигональной модели (highpoly), а также учимся .

Обучение блендеру и анимация в Блендер 2,8. Как работать с textools blender 2.9 в blender 3d? С рендером на eevee?это .

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

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

В этом видео рассмотрим что такое карта нормалей (Normal map) и для чего она нужна в Blender 2.9. Cоциальные сети: .

Леденящий топор с кристаллами льда - Часть 9. В этой части мы запекаем карту нормалей. (Бэйкинг, Baking). Если вам .

Карта нормалей одна из самых необходимых карт в 3d моделировании, она увеличивает детализацию и проработку.

Вы сделали текстуру в Blender, но не знаете, что делать дальше? Как превратить процедурную текстуру в текстуру .

В этом видео мы с вами будем запекать карты нормалей (Normal map) и карту теней (Ambient Oclussion) для персонажа.

В этом видео поговорим о картах нормалей( Normal Map),разберем что это такое,какие бывают,для чего они нужны и как .

Урок посвящен запеканию текстур Normal Map и теней Ambient Occlusion. Автор: Tverdokhleb Igor Подписывайтесь на .

Разбираемся со скульптингом в Blender. В этом видео - запекание карт нормалей с высокополигональной модели, .

Запекание текстур в marmoset toolbag 3.08 Моделировал в blender 2.8 / разворачивал в rizomuv. Конкурс (ЗАВЕРШЕН): под .

В этом уроке мы запечем карты нормалей(normal) и теней(AO) в 3д-редакторе Blender. И просмотрим действие этих карт .

В этом уроке вы узнаете как сделать ID маску в Blender с помощью рисования по вершинам и как использовать эту маску в .

Создал модель в zbrush, создар ретопологию и развертку в 3DCoat и затекстурировал в substance painter. Но при наложении карты нормали и высоты в blender происходит какой то бред. Сначало просто там где должна быть глубина и сглаживание, просто были темные пятна, а сейчас когда я делал пример проблемы нормаль вообще слетела вниз. Применял и smoth и subdivision, ничего не помогает, полигоны все так же видны при рендере. Не могу понять что я делаю не так т. к все делаю по туториалам и не вижу нигде ошибки. Скрины с картами примерами и нодами прилагаются.

Не знаю Блендера, но полигоны видны от того, что выключено сглаживание, включайте. А карта нормалей легла мимо или не тем боком. Почему это случилось, отсюда не видно. Смотрите развертку, смотрите расположение карты на развертке, совмещайте. И зачем такая сложная структура материала? Четыре карты из пяти не имеют никакого рисунка! Вот нaхрена нужна карта Height? Что она делает?

дело в том что сглаживание включено. Но кст если карту нормалей подключать напрямую, без нод normal map и bump, то сглаживается все нормально, более менее. Но это если режим рендереа "eevee", а в режиме "cycles" просто дичь. С размещением карты нормали я могу разобраться, а вот почему она не работает нормально я не могу понять.

самолет самолетов Искусственный Интеллект (236137) NIKITA ALTAEV, ну тут уже пошли тонкости, которые мне неведомы (я не знаю Блендера), единственное что могу сказать, это то, что нужно внимательно смотреть и настройки материала, и настройки рендера: некоторые параметры могут взаимно зависеть. Вам лучше поискать тематический форум, насколько я заметил, тут никто не отвечает на вопросы по блендеру, не заглядывают сюда спецы. :)


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

Ключевые слова: Blender, Unity, 3D-модели, текстурирование, карты нормалей, Collider, Rigidbody .

Введение

Blender — бесплатное программное обеспечение для создания трехмерной компьютерной графики, включающее в себя средства моделирования, скульптинга, анимации, симуляции, рендеринга, постобработки и монтажа видео со звуком, а также создания 2D-анимаций.

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

Разработка 3 D модели на примере гальванического элемента питания (батарейки) D – R 20

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

Батарейка 1.5v D–R20

Рис. 1. Батарейка 1.5v D–R20

Для создания батарейки добавим окружность диаметром 3см. В режиме редактирования проэкструдируем окружность на высоту 6см (рис. 2).

Цилиндр

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

Верхняя часть батарейки

Рис. 3. Верхняя часть батарейки

Что бы сгладить острые края, можно добавить в контекстном меню объекта “Гладкое затемнение” и включить “Автосглаживание”. Но эта процедура увеличивает количество полигонов, что, в конечном счете, может негативно сказаться на обработке объекта после переноса в графический движок.

Перед наложением текстур необходимо проверять ориентацию граней, это требуется для того, чтобы лицевая часть граней не была повернута внутрь объекта. В режиме “Ориентация грани”, красным цветом обозначена оборотная сторона грани, синим соответственно лицевая. При импорте в Unity моделей, в которых оборотные стороны граней смотрят на камеру, данные стороны будут прозрачные. Чтобы этого избежать, красные грани необходимо отразить (рис. 4).

Ориентация грани

Рис. 4. Ориентация грани

Текстурирование

Перед наложением текстуры необходимо создать материал для заданного объекта. После этого в редакторе шейдеров добавляем узел “Изображение-текстура”. В нем загружаем нужную текстуру и передаем изображение текстуры в материал, соединяя линией “Цвет” и “Основной цвет” между таблицей текстуры и материала, должно получиться как на рис. 5.

Редактор шейдеров

Рис. 5. Редактор шейдеров

Для отображения текстуры необходимо сменить режим отображения на “Отображать в режиме предпросмотра материала”.

Для наложения текстуры перейдем в “UV Editing” и займемся расположением граней на текстуре. Выделяя грани батарейки, в окне UV-разметки, можно поэкспериментировать и выбрать наиболее подходящий тип разметки. Выделив грани объекта, их можно располагать на текстуре произвольно. Результат этой операции можно увидеть на рис. 6.

Текстурирование

Рис. 6. Текстурирование

Создание карты нормалей

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

Для создания нормалей в данной статье используется бесплатная программное обеспечение “NVIDIA Texture Tools Exporter Standalone”. Загрузив текстуру в программу, можно приступать к редактированию будущей карты нормалей. В разделе “Height Generation” можно изменить высоту карты. Пример создания карты нормалей приведен на рис. 7.

Создания нормалей в “NVIDIA Texture Tools”

Рис. 7. Создания нормалей в “NVIDIA Texture Tools”

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

Добавление карты нормалей

Рис. 8. Добавление карты нормалей

Сетка для коллайдера

Наша модель почти готова, осталось создать сетку для добавления коллайдера в Unity (см. Создание “Mesh Collider” и “Rigidbody”). Для начала необходимо создать низкополигональную сетку поверх модели батарейки. Делается это так же, как и создание самой модели батарейки, за исключением того, что в параметрах добавления новой окружности, необходимо уменьшить количество вершин с 32 до 8 или меньше. Должна получиться простенькая “Защитная панель” поверх батарейки (рис. 9). Эта “панель” будет использоваться как коллайдер в Unity.

“Защитная панель” для коллайдера

Рис. 9. “Защитная панель” для коллайдера

Экспорт и импорт

Выделяем полученную модель, камеру и источник освещения выделять не нужно [1]. Выбираем формат для экспорта, в настройках экспорта ставим галочку на “Выделенные объекты” и жмем “Экспорт”. Переносим экспортированный файл в Unity и добавляем его на сцену (рис. 10).

Импорт объекта в Unity

Рис. 10. Импорт объекта в Unity

Теперь необходимо отключить отображение “защитной панели”, убрав галочку с “Mesh Render” в инспекторе объекта, т. к. данная “панель” необходима только для создания меш коллайдера, видеть нам ее не нужно. После добавления текстур в данный проект, наша батарейка их автоматически распознает. (рис. 11)

Добавление текстуры

Рис. 11. Добавление текстуры

При таком добавлении редактирование материала батарейки будет недоступно, поэтому стоит создать отдельный материал, и в него загрузить текстуру с картой нормалей. При создании материала, в “Albedo” закидываем основную текстуру, а в “Normal Map” соответственно нормаль.

Теперь готовый материал можно переместить на батарейку, а точнее на “Окружность”, которая и является самой батарейкой. В данном случае модель состоит из двух объектов, сама батарейка — “Окружность”, и ее защитная панель — “Окружность.001”. Чтобы в дальнейшем при создании более сложных моделей не возникло путаницы, следует переименовывать объекты, делать это можно как при создании самой модели в блендере, так и после добавления, в самом Unity.

Создание “Mesh Collider” и “Rigidbody”

Коллайдеры необходимы для того, чтобы придать объекту материю, без коллайдеров объекты в Unity “нематериальны” и проходят сквозь остальные объекты. Коллайдеры обеспечивают обнаружение столкновений с использованием различных “ограничивающих сеток” [2], одну из которых ранее мы создали в блендере. Есть 3 способа создания коллайдеров:

1) Можно использовать базовые коллайдеры такие как “Box Collider”, “Capsule Collider”, и накладывать их на объекты, но на это уйдет не мало времени если у нас сложный объект. Такой метод меньше всего влияет на производительность.

2) Использовать коллайдер по сетке заданного объекта. “Mesh Collider”. Это быстро, но такой метод не практичен, т. к. при нем очень сильно падает производительность.

3) Создать отдельную низкополигональную коллайдерную сетку при создании объекта и использовать ее как “Mesh Collider”. Такой способ меньше влияет на производительность чем 2й, и его мы используем далее.

Выбираем “Защитную панель”, т. е. “Окружность.001” и добавляем на нее Mesh Collider. Проверяем, чтобы в разделе Mesh была выбрана “Окружность.001”. Теперь добавим физику объекту, чтобы он обладал массой и на него действовало притяжение. Для этого выбираем Add Component и Rigidbody (рис. 12). Но есть проблема в таком методе. Она заключается в том, что начиная с версии Unity 5, “Mesh Collider” работает только с включенным “Is Kinematic”, т. е. с выключенной физикой, без воздействия силы притяжения [3].

“Mesh Collider” и “Rigidbody”

Рис. 12. “Mesh Collider” и “Rigidbody”

Если отключить “Is Kinematic”, то коллайдер пропадет, и появится при включении “Convex”, но тогда его изначальный вид сильно изменится, и станет непригодным для использования, в данном случае он принял треугольный вид (рис. 13).

При включении “Convex”.

Рис. 13. При включении “Convex”.

Вывод

Начиная с версии Unity 5, меш коллайдеры стоит использовать только для статичных рельефных объектов. Если необходимо чтобы на объект действовала сила притяжения, то придется ограничиться стандартными “Box Collider” и “Capsule Collider”, но в таком случае создавать “Защитную панель” в блендере уже нет нужды.

1 Гараева Э. Р. Особенности подготовки 3D-объектов, смоделированных в Blender, для импорта в Unity 3D / Э. Р. Гараева, И. И. Бикмуллина, И. А. Барков // Прикаспийский журнал: Управление и высокие технологии. — 2020. — № 4 (52). — С. 66–74.

2 Брянский И. Н. К вопросу об основных элементах Unity / И. Н. Брянский, Д. А. Брыль // Международный научно-исследовательский журнал. — 2016. — № 12–3 (54). — С. 26–28.

Основные термины (генерируются автоматически): NVIDIA, коллайдер, создание, батарейка, бесплатное программное обеспечение, материал, наложение текстуры, основная текстура, создание карты нормалей, создание нормалей.

UV-развертка необходима для того, что-бы мы могли наложить текстуру на 3D-объект. А если точнее, с помощью развертки мы указываем как именно 2D текстура должна накладываться на 3D объект.

Я буду показывать на примере Blender 2.8. На примере кубика, так как его геометрия самая простая, да и он есть на сцене с самого начала. Если выбрать куб и перейти на вкладку UV-Editing, то вы увидите вот такую картину.

Как сделать UV-развертку в Blender 2.8+

Нажатием на TAB перейдем в режим редактирования и выберем все вершины нажатием A. Слева мы увидим уже готовую развертку для куба.

Как сделать UV-развертку в Blender 2.8+

Но, что делать если геометрия не стандартная? Для этого нужно подумать как разместить швы.

Швы - это разрезы на поверхности 3D объекта, которые разрезают объект так чтобы его можно было развернуть на плоскость.

Хм, наверное звучит не совсем понятно, но думаю я смогу показать все на примере. Давайте изуродуем развертку этого куба как по нашему мнению "будет лучше"(нет)😁.

Я выделил верхние несколько граней. Делается это ЛКМ в режиме выделения граней, который в свою очередь выбирается вверху слева или на цифрах на клавиатуре, нажатием 2.

Как сделать UV-развертку в Blender 2.8+

Далее нужно пометить их как швы. Жмем ПКМ и в меню выбираем Mark seam (Пометить шов). Далее снова выбираем все кнопкой A и сверху в меню выбираем пункт UV. В выпавшем меню жмем Unwrap. Слева отобразиться новая развертка.

Как сделать UV-развертку в Blender 2.8+

Кхм, даа.. Ну, что навыделяли то и получили) Все это было сделано для примера и понимания того как нужно или ненужно делать развертку. Думаю лучше вернуть старую развертку. Выделяем все кнопкой A и помечаем все грани как швы. ПКМ - Mark seam. Далее в меню вверху UV - Unwrap.

Как сделать UV-развертку в Blender 2.8+

Не плохо, но это не то что было. Можно конечно и так пользоваться, но мы ведь хотели "как было". Давайте сотрем все метки швов.

Для этого выберем все грани, ПКМ - Clear seam. UV - Unwrap.

Как ни чего не поменялось? Все должно было сработать!

Ладно ладно, шучу, нужно указать стандартные швы в ручную😊.

У меня получилось что-то такое.

Как сделать UV-развертку в Blender 2.8+

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

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

Рисование по объекту

Ну вот вы и разобрались как делать развертку. Возможно даже уже нажали на пункт верхнего меню Texture paint. И при попытке что-то нарисовать у вас вылезла ошибка "нет текстуры". Все правильно. Мы ведь не сохранили текстуру и не назначили ее объекту.

На вкладке Texture paint в верхнем меню выбираем New и в новом окне настраиваем параметры и название будущей текстуры.

Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+

И сохраняем текстуру куда угодно, лучше в папку с вашим проектом.

После этого необходимо наложить текстуру на объект. В правом меню выбираем пункт "Настройки материалов" и уже в материале меняем просто цвет на текстуру.

Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+
Как сделать UV-развертку в Blender 2.8+

Куб почернел, так как текстура пустая. Теперь можно красить куб удобным способом. Например можно делать это прямо в Blender.

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

Как сделать UV-развертку в Blender 2.8+

Текстуру нужно сохранять после изменения, как мы уже сохраняли.

Так же, естественно, можно редактировать текстуру в любом графическом редакторе, например, GIMP, PhotoShop и т.д.

Ну вот, думаю к этому моменту вы уже понимаете как сделать UV-развертку в Blendr 2.8+. Спасибо за внимание и легкого моделирования!

Читайте также: