光照模型的计算方式总结(1.Diffuse分量2.Specular分量 Phong model和Blinn-Phong model (Or Blinn))

本文深入探讨了计算机图形学中的光照模型,重点介绍了漫反射(Diffuse)和镜面反射(Specular)分量的计算方法,并对比了Phong模型与Blinn-Phong模型的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

光照模型的计算方式总结(1.Diffuse分量2.Specular分量 Phong model和Blinn-Phong model (Or Blinn)),

在计算机图形学以及游戏开发过程中光照是必不可少的,研究光照模型就离不开漫反射分量、镜面反射分量、环境光分量等,在这里

以opengl里的光照计算方式Blinn-Phong model (Or Blinn)来探讨光照模型的计算方法

总结如下:

补充知识:

镜面的反射向量求法在光照中非常重要,在这里给出他的求解如图:

R=I-2(I.N)N


证明:

设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有

R = 2P - I              (1)

现在问题变成了如何求取P,设入射点0到P与N的交点的向量为S,那么有

P = I + S               (2)

现在问题变成了如何求取向量S,向量S即向量-N(注意,这里是-N,因为S和N的方向相反。)在向量N上的投影,根据向量的投影公式有

因为N是单位向量,简化一下得到

将S代入公式(2),再将P代入公式(1)得到


1.Diffuse分量

Lambertian Reflection模型是针对diffuse分量的, diffuse假定接收到得光的密度跟观察者的位置无关, 它正比于lights diffuse intensity 和material's diffuse reflection 系数, 同时还正比于光线与表面法线的夹角.

                 Diffuse        计算公式为:          

 

Lambert的历史:

          This is known as Lambertian Reflection. 'Lambert's cosine law' states that the brightness of a diffusely radiating plane surface is proportional to the cosine of the angle formed by the line of sight and the normal to the surface. This was more than 200 years ago (Johann Heinrich Lambert, 1728-1777)!


2.Specular分量

1. Phong model

phong model表明specular分量正比于反射光与观察点向量的夹角的余弦值(cosine).

                

               L向量: 光源--->顶点.     N: 法向量      Eye向量: 顶点--->Eye.   R: 反射光

       当Eye与R的夹角越大,specular越衰减, 衰减系数由shininess控制。shininess越大,衰减越快。

       

 

2. Blinn-Phong model (Or Blinn)

该模型是Phong的简化版, 它是基于Half-Vector的,Half-Vector是入射光与Eye的中间向量。如下图:

                             

          Specular的计算如下:

3.OpenGL光照计算公式总结

在光的传播过程中会出现衰减,在OpenGL中有两种情况:1.点光源;2.椎体光.  最终落到顶点时光的各个分量为:

               LAmbient  = 衰减系数 * 椎体光影响 * 初始的ambient;

               LDiffuse    = 衰减系数 * 椎体光影响 * 初始的diffuse;

       LSpecular = 衰减系数 * 椎体光影响 * 初始的specular;

然后和材质进行计算公式为:

        顶点Color =  全局环境光*全局环境光材质  + 各个光源的作用{ Ma * LAmbient) + DFactor * Md * LDiffuse) + SFactor * Ms * LSpecular)}

将上面的等式代入得:

        顶点Color = 全局环境光*全局环境光材质 +

        各个光源的作用{衰减系数 * 椎体光影响 * (Ma * 初始的ambient + DFactor * Md * 初始的diffuse + SFactor * Ms * 初始的specular)}

 

中间涉及到的变量的计算


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值