Главная › Форумы › Материалы и текстуры › Часть нодов материала — общие для нескольких объектов.
Друзья, добрый день!
Говорим о Cycles.
Предположим, есть сцена с двумя кубиками.
Сейчас каждый кубик имеет свой собственный материал, состоящий из:
1. основного цвета (оранжевый)
2. своя текстура («текст1» и «текст2»)
Вопрос: можно ли сделать так, чтобы основной материал (оранжевый) у них был общим, а текстуры остались персональными? Согласитесь, если я захочу изменить оранжевый на, скажем, фиолетовый, мне придется изменять это для каждого кубика. В случае, если в сцене их штук 20 — это проблема…
Можно! Именно так всегда и делают. Почему у Вас это вызвало затруднение? Пробовали задать один и тот же материал двум кубикам?
Артем, конечно пробовал. :)
Но что делать с текстурами, которые должны быть свои у каждого кубика?
Давайте я расскажу, как я поступаю сейчас, я вы меня ткнете рожей, где логика хромает:
1. Делаем куб
2. Создаем ему материал, который состоит из двух групп нодов:
— первая группа — сам материал куба, шейдеры Diffuse, Glossy, что-то еще.
— вторая группа — текстура. Texture coordinate (UV) -> Image texture (имя файла с текстурой) -> шейдер Diffuse, Glossy или что-то еще
Обе группы мешаются шейдером Mix и его выход подается на Surface.
3. Делаем второй куб.
4. Вешаем на него материал, созданный для первого куба.
5. А вот и вопрос: для второго куба у меня другая текстура. И если я поменяю имя файла с текстурой в ноде Image texture — то новая текстура применится и к первому кубу — материал-то общий!
Конечно, при работе с материалом второго куба я могу кликнуть на поле с циферкой рядом с именем — создастся новый экземпляр материала, который будет назначен только второму кубу. Но это не выход — если в сцене будет 20 кубов и я захочу корректировать первую группу нодов — мне придется это делать для 20 независимых материалов.
Извините, что много букв. :)
Вам нужно создать три материала:
А у Вас и цвет куба и его текстура относятся к одному материалу, что в данном случае не приемлемо.
Но это не единственный выход. Вот есть отличный урок, в котором с помощью одного материала задают 9 текстур и 9 цветов для любого количества объектов.
Каким способом пойти — решать Вам.
Спасибо за ссылку на урок и советы — ушел изучать.
Артем, добрый вечер!
Ни черта не получается. Я посмотрел урок — в принципе, понятно. Но сложно. Решил идти по первому из предложенному Вами пути и создать несколько материалов:
Проблема такая: делаю Assign материала «Один общий для всех кубиков» для всех фейсов кубика. Прекрасно. Но я знаю, что одному фейсу можно назначить только один материал. Соответственно, переназначив (с помощью того же Assign) материал «Один с одной текстурой» для нужных фейсов, получаю вполне предсказуемый результат: весь кубик оранжевый, а на фейсах с текстурой — текстура на черном фоне (потому что текстура с альфой и под альфой нет никакого материала).
Я понимаю, что у меня дыры в самых основах материаловедения Блендера. :) Но если есть секунда — посмотрите исходник. Возможно, подскажете, куда «копать» далее.
Пардон, я что-то не вижу ссылку на архив. Вот она: https://yadi.sk/d/78mMsYcSeiSEf
Смотрите уроке о наложении текстуры с альфа-каналом. Например этот.
Артем, я знаю, как накладывать текстуру с альфа-каналом. Дело в том, что в уроке про бамбук и текстура, и материал листа (шейдер Glossy нежно зелёного цвета) — в одном материале.
В моем случае так делать нельзя. Вы сами писали об этом:
А у Вас и цвет куба и его текстура относятся к одному материалу, что в данном случае не приемлемо.
Сори, пример с бамбуком тут не годится, потому как текстура то ложиться, но грань у нас пропадает. В общем я сделал так:
Как видно есть два материала, один просто цвет, второй текстура. Если изменить общий цвет, то нужно скопировать этот цвет в нод MixRGB. При наличии 20-ти объектов на это уйдет пол минуты.
О! Спасибо! Это уже хороший вариант.
А через группу нодов?
Друзья, спасибо всем за идеи. У меня, кажется, получилось решить задачу.
1. Сделал материал кубика (понятно, что материал может быть любой сложности — можно играть не только цветом). Объединил ноды в группу:
2. Добавил ноды с текстурой. Итоговый материал:
3. Собственно, всё. Ко второму (третьему, четвёртому, …) кубику применяем полученный материал и делаем его уникальным для этого кубика (это важно, на каждом кубе у нас будут свои текстуры). В ноде Image Texture конкретного куба выбираем нужный файл с текстурой, предварительно сделав UV-развертку.
Профит в том, что теперь можно открыть материал ЛЮБОГО кубика, залезть в группу основного материала и менять его настройки так, как нужно. Результат будет применён ко всем кубам (группа-то у нас одна на всех!). При этом текстуры у каждого останутся персональными. Бинго!