reckfellENGINE

OpenXRCompositionLayer

Общая основа поверхностей OpenXR composition layers.

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

Базовая Entity3D для вывода отдельной поверхности через OpenXR compositor. Используйте конкретную форму Quad/Cylinder/Equirect. LayerViewport, AlphaBlend и native SortOrder не являются обычным GUI z-index. Назначайте отдельный viewport с положительным Size и явным Always update; ссылка не передаёт владение.

Наличие Entity и IsNativelySupported не доказывает готовность swapchain или кадра. В редакторе/без API и при отсутствии runtime-поддержки возможен mesh fallback; его качество, depth behavior и spectator view отличаются. SortOrder на fallback mesh не действует.

Camera ancestor выбирает head-locked пространство; иначе world-locked. Не используйте scale/shear в иерархии, меняйте размеры формы. LocalFloor не размещает меню перед переместившимся игроком. Hole punch требует отрицательного SortOrder и проверки композиции на устройстве.

Настройка и QuadUiRay. 20 headless проверок покрывают ray-to-pixel helper и metadata, но не native submission, GUI events, hole-punch pixels, шлем или export. В этой редактуре проверены только выбранные основные члены базового класса, не весь его API.

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

Свойства19

AlphaBlendСвойство
# AlphaBlend
C#
public bool AlphaBlend { get; set; }

Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.

AndroidSurfaceSizeСвойство
# AndroidSurfaceSize
C#
public Vector2I AndroidSurfaceSize { get; set; }

Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.

EnableHolePunchСвойство
# EnableHolePunch
C#
public bool EnableHolePunch { get; set; }

Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.

EyeVisibilityСвойство
# EyeVisibility
C#
public OpenXRCompositionLayer.EyeVisibilityEnum EyeVisibility { get; set; }

Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.

LayerViewportСвойство
# LayerViewport
C#
public SubViewport LayerViewport { get; set; }

Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.

ProtectedContentСвойство
# ProtectedContent
C#
public bool ProtectedContent { get; set; }

Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.

SortOrderСвойство
# SortOrder
C#
public int SortOrder { get; set; }

Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.

SwapchainStateAlphaSwizzleСвойство
# SwapchainStateAlphaSwizzle
C#
public OpenXRCompositionLayer.Swizzle SwapchainStateAlphaSwizzle { get; set; }

Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateBlueSwizzleСвойство
# SwapchainStateBlueSwizzle
C#
public OpenXRCompositionLayer.Swizzle SwapchainStateBlueSwizzle { get; set; }

Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateBorderColorСвойство
# SwapchainStateBorderColor
C#
public Color SwapchainStateBorderColor { get; set; }

Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateGreenSwizzleСвойство
# SwapchainStateGreenSwizzle
C#
public OpenXRCompositionLayer.Swizzle SwapchainStateGreenSwizzle { get; set; }

Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateHorizontalWrapСвойство
# SwapchainStateHorizontalWrap
C#
public OpenXRCompositionLayer.Wrap SwapchainStateHorizontalWrap { get; set; }

Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateMagFilterСвойство
# SwapchainStateMagFilter
C#
public OpenXRCompositionLayer.Filter SwapchainStateMagFilter { get; set; }

Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateMaxAnisotropyСвойство
# SwapchainStateMaxAnisotropy
C#
public float SwapchainStateMaxAnisotropy { get; set; }

Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateMinFilterСвойство
# SwapchainStateMinFilter
C#
public OpenXRCompositionLayer.Filter SwapchainStateMinFilter { get; set; }

Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateMipmapModeСвойство
# SwapchainStateMipmapMode
C#
public OpenXRCompositionLayer.MipmapMode SwapchainStateMipmapMode { get; set; }

Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateRedSwizzleСвойство
# SwapchainStateRedSwizzle
C#
public OpenXRCompositionLayer.Swizzle SwapchainStateRedSwizzle { get; set; }

Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

SwapchainStateVerticalWrapСвойство
# SwapchainStateVerticalWrap
C#
public OpenXRCompositionLayer.Wrap SwapchainStateVerticalWrap { get; set; }

Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

UseAndroidSurfaceСвойство
# UseAndroidSurface
C#
public bool UseAndroidSurface { get; set; }

Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.

Методы41

GetAlphaBlendbool
# GetAlphaBlend
C#
public bool GetAlphaBlend();

Возвращает сохранённое значение. Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.

Возвращает bool

Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.

