New GI Prototype Quick Start

As previously posted, a prototype of the new GI scheme for mental ray was included with Maya 2015.

To be clear what a prototype is, this section from Wikipedia best describes this phase of the feature:

Prototype software is often referred to as alpha grade, meaning it is the first version to run. Often only a few functions are implemented, the primary focus of the alpha is to have a functional base code on to which features may be added. Once alpha grade software has most of the required features integrated into it, it becomes beta software for testing of the entire software and to adjust the program to respond correctly during situations unforeseen during development.

Often the end users may not be able to provide a complete set of application objectives, detailed input, processing, or output requirements in the initial stage. After the user evaluation, another prototype will be built based on feedback from users, and again the cycle returns to customer evaluation. The cycle starts by listening to the user, followed by building or revising a mock-up, and letting the user test the mock-up, then back.

As such there are some limitations to know about in this prototype:

  • Motion blur not supported
  • Lens shaders not supported
  • Hair is tessellated
  • Visibility (cutout opacity) not supported
  • Specular interaction currently handled by Final Gather

Since the completed feature is expected to become the replacement solution I suspect these limitations will be removed over time.

Below is an example image rendered with the new GI. The main interior is taken from the Architecture Classroom found at IDST [site appears to be gone]. Other modern mental ray features being used are:

  • Layering Library Shaders
  • Object Lights (2015 Service Pack 2 or later) 8 in total
  • Light Importance Sampling (improving the result of the lighting and simplifying tuning of the scene to a single slider/value)

Also, I am not using portal lights or the Environment Light (Native IBL). Instead I am allowing the new GI to sample the environment without casting more shadow rays and speeding up the render. This also means simplified setup for interiors where you can use the new technique (and a GPU) to power through a scene and render quickly. The brute force nature of the technique will provide you with crisp indirect shadows.

The image below renders in 18 minutes at 1080HD using a K6000. (All of the following renders and time were rendered at 1080HD before resizing to better fit the webpage at 720HD)

18 minutes at 1080 HD resolution using GI on the GPU

18 minutes at 1080 HD resolution using GI on the GPU

Provided by NVIDIA ARC is a simple mel script to enable the GI features in Maya 2015. After loading the script simply run: GI_GPU

GI Testing UI

GI Testing UI

The controls are pretty self-explanatory and only expose the main controls for quality. The controls may change in the future:

  • Enable – override using the new GI instead of Final Gather (Be sure other features are off, like IP or Photons or they may run unnecessarily)
  • Use GPU – this uses the GPU to accelerate the process. The result is identical regardless of mode but the CPU is much slower. Currently CPU usage is less than 100% Also note that CPU usage might be less than 100% using the GPU if using a slow card or high settings. This is because the CPU is waiting on the tile from the GPU. This requires recent graphics drivers and an NVIDIA graphics card (GTX or Quadro)
  • Diffuse only – only calculate diffuse rays. In a lot of applications this is all you’re interested in. But scenes with glass walls and similar effects may need more. In the Prototype, Final Gather rays are used for this effect. This will change as the feature adds more abilities and takes over for old techniques
  • Override FG (Final gather) Globals – The new GI can take its settings from legacy FG settings including ray depth (bounces) which is still set in Final Gather trace depth.
  • Samples Per Pixel – this is the number of samples per pixel (Anti-aliasing) taken per pixel. This also acts as a multiplier of Rays. This number should be a square of another number: 1, 4, 9, 16, 25, 36, etc.
  • RaysYour primary control for quality. This is a brute force technique (at filter 0) where this number of rays is shot per pixel multiplied by samples per pixel above.

Below are some examples of altering the settings.

Increasing the samples per pixel, keeping everything else the same (filter set to 0):

Increase the passes parameter (as a square of an integer)

Increasing the passes parameter (as a square of an integer)

Increasing the rays parameter, all else is the same (filter is set to 0):

Increasing the rays parameter only (passes set to 16)

Increasing the rays parameter only (passes set to 16)

The filter parameter is improved from previous ways of filtering/interpolating GI results. As a convenience the measurement is in pixels. You should find this easier to smooth more quickly and easily than other methods. It also has a negligible impact on render time unlike increasing interpolation with Final Gather. In fact, less variance should improve render times since Unified Sampling works less to solve the image. Keep in mind that increasing values will blur indirect shadowing details.

Open this in a new window to see the changes as they are subtle, blending away the noise. Please pardon the gif compression.

Increasing the filter parameter only in small chunks, for example, 4, 8, 12, etc

Increasing the filter parameter only in small chunks, for example, 4, 8, 12, etc

Another example of the improved smoothing filter:

Increasing the filter setting (all others the same)

Increasing the filter setting (all others the same)

Expect this feature to evolve dramatically over the next year as well as improve performance of both the GPU and CPU modes.

About David

I am a VFX artist that specializes in Lighting and Rendering. I spend a fair amount of my time supplying clients with artistic solutions as well as technology solutions. With a background in fine art and technical animation training, I strive to bridge the divide between the artist and technologist.

Posted on July 29, 2014, in Developer, Lighting, scripts and tagged , . Bookmark the permalink. 18 Comments.

  1. Looks great! Looking forward to seeing this develop further. One GI solution to rule them all… 🙂

  2. Yes, looks good, but the development pace seems to be quite slow also. Its development should’ve been started two years earlier. A year sounds like a lot of time to wait IMHO. Any improvement is always welcomed though.

    • The technique they’re using wasn’t around 2 years ago. This isn’t the same thing everyone else is doing and we might get some insight at SIGGRAPH what their solution is. Most other options are purely brute force without the option of using the GPU. Optix Prime allows for that and is a new form of Optix designed to deliver it.

  3. Good stuff right there! thanks David. 🙂 Litle question, I would like know if is possible to add diffrent cards exemple use 3 gtx GPU for the render, like for Iray ?

  4. I have previously posted we have K10s on our farm. Other work has kept me from fully testing. Would you expect a performance increase from a K10 versus a workstation card like the K6000? And could you talk about GI GPU as it relates to card memory. Does it matter?

    Also, GI caching…should I disregard the need. Seems like the GI is “baked” into the render at this point.

    • I think the K6000 would outperform the K10. There’s a current Optix limitation of 2 cards at once to compute.

      Memory: still important but depends on what you need to do and what mode you’re using. For now there’s a limit of 25 million triangles in the prototype (will be lifted in the future, but not for the prototype) The technique doesn’t need texture data, but it does need all the triangles to intersect against (hair is tessellated right now since Optix Prime doesn’t support hair yet) If your card doesn’t support the whole scene then you can run the CPU mode instead.

      In either case the result is typically better than final gather of similar settings since Optix Prime is able to send a LOT more rays in a shorter amount of time regardless of hardware platform.

  5. Hi, I am on mac os x (10.8.5 specifically) and the script doesn’t seem to work at all for me. maya mr still tries to render via cpu. I have updated the cuda driver too. Is it a macos thing or?

  6. Really interesting. New feature has halved render time for me on a scene, with less splotchy fg on a curved background screen in the render. There are two area lights set to disc however the shadows are much softer. I’m unsure whether this is due to higher quality sampling with new feature or I’m missing something? Anyway great article.

    • Softer shadows may be from sampling changes if you’re using Light IS. Disc lights may have a flaw in 2015. Otherwise the filter may affect it if it’s indirect shadows.

  7. The scene that was render for 18 mins is it brute force( filter = 0), and how many ray and sample per pixels are used?
    And what about compare Quadro K6000 with GTX 780 Ti because both GPU have the same number of CUDA?
    Now if I use only FG for interiors with Native IBL, it is so long and not accurate, I use even 8000 FG accuracy and but it is need to use also very high interpolation number lets 50 for the image to not be splotchy.

    • The GI Prototype is always brute force. The filter simply smooths it. At filter 0, no smoothing is performed. A GTX will typically be faster as it’s not underclocked. Quadros run slower but are designed to run constantly at high loads. Use portal lights for interiors. The IBL isn’t good at lighting an interior through smaller windows (large openings might be ok) The filter for FG might reduce the splotches (the FG filter is really a clamp)

  8. Hi,
    The Gi-next Filter was a nice idea, but does this have been abandonned in the final version ? I asked on the Nvidia forum but got reply.

    • I think Nvidia answered you, that prototype feature was abandoned in favor of improved performance. Such a feature might make its way back but not initially. 2D filtering is usually problematic.

      • Yep they did on the Nvidia forum 🙂 but thx for the reply here too. nice to know that it could come back one day.

  1. Pingback: GI GPU Prototype Testing | elemental ray

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: