Okay, I've pushed a rework of the PR that replaces the WIP implementations of both models with just an implementation of the LTC-based model, plus the versioning code etc.
For naming the enum…
SHARP
distribution internally
reflection()
and refraction()
are default builtin closures in OSL, so we probably want to keep this closure in the OSL interface. We can just implement it through bsdf_microfacet_ggx_setup()
I guess.
SHARP
distribution internally
This if
block is repeated seven times, it might be worth adding something like
Hi @Tizian-Zeltner, thanks for checking this, glad to hear that the implementation looks good!
The patch is updated for OSL now, I'll run a build so people can try it out. But yeah, I'm also…
Okay, I've updated the PR. As far as I can tell, it behaves correctly for small angles (on the order of 0.01°) now.
For those angles, the previous dot(a, b) < cos(angle)
actually becomes an…