2013/10/28

VRay 3.0 Beta Review

 


V-Ray 3.0 Beta Review

by Hammer Chen

Pros

  • switchable user interface (Basic, Advanced and Expert)
  • reduce rendering times around 40 ~75 % (through new rendering core, Embree, Probabilistic lights, progressive rendering and Dynamic Splitting of the render buffer)
  • suppress single over bright pixels effectively through "Max ray intensity"

Cons

  • with same settings, V-Ray 3.0 beta sometimes produce slightly noisy images compare with V-Ray 2.4
  • currently, VRay BPTracer is still under development



Rendering time comparison between V-Ray 2.4 and V-Ray 3.0 beta (Shattered porcelain)

Introduction
I have over a decade of experience in using rendering softwares. I was cebas finalRender fan, then I switched to mental ray for a few years (since it comes free with 3ds max ). It was when V-Ray upgrade from 1.x to 2.0, I realized V-Ray 2.0 has significant speed boost, since then I use V-Ray as my daily rendering engine. I am very excited to join this V-Ray 3.0 beta program and wanted to know if its rendering speed has improved significantly? For the most V-Ray users, the rendering speed is the key considerations to upgrade. I am an FX artist which means I render a lot of particle effects, debris, fire, smoke and water from day to day. In this article I will focus on user interface and rendering speed of V-Ray 3.0 beta .



-Switchable User Interface (Basic, Advanced and Expert)
Simpler UI, provides you with buttons to switch between different mode (Basic, Advanced, Expert). In the past, many users criticize V-Ray for having too much parameters. The new switchable UI provide simpler UI, so beginners won't get intimidate, yet advanced users are able to find detail parameters they want.


- VRay ToolBars: VRay Quick Settings
This provides you with quick settings for three different scenarios: EXTERIOR, INTERIOR and VFX. When I press the "EXTERIOR" button, the GI types will switch to BF + BF; When I press the "INTERIOR" button, it switch to IM + LC. I can even use the slider to control the quality. Unlike the mental Ray's Final Render  Precision slider only provide 5 levels of quality, VRay Quick Settings give you 33 levels of quality.

Here are test render for exterior scene, with same GI settings (BF +BF). To see whether V-Ray 3.0 beta is faster than V-Ray 2.4.

With V-Ray 2.4, rendering time was 51 minutes and 13.6 seconds.

With V-Ray 3.0 beta, rendering time was 30 minutes and 20 seconds.

Although with the same setting, V-Ray 3.0 beta rendering is slightly noisy than V-Ray 2.4, but the rendering time significantly reduced by 40.8%.

-New Image Sampler: Progressive Rendering
Progressive Rendering is a new image sampler for V-Ray. Literally speaking, progressive rendering is a continuous rendering from rough to finer quality. You can control its quality through "Min Max Subdivs" or you can directly limit its rendering time. Similar idea can be found in Maxwell Render.

Progressive Rendering: from rough rendering to production quality

Because you can specified rendering time, it is easier to estimate the overall rendering time for animation. With progressive rendering, you don't have to wait long to see the rendering results, you can preview the scene with only few iterations, so progressive rendering is perfect for look development. Since progressive rendering render continually, so it also can be used in production. Therefore, progressive rendering is good for preview, but also can integrated into the current rendering workflow.

- Embree: CPU rendering acceleration
What is Embree? 『...Embree is a collection of high-performance ray tracing kernels, developed at Intel. The target users of Embree are graphics application engineers that want to improve the performance of their application by leveraging the optimized ray tracing kernels of Embree. The kernels are optimized for photo-realistic rendering on the latest Intel® processors with support for SSE, AVX...』 from http://embree.github.io

Which CPUs Support Embree?
It is said that the latest intel CPU with support for SSE, AVX support Embree. I can not find a complete list of supported Intel CPUs on internet. But with my Intel Core i5 laptop, when "Use Embree" was checked, significantly reduce my rendering time.

 
For this broken ceramic scene, without Embree acceleration, rendering time was 1 hour 43 minutes and 46 seconds. If checked "Use Embree", rendering time was 1 hour 33 minutes and 41 seconds. Therefore, Embree acceleration reduced 9.7% of the rendering time in this case. Embree does not affecting my rendering quality. I also found that no matter what kind of GI combination (BF + BF or IM + LC...ETC) both can reduce rendering time with Embree.

-Dynamic Splitting of the render buffer
This feature dynamically shrink Bucket Render Size. Everybody have this experience when using V-Ray: let's say we are rendering with 8-core CPU, in the beginning, each core render specific bucket region, but just before last bucket region is render out, it will take longer to render since there is only one CPU core rendering that reign. This is called "last bucket syndrome". V-Ray 3.0 beta provides option will dynamically split bucket, when it render the last render reign, it will automatically split bucket to a smaller one, so all CPU cores has their job to do.

