Esempio n. 1
0
    /// <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();
        }
    }
Esempio n. 2
0
    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();
    }