OpenGL光照

光照模型主要由三个分量组成:环境光,漫反射,镜面反射。
环境光:
环境光与物体颜色混合后,片元颜色=环境光颜色*物体表面颜色
注:片元颜色是4维向量,颜色是三维向量,所有要将结果转为4维向量
漫反射:
在这里插入图片描述
计算漫反射需要得知:片元的法向量和光线的方向向量。
光线的方向向量=光源的坐标-顶点的坐标
由法向量点乘光线方向向量并将其标准化,得到图中夹角的余弦cosθ
漫反射=光源的颜色×cosθ
加入漫反射后:片元颜色=(环境光+漫反射)*物体顶点颜色
镜面反射
在这里插入图片描述
镜面反射实现的是物体表面出现光斑的效果
反射颜色=cosθ·光源颜色
此处的θ是光源照到材质表面后折射的方向与摄像机方向的夹角
我们可以使用reflect来得出折射后的向量
摄像机方向向量=摄像机坐标-顶点坐标
cosθ=dot(摄像机方向向量,折射后的方向向量)
镜面反射的光= cosθ 乘 光源颜色

最终的颜色=(环境光+漫反射光+镜面反射光)·光源颜色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值