GetAlphaSwizzleOpenXRCompositionLayer.Swizzle
# GetAlphaSwizzle
C#
public OpenXRCompositionLayer.Swizzle GetAlphaSwizzle();

Читает сохранённый запрос. Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Swizzle

Сохранённое значение настройки; не подтверждает её применение compositor.

GetAndroidSurfaceJavaObject
# GetAndroidSurface
C#
public JavaObject GetAndroidSurface();

Возвращает JavaObject для android.view.Surface, удерживаемый слоем, либо null. На Android получение может лениво создать surface; это не чистая проверка готовности. Нужны UseAndroidSurface и соответствующая OpenXR extension. Не освобождайте заимствованную обёртку; остановите внешнего производителя до удаления слоя. На Windows XR-off проверен только null.

Возвращает JavaObject

Возвращает JavaObject для android.view.Surface, удерживаемый слоем, либо null. На Android получение может лениво создать surface; это не чистая проверка готовности. Нужны UseAndroidSurface и соответствующая OpenXR extension. Не освобождайте заимствованную обёртку; остановите внешнего производителя до удаления слоя. На Windows XR-off проверен только null.

GetAndroidSurfaceSizeVector2I
# GetAndroidSurfaceSize
C#
public Vector2I GetAndroidSurfaceSize();

Читает сохранённый запрос. Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.

Возвращает Vector2I

Сохранённое значение настройки; не подтверждает её применение compositor.

GetBlueSwizzleOpenXRCompositionLayer.Swizzle
# GetBlueSwizzle
C#
public OpenXRCompositionLayer.Swizzle GetBlueSwizzle();

Читает сохранённый запрос. Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Swizzle

Сохранённое значение настройки; не подтверждает её применение compositor.

GetBorderColorColor
# GetBorderColor
C#
public Color GetBorderColor();

Читает сохранённый запрос. Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает Color

Сохранённое значение настройки; не подтверждает её применение compositor.

GetEnableHolePunchbool
# GetEnableHolePunch
C#
public bool GetEnableHolePunch();

Возвращает сохранённое значение. Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.

Возвращает bool

Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.

GetEyeVisibilityOpenXRCompositionLayer.EyeVisibilityEnum
# GetEyeVisibility
C#
public OpenXRCompositionLayer.EyeVisibilityEnum GetEyeVisibility();

Читает сохранённый запрос. Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.

Возвращает OpenXRCompositionLayer.EyeVisibilityEnum

Сохранённое значение настройки; не подтверждает её применение compositor.

GetGreenSwizzleOpenXRCompositionLayer.Swizzle
# GetGreenSwizzle
C#
public OpenXRCompositionLayer.Swizzle GetGreenSwizzle();

Читает сохранённый запрос. Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Swizzle

Сохранённое значение настройки; не подтверждает её применение compositor.

GetHorizontalWrapOpenXRCompositionLayer.Wrap
# GetHorizontalWrap
C#
public OpenXRCompositionLayer.Wrap GetHorizontalWrap();

Читает сохранённый запрос. Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Wrap

Сохранённое значение настройки; не подтверждает её применение compositor.

GetLayerViewportSubViewport
# GetLayerViewport
C#
public SubViewport GetLayerViewport();

Возвращает сохранённое значение. Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.

Возвращает SubViewport

Заимствованный назначенный viewport или null; владение не передаётся.

GetMagFilterOpenXRCompositionLayer.Filter
# GetMagFilter
C#
public OpenXRCompositionLayer.Filter GetMagFilter();

Читает сохранённый запрос. Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Filter

Сохранённое значение настройки; не подтверждает её применение compositor.

GetMaxAnisotropyfloat
# GetMaxAnisotropy
C#
public float GetMaxAnisotropy();

Читает сохранённый запрос. Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает float

Сохранённое значение настройки; не подтверждает её применение compositor.

GetMinFilterOpenXRCompositionLayer.Filter
# GetMinFilter
C#
public OpenXRCompositionLayer.Filter GetMinFilter();

Читает сохранённый запрос. Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Filter

Сохранённое значение настройки; не подтверждает её применение compositor.

GetMipmapModeOpenXRCompositionLayer.MipmapMode
# GetMipmapMode
C#
public OpenXRCompositionLayer.MipmapMode GetMipmapMode();

Читает сохранённый запрос. Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.MipmapMode

Сохранённое значение настройки; не подтверждает её применение compositor.

GetRedSwizzleOpenXRCompositionLayer.Swizzle
# GetRedSwizzle
C#
public OpenXRCompositionLayer.Swizzle GetRedSwizzle();

