Найти в Дзене
Kiber Shaman

Немного о материальном...

Всем полный дзен !

Нет, я не про деньги. По крайней мере, не сегодня. Сегодня немного размышлений над пайплайном для материалов разных объектов.
Для примера немного пошаманив, я собрал шейдер для металлических объектов. И для теста затекстурил им решётку.

Решетка намеренно гиперлоупольная, чтобы показать всю важность работы над материалами.

Подобный тип работы скорее интеллектуальный, так как это в будущем много на чем отразиться и надо сразу по максимуму всего учесть.

Однако, слишком затягивать тоже не стоит. Иначе есть риск увязнуть в дебрях своего мозга навсегда и так ничего и не сделать. Вы в любом случае о чем-то забудете. Но важно создать какой-то хотя бы примерный набросок, минимально рабочий прототип, от которого уже потом можно будет отталкиваться.

Сначала определяемся с текселем.

Его я принял за 1024 пикселя на метр. Это даже чуть больше, чем сейчас принято для игр от 3го лица. Намерянно беру с запасом, идя на опережение текущих технологий... К тому же всегда проще откатиться в меньшую сторону, чем наоборот.

Готовый мастер-материал имеет параметры:

— UVшка — для регуляции тайлинга микротекстуры

— сменная текстура с масками

— сменная карта нормалей

т. е. для каждого объекта с уникальной геометрией будет создан свой инстанс-материал, а вот мастер-материал у них один общий. Это снизит нагрузку на железо.

второй важный нюанс — то, что сменные текстуры (маски и нормали) могут быть весьма низкого разрешения, особенно маски. Так как детализация создается уже внутри шейдера, а маски лишь показывают где чем красить объект.


Чтобы было понятнее: на скрине у меня маски имеют разрешение всего 256×256 пикселя. и это для объекта 3 на 3 метра! т. е.

с обычным безмасочным подходом мне бы пришлось брать текстуру 4к (4096×4096) и плюс для каждого объекта был бы нужен свой уникальный мастер-материал. А так можно обойтись лишь маленькой текстуркой.

карту нормалей, также можно уменьшить примерно до 1024 пикселя без явной потери качества, как показали тесты.


материал имеет 4 слоя:

  • собственно металл с выбором цвета и блеска
  • слой ржавчины (по маске)
  • слой грязи (по маске)
  • слой царапин/повреждений/потёртостей (по маске)

в дальнейшем я планирую добавить вертекс-пэинт. это позволит избавиться от масок и вносить разнообразие в однотипные ассеты на базе одной геометрии и одного инстанс-материала делать совершенно разные (внешне) объекты.