- Link alla versione italiana:

00finale 1h 10m
English Translation by Gtsix http://www.pixeloverdrive.com

This tutorial comes from the experience gained by me and other treddi.com members during the last months of tests made for reaching good quality interior renderings with Mental Ray.
So I want to begin thanking all those who have contributed to the tests and shared his/her own experiences and settings.
Particularly, I wish to thank Stefano (gtsix) for the English translation and Alessando (Pantich78), that has been the first one to read the draft of this tutorial and provided interesting cues that  allowed me to deepen some aspects of the topic.

The tutorial can easily be followed by whoever uses mental ray (on maya/3d max/xsi/hudini and others)

What I will illustrate is just one of the many possible methods for achieving this kind of illumination, and  should be considered as a starting point to begin your own experimentations with mental ray, from many people around the world considered one of the most difficult rendering engine to use for this type of task.

Some of the steps you’ll find on this tutorial will seem to be repetitive or unmeaningful, but I decided to keep all of them in order to give the reader all the info he/she needs in the clearest way possible. After reading and understanding this tutorial, he/she’ll be able to optimize his/her own personal method, skipping some steps or mixing others. It’s just a matter of experience! ;-)

This is a wide subject, so I have chosen to describe the method in a very general way and to try to touch a bit of  all of the correlated topics.
If anyone should need some help, just write me (obviously it could be possible that I won’t have a ready-to-use answer, but I will try to help you anyway :P ).
In this tutorial I will assume that the reader has a basic knowledge of Maya and Mental Ray.

These are the tutorials sections:

1. Basic lighting system
1.1 Light choosing and positioning
1.2 Lights settings
1.2.1 Sunlight
1.2.2 “Diffuse” light
1.3 How to “balance” the lights in the scene
1.4 Final Gather
1.4.1 How to set up the Final Gather
1.5 How to set up the final rendering
2. Other types of lighting systems

1. Basic lighting system
Before writing this tutorial I have done many tests using various types of lights and settings. You’ll find them here
The lights that I’m going to use in this tutorial are those that I think are more effective in this kind of rendering, in terms of quality/speed and in terms of matching an ideal photorealistic lighting system.
I’ll use of two types of lights, the first one simulates the direct light and the other one will simulate the “diffuse” light.

1.1 Light choosing and positioning
First of all you have to download the tutorial scene. It’s available in these formats:

Open the file. It’s japan-style room (already famous over the www.treddi.com forum ). Set the scene units to centimeters. Remember that after importing a 3ds or .obj model into Maya you will have the settings “Visible in reflection” e “Visible in refraction” disabled, so you will have to turn them on manually under  the “Render Stats”

Now we can put the lights in our scene.

a. Sunlight
With the first light you will simule the sunlight. Considering the several possibilites I decided to use a spotlight, later on we will see the alternatives.
Position one spot far enough from the room, so you can use a little opening angle (20° approximately) remember that the spot does not have parallel beams, so using a little angle will allow you to simulate better the ideal sunlight.

b. “Diffuse” light
Create a point light and open the light’s attributes.  Under the mental ray section turn on the “Area Light” option. Move the light until it’s lined up with the window and scale its radius so that the edges approaches the opening-width of the window   (you can eventually reduce it a bit to prevents problems with overexposed areas on the walls near the window)

In the following images you can see how I positioned the lights.


1.2 Lights settings
In order to understand the behavior of the lights, I suggest you to begin the tests with only one light turned on.

Assign a white shader (I suggest a Lambert or DGS without glossy and specular) to your model.

1.2.1 Sunlight
Select the point light and disable it (deselect the following options: “Illuminates by Default”, “Emit Diffuse”, “Emit Specular")

Select the spot light and edit its attributes:  turn on the raytraced shadows with the default options (you can give a slight angle variation to the beams if you want)

Open the “Renderglobal” > “Quality Presets” menu and select “Preview”
to get a quick render of  your first test.
If you followed the instructions correctly you should get something like this: 01spot diretta

Change the light intensity until the illumination level of the visible areas seems good to you.

-Now activate the GI in the “Renderglobal” menu and set the “Global Illum Accuracy” to 512, keeping the “Global Illum Radius” to 0 (default).
-Change the settings of the i]“Raytracing”[/i] (4-4-8 should go well)
-Also turn on “Emit Photons” in the attributes  of the spotlight and perform a test render to examine the   illumination levels of the parts of the room which are not directly lit by the spotlight.  

