Disney BRDF material

Discussion related to the LuxCore functionality, implementations and API.
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Disney shader problem

Post by epilectrolytics »

I changed the materials in the classroom scene to Disney shaders and started rendering the animation (with PGI).
First I was positively surprised to see a substantial speed-up from 190s to 150s render time for 400 samples per frame.
But when I took a peek at the animation after the first 200 frames there was a slight flickering on the wall that was not present in the previous render with glossy and matte materials.
It turns out that the advanced GGX reflectance model throws more noise around the scene.
The light distribution is also very different, two examples without OIDN:
disney.jpg
^ Disney
v glossy&matte (only floor, walls & desks; same cache)
glossy.jpg
I'm rerendering now with 500 samples/frame which is the same duration as with the old materials and will report tomorrow how that turns out.
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Disney BRDF material

Post by epilectrolytics »

After comparing animations of 500 samples per frame with Disney materials vs 400 samples glossy/matte (same render time)
I have to say there is no free lunch :|
The Disney version shows slight flickering in the corners where the walls meet the ceiling.
Probably needs 600 to 700 samples to get clean, meaning a three days instead of two days render :(
It could be caused by GGX model being more noisy, PGI brute force corner blending, OIDN or any combination of those :?
I just spend two hours to set up a demonstration video showing the effect (0.5GB ProRes 422HQ), then converted it to HEVC for upload and found that the h.265 conversion is somehow smoothing out things and the flicker is nearly gone :o

Well, yeah.

Theoretically the GGX thingy should be more expensive to render and produce more noise from those fancy reflections at grazing angles, especially with diffuse surfaces that now have a "specular" component (disabling this for walls and ceiling shortens render time by 5s and slightly darkens parts of the room) and that's what I have seen in Cycles and now LuxCore as well.

In the end it's a matter of taste.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Disney BRDF material

Post by B.Y.O.B. »

epilectrolytics, thank you for testing the new shader in-depth.

Could you open bug reports in https://github.com/LuxCoreRender/LuxCore/issues/new with the following:
- short description of the problem
- scene showing the problem (.blend or, even better, result from LuxCore scene export in text format)
- render output images showing the problem
- a description of the steps to make to replicate the problem

When problems are only reported in posts in a 10 page long thread, it is very hard to find them again.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: Disney BRDF material

Post by Sharlybg »

Theoretically the GGX thingy should be more expensive to render and produce more noise from those fancy reflections at grazing angles, especially with diffuse surfaces that now have a "specular" component (disabling this for walls and ceiling shortens render time by 5s and slightly darkens parts of the room) and that's what I have seen in Cycles and now LuxCore as well.
Do you have direct cache enable ? Or single map ?
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Disney BRDF material

Post by epilectrolytics »

B.Y.O.B. wrote: Sat Jun 15, 2019 1:29 pm Could you open bug reports in https://github.com/LuxCoreRender/LuxCore/issues/new
Sorry for being unclear in my reporting but this was not a bug report, instead all is well with the new shader and it works as (at first) expected ;)

I was just confused about the faster render time per sample and had to learn through experimenting that at the same time it converges slower so in the end there is a certain noise penalty due to the more complex reflection model, just as in Cycles or other apps.

So by all means everyone go ahead and use it because it works :!:
Sharlybg wrote: Sat Jun 15, 2019 2:08 pm Do you have direct cache enable ? Or single map ?
Single map.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Disney BRDF material

Post by B.Y.O.B. »

Thanks for clarifying :)
Taka
Donor
Donor
Posts: 65
Joined: Wed Mar 20, 2019 7:24 pm

Re: Disney BRDF material

Post by Taka »

Hi there,

I noticed something with Disney material. It seems with CPU rendering, specular gets a color tint. OpenCL gives expected results.
First image is CPU, second one is OpenCL.
Attachments
Disney_Cpu.png
Disney_OpenCL.png
Disney_Node.JPG
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Disney BRDF material

Post by Dade »

Taka wrote: Tue Jun 18, 2019 4:00 pm I noticed something with Disney material. It seems with CPU rendering, specular gets a color tint. OpenCL gives expected results.
I should have fixed this problem.
Support LuxCoreRender project with salts and bounties
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Disney BRDF material

Post by epilectrolytics »

The Disney BRDF has a different roughness scale, how does this work with glossiness.userthreshold parameters in PGI and hybrid path?

Worst case would be when a user mixes f.i. metal + Disney materials and the respective roughness values don't mean the same.

Probably there is no easy solution, somehow it's always unintuitive or backwards compatibility becomes an issue (if Luxcore would adapt Disney roughness scale).
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Disney BRDF material

Post by Dade »

epilectrolytics wrote: Thu Jun 27, 2019 9:36 am The Disney BRDF has a different roughness scale, how does this work with glossiness.userthreshold parameters in PGI and hybrid path?
The values is used as it is and compared with the threshold.
epilectrolytics wrote: Thu Jun 27, 2019 9:36 am Worst case would be when a user mixes f.i. metal + Disney materials and the respective roughness values don't mean the same.
If you mean the use of "mix" material: Disney material already includes a metal component so it doesn't make any sense to mix with metal (or glossy2).
Support LuxCoreRender project with salts and bounties
Post Reply