OpenXRCompositionLayerEquirect
Сферический слой с угловыми границами в радианах.
Показывает viewport на внутренней стороне сферического equirectangular сегмента. Radius задаёт поверхность; CentralHorizontalAngle, UpperVerticalAngle и LowerVerticalAngle задают угловой охват. Все углы в радианах; upper/lower в API — положительные величины.
При несимметричных вертикальных углах экватор не находится в середине текстуры: upper=Pi/3 и lower=Pi/6 дали V=2/3. Не применяйте плоский QuadUiRay helper к этой геометрии. IntersectsRay — геометрический UV, не physics occlusion или GUI event; проверяйте (-1,-1), конечность результата и текущую pose.
Нужны equirect2 runtime extension либо fallback; его разбиение задаёт FallbackSegments, не native resolution. Сохраняйте ортонормальный transform без scale/shear. Основная настройка слоёв описывает viewport, alpha и ordering.
На SDK 1.0.0 общий набор из 14 headless проверок Cylinder/Equirect выполнил параметры и отдельные ray cases, включая несимметричный центр/выход ниже lower angle. Native composition, изображение/качество, GUI routing, WorldScale!=1 и export не проверены. Source, Runtime и SDK не менялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRCompositionLayerEquirectКонструктор
public OpenXRCompositionLayerEquirect();Создаёт изогнутый слой с параметрами по умолчанию. Не запускает OpenXR и не назначает LayerViewport. Native support зависит от shape extension; без API возможен fallback после добавления в дерево. Сам constructor не подтверждает изображение или tracking.
Свойства5
CentralHorizontalAngleСвойство
public float CentralHorizontalAngle { get; set; }Горизонтальный охват сферы в радианах, изначально Pi/2. Setter отклоняет <=0 и обновляет shape/fallback. Это угловая ширина, не pixels/FOV камеры. Не рассчитывайте на автоматическую валидацию всех runtime limits или правильную развёртку любой текстуры.
FallbackSegmentsСвойство
public uint FallbackSegments { get; set; }Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
LowerVerticalAngleСвойство
public float LowerVerticalAngle { get; set; }Положительная величина нижнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. В C# передавайте положительное число: setter сам меняет знак для native equirect layer. Изменяет вертикальную раскладку UV вместе с UpperVerticalAngle; не переворачивайте знак вручную.
RadiusСвойство
public float Radius { get; set; }Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
UpperVerticalAngleСвойство
public float UpperVerticalAngle { get; set; }Положительная величина верхнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. Вместе с LowerVerticalAngle задаёт вертикальный охват. При несимметричных углах луч по экватору не обязан давать V=0.5: для upper=Pi/3, lower=Pi/6 проверено V=2/3.
Методы10
GetCentralHorizontalAnglefloat
public float GetCentralHorizontalAngle();Читает сохранённое значение. Горизонтальный охват сферы в радианах, изначально Pi/2. Setter отклоняет <=0 и обновляет shape/fallback. Это угловая ширина, не pixels/FOV камеры. Не рассчитывайте на автоматическую валидацию всех runtime limits или правильную развёртку любой текстуры.
floatГоризонтальный охват сферы в радианах, изначально Pi/2. Setter отклоняет <=0 и обновляет shape/fallback. Это угловая ширина, не pixels/FOV камеры. Не рассчитывайте на автоматическую валидацию всех runtime limits или правильную развёртку любой текстуры.
GetFallbackSegmentsuint
public uint GetFallbackSegments();Читает сохранённое значение. Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
uintЧисло разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
GetLowerVerticalAnglefloat
public float GetLowerVerticalAngle();Читает сохранённое значение. Положительная величина нижнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. В C# передавайте положительное число: setter сам меняет знак для native equirect layer. Изменяет вертикальную раскладку UV вместе с UpperVerticalAngle; не переворачивайте знак вручную.
floatПоложительная величина нижнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. В C# передавайте положительное число: setter сам меняет знак для native equirect layer. Изменяет вертикальную раскладку UV вместе с UpperVerticalAngle; не переворачивайте знак вручную.
GetRadiusfloat
public float GetRadius();Читает сохранённое значение. Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
floatРадиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
GetUpperVerticalAnglefloat
public float GetUpperVerticalAngle();Читает сохранённое значение. Положительная величина верхнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. Вместе с LowerVerticalAngle задаёт вертикальный охват. При несимметричных углах луч по экватору не обязан давать V=0.5: для upper=Pi/3, lower=Pi/6 проверено V=2/3.
floatПоложительная величина верхнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. Вместе с LowerVerticalAngle задаёт вертикальный охват. При несимметричных углах луч по экватору не обязан давать V=0.5: для upper=Pi/3, lower=Pi/6 проверено V=2/3.
SetCentralHorizontalAnglevoid
public void SetCentralHorizontalAngle(float angle);Настраивает параметр поверхности. Горизонтальный охват сферы в радианах, изначально Pi/2. Setter отклоняет <=0 и обновляет shape/fallback. Это угловая ширина, не pixels/FOV камеры. Не рассчитывайте на автоматическую валидацию всех runtime limits или правильную развёртку любой текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
angle | float | — |
angleГоризонтальный охват сферы в радианах, изначально Pi/2. Setter отклоняет <=0 и обновляет shape/fallback. Это угловая ширина, не pixels/FOV камеры. Не рассчитывайте на автоматическую валидацию всех runtime limits или правильную развёртку любой текстуры.
SetFallbackSegmentsvoid
public void SetFallbackSegments(uint segments);Настраивает параметр поверхности. Число разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
| Имя | Тип | По умолчанию |
|---|---|---|
segments | uint | — |
segmentsЧисло разбиений fallback mesh, изначально 10. uint, 0 отклоняется; setter отмечает mesh для обновления. Не меняет native compositor resolution или геометрический ray test. Для Equirect разбиение применяется в двух направлениях, поэтому расход памяти растёт быстрее. Не считайте максимально большое значение режимом качества.
SetLowerVerticalAnglevoid
public void SetLowerVerticalAngle(float angle);Настраивает параметр поверхности. Положительная величина нижнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. В C# передавайте положительное число: setter сам меняет знак для native equirect layer. Изменяет вертикальную раскладку UV вместе с UpperVerticalAngle; не переворачивайте знак вручную.
| Имя | Тип | По умолчанию |
|---|---|---|
angle | float | — |
angleПоложительная величина нижнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. В C# передавайте положительное число: setter сам меняет знак для native equirect layer. Изменяет вертикальную раскладку UV вместе с UpperVerticalAngle; не переворачивайте знак вручную.
SetRadiusvoid
public void SetRadius(float radius);Настраивает параметр поверхности. Радиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
| Имя | Тип | По умолчанию |
|---|---|---|
radius | float | — |
radiusРадиус поверхности, изначально 1. Setter отклоняет <=0, сохраняет значение, обновляет native shape при наличии extension и отмечает fallback mesh для обновления. Используйте конечные положительные числа, не Entity Scale. Не меняет pixel Size viewport; размеры при другом WorldScale не проверены.
SetUpperVerticalAnglevoid
public void SetUpperVerticalAngle(float angle);Настраивает параметр поверхности. Положительная величина верхнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. Вместе с LowerVerticalAngle задаёт вертикальный охват. При несимметричных углах луч по экватору не обязан давать V=0.5: для upper=Pi/3, lower=Pi/6 проверено V=2/3.
| Имя | Тип | По умолчанию |
|---|---|---|
angle | float | — |
angleПоложительная величина верхнего угла в радианах, изначально Pi/4; допустимо 0<angle<=Pi/2. Вместе с LowerVerticalAngle задаёт вертикальный охват. При несимметричных углах луч по экватору не обязан давать V=0.5: для upper=Pi/3, lower=Pi/6 проверено V=2/3.