|
|
- /************************************************************************************
- Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
-
- Licensed under the Oculus Utilities SDK License Version 1.31 (the "License"); you may not use
- the Utilities 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/utilities-1.31
-
- Unless required by applicable law or agreed to in writing, the Utilities 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 || OVR_ANDROID_MRC
- public class OVRMixedRealityCaptureSettings : ScriptableObject
- {
- public bool enableMixedReality = false;
- public LayerMask extraHiddenLayers;
- public OVRManager.CompositionMethod compositionMethod = OVRManager.CompositionMethod.External;
- public Color externalCompositionBackdropColorRift = Color.green;
- public Color externalCompositionBackdropColorQuest = Color.clear;
- 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;
- public OVRManager.DepthQuality depthQuality = OVRManager.DepthQuality.Medium;
- public float dynamicLightingSmoothFactor = 8.0f;
- public float dynamicLightingDepthVariationClampingValue = 0.001f;
- public OVRManager.VirtualGreenScreenType virtualGreenScreenType = OVRManager.VirtualGreenScreenType.Off;
- public float virtualGreenScreenTopY;
- public float virtualGreenScreenBottomY;
- public bool virtualGreenScreenApplyDepthCulling = false;
- public float virtualGreenScreenDepthTolerance = 0.2f;
-
- public void ReadFrom(OVRManager manager)
- {
- enableMixedReality = manager.enableMixedReality;
- compositionMethod = manager.compositionMethod;
- extraHiddenLayers = manager.extraHiddenLayers;
- externalCompositionBackdropColorRift = manager.externalCompositionBackdropColorRift;
- externalCompositionBackdropColorQuest = manager.externalCompositionBackdropColorQuest;
- capturingCameraDevice = manager.capturingCameraDevice;
- flipCameraFrameHorizontally = manager.flipCameraFrameHorizontally;
- flipCameraFrameVertically = manager.flipCameraFrameVertically;
- handPoseStateLatency = manager.handPoseStateLatency;
- sandwichCompositionRenderLatency = manager.sandwichCompositionRenderLatency;
- sandwichCompositionBufferedFrames = manager.sandwichCompositionBufferedFrames;
- chromaKeyColor = manager.chromaKeyColor;
- chromaKeySimilarity = manager.chromaKeySimilarity;
- chromaKeySmoothRange = manager.chromaKeySmoothRange;
- chromaKeySpillRange = manager.chromaKeySpillRange;
- useDynamicLighting = manager.useDynamicLighting;
- depthQuality = manager.depthQuality;
- dynamicLightingSmoothFactor = manager.dynamicLightingSmoothFactor;
- dynamicLightingDepthVariationClampingValue = manager.dynamicLightingDepthVariationClampingValue;
- virtualGreenScreenType = manager.virtualGreenScreenType;
- virtualGreenScreenTopY = manager.virtualGreenScreenTopY;
- virtualGreenScreenBottomY = manager.virtualGreenScreenBottomY;
- virtualGreenScreenApplyDepthCulling = manager.virtualGreenScreenApplyDepthCulling;
- virtualGreenScreenDepthTolerance = manager.virtualGreenScreenDepthTolerance;
- }
- public void ApplyTo(OVRManager manager)
- {
- manager.enableMixedReality = enableMixedReality;
- manager.compositionMethod = compositionMethod;
- manager.extraHiddenLayers = extraHiddenLayers;
- manager.externalCompositionBackdropColorRift = externalCompositionBackdropColorRift;
- manager.externalCompositionBackdropColorQuest = externalCompositionBackdropColorQuest;
- manager.capturingCameraDevice = capturingCameraDevice;
- manager.flipCameraFrameHorizontally = flipCameraFrameHorizontally;
- manager.flipCameraFrameVertically = flipCameraFrameVertically;
- manager.handPoseStateLatency = handPoseStateLatency;
- manager.sandwichCompositionRenderLatency = sandwichCompositionRenderLatency;
- manager.sandwichCompositionBufferedFrames = sandwichCompositionBufferedFrames;
- manager.chromaKeyColor = chromaKeyColor;
- manager.chromaKeySimilarity = chromaKeySimilarity;
- manager.chromaKeySmoothRange = chromaKeySmoothRange;
- manager.chromaKeySpillRange = chromaKeySpillRange;
- manager.useDynamicLighting = useDynamicLighting;
- manager.depthQuality = depthQuality;
- manager.dynamicLightingSmoothFactor = dynamicLightingSmoothFactor;
- manager.dynamicLightingDepthVariationClampingValue = dynamicLightingDepthVariationClampingValue;
- manager.virtualGreenScreenType = virtualGreenScreenType;
- manager.virtualGreenScreenTopY = virtualGreenScreenTopY;
- manager.virtualGreenScreenBottomY = virtualGreenScreenBottomY;
- manager.virtualGreenScreenApplyDepthCulling = virtualGreenScreenApplyDepthCulling;
- manager.virtualGreenScreenDepthTolerance = virtualGreenScreenDepthTolerance;
- }
-
- #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
|