三种光照模型的计算

镜面反射(Specular)

镜面反射又称高光,是指由光源直接经物体表面反射入眼睛的光线。镜面反射使物体看上去有光泽,粗糙表面因反射率不高,所以缺乏此效果。镜面反射的强度取决于物体,光源和观察者。




n为表面法向量
v 指向观察者
l 指向光源
r 为"镜像"向量,即l对n镜像的结果。
θ rv的夹角,由r·v给出。描述镜像的方位性。
以上所有向量均为单位向量。


下列等式给出给出镜面反射的Phong模型。



mgls为材料的光泽度,也称为Phong指数。它控制"亮斑"的范围,小的mgls带来大而平滑的光滑的光斑,大的值带来小而亮的光斑。
mspec为材料的反射颜色,控制光斑的强度。强反射面有,有较大的mspec值,粗糙些的表面则有较小的mspec值。
Sspec是光源的镜面反射颜色,控制光本身的色彩和强度。常与光的漫反射颜色Sdiff




由n是变化的,导致r需要频繁计算,在观察者离物体的距离远大于物体的尺寸的情况下,可以尽量避免计算r值。
下面介绍一下Blinn模型


Blinn模型通过计算一个稍微不同的角度来避免计算,使用的是h,表示v,l的中间向量,由标准化的v,l的平均值求得,计算如下:


Blinn模型和Phong模型类似,注意θ表示是nh的夹角。



漫反射光照(Diffuse)

漫反射是物体粗糙表面散开的随机方向上的反射。
漫反射光照服从Lambert法则:反射光强正比于法向量与光线夹角的余弦,用点乘来计算余弦,公式如下:


n为表面法向量,l为指向光源的单位向量,mdiff为材料的散射色,即多数人认同的物体颜色,Sdiff为光源散射色,一般和光源镜面色Sspec


环境光照(Ambient)

镜面反射和漫反射都是刻画光源经物体反射后直接进入眼中的光线。对于光线经常经过多次反射进入眼睛的反射,称为环境光。例如,黑暗的厨房打开冰箱,整个房间会亮些,尽管箱门(或身体)挡住了大部分直线光。环境光取决于材质和全局环境光,下面的公式计算环境光:


mamb为材质的环境光分量。它总是等于漫反射分量。gamb为整个场景的环境光照值。



光照衰弱(Attenuation)

从物理学上来说,光照强度的衰弱为光源的光照强度除以当前距离的平方。公式如下:

其中是I0距离光源d=1时的光照强度。

但对于3D图形编程来说,一般不使用这公式,选择下面的公式较多,而且便于控制效果。

其中a0a1a2衰减参数。通过调整这个三个参数的大小可以实现不同的光强衰减的效果。


结合光照模型,会有如下公式:


其中D为漫反射的光强,S为高光的光强,k为相应的参数的系数

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值