在pc Unity端安卓環境 測試正常後發現在小米黑鯊系列手機 shader顯示效果錯誤.經過一上午的排除對比,不停的出真機包.
找到了問題的所在:
錯誤效果 fixed mixNdotL = max(dot(tangentNormal, -i.worldLightDir), 0);
正確效果 fixed mixNdotL = saturate(dot(tangentNormal, -i.worldLightDir));
上面用MAX 結果是大於0既有效, 後面又用1 - mixNdotL .導致shader變黑. 但很矛盾的是在華爲等手機中(包括unity本地),第一行的效果都是正確的.