93 lines
3.7 KiB
C#
93 lines
3.7 KiB
C#
|
|
#if !PICO_OPENXR_SDK
|
|||
|
|
/*******************************************************************************
|
|||
|
|
Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
|
|||
|
|
|
|||
|
|
NOTICE:All information contained herein is, and remains the property of
|
|||
|
|
PICO Technology Co., Ltd. The intellectual and technical concepts
|
|||
|
|
contained herein are proprietary to PICO Technology Co., Ltd. and may be
|
|||
|
|
covered by patents, patents in process, and are protected by trade secret or
|
|||
|
|
copyright law. Dissemination of this information or reproduction of this
|
|||
|
|
material is strictly forbidden unless prior written permission is obtained from
|
|||
|
|
PICO Technology Co., Ltd.
|
|||
|
|
*******************************************************************************/
|
|||
|
|
|
|||
|
|
using System;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
namespace Unity.XR.PXR
|
|||
|
|
{
|
|||
|
|
public class PXR_FoveationRendering
|
|||
|
|
{
|
|||
|
|
private static PXR_FoveationRendering instance = null;
|
|||
|
|
public static PXR_FoveationRendering Instance
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
if (instance == null)
|
|||
|
|
{
|
|||
|
|
instance = new PXR_FoveationRendering();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return instance;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Sets a foveated rendering level.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="level">Select a foveated rendering level:
|
|||
|
|
/// * `None`: disable foveated rendering
|
|||
|
|
/// * `Low`
|
|||
|
|
/// * `Med`
|
|||
|
|
/// * `High`
|
|||
|
|
/// * `TopHigh`
|
|||
|
|
/// </param>
|
|||
|
|
/// <param name="isETFR">
|
|||
|
|
/// Describe if the foveated rendering mode is eye tracked foveated rendering (ETFR):
|
|||
|
|
/// * `true`: ETFR
|
|||
|
|
/// * `false`: not ETFR
|
|||
|
|
/// </param>
|
|||
|
|
/// <returns>
|
|||
|
|
/// * `true`: success
|
|||
|
|
/// * `false`: failure
|
|||
|
|
/// </returns>
|
|||
|
|
public static bool SetFoveationLevel(FoveationLevel level, bool isETFR)
|
|||
|
|
{
|
|||
|
|
if (isETFR)
|
|||
|
|
{
|
|||
|
|
return PXR_Plugin.Render.UPxr_SetEyeFoveationLevel(level);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return PXR_Plugin.Render.UPxr_SetFoveationLevel(level);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Gets the current foveated rendering level.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>The current foveated rendering level:
|
|||
|
|
/// * `None` (`-1`): foveated rendering disabled
|
|||
|
|
/// * `Low`
|
|||
|
|
/// * `Med`
|
|||
|
|
/// * `High`
|
|||
|
|
/// * `TopHigh`
|
|||
|
|
/// </returns>
|
|||
|
|
public static FoveationLevel GetFoveationLevel()
|
|||
|
|
{
|
|||
|
|
return PXR_Plugin.Render.UPxr_GetFoveationLevel();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Sets foveated rendering parameters.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="foveationGainX">Set the reduction rate of peripheral pixels in the X-axis direction. Value range: [1.0, 10.0], the greater the value, the higher the reduction rate.</param>
|
|||
|
|
/// <param name="foveationGainY">Set the reduction rate of peripheral pixels in the Y-axis direction. Value range: [1.0, 10.0], the greater the value, the higher the reduction rate.</param>
|
|||
|
|
/// <param name="foveationArea">Set the range of foveated area whose resolution is not to be reduced. Value range: [0.0, 4.0], the higher the value, the bigger the high-quality central area.</param>
|
|||
|
|
/// <param name="foveationMinimum">Set the minimum pixel density. Recommended values: 1/32, 1/16, 1/8, 1/4, 1/2. The actual pixel density will be greater than or equal to the value set here.</param>
|
|||
|
|
[Obsolete("SetFoveationParameters is not supported.", true)]
|
|||
|
|
public static void SetFoveationParameters(float foveationGainX, float foveationGainY, float foveationArea, float foveationMinimum)
|
|||
|
|
{}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endif
|