Полезное
Мы Вконтакте
Discord канал
Декали обеспечивают лучшую производительность и более легкое обслуживание. Запись в GBuffer не требует перерасчета освещения и имеет ряд преимуществ:
Декаль отображает рамку в редакторе вокруг затрагиваемой области.
Самый простой способ добавить декаль на сцену — выбрать соответствующий материал декали в Content Browser, а затем щелкнуть правой кнопкой мыши внутри View области и выбирать Place Actor из контекстного меню.
Декаль затем может быть изменена и ориентирована с помощью инструментов трансформации.
После того, как декаль будет создана, она может быть расположена и ориентирована с помощью инструментов манипуляций.
Масштабирование виджета контролирует ширину, высоту и глубину объема наложения декали.
Свойство | Описание |
Material | Указывает материал, который будет использоваться в качестве декали. |
Sort Order | Это позволяет пользователю установить значение для управления тем как несколько декалей будут сортироваться при наложении друг на друга. Более высокие значения оказываются сверху. |
DecalBlendMode параметр определяет свойства материала (диффузное, зеркальным, нормальный, непрозрачности, …), записываемое в GBuffer.
Opacity используется чтобы смешать несколько декалей. Эффективные декали манипулируют только несколькими GBuffer свойствами. В настоящее время некоторым свойствам, в целях оптимизации, представлена альтернатива: DBM_Diffuse, DBM_Specular, DBM_Emissive, DBM_Normal.
Свойство | Описание |
Translucent | Используется для полупрозрачных декалей. |
Stain | Моделирует BaseColor но не работает для запеченного освещения. |
Normal | Отображает Normal свойство и не работает для запеченного освещения. |
Emissive | Лишь добавляет к текущему цвету цвет декали. |
DBuffer_Translucent Color, Normal, Roughness | Трансформируется в DBM_TranslucentNormal если Normal не используется. Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Color | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Color, Normal | Трансформируется в DBM_DBuffer_Color если Normal не используется. Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Color, Roughness | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Normal | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Normal, Roughness | Трансформируется в DBM_DBuffer_Roughness если Normal не используется. Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Roughness | Для неметаллов, работает для запеченного освещения. |
Volumetric Distance Function (experimental) | Будет выводить знаковое расстояние в Opacity в зависимости от вектора освещения. |
DBM_ScreenSpaceMask является особенным, влияет на специальный канал маскирования, который в настоящее время используется SSAO (Ambient Occlusion). Позволяет переопределить вклад декали в SSAO в некоторых областях.
DBM_DiffuseSpecularEmissive режим, который влияет на несколько каналов GBuffer.
Обратите внимание, что режим смешивания материала также влияет на то как значения GBuffer смешиваются друг с другом.
Вы можете использовать режим просмотра GBuffer что бы просмотреть значения GBuffer, которые хранятся для каждого из пикселей.
Сложность мешей на которые накладывается декаль не влияет на производительность. Производительность для декали зависит от сложности шейдера и её размера на экране.
Мы можем дополнительно улучшить производительность. В идеале ограничивающий прямоугольник декали должен быть мал, чтобы получить лучшую производительность. Его можно изменить вручную.
Автоматизированный метод возможен, но хороший дизайнер может также регулировать размещение самостоятельно.
Режим просмотра ShaderComplexity может быть использован чтобы увидеть влияние на производительность, он использует оценку стоимости пиксельного шейдера и накапливается, где несколько декалей перекрывают друг друга.
На данный момент прозрачность не оказывает никакого влияния на производительность. Ниже показана сцена без (слева) и с декалью (справа), в нормальном режиме рендеринга (вверху) и с ShaderComplexity (внизу):
Более темный цвет указывает на более высокую стоимость производительности этих пикселей. Эта информация может быть использована для оптимизации шейдеров, удаления едва видимых декалей или размещения их более эффективно.
Декали могут иметь артефакты, в виде блоков 2х2 пикселя, по краям, как показано на рисунке ниже.
Исправить это можно использовав Decal Derivative (однако осторожно, ибо эта нода имеет большое влияние на производительность). Она возвращает производные по X и Y оси текстуры декали в координаты по умолчанию,
это необходимо для анизотропной фильтрации текстур, но вычисляется иначе чтобы избежать артефакта.
Итог:
DecalMipmapLevel не поддерживает пользовательские UV.