BRDF tests

Hello,

I did some tests on some of the BRDF available in V-Ray, to highlight the possible differences in terms of speed. And there are.

For the sake of speed ( on my side ), I did the test in my Cornell Box scene, but I think it’s a too simple scene to give a final judgment about this subject ( and I don’t know if it’s a good idea or even possible to give a final advice on this ).

A - simple flat colors

A simple render with flat colors and all the materials BRDF set on GGX or Blinn ( walls, objects ). No post.

This one is really simple but shows no significant differences, except a little advantage in favor of the GGX.

B - with textures

In a second time, I have added some textures as to increase a bit the render times, the material computation and widen the gap between the different kind of materials. A bit of post-processing to correct the white balance, brighten the image and add some contrast.





As you can see, the differences are clearly noticeable :

V-Ray Mtl GGX : 1.0 ( reference )
alSurface GGX : 1.7x / faster
alSurface Beckmann : 1.6x / faster
V-Ray Mtl Blinn : 0.9x / slower

However I can’t explain why alSurface gives a totally different GI result because I have setted up materials in the same way. So I guess GI might be a potential bias in this test.

I have gathered the data in a Google Sheet table if you like numbers.

Let me know if you have some examples or did some testing on your side with some results to share.

EDIT : these numbers are valid only if you’re planning to use GI caustics, see below for render times without GI caustics, it’s also a much more correct comparison between BRDFs

As far as I understand, GGX implementation is different between rendering engines, so out of box they might not look the same and they will not be as fast.
But with Vray you have GGX tails falloff that you can use to control how your highlights look. This is one of my fav features of Vray really and allows a lot of flexibility.
With GGX tail falloff you can control how GGX will affect the rendering time also, but the idea behind it is to control how the highlight falloff looks. The added render times when using GGX tail falloff of 1.1 for example is totally worth it for the realism and detail you get.
It would take you several layered materials blended together in other engines just to match GGX tail falloff of 1.1 for example with metals.
In your second post, I cannot see the images for some reason. Could you upload somewhere else, please.

Before GGX was implemented in Vray, we used to layer 3 Vray materials in a blend material to get realistic highlights for metals and plastics. This was time consuming and way slower in rendering than just using GGX
Who cares if GGX is slower than blin or Ward? You should always use GGX for all your materials.

Images fixed, thanks for the info Muhammed, I saw the images on my side so I didn’t noticed it.

For the rest, did you read what I wrote ? GGX is faster in all cases, with little margin, but still faster.
Even when I try to visually match the glossiness of Blinn with GGX ( so I set the Tail Falloff to something like 5 and lower the glossiness ), GGX is still faster.

I don’t know what you mean by using different render engines, I have only used V-Ray for theses tests, alSurface is the one provided in the V-Ray Material list :wink:

alSurface GGX seems to be the fastest but I’m not confident about this, GI caustics don’t seem to be computed with it.
Also I want to try a real world case scenario, with much more surface covered by the materials and various angles visible from the camera.

I did read everything, but I should have explained more. Sorry about that.
Let me explain more what I meant. I talked about GGX implementation in different render engines, because ALsurface was written for Arnold, then Vlado brought it to Vray. It is using different GGX implemetation than other Vray materails.
In your testings, GGX is faster than blin and ward. That is definitely a good point.
But in many cases GGX is slower. Try 1.1 GGX tail falloff with Chrome that has reflection glossiness of .9 or so
It is common that some users will use blin becasue it is faster with plastics or metals. Even the Vray documentation recommends blinn for plastics and ward for metals which is not true.
GGX should be used in all cases.

One last test in the Cornell Box with the values suggested by Muhammed, a simple metal with a value of 1.1 for the tail falloff and glossiness around 0.90

Unsurprisingly GGX is still faster since it’s look isn’t reproducible with a simple V-Ray Material with Blinn BRDF, but with a Blend material and 4 sub-materials. So the rendering time has gone up quite a bit.

Thanks for all testings, John
This is exactly what I meant.
Before GGX were implemented in Vray, we used to layer multiple blinn hightlights to get the Complex GGX look. This was a lot of work and render time.
And still in other render engines until now GGX won’t be enough for matching things like shiny gold, metallic carpaint and others. You will need to layer multiple materials with GGX to get complex highlight falloffs
Only in Vray you have the ability to control this using one slider, hence this is one of my fav. features of Vray. GGX tail falloff could even be mapped with textures!
There are a lot of possibilities.

Some news. I did a quick test in a scene I used for a recent project :

( the render time tag is broken in the bottom stamp )

I did a render with all the materials in GGX, then converted all the materials to Blinn.
Blinn is a little bit faster in this case, around 7% in speed difference. Depending of the resolution of the final image and the complexity of your interior scene, the gap may be greater.

EDIT : I did also a quick test ( = rough conversion of V-Ray Mat to alSurface without refining glossiness level by hand ) with alSurface materials, thankfully I tried on this scene and not only in the Cornell Box : the render time increases by roughly 30%.

It will be up to you to decide if the difference in speed is worth the look :slight_smile: But note that it’s far from a methodical and scientific approach, and so you have to consider the results with a pinch of salt. It’s more to show the potential gap in render times between several BRDF’s rather than to say “A is better than B, use it”. The best BRDF depends on your needs and your scene.


Is it rendered using default Vray Materials or alSurface? I’m asking because your tests in first post show that alSurface material renders faster than vray material

Hello Cry0,

Thank you for pointing this, I did a very quick test and have updated the chart. In this case alSurface is way slower than the native V-Ray Materials. However I used it in all the previous test for the marble material, it’s SSS is great and really easy to setup.