Example #1
0
    void Diffuse(DiffuseData data)
    {
        var kernel = _cs.FindKernel(data.kernelName);

        _cs.SetFloat(CSPARAM.VISCOCITY, data.viscocity);

        // warn: consiser first swap
        var read  = data.writeTex;
        var write = data.readTex;

        for (var i = 0; i < data.iteration; ++i)
        {
            var tmp = read;
            read  = write;
            write = tmp;

            _cs.SetTexture(kernel, data.readName, read);
            _cs.SetTexture(kernel, data.writeName, write);

            _cs.DispatchThreads(kernel, write.width, write.height, 1);
        }

        if (data.iteration % 2 == 0)
        {
            Graphics.Blit(read, write);
        }
    }
    private void SaveDataDiffuse()
    {
        DiffuseData d = new DiffuseData();

        d.specShadows = specShadows.vars;
        d.HSV_diffuse = HSV_diffuse.vars;
        d.contrast    = contrast.vars;
        WriteParams(d, assetName, "Diffuse.xml");
    }
 private void LoadDataDiffuse()
 {
     if (File.Exists(GetSavePath(assetName) + "Diffuse.xml"))
     {
         DiffuseData d = ReadParams <DiffuseData>(assetName, "Diffuse.xml");
         specShadows.SetPara(d.specShadows);
         HSV_diffuse.SetPara(d.HSV_diffuse);
         contrast.SetPara(d.contrast);
     }
     else
     {
         specShadows.ResetPara();
         HSV_diffuse.ResetPara();
         contrast.ResetPara();
     }
 }