Пример #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();
        }
    }
Пример #2
0
    /// <summary>
    /// Saves the chroma keys used in a file (JSON format).
    /// </summary>
    public void SaveData(ChromaKeyData chromaKeyData, GarbageMatte.GarbageMatteData garbageMatteData)
    {
        GreenScreenData gsData = new GreenScreenData();

        gsData.chromaKeyData    = chromaKeyData;
        gsData.garbageMatteData = garbageMatteData;
        string dataAsJson = JsonUtility.ToJson(gsData);

        File.WriteAllText(pathFileConfig, dataAsJson);
    }
Пример #3
0
    /// <summary>
    /// Creates a new serializable ChromaKeyData file from the current settings.
    /// </summary>
    public ChromaKeyData RegisterDataChromaKeys()
    {
        ChromaKeyData chromaKeyData = new ChromaKeyData();

        chromaKeyData.chromaKeys           = new ChromaKey();
        chromaKeyData.erosion              = erosion;
        chromaKeyData.blurPower            = sigma_;
        chromaKeyData.numberBlurIterations = numberBlurIterations;
        chromaKeyData.whiteClip            = whiteClip;
        chromaKeyData.spill     = spill;
        chromaKeyData.blackClip = blackClip;


        chromaKeyData.chromaKeys.color      = keyColors;
        chromaKeyData.chromaKeys.smoothness = smoothness;
        chromaKeyData.chromaKeys.range      = range;

        return(chromaKeyData);
    }
Пример #4
0
    /// <summary>
    /// Fill the current chroma keys with the data from a file
    /// </summary>
    public void LoadChromaKeys()
    {
        ChromaKeyData chromaKeyData = LoadData();

        if (chromaKeyData.numberColors != -1)
        {
            current_numberColors = chromaKeyData.numberColors;
            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();
    }
Пример #5
0
    /// <summary>
    /// Save the chroma keys used in a file (JSON format)
    /// </summary>
    public void SaveChromaKeys()
    {
        ChromaKeyData chromaKeyData = new ChromaKeyData();

        chromaKeyData.chromaKeys           = new ChromaKey();
        chromaKeyData.numberColors         = current_numberColors;
        chromaKeyData.erosion              = erosion;
        chromaKeyData.blurPower            = sigma_;
        chromaKeyData.numberBlurIterations = numberBlurIterations;
        chromaKeyData.whiteClip            = whiteClip;
        chromaKeyData.spill     = spill;
        chromaKeyData.blackClip = blackClip;


        chromaKeyData.chromaKeys.color      = keyColors;
        chromaKeyData.chromaKeys.smoothness = smoothness;
        chromaKeyData.chromaKeys.range      = range;

        SaveData(chromaKeyData);
    }
Пример #6
0
    /// <summary>
    /// Load the data from a file and fill a structure
    /// </summary>
    /// <returns></returns>
    private ChromaKeyData LoadData()
    {
        if (File.Exists(pathFileShader))
        {
            string dataAsJson = File.ReadAllText(pathFileShader);
            return(JsonUtility.FromJson <ChromaKeyData>(dataAsJson));
        }
        else
        {
            ChromaKeyData chromaKeyData = new ChromaKeyData();

            chromaKeyData.numberColors = -1;
            chromaKeyData.spill        = defaultSpill;

            //Load default values
            chromaKeyData.chromaKeys.color      = defaultColor;
            chromaKeyData.chromaKeys.smoothness = defaultSmoothness;
            chromaKeyData.chromaKeys.range      = defaultRange;

            return(chromaKeyData);
        }
    }
Пример #7
0
    /// <summary>
    /// Return a string from a pointer to char
    /// </summary>
    private void SaveData(ChromaKeyData chromaKeyData)
    {
        string dataAsJson = JsonUtility.ToJson(chromaKeyData);

        File.WriteAllText(pathFileShader, dataAsJson);
    }