V-Ray GPU improvements in V-Ray 3.5 for 3ds Max

Introduction

GPU rendering has always been a major area of focus as we continue to improve V-Ray and the upcoming version 3.5 for 3ds Max (other platforms to follow) is no exception. This blog post will outline some of the major areas that GPU rendering has changed since version 3.4

A short done by Dabarti Studio that uses many of the new features in the upcoming V-Ray 3.5 for 3ds Max

Adaptive Lights

We have already discussed about how Adaptive Lights has been added to V-Ray 3.5 in general. The blog post shows that this new method of dealing with scenes that have a large number of lights (100 or more) can improve render times by a factor of 3 over the probabilistic method introduced in 3.0.

The adaptive lights actually were initially designed for GPU rendering. In fact, it is a new unbiased lighting algorithm based on path tracing, that can work both in Active Shade (or IPR) and production mode. This new algorithm gives significant performance improvement in most of the scenes we tests, regardless of how many lights are in the scene. On some scenes, it is few times faster and practically enabled infinitely-many lights to be used.

Additionally, when rendering on the GPU, a prepass of the Light Cache is not necessary and therefore users can take advantage of this feature even when the GI uses a brute force only approach.

Tomasz Wyszolmirski, our good friend at Dabarti, ran several tests using different methods on different scenes. Here are the results of those test:

On-Demand Mip-Map Textures

For a long time, one of the great challenges of GPU rendering is based on the limited amount of RAM that the GPU holds. For a better understanding of the GPU rendering, please see our Guide to GPU. In general, one of the biggest RAM uses comes from textures. As such, there are several ways to tackle this issue.

One way is to offload some of the ram from the GPU on to the main system RAM. This process is often called “out of core.” While it does allow the renderer to use a lot more ram, it can also drastically degrade the performance of the rendering as the system ram, and the bus between it and the GPU is significantly slower.

Another technique which has been around for a long time is called Mip Mapping. The basic concept of this technique is that while a texture may be 2048×2048 pixels for example, not all of those pixels are needed to render the image in question. A texture therefore stores multiple resolutions of itself: 2048×2048, 1024×1024, 512×512, etc… Then, the renderer picks the appropriate resolution on the fly as it renders, which is almost always smaller that the largest version.

In version 3.5, V-Ray GPU renderer take advantage of Mip Mapping in a very intelligent way. In addition, the reason it is called “on-demand” is because we load the texture, mip-map it on the fly to the appropriate resolution as the ray hits it. If that texture is not needed, it will not load it. This process is actually done so fast that it takes less time than loading the full texture itself. It also uses significantly less memory.

What does this mean to the end-user? It means that, V-Ray rendering on the GPU will always be the most efficient in terms of the RAM usage of it’s textures. It will drastically reduce the amount of RAM needed to render scenes, and user will no longer have to manually select different resolutions of their textures to try and reduce the memory needed in their scenes. Additionally, since V-Ray does the Mip-Mapping on demand, the user can use any texture format they want and will not have to use any special format for the texture which is pre-mipmapped.

ForestColor map support for Forest Pack

We have been working closely with iToo Software to more directly support ForestColor texture from Forest Pack in the GPU code. This feature will allow users to better take advantage of the color variations provided by the ForestColor map. This feature is now supported by V-Ray GPU as well.

Overall lower RAM usage

Besides the advantages that Mip Mapping has done to the RAM usage, V-Ray GPU has also lowered the overall RAM needed to render on both the GPU RAM and the system RAM.

All procedural supported for bump

Another difficult part of GPU rendering is to make all procedural textures supported. Using the VRayColor2Bump map, any procedural texture can be loaded and pass through this node which will allow the use of any procedural texture supported on the GPU as a bump map.

Images provided by Dabarti Studio

Many other V-Ray CPU features now supported in the GPU

Along with the major features listed above, several other features, previously only available on the CPU are now supported:

Render Mask

Clipper with planes

Aerial Perspective

Matte Shadow Catcher

V-Ray Rect Light Directionality

MDL materials

Faster feedback

Low GPU thread priority

Ability to load and use Irradiance Maps

Conclusion

V-Ray GPU has many big improvements in V-Ray 3.5 for 3ds Max. Besides offering many new features, huge performance enhancements have been added that could radically improve workflow and overall speed of your rendering. So if you just got a new GPU for the holidays and want to see what it can do, this upcoming update could be a great thing to try.

It should also be noted that this is still in beta and that some of these features are subject to change in the final release of the official update.

Example of Aerail Perspective by Dabarti Studio

Example of Clipper Plane

Example of Directional Rectangle Light by Dabarti Studio

About the author

Chris is a CG industry veteran and Director of Chaos Group Labs. He can also be heard regularly as the host of the CG Garage podcast which attracts 20,000 weekly listeners. With a background in both VFX and Design, Chris has worked for Gensler, Digital Domain, Imageworks and Method Studios. His credits include Maleficent, Oblivion and Tron: Legacy.