Autodesk/standard-surface

OSL reference implementation uses non-standard "sheen" and "metal" closures?

bhouston opened this issue · 1 comments

Thanks for the reference OSL shader. It is quite nice except for one peculiarity.

It makes use of two closures "sheen" and "metal" that are non-standard OSL closures. We should probably state that in the OSL shader.

Maybe one should try to get "sheen" and "metal" accepted as part of the OSL standard shader specification?

They are not listed as part of the official OSL specification:
https://github.com/imageworks/OpenShadingLanguage/blob/master/src/doc/osl-languagespec.pdf

They are not supported by Blender's Cycles OSL:
https://docs.blender.org/manual/en/latest/render/shader_nodes/osl.html

It doesn't appear in the V-Ray's OSL support either:
https://docs.chaosgroup.com/display/VRAY3MAX/OSL+Support

Nor do they seem to be documented as supported by Arnold:
https://docs.arnoldrenderer.com/display/A5ARP/OSL+Shaders

Although I did find a hint they are supported by a version of Arnold according to this PR to MaterialX's Arnold OSL translation node: https://github.com/autodesk-forks/MaterialX/pull/420/files/aea870f3a33744c6f10c8c5e30768e0437beee08

Sorry for the late reply @bhouston, I missed this ticket. Indeed, Standard Surface can't be fully implemented in OSL without implementing the non-standard closures. We hope that (at least some of) those missing closures (or suitable alternatives) will be added to OSL soon, and we are making efforts to make that happen.