Files
Bachelor-Arbeit-Thomas-Wichert/Assets/Oculus/VR/Scripts/Util/OVRMixedRealityCaptureSettings.cs
2025-07-21 09:11:14 +02:00

285 lines
9.3 KiB
C#

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* Licensed under the Oculus SDK License Agreement (the "License");
* you may not use the Oculus SDK except in compliance with the License,
* which is provided at the time of installation or download, or which
* otherwise accompanies this software in either electronic or hard copy form.
*
* You may obtain a copy of the License at
*
* https://developer.oculus.com/licenses/oculussdk/
*
* Unless required by applicable law or agreed to in writing, the Oculus SDK
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if UNITY_ANDROID && !UNITY_EDITOR
#define OVR_ANDROID_MRC
#endif
using UnityEngine;
using System;
using System.IO;
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN || UNITY_ANDROID
public class OVRMixedRealityCaptureSettings : ScriptableObject, OVRMixedRealityCaptureConfiguration
{
public bool enableMixedReality = false;
public LayerMask extraHiddenLayers;
public LayerMask extraVisibleLayers;
public bool dynamicCullingMask = true;
public OVRManager.CompositionMethod compositionMethod = OVRManager.CompositionMethod.External;
public Color externalCompositionBackdropColorRift = Color.green;
public Color externalCompositionBackdropColorQuest = Color.clear;
[Obsolete("Deprecated", false)]
public OVRManager.CameraDevice capturingCameraDevice = OVRManager.CameraDevice.WebCamera0;
public bool flipCameraFrameHorizontally = false;
public bool flipCameraFrameVertically = false;
public float handPoseStateLatency = 0.0f;
public float sandwichCompositionRenderLatency = 0.0f;
public int sandwichCompositionBufferedFrames = 8;
public Color chromaKeyColor = Color.green;
public float chromaKeySimilarity = 0.6f;
public float chromaKeySmoothRange = 0.03f;
public float chromaKeySpillRange = 0.04f;
public bool useDynamicLighting = false;
[Obsolete("Deprecated", false)]
public OVRManager.DepthQuality depthQuality = OVRManager.DepthQuality.Medium;
public float dynamicLightingSmoothFactor = 8.0f;
public float dynamicLightingDepthVariationClampingValue = 0.001f;
[Obsolete("Deprecated", false)]
public OVRManager.VirtualGreenScreenType virtualGreenScreenType = OVRManager.VirtualGreenScreenType.Off;
public float virtualGreenScreenTopY;
public float virtualGreenScreenBottomY;
public bool virtualGreenScreenApplyDepthCulling = false;
public float virtualGreenScreenDepthTolerance = 0.2f;
public OVRManager.MrcActivationMode mrcActivationMode;
// OVRMixedRealityCaptureConfiguration Interface implementation
bool OVRMixedRealityCaptureConfiguration.enableMixedReality
{
get { return enableMixedReality; }
set { enableMixedReality = value; }
}
LayerMask OVRMixedRealityCaptureConfiguration.extraHiddenLayers
{
get { return extraHiddenLayers; }
set { extraHiddenLayers = value; }
}
LayerMask OVRMixedRealityCaptureConfiguration.extraVisibleLayers
{
get { return extraVisibleLayers; }
set { extraVisibleLayers = value; }
}
bool OVRMixedRealityCaptureConfiguration.dynamicCullingMask
{
get { return dynamicCullingMask; }
set { dynamicCullingMask = value; }
}
OVRManager.CompositionMethod OVRMixedRealityCaptureConfiguration.compositionMethod
{
get { return compositionMethod; }
set { compositionMethod = value; }
}
Color OVRMixedRealityCaptureConfiguration.externalCompositionBackdropColorRift
{
get { return externalCompositionBackdropColorRift; }
set { externalCompositionBackdropColorRift = value; }
}
Color OVRMixedRealityCaptureConfiguration.externalCompositionBackdropColorQuest
{
get { return externalCompositionBackdropColorQuest; }
set { externalCompositionBackdropColorQuest = value; }
}
[Obsolete("Deprecated", false)]
OVRManager.CameraDevice OVRMixedRealityCaptureConfiguration.capturingCameraDevice
{
get { return capturingCameraDevice; }
set { capturingCameraDevice = value; }
}
bool OVRMixedRealityCaptureConfiguration.flipCameraFrameHorizontally
{
get { return flipCameraFrameHorizontally; }
set { flipCameraFrameHorizontally = value; }
}
bool OVRMixedRealityCaptureConfiguration.flipCameraFrameVertically
{
get { return flipCameraFrameVertically; }
set { flipCameraFrameVertically = value; }
}
float OVRMixedRealityCaptureConfiguration.handPoseStateLatency
{
get { return handPoseStateLatency; }
set { handPoseStateLatency = value; }
}
float OVRMixedRealityCaptureConfiguration.sandwichCompositionRenderLatency
{
get { return sandwichCompositionRenderLatency; }
set { sandwichCompositionRenderLatency = value; }
}
int OVRMixedRealityCaptureConfiguration.sandwichCompositionBufferedFrames
{
get { return sandwichCompositionBufferedFrames; }
set { sandwichCompositionBufferedFrames = value; }
}
Color OVRMixedRealityCaptureConfiguration.chromaKeyColor
{
get { return chromaKeyColor; }
set { chromaKeyColor = value; }
}
float OVRMixedRealityCaptureConfiguration.chromaKeySimilarity
{
get { return chromaKeySimilarity; }
set { chromaKeySimilarity = value; }
}
float OVRMixedRealityCaptureConfiguration.chromaKeySmoothRange
{
get { return chromaKeySmoothRange; }
set { chromaKeySmoothRange = value; }
}
float OVRMixedRealityCaptureConfiguration.chromaKeySpillRange
{
get { return chromaKeySpillRange; }
set { chromaKeySpillRange = value; }
}
bool OVRMixedRealityCaptureConfiguration.useDynamicLighting
{
get { return useDynamicLighting; }
set { useDynamicLighting = value; }
}
[Obsolete("Deprecated", false)]
OVRManager.DepthQuality OVRMixedRealityCaptureConfiguration.depthQuality
{
get { return depthQuality; }
set { depthQuality = value; }
}
float OVRMixedRealityCaptureConfiguration.dynamicLightingSmoothFactor
{
get { return dynamicLightingSmoothFactor; }
set { dynamicLightingSmoothFactor = value; }
}
float OVRMixedRealityCaptureConfiguration.dynamicLightingDepthVariationClampingValue
{
get { return dynamicLightingDepthVariationClampingValue; }
set { dynamicLightingDepthVariationClampingValue = value; }
}
[Obsolete("Deprecated", false)]
OVRManager.VirtualGreenScreenType OVRMixedRealityCaptureConfiguration.virtualGreenScreenType
{
get { return virtualGreenScreenType; }
set { virtualGreenScreenType = value; }
}
float OVRMixedRealityCaptureConfiguration.virtualGreenScreenTopY
{
get { return virtualGreenScreenTopY; }
set { virtualGreenScreenTopY = value; }
}
float OVRMixedRealityCaptureConfiguration.virtualGreenScreenBottomY
{
get { return virtualGreenScreenBottomY; }
set { virtualGreenScreenBottomY = value; }
}
bool OVRMixedRealityCaptureConfiguration.virtualGreenScreenApplyDepthCulling
{
get { return virtualGreenScreenApplyDepthCulling; }
set { virtualGreenScreenApplyDepthCulling = value; }
}
float OVRMixedRealityCaptureConfiguration.virtualGreenScreenDepthTolerance
{
get { return virtualGreenScreenDepthTolerance; }
set { virtualGreenScreenDepthTolerance = value; }
}
OVRManager.MrcActivationMode OVRMixedRealityCaptureConfiguration.mrcActivationMode
{
get { return mrcActivationMode; }
set { mrcActivationMode = value; }
}
OVRManager.InstantiateMrcCameraDelegate OVRMixedRealityCaptureConfiguration.instantiateMixedRealityCameraGameObject
{
get;
set;
}
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN // Rift MRC only
const string configFileName = "mrc.config";
public void WriteToConfigurationFile()
{
string text = JsonUtility.ToJson(this, true);
try
{
string configPath = Path.Combine(Application.dataPath, configFileName);
Debug.Log("Write OVRMixedRealityCaptureSettings to " + configPath);
File.WriteAllText(configPath, text);
}
catch (Exception e)
{
Debug.LogWarning("Exception caught " + e.Message);
}
}
public void CombineWithConfigurationFile()
{
try
{
string configPath = Path.Combine(Application.dataPath, configFileName);
if (File.Exists(configPath))
{
Debug.Log("MixedRealityCapture configuration file found at " + configPath);
string text = File.ReadAllText(configPath);
Debug.Log("Apply MixedRealityCapture configuration");
JsonUtility.FromJsonOverwrite(text, this);
}
else
{
Debug.Log("MixedRealityCapture configuration file doesn't exist at " + configPath);
}
}
catch (Exception e)
{
Debug.LogWarning("Exception caught " + e.Message);
}
}
#endif
}
#endif