漫谈光照模型

光照模型是计算机图形学中用于模拟真实环境物体表面颜色的重要工具。本文介绍了Lambert模型,其简单地描述了反射光强度与入射光和法线的点乘关系;Phong模型,它引入了高光反射,使物体表面能显示高光斑;以及Blinn-Phong模型,通过法线与半程向量的点乘提高计算效率。这些模型都是局部光照模型,不考虑全局光照的影响。对于全局光照,文章提到了漫反射、高光反射、环境漫反射和环境反射的概念。最后,文章简述了BRDF(双向反射率分布方程)在描述反射和散射中的作用。

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

        简单点说,光照模型就是用一些数学公式模拟在真实环境下物体表面在光照下的颜色。这些模型包括但不限于之前讲过的Phong,Blinn-Phong(零基础学习OpenGL--光照和高级光照篇中介绍,二者区别主要在于镜面光照,Blinn-Phong测量的是法线与半程向量之间的夹角,而Phong模型测量的是视线与反射向量间的夹角。Blinn-Phong的镜面光分量会比冯氏模型更锐利一些)。

 

       光照模型:

       1.Lambert模型:近似的描述某点的反射光强度为入射光和法线点乘再乘以材质颜色和入射光颜色。(这里简单的认为所有的反射光都是从入射点发出的并且不考虑吸收和折射,但实际不是,对塑料、大理石等适用)。

       Lambert:反射光的强度与表面法线和入射光线的余弦值成正比。

       公式:c(diffuse) = c(light) * m(diffuse) * Max(0, n · l);     // c表示颜色,m表示材质颜色,n表示法线向量,l表示入射光线单位向量。取max是防止物体被从后面来的光照亮。

        2.Phong模型:环境光+所有光照的lambert反射+反射光和视线点乘后的alpha次幂。考虑高光让物体能够表现出高光斑,当视线和反射光线重合时高光最强。

        公式:c(specular) = (c(light) * m(specular))max(0, v · r)的m(gloss)次幂。//m(gloss)光泽度,光泽度越大,亮点越小。v是视线,r是反射光线。

        3.Blinn-Phong模型:将Phong中高光部分的反射光r点乘视线v替换为:法线n和半程向量h的点乘。其中,半程向量指光线和视线的中间向量。这样效率会提高,另一方面零基础学习OpenGL高级光照中也有讲述Phong的弊端。(之前很多年一直用这个,但是高光比较突兀)

        Phong,Blinn-Phong都是局部光照模型,即不考虑渲染物体周围的环境。全局光照模型不仅考虑了光源直接照射的影响(直接光照),还考虑了物体所处环境反射光产生的间接光照。因此全局关照包含:漫反射(直接光照)、高光反射(直接光照)、环境漫反射、环境反射。(漫反射:物体内部大量微粒子表面的反射或者说内部的散射)

物理渲染:

        我们以前学过光通过介质后分出反射光线和折射光线,这种是理想情况,即交界是无限大的,完全平的平面。在这种情况下,光线不会在很多方向上发生散射,而是会分成两束光,反射光和折射光。反射角等于入射角,但是折射角则取决于物质的折射率。

        反射光:当物体表面的凹凸尺度大于光的波长时,物体表面好比有大量的细微的平滑表面,物体表面看起来的效果就是很多有着不同方向的表面点的反射效果的叠加。表面越粗糙,平面的方向差异性就越大,看到的就越模糊。

        折射光:金属对可见光有很高的吸收系数,折射的光被迅速吸收,而非金属当折射光进入物质时,这些光会继续在里面的子物质上继续交互,大多数情况下这些光在物质内的散射可以从里面再反射出来。

BRDF(双向反射率分布方程):描述了反射(高光)和散射(漫反射)。

          给定入射光线,BRDF给出离开入射点的所有方向上反射光线和散射光线的分布。也可以理解为,给定观察方向,给出这个视线方向上所有入射光线的分布。详细见:本人博客零基础学习渲染--PBR(基于物理渲染)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值