I am looking for a simple BSDF that can nicely interpolate 3 parameters (transparency, metallicity, roughness), but it must come with pdf evaluation as well.
So I want a BSDF function that can generate samples with some reasonable importance sampling and then another function that can calculate PDFs of a given existing sample.
Example of exactly what I want: https://www.shadertoy.com/view/sltXRl
vec3 DisneySample(State state, vec3 V, vec3 N, out vec3 L, out float pdf);
vec3 DisneyEval(State state, vec3 V, vec3 N, vec3 L, out float bsdfPdf);
The problem with this one is complexity – I am looking for something much cheaper, so it could be used e.g. for real-time raytracing in editor preview mode.
I found countless of cheap BSDFs on shadertoy, but they never have the 2nd evaluation function. The only ones I found are these expensive Disney's implementations.