Tag: shader

  • GPU Sorting

    GPU Sorting

    This article introduces the concept of parallel sorting, discussing the theory and implementation of a shader that can sort pixels. You can read the full series here: You can find a link to download the Unity source code at the end of this tutorial.

  • CD-ROM Shader: Diffraction Grating – Part 2

    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.

  • CD-ROM Shader: Diffraction Grating – Part 1

    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…

  • Fast Subsurface Scattering in Unity (Part 1)

    Fast Subsurface Scattering in Unity (Part 1)

    Most (if not all) optical phenomena that materials exhibit can be replicated by simulating how the individual rays of light propagate and interact. This approach is referred in the scientific literature as ray tracing, and it is often too computationally expensive for any real-time application. Most modern engines rely on massive simplifications that, despite being…

  • The Mathematics of Diffraction Grating

    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.

  • Understanding Diffraction Grating

    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…

  • Improving the Rainbow – Part 2

    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…

  • Improving the Rainbow – Part 1

    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…

  • The Nature of Light

    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…

  • Fast Subsurface Scattering in Unity (Part 2)

    Fast Subsurface Scattering in Unity (Part 2)

    This is the second part of the tutorial on Fast Subsurface Scattering in Unity. This post will show a working implementation of this effect. This is a two part series: At the end of this post, you will find a link to download the Unity project.