Shader入门精要 - 标准光照模型
Shader入门精要第九章结束后,我们学习了更复杂的光照,本章末尾,作者给出了结合我们之前所学的所有光照相关的Shader,对这个Shader逐行解析巩固我们对于光照模型学习的记忆。首先代码如下
补充部分:凹凸纹理的计算
通常情况下,我们通过美术提供的法线纹理来实现模型的凹凸效果,法线纹理切线空间下的法线,对于模型上面的每个顶点,他都有一个属于自己的切线空间,这个切线空间的原点为它自己,z轴为顶点的法线方向,x轴是顶点的切线方向,而y轴通过法线和切线叉积而得(叉乘的几何意义),也被称为副切线,实际上这里叉积会得到两个方向,在代码之中也可以看到 fixed3 worldBinormal = cross(worldNormal, worldTangent) * v.tangent.w; 额外乘了一个v.tangent.w就是用来指定副切线的方向。