reckfellENGINE

TextureLayered

Базовый контракт массива 2D-слоёв и кубических карт.

На этой странице
class TextureLayeredReckfellSharpНаследует Texture

TextureLayered объединяет запросы размера, формата и данных для Texture2DArray, Cubemap и CubemapArray. Это не Texture3D: слои не образуют непрерывную координату глубины. Фильтрация внутри слоя и между mip-уровнями не означает смешивание соседних слоёв.

GetLayers считает изображения/грани, GetLayerData читает один слой. У cubemap-array число карт равно GetLayers()/6. Создавайте обычные ресурсы через конкретный подкласс и CreateFromImages; hooks с подчёркиванием предназначены для своей реализации.

Проверены нативные запросы собственного подкласса и ресурсные операции конкретных типов в Windows Forward+/Vulkan. Поддержка всех типов на любом backend и корректность произвольного собственного sampler этим не доказаны.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

TextureLayeredКонструктор
# TextureLayered
C#
public TextureLayered();

Создаёт базовый ресурс без загруженных слоёв. Для обычного использования создайте Texture2DArray, Cubemap или CubemapArray и вызовите CreateFromImages. Собственный подкласс должен согласованно предоставлять тип, размеры, формат и данные слоёв.

Методы14

GetFormatImage.Format
# GetFormat
C#
public Image.Format GetFormat();

Возвращает общий Image.Format слоёв от реализации. Базовый Max без поставщика не является форматом готового изображения. Полученные срезы не обязательно имеют RGBA8.

Возвращает Image.Format

Общий формат изображений слоёв.

GetHeightint
# GetHeight
C#
public int GetHeight();

Возвращает высоту основного уровня одного слоя; у cubemap это высота квадратной грани.

Возвращает int

Высота одного слоя в текселях.

GetLayerDataImage
# GetLayerData
C#
public Image GetLayerData(int layer);

Читает один слой по индексу от 0. У конкретных ImageTextureLayered это отдельное Image из GPU-данных; его изменение не обновляет текстуру, используйте UpdateLayer. Image включает собственную mip-цепочку, если она есть. Чтение может быть дорогим, не выполняйте его каждый кадр без необходимости. Для CubemapArray индекс грани равен 6 × номер куба + номер грани.

Параметры
ИмяТипПо умолчанию
layerint—
layer

Индекс слоя от 0 до GetLayers() − 1; для cubemap-array — 6 × номер куба + грань.

Возвращает Image

Image выбранного слоя; проверьте доступность данных перед чтением пикселей.

GetLayeredTypeTextureLayered.LayeredType
# GetLayeredType
C#
public TextureLayered.LayeredType GetLayeredType();

Возвращает вид ресурса: Type2DArray, Cubemap или CubemapArray. Это классификация текстуры, не её RID и не Image.Format.

Возвращает TextureLayered.LayeredType

Вид ресурса из LayeredType.

GetLayersint
# GetLayers
C#
public int GetLayers();

Возвращает количество слоёв. Для Cubemap это 6, для CubemapArray — число граней, кратное 6, а не число кубических карт. Mipmap-уровни не прибавляются к этому числу.

Возвращает int

Число слоёв, включая все грани cubemap.

GetWidthint
# GetWidth
C#
public int GetWidth();

Возвращает ширину основного уровня одного слоя, а не общую ширину всех изображений или импортируемого листа.

Возвращает int

Ширина одного слоя в текселях.

HasMipmapsbool
# HasMipmaps
C#
public bool HasMipmaps();

Возвращает наличие mipmaps у слоёв. У ImageTextureLayered цепочка хранится внутри каждого Image, в отличие от отдельных mip-срезов Texture3D. Флаг не генерирует отсутствующие уровни.

Возвращает bool

Есть ли у слоёв mip-цепочки по контракту реализации.

_GetFormatImage.Format
# _GetFormat
C#
public virtual Image.Format _GetFormat();

Переопределите для собственного TextureLayered. Возвращает общий Image.Format слоёв от реализации. Базовый Max без поставщика не является форматом готового изображения. Полученные срезы не обязательно имеют RGBA8.

Возвращает Image.Format

Общий формат изображений слоёв.

_GetHeightint
# _GetHeight
C#
public virtual int _GetHeight();

Переопределите для собственного TextureLayered. Возвращает высоту основного уровня одного слоя; у cubemap это высота квадратной грани.

Возвращает int

Высота одного слоя в текселях.

_GetLayerDataImage
# _GetLayerData
C#
public virtual Image _GetLayerData(int layerIndex);

Поставщик одного Image для собственного TextureLayered, вызываемый нативным GetLayerData. Согласуйте данные с форматом, размером и mipmaps. Обработайте границы индекса в реализации; поведение произвольного подкласса не обязано совпадать с GPU-ресурсом ImageTextureLayered.

Параметры
ИмяТипПо умолчанию
layerIndexint—
layerIndex

Индекс слоя, для которого собственная реализация предоставляет Image.

Возвращает Image

Image указанного слоя, согласованное с метаданными ресурса.

_GetLayeredTypeuint
# _GetLayeredType
C#
public virtual uint _GetLayeredType();

Поставщик вида собственного TextureLayered. C# hook возвращает uint: используйте числовое значение соответствующего TextureLayered.LayeredType. Значение не выделяет GPU-текстуру автоматически.

Возвращает uint

Числовое uint-значение LayeredType.

_GetLayersint
# _GetLayers
C#
public virtual int _GetLayers();

Переопределите для собственного TextureLayered. Возвращает количество слоёв. Для Cubemap это 6, для CubemapArray — число граней, кратное 6, а не число кубических карт. Mipmap-уровни не прибавляются к этому числу.

Возвращает int

Число слоёв, включая все грани cubemap.

_GetWidthint
# _GetWidth
C#
public virtual int _GetWidth();

Переопределите для собственного TextureLayered. Возвращает ширину основного уровня одного слоя, а не общую ширину всех изображений или импортируемого листа.

Возвращает int

Ширина одного слоя в текселях.

_HasMipmapsbool
# _HasMipmaps
C#
public virtual bool _HasMipmaps();

Переопределите для собственного TextureLayered. Возвращает наличие mipmaps у слоёв. У ImageTextureLayered цепочка хранится внутри каждого Image, в отличие от отдельных mip-срезов Texture3D. Флаг не генерирует отсутствующие уровни.

Возвращает bool

Есть ли у слоёв mip-цепочки по контракту реализации.

TextureLayered.LayeredType

ЗначениеОписание
Cubemap = 1

Texture это... Cubemap, с каждой стороной в своем собственном слое (в общей сложности 6).

CubemapArray = 2

Texture это... CubemapArray, с каждой кубической картой из шести слоев.

Type2DArray = 0

Texture является общим Texture2DArray.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.