Вопрос к знатокам, который в названии темы. Можно ли сделать материал инстанс параметром для инстанса мастер материала, как например в инстанс материал грузим текстуры? Т.е. например есть материал инстанс какого либо материала, открываем другой материал инстанс и через Get Material Attributes вытаскиваем все необходимые данные для их дальнейшего использования. Идея в том чтобы в проекте создать библиотеку настроенных базовых материалов, а не каждый раз возится в инстансе мастера. Давно копал про это информацию, не нашел, примерный аналог видел только в плагине Voxel, но там вроде это как раз таки сторонний код. Вот стало интересно, может что изменилось.
ArtByWarlocK
> Идея в том чтобы в проекте создать библиотеку настроенных базовых материалов, а не каждый раз возится в инстансе мастера.
Создаешь библиотеку настроенных экземпляров материала и где надо применяешь. Если надо создаешь экземпляр экземпляра и меняешь ему параметры.
Blueprint
> Создаешь библиотеку настроенных экземпляров материала и где надо применяешь. Если надо создаешь экземпляр экземпляра и меняешь ему параметры.
Это не то.
ArtByWarlocK
Тогда пробуй Material Layers. Только вместо смешивания просто передавай атрибуты второму слою.
Blueprint
> Тогда пробуй Layered Materials. Только вместо смешивания просто передавай атрибуты второму слою.
Они не удобны и не подходят ко всему, например к материалу ландшафта.
ArtByWarlocK
Нельзя и бессмысленно.
Данные можно и в таблицу зашить, оно и удобней будет.
Прочитал из таблицы назначил на материал, в чём проблема?
Kemanorel
> Прочитал из таблицы назначил на материал, в чём проблема?
Ну проблемы в принципе никакой нет, вопрос был о том что можно ли реализовать то про что я говорил в шапке.
Такие базовые материалы я бы много где использовал, например в ландшафте это слои (камень, почва, песок, снег и тд) с уже настроенными параметрами рафнеса, нормалей, дисплейсемента и прочего. В окружении их тоже можно применять в разной вариации, как дополнительные слои макротекстуры или же с разными цветовыми решениями покраски одного и того же ассета. В таблицу записывать данные по каждой вариации инстанса считаю нецелесообразным, когда в нее можно внести одно лишь название соответствующего материала. Да и предварительная работа с ассетами гораздо удобнее в таком случае, чем эта возня с таблицами по каждому параметру.
ArtByWarlocK
Я не понимаю в чём проблема? Сделал контентный плагин с нужными материалами и подключай к любому проекту. Я вообще считаю что если текстуры требуют корректировки с помощью параметров то это плохие текстуры и нужно их просто перезаписать с нужными корректировками и при использовании просто назначил текстуру и всё. Но дело твоё может раз скучно тебе - веселись, имеешь право.
Kemanorel
> текстуры требуют корректировки с помощью параметров то это плохие текстуры
Я вот считаю иначе, например у текстур слоев ландшафта, у технических масок рафнеса, дисплейсемента и им подобных, я наоборот растягиваю диапазон до значений от 0 до 1 и уже с ними дальше работаю в движке, выставляю требуемые мне верхнее и нижнее значения и контраст. Так в них информации становится больше, и качество лучше, особенно это касается карт дисплейсемента, при Heigh Blend - е слоев.
ArtByWarlocK
Для карт высот тоже так делал, для остальных смысла не вижу, увидеть условную разницу в рафнесе 0.5 и 0.53 на соседних пикселях не реально.
Так что если что то можно запихать в текстуру убрав лишнюю логику из материала лучше так и сделать. Исключения могут быть конечно, но на то они и исключения.
Kemanorel
> разницу в рафнесе 0.5 и 0.53
При большом тайлинге текстур, например скал (увеличения их масштаба) бывает возникает пикселизация отражений при недостаточной информации в рафнесе.
Kemanorel
> Данные можно и в таблицу зашить
В UE есть особый ассет - набор параметров материала.
ArtByWarlocK
Я так и не понял чего ты хочешь добиться.
Тебе нужны наборы предварительно настроенных материалов. Так сделай их. В чем проблема?
> возникает пикселизация отражений при недостаточной информации в рафнесе
Тип компрессии надо ставить на Mask.
Blueprint
> Я так и не понял чего ты хочешь добиться.
В шапке написано - использовать материал инстанс одного материала как параметр другого материала.
Blueprint
> Тип компрессии надо ставить на Mask.
Это если не запаковывать дополнительную информацию в алфаканал RGBA текстуры.
ArtByWarlocK
> В шапке написано - использовать материал инстанс одного материала как параметр другого материала.
Нет там такого. Потому что это никому нужно. Исходная задача решается штатными средствами - а именно Material Layers.