Изначально декалями называли напечатанные картинки, которые переносились на поверхность с бумажной основы. Это могли быть надписи, герои мультфильмов, логотипы, реклама и так далее. В геймдеве ситуация несколько другая. Декаль формирует дополнительное изображение на полигональной сетке объекта и обычно состоит из одного полигона (плейна), который находится как можно ближе к нужной поверхности. Важно расстояние от декали до плоскости, оно не должно быть совсем минимальным, из-за этого возникает стробление полигонов – Zfight. Так называется ошибка отображения полигонов, когда они находятся в одной координате по глубине, или очень близко друг к другу. При этом рендер движок не может определить какой полигон или плоскость отрисовывать в первую очередь, а будет сделан случайный выбор. Проверить на ошибку размещения декали можно в любом 3D редакторе. Форма самой плашки (декали) может быть не только прямоугольной или квадратной. Когда край поверхности или угол, на которую накладывается декаль, имеет сложную форму, край декали также может иметь форму края меша.
Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus
Декали в первую очередь необходимы как средство обогащения картинки. Особенно это касается тайловых текстур, которые повторяются по всем осям, при этом на больших поверхностях, по типу стен, будет виден тайлинг (повторяющийся рисунок текстуры). Однако это касается не только тайлов, например, декали могут быть использованы как повреждения или отверстия от пуль или огня на технике или зданиях. Кроме повреждений, это могут быть, мох, потеки, дефекты или разрушения штукатурки, листья, загрязнения, всевозможные баннеры, граффити, рекламные объявления или любой плоский рисунок, созданный текстурой, который нужно перенести на поверхность. Также плашками создают всевозможные люки, разметку или лужи на дорогах. При этом, декали могут быть размещены программно в случайных местах модели с помощью средств игрового движка. Таким образом окружение или основные модели в играх становятся более интересными и разнообразными.
Условно декали можно разделить на две группы по количеству используемых текстурных карт. У одних будет использована карта normal для рельефа, у вторых нет. Но при этом у каждой группы будут свои карты Metal/Roughness или Specular/Gloss в зависимости от стандарта PBR. Нормали применяются в тех случаях, когда декалями создаются повреждения поверхности, в другом случае без использования нормала, это могут быть все те же загрязнения, мох на стенах, баннеры и прочее. При этом, карты Metal/Roughness могут быть не отдельными файлами, а находится в одном из каналов RGBA (красный, зеленый, синий, прозрачность). Например, в карте нормал может быть в синем канале – Metal (этот канал обычно не используется в игровых движках), а в альфе – Roughness. А так как Metal/Roughness использует grayscale режим и не является цветным изображением в прямом понимании, а лишь информационной картой, то их безболезненно можно положить в описанные каналы. При этом часть декали повреждений или загрязнений будет прозрачной для реалистичного наложения на поверхность объекта. Всё это оптимизирует процесс отображения и уменьшает нагрузку на видеокарту.
Декали собирают в текстурные атласы или тримы по их типу. Отдельно потеки, отдельно повреждения, отдельно дорожная разметка и так далее. При этом разрешение атласа редко превышает 2К (2048x2048px), а часто и ниже – 1К (1024x1024px). Нет необходимости создавать декали с очень большим разрешением, так как в общей сцене они будут занимать не так много места, как например площадь стены или дороги. Но как правило их тексель выше, чем на объектах в игровом окружении или равен ему.
Таким образом, применение декалей делает игровое окружение более разнообразным, интересным и реалистичным.
Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus
Можете поддержать автора донатом Канал никак не монетизируется. Статьи выкладываются на полном энтузиазме. Пишите своё мнение в комментариях, задавайте вопросы, подписывайтесь и обязательно поставьте лайк. Это важно для развития канала. Спасибо.