It has been over 7 months since the release of earlier Service Pack and we will be getting another free upgrade in Q1 of 2017. It’s now in public Beta stage. In this post I point out and review newest features and improvements of upcoming V-Ray RT GPU 3.5. I will focus only on GPU side of the engine as I think it deserves way more exposure than it gets. While it may seem like a small addition to V-Ray CPU (Adv) it’s in fact full-blown production rendering engine that paves the way for better and faster rendering workflow.
Over the course of last months I’ve been crazy enough to keep installing latest Nightly builds of V-Ray RT GPU on regular basis and abusing the hell out of it. As I’m sharing all the my testing data, bug reports and improvements ideas with Chaos Group team I also feel partly responsible for its current shape.
I. Adaptive Lights
First time I’ve got familiar with the concept of better multi-light rendering back in July 2016. At the time I was pointing out poor performance of many lights rendering and I got promised that it will get faster. Adaptive Lights took few months to develop and from what I know it’s quite innovative approach that yields very good results. I’m super happy about that feature as V-Ray RT 3.4 wasn’t effective with many lights and this improvement helps a lot. It did turn out better than expected as it not only made rendering faster for RT GPU, but also for V-Ray CPU Adv.
- Speed improvement is very big. In some cases it render times dropped from 1 hour to few minutes. If you like data, here are my tests with some notes: Google Sheets.
- Lighting looks more accurate.
- Render elements like “Lighting” or “Global Illumination” look a bit different now, but much closer to what Adv is outputting.
- Works with both Brute Force and Light Cache as secondary GI engine.
- It looks very cool with BF+BF when it optimizes the settings and switches to Adaptive Lights:
- This doesn’t affect the VRayLightMtl which is still a bit sluggish. It’s better to use mesh lights instead.
- Based on my tests so far it always performs better with Adaptive Lights turned on. It’s also turned on by default so there is no reason to switch it on when you use “fresh” settings.
- In case you need to change it for some reason. In 3ds Max you can use it from Production Renderer settings under Global Switches rollout. You may to change settings type “Advanced” or “Expert” if it’s invisible.
II. Aerial Perspective.
- Super fast.
- Easy way of adding realistic Aerial Perspective without the need of doing it at compositing.
- V-Ray sky and sun system is closely connected with Aerial Perspective settings. For example, low visibility will also block some of the sun intensity.
- It’s still not perfect for all cases, as it won’t generate volumetric rays (god rays, etc.).
- In 3ds Max it’s available under the Environment -> Atmosphere as Effect you can add it at any time.
- I would recommend using it for basically all outdoor big scale environments.
- It’s useful to add VRayAtmosphere Render Element if some adjustments are needed.
- Best used with Affect environment rays turned on.
Example of using aerial perspective for underwater shot. Effect setup starts at 2:50.
III. Procedural Shading.
I just love procedural shading, but I’ve missed some things for procedural bump. Around 2 Months ago I compiled a list of things that didn’t work as expected and sent it to Chaos Group, after few weeks most of the issues were gone and I’ve produced this series of cool looking shaders:
- You can create very complex bump maps using composite, mix, gradient, output and noise maps. You have pass everything trough VRayColor2Bump.
- Mapped gradient ramp works now very well and can help with creating diffuse color maps from grayscale bump maps.
- It is sampled quite effectively so it doesn’t slow the rendering heavily when compared with bitmap based bump maps.
- Procedural 3D maps use very little memory and don’t need UV mapping.
- There is no good way of mixing VRayColor2Bump with VRayNormalMap. With so many good normal bump maps available it’s a must have for more complex shading.
- Usage of VRayColor2Bump isn’t very obvious for new users. While this map works great inside bump slot of VRayMtl it doesn’t work inside VRayBumpMtl or as additional bump slot of VRayNormalMap.
- There are limits to number of maps you can use on GPU. For example you can use only 6 layers of composite. You can worked around that by using composite inside composite.
- More complex procedural noises are missing. Any kind of Worley noise would be most welcome, even simple Cellular would do for most shaders. Bercon maps would be perfect. But I would love to have unified V-Ray procedural noise map that would work across all 3D packages.
- Everywhere. You can use procedural techniques to enhance your shaders in so many ways that it would be hard to write about all of them.
- Mix procedural noise with tile-able bitmaps to make it look more random.
- For some ideas how to create this kind of shading, check the video below:
IV. On-demand textures and better overall memory management.
Above image in 3.4 took over 600 MB of memory for textures and materials. Now it can take only 200MB without any quality loss.
- V-Ray RT GPU will now aware of what kind of textures you’re using and load only channels that necessary. For example if the textures is grayscale in which R=G=B, there is no point to load all the channels. This is automatic process that doesn’t need any user interference.
- On-Demand textures can save even more memory. It’s smart system that estimates what resolution is needed for given camera angle and re-scales the textures on the fly (mip-map generation).
- All the information about loaded resolution gets printed to the log. So you can it saved the most of memory.
- While “out of core” approach is good it sacrifices much of the GPU performance. I prefer fitting as much as possible on the available GPU memory.
- No smart way of using mixed bit-depth textures. For example if part of your maps must use 32bit/channel and the others are at 8bit/channel, you will still need to load everything as 32bit maps. To be fair, most common uses of 32bit which are displacement and maps for lights will load with high dynamic range.
V. Render Mask.
There is no real cons here. It may not be the most used feature, but once you will find yourself in need of re rendering part of your image it may save you a lot of hustle.
VI. Geometry Clipper.
This feature is partly supported and is being ported from V-Ray CPU. It’s still missing Mesh clipping, once it’s added it will be perfect.
VII. Matte Shadow Catcher.
- Matte Shadow objects are now supported.
- Both matte object settings and VRayMtlWrapper work in V-Ray RT GPU.
VIII. Lights Directionality.
- Rectangular V-Ray Lights support directional option.
- Great for studio lighting with Dabarti Light Assistant ;).
- Directional option for disc lights is not supported.
IX. Stochastic Flakes Shader.
I didn’t test this material too much, but I managed to play with it and got one this render so far. I can see it being useful for kinds of “flakes” shaders. Glitter, car paint, snow would be perfect use of it.
4k Render: www.dabarti.com/screens/4k_stoc_flakes.jpg
I need some time to test the flakes further, but I can already tell that it’s very cool feature with some serious “math” involved.
X. Other features and improvements.
- Additive option for VRayBlendMtl is now supported.
- Better responsiveness while in Active Shade and using VFB + new low priority mode.
- More beginner friendly defaults.
- Speed improvement for rounded edges, VRayDirt, Output map.
- Forest color is now supported.
- Added focus picker and object select in VFB.
- Active Shade reacts to changing render resolution.
- Velocity Render Element is supported.
- New VRayScene object. You can save assets with materials and animation to .vrscene file that can be loaded back to 3ds Max.
- Anamorphic Lens and Optical Vignetting is now supported.
- IFL support.
VrayHDRI ground projection.
XI. What’s next ?
It’s possible that by the time the 3.5 gets out of Beta this review will need updating.
Here is my personal wishlist of features and improvements beyond “cons” that I’ve already mentioned:
- V-Ray Volume Grid and Environment Fog support with efficient rendering.
- Glossy Fresnel and Translucency support for VRayMtl.
- Better displacement. In CPU Adv there is very nice feature that enhances the look of low resolution displacement using bump. We need that in RT GPU too.
- Support for VRayScannedMtl.
- VRayDistanceTex and VRayCurvature support.
- Ability to use procedural noises and maps that are currently supported in other other software packages and RT.
- Better way of telling which GPU or GPUs are used by the given 3ds Max instance, preferably accessed through Maxscript and stored with 3ds Max file instead of global System Environment Variables.
- Active Shade to use “Dynamic” geometry type by default for better user feedback.
XII. XMars = First V-Ray 3.5 Short animation ?
Before Christmas we spend some time on short animation that we’ve used many of the new features. Rendering on unstable builds was fun ;)…
New features used: Procedural shading, Aerial Perspective, Forest Color, Adaptive Lights, IFL support, Mapped Gradient Ramp.
If you want to join the V-Ray RT community, great place for that is this group on Facebook: https://www.facebook.com/groups/VRayRT/ .