blinn-Phong
公式
环境光
- 环境光: u_Ambient_intensities * u_Model_ambient;
- 强度 x 模型颜色
- 与光无关
- 只是增加了颜色的强度
漫反射
- 漫反射: max(dot(to_Light, Normal), 0.0) * u_Model_diffuse * vec4(u_Light_color, 1.0);
- to_Light和Normal的角度cos x 光颜色 x 模型颜色
- 只与光和法线有关,两个向量的cos越小,光颜色越强
- 因为要乘模型颜色,所以不可能出现高光的情况
- 不会动,所以跟V无关
- 现实中,应该还有光照递减
高光
- 高光反射: pow(max(dot(Normal, normalize(to_Light+to_Camera)), 0.0), u_shininess) * vec4(u_Light_color, 1.0) * u_Model_specular;
- 半程向量和法线的角度cos pow x 光颜色 x 高亮颜色
- 与光和眼睛和法线都有关,半程向量与法线角度越小,颜色越强
- 因为不用乘模型颜色,只需要乘高光颜色,所以会出现高光
- 高光与模型颜色无关
- 高光会动,所以与V有关