Render.ru

Как избежать конфликтов материалов в 3d max?

чита

Пользователь сайта
Рейтинг
2
#1
Здравствуйте, господа форумчане!
У меня часто возникает проблема с материалами при загрузке объекта в виде контейнера в другую сцену. Если в целевой сцене и в контейнере есть материалы с одинаковыми именами, то материалы путаются. При этом никаких окон предупреждения не всплывает. Я просто не называю материалы какими-то особыми именами, оставляю дефолтные, например, Material #3. Отсюда конфликты. Как решается эта проблема?
 
Рейтинг
82
#2
Оптимально, называть материалы своими именами(латиницей),например "Parket na Kuhne" ,или как пожелаешь.В сцене может быть несколько сотен объектов и часть из них может быть ещё и многокомпонентными так,что в итого можно запутаться не на шутку.Ну а так при просто подгрузке небольших сцен с не "принципиальными" материалами удобно делать так(рис).
 

Вложения

чита

Пользователь сайта
Рейтинг
2
#3
ОК. Меня просто тяготит называть материалы своими именами. Я бы даже сказал бесит. Само выдумывание названий вымагет сильнее чем работа ====))))
А вобще можно Get material from selection в редакторе метериалов, чтоб не путаться. Я никогда не путаюсь!
 
Рейтинг
82
#4
Я делаю очень просто(но это кому как) использую шесть видимых слотов(в редакторе) и пипетку, а на названия практически и не смотрю(иногда их очень много).
 
Рейтинг
31
#5
Видимо, коллеги, вы не работали с большими сценами, когда имеются тысячи объектов и несколько десятков материалов. Тогда без осмысленных названий материалов и объектов работа со сценой превращается в ад.

Меня вот бесит другое. Когда в сцену мержатся объекты из другой сцены, то контроль материалов Макс делает только по верхнему уровню (то самое окошко из поста #2), но подматериалы всасываются без контроля. В итоге получается, что в сцене имеется n-ное количество одного и того же материала (по фактическим параметрам и по названию!), но которые существуют как независимые копии, а не инстансы, как хотелось бы. Поэтому в какой-то момент, когда необходимо поднастроить параметры материала (или текстурной карты), то приходится выискивать все вхождения данного материала (карты) во всех сложных материалах, имеющихся в сцене, и ручками приводить их (заменять) к инстансным копиям.

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

Понимаю, что это косяк Макса, но может кто-то нашёл обходное решение такой проблемы?
 

maiden666

Мастер
Рейтинг
112
#6
дык ровно на эту тему есть скрипт, к сожалению, у меня погиб винт с дистрибутивами, и не помню его названия, но быстрый поиск вывел меня вот на нечто подобное
http://3d-kstudio.com/instance-materials-and-maps-by-name-and-class/
 
Рейтинг
82
#7
Да работал я, и с не с десятком а с сотнями материалов поэтому в итоге использую то,что озвучил в четвёртом сообщении.Есть проблема с материалом,беру пипеткой этот материал и редактирую так как надо, на название иногда даже не смотрю.
 

чита

Пользователь сайта
Рейтинг
2
#8
В последнее время я стал использовать следующий трюк. Просто пририсовываю от балды к дефолтным названиям матов, извиняюсь за выражение, х#й, что-то вроде
Material #3_jdkf. Таким образом все материалы всегда уникальны. Геморно, но что же, пока это единственное решение, которое я нашел.
 

ЛМА

Смотритель
Рейтинг
1 181
#10
Есть проблема с материалом,беру пипеткой этот материал и редактирую так как надо, на название иногда даже не смотрю.
Аналогично. Все равно они как правило все в редакторе материалов не помещаются, а искать в списке - слишком много телодвижений и времени. А так ткнул пипеткой в нужный объект в сцене и все дела. А называю материалы от балды, потюкаю как придется по клавиатуре и все.
 
Рейтинг
31
#11
Да работал я, и с не с десятком а с сотнями материалов поэтому в итоге использую то,что озвучил в четвёртом сообщении
"Каждому - своё" (с) юмористы из НСДАП.

Лично меня разумное именование материалов и объектов несколько раз спасало от о-о-очень большого геморроя. Впрочем, видимо зависит от специфики работы.
 
Рейтинг
82
#12
Всё верно("...видимо зависит от специфики работы").У меня, например, в магазинах женской одежды, 450 материалов этой самой женской одежды.Я и представить себе не могу сколько времени мне пришлось бы выдумывать названия этой одежды а главное зачем !Но в тоже время, наверняка есть сцены где это действительно необходимо.Также видел как одни ребята "намутили скрипт" с увеличенным в два раза количеством слотов-но похоже и это не выход из положения т.к. в моём случае это не спасает.
Работа с контейнерами довольно новое и специфическое занятие и по всей видимости ещё не до конца раскрученное-иногда контейнеры не хотят открываться и всё ,и не понятно почему.
 
Рейтинг
229
#13
Я для себя писал скрипт, которым постоянно пользуюсь. Назначает уникальное (имя которого нет в открытой сцене) имя материалу в активном слоте compact material editor.

Код:
macroScript mtl_uniqe_name category:"veda3d.com" tooltip:"Unique Material Name" buttontext:"Unique Material Name"
(
undo on
	(
	mtl = medit.getcurmtl()
	assignNewName mtl
	medit.PutMtlToMtlEditor mtl (medit.GetActiveMtlSlot())
	)
)
 
Сверху