Всем привет. Я раньше любил играться со слоями в материале модельке, чтобы делать различные дополнительные эффекты, типа световых волн от воды на здании, если в здании есть водичка, к примеру, какие-нибудь эффекты матрицы и так далее. В рефордже у моделек слои заняты под карты нормалей, тимколора и так далее. Может кто-нибудь пробовал добавлять дополнительные слои и работало ли? У меня вот не работает, а дублировать геосет для этих целей ох как не хочется. Заранее спасибо)

Принятый ответ

Да просто интересно, находили ли люди способ как обойти это ограничение.
Я не пробовал добавлять слои в HD, и не встречал инфу о таком подходе, но чисто технически такого ограничения нет. Слои всё ещё можно добавлять, и указывать им параметры. Проблема то в том, что никто толком не проверял и не описывал как это работает.
Здесь ещё важно понимать с каким именно форматом работаем. В патче 1.33 модели были обновлены до формата mdx1100, до этого был формат mdx1000. Работают и те и другие, но именно структура материала поменялась.
Типовой материал в MDX1000 выглядит так:
//FormatVersion 1000
Material {
		Shader "Shader_HD_DefaultUnit",
		Layer {
			FilterMode None,
			static TextureID 0,
		}
		Layer {
			FilterMode None,
			static TextureID 1,
		}
		Layer {
			FilterMode None,
			static TextureID 2,
		}
		Layer {
			FilterMode None,
			static TextureID 3,
		}
		Layer {
			FilterMode None,
			static TextureID 4,
		}
		Layer {
			FilterMode None,
			static TextureID 5,
		}
	}
А в MDX1100 так:
//FormatVersion 1100
Material {
		Layer {
			FilterMode Transparent,
			ShaderTypeId 1, //HD
			static TextureID 0,
			static NormalTextureID 1,
			static ORMTextureID 2,
			static EmissiveTextureID 3,
			static TeamColorTextureID 4,
			static ReflectionsTextureID 5,
		}
	}
То есть, в старом HD формате был принцип 1 слой — 1 текстура, а сейчас все текстуры загнаны под один слой, и шейдер также указывается на уровне слоя. Честно говоря, я не представляю как правильно всунуть слой в старую структуру, ничего не сломав, но в новой это выглядит реализуемо.
В той же Ретере можно добавить в материал Layer 2. Можно оставить его в режиме HD и просто вставить стандартные заглушки на место ненужных текстур (textures/normal.dds для нормалей, textures/orm.dds для ORM и т.д.), а можно переключить в режим SD (именно сам слой, а не весь материал, то есть HD-основа останется) и использовать одну текстуру. Все параметры вроде наложения, альфы и прочего будут доступны.

