法线贴图
http://www.nvidia.com/object/real-time-normal-map-dxt-compression.html
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/
高光贴图
http://www.rastertek.com/dx10tut21.html
Unity支持
https://docs.unity3d.com/Manual/SL-SurfaceShaders.html
struct SurfaceOutput
{
...
fixed3 Normal; // tangent space normal, if written
...
}
Unity会对法线进行内部处理,如果在SurfaceOutput中设置了Normal成员,Unity会认为使用了切线空间的法线,随后Unity会对法线进行切线空间变换,把法线变换到视觉空间。如果没有设置Normal,Unity会直接使用顶点法线为Normal赋值。