Category Archives: unified sampling

Your car was built in mental ray

Chevrolet Corvette © General Motors

If you’ve been shopping for a car lately and you’ve been coveting the new Chevrolet Corvette 2013; then you might be surprised to know the cars in Build Your Own are rendered with mental ray.

Produced by RTT in Detroit, the cars are rendered in a complex pipeline that allows the creation of an entire car in pieces lit realistically by the user_ibl_env with set captured data. The cars are then taken into Nuke for assembly and color grading to match up pieces. Once delivered you can browse different builds or trims of the car; each created from separate files and merged to view photo-realistically.

With multiple passes, these cars using modern techniques and Unified Sampling take anywhere from 20-30 minutes a frame at 3000 x 1688 resolution (when rendered complete). Smaller HD resolutions can take as little as 10 minutes.

Keep an eye on the Chevrolet site to see more and more of these renders show up in not just the Build Your Own (BYO) but other places as well.

Start building your own Corvette here: Chevy Corvette – Build Your Own

Chevrolet Corvette © General Motors

Chevrolet Corvette © General Motors

Unified Sampling in 3.10 (and other changes)

Autodesk released their 2013 products this last week. This is the first public release of mental ray 3.10.

You will find this release focuses mostly on bug fixes and enhancements to existing features. The “What’s New” section leaves out the details. You can find the details in the Release Notes section. This is the best place to find fixes and enhancements you may need to know about.

The majority of your performance increase will be seen with Unified Sampling. Things to note for Unified Sampling in 3.10:

  • Previous scene’s Quality settings will generate fewer eye rays since they are unnecessary
  • Unified Sampling will sample dark areas of an image less
  • Unified Sampling produces smoother grain in areas with insufficient Quality
  • Framebuffers no longer have artifacts
  • Edges and thin objects (like hair) have improved sharpness
  • Motion Blur is smoother than before

Many of the previous caveats that may have kept you from using Unified Sampling before have been fixed in Maya now. More improvements are to come. We’ve been told from Autodesk that Hotfixes will be more often and hopefully provide more opportunity to upgrade and replace mental ray since it is now a separate plug-in.

For same-scene renders you can expect complex scenes will render 10-15% faster than before.

Below are some examples. I was kindly given a scene from a current intern at Full Sail University in Orlando, Florida. I cannot experiment or release my current work on the blog so it’s great when I have some nice projects to play with and share!

You can find more of Jiayu’s work on: Jayuliu

Previously for this scene it was taking multiple hours a frame using traditional techniques. I have since updated the sampling on the scene to use Unified Sampling and area lights. For a 720HD render it now takes about an hour for the night time scenes you will see shortly. 10 minutes a frame for the close-up Bedroom scene. There could be some more tweaking done to these using advanced lighting (covered later) but one thing at a time. 😉

Daylight Bedroom:

Jiayu's Bedroom Model Render

These scenes are rendered following the guides in the Unified Sampling for Artists Post and the Area Light Post.

In mental ray 3.9 I rendered the above scene with these settings:

  • samples min 1
  • samples max 500
  • samples quality 4.
  • error cutoff 0.04
  • Gaussian filter 2. 2.

For mental ray 3.10 I used the settings that gave me the nearest result without going overboard:

  • samples min 1
  • samples max 500
  • samples quality 2.5
  • error cutoff 0.02
  • Gaussian filter 2. 2.

The time saved for a quick render are minimal for a trivial scene:

3.9:       0:12:11.04

3.10:     0:11:12.86

What is of note is how Unified Sampling sees the scene. Below are the Sampling Diagnostic Framebuffers, 3.9 first, 3.10 next. Brighter areas are more samples.

3.9 Samples Diagnostic

3.10 Samples Diagnostic

Notice how dark areas sample much less than before (in the painting above the bed and the foot of the bed for example). Below is the visual difference from imf_diff utility, somewhat exaggerated to see better.

Image Difference from 3.9 to 3.10

Things to notice here are:

  • Edges are cleaner than in 3.9.1 (this change was introduced in 3.9.2 and improved in 3.10)
  • Area Light grain is less noticeable/clumpy than before (overall sampling pattern is smoother)
Pertinent diagnostics are below:
mental ray 3.9

JOB 0.2 progr: 100.0% rendered on SIAB.2
RC 0.10 info : rendering statistics
RC 0.10 info : type                             number     per eye ray
RC 0.10 info : eye rays                       12597442     1.00
RC 0.10 info : transparent rays                 278449     0.02
RC 0.10 info : reflection rays                 8661007     0.69
RC 0.10 info : refraction rays                  643795     0.05
RC 0.10 info : shadow rays                   126100094    10.01
RC 0.10 info : environment rays                 146106     0.01
RC 0.10 info : probe rays                     34008648     2.70
RC 0.10 info : fg points interpolated         20323641     1.61
RC 0.10 info : on average 86.51 finalgather points used per interpolation
RC 0.10 progr: rendering finished
RC 0.10 info : wallclock 0:12:11.04 for rendering
RC 0.10 info : allocated 353 MB, max resident 413 MB
GAPM 0.10 info : triangle count (including retessellation) : 994312
PHEN 0.10 info : Reflection rays skipped by threshold: 4405980
PHEN 0.10 info : Refraction rays skipped by threshold: 22742

mental ray 3.10

JOB 0.7 398 MB progr: 100.0% rendered on SIAB.7
RC 0.3 398 MB info : rendering statistics
RC 0.3 398 MB info : type                        number    per eye ray
RC 0.3 398 MB info : eye rays                   9192639    1.00
RC 0.3 398 MB info : transparent rays            275289    0.03
RC 0.3 398 MB info : reflection rays            6560278    0.71
RC 0.3 398 MB info : refraction rays             553186    0.06
RC 0.3 398 MB info : shadow rays               95549199   10.39
RC 0.3 398 MB info : environment rays            142848    0.02
RC 0.3 398 MB info : probe rays                26833006    2.92
RC 0.3 398 MB info : fg points interpolated    14966173    1.63
RC 0.3 398 MB info : on average 87.47 finalgather points used per interpolation
RC 0.3 352 MB info : wallclock 0:11:12.86 for rendering
RC 0.3 352 MB info : current mem usage 352 MB, max mem usage 411 MB
GAPM 0.3 352 MB info : triangle count (including retessellation) : 994312
PHEN 0.3 352 MB info : Reflection rays skipped by threshold: 3560987
PHEN 0.3 352 MB info : Refraction rays skipped by threshold: 19657

Below is the night image. 12 area lights of different sizes/types. As above I am using the ambient occlusion in the mia_material set to 4 samples. The wall behind the bed has the color bleed option turned on to improve the light from the glowing mushroom night light.

Night image, time for render: 1:09:13

The more important diagnostics can be seen here from 3.9 to 3.10. This scene did not have a change in any settings from 3.9 to 3.10. Exactly the same settings were used.

mental ray 3.9

RC 0.10 info : rendering statistics
RC 0.10 info : type                           number     per eye ray
RC 0.10 info : eye rays                     18624542     1.00
RC 0.10 info : wallclock 1:34:57.79 for rendering
RC 0.10 info : allocated 1132 MB, max resident 1302 MB
GAPM 0.10 info : triangle count (including retessellation) : 1882529

mental ray 3.10

RC 0.3 764 MB info : rendering statistics
RC 0.3 764 MB info : type                     number     per eye ray
RC 0.3 764 MB info : eye rays               11500119     1.00
RC 0.3 679 MB info : wallclock 1:09:09.39 for rendering
RC 0.3 679 MB info : current mem usage 679 MB, max mem usage 850 MB
GAPM 0.3 679 MB info : triangle count (including retessellation) : 1882529

The time saved is 23%! A reduction in 7 million eye rays and nearly 500MB for memory consumption for the same image.

Below is a day scene based on the original scene I was given that can now be rendered in a reasonable amount of time as an animation:

Jiayu's Original Day scene, no changes from file other than technical.

Additional Notes:

  • Complex scenes will now render faster than before with no changes and consume less memory.
  • Greater complexity sees more benefit.
  • You should be able to reduce your Quality for Unified Sampling and still see a better quality image than 3.9 with a shorter render time.
  • 3.10 now allows you to mix Final Gathering with Irradiance Particles without interpolation artifacts. It also exposes new ways to combine FG + Importons and/or IP, see the Release Notes for the most information.
  • Texture caching is improved and will allow you to render more textures at once with much less memory. The mechanism is also faster. In a future post we will show you how to use this with your Maya installation.
  • user_ibl shaders increase how quickly and easily you can light using mapped textures. user_ibl_env allows you to light in the same way as you would with the Native IBL, but has simpler controls and preserves texture details better. Both follow the same guidelines for samples as the Area Light post (4-8 for samples in the area light) and must match the samples on the light shader itself for best results. More samples will be necessary for more complex HDR images.
  • Raytracing speed was improved but the emphasis was hair and fur. Unified Sampling and better raytrace speed should increase the speed of scenes with hair and fur without needed rasterization.
  • New shaders for hair and fur can be written to make brute force sampling for hair and fur a reality with Final Gathering.
  • Framebuffers with Unified Sampling no longer produce artifacts.

“Transformers: Dark of the Moon” Breakdowns

Here’s another look at some of the breakdowns from ILM for “Transformers: Dark of the Moon”, including the Driller sequence.

You can find more of their amazing work here: ILM Visual FX on YouTube

Hope this keeps you warm while we cook up a few things and hope to have some more to coincide with new software releases.

Unified Sampling Redux

As a simplified look at using Unified Sampling as a more “brute force” method that was outlined here; the below example outlines the differences in time and sampling on a visually trivial scene. This should make some things very easy to understand and quick to read before moving on to lights. 😉

Glossy Test Scene

In a glossy scene originally rendered at HD 1080, the first frame was rendered with the following settings using all mia_material_x shaders.

Quality 8
Samples Min 1.0
Samples Max 800
Reflection Bounces 2
Shadow Bounces 2

Resulting Time: 48 minutes

In a second test I added these settings:

Error Cutoff 0.04

Resulting Time: 35 minutes

The images appeared to be identical to the eye. I ran imf_diff to analyze actual pixel differences with this result:

differing pixels: 0.379% (7869 of 2073600)
average difference: 1.265%
maximum difference: 4.632%
Summary: Some pixels differ slightly.
== "glossyA.exr" and "glossyB.exr" are similar

So I am pretty happy with the fact that the time savings of 13 minutes resulted in no observable difference.

Below is an explainer graphic of the glossy rays count set for each sphere.

Reflection Samples from Shader

Below is the Samples Diagnostic framebuffer (tonemapped to work on the internet). You can see that the more “brute force” the reflection rays settings, the harder Unified Sampling had to work.

Samples per pixel (brighter is more)

Below is the time buffer where the longer it takes to render a pixel, the brighter the resulting pixel in the time buffer.

Time per pixel (brighter is longer)

You may also have a better understanding of how Unified will perform consistently across a scene with a single Quality parameter when given a wide range between minimum and maximum samples.(These spheres resemble one another despite having large changes in reflection gloss rays.)

Despite these results you might still notice a little grain on the pure brute force sphere. Add a texture map and you’ll hardly notice but is there a reasonable balance in a more complex scene?

If you need a completely smooth scene where there are few textures and more of a “pure” shader effect, then small increases seem to work well without sacrificing extra time. 2-4 samples works well for this in those special cases. But we find that animation and VFX work do not need this level of detail. This would be for something like print work and large resolutions.

Brute Force Only: 22 minutes at HD 1080


Next we might take a look at lights and how to use them in similar circumstances.