示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }