Unity3D的surface shader用起来很是方便,比直接的cg写起来省事的多,而且有很多现成的东西可以include,比如光照部分就是,常用的lambert, blinn phong都提供了现成的实现,但是最近在做specular时发现,内置(https://unity3d.com/unity/download/archive下载全部内置shader source或 Windows, Mac)的LightingBlinnPhong在移动设备上使用时会出现高光曝掉的问题!
简单看lighting.cginc中的相关函数: