Replacing a specular pass in comp

I woke up today with a question floating in a skype conversation with can more or less be translated as :

If I create a sphere in Nuke
plug an HDR map
with the wP, can we make a "fake spec"?
with the Hdr?

Which made me think of a technique I made up last year, more or less day for day, as I needed to replace the reflections on the front lenses of a pair of binoculars. I didn't ask about the specifics of today's question but I can only guess that they are the same as the ones that prompted me to do what I will explain below.

The problem was that a specific part of an object needed to display a reflection of the 3D environment. This would not come up if you were doing direct reflexions or at least using a map of your 3D set as a reflexion map; but can happen when you are using a generic spherical hdri for whatever reason (cost and simplicity in our case).

Solution

The solution I came up with is utilizing the relight node.

spec_relight1.png

As shown in FIG. I am plugin an Environment light in the Relight node, with a Specular material.

  • The Relight node is left with default parameters, I've only ticked use alpha.

  • The Environment node as some interesting parameters. Color, intensity and blur size directly affect the output look while mirror image and rotate affect the position on the environment map.
    (I've chose to handle the rotations using a SphericalTransform)

  • The Specular shader is pretty important. Leaving white at 1 will render the correct colors. Min shininess and max shininess affect the look of the specular, and to be perfectly franc, I'm not sure how. I chose to not use them and went below the interface minimum values by setting them to 0; this renders a perfect reflection on the whole surface.

The next step is more or less just a matter of replacing the rendered specular pass. Here I used to rendered pass to make a mask before merging my new reflexion on top of the diffuse pass. You could choose not to use a mask of the previous pass and utilize the min shininess and max shininess values instead. How you want to merge the new reflexion is heavily dependent on the look you're after.

Results

On the short clip below, I've displayed the original render, a render of my comp and a render of the same 3D scene that gave the original render but with the environment what I've used in nuke, to serve as a comparison.

I also opted to not replace the indirect specular as most of it was the result of rays hitting the ground.

It is obviously not as good as finding a solution utilizing your render engine and all its physicality but it's fairly quick and decent looking.

I've made the comp available for download here : download the comp.