在这一次,尝试了许多光照。包括标准的ADS点光源的,phong着色的,聚光灯的,用half vector计算高光,还有flat着色。
对于每一次着色,需要计算ambient, diffuse, specular。按照计算位置分,在vertex shader中计算颜色,然后自动插值,就是gouraud shading,不插值就是flat shading;在
fragment shader中计算颜色就是phong着色。ambient是一个常数,描述了环境光,diffuse根据灯光与视点的夹角来确定,specular有两种计算方法:1.计算光线的反射向量,然后
与视点向量比较; 2. 计算光线向量与视点向量的和,然后与法线比较。