OpenXRCompositionLayerEquirect
Spherical layer with angular bounds in radians.
Displays a viewport on the inside of a spherical equirectangular segment. Radius defines the surface; CentralHorizontalAngle, UpperVerticalAngle and LowerVerticalAngle define coverage. Angles are radians; upper/lower API values are positive magnitudes.
Asymmetric vertical angles do not place the equator at texture center: upper=Pi/3 and lower=Pi/6 produced V=2/3. Do not apply the planar QuadUiRay helper here. IntersectsRay produces geometric UV, not physics occlusion or GUI events; check (-1,-1), finite results and current pose.
Requires runtime equirect2 support or fallback; FallbackSegments controls fallback subdivision, not native resolution. Keep orthonormal transforms without scale/shear. The layer guide covers viewport, alpha and ordering.
The SDK 1.0.0 set of fourteen headless Cylinder/Equirect checks exercised parameters and selected rays, including asymmetric center and rejection below the lower angle. Native composition, imagery/quality, GUI routing, WorldScale!=1 and export remain unverified. Engine Source, Runtime and SDK unchanged.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
OpenXRCompositionLayerEquirectConstructor
public OpenXRCompositionLayerEquirect();Creates a curved layer with default parameters. Starts no OpenXR and assigns no LayerViewport. Native support depends on its shape extension; without API a fallback may be used after tree attachment. Constructor success establishes no image or tracking.
Properties5
CentralHorizontalAngleProperty
public float CentralHorizontalAngle { get; set; }Horizontal spherical coverage in radians, initially Pi/2. Setter rejects <=0 and updates shape/fallback. Angular width, not pixels/camera FOV. Does not automatically validate every runtime limit or make arbitrary texture mapping correct.
FallbackSegmentsProperty
public uint FallbackSegments { get; set; }Fallback-mesh subdivision count, initially 10. Unsigned; zero is rejected and setter marks geometry dirty. Changes neither native compositor resolution nor geometric ray tests. Equirect subdivides in two directions, increasing memory growth. A very large value is not a quality preset.
LowerVerticalAngleProperty
public float LowerVerticalAngle { get; set; }Positive lower-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Supply a positive C# value: the setter negates it for the native equirect layer. Changes vertical UV layout with UpperVerticalAngle; do not negate it manually.
RadiusProperty
public float Radius { get; set; }Surface radius, initially 1. Setter rejects <=0, stores it, updates the native shape when an extension exists and marks fallback geometry dirty. Use finite positive values, not Entity Scale. Does not change viewport pixel Size; other WorldScale values were not tested.
UpperVerticalAngleProperty
public float UpperVerticalAngle { get; set; }Positive upper-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Defines vertical coverage with LowerVerticalAngle. With asymmetric angles an equatorial ray need not yield V=0.5: upper=Pi/3, lower=Pi/6 produced V=2/3.
Methods10
GetCentralHorizontalAnglefloat
public float GetCentralHorizontalAngle();Reads the stored value. Horizontal spherical coverage in radians, initially Pi/2. Setter rejects <=0 and updates shape/fallback. Angular width, not pixels/camera FOV. Does not automatically validate every runtime limit or make arbitrary texture mapping correct.
floatHorizontal spherical coverage in radians, initially Pi/2. Setter rejects <=0 and updates shape/fallback. Angular width, not pixels/camera FOV. Does not automatically validate every runtime limit or make arbitrary texture mapping correct.
GetFallbackSegmentsuint
public uint GetFallbackSegments();Reads the stored value. Fallback-mesh subdivision count, initially 10. Unsigned; zero is rejected and setter marks geometry dirty. Changes neither native compositor resolution nor geometric ray tests. Equirect subdivides in two directions, increasing memory growth. A very large value is not a quality preset.
uintFallback-mesh subdivision count, initially 10. Unsigned; zero is rejected and setter marks geometry dirty. Changes neither native compositor resolution nor geometric ray tests. Equirect subdivides in two directions, increasing memory growth. A very large value is not a quality preset.
GetLowerVerticalAnglefloat
public float GetLowerVerticalAngle();Reads the stored value. Positive lower-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Supply a positive C# value: the setter negates it for the native equirect layer. Changes vertical UV layout with UpperVerticalAngle; do not negate it manually.
floatPositive lower-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Supply a positive C# value: the setter negates it for the native equirect layer. Changes vertical UV layout with UpperVerticalAngle; do not negate it manually.
GetRadiusfloat
public float GetRadius();Reads the stored value. Surface radius, initially 1. Setter rejects <=0, stores it, updates the native shape when an extension exists and marks fallback geometry dirty. Use finite positive values, not Entity Scale. Does not change viewport pixel Size; other WorldScale values were not tested.
floatSurface radius, initially 1. Setter rejects <=0, stores it, updates the native shape when an extension exists and marks fallback geometry dirty. Use finite positive values, not Entity Scale. Does not change viewport pixel Size; other WorldScale values were not tested.
GetUpperVerticalAnglefloat
public float GetUpperVerticalAngle();Reads the stored value. Positive upper-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Defines vertical coverage with LowerVerticalAngle. With asymmetric angles an equatorial ray need not yield V=0.5: upper=Pi/3, lower=Pi/6 produced V=2/3.
floatPositive upper-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Defines vertical coverage with LowerVerticalAngle. With asymmetric angles an equatorial ray need not yield V=0.5: upper=Pi/3, lower=Pi/6 produced V=2/3.
SetCentralHorizontalAnglevoid
public void SetCentralHorizontalAngle(float angle);Configures the surface parameter. Horizontal spherical coverage in radians, initially Pi/2. Setter rejects <=0 and updates shape/fallback. Angular width, not pixels/camera FOV. Does not automatically validate every runtime limit or make arbitrary texture mapping correct.
| Name | Type | Default |
|---|---|---|
angle | float | — |
angleHorizontal spherical coverage in radians, initially Pi/2. Setter rejects <=0 and updates shape/fallback. Angular width, not pixels/camera FOV. Does not automatically validate every runtime limit or make arbitrary texture mapping correct.
SetFallbackSegmentsvoid
public void SetFallbackSegments(uint segments);Configures the surface parameter. Fallback-mesh subdivision count, initially 10. Unsigned; zero is rejected and setter marks geometry dirty. Changes neither native compositor resolution nor geometric ray tests. Equirect subdivides in two directions, increasing memory growth. A very large value is not a quality preset.
| Name | Type | Default |
|---|---|---|
segments | uint | — |
segmentsFallback-mesh subdivision count, initially 10. Unsigned; zero is rejected and setter marks geometry dirty. Changes neither native compositor resolution nor geometric ray tests. Equirect subdivides in two directions, increasing memory growth. A very large value is not a quality preset.
SetLowerVerticalAnglevoid
public void SetLowerVerticalAngle(float angle);Configures the surface parameter. Positive lower-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Supply a positive C# value: the setter negates it for the native equirect layer. Changes vertical UV layout with UpperVerticalAngle; do not negate it manually.
| Name | Type | Default |
|---|---|---|
angle | float | — |
anglePositive lower-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Supply a positive C# value: the setter negates it for the native equirect layer. Changes vertical UV layout with UpperVerticalAngle; do not negate it manually.
SetRadiusvoid
public void SetRadius(float radius);Configures the surface parameter. Surface radius, initially 1. Setter rejects <=0, stores it, updates the native shape when an extension exists and marks fallback geometry dirty. Use finite positive values, not Entity Scale. Does not change viewport pixel Size; other WorldScale values were not tested.
| Name | Type | Default |
|---|---|---|
radius | float | — |
radiusSurface radius, initially 1. Setter rejects <=0, stores it, updates the native shape when an extension exists and marks fallback geometry dirty. Use finite positive values, not Entity Scale. Does not change viewport pixel Size; other WorldScale values were not tested.
SetUpperVerticalAnglevoid
public void SetUpperVerticalAngle(float angle);Configures the surface parameter. Positive upper-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Defines vertical coverage with LowerVerticalAngle. With asymmetric angles an equatorial ray need not yield V=0.5: upper=Pi/3, lower=Pi/6 produced V=2/3.
| Name | Type | Default |
|---|---|---|
angle | float | — |
anglePositive upper-angle magnitude in radians, initially Pi/4; valid 0<angle<=Pi/2. Defines vertical coverage with LowerVerticalAngle. With asymmetric angles an equatorial ray need not yield V=0.5: upper=Pi/3, lower=Pi/6 produced V=2/3.