Читает сохранённый запрос. Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Swizzle

Сохранённое значение настройки; не подтверждает её применение compositor.

GetSortOrderint
# GetSortOrder
C#
public int GetSortOrder();

Возвращает сохранённое значение. Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.

Возвращает int

Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.

GetUseAndroidSurfacebool
# GetUseAndroidSurface
C#
public bool GetUseAndroidSurface();

Читает сохранённый запрос. Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.

Возвращает bool

Сохранённое значение настройки; не подтверждает её применение compositor.

GetVerticalWrapOpenXRCompositionLayer.Wrap
# GetVerticalWrap
C#
public OpenXRCompositionLayer.Wrap GetVerticalWrap();

Читает сохранённый запрос. Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Возвращает OpenXRCompositionLayer.Wrap

Сохранённое значение настройки; не подтверждает её применение compositor.

IntersectsRayVector2
# IntersectsRay
C#
public Vector2 IntersectsRay(Vector3 origin, Vector3 direction);

Возвращает UV пересечения world-space луча с геометрией конкретного слоя; miss — Vector2(-1,-1). Реализация базового класса всегда возвращает miss, формы переопределяют её. Для Quad проверены ортонормальные transform без scale/shear; Y UV направлена вниз. Это не physics raycast, не проверка видимости/стен и не отправка GUI input. Проверяйте попадание и переведите UV в пиксели viewport.

Параметры
ИмяТипПо умолчанию
originVector3—
directionVector3—
origin

Начало луча в глобальных координатах; не локальная позиция контроллера. Передавайте конечные числа и проверяйте текущий трекинг.

direction

Направление луча в глобальных координатах, не точка назначения. Используйте конечный ненулевой нормализованный вектор, обычно -GlobalTransform.Basis.Z контроллера.

Возвращает Vector2

UV пересечения либо (-1,-1); результат не подтверждает отсутствие перекрывающей геометрии.

IsNativelySupportedbool
# IsNativelySupported
C#
public bool IsNativelySupported();

Проверяет поддержку конкретного layer type через текущие OpenXR API/extension. Без них false; Quad не требует отдельной shape extension, Cylinder/Equirect требуют соответствующих расширений. Используйте после старта сессии для выбора пути. true не гарантирует работающий swapchain, назначенный viewport, отправленный слой или видимые пиксели; false не запрещает fallback.

Возвращает bool

Поддержка типа в текущем API/extension, не готовность отображения.

IsProtectedContentbool
# IsProtectedContent
C#
public bool IsProtectedContent();

Читает сохранённый запрос. Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.

Возвращает bool

Сохранённое значение настройки; не подтверждает её применение compositor.

SetAlphaBlendvoid
# SetAlphaBlend
C#
public void SetAlphaBlend(bool enabled);

Сохраняет настройку. Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.

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

Включить композицию по alpha; совместно настройте прозрачность viewport/UI.

SetAlphaSwizzlevoid
# SetAlphaSwizzle
C#
public void SetAlphaSwizzle(OpenXRCompositionLayer.Swizzle mode);

Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Swizzle—
mode

Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.

SetAndroidSurfaceSizevoid
# SetAndroidSurfaceSize
C#
public void SetAndroidSurfaceSize(Vector2I size);

Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.

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

Положительный размер surface в пикселях; не размер viewport.

SetBlueSwizzlevoid
# SetBlueSwizzle
C#
public void SetBlueSwizzle(OpenXRCompositionLayer.Swizzle mode);

Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Swizzle—
mode

Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.

SetBorderColorvoid
# SetBorderColor
C#
public void SetBorderColor(Color color);

Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

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

Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию.

SetEnableHolePunchvoid
# SetEnableHolePunch
C#
public void SetEnableHolePunch(bool enable);

Сохраняет настройку. Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.

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

Включить hole punching; для native-пути также нужен SortOrder<0. Не подтверждает корректные пиксели.

SetEyeVisibilityvoid
# SetEyeVisibility
C#
public void SetEyeVisibility(OpenXRCompositionLayer.EyeVisibilityEnum eyeVisibility);

Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.

Параметры
ИмяТипПо умолчанию
eyeVisibilityOpenXRCompositionLayer.EyeVisibilityEnum—
eyeVisibility

Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.

SetGreenSwizzlevoid
# SetGreenSwizzle
C#
public void SetGreenSwizzle(OpenXRCompositionLayer.Swizzle mode);

Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Swizzle—
mode

Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.

