Jump to content
sebkaine

Open Source PBR Shader Common Project.

Recommended Posts

Great initiative!

 

A couple of quickie comments. You can't just pick'n'choose the D, F and G from UE sources and run with it, the bulk of the work is getting the respective sampling functions for MIS. You could do a naive illuminance loop version of the shading model for learning/reference, which would be pretty much just implementing the game shaders, but it would be very inefficient (I have and it was:). A proper BRDF is a must. I would try to use existing BRDF implementations where possible, and concentrate efforts on the higher level design/modularity of the material. Of course if you really want to learn everything and do it all, the more power to you! :)

Also, as far as I understood, the SESI GGX _is_ Jim's GGX, with some modifications. (?)

 

That's great to have you on board eetu ! :)

 

i think it would be wiser to follow your advise , cause nothing stop us to

- prototype all the nodes by using default houdini BRDF

- stick with the CVEX atomic code idea

- having all the CVEX code include in each node

 

see how it goes and if things are good enough stick with this approach.

as pablo mention previously it looks that SESI is going to give some love to shading workflow.

 

if things are not good enough , nothing would stop us to rewrite part that need to be rewrite ...

so maybe not reinventing the wheel if it's not absolutely necessary would be a good starting point.

 

Vincent what do you think on focusing only on existing BRDF for prototype ?

Maybe we could avoid some brain dammage by avoiding the hard way ...

 

At least to start ... :)

Edited by sebkaine

Share this post


Link to post
Share on other sites

I still want to give myself 2 weeks to cover Fs properly before restricting anything, but as I'm writing this, I see no reasons for not going with SESI's implementations except for 2 things : incorporation of measured reflectance as presets and human skin (for every other case of generic SSS, mantra surface is good enough).

 

Speaking of human skin, I got a reply from the Activision guy saying that adapting the provided code to the ideas in the latest article is feasible. So I will look into that.

 

So my question remain: is it possible/efficient to use only the importance evaluation functions of SESI's reference Fs with custom sampling functions to use measured reflectances and other sampling methods (for human skin, for instance)? I'm not even 100% certain my question makes sense.

Share this post


Link to post
Share on other sites

So my question remain: is it possible/efficient to use only the importance evaluation functions of SESI's reference Fs with custom sampling functions to use measured reflectances and other sampling methods (for human skin, for instance)? I'm not even 100% certain my question makes sense.

 

This is from the Houdini docs:

In Houdini 13 and later, it is not necessary for the sampling function to directly sample from the evaluation function’s distribution. To use a different sampling function, adjust the pdf outputs from both the evaluation and sampling shaders so that they reflect the distribution being sampled.

 

So while it is possible to use non-matching evaluation and sampling functions your results will contain bias. For maximum quality they should converge to the same result.

Edited by dennis.albus

Share this post


Link to post
Share on other sites

Hi Dennis. Thanks for pointing this out. Do you know, for instance, what is the name of SESI's GGX eval so I can use it with cvex_bsdf alongside my own sampling function and more importantly look at the eval code to see if it diverges (when and how much) and also get inspiration to build my own if necessary? Thanks.

Share this post


Link to post
Share on other sites

Also, I just want to say a word or two on the test scene I'm building for this. It contains:

 

  • an array of diffuse color spheres arranged according to the macbeth chart
  • a mirror/chrome ball
  • an array SESI shader balls for each non-human skin measurement preset
  • an HDRI map environnement light (one of the Dosh images that is included in the Houdini distribution perhaps)
  • checkerboard cyclo background (anyone kind enough to suggest pattern ideas? i'm hesitating on this)
  • a full scale full-body human figure. I tried the MakeHuman one but it looks like crap. The Danylon geo is head only and I don't want it floating in the middle of the scene with eyes closed, it freaks me out (one of the objective for me is to shade it in a way it doesn't look dead ghoulish and I think full-body with eyes open is the way to go). I have some that don't look like crap but I cannot share them. Is there anybody that knows of a good free full scale full-body human figure that we could use here? preferably a scan, preferably male because:
  1. in-texture hair don't look so ugly on guys and I don't have time to create the full hair geo and even then, male hair geo is easier to do
  2. you only have the genitals to hide (behind a realistic short/speedo or whatever, it's easier than going with the full multi piece bikini/lingerie kit)
  3. culturally, photorealistic female is not photorealistic (and let's not get started on this)

That's it for now. Thanks.

Edited by up4

Share this post


Link to post
Share on other sites

Ok , i have start to work on the UI of the atomic BSDF.

 

Here is a first draft. basically the idea will be able to combine as many atomic BSDF we want to build our shaders.

 

I have try to focus on having the minimum of parameters.

I have also try to avoid the diffuse / sss / refraction / specular / reflection layout.

 

the idea is that :

ray is reflected and refracted , reflected ray behavior is obvious but the refracted ray behavior will be mainly control by the internal particle roughness parameter.

basically

0               =  transparent media

0.01-0.49  = cloudy media

0.5-0.99    = translucent media

1               = opaque media

 

N = real part of the IOR

K = complex part of the IOR

http://refractiveindex.info/

 

all this is still very wip , so i am just trying to get some feedback before attacking the VEX coding !

most stuff are base on this :

http://renderwonk.com/publications/s2010-shading-course/hoffman/s2010_physically_based_shading_hoffman_a_notes.pdf

 

i also try to get close to maxwell material simplicity

 

Cheers

 

E

mos_UI_proto_v01.hip

Edited by sebkaine

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×