Remember that the amount of the light that will effect your model is also directly related to the distance from the object.  
The further from the model your light is, the higher you will have to set the intensity of the photons. For example I reached 185.000.000 to get this result:
02spot 10kphotons

Now increase the number of the photons to 500.000 and your render will look something like this:
03spot 500kphotons

I suggest you to activate the “Progressive Messages” (“Renderglobal” > “Translation” > ”Progressive messages”) , so you can  monitor the rendering times of the different tests.

1.2.2 “Diffuse” light
Now we will perform the same steps for our point light (that we have previously transformed in a Mental Ray Area Light, see chapter
- Disable the Spotlight  (remember you have to check-off “Emit Photons”)
- Activate the  raytrace shadows of the point light; I suggest you to use a “Decay linear”
- As for your Photon settings, use the same photon settings you used in your spotlight except for the intensity, which should be very small (in this case I’m using 100.000) .
- Perform the same render as done for the spotlight.

Only direct light:

(Don’t worry about the graininess of the shadows, we will tweak it later adjusting the settings for the final render)
04point diretta

direct light + photons
05point 500kphotons

1.3 How to “balance” the lights in the scene

Activate both the lights and  perform another render.
If you are lucky you’ll get the correct lighting and illumination, but more likely you’ll have to tweak your light settings to get the result you have in mind.
Obviously the changes your’re going to do will vary depending on the lighting effect you want to reach for your render!

Here's my test:
06spot point GIonly

Don’t worry if some of the areas are overexposed, when we’ll activate the final gather the problem will be almost fixed.
Anyway, if you want you can do a small test: do a region render of the most significant areas of your scene, simply activating the final gather with the following settings: “rays”: 100 “min max radius”: 0/0 and “rebuild photon map” turned off. This is my result:
07spot point GIonly fgtest

If you still have problems with over-exposed ares or getting weird artifacts I suggest you to slightly decrease the photons intensity of the spotlight and also slightly decrease the intensity of the point light (mostly if the over-exposed areas are those directly affected by the area light).

Now that the light seems more balanced we’ll start optimizing the GI.
This is the Maya “Caustic and Global illumination” panel.
08GI settings

Here you are some short descriptions of the main GI settings:
- “Global Illum Accuracy”: this value, that we have already set to 512,  represents the quality of the photon map.

- “Global Illum Radius”: we’ll set it later. As for now just remember that the default value is 0: with this value mental ray calculates the best setting for the render (in 90% of cases you can keep this setting). Anyway, to optimize our rendering times we’ll hand-calculate it.

- “Max Photon Depth”, “Max Reflection Photons” e “Max Refraction Photons”, are the settings of the well-known photon bounces. They set the number of  bounces that our photons will perform before they stop.
The first value indicates the maximum amount of bounces.

Now we have to choose the Photon Volume Radius and the Max Photon Depth. Talking about Depth, I’m getting good results using the default settings (5-5-5).
Remember that higher depth values means more light in the dark areas of your render, but it will also increase your render times.
As I said before, changing the Photon Volume Radius will allow us to optimize our render speed.
You can test it performing a render (GI only) with the Photon Volume Radius set to 0 (best quality).
Have a look at the render times: 50 seconds (on my workstation off course)
09s p gi rad0

Do your experiments increasing the radius value and see how your render-time changes (obviously along with the image quality)

You can start with very low radiuses (1 for example) and increase the value until you get a result similar to the first render (with radius 0), but with lower render-times. Remember that the radius is expressed in local scene units.
When performing these tests turn off “rebuild photon map”, in order to speed up the test renders.
Remember that in this phase even the smaller time gap between your tests could lead to considerably different rendering speeds when working on the final render. So, every second counts! :)

