AcTools.Render.Base.PostEffects.BlurHelper.Blur C# (CSharp) Method

Blur() public method

public Blur ( DeviceContextHolder holder, TargetResourceTexture source, TargetResourceTexture temporary, float power = 1f, int iterations = 1, TargetResourceTexture target = null ) : void
holder DeviceContextHolder
source AcTools.Render.Base.TargetTextures.TargetResourceTexture
temporary AcTools.Render.Base.TargetTextures.TargetResourceTexture
power float
iterations int
target AcTools.Render.Base.TargetTextures.TargetResourceTexture
return void
        public void Blur(DeviceContextHolder holder, TargetResourceTexture source, TargetResourceTexture temporary, float power = 1f, int iterations = 1,
                TargetResourceTexture target = null) {
            for (var i = 0; i < iterations; i++) {
                holder.DeviceContext.OutputMerger.SetTargets(temporary.TargetView);
                BlurHorizontally(holder, (i == 0 ? null : target?.View) ?? source.View, power);

                holder.DeviceContext.OutputMerger.SetTargets(target?.TargetView ?? source.TargetView);
                BlurVertically(holder, temporary.View, power);
            }
        }

Usage Example

Ejemplo n.º 1
0
        private void UpdateBloom(DeviceContextHolder holder, ShaderResourceView view)
        {
            holder.DeviceContext.OutputMerger.SetTargets(_bloomTexture.TargetView);
            _effect.FxInputMap.SetResource(view);
            _effect.TechBloom.DrawAllPasses(holder.DeviceContext, 6);

            // blurring
            _blurHelper.Blur(holder, _bloomTexture, _tempTexture, 1f, 2);
        }