SIRENUM

Sirenum required a post processing effect to draw the outlines and apply a small amount of dithering.

In order to draw the outlines I used a common outlining technique which detects discontinuities in the image rendered by the engine. Usually it is used with three sources of discontinuities - colors, normals and depth. You can find a good resource on this method here. In Sirenum I only use discontinuities in colors. I modelled all models, which allowed me to manually set vertex colors which allowed me to control where I wanted lines to appear.

Sirenum

break


MOEBIUS IMAGE EFFECT

After playing Sable, I set out in making a Moebius inspired graphic novel post processing shader.

I use a discontinuity based outline detection algorithm with three sources of discontinuities. This is coupled with a simple binary lighting model. Either an object is lit with the color of the main light source or it is in shadows. I also allow objects to have an edge map texture for custom edges - this is done in another render pass. A bloom effect supplements all of the above to give objects more presence.

Sable

break


PROJECT TRAIN

Project Train required a retro look and I did so through a post processing shader.

The shader controls the allowed range of colors. While we mostly use the R8G8B8A8 (32-Bit) format in modern engines, older engines had fewer bits per channel - it was often R5G6B5 (16-Bit) but changed depending on desired color expression. This dramatically reduces the amount of colors you can create. (HDR uses more bits per channel, hence why HDR represents more colors) The shader controls how many bits are allowed for each channel, creating this old school feeling. We also control the rendering resolution to add pixelation. My work includes VFX for the game, one instance of which you can see below.

ProjectTrain

break


GAUSSIAN OUTLINES

Gaussian Outlines are useful if we want soft outlines. They are built using a gaussian blur on select objects. Each object is rendered on a special render target and then blurred in two passes. One vertical and one horizontal pass. As such they can be expensive if used extensively. Despite this they are widespread.

GaussianOutlines

break


TERRAIN SCANNER

I created this terrain scanner to upload it for free on the Unity Asset store. There were not many alternatives and I thought it could be helpful to others. It has 1500 unique downloads. Good for prototyping and production.

The scanner is a post processing effect and will work with any level geometry and materials, except transparent materials that do not write to the depth pass. The depth is used to reconstruct the world position of each pixel so that we can determine whether that pixel is within the range of the terrain scanner and whether it should be modified.

Asset Store

break


OBJECT PLACEMENT EFFECT

I created this object placement to be distributed for free on the Unity Asset Store. The pack contains three different effects each with their own quirks. For one of the placement effects I also created a texture using substance designer, both the texture and graph are seen below.

Lines

SubGraph

break