Decal
Entity который проецирует текстуру на MeshInstance3D.
Entity который проецирует текстуру на MeshInstance3D.
Decals используется для проецирования текстуры на Mesh Используйте Dackals для добавления деталей в сцену без ущерба для основной части. MeshОни часто используются для того, чтобы добавить погоду в здания, добавить грязь или грязью в землю или добавить разнообразие в реквизиты.
Они сделаны из Aabb и группой, Texture2Ds Уточнение Color, нормальные, УРМ (оккумулирование, шероховатость, металлические) и выбросы. Aabb , изменяя ориентацию Decal , влияет на направление, в котором они проецируются. По умолчанию декалы проецируются вниз (т.е. с положительного Y до отрицательного Y).
:: Texture2Ds, связанные с Decal , автоматически хранятся в текстовом атласе, который используется для рисования пропусков, с тем чтобы все пропуска могли быть нанесены одновременно.
Примечание: Декады не могут влиять на прозрачность основного материала, независимо от его режима транспарентности (альфа-смесь, альфа-ножник, альфа-хэш, непрозрачный предпроход). Это означает, что прозрачные или прозрачные участки материала останутся прозрачными или транспарентными, даже если на них наносится непрозрачный пропуск.
Примечание: Декады поддерживаются только в методах переднего+ и мобильного отображения, а не совместимости. При использовании метода подвижного отображения на каждом сеточном ресурсе может быть выставлено только 8 пропусков. Попытка вывешивать более 8 наклеек на одном сетном ресурсе приведет к тому, что по мере движения камеры декалации будут мигать внутрь и снаружи.
Примечание: При использовании метода подвижного отображения пропуски будут правильно влиять только на слежки, видимость которых AABB пересекается с пропуском AABB. Если использовать тень для деформации сетки таким образом, чтобы она выходила за пределы AABB, GeometryInstance3D.ExtraCullMargin В противном случае пропуск может не быть виден в сетке.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
DecalКонструктор
public Decal();Свойства15
AlbedoMixСвойство
public float AlbedoMix { get; set; }Вес изменения базового цвета. Ноль сохраняет исходный albedo поверхности, но не отключает Normal/ORM при наличии TextureAlbedo с alpha-маской. Для отключения всего экземпляра используйте Visible=false.
CullMaskСвойство
public uint CullMask { get; set; }Битовая маска слоёв рендеринга получателей. Декаль применяется при ненулевом пересечении с VisualInstance3D.Layers меша. Это не PhysicsBody3D.CollisionLayer и не номер единственного слоя. В примере CullMask=2 выбирает пол с Layers=2.
DistanceFadeBeginСвойство
public float DistanceFadeBegin { get; set; }Расстояние от камеры до позиции декали, после которого начинается затухание при DistanceFadeEnabled=true. До него вклад сохраняется. Для предсказуемой настройки используйте неотрицательное расстояние.
DistanceFadeEnabledСвойство
public bool DistanceFadeEnabled { get; set; }Включает затухание по расстоянию между камерой и позицией декали. Использует DistanceFadeBegin и DistanceFadeLength. Это визуальная оптимизация декали, не остановка скриптов и не удаление Entity.
DistanceFadeLengthСвойство
public float DistanceFadeLength { get; set; }Длина перехода после DistanceFadeBegin. При включённом distance fade декаль исключается за Begin+Length. Используйте положительное значение: нулевая длина не задаёт плавного перехода.
EmissionEnergyСвойство
public float EmissionEnergy { get; set; }Множитель TextureEmission. Ноль убирает этот вклад, но не albedo/Normal/ORM. Свечение декали не создаёт Light3D и не гарантирует освещение соседних мешей.
LowerFadeСвойство
public float LowerFade { get; set; }Неотрицательная степень затухания к отрицательной границе локальной Y объёма проекции. Ноль отключает этот градиент; отрицательное присвоение становится нулём. Уменьшение Size.Y меняет область пересечения, а не этот показатель.
ModulateСвойство
public Color Modulate { get; set; }RGB умножает цвет albedo и emission. Alpha ослабляет albedo и связанное с его маской смешивание Normal/ORM; emission не умножается на Modulate.A. Поэтому alpha=0 не является надёжным выключателем всей декали.
NormalFadeСвойство
public float NormalFade { get; set; }Ослабление проекции на поверхностях с неподходящим направлением геометрической нормали. Положительное значение задействует угловой градиент; это не сила TextureNormal. В примере используется 0.5; угловые граничные случаи отдельно не проверены.
SizeСвойство
public Vector3 Size { get; set; }Полный размер объёма проекции по локальным осям. X/Z задают область текстуры, Y — глубину. Объём должен пересекать поверхность. Каждая компонента при присваивании ограничивается снизу значением 0.001; это не половина размера.
TextureAlbedoСвойство
public Texture2D TextureAlbedo { get; set; }Цвет и alpha-маска декали. Alpha участвует также в смешивании Normal и ORM; для изменения только этих каналов сохраните Albedo-текстуру и установите AlbedoMix=0. Отсутствие этой текстуры не равнозначно нулевому AlbedoMix.
TextureEmissionСвойство
public Texture2D TextureEmission { get; set; }Аддитивное свечение по RGB текстуры, независимое от наличия TextureAlbedo и её alpha-маски. Области без свечения должны быть чёрными по RGB; одна прозрачность не гарантирует отсутствие emission. Яркость умножается на EmissionEnergy и Modulate.RGB.
TextureNormalСвойство
public Texture2D TextureNormal { get; set; }Карта нормалей меняет освещение поверхности внутри alpha-маски TextureAlbedo, а не её геометрию или коллизию. Для normal-only декали задайте обе текстуры и AlbedoMix=0. Пример не проверяет импорт и ориентацию карт из сторонних редакторов.
TextureOrmСвойство
public Texture2D TextureOrm { get; set; }Упакованные каналы: R — ambient occlusion, G — roughness, B — metallic. Их смешивание использует alpha TextureAlbedo. Пример подтверждает изменение материала с AlbedoMix=0 и исчезновение этого влияния без Albedo-текстуры.
UpperFadeСвойство
public float UpperFade { get; set; }Неотрицательная степень затухания к положительной границе локальной Y объёма проекции. Ноль отключает этот градиент; отрицательное присвоение становится нулём. Это не distance fade от камеры.
Методы24
GetAlbedoMixfloat
public float GetAlbedoMix();Читает AlbedoMix у этого экземпляра. Не определяет по одному значению, видна ли проекция на поверхности.
floatВес изменения базового цвета. Ноль сохраняет исходный albedo поверхности, но не отключает Normal/ORM при наличии TextureAlbedo с alpha-маской. Для отключения всего экземпляра используйте Visible=false.
GetCullMaskuint
public uint GetCullMask();Читает CullMask у этого экземпляра. Не определяет по одному значению, видна ли проекция на поверхности.
uintБитовая маска слоёв рендеринга получателей. Декаль применяется при ненулевом пересечении с VisualInstance3D.Layers меша. Это не PhysicsBody3D.CollisionLayer и не номер единственного слоя. В примере CullMask=2 выбирает пол с Layers=2.
GetDistanceFadeBeginfloat
public float GetDistanceFadeBegin();floatGetDistanceFadeLengthfloat
public float GetDistanceFadeLength();floatGetEmissionEnergyfloat
public float GetEmissionEnergy();floatGetLowerFadefloat
public float GetLowerFade();floatGetModulateColor
public Color GetModulate();Читает Modulate у этого экземпляра. Не определяет по одному значению, видна ли проекция на поверхности.
ColorRGB умножает цвет albedo и emission. Alpha ослабляет albedo и связанное с его маской смешивание Normal/ORM; emission не умножается на Modulate.A. Поэтому alpha=0 не является надёжным выключателем всей декали.
GetNormalFadefloat
public float GetNormalFade();floatGetSizeVector3
public Vector3 GetSize();Читает Size у этого экземпляра. Не определяет по одному значению, видна ли проекция на поверхности.
Vector3Полный размер объёма проекции по локальным осям. X/Z задают область текстуры, Y — глубину. Объём должен пересекать поверхность. Каждая компонента при присваивании ограничивается снизу значением 0.001; это не половина размера.
GetTextureTexture2D
public Texture2D GetTexture(Decal.DecalTexture type);Читает назначенный ресурс выбранного канала. Не захватывает результат проекции и не возвращает изображение поверхности.
| Имя | Тип | По умолчанию |
|---|---|---|
type | Decal.DecalTexture | — |
typeКанал Albedo, Normal, Orm или Emission. Не передавайте Max.
Texture2DНазначенная Texture2D либо null, если канал пуст. Наличие ресурса не подтверждает видимость декали.
GetUpperFadefloat
public float GetUpperFade();floatIsDistanceFadeEnabledbool
public bool IsDistanceFadeEnabled();boolSetAlbedoMixvoid
public void SetAlbedoMix(float energy);Задаёт AlbedoMix. Вес изменения базового цвета. Ноль сохраняет исходный albedo поверхности, но не отключает Normal/ORM при наличии TextureAlbedo с alpha-маской. Для отключения всего экземпляра используйте Visible=false.
| Имя | Тип | По умолчанию |
|---|---|---|
energy | float | — |
energyВес albedo-смешивания, обычно 0…1. Несмотря на имя energy, это не EmissionEnergy.
SetCullMaskvoid
public void SetCullMask(uint mask);Задаёт CullMask. Битовая маска слоёв рендеринга получателей. Декаль применяется при ненулевом пересечении с VisualInstance3D.Layers меша. Это не PhysicsBody3D.CollisionLayer и не номер единственного слоя. В примере CullMask=2 выбирает пол с Layers=2.
| Имя | Тип | По умолчанию |
|---|---|---|
mask | uint | — |
maskБитовая маска слоёв рендеринга получателей; ноль не выбирает ни одного слоя.
SetDistanceFadeBeginvoid
public void SetDistanceFadeBegin(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetDistanceFadeLengthvoid
public void SetDistanceFadeLength(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetEmissionEnergyvoid
public void SetEmissionEnergy(float energy);| Имя | Тип | По умолчанию |
|---|---|---|
energy | float | — |
SetEnableDistanceFadevoid
public void SetEnableDistanceFade(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetLowerFadevoid
public void SetLowerFade(float fade);| Имя | Тип | По умолчанию |
|---|---|---|
fade | float | — |
SetModulatevoid
public void SetModulate(Color color);Задаёт Modulate. RGB умножает цвет albedo и emission. Alpha ослабляет albedo и связанное с его маской смешивание Normal/ORM; emission не умножается на Modulate.A. Поэтому alpha=0 не является надёжным выключателем всей декали.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorRGB-множитель цвета и alpha для маски albedo/Normal/ORM. Alpha не выключает emission.
SetNormalFadevoid
public void SetNormalFade(float fade);| Имя | Тип | По умолчанию |
|---|---|---|
fade | float | — |
SetSizevoid
public void SetSize(Vector3 size);Задаёт Size. Полный размер объёма проекции по локальным осям. X/Z задают область текстуры, Y — глубину. Объём должен пересекать поверхность. Каждая компонента при присваивании ограничивается снизу значением 0.001; это не половина размера.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector3 | — |
sizeПолный локальный размер. Каждая компонента ограничивается снизу 0.001.
SetTexturevoid
public void SetTexture(Decal.DecalTexture type, Texture2D texture);Назначает текстуру в указанный канал декали. null очищает канал. Для Normal/ORM нужна отдельная TextureAlbedo с alpha-маской; канал Emission обрабатывается независимо.
| Имя | Тип | По умолчанию |
|---|---|---|
type | Decal.DecalTexture | — |
texture | Texture2D | — |
typeКанал DecalTexture.Albedo, Normal, Orm или Emission. Max — ограничитель перечисления, не канал.
textureТекстура выбранного канала либо null для удаления. Проверяйте поддержку конкретного вида Texture2D: ссылка на viewport не является обычной импортированной текстурой atlas декалей.
SetUpperFadevoid
public void SetUpperFade(float fade);| Имя | Тип | По умолчанию |
|---|---|---|
fade | float | — |
Decal.DecalTexture
| Значение | Описание |
|---|---|
Albedo = 0 |
|
Emission = 3 |
|
Max = 4 | Максимальный размер перечисления |
Normal = 1 |
|
Orm = 2 |
|