Dynamic Splitting of the render buffer kill the "last bucket syndrome"


-Probabilistic lights 
『...this option enables optimized sampling for scenes with many lights. When this option is disabled, for each hit point, V-Ray goes though each scene light and evaluates it. In scenes with many lights and lots of GI bounces, this leads to a lot of shadow rays being traced, to the point that the whole rendering becomes extremely slow. When this option is enabled, V-Ray will choose randomly the specified number of lights and will evaluate only those...』

The scene above has 13 VRayLights. When I leave "Probabilistic lights" unchecked, rendering time was 6 minutes and 46 seconds; If I check "Probabilistic lights", rendering time was 4 minutes and 15 seconds. Therefore, "Probabilistic lights" can reduce the rendering time by 37.1%, but the results are more noisy. I believe this feature can be used in complex lighting environment, to use as a preview rendering tool.

Without and with "Probabilistic lights".


 -Max ray intensity
『...this option allows to suppress the contribution of very bright rays, which may typically cause excessive noise (fireflies) in the rendered image. Its effect is similar to the Subpixel mapping + Clamp output options of the Color mapping section, but the Max ray intensity is applied to all secondary (GI/reflection/refraction) rays, as opposed to the final image samples. This allows fireflies to be effectively suppressed but without loosing too much HDR information in the final image...』


In this example, I deliberately set the floor darker, so it will be easier to see fireflies noise. Left image was rendered without "Max ray intens" option. Right image was rendered and "Max ray intens = 1", this effectively suppressed the white noise.


-Min shading rate 
『...this option allows you to control the number of rays shot for AA versus rays for other effects like glossy reflections, GI, area shadows etc. It is especially useful with the Progressive image sampler. Higher values mean that less time will be spent on AA, and more effort will be put in the sampling of shading effects...』

 Left: Min Shading = 1; right: Min Shading = 64


-VRay BPTracer (Bi Directional Path Tracing)
What is "Bi Directional Path Tracing"?
「...(1) Shooting rays from the light sources and creating paths in the scene. The path is cut off at a random number of bouncing steps and the resulting light is sent through the projected pixel on the output image. During rendering, billions of paths are created, and the output image is the mean of every pixel that received some contribution. (2) Gathering rays from a point on a surface. A ray is projected from the surface to the scene in a bouncing path that terminates when a light source is intersected. The light is then sent backwards through the path and to the output pixel. Bidirectional Path Tracing combines both Shooting and Gathering in the same algorithm to obtain faster convergence of the integral. A shooting path and a gathering path are traced independently, and then the head of the shooting path is connected to the tail of the gathering path...」 from Wikipedia


This is a new type unbiased GI engine for V-Ray. When using VRay BPTracer, it will automatically calculate the caustic. It currently is not compatible with 3ds max Frame Buffer. As my experience, VRay BPTracer is still an experimental feature. Though I could use "radius" to control quality, but it doesn't calculate environmental reflection correctly, leading to some areas of the glass unrealistically darker. The same scene with the traditional GI settings would not have this problem. I believe that V-Ray BPTracer is useful for some specific situations, but it is not ready for production in this beta version.


Scene rendered with VRay BPTracer. Left to right: default, radius = 0.1, radius = 0.5

How to use VRay BPTracer?
Just put a VRay BPTracer Helper in your scene, this will automatically override V-Ray GI settings, and the rendering is controlled through VRay BPTracer helper. It will render in a progressive way. From rough to finer quality until it reach its specified iterations count.

Other new features:

New Shaders
-VRayScater Volume
-VRayGLSLMtl
-VRayHaitMtl
-VRayOSLMtl
-VRayVRmatMtl


New Maps
-VRayICC
-VRayLut
-VRayOCIO

-V-Ray Vismat material (can be shared between different softwares, i.e.: Maya and 3ds Max)

-V-Ray Metaballs

-Render Mask
- support for Alembic through VRayProxy

- support for Deep Data


Conclusion:

  1. compared with the V-Ray 2.4, V-Ray 3.0 beta reduce 40 ~75% of the rendering time, but results are slightly noisy in some cases.
  2. Embree can speed up rendering, reduce around 10% of rendering time and does not affecting image quality.
  3. Progressive Rendering is a major innovation for this version, very useful for both preview and production.
  4. "Dynamic Splitting of the render buffer" is a small feature, but can effectively use all CPU cores during rendering.
  5. Probabilistic lights is very useful for scene with massive number of lights
  6. VRay BPTracer is still under development

No comments: