19 December 2008

V-Ray Render Elements - Rendering and Compositing in Photoshop

Final Composition

Rendering out into elements is a fantastic way of having more control over your images and animations in post production. There are however few tutorials that show how to do this from start to finish in an efficient way. This tutorial will guide you through the entire process from start to finish of rendering a scene into various passes, and how to composite it back together in Photoshop. This can also be applied to After Effects or any other compositing program if you are creating an animation.

In this tutorial we will:

Set up the scene in 3ds Max to render out various elements.
Composite them back together using photoshop.
Add specular bloom to bright areas to enhance realism.

V-Ray is a full HDRI renderer - producing full high dynamic range images. This is great for post production as it allows you to change the image exposure without losing any quality. In order to take advantage of this we need to set up V-Ray to save 32-Bit OpenEXR Files.

So what's OpenEXR and HDRI?

Both OpenEXR and HDRI images are high dynamic range files - capaple of holding much more colour information than a monitor can display. A normal 8-bit per channel jpeg or tiff contains a total of 16.7 million colours (256*256*256). A high dynamic range file is capable of holding 32-bits per channel, allowing it to contain a total of 4722366482869645213696 different colours! An OpenEXR file is practically the same as an HDRI file, but it can contain many layers and compression methods. It was developed by ILM for use in-house for their renders, and has been made freely available to all 3D users!

So why is this useful?

The amount of colour information stored in a full 32-bit floating point file allows you an incredible amount of control in post production. For example, below is a render of a sphere with a vray light material applied with an intensity of 100. To the left is a normal 8-bit per channel bitmap, to the right is a 32-bit per channel float. Notice as I reduce the exposure what happens. On the normal image the sphere simply becomes darker. However on the right the extra light information in the exr file is telling photoshop that the light is still very bright - and it was actually a red light but was so bright it appeared white! The normal 8-bit per channel image has lost a large amount of colour information when it was saved, however the high dynamic range image has retained all the informaion.

Exposure Example

Hopefully this example has shown you why rendering in hdr is so powerful. HDR Files retain a massive amount of colour information - including totally burnt out areas that appear white! The only slight issue with rendering to hdri is the jagged edges produced due to the massive contrast in colour levels. The workaround to this is to add specular bloom which we will be doing later.

Setting up the Scene

Firstly, we need to set up 3ds Max. If you do not have a scene to work on, please download this 3ds Max file. (Made in 3ds Max 2009 and V-ray 1.5 SP2)

With V-Ray it's possible to save all render elements into a single OpenEXR File, allowing you to open one file in photoshop with all the render elements as a seperate layer.




Turn on V-Ray Frame Buffer and tick "Render to V-Ray RAW Image File". Click Browse and choose a location to save the image. Once you have chosen a save location change the file extension from .vrimg to .exr and press save.

Next its time to set up all the render element passes:



Go to the Render Elements tab and enable "Elements Active". Click "Add" and select these elements:

VRay_Reflection
VRay_GlobalIllumination
VRay_Lighting
VRay_Specular

If you need an alpha channel add "VRay_Alpha". At the moment these are the only elements required. If you are rendering out an animation you may want to enable the Velocity pass as well. A tutorial for this will be coming soon.


PLEASE NOTE - IF THE VRAY FRAME BUFFER IS ENABLED, ELEMENTS WILL APPEAR UNTICKED AND TURNED OFF.
THIS IS NORMAL AND WILL RENDER FINE.


Finally, once everything is ready press render.

Compositing the Elements in Photoshop

Open up the rendered OpenEXR file in Photoshop. If you do not have the file but would like to learn how to composite the passes please download this file.

If you can only see one layer in Photoshop called RGBA it's because you need a plugin called ProEXR to read the rest of the layers. There is a free 15 day trial for this plugin if you would like to use it which can be found here. Adobe Photoshop can read exr files but in a very limited way, which is why this plugin is required.

An alternative to using this plugin is to render out each frame into a seperate exr file. Simply turn off the V-Ray frame buffer, enable all the render elements and choose a save location.


Once the plugin is loaded correctly you should be able to see all these passes. The top layer "RGBA" is a pre-calculated composite of all the elements. It isn't needed so you can hide it from view by pressing the eye to the left of it. The Specular layer is actually not needed in this example scene so can be safely deleted. I added it to show you that it is an important element if you have any specular reflections in your scene.


We are going to composite all the layers together by changing the blending mode. At the moment they are all on "normal".

As you can see some of the blending modes are greyed out. This is because the image is a full 32-bit per channel file. If for any reason you want to use a greyed out blending mode you will have to change the file to either 8 or 16-bit perchannel. This can be done by pressing Image>Mode>X_Bits Per Channel.

We want to add all of the elements together, so change all of the layers to "Linear Dodge (Add)". It doesn't matter what order your layers are in as they are all being added to each other.

Your image should now look like the reference RGBA layer - unhide it to check.

Simple huh!



Adding Specular Bloom

Specular bloom really helps make an image go from being good to great. It's also a really handy way of getting rid of aliased (jagged) edges aroud very bright lights/reflections.

Jagged edges are a problem with all HDRI renderers and not just a problem with V-Ray. Very bright areas can be much more intense than other areas in the scene, and for this reason even on very high quality render settings jagged edges can occur.

There are two solutions to this problem:

1. Make V-Ray work as a normal 8-bit per channel renderer by clamping the output values. Under "Color Mapping" tick "Clamp Output" and "Sub-Pixel Mapping".

2. Add specular bloom to the very bright areas in order to blur the jagged edges into the rest of the scene. This is the preffered method as it allows you to have full 32-bit HDRI images and it also acts the way a normal camera would in real life.




In Photoshop duplicate the "VRay_Reflections" layer and hide all layes except the newly duplicated one. Adjust the Gamma by pressing Image>Adjustments>Exposure and use the Settings in the Image.
Change the opacity of the Layer to around 3%. This value is very low as the whites are so bright due to the HDRI file.

Unhide all the layers and then add a blur to the gamma adjused reflection Layer by going to Filter>Blur>Guassian Blur.

Adjust the blur amount to around 7 pixels.

Sometimes this may not produce the desired results for bloom due to the diverse amount of brightness contained in an hdr file (some whites will bloom massively compared to others). This is entirely accurate and the way a real life camera would behave, but this sometimes may not work for your particular scene. To overcome ths you can convert the duplicated layer to 8-bit and then apply the bloom by adjusting the brightness/contrast values. The best way to do this would be to copy the layer into a new image in photoshop, convert it to 8-bpc, adjust the brightness/contrast, and then drag the image back into the main composition changing the blending mode to dodge (add) and adding a blur.

Hopefully you have managed to follow all the steps and create a composited image.

So why did we just do that?

Rendering out into different elements, especially hdr elements, allows us an incredible amount of post production control.

For example - say we want to change the amount of reflection after the image has rendered. Go to Image>Adjustments>Levels and change the amount of reflection using the levels tool. This is a very simple example of how powerful render passes can be.



Thank you for reading this, and I hope you will find it useful.

Tutorial written by Tim Hawker. Plese feel free to leave a comment!

2 comments:

  1. This tutorial is a RIP and has been stolen from my web site.

    To view this tutorial or leave a comment please go to http://www.vfxstudios.co.uk/tutorials/vrayrenderelements/vray_render_elements.html

    WEBMASTER PLEASE REMOVE THIS TUTORIAL FROM YOUR WEBSITE AND REPLACE IT WITH A LINK TO MY TUTORIAL.

    ReplyDelete
  2. Why u don't do it yourself ?

    ReplyDelete

Follow on Buzz