Top.Mail.Ru
Ответы

Outline МАТЕРИАЛА в Blender

Если говорить вкратце, то мне нужно сделать Outline ИМЕННО самого материала.

Что-то типа такого, но только так, чтобы при изменении положения объекта в редакторе избегать вот таких проблем:

(Тут я использовал «Object» в «Texture Coordinate»).

Но тут сразу появилось две проблемы, поэтому перешел к другому способу:

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


Проверил интернет, но там только про 3D и как из 2D сделать 3D обводку. Мне нужно, чтобы черная линия или белый круг были на плоскости относительно самого объекта, а не его положения. Хочу, чтобы обводка реагировала на изменения редактирования, без ошибок.

Я не хочу делать «Insert» у плоскости, а потом назначать ему черный материал. Мне нужно, чтобы все было в одном материале и без лишних точек.

Мне не нужен «Solidify» и т.д. Мне нужно, чтобы плоскость знала свою форму и делала «Insert» внутри самого материала, а не относительно чего-то другого.

Буду благодарен за помощь!

По дате
По рейтингу
Аватар пользователя
Новичок
10мес

Задача интересная. Для простых полигонов (типа треугольник, квадрат или круг ) можно реализовать через узлы геометрии, геморройный способ. Через параметризацию UV карты, то же не получиться сделать для произвольной формы. Можно попытаться откусить поле для черной линии через AO, но стабильности тоже может не быть.

пример

Аватар пользователя
Мыслитель
10мес

Чтобы создать обводку материала в Blender, которая будет правильно реагировать на изменения формы и положения объекта, можно использовать ноды Shader Editor. Вот пошаговая инструкция, как этого достичь:

Создайте новый материал для вашего объекта.
Откройте Shader Editor для этого материала.
Шаги для создания обводки материала
1. Используйте ноды для получения координат объекта
Добавьте ноду Texture Coordinate.
Подключите вывод Object из ноды Texture Coordinate к следующей ноде.
2. Создайте маску для обводки
Добавьте ноду Vector Math.
Установите операцию на Length.
Подключите вывод Object из ноды Texture Coordinate к входу Vector ноды Vector Math.
Добавьте ноду Greater Than (или Less Than, в зависимости от того, хотите ли вы создать обводку внутри или снаружи).
Подключите выход ноды Vector Math к входу ноды Greater Than.
Установите значение для порога обводки.
3. Создайте обводку
Добавьте ноду Mix Shader.
Подключите исходный материал к одному входу Mix Shader.
Добавьте ноду Emission или Diffuse BSDF с черным цветом и подключите её к другому входу Mix Shader.
Подключите выход ноды Greater Than к фактору (Fac) ноды Mix Shader.
4. Финишная настройка
Подключите ноду Mix Shader к выходу Material Output.
Подробное описание
Texture Coordinate Node: Использование координат объекта гарантирует, что обводка будет следовать форме объекта и не будет зависеть от его положения в пространстве.

Vector Math Node (Length): Это позволяет вычислить расстояние каждой точки объекта от его центра.

Greater Than Node: Создание маски, которая определяет, где будет обводка.

Mix Shader: Смешивание основного материала с обводкой.

Emission/Diffuse BSDF: Указание цвета обводки.

Пример использования:
Texture Coordinate Node:

Вывод Object подключен к входу Vector Math (Length).
Vector Math (Length):

Выход подключен к входу Greater Than.
Greater Than Node:

Установите значение для порога обводки, например 0.01 для тонкой обводки.
Выход подключен к фактору (Fac) ноды Mix Shader.
Mix Shader:

Один вход подключен к вашему основному материалу.
Второй вход подключен к ноде Emission с черным цветом.
Выход подключен к выходу Material Output.
Пример нодовой схемы:
[Texture Coordinate (Object)] -> [Vector Math (Length)] -> [Greater Than] -> [Mix Shader (Fac)]
/ \
[Ваш Материал] / \ [Emission (Black)]
/ \
[Material Output]
Этот метод позволяет создать динамическую обводку, которая будет корректно работать при изменении формы объекта и его перемещении в пространстве.