CanvasTexture
Набор цветовой, нормальной и бликовой карт для 2D-освещения.
CanvasTexture объединяет ссылки на DiffuseTexture, NormalTexture и SpecularTexture для CanvasItem. Назначьте её текстурой Sprite2D или другого подходящего 2D-объекта; источник света, материал и карты должны быть согласованы отдельно. Само назначение карты нормалей не добавляет рельефную геометрию или освещение. Это ресурс 2D, а не замена материала 3D.
Размер, GetImage и HasAlpha определяются только DiffuseTexture. GetImage не собирает нормали и блик в итоговый освещённый кадр. NormalTexture и SpecularTexture используют согласованные UV; ресурс не упаковывает карты автоматически. Во все три канала можно назначить обычные Texture2D или null, но нельзя назначить CanvasTexture.
TextureFilter и TextureRepeat переопределяют выборку ресурса; ParentNode оставляет наследование CanvasItem. Режим mipmaps не генерирует цепочку. Для обычного SpecularShininess используйте 0…1, даже если setter хранит другие значения. SpecularColor.a не задаёт альфу параметров шейдинга: вместо неё используется shininess.
Проверены ссылки каналов, параметры, чтение цветовой карты, очистка и независимая загрузка ресурса в Windows Forward+/Vulkan. Соответствие RGB/альфы specular-карты параметрам установлено по исходникам шейдера. Рендер освещения, качество нормалей и бликов, 3D и другие ОС этим прогоном не подтверждены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
CanvasTextureКонструктор
public CanvasTexture();Создаёт ресурс с тремя пустыми каналами, белым SpecularColor, SpecularShininess = 1 и наследуемыми фильтрацией/повторением. RID принадлежит ресурсу; не освобождайте его вручную. Без DiffuseTexture GetImage возвращает null.
Свойства7
DiffuseTextureСвойство
public Texture2D DiffuseTexture { get; set; }Основная цветовая текстура; по умолчанию null. Её логические размеры, HasAlpha и GetImage используются соответствующими запросами CanvasTexture. Без неё размеры 1×1, GetImage возвращает null, HasAlpha — false. Назначение хранит ссылку, а не копию. В этот канал нельзя назначить CanvasTexture, включая другой экземпляр.
NormalTextureСвойство
public Texture2D NormalTexture { get; set; }Карта нормалей для 2D-освещения; по умолчанию null. Она не меняет геометрию, силуэт или коллизии и не определяет размер CanvasTexture. Подготовьте её с правильным направлением нормалей и согласованными UV цветовой карты. Назначение не включает источник света автоматически. CanvasTexture в качестве карты не принимается; null очищает канал.
SpecularColorСвойство
public Color SpecularColor { get; set; }Множитель RGB блика, по умолчанию белый. Альфа Color сохраняется getter-ом, но в параметрах canvas-шейдинга альфа берётся из SpecularShininess, а не из этого цвета. Это не модуляция всей цветовой текстуры. Видимый результат зависит от освещения и шейдера; здесь проверено хранение параметра, не красота блика.
SpecularShininessСвойство
public float SpecularShininess { get; set; }Параметр резкости блика, по умолчанию 1; для обычного использования задавайте конечное значение 0…1. Getter/setter не ограничены диапазоном подсказки инспектора: значение 2 сохраняется как 2. Это не обещание корректного GPU-результата вне диапазона и не roughness из материала 3D. При наличии SpecularTexture её альфа также участвует в параметре.
SpecularTextureСвойство
public Texture2D SpecularTexture { get; set; }Карта блика для 2D-освещения; по умолчанию null. В текущем canvas-шейдере RGB модулирует цвет блика, альфа — shininess; результат умножается на SpecularColor.rgb и SpecularShininess. Это не metallic/roughness-карта материала 3D. CanvasTexture в этот канал не принимается; null очищает ссылку. Размеры ресурса по-прежнему берутся из DiffuseTexture.
TextureFilterСвойство
public CanvasItem.TextureFilterEnum TextureFilter { get; set; }Переопределение фильтрации этой CanvasTexture; по умолчанию CanvasItem.TextureFilterEnum.ParentNode наследует настройку CanvasItem. Конкретный режим задаёт выборку независимо от базовой настройки объекта. Выбор режима с mipmaps не создаёт mipmap-цепочку в исходных картах. Используйте действительное значение enum.
TextureRepeatСвойство
public CanvasItem.TextureRepeatEnum TextureRepeat { get; set; }Переопределение повторения этой CanvasTexture; по умолчанию CanvasItem.TextureRepeatEnum.ParentNode. Disabled отключает повторение, Enabled повторяет, Mirror чередует отражённые повторы. Это настройка выборки текстур; она не превращает AtlasTexture.Region в отдельное бесшовное изображение. Используйте действительное значение enum.
Методы14
GetDiffuseTextureTexture2D
public Texture2D GetDiffuseTexture();Возвращает CanvasTexture.DiffuseTexture.
Texture2DТекущее значение DiffuseTexture. Ссылка на текстуру общая, не копия; может быть null.
GetNormalTextureTexture2D
public Texture2D GetNormalTexture();Возвращает CanvasTexture.NormalTexture.
Texture2DТекущее значение NormalTexture. Ссылка на текстуру общая, не копия; может быть null.
GetSpecularColorColor
public Color GetSpecularColor();Возвращает CanvasTexture.SpecularColor.
ColorТекущее значение SpecularColor.
GetSpecularShininessfloat
public float GetSpecularShininess();Возвращает CanvasTexture.SpecularShininess.
floatТекущее значение SpecularShininess.
GetSpecularTextureTexture2D
public Texture2D GetSpecularTexture();Возвращает CanvasTexture.SpecularTexture.
Texture2DТекущее значение SpecularTexture. Ссылка на текстуру общая, не копия; может быть null.
GetTextureFilterCanvasItem.TextureFilterEnum
public CanvasItem.TextureFilterEnum GetTextureFilter();Возвращает CanvasTexture.TextureFilter.
CanvasItem.TextureFilterEnumТекущее значение TextureFilter.
GetTextureRepeatCanvasItem.TextureRepeatEnum
public CanvasItem.TextureRepeatEnum GetTextureRepeat();Возвращает CanvasTexture.TextureRepeat.
CanvasItem.TextureRepeatEnumТекущее значение TextureRepeat.
SetDiffuseTexturevoid
public void SetDiffuseTexture(Texture2D texture);Задаёт CanvasTexture.DiffuseTexture.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
textureОсновная цветовая Texture2D или null; CanvasTexture не принимается.
SetNormalTexturevoid
public void SetNormalTexture(Texture2D texture);Задаёт CanvasTexture.NormalTexture.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
textureКарта нормалей Texture2D или null; CanvasTexture не принимается.
SetSpecularColorvoid
public void SetSpecularColor(Color color);Задаёт CanvasTexture.SpecularColor.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorМножитель RGB блика; альфа параметров шейдинга задаётся SpecularShininess.
SetSpecularShininessvoid
public void SetSpecularShininess(float shininess);Задаёт CanvasTexture.SpecularShininess.
| Имя | Тип | По умолчанию |
|---|---|---|
shininess | float | — |
shininessКонечное значение 0…1 для обычного использования; setter не ограничивает подсказкой инспектора.
SetSpecularTexturevoid
public void SetSpecularTexture(Texture2D texture);Задаёт CanvasTexture.SpecularTexture.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
textureКарта блика Texture2D или null; CanvasTexture не принимается.
SetTextureFiltervoid
public void SetTextureFilter(CanvasItem.TextureFilterEnum filter);Задаёт CanvasTexture.TextureFilter.
| Имя | Тип | По умолчанию |
|---|---|---|
filter | CanvasItem.TextureFilterEnum | — |
filterДействительный режим фильтрации; ParentNode наследует CanvasItem.
SetTextureRepeatvoid
public void SetTextureRepeat(CanvasItem.TextureRepeatEnum repeat);Задаёт CanvasTexture.TextureRepeat.
| Имя | Тип | По умолчанию |
|---|---|---|
repeat | CanvasItem.TextureRepeatEnum | — |
repeatДействительный режим повторения; ParentNode наследует CanvasItem.