Here you will see my radius-changing tests:
10s p gi rad1
11s p gi rad10
12s p gi rad15
13s p gi rad20
I chose radius = 15

1.4 Final Gather

We finally arrived to the quite controversial Final Gather.
For these tests, if you don’t have to change the lights settings or scene materials, you can leave the “Rebuild Photon Map” checkbox disabled.

Here’s the Maya panel:
14FG settings
To get an idea of the final gather options I suggest  you to check out this link:

I will try to make you a short resume of how it works.
Anyway, take this resume just like a “Final Gather for Dummies”, because it’s a very complex subject and (as for now) I don’t have the necessary knowledge to do a full in-deep explanation of every aspect of it.

If you’re not too much interested in the theoretical description of the Final Gather, you can jump to the 1.4.1 section.
Substantially the Final Gather allows you to calculate and save the irradiance informations in a local map. The final gather calculation is made of two phases:

1- precomputation
during this first phase the image is subdivided in an hexagonal/triangular grid; for each point of the grid a ray is sent from the camera to the scene; when a ray “collides” with a scene object, an hemispheric set of FG rays is emitted from that intersection point; those FG rays will allow the calculation and storage of the local irradiance informations.

2- extra computatio & interpolation
the second phase happens during the rendering (or, partially, before, if you activate the “Precompute Photon Lookup” tag).  The previously saved map is re-used and the results are interpolated using the min/max radius.
This means that for each point previously calculated, the local irradiance results are interpolated between the min/max radius range.
If the max radius should be too small to cover every part of the scene, the FG will automatically emit other rays in order to succesfully complete the scene computation.

To see how the final gather effects our scene, just activate the Diagnostic option under “Renderglobal” > “Diagnostics” > “Diagnose Finalgather”
The green points are those calculated in the first phase (precalculation) while the red ones are those generated during the rendering process.
15fg diagnose

Well, after this short resume, I can start explaining the parameters you’ll find in the RenderGlobal Menu.
“Min/Max Radius” As said before, these are the values used by the Final Gather to interpolate the local irradiance results. Lower values will provide higher details and higher render-times.
“Min/Max Radius” can be expressed in real world units (cm in this case) or in pixel; Mental Ray 3.4 users can activate this setting simply checking the “View (Radii in pixel size)” option. For previous Mental Ray versions you can check the LAmrUG web site at this link: LAmrUG.

Working in pixel units gives us a big advantage: is a lot easier to find the needed interpolation values watching our raster render instead of thinking about the real-world units of our scene.

The “Final Gather Rays” are those rays hemispherically emitted from each calculated Final Gather point:
increasing the number of emitted rays means a better accuracy of the local irradiance calculations. For the overall calculation accuracy also mind the min/max radius values!
The Radius value has nothing to do with the rays length, since this one is setted by the “Falloff start/stop” parameter.
Another important parameter we must handle is “filter”, wich eliminates eventual weird local irradiance spots (usually overbright dots) evaluating near irradiance values. Using this filter will affect both the Final Gather quality and the rendering speed.
Other important parameters are “Trace Depth”, “Trace Reflection” e “Trace Refraction”. Conceptually  they work like the bounce depth controls for the primary GI calculations.
The last “Secondary Diffuse Bounces” checkbox activates the famous “multibounce” (you’ll find it only on Mental Ray 3.4), but we won’t use it since this parameter is inactive when Global Illumination is turned on.

“Preompute Photon Lookup” pre-estimates some of the FG calculations to be perfomed during the rendering process. This option is very important when working on animations, since it reduces rendering times.

1.4.1 How to set up the Final Gather

Here are the parameters I used for the test

your settings should be similar:
“Rays”: 50 (for mental ray 3.3 you will need at least 100-200)
Change the filter“Filter” from 0 to 1
Leave the “Radius” at 0 and launch a est render at a low resolution (400x300)

16s p fg rad0

Now let’s see how to optimize the radius. If you’re already satisfied with the result obtained using the default radius but still want to optimize your rendering-time, you could have a look at the MR output window and check for the radius automatically set from MR and try to adjust this value. Only remember that lower radius means more details and more noise.

