最近在看Unity文档,在学习漫反射Shader中看到Lambertian的概念。
于是查了一些相关资料,并记录如下:
Lambertian 是指一种表面反射性质,用于描述表面在各个方向上均匀散射光线的行为。这个概念源于物理学家 Johann Heinrich Lambert,他在1760年提出了相关的理论。Lambertian表面是一种理想的漫反射表面,它遵循 朗伯余弦定律(Lambert's Cosine Law)。
朗伯余弦定律
根据这个定律,反射光的强度与光线入射角的余弦成正比。具体来说,一个Lambertian表面会在所有观察方向上表现出相同的亮度,而不论观察角度如何。换句话说,从不同角度看,表面的亮度一致。
主要特点:
- 均匀的漫反射:光线到达表面后被均匀地反射到所有方向,而不依赖于光线入射的方向。
- 视觉效果:一个Lambertian表面看起来从任何方向的亮度都是相同的,例如,纸张、哑光涂层、未经打磨的墙壁等表面都可以近似为Lambertian表面。
- 数学描述:在计算机图形学和光学中,Lambertian反射模型通常用于描述漫反射表面。反射的光强度 III 与光线入射角 θ\thetaθ 之间的关系可以用以下公式表示: I=I0cos(θ)I = I_0 \cos(\theta)I=I0cos(θ) 其中,I0I_0I0 是入射光的强度,θ\thetaθ 是入射光线与表面法线之间的角度。
应用领域:
- 计算机图形学:Lambertian模型常用于模拟漫反射表面的光照效果,如在 光照模型 中用于渲染表面纹理和阴影。
- 光学和摄影:用于模拟一些材料的光学特性,例如哑光或散射材料的反射行为。
- 遥感与天文学:在卫星图像分析和行星科学中,Lambertian反射模型用于模拟地表或行星表面的反射行为。
总结得出,Lambertian反射描述了一种理想的均匀漫反射现象,适用于描述那些光线被随机散射的表面。