Book Image

Direct3D Rendering Cookbook

Book Image

Direct3D Rendering Cookbook

Overview of this book

Table of Contents (19 chapters)
Direct3D Rendering Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Further Reading
Index

Implementing a Gaussian blur filter


In this recipe, we use the separability of the Gaussian blur convolution filter to apply a Gaussian blur in two passes for a vertical and horizontal Gaussian blur.

The Gaussian blur is used in many image processing and 3D graphics operations. The filter can be used to soften edges, apply blurring during depth of field operations, or for use within the Bloom lighting technique.

Getting ready

This recipe begins with the completed horizontal and vertical filter compute shaders and C# code to execute them from the Implementing box blur using separable convolution filters recipe.

How to do it…

By adjusting the kernel values, we can create a Gaussian blur filter. For each of the following kernels, the center weight (weight of current texel) is highlighted:

  1. In order to create a 3-tap Gaussian blur, change the BlurKernel method of the horizontal and vertical compute shaders to:

    #define FILTERTAP 3
    ...SNIP
    static const float BlurKernel[FILTERTAP] = {
      0.2740686, 0.4518628...