langzi00 2013-10-10
第一,关于顶点
1.本地空间转换为世界空间(obj)(model 矩阵)
2.世界空间转换为视觉空间(eye)(view矩阵)
3.视觉空间转换为裁剪空间(clip)(project矩阵)
4.投影空间转换为设备归一化空间(ndc)(除以w)
5.设备归一化坐标转换为视口空间(glViewPort矩阵)
第二,关于法线。
1. 经过model*view的逆矩阵,求转置得到NormalMatrix。法线经过NormalMatrix变换后,转换到视觉空间。
2.法线经过归一化,转换为归一化坐标。也就是标准化。与设备归一化坐标(ndc)不同。
然后vertex shader的任务完成,进入到了fragment shader。
fragment shader对法线进行插值运算后,得到每一个点的法线。然后对每一个法线进行光照运算,得到最终颜色。