@SebAaltonen@dkharms_ It seems to be just reducing the permutation explosion caused by state changes, but most permutation explosion is caused by shader static condition branch, state don't change.
@leegoonz73 Cool, maxSmoothness = 1.35/(1+pow(1.15*(0.0315*angularDiameter+0.4),2))-0.11;
minRoughness = (1-maxSmoothness)^2; Where did the formula come from? Or How to derive it? Thanks.