Page 1 of 1

Why Does LuxCore Not Support the GGX Model?

Posted: Mon Sep 14, 2020 11:41 am
by BruceXu
I transplanted Microfacet Reflection from pbrt to luxcore and the results did not meet my expectations.
I'm using Trowbridge Reitz Distribution.

Re: Why Does Luxcore Support Materials Based on the GGX Model?

Posted: Mon Sep 14, 2020 12:40 pm
by Dade
BruceXu wrote: Mon Sep 14, 2020 11:41 am Why Does Luxcore Support Materials Based on the GGX Model?
Why shouldn't we ?

In case you wanted to ask why "doesn't": current Disney material uses a GGX distribution.
BruceXu wrote: Mon Sep 14, 2020 11:41 am I transplanted Microfacet Reflection from pbrt to luxcore
How ? Where ? What does mean "transplanted " ?
BruceXu wrote: Mon Sep 14, 2020 11:41 am and the results did not meet my expectations.
How doesn't it meet your expectation ? You need to better explain/show what kind problem you have.

Re: Why Does Luxcore Support Materials Based on the GGX Model?

Posted: Tue Sep 15, 2020 1:23 am
by BruceXu
Dade wrote: Mon Sep 14, 2020 12:40 pm
BruceXu wrote: Mon Sep 14, 2020 11:41 am Why Does Luxcore Support Materials Based on the GGX Model?
Why shouldn't we ?

In case you wanted to ask why "doesn't": current Disney material uses a GGX distribution.
BruceXu wrote: Mon Sep 14, 2020 11:41 am I transplanted Microfacet Reflection from pbrt to luxcore
How ? Where ? What does mean "transplanted " ?
BruceXu wrote: Mon Sep 14, 2020 11:41 am and the results did not meet my expectations.
How doesn't it meet your expectation ? You need to better explain/show what kind problem you have.
Um, I’m very sorry, there is something wrong with my description
I refer to pbrt to implement class BRDF, class Microfacet Reflection, and then implement the plastic material in pbrt in luxcore
Regarding energy conservation, adding BXDF::f() in pbrt, I think it is not in line with energy conservation?

Sorry, I currently have no way to show my code

The specific implementation is as follows:
1. Use BXDF::f() and BXDF::pdf() in the Evaluate function to calculate bsdfEval and directPdfW
2. Use the BXDF::sample_wh() function in the Sample function to calculate localSampledDir