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(); } }