For my own tests I usually start with small radius values and with few rays, in order to keep my rendering-times low. I also perform various “Render region” of the most “critical” areas of the scene. This allows me to get the best compromise between scene detail and render-speed.

Here you’ll find some test made using different radiuses:
17s p fg rad0.1 1
18s p fg rad1 10
19s p fg rad5 50

You can increase the radius so that to eliminate (or at least greatly reduce) that  “noisy” effect you get using small radius values.
Remind that this value is scale-dependent. You should get an optimal time/quality compromise using radiuses from 1 to 10.
Once you found the radius that fits your needs, do some Render region of those areas where you see rendering artifacts, and increase the number of emitted rays to eliminate them.
This value is strictly dependent from the Mental Ray version you’re using. The 3.4 version is highly optimized for low radius values, while previous versions need higher values (and this meand higher rendering times).
20s p fg rad2 15 rays200

1.5 How to set up the final rendering

For the final rendering there are some important things that need do be handled properly and here you’ll find a short description of each one.

1.5.1 The materials
To get a photorealistic render the materials assigned to the objects are fundamental.  I suggest you to learn everything you can about the Mental Ray materials, particularly the dgs, the dielectric and some other interesting shaders (dgs_fresnel, l_glass). The tutorial made by Alessandro (Pantich) about those shaders is surely an excellent beginning.

The advantages you’ll get by using these materials are mainly of two types: shorter rendering times and better light behaviour.  
If you started this tutorial using a lambert shader, simply assign a DGS material (without glossy reflections) to every object in your scene and do a rendering test to see the difference between the two shaders.
Remember that, as for other Mental Ray shaders,  if you wish to use a DGS material you must set the dgs_photon or the mib_photon_basic into the “photon shader”.

When setting up a scene, I suggest you to choose a shader type and then use it for the whole project.
If you start with a Lambert shader (a maya native shader), keep using maya shaders for every object in your scene, otherwise your render could show very weird (and unwanted) artifacts.

1.5.2 Anti-Aliasing quality

For the final rendering is very important to optimize the AA. My advice is to use the Mitchell filter: in Mental Ray it offers the best quality/speed.

The most important AA settings are “Numbers of Samples” e “Contrast Threshold”

The “Min Sample Level” indicates the smallest number of rays that mental ray uses. The “Max Sample Level” (obviously :) ), the max number of rays.  

The sampling values in mental ray for Maya do NOT increase linearly but exponentially. Therefore if you use 0 samples you will get 1 ray, 1 sample: 4 rays, 2 samples: 16 rays and so on.  This means that too high values will greatly affect rendering time.
In 3dsmax the parameters are different: they control the number of rays, therefore if  in Maya the sampling parameter is set to 2, in 3dsmax  should be set to 16, etc

How can we determine the min and max samples?  By setting the “Contrast Threshold”. ” values.
This often neglected parameter is fundamental for getting good results.
If in a particular area of the render the chosen contrast threshold is surpassed, mental ray will use the max samples, while if the contrast remains below that threshold,  it will use the min samples. This comes useful if your render has wide uniformly colored areas, where high sample values are almost meaningless.
At this link you’ll find an in-deep analysys of the Contrast Threshold parameter made by the LAmrUG

These are the settings that I suggest you :

Mitchell 4 | 4

Min samples 0 (either -1) (for 3d max 1 or 1/4)
Max samples 2 (for 3d max 16)

R 0,05 G 0,05 B 0,05

1.5.3 Area Light Sampling

This parameters sets the amount of noise in the shadows generated by the Mental Ray Area Lights.
In our case we should choose the Point Light and go to the “Mental ray” > “Area Light” panel.
To get the best results from your rendering you must know how to handle the following parameters:

“Sampling”: number of shadow samples
“Low Level”: the number of bounces (reflection/refraction depth) beyond which Mental Ray begins to stop using the “Sampling” parameter and starts using the “Low Samples”.  Setting this value to 0 (default), means that Mental Ray won’t use the low samples.
“Low Samples”: sampling value that can be set for the secondary bounces of your shadows.

