opengl光照 Blinn-Phone模型与实现

本文详细介绍了OpenGL中的光照模型,特别是Blinn-Phong模型。通过环境光、漫反射和镜面反射的计算,解释了如何模拟物体表面的光照效果。文中还提供了在OpenGL中实现该模型的代码片段,展示了光照计算在fragment shader中的应用。
摘要由CSDN通过智能技术生成

这里介绍的方法,考察从光源发出的光线,这些光线与物体表面相互作用进行建模,这个方法和光线追踪类似,但是只考虑光源与表面之间的一次相互作用。

Phone 模型

phone模型如图所示,使用图示的l,n,r,v四个向量来计算任意点p得颜色值:
这里写图片描述
l是光源入射的方向反向
n是p点得法线方向
r是反射光线方向
v是观察者所在方向,主要考察光源与材质的三种相互作用
环境光反射,漫反射和镜面反射

环境光
物体表面所有处的环境光强度相同

漫反射
一个理想的漫反射表面把光线向所有方向均匀散射,因此,这样的表面在所有观察者看来亮度都一样,不过反射光线的强度既依赖于材质,也依赖于光源相对表面的位置。一个物体的表面是粗糙的话,就会发生漫反射,理想的漫反射表面是如此粗糙,以至于各个方向的反射光强度都相等,称为lambert表面,计算公式如下
Colorlambert=Lcos(n,l)
L是入射光强和漫反射系数的乘积,n,l是两个向量,含义之前已介绍

镜面反射

使用了环境光和漫反射后,物体表面已经有明暗变化,但是缺少光泽,图像中缺少的是高光,高光的颜色通常与环境光与满反射的颜色不同,就是光源的颜色,而且,所有得反射光线都在一个方向上,观察者看到的光线强度取决于理想反射器光线反射方向r和观察者方向v的夹角 ϕ
Colorspec=L</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值