openGL光照要点总结

OpenGL的光照使用的是简化的模型,对现实的情况进行近似。
其中一个模型被称为冯氏光照模型,Phong Lighting Model。
冯氏光照模型的主要结构由3个分量组成:环境,Ambient;漫反射,Diffuse;镜面,Specular。

环境光照,Ambient Lighting,即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),为了模拟这个,使用一个环境光照常量,它永远会给物体一些颜色。
漫反射光照,Diffuse Lighting,模拟光源对物体的方向性影响,Directional Impact;它是冯氏光照模型中视觉上最显著的分量;物体的某一部分越是正对着光源,它就会越亮。
镜面光照,Specular Lighting,模拟有光泽物体上面出现的亮点;镜面光照的颜色相比于物体的颜色会更倾向于光的颜色。

把环境光照添加到场景:用光的颜色乘以一个很小的常量环境因子,再乘以物体的颜色,然后将最终结果作为片段的颜色。示例代码:
    float ambientStrength = 0.1;
    vec3 ambient = ambientStrength * lightColor;
    vec3 result = ambient * objectColor;
    FragColor = vec4(result, 1.0);

漫反射光照
    为了测量光线和片段的角度,使用一个叫做法向量(Normal Vector)的东西,它是垂直于片段表面的一个向量。两个向量之间的角度通过点乘计算出来。
    计算漫反射光照需要:
        法向量:一个垂直于顶点表面的向量;
        定向的光线:作为光源的位置与片段的位置之间向量差的方向向量。

镜面光照也是依据光的方向向量和物体的法向量来决定的,但是它也依赖于观察方向。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值