Changed light_side policy and added albedo functions (issue756041)


aco...@...
 

Reviewers: osl-dev_googlegroups.com,

Description:
Now get_light_side returns the actual light side of the closure
regardless of the singularity. And I have added albedo functions to all
the bsdf's to make sampling easier and better. Note that those albedo
functions don't have to be accurate.

Although they are in the same review, both things will be checked in as
separated commits.

Please review this at http://codereview.appspot.com/756041/show

Affected files:
src/include/oslclosure.h
src/liboslexec/bsdf_ashikhmin_velvet.cpp
src/liboslexec/bsdf_cloth.cpp
src/liboslexec/bsdf_cloth_specular.cpp
src/liboslexec/bsdf_diffuse.cpp
src/liboslexec/bsdf_fakefur.cpp
src/liboslexec/bsdf_hair.cpp
src/liboslexec/bsdf_microfacet.cpp
src/liboslexec/bsdf_phong.cpp
src/liboslexec/bsdf_reflection.cpp
src/liboslexec/bsdf_refraction.cpp
src/liboslexec/bsdf_transparent.cpp
src/liboslexec/bsdf_ward.cpp
src/liboslexec/bsdf_westin.cpp
src/liboslexec/closure_test.cpp


larry...@...
 

http://codereview.appspot.com/756041/diff/1/2
File src/include/oslclosure.h (right):

http://codereview.appspot.com/756041/diff/1/2#newcode258
src/include/oslclosure.h:258: /// be used for sampling decissions
decisions.

Can you elaborate more? I think somebody reading this comment will have
no idea what this is for, or why it's ok to only be an approximation.
You say it should be under 1.0, but some of the implementations return
1.0. Also, you should explain here that things that we don't know how
to sample ought to return 0.0 (I'm surmising, looking at some of the
subclass implementations).

http://codereview.appspot.com/756041/show


aco...@...
 


larry...@...
 

thanks, that's much more clear now

http://codereview.appspot.com/756041/show


cku...@...
 

LGTM2


http://codereview.appspot.com/756041/diff/15001/16001
File src/include/oslclosure.h (right):

http://codereview.appspot.com/756041/diff/15001/16001#newcode257
src/include/oslclosure.h:257: /// be less or equal than 1.0 and it is
not guaranteed to be accurate.
"less than or equal to 1.0"

http://codereview.appspot.com/756041/show


aco...@...
 

guaranteed to be accurate.
"less than or equal to 1.0"
Thanks, fixed that. Will commit when the render part gets approved

http://codereview.appspot.com/756041/show