Iridescence

To implement Iridescence we imidiately gave up on following the provided paper and did something completely different. We simply parse multiple textures and then do linear interpolation between them depending on the angle of the incident ray to the shading normal. Below you can see 3 renders of the same mesh with the same material from different angles showing how its colour depends on the viewing angle.

Code:

  • src/bsdfs/iridescent.cpp
Spoiler: Implementation of this feature in our final render
    The orbs and the Mandelbulb use an iridescent material.