Это просто на уровне теории и мыслей вслух, не могу конкретно сказать как оно будет выглядеть в игре, ибо надо тестить, и смотреть на результат. Но тут уже всё в ваших руках.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
23
1 год назад
0
Ну если игра со слоями важнее, чем те же нормали, то можно переключить шейдер нужного материала в режим SD. Скорее всего (я сам не пробовал, но 99%, что это так) это вернёт тот же режим работы слоёв, что был в классике. Вместе с этим можно предварительно попробовать запечь все слои в одну текстуру с помощью Retera's Model Studio, чтобы сохранить некоторую имитацию HD материала.
А вообще, быть может нужные эффекты можно воспроизвести другим способом? Металлический блеск можно сделать отредактировав ORM текстуру, светящееся изображение можно наложить с помощью Emissive текстуры, объёмное свечение можно сделать с помощью параметра Fresnel. Просто из описания непонятно какой результат ожидается по итогу.
0
3
1 год назад
Отредактирован gellin
0
poisoNDealer
Да просто интересно, находили ли люди способ как обойти это ограничение. По сути же в HD-шейдере теперь стабильно 5 слоев, хотелось бы узнать, пробовал ли кто-то добавить большее количество и получилось ли. Статичные текстуры можно накладывать в тот же тимколор, я согласен, но проблема в том, что этот слой обрабатывается отдельно какими-то внутренними алгоритмами игры. Нельзя, допустим, заставить "не-основной" слой иметь какие-то свои параметры, например, анимировать его, я пробовал, не выходило.
В SD этот функционал был классной фишкой. Вот например, представь стену со статичной текстурой, и я дополнительно накладываю на нее текстуру, ответственную за водные блики, и я слой с этой текстурой могу спокойно анимировать, менять прозрачность, все как мне вздумается. В HD я вынужден пока отказаться от этого((
1
23
1 год назад
1
Да просто интересно, находили ли люди способ как обойти это ограничение.
Я не пробовал добавлять слои в HD, и не встречал инфу о таком подходе, но чисто технически такого ограничения нет. Слои всё ещё можно добавлять, и указывать им параметры. Проблема то в том, что никто толком не проверял и не описывал как это работает.
Здесь ещё важно понимать с каким именно форматом работаем. В патче 1.33 модели были обновлены до формата mdx1100, до этого был формат mdx1000. Работают и те и другие, но именно структура материала поменялась.
Типовой материал в MDX1000 выглядит так:
//FormatVersion 1000
Material {
		Shader "Shader_HD_DefaultUnit",
		Layer {
			FilterMode None,
			static TextureID 0,
		}
		Layer {
			FilterMode None,
			static TextureID 1,
		}
		Layer {
			FilterMode None,
			static TextureID 2,
		}
		Layer {
			FilterMode None,
			static TextureID 3,
		}
		Layer {
			FilterMode None,
			static TextureID 4,
		}
		Layer {
			FilterMode None,
			static TextureID 5,
		}
	}
А в MDX1100 так:
//FormatVersion 1100
Material {
		Layer {
			FilterMode Transparent,
			ShaderTypeId 1, //HD
			static TextureID 0,
			static NormalTextureID 1,
			static ORMTextureID 2,
			static EmissiveTextureID 3,
			static TeamColorTextureID 4,
			static ReflectionsTextureID 5,
		}
	}
То есть, в старом HD формате был принцип 1 слой — 1 текстура, а сейчас все текстуры загнаны под один слой, и шейдер также указывается на уровне слоя. Честно говоря, я не представляю как правильно всунуть слой в старую структуру, ничего не сломав, но в новой это выглядит реализуемо.
В той же Ретере можно добавить в материал Layer 2. Можно оставить его в режиме HD и просто вставить стандартные заглушки на место ненужных текстур (textures/normal.dds для нормалей, textures/orm.dds для ORM и т.д.), а можно переключить в режим SD (именно сам слой, а не весь материал, то есть HD-основа останется) и использовать одну текстуру. Все параметры вроде наложения, альфы и прочего будут доступны.

Это просто на уровне теории и мыслей вслух, не могу конкретно сказать как оно будет выглядеть в игре, ибо надо тестить, и смотреть на результат. Но тут уже всё в ваших руках.
Загруженные файлы
Принятый ответ
0
3
1 год назад
0
poisoNDealer:
Сорян, курсач писал, не заходил на форум. Огромное спасибо за такой развернутый ответ. У меня в ретере не работают некоторые кнопки. Я хз, но кнопка добавить слой, изменить значение какой-либо строки и прочее не работают, я поэтому думал, что это не работает... Приходится все менять в текстовом файле... Попробую тогда разобраться, что не так!
0
23
1 год назад
0
Я хз, но кнопка добавить слой
Да, есть такое, софт кривой, но другого нам никто не сделает. На вкладке Text можно редактировать модель в текстовом виде, и можно добавить слой материалу. После этого он отобразится на вкладке Model и с ним можно будет работать в интерфейсе
Загруженные файлы
0
3
1 год назад
0
poisoNDealer:
У меня настолько криво работает ретера, что этим способом новая вкладка не появляется, наоборот, встроенный оптимизатор строк в ретере просто удаляет эти строки при сохранении модельки в mdx, а формат mdl вар не всегда читает, если моделька "сложная" xDD. Ну буду разбираться, что с ретерой не так)
0
23
1 год назад
0
Там же не надо в mdl сохранять, всё в mdx можно делать. После правки кода во вкладке Text нужно там же нажть на Apply, и изменения применятся в текущей модели. Главное со скобками и запятыми не напутать, и не сделать пустой строки
Чтобы оставить комментарий, пожалуйста, войдите на сайт.