Car Paint Shader: Thin-Film Interference

This post completes the journey started in The Mathematics of Thin-Film Interference, by explaining how to turn the equations previously presented into actual shader code.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

The Mathematics of Thin-Film Interference

This post continues our journey through the Mathematical foundations of iridescence. This time, we will discuss a new way in which material can split light: thin-film interference. This is how bubbles (and car paint) get their unique reflections.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

CD-ROM Shader: Diffraction Grating – Part 2

This post completes the series on how to create a shader for CD-ROMs.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

CD-ROM Shader: Diffraction Grating – Part 1

This post will guide you through the creation of a shader that reproduces the rainbow reflections that can be seen on CD-ROMs and DVDs. This tutorial is part of a longer series on physically based iridescence.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

The Mathematics of Diffraction Grating

This post introduces the mathematics behind the optical phenomenon known as diffraction grating, which is responsible for iridescent reflections in many materials.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

Understanding Diffraction Grating

The first post in this series, The Nature of Light, introduced the dual nature of light, exhibiting behaviours which are typical of both waves and particles. In this part, we will see how those two aspects are both necessary for iridescence to arise.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

Improving the Rainbow – Part 2

In the previous part of this tutorial, Improving the Rainbow – Part 1, we have seen different techniques to reproduce the colours of the rainbow procedurally. Solving this problem efficiently will allow us to simulate physically based reflections with a much higher fidelity.

The purpose of this post is to introduce a novel approach that yields better results than any of the previous solutions, without using any branching.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

Improving the Rainbow – Part 1

Our journey to photorealism requires us to understand not only how light works, but also how we perceive colours. How many colours are in the rainbow? And why pink is not one of them? Those are some of the questions that this post will address.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

The Nature of Light

This is the first part of the tutorial on iridescence. This new series will explore the very nature of light, in order to understand and to replicate how material exhibits colourful reflections. The tutorial is oriented to Unity game developers, although the techniques described can be easily implemented in other languages, including Unreal and WebGL.vi

You can find the complete series here:

Continue reading