ggx bsdf function

   411   3   1
User Avatar
Member
3528 posts
Joined: 9月 2011
Online
I just noticed that 18.0 is using the new ggx() function which returns the bsdf (ggx). This function replaced the cvex_bsdf used by older versions in the get_bsdf() function used in materials such as the principled and classic shaders.

Does this internally map to the cvex shaders defined by ggx_eval.vfl and ggx_sample.vfl, or is it now fully built-in?

If it is built-in, is it in any way more efficient or otherwise improved vs the cvex based bsdf of prior verions (in mantra and or karma)? Does this change mean that karma does not(yet) support cvex bsdfs?
User Avatar
スタッフ
2256 posts
Joined: 7月 2005
Offline
The C++ version of the GGX shader should be about the same performance as the cvex_bsdf(). Due to its architecture, Karma can be significantly more efficient when using C++ BSDFs instead of CVEX BSDFs. However, Karma does still support CVEX BSDFs.

I believe that Mantra should still be using the CVEX versions for BSDF evaluation, since mantra's architecture sees performance benefits from keeping everything in VEX.
User Avatar
Member
178 posts
Joined: 1月 2013
Offline
Great to know that CVEX BSDF code will still be supported in Karma. Sometimes just being able to hack something shot specific into a BSDF via VEX is more valuable than absolute performance.

That said, will there be a public API to create custom C++ BSDFs?
User Avatar
スタッフ
2256 posts
Joined: 7月 2005
Offline
A public C++ BSDF interface is unlikely.
  • Quick Links