Wednesday, February 15, 2017

Devlog: Fates and Constellations #14 - Post-processing

We thought it's time to finally do some post-processing to spice up the look of the game and to break away from the somewhat flat color tone. There was much experimentation, and we eventually settled on changing the hue and saturation towards the bottom of the screen so it looks like the landscape is reflecting light.

Here's the comparison (before & after):


We try to keep the effect subtle in order to not draw too much attention away from the puzzle. In fact, we're thinking of making the constellations stand out more by implementing glow - so that's something to look forward to! =D

While implementing the shader I came across a weird issue on iOS - unlike its Windows counterpart, which gave the above result, the iOS build had weird graphical glitches (flickering white dots, black colors turning white, etc). As it turned out, the issue was caused by floating point imprecision. More specifically, for GLSL (ES), precision qualifiers are a thing. (Much thanks to my teammate jon for fixing this!)

For some reason, the float variables in the shader were of mediump (medium precision) and is unable to represent a value as small as the following:

float e = 1.0e-10;

Consequently, e becomes 0 and resulted in a division by zero in the implementation, thereby causing weird graphical artifacts.

The following links greatly helped us in the implementation of the post-processing fx.