mixedreality/com.microsoft.mixedreality..../Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSe...

54 lines
3.1 KiB
C#

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using Microsoft.MixedReality.Toolkit.CameraSystem;
using UnityEngine;
namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality
{
/// <summary>
/// Configuration profile for the Windows Mixed Reality camera settings provider.
/// </summary>
[CreateAssetMenu(menuName = "Mixed Reality/Toolkit/Providers/Windows Mixed Reality/Windows Mixed Reality Camera Settings Profile", fileName = "WindowsMixedRealityCameraSettingsProfile", order = 100)]
[MixedRealityServiceProfile(typeof(BaseWindowsMixedRealityCameraSettings))]
public class WindowsMixedRealityCameraSettingsProfile : BaseCameraSettingsProfile
{
[SerializeField]
[Tooltip("If enabled, will render scene from PV camera projection matrix while MRC is active. This will ensure that holograms, such as hand meshes, remain visibly aligned in the video output.")]
private bool renderFromPVCameraForMixedRealityCapture = false;
/// <summary>
/// Whether to use photo/video camera rendering for Mixed Reality Capture on Windows.
/// </summary>
/// <remarks>
/// <para>If true, the platform will provide an additional HolographicCamera to the app when a mixed reality capture photo or video is taken.</para>
/// <para>This HolographicCamera provides view matrices corresponding to the photo/video camera location, and it provides projection matrices using the photo/video camera field of view.</para>
/// </remarks>
public bool RenderFromPVCameraForMixedRealityCapture => renderFromPVCameraForMixedRealityCapture;
[SerializeField]
[Tooltip("Specifies the default reprojection method for HoloLens 2. Note: AutoPlanar requires the DotNetWinRT adapter. DepthReprojection is the default if the adapter isn't present.")]
private HolographicDepthReprojectionMethod reprojectionMethod = HolographicDepthReprojectionMethod.DepthReprojection;
/// <summary>
/// Specifies the default reprojection method for HoloLens 2.
/// </summary>
/// <remarks>AutoPlanar requires the DotNetWinRT adapter. DepthReprojection is the default if the adapter isn't present.</remarks>
public HolographicDepthReprojectionMethod ReprojectionMethod => reprojectionMethod;
[SerializeField]
[Tooltip("Override the camera's projection matrices for a smaller field of view, but rendered content will have more detail.")]
private bool readingModeEnabled = false;
/// <summary>
/// Override the camera's projection matrices for a smaller field of view,
/// but rendered content will have more detail. See <see href="https://docs.microsoft.com/en-us/hololens/hololens2-display">Reading Mode</see> documentation.
/// While this will work on all Windows Mixed Reality platforms, this
/// is primarily useful on HoloLens 2 hardware.
/// If holograms are not stable, change the Stereo Rendering Mode from
/// "Single Pass Instanced" to "Multi Pass" to work around a bug in Unity.
/// </summary>
public bool ReadingModeEnabled => readingModeEnabled;
}
}