SetHorizontalWrapvoid
# SetHorizontalWrap
C#
public void SetHorizontalWrap(OpenXRCompositionLayer.Wrap mode);

Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Wrap—
mode

Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования.

SetLayerViewportvoid
# SetLayerViewport
C#
public void SetLayerViewport(SubViewport viewport);

Сохраняет настройку. Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.

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

Заимствованный SubViewport либо null для отсоединения. Нужны положительный pixel Size и осознанный update mode; не делите один viewport между слоями в дереве.

SetMagFiltervoid
# SetMagFilter
C#
public void SetMagFilter(OpenXRCompositionLayer.Filter mode);

Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Filter—
mode

Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport.

SetMaxAnisotropyvoid
# SetMaxAnisotropy
C#
public void SetMaxAnisotropy(float value);

Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

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

Конечная величина >=1 в пределах целевого устройства; автоматической проверки нет.

SetMinFiltervoid
# SetMinFilter
C#
public void SetMinFilter(OpenXRCompositionLayer.Filter mode);

Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Filter—
mode

Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor.

SetMipmapModevoid
# SetMipmapMode
C#
public void SetMipmapMode(OpenXRCompositionLayer.MipmapMode mode);

Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.MipmapMode—
mode

Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend.

SetProtectedContentvoid
# SetProtectedContent
C#
public void SetProtectedContent(bool protectedContent);

Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.

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

Запрос защиты при создании swapchain, не подтверждение её действия.

SetRedSwizzlevoid
# SetRedSwizzle
C#
public void SetRedSwizzle(OpenXRCompositionLayer.Swizzle mode);

Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Swizzle—
mode

Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.

SetSortOrdervoid
# SetSortOrder
C#
public void SetSortOrder(int order);

Сохраняет настройку. Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.

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

Порядок native слоя: отрицательный позади projection, положительный впереди. Избегайте 0; не управляет fallback mesh.

SetUseAndroidSurfacevoid
# SetUseAndroidSurface
C#
public void SetUseAndroidSurface(bool enable);

Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.

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

true снимает LayerViewport; false не восстанавливает его.

SetVerticalWrapvoid
# SetVerticalWrap
C#
public void SetVerticalWrap(OpenXRCompositionLayer.Wrap mode);

Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.

Параметры
ИмяТипПо умолчанию
modeOpenXRCompositionLayer.Wrap—
mode

Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend.

OpenXRCompositionLayer.EyeVisibilityEnum

ЗначениеОписание
Both = 0

Этот слой виден как левому, так и правому глазу.

Left = 1

Этот слой виден только левому глазу.

Right = 2

Этот слой виден только правому глазу.

OpenXRCompositionLayer.Filter

ЗначениеОписание
Cubic = 2

При выборке текстуры выполняйте кубическую фильтрацию.

Linear = 1

Выполняйте линейную фильтрацию при выборке текстуры.

Nearest = 0

При выборке текстуры следует выполнять фильтрацию ближайшего соседа.

OpenXRCompositionLayer.MipmapMode

ЗначениеОписание
Disabled = 0

Отключить MIP-текстурирование. Примечание: MIP-текстурирование можно отключить только в режиме совместимости.

Linear = 2

Использовать линейную интерполяцию двух MIP-карт ближайшего разрешения.

Nearest = 1

Используйте mipmap ближайшего разрешения.

OpenXRCompositionLayer.Swizzle

ЗначениеОписание
Alpha = 3

Сопоставляет цветовой канал со значением альфа-канала.

Blue = 2

Сопоставляет цветовой канал со значением синего канала.

Свиззл Альфа

Green = 1

Сопоставляет цветовой канал со значением зеленого канала.

One = 5

Сопоставляет цветовой канал со значением единицы.

Red = 0

Сопоставляет цветовой канал со значением красного канала.

Zero = 4

Сопоставляет цветовой канал со значением ноль.

OpenXRCompositionLayer.Wrap

ЗначениеОписание
ClampToBorder = 0

Закрепите текстуру по указанному цвету границы.

ClampToEdge = 1

Закрепите текстуру по цвету ее кромки.

MirrorClampToEdge = 4

Отразите текстуру один раз, а затем прикрепите её к цвету края. Примечание: Этот режим обтекания недоступен в рендере совместимости.

MirroredRepeat = 3

Повторяйте текстуру бесконечно, зеркально отображая ее при каждом повторе.

Repeat = 2

Повторяйте текстуру бесконечно.

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

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

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

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