This was something I always wanted to do because A. relighting is great B. I wanted to try the speed of the NUKE API. Result were three nodes – Diffuse, Specular and a Rim Light node. We need a surface normal, word position and eye buffer. The rim light node is also great to create a simple NdotEYE by just switching off the diffuse component.
Basic relighting session without additional render passses:
Diffuse and Specular nodes. Diffuse is able to create falloffs based on the light position in worldspace. The specular got phong and blinn calculation.
Two rim light examples. The first one ist standard from the left side and the second one with the fake metal call, which is the result of a coding error I transformed into a feature.
Resulting teapot with 3 diffuse nodes 2 specs and a rim. The Rim node got a fake metal which looks a little bit anisotropic.