Shader学习笔记四之基础光照

模拟光照环境生成图像过程

光线从光源发出,光线与场景内的物体相交:然后一些光线被物体吸收,另一些光线被散射到其他方向,最后摄像机吸收了一些光,然后生成图像;

什么是光源

通常把光源当作一个没有体积的点,用l表示他的方向,在光学里我们常用辐照度来量化光。对于平行光来说,他的辐射度可通过计算垂直于l的单位面积上单位时间内穿过的能量来得到。
在计算光照模型时,需要知道物体表面的辐射度。

吸收与散射

光源与物体相交的结果有两个:散射和吸收。散射只改变光线方向,不改变光线密度和颜色,而吸收相反。光线在物体表面的散射又分为折射(或说透射)和反射两种。光照模型中,高光反射属性表示物体表面的反射,漫反射属性表示物体表面的折射,吸收和散射。出射度用来描述出射光线的数量和方向。辐射度与出射度的比值也就是材质的漫反射和高光属性。

着色

着色指的是,根据材质属性.光源信息.使用一个等式计算沿某个观察方向的出射度的过程,把这个等式称为光照模型

BRDF光照模型

光照模型分为
1.标准的光照模型
2.BRDF光照模型
3.基于物理的BRDF光照模型
BRDF光照模型当给定模型表面一个点时,BRDF包含了对该点外观的完整描述。在给出入射光线和辐射度时,BRDF可以给出在某个出射方向上的光照能量分布。由于它是理想和简化后的模型,它并不能真实反映物体和光线的交互,故作为经验模型。 此时不得不说一句计算机图形学第一定律:如果它看起来是对的,那么它就是对的。

标准的光照模型

标准光照模型的基本方法将进入到摄像机内的光线分为4部分:

1.自发光(emissive):描述当给定一个方向时,一个表面本身会向该方向发射多少辐射量。

2.高光反射(specular):描述当光线从光源照射到模型表面时,该表面会在完全镜面反射方向上辐射出多少辐射量。

3.漫反射(diffuse):描述当光线从光源照射到模型表面时,该表面会向每个方向散射多少辐射量。

4.环境光(ambient):描述其他所有的间接光照。

环境光

间接光照是指,光线通常会在多个物体之间进行反射,最后进入摄像机,我们通常使用环境光部分来模拟间接光照。
c环境光=g环境光
//环境光等于游戏的环境光

自发光

自发光是指光线光线没有直接由光源发射到摄像机,不需要经过任何物体的反射。标准的光照模型使用自发光来计算这个部分的贡献度
c自发光=m自发光
//自发光等于材质的自发光

漫反射

漫反射是投射在粗糙表面的光向各个方向反射的现象,关于漫反射光照模型,常见的是兰伯特计算公式为
(c-light·M-diffuse)max(0,n-l)
光照颜色漫反射颜色max(0,法线量*光照方向)

发布了7 篇原创文章 · 获赞 0 · 访问量 176

猜你喜欢

转载自blog.csdn.net/f_TaoYuHu/article/details/104745965