Unity中的基础光照
从宏观上来说,渲染包含了两大部分:决定一个像素的可见性,决定这个像素上的光照计算
我们是如何看到这个世界的
通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象。
- ·首先,光线从光源(light source)中被发射出来。
- ·然后,光线和场景中的一些物体相交:一些光线被物体吸收了,而另一些光线被散射到其他方向。
- ·最后,摄像机吸收了一些光,产生了一张图像。
光源
在光学里,我们使用辐照度(irradiance)来量化光
因为辐照度是和照射到物体表面时光线之间的距离d/cosθ成反比的,因此辐照度就和cosθ成正比。cosθ可以使用光源方向l和表面法线n的点积来得到。这就是使用点积来计算辐照度的由来。
吸收和散射
光线由光源发射出来后,就会与一些物体相交。通常,相交的结果有两个:散射(scattering)和吸收(absorption)。
散射只改变光线的方向,但不改变光线的密度和颜色。而吸收只改变光线的密度和颜色,但不改变光线的方向。光线在物体表面经过散射后,有两种方向:一种将会散射到物体内部,这种现象被称为折射(refraction)或透射(transmission);另一种将会散射到外部,这种现象被称为反射(reflection)。对于不透明物体,折射进入物体内部的光线还会继续与内部的颗粒进行相交,其中一些光线最后会重新发射出物体表面,而另一些则被物体吸收。那些从物体表面重新发射出的光线将具有和入射光线不同的方向分布和颜色