/// <summary> /// Fills the current chroma keys with the data from a file. /// </summary> public void LoadGreenScreenData(bool forcegarbagemate = false) { GreenScreenData gsData; if (LoadData(out gsData)) { ChromaKeyData chromaKeyData = gsData.chromaKeyData; garbageMatteData = gsData.garbageMatteData; erosion = chromaKeyData.erosion; sigma_ = chromaKeyData.blurPower; numberBlurIterations = chromaKeyData.numberBlurIterations; whiteClip = chromaKeyData.whiteClip; blackClip = chromaKeyData.blackClip; spill = chromaKeyData.spill; keyColors = chromaKeyData.chromaKeys.color; smoothness = chromaKeyData.chromaKeys.smoothness; range = chromaKeyData.chromaKeys.range; } UpdateShader(); if (forcegarbagemate && garbageMatte != null) { if (!garbageMatte.IsInit) { garbageMatte = new GarbageMatte(GetComponent <Camera>(), finalMat, transform, garbageMatte); } enableGarbageMatte = true; garbageMatte.LoadData(gsData.garbageMatteData); garbageMatte.ApplyGarbageMatte(); } }
public override void OnInspectorGUI() { serializedObject.Update(); greenScreen = (GreenScreenManager)target; key_colors(); if (ToggleButtonStyleNormal == null) { ToggleButtonStyleNormal = "Button"; ToggleButtonStyleToggled = new GUIStyle(ToggleButtonStyleNormal); ToggleButtonStyleToggled.normal.background = ToggleButtonStyleToggled.active.background; } //matte = (ZEDGarbageMatte)target; matte = greenScreen.garbageMatte; GUI.enabled = greenScreen.screenManager != null && greenScreen.screenManager.ActualRenderingPath == RenderingPath.Forward; enableGrabageMatte.boolValue = EditorGUILayout.Toggle("Enable Garbage Matte", enableGrabageMatte.boolValue); GUI.enabled = true; if (enableGrabageMatte.boolValue && greenScreen.screenManager != null && greenScreen.screenManager.ActualRenderingPath == RenderingPath.Forward) { //serializedObject.Update(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Place Markers", matte.editMode ? ToggleButtonStyleToggled : ToggleButtonStyleNormal)) { matte.editMode = !matte.editMode; if (matte.editMode) { matte.EnterEditMode(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Remove Last Marker")) { matte.RemoveLastPoint(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Apply Garbage Matte")) { matte.ApplyGarbageMatte(); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; if (GUILayout.Button("Reset")) { matte.ResetPoints(true); } } GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); pathfileconfig.stringValue = EditorGUILayout.TextField("Save Config", greenScreen.pathFileConfig); serializedObject.ApplyModifiedProperties(); if (GUILayout.Button("...", optionsButtonBrowse)) { pathfileconfig.stringValue = EditorUtility.OpenFilePanel("Load save file", "", "json"); serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Save")) { greenScreen.SaveData(greenScreen.RegisterDataChromaKeys(), greenScreen.garbageMatte.RegisterData()); } GUI.enabled = File.Exists(greenScreen.pathFileConfig); if (GUILayout.Button("Load")) { greenScreen.LoadGreenScreenData(true); keyColors.colorValue = greenScreen.keyColors; range.floatValue = greenScreen.range; smoothness.floatValue = greenScreen.smoothness; whiteclip.floatValue = greenScreen.whiteClip; blackclip.floatValue = greenScreen.blackClip; erosion.intValue = greenScreen.erosion; sigma.floatValue = greenScreen.sigma_; despill.floatValue = greenScreen.spill; } if (GUILayout.Button("Clean")) { matte.CleanSpheres(); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); GUILayout.Space(20); if (GUILayout.Button("Camera Control")) { EditorWindow.GetWindow(typeof(ZEDCameraSettingsEditor), false, "ZED Camera").Show(); } serializedObject.ApplyModifiedProperties(); }