S H A D E R S

Some post-processing effects I had fun making

This is a image dithering filter I made in Python with various dithering and pseudo-dithering algorithms.

1. Original.
2. pixel modulating based on greyscale value, creates lines of varying thickness.
3. Random number vs. greyscale value.
4. Sin waves vs Greyscale value, creates lines of varying thickness.
5. Floyd Steinberg algorithm; pixel changes affect adjacent pixels.
6. Bayer algorithm; pixels reference a pixel on the bayer pattern array according to placement and color.
7. Perlin Noise based on pixel position.
8. Perlin Noise based on pixel value.

Available on Github.

Demonstration of Dithering

This is a Dithering post-procession effect I developed. A secondary camera samples the viewport and sends the image to a RenderTexture, and the Main Camera then renders one of 5 2x2 pixel textures according to the pixels level of brightness. I did not realize at the time that I had unknowingly discovered the Bayer dithering algorithm. It is difficult to see because of the framerate of the gif, but as the camera turns, the texture is offset accordingly. I created the models in this scene, except for Susanne, the stock Blender monkey head, which I used to test detail. Created using Amplify Shader Editor and Unity.

Demonstration of Dithering Demonstration of Dithering

This is the first (left) and last (right) versions of the dithering effect. The first version simply takes the color and plugs it into a noise algorithm that renders either a white or black pixel. My python recreation of this effect can be seen in picture 8 above.

In the final version, there are 17 4x4 pixel textures rendered, allowing for more detail in the rendering over the version shown above. My python recreation of this effect can be seen in picture 6 above. The model used here is Head_Augustus by Cone of Vision on TurboSquid.

Demonstration of Dithering

This is a closeup of the dithering effect to better show the texture off-setting.

Demonstration of Dithering

This is a test of a lower resolution version of the dithering effect.

Demonstration of Dithering

This is an earlier version of the effect that used dynamic screenspace-based noise instead of sampling from a series of textures.

Color Distortion

The color distortion aspect from an assignment in Shader Lab.

Spacial Distortion

The spacial distortion aspect from an assignment in Shader Lab.

Both together

Both of the previous effects together.