reckfellENGINE

OpenXRRenderModel

Entity for an OpenXR-provided device visual.

On this page
class OpenXRRenderModelReckfellSharpInherits Entity3D

Displays a model identified by a current OpenXR extension RID, updating its transform and animatable parts when confidence != None. At None, updates stop without automatically hiding old geometry. Implement fallback and tracking-loss handling separately.

Instances are normally owned by OpenXRRenderModelManager. Do not manually free them or borrowed backend RIDs. For your own direct instance, use a live provider RID; a RenderingServer/RenderingDevice RID is unsuitable.

Current SetRenderModel does not remove previously loaded geometry: repeating a nonzero in-tree RID may add duplicates, and default does not clear old children. Replace your direct Entity to replace a model. Top-level path is hand association, not a ready signal.

Loading and fallback. Zero RID, parameters and inactive lifecycle were executed on SDK 1.0.0; real geometry/animation/confidence-loss paths were source-reviewed without headset execution.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

OpenXRRenderModelConstructor
# OpenXRRenderModel
C#
public OpenXRRenderModel();

Creates an empty Entity with zero RID and no geometry. An active extension wrapper is needed before tree attachment. Use the manager for runtime-managed models: this constructor allocates no backend RID.

Properties1

RenderModelProperty
# RenderModel
C#
public Rid RenderModel { get; set; }

Model RID from the current OpenXR extension, initially default/zero. Neither a mesh/texture RID nor transfer of backend ownership. In-tree nonzero assignment attempts to add geometry without deleting old geometry: repetition can create duplicates. Assigning default does not itself remove loaded children. Replace your own Entity to replace a direct instance; do not free manager-owned instances.

Methods3

GetRenderModelRid
# GetRenderModel
C#
public Rid GetRenderModel();

Returns the stored RID without checking backend-model existence or transferring ownership. A nonzero RID does not prove geometry readiness.

Returns Rid

Copy of the stored RID; the provider retains backend ownership. May be default or stale.

GetTopLevelPathstring
# GetTopLevelPath
C#
public string GetTopLevelPath();

Model top-level path string, for example /user/hand/left or /user/hand/right; may be empty. Device association does not establish physical holding, tracking or loaded geometry. Query only while the backend RID still exists.

Returns string

Model top-level path string, for example /user/hand/left or /user/hand/right; may be empty. Device association does not establish physical holding, tracking or loaded geometry. Query only while the backend RID still exists.

SetRenderModelvoid
# SetRenderModel
C#
public void SetRenderModel(Rid renderModel);

Stores the RID and attempts to load its geometry when in-tree. Model RID from the current OpenXR extension, initially default/zero. Neither a mesh/texture RID nor transfer of backend ownership. In-tree nonzero assignment attempts to add geometry without deleting old geometry: repetition can create duplicates. Assigning default does not itself remove loaded children. Replace your own Entity to replace a direct instance; do not free manager-owned instances.

Parameters
NameTypeDefault
renderModelRid—
renderModel

Model RID from the current OpenXR extension, initially default/zero. Neither a mesh/texture RID nor transfer of backend ownership. In-tree nonzero assignment attempts to add geometry without deleting old geometry: repetition can create duplicates. Assigning default does not itself remove loaded children. Replace your own Entity to replace a direct instance; do not free manager-owned instances.

Signals and events1

RenderModelTopLevelPathChangedEvent
# RenderModelTopLevelPathChanged
C#
public event Action RenderModelTopLevelPathChanged;

Parameterless event: the extension reported a change to this model’s top-level path. Not mesh-ready, tracking-frame or button notification. Read GetTopLevelPath for the current association while the RID exists.

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.