An Introduction to IBL and AO using 3Delight in Maya
3Delight is one of the most powerful rendering engines available, and it is also very well known in the industry, making it an extremely valuable tool to have in your skillset. In this beginner level tutorial, you will learn you how to create IBL (image based lighting) and also raytraced occlusion using 3Delight in Maya.
Final Effect Preview
To complete this tutorial you also need hdri map, which you can find at the link above (under Tutorial Details). For the purpose of this tutorial I used RenoSuburb01_sm.hdr. If you want to use the same values as I do, you should keep your objects in similar dimensions (the height of character is 115cm), and also change your Working Units to centimeters. You can do this by clicking the icon shown on picture below. You can obtain 3Delight itself from the link above as well, and you will also be able to find detailed instructions for installation. The only disadvantage of the free version is the limit of two threads during rendering, so if you have a quad core processor, only two of it's cores will work during rendering.
For the purposes of this tutorial I used a very simple scene consisting of a floor and model of a boy. As you can see, at this time model looks very rough.
To make a quick render using 3Delight you must add a render pass. Click 3Delight -> Add Render Pass -> Default.
Click the render button.
For future renders you can simply click 3Delight -> Render -> "your render pass name" (ex. delightRenderPass1).
To access the rendering attributes, click 3Delight -> Select Render Pass -> "your render pass name".
After rendering you should get a poorly looking image.
Time to invoke some renderman awesomeness. In renderman polygonal models can be rendered very smoothly without any actual mesh smoothing modifier, which can speed up your render times tremendously. All you have to do is assign special attributes to the objects that you want to render smoothly. Select your objects and click 3Delight -> Assignment Panel.
I have selected only the boy model. In the Assignment Panel click button 1 (in the image below) to create attributes, and then click button 2 to show the attributes in the Attributes Editor.
In the Attributes Editor, press and hold the button Add/Remove Attributes and chose ALL to assign all attributes.
If you accidentally deselect your object, don't assign new attributes. Just re-select the objects and find the desired tab in Attributes Editor. In my case, the model of the boy combines several objects into one group, and the attributes are added to that group. So if I only select one object in the group, there will be no attributes from 3Delight. I must select the entire group via the Outliner.
Under Geometry check the Poly as Subd. This simple click will make your model look smooth, but with almost the same render time.
Render, and you should get something like this.
To make an environment light, you must first convert your HDRI map into a format that is readable by 3Delight. To do this, run the command line by hitting Start -> Run, then type CMD and press ENTER. Go to the directory where you have your HDRI map and type: tdlmake "envlatl RenoSuburb01_sm.hdr RenoSuburb01_sm.tdl
If your hdri map is in different format (light probe for example), then the command should also be different. For light probe type: tdlmake "lightprobe *.hdr *.tdl. For more information type ~tdlmake "h".
Create an Ambient Light by going to Create -> Lights -> Ambient Light. Leave all of the settings as default. You can place it wherever you want. You must assign a 3Delight light shader to it. Select the light and click 3Delight -> Assignment Panel. In the Assignment Panel press button (1) (in the image below) to create a light shader, then select the desired shader from the list (in this case envlight2 (3)). Hit Select (4). Now click button AE (2) to edit the attributes of the shader.
In the Attributes Editor specify your converted hdri map by hitting the folder icon next to the envmap line. Ensure that you have selected the *.tdl file not *.hdr. Kenv lets you adjust the intensity of the light. Render. If the image is too dark, simply increase Kenv.
The render below was done with Kenv set to 5.
To turn occlusions on, change the value of Kocc (in the environment light shader) to 1.0 , and samples to 256 to increase the quality.
If you render now, you will notice no changes. This is because you must make the objects visible to Rays. Make the changes under Visibility, in the 3Delight attributes of the object, to match the settings shown below. The floor plane must also have this attribute enabled. To do this, simply select the Plane and press 3Delight -> Assignment Panel, as described before.
This time rendering should be noticeably slower. To speed up our next steps, change the Kocc value (in the environment light shader) to 0. Now add a lighting map to the camera so the environment will be visible. In the Outliner, select the perspective camera persp, and click 3Delight -> Assignment Panel.
In the Assignment Panel, create a background shader by clicking button (1) and choosing background shader from the list (2). Next press the Select button (3), and then the AE button (4) to show the settings in the Attributes Editor.
In Attributes Editor chose a background image (the same as for the environment light). Ensure that you have selected the *.tdl file and not the *.hdr.
After you render you may notice that the map is not correctly placed. This information is very important because the map for the environment light is placed the same way. In upper left corner you should see the bottom of the map, which tells you the way it must be rotated in order to place it correctly.
To change the placement of the background image and light map, you must create a Coordinate System. Press 3Delight -> Add Coordinate System.
Change the name of the Coordinate System to env_coord, and set the Draw Method to sphere.
You can resize your sphere for a better view. Resizing does not affect the render.
Select your perspective camera and assign the new Coordinate System to it. Type the name given to the Coordinate System in the bgspace field.
Make similar changes to the environment light. Type the Coordinate System name in the envspace field.
The Coordinate System is now assigned. You must then rotate it to the correct position. Test renders from different angles might be helpful to check the current position of the map. In this case, the Coordinate System is rotated on the X-axis because I wanted the sun from the map in front of the Boy.
Add one Directional Light to simulate the sun. Turn on shadows for this light, and change the Kocc value of the Environment Light to 1.0. Render again, and you're done! You should have a nice quick render using IBL and AO in 3Delight!!