How would one go about starting to create a bsdf vop? I'm looking through the docs and can only find how to add, multiply etc primitive bsdfs. But from the following thread on odforce it seems it's possible to start one from scratch? http://forums.odforce.net/index.php?/topic/9590-pbr-snack/page__hl__bsdf__fromsearch__1 [forums.odforce.net] I'm confused. Mainly since the docs point to the primitive bsdf's. http://www.sidefx.com/docs/houdini10.0/vex/pbr [sidefx.com]
Speaking of the primitive bsdf's… where are they in H11? thanks in advance. If it's possible the end goal I want to reach would be to implement the ggx lighting model.
Creating BDSF for PBR
19120 14 3- rtalz
- Member
- 18 posts
- Joined: May 2010
- Offline
- wolfwood
- Member
- 4271 posts
- Joined: July 2005
- Offline
Currently its not possible to create BSDFs on your own, either via VEX or the HDK. There has been talk that in future versions of Houdini this may be possible but the VEX language itself would need to be improved in order to facilitate this.
The shading BSDFs are here
http://www.sidefx.com/docs/houdini11.0/vex/pbr [sidefx.com]
The full list is-
Shading BSDFs
ashikhmin
blinn
cone
diffuse
matchvex_blinn
matchvex_specular
phong
phonglobe
specular
Utility BSDFs
interpolate
lerp
switch
Wire/Curve BSDFs
wireblinn
wirediffuse
Volume BSDFs
isotropic
henyeygreenstein
What's the ggx lighting model? Linky?
The shading BSDFs are here
http://www.sidefx.com/docs/houdini11.0/vex/pbr [sidefx.com]
The full list is-
Shading BSDFs
ashikhmin
blinn
cone
diffuse
matchvex_blinn
matchvex_specular
phong
phonglobe
specular
Utility BSDFs
interpolate
lerp
switch
Wire/Curve BSDFs
wireblinn
wirediffuse
Volume BSDFs
isotropic
henyeygreenstein
If it's possible the end goal I want to reach would be to implement the ggx lighting model.
What's the ggx lighting model? Linky?
if(coffees<2,round(float),float)
- rtalz
- Member
- 18 posts
- Joined: May 2010
- Offline
Thanks for the clarification.
Here's a link describing the GGX model. http://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [cs.cornell.edu]
Sony-Imageworks tends to use this model allot along with Beckmann and Ashikhmin.
Here's a link describing the GGX model. http://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [cs.cornell.edu]
Sony-Imageworks tends to use this model allot along with Beckmann and Ashikhmin.
- Pagefan
- Member
- 519 posts
- Joined:
- Offline
- Mario Marengo
- Member
- 941 posts
- Joined: July 2005
- Offline
Well… even though you can't currently define your own bsdf object, you can still define a bunch of (VEX) functions that mimic the features of a built-in bsdf. That is: implement your own versions of sample_bsdf(), eval_bsdf(), albedo(bsdf,<dir>), etc., and then use them in a Multiple Importance Sampling setting, similar to what's happening in pbrpathtrace.h (which you would also need to write yourself, but you can use that header as a guide).
I'm coincidentally in the middle of trying just that (for a Cook-Torrance based model) and it seems to be working pretty well so far (very efficient sampling), though I still have to tame some of the weights in the MIS portion :?
I'm coincidentally in the middle of trying just that (for a Cook-Torrance based model) and it seems to be working pretty well so far (very efficient sampling), though I still have to tame some of the weights in the MIS portion :?
- wolfwood
- Member
- 4271 posts
- Joined: July 2005
- Offline
Mario Marengo
I'm coincidentally in the middle of trying just that (for a Cook-Torrance based model) and it seems to be working pretty well so far (very efficient sampling), though I still have to tame some of the weights in the MIS portion :?
From what I gather (pun!) on reading the GGX paper, the BRDF component of the GGX BSDF is the same as the Cook-Torrance except they divide by 4 instead of a factor of PI.
The BTDF is a bit different tho. @Rtalz, do you guys use the full BSDF or just the BRDF component?
if(coffees<2,round(float),float)
- Mario Marengo
- Member
- 941 posts
- Joined: July 2005
- Offline
Wolfwood
From what I gather (pun!) on reading the GGX paper, the BRDF component of the GGX BSDF is the same as the Cook-Torrance except they divide by 4 instead of a factor of PI.
I don't think so. The difference is in the distribution (the “D” term), and all 3 versions are pretty different (as are their shapes). All the D's have a 1/PI term that comes from normalizing to projected solid angle (an extra cos(theta) term in the integral => Solve, which the original Cook-Torrance “D” didn't have, so the 1/PI term was missing there). And the 1/4 or 1/4(w.h) factor (for the whole BRDF, not the D term) comes from mapping an “h-distribution” (a distribution of halfway vectors about n) to an “o-distribution” (a distribution about the outgoing direction).
…at least that's how I understand it at the moment
- wolfwood
- Member
- 4271 posts
- Joined: July 2005
- Offline
- JasonSlab
- Member
- 1535 posts
- Joined: March 2020
- Offline
Mario Marengo
I'm coincidentally in the middle of trying just that (for a Cook-Torrance based model) and it seems to be working pretty well so far (very efficient sampling), though I still have to tame some of the weights in the MIS portion :?
ooo, i hope this makes an appearance on the exchange
jason
fx and lighting @ rebelway
https://www.youtube.com/@jason_slab
https://www.youtube.com/@jason_slab
- JColdrick
- Member
- 4140 posts
- Joined: July 2005
- Offline
- JasonSlab
- Member
- 1535 posts
- Joined: March 2020
- Offline
- SvenS
- Member
- 11 posts
- Joined: March 2011
- Offline
Does anybody know if the henyey-greenstein Volume BSDFs is able to do forward scattering and adding backward scattering? Because thats what the “double henyey-greenstein” does.
“The double Henyey-Greenstein phase function is the sum of two Henyey-Greenstein phase functions, one being forward scattering, and the other being backward scattering.” http://physics.nist.gov/Divisions/Div844/facilities/scatmech/html/phase.htm [physics.nist.gov]
“The double Henyey-Greenstein phase function is the sum of two Henyey-Greenstein phase functions, one being forward scattering, and the other being backward scattering.” http://physics.nist.gov/Divisions/Div844/facilities/scatmech/html/phase.htm [physics.nist.gov]
- sergey_sh
- Member
- 22 posts
- Joined: June 2008
- Offline
rtalz
Here's a link describing the GGX model. http://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [cs.cornell.edu]
Sony-Imageworks tends to use this model allot along with Beckmann and Ashikhmin.
Check this out: http://www.youtube.com/watch?v=Mopk3gqisVI [youtube.com]
Just made an implementation of this paper. GGX specular is so cool!
TD @ Mr.X Inc
- Alejandro Echeverry
- Member
- 691 posts
- Joined: June 2006
- Offline
I hope that in H12 we can implement custom BSDF's.
Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
- rtalz
- Member
- 18 posts
- Joined: May 2010
- Offline
sergey_sh
Check this out: http://www.youtube.com/watch?v=Mopk3gqisVI [youtube.com]
Just made an implementation of this paper. GGX specular is so cool!
GGX, how I love you. Great work.
-
- Quick Links