reckfellENGINE

OpenXRCompositionLayerEquirect

Spherical layer with angular bounds in radians.

On this page
class OpenXRCompositionLayerEquirectReckfellSharpInherits OpenXRCompositionLayer

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
# OpenXRCompositionLayerEquirect
C#
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
# CentralHorizontalAngle
C#
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
# FallbackSegments
C#
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
# LowerVerticalAngle
C#
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
# Radius
C#
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
# UpperVerticalAngle
C#
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
# GetCentralHorizontalAngle
C#
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.

Returns float

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.

GetFallbackSegmentsuint
# GetFallbackSegments
C#
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.

Returns uint

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.

GetLowerVerticalAnglefloat
# GetLowerVerticalAngle
C#
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.

Returns float

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.

GetRadiusfloat
# GetRadius
C#
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.

Returns float

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.

GetUpperVerticalAnglefloat
# GetUpperVerticalAngle
C#
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.

Returns float

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.

SetCentralHorizontalAnglevoid
# SetCentralHorizontalAngle
C#
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.

Parameters
NameTypeDefault
anglefloat—
angle

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.

SetFallbackSegmentsvoid
# SetFallbackSegments
C#
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.

Parameters
NameTypeDefault
segmentsuint—
segments

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.

SetLowerVerticalAnglevoid
# SetLowerVerticalAngle
C#
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.

Parameters
NameTypeDefault
anglefloat—
angle

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.

SetRadiusvoid
# SetRadius
C#
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.

Parameters
NameTypeDefault
radiusfloat—
radius

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.

SetUpperVerticalAnglevoid
# SetUpperVerticalAngle
C#
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.

Parameters
NameTypeDefault
anglefloat—
angle

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.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.