docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class MetaTemporalPixelSynthesisFeature

    Enables the XR_META_temporal_pixel_synthesis OpenXR extension.

    This feature allows applications to provide per-view motion vector, depth, and stencil data so that the Meta runtime can apply temporal anti-aliasing, upscaling, or other temporal reconstruction techniques to improve the visual quality of the current frame's projection layer content.

    Enable this feature in Project Settings > XR Plug-in Management > OpenXR > OpenXR Feature Groups. Call SetPixelSynthesis(in PixelSynthesisFrameParams) to supply parameters; values are cached and reused every frame until updated. Default parameters are applied automatically when the session starts if SetPixelSynthesis(in PixelSynthesisFrameParams) has not been called.

    Inheritance
    object
    Object
    ScriptableObject
    OpenXRFeature
    MetaTemporalPixelSynthesisFeature
    Inherited Members
    OpenXRFeature.enabled
    OpenXRFeature.ShouldUseExtension(string)
    OpenXRFeature.GetExtensions()
    OpenXRFeature.xrGetInstanceProcAddr
    OpenXRFeature.OnSubsystemCreate()
    OpenXRFeature.OnSubsystemStart()
    OpenXRFeature.OnSubsystemStop()
    OpenXRFeature.OnSubsystemDestroy()
    OpenXRFeature.OnExtensionsReady(ulong)
    OpenXRFeature.OnSystemChange(ulong)
    OpenXRFeature.OnAppSpaceChange(ulong)
    OpenXRFeature.OnSessionStateChange(int, int)
    OpenXRFeature.OnSessionBegin(ulong)
    OpenXRFeature.OnSessionEnd(ulong)
    OpenXRFeature.OnSessionExiting(ulong)
    OpenXRFeature.OnSessionLossPending(ulong)
    OpenXRFeature.OnInstanceLossPending(ulong)
    OpenXRFeature.OnFormFactorChange(int)
    OpenXRFeature.OnViewConfigurationTypeChange(int)
    OpenXRFeature.OnEnvironmentBlendModeChange(XrEnvironmentBlendMode)
    OpenXRFeature.OnEnabledChange()
    OpenXRFeature.PathToString(ulong)
    OpenXRFeature.StringToPath(string)
    OpenXRFeature.GetCurrentInteractionProfile(ulong)
    OpenXRFeature.GetCurrentInteractionProfile(string)
    OpenXRFeature.GetCurrentAppSpace()
    OpenXRFeature.GetViewConfigurationTypeForRenderPass(int)
    OpenXRFeature.SetEnvironmentBlendMode(XrEnvironmentBlendMode)
    OpenXRFeature.GetEnvironmentBlendMode()
    OpenXRFeature.CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor>, string)
    OpenXRFeature.StartSubsystem<T>()
    OpenXRFeature.StopSubsystem<T>()
    OpenXRFeature.DestroySubsystem<T>()
    OpenXRFeature.Awake()
    OpenXRFeature.GetAction(InputAction)
    OpenXRFeature.GetAction(InputDevice, InputFeatureUsage)
    OpenXRFeature.GetAction(InputDevice, string)
    OpenXRFeature.RegisterStatsDescriptor(string, OpenXRFeature.StatFlags)
    OpenXRFeature.SetStatAsFloat(ulong, float)
    OpenXRFeature.SetStatAsUInt(ulong, uint)
    ScriptableObject.SetDirty()
    ScriptableObject.CreateInstance(string)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.XR.OpenXR.Features.Meta
    Assembly: Unity.XR.OpenXR.dll
    Syntax
    public class MetaTemporalPixelSynthesisFeature : OpenXRFeature

    Fields

    ExtensionString

    The OpenXR extension string required by this feature.

    Declaration
    public const string ExtensionString = "XR_META_temporal_pixel_synthesis"
    Field Value
    Type Description
    string

    FeatureId

    The unique feature ID used to identify this feature in OpenXR settings.

    Declaration
    public const string FeatureId = "com.unity.openxr.feature.meta.temporalpixelsynthesis"
    Field Value
    Type Description
    string

    defaultEnableUpscaling

    Default setting for whether upscaling is requested.

    Declaration
    [Tooltip("Let the device upscale the rendered image. Requires a device that supports upscaling.")]
    public bool defaultEnableUpscaling
    Field Value
    Type Description
    bool

    defaultFoveaQuality

    Quality requested for the fovea (central) region, applied when SetPixelSynthesis(in PixelSynthesisFrameParams) is called without an explicit override.

    Declaration
    [Tooltip("Quality requested for the fovea (central) region of the image. The device may adjust this based on available performance.")]
    public PixelSynthesisQualityLevel defaultFoveaQuality
    Field Value
    Type Description
    PixelSynthesisQualityLevel

    defaultFoveaRadius

    Size of the fovea region, controlling where the central region ends and the periphery begins.

    Declaration
    [Tooltip("Size of the fovea region, controlling where the central region ends and the periphery begins. A larger fovea favors quality, a smaller one favors performance.")]
    public PixelSynthesisFoveaRadius defaultFoveaRadius
    Field Value
    Type Description
    PixelSynthesisFoveaRadius

    defaultPeripheryQuality

    Quality requested for the periphery (outer) region, applied when SetPixelSynthesis(in PixelSynthesisFrameParams) is called without an explicit override.

    Declaration
    [Tooltip("Quality requested for the periphery (outer) region of the image. The device may adjust this based on available performance.")]
    public PixelSynthesisQualityLevel defaultPeripheryQuality
    Field Value
    Type Description
    PixelSynthesisQualityLevel

    defaultUpscalingQuality

    Quality requested for upscaling. Only used when defaultEnableUpscaling is true.

    Declaration
    [Tooltip("Quality requested when upscaling. The device may adjust this based on available performance.")]
    public PixelSynthesisQualityLevel defaultUpscalingQuality
    Field Value
    Type Description
    PixelSynthesisQualityLevel

    Properties

    Instance

    Singleton accessor. Returns null when the feature is not enabled.

    Declaration
    public static MetaTemporalPixelSynthesisFeature Instance { get; }
    Property Value
    Type Description
    MetaTemporalPixelSynthesisFeature

    IsSupported

    Whether the device runtime reports support for this extension. Populated after session creation.

    Declaration
    public bool IsSupported { get; }
    Property Value
    Type Description
    bool

    RecommendedMotionVectorHeight

    The recommended motion-vector image height (pixels) for the first view.

    Declaration
    public uint RecommendedMotionVectorHeight { get; }
    Property Value
    Type Description
    uint

    RecommendedMotionVectorWidth

    The recommended motion-vector image width (pixels) for the first view, queried from XrViewPixelSynthesisConfigurationViewMETA. Zero until OnSessionCreate(ulong) runs.

    Declaration
    public uint RecommendedMotionVectorWidth { get; }
    Property Value
    Type Description
    uint

    SupportedFeatureFlags

    Bitmask of optional features reported by the runtime via XrSystemPixelSynthesisPropertiesMETA.supportedFeatureFlags.

    Declaration
    public PixelSynthesisSupportedFeatureFlags SupportedFeatureFlags { get; }
    Property Value
    Type Description
    PixelSynthesisSupportedFeatureFlags

    Methods

    ClearPixelSynthesis()

    Resets pixel synthesis parameters to their defaults. Pixel synthesis remains active; use SetPixelSynthesisEnabled(bool) to enable or disable it.

    Declaration
    public static void ClearPixelSynthesis()

    GetValidationChecks(List<ValidationRule>, BuildTargetGroup)

    Allows a feature to add to a list of validation rules which your feature will evaluate at build time. Details of the validation results can be found in OpenXRProjectValidation.

    Declaration
    protected override void GetValidationChecks(List<OpenXRFeature.ValidationRule> rules, BuildTargetGroup targetGroup)
    Parameters
    Type Name Description
    List<OpenXRFeature.ValidationRule> rules

    Your feature will check the rules in this list at build time. Add rules that you want your feature to check, and remove rules that you want your feature to ignore.

    BuildTargetGroup targetGroup

    Build target group these validation rules will be evaluated for.

    Overrides
    OpenXRFeature.GetValidationChecks(List<OpenXRFeature.ValidationRule>, BuildTargetGroup)

    HookGetInstanceProcAddr(IntPtr)

    Called to hook xrGetInstanceProcAddr. Returning a different function pointer allows intercepting any OpenXR method.

    Declaration
    protected override IntPtr HookGetInstanceProcAddr(IntPtr func)
    Parameters
    Type Name Description
    IntPtr func

    xrGetInstanceProcAddr native function pointer

    Returns
    Type Description
    IntPtr

    Function pointer that Unity will use to look up OpenXR native functions.

    Overrides
    OpenXRFeature.HookGetInstanceProcAddr(IntPtr)

    OnDisable()

    Called when the object is loaded.

    Declaration
    protected override void OnDisable()
    Overrides
    OpenXRFeature.OnDisable()
    Remarks

    Additional information: ScriptableObject.OnDisable

    OnEnable()

    Called when the object is loaded.

    Declaration
    protected override void OnEnable()
    Overrides
    OpenXRFeature.OnEnable()
    Remarks

    Additional information: ScriptableObject.OnEnable

    OnInstanceCreate(ulong)

    Called after xrCreateInstance. Override this method to validate that any necessary OpenXR extensions were successfully enabled (OpenXRRuntime.IsExtensionEnabled) and that any required system properties are supported. If this method returns false, the feature's enabled property is set to false.

    Declaration
    protected override bool OnInstanceCreate(ulong xrInstance)
    Parameters
    Type Name Description
    ulong xrInstance

    Handle of the native xrInstance.

    Returns
    Type Description
    bool

    true if this feature successfully initialized. Otherwise, false.

    Overrides
    OpenXRFeature.OnInstanceCreate(ulong)
    Remarks

    If this feature is a required feature of an enabled feature set, returning false here causes the OpenXRLoader to fail, and XR Plug-in Management will fall back to another loader if enabled.

    See Also
    Enabling OpenXR spec extension strings

    OnInstanceDestroy(ulong)

    Called before xrDestroyInstance

    Declaration
    protected override void OnInstanceDestroy(ulong xrInstance)
    Parameters
    Type Name Description
    ulong xrInstance

    Handle of the xrInstance

    Overrides
    OpenXRFeature.OnInstanceDestroy(ulong)

    OnSessionCreate(ulong)

    Called after xrCreateSession.

    Declaration
    protected override void OnSessionCreate(ulong xrSession)
    Parameters
    Type Name Description
    ulong xrSession

    Handle of the xrSession

    Overrides
    OpenXRFeature.OnSessionCreate(ulong)

    OnSessionDestroy(ulong)

    Called before xrDestroySession.

    Declaration
    protected override void OnSessionDestroy(ulong xrSession)
    Parameters
    Type Name Description
    ulong xrSession

    Handle of the xrSession

    Overrides
    OpenXRFeature.OnSessionDestroy(ulong)

    SetPixelSynthesis(in PixelSynthesisFrameParams)

    Configures pixel synthesis parameters. Values are cached and reused every frame until this method is called again. Call before xrEndFrame is submitted (typically in a camera callback or just before XRDisplaySubsystem.Stop()).

    Declaration
    public static void SetPixelSynthesis(in PixelSynthesisFrameParams @params)
    Parameters
    Type Name Description
    PixelSynthesisFrameParams params

    Pixel synthesis parameters to apply.

    SetPixelSynthesisEnabled(bool)

    Enables or disables pixel synthesis at runtime without discarding the cached parameters. When re-enabled, the previously cached parameters resume immediately.

    Declaration
    public static void SetPixelSynthesisEnabled(bool enabled)
    Parameters
    Type Name Description
    bool enabled

    true to enable pixel synthesis; false to disable it.

    In This Article
    Back to top
    Copyright © 2026 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)