-
Notifications
You must be signed in to change notification settings - Fork 12
Description
To support independent diffuse/specular multiply on lights, I tried patching the cycles code-base eg.
https://github.com/tangent-opensource/cycles/blob/master/src/kernel/kernel_emission.h#L76
I added state->flag in addition to PATH_RAY_EMISSION and this got the LightPathNode to have enough data to put custom shaders to only do diffuse/specular.
However, this wasn't perfect as adding a bit of roughness to spec seemed to revert the light path to diffuse so it wouldn't work in the mapping of specular/diffuse multipliers and would complicate the light.cpp code in hdcycles to make the appropriate shader graphs with the LightPathNode.
@skwerner you mentioned that you got those controls working in Poser long ago? My opinions of these physically broken hacks is that we shouldn't use them, however for some production requests it could be advantageous to have (alternatively we could just create 2 lights and turn off diffuse/specular on each one to decouple them, so this request priority is fairly minor and is just a 'nice to have' due to a valid workaround that we could use).
Cheers