For good results I suggest you to use the following parameters:

Samples 6-6 (max 8-8)
Low Level 0 (either 2)
Low Samples 3-3 (or 4-4)

Example: using Area Light Samples default (3-3)
21arealight 3 3 2 2
Samples 6-6
22arealight 6 6 4 4

23final bn

1.5.4 Light color

To achieve a photorealistic interior-lighting, it is nessesary to change the color of the light to a real life light color. In Mental Ray 3.4 we have a new utility, that I think is really powerful, that allow us to choose the color of the light based on a Kelvin Temperature scale. This is the diagram for you to follow:

The trick is to pick a color similar to the sunlight for the spotlight and a color similar to the skylight for the Area Light

25mib cie d

In the case you are using a version of Mental Ray previous to 3.4 you can use a yellow/orange color for both the lights and a ligh-blue color for the photons.

1.5.5 Bsp The Binary Spatial Partitioning
“Render Global> Memory and Performance” is a really important parameter for the rendering speed optimization. Also for this topic, an in-deep exploration of this parameter would require a specific tutorial.  Anyway you can find interesting informations (as always) about the BSP on the LAmrUG site at this address.
My advice is to do a lot of lo-res renderings (or Render region tests of the most “critical” or complex parts of your scene) changing the BSP value by steps of 3. For example if you start with 40 try 37/34/31 and so on. Compare the rendering times and find the value that best fits your needs.

1.5.6 Output framebuffer
Mental ray hasn’t got a real tonemapping control, but there are different workarounds that allow us to solve this problem.

One way is to use the “gamma” parameter   ( “Render Global” > “”Framebuffer” > “gamma") that controls the overall brightness of the rendered image, in particular for its shadowed areas (values lower than 1 increase the brightness)
However my advice is to adopt another workaround: export the render in a 32bit format and adjust the tonemapping in post-production.  Mental ray, from the 3.3 version, supports the OpenExr (32bit) format. You can find news and plugins for this image format at the following address: OpenExr
This format offers greater advantages than the HDR format (as has a greater dynamic range) and the TIF format (as it allows to store the data in half-space respect to the classic RGBA 16bit format)

If you are a Mental Ray 3.4 user is very easy to use the EXR format: in the “Framebuffer” set RGBA (float) 4x32bit and choose the OpenExr “image format”.  

If you use the 3.3 Version of MR, exporting your rendering in EXR format is a bit more complicated. I suggest you to download the mrclasses made by Gonzalo Garramunos from this site and use the output_exr shader as output shader for your camera. Thanks to it you’ll be able to export your render in EXR format.

Here you’ll find the values I used for the final rendering, the one you see at the beginning of the tutorial.

AA Quality

Samples -1  |  2
Mitchel: 4  |  4
Contrast R: 0,05
Contrast G: 0,05
Contrast B: 0,05
Contrast A: 0,1

Reflection: 4
Refraction: 4
Max Trace Depth: 8

Accuracy: 512
Radius: 15
Max Photon Depth: 5
Max Reflection Photon: 5
Max Refraction Photon: 5

Final Gather
Rays: 400
Min / Max Radius: 2 | 15
Filter: 1
Trace Depth: 2
Trace Reflection: 1
Trace Refraction: 1

- Other Settings:
Area Light
Sampling: 6 | 6
Low Level: 0

2.0 Other types of lighting systems

As I have already told you before, I made various tests to choose the “best” lighting scheme for this kind of render. Below you’ll find a list of the tests I’ve done, with the light I used and the resulting render.
If you are seeking a particular kind of illumination, you can choose from these various possible combinations.  

(Sunlight + “Diffuse” light)

Direct + point(arealight) with physical_light
27direct physical

Direct + point(arealight)
28direct point

Direct + spot(arealight)
29direct spot

Spot + physical
30spot physical

Spot + spot(arealight)
31spot spot

I hope this tutorial will help at least some of you MR freaks around the world!
If you find some mistakes or information inaccuracies in this tutorial (you know, it became so long!!), please let me know!



- References:

Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui