public void RenderBF(int src, int dst, int work, BF bf) { int tangentPass = bf.FlowBased ? helper.pass["FBF"] : helper.pass["BF"]; for (int i = 0; i < bf.BlurCount; i++) { SetFloat("_BFOrthogonalize", 1.0f); Blit(src, work, "BF"); SetFloat("_BFOrthogonalize", 0.0f); Blit(work, dst, tangentPass); src = dst; } }
public void UpdateBF(BF bf) { if (!needsUpdate) { return; } SetFloat("_BFSampleLen", bf.SampleLen); SetFloat("_BFDomainVariance", bf.DomainVariance); SetFloat("_BFDomainBias", bf.DomainBias); SetFloat("_BFRangeVariance", bf.RangeVariance); SetFloat("_BFRangeBias", bf.RangeBias); SetFloat("_BFRangeThreshold", bf.RangeThreshold); SetFloat("_BFStepDirScale", bf.StepDirScale); SetFloat("_BFStepLenScale", bf.StepLenScale); if (!bf.UsePreCalc) { return; } SetFloatArray("_BFRangeWeight", bf.RangeWeight); }