The effects tab controls all things related to post processing shaders.

There are two main types of shaders available, those that depend on a depth buffer and those that do not.

The ones that do not depend on depth are Color Correction, Antialiasing, Sharpen and Bloom.



The ones that do are Depth of Field and Ambient Occlusion. Their availability will depend on the software having support for the game, because the depth buffer has to be prepared in a different way for each particular game.

Enable effects enables or disables all post processing done by the fpsc.

Load, Save buttons are for importing and exporting the configuration settings and curve control points of the Effects and Color tab.

Settings files contain limited information related to post processing and can be safely shared between different computers or games.



Antialiasing controls the SMAA (Subpixel Morphological Anti-Aliasing) shader, with 4 quality options.

The recommended setting is Med, as this option will antialias most cases and is a good trade-off between processing speed and quality, but if you have extra gpu power to spare, Ultra is always the better choice.

Color settings enables and disables color correction shaders in a single option, the actual color settings are controlled from the Color tab.

Bloom enables and disables the bloom shader, the slider besides it controls the strength of the effect.

Bloom's curve editor controls how much bloom is to be aplied to the scene's pixels based on their respective luma. Control points can be moved with the mouse and their position affects the shader in real time.

Usually, bloom shaders use a high-pass luma pixel filter, the curve editor allows you to customize in real time this side of the algorithm.



Sharpen allows to apply a sharpening correction to the game's output, the slider controls how much.

If depth buffer effects are available, sharpen and depth of field are tied together, when both options are active, they are actually one single pixel shader.

This is because they are antagonist effects, one will cancel the other, so the fpsc will progresively reduce the sharpening effect the closer it gets to the point where depth of field starts. This gives the opportunity for sharp close-by objects and lets depth of field do its job, it also means the sharpen effect becomes almost free from a gpu usage perspective.

Depth of field enables and disables the dof pixel shader, this is my take on this particular effect and its purpouse is not so much to add a layer of realism to the game as to prevent the game from losing it because of far away LOD (Level Of Detail) objects.

The first slider controls how close to the camera the effect will start, and the second the point where it reaches full out of focus blur.



Ambient occlusion enables and disables SRBAO v4 global illumination shader, the slider controls the strength of the effect. SRBAO is a hand crafted solution built by myself, a fast view-space normal-vector depth-based occlusion shader.

SRBAO stands for Sweeping Ring Based Ambient Occlusion.

The effect has 3 different fog algorithms, the correct one is activated when the fpsc detects the game it is running on, they are based on a 'fog probe' concept that runs independently from the ao shader and actually makes ao processing more flexible and simpler at the same time.

The color frame's luma and the pixel luma also play their part on the final ao solution result as well, as do some carefully chosen game elements like fire, smoke, water falls or general game special effects that may or may not write to the depth buffer.

The Midsize option of ambient occlusion makes the shader work with half size scaled down images to make it even faster sacrificing render quality.

Although looking at the solution the result it's way blurrier and obviously less precise, once merged with the game's color image the result can be very acceptable.



Show occlusion lets you see the occlusion solution that is being merged with the game's color image.

The solution will be heavily affected by how the game processes fog, srbao has 3 different fog algorithms. The overall frame luma and the pixel luma also affect how much occlusion will be merged to the color frame.

Show normals presents the view-space normals of the current scene, red is x axis, green is y axis and blue is negative z axis.

The normal vectors are very similar to the ones calculated by the ambient occlusion pixel shader. And is a useful way to see mesh details of the objects that have been written to the depth buffer.

Show depth renders a scaled view of the depth buffer used by the depth of field and ambient occlusion shaders.

It is range scaled because of the way the camera fustrum projection controls the values written to the depth buffer.

It didn't make much sense to directly show the raw data as those images have to be converted to the backbuffer format and the image will lose any detail it had and be just plain black and white specially with a very large far clipping plane.