在pc Unity端安卓环境 测试正常后发现在小米黑鲨系列手机 shader显示效果错误.经过一上午的排除对比,不停的出真机包.
找到了问题的所在:
错误效果 fixed mixNdotL = max(dot(tangentNormal, -i.worldLightDir), 0);
正确效果 fixed mixNdotL = saturate(dot(tangentNormal, -i.worldLightDir));
上面用MAX 结果是大于0既有效, 后面又用1 - mixNdotL .导致shader变黑. 但很矛盾的是在华为等手机中(包括unity本地),第一行的效果都是正确的.