光照模型

ADS光照模型是一种最常见的光照模型,ADS代表环境光(Ambient)、漫射光(Diffuse)和镜面光(Specular)。它遵循一个简单的原则,即物体有3种材质属性,环境光反射、漫反射和镜面反射,这些属性对应分配的颜色值,更高的数值代表更高的反射量。光源也有这3种相同的属性,同样是分配的颜色值,表示光源的亮度。最终的顶点颜色值就是光照和材质这3个属性相互影响的总和。

  • 环境光并不来自任何特定的方向,它来自某个光源,但光线在房间或场景中四处反射,没有方向可言。由环境光所照射的物体在所有方向的表面都市均匀照亮的。
  • 漫射光是光源的定向分量,其值有表面法线和光照向量的点乘积(漫反射强度)进行缩放。
  • 镜面光和散射光一样,具有很强的方向性,但其反射角度很锐利,只沿一个特定的方向反射。根据观察者位置的不同,镜面光甚至有可能看不到。镜面光还受反光度(shininess)的次幂影响,反光度数值越大,得到镜面反射的高亮区越小。

除此之外,还可向光照模型添加衰减项或基于距离的光强弱化项。 1 / ( constant + linear*distance + quadratic*distance^2 ) ,可将其视为漫反射项和镜面项的乘数因子(环境光则不包含衰减效果)。

以上模型在着色计算时需要表面(或顶点)法向量,Gouraud着色对表面(三角形)进行颜色插值,而Phong着色并不在顶点之间进行颜色值插值,而是在顶点之间进行表面法线插值


可选择的光照方案
光照方案顶点着色行为光栅器插值计算片元着色器行为
逐顶点光照模型颜色值应用颜色值
逐片元构建过程法线和EC位置光照模型



除了ADS光照模型之外,OpenGL仅支持固定光源、有向光源和聚光灯。

  • 固定光源,可视为较常见的光照类型,各光源包含位置、颜色以及其它数据值。固定光源主要考察顶点与光源之间的方向,可简单地执行向量减法,并在顶点着色器中定义out向量已将其传递至片远着色器。
  • 有向光源,除了光线方向不变以外,与固定光源并无区别,大大简化了光照中的光线方向计算,相关数据信息存储与内建uniform结构uLightSource[i]分量中。
  • 聚光灯,包含方向、截止角以及衰减项等数据规范。当使用聚光灯时,需要计算光线方向以及光线和顶点之间的夹角,通过与光源的截止角进行比较并使用该光源的衰减项,可计算顶点处的光线值。该过程要求顶点着色器向片元着色器传递光源位置和光源方向等数据,片元着色器需计算光源方向与光源-顶点向量之间的夹角,进而判断是否在颜色计算中使用当前光线。







具体的计算参考:

Phong reflection model

Phong和Blinn-Phong光照模型


References:

《图形着色器——理论与实践》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值