Unity 高光着色器在Editor中显示正常,andorid中出现曝光问题
max函数改为 saturate即可!
// An highlighted block
half NdotH = max(0.0,dot( worldNormal, halfDirection));
改为:
half NdotH = saturate(dot( worldNormal, halfDirection));
补充说明:
归根到底的原因还是在于求出的切角在某种夹角运算中会变得无限大导致亮度特别大,再加上后处理对hdr的处理就会出现曝光。
saturate是将值简直在0~1之间。
还有办法可以用clump,将值限制在某个范围之类也可以解决该问题。