Skip to content

BasicPostProcess

Chuck Walbourn edited this page Jun 16, 2017 · 11 revisions

Performs basic post-processing with a built-in set of shaders which operate using one input texture.

See also PostProcess

Header

#include "PostProcess.h"

Initialization

Construction requires a Direct3D 11 device.

std::unique_ptr<BasicPostProcess> postProcess;
postProcess = std::make_unique<BasicPostProcess>(device);

For exception safety, it is recommended you make use of the C++ RAII pattern and use a std::unique_ptr or std::shared_ptr

Shader selection

BasicPostProcess can be configured to use various pixel shaders by calling SetEffect:

  • Copy: Performs a simple read of the input texture, outputting the same color. This is mostly useful for debugging.
  • Monochrome: Converts the input texture pixels to a luminance value.
  • Sepia: Implements a sepia-tone effect.
  • DownScale_2x2: Downscales each 2x2 block of pixels to an average. This is intended to write to a render target that is half the size of the source texture in each dimension.
  • DownScale_4x4: Downscales each 4x4 block of pixels to an average. This is intended to write to a render target that is a quarter the size of the source texture in each dimension.
  • GaussianBlur_5x5: Performs a Gaussian blur with a 5x5 kernel
  • BloomExtract: Performs a bloom extract, which is the first pass in implementing a bloom effect
  • BloomBlur: Performs a horizontal or vertical blur which is typically the second and third passes of implementing a bloom effect.

Properties

  • SetSourceTexture is used to set the input texture as a Shader Resource View.

  • SetGaussianParameter sets the multiplier for the GaussianBlur_5x5 shader.

  • SetBloomExtractParameter sets the extract parameter for the BloomExtract shader.

  • SetBloomBlurParameters sets the horizontal vs. vertical mode as well as the size and brightness factors for the BloomBlur shader.

For Use

  • Universal Windows Platform apps
  • Windows desktop apps
  • Windows 11
  • Windows 10
  • Windows 8.1
  • Xbox One

Architecture

  • x86
  • x64
  • ARM64

For Development

  • Visual Studio 2022
  • Visual Studio 2019 (16.11)
  • clang/LLVM v12 - v18
  • MinGW 12.2, 13.2
  • CMake 3.20

Related Projects

DirectX Tool Kit for DirectX 12

DirectXMesh

DirectXTex

DirectXMath

Win2D

Tools

Test Suite

Model Viewer

Content Exporter

DxCapsViewer

Clone this wiki locally