引言
- Unity光源种类:点光源、方向光、聚光灯、区域光。
- 如何量化光线:辐照度,也叫光强,表示各种频率辐射的总量,Unity中的方向光可以看做真实环境的太阳光,太阳光的光线可以看做是平行光。然而太阳光与物体之间有个夹角,如下图可以得到光线之间距离,记住:光强与物体表面光线之间距离成反比。
- 光的散射与吸收:通常光线照射在物体上会发生两个结果,吸收和散射,光线照射物体表面时,一部分射入物体内部被吸收,一部分发生两种方向的散射,一个在物体表面发生反射,一个经过物体内部折射到物体外部。
其中,高光反射(specular)表示物体表面反射,漫反射(diffuse)表示光线的折射、吸收以及又被散射出物体表面。 - 真实世界中,光照分为直接光照和间接光照。
标准光照模型
光照模型有不同种类,光照模型可以由四部分组成:
- 自发光(emissive):给定一个方向,一个表面本身会想该方向发射多少辐射量。
C e m i s s i v e = m e m i s s i v e C_{emissive}=m_{emissive} Cemissive=memissive
其中, M e m i s s i v e M_{emissive} Memissive为材质自发光颜色。 - 高光反射(specular):完全镜面反射的辐射量。高光反射符合Phong提出的基于经验的高光反射模型。
C s p e c u l a r = ( c l i g h t ⋅ m s p e c u l a r ) m a x ( 0 , v ⃗ ⋅ r ⃗ ) m C_{specular}=(c_{light} ⋅m_{specular})max(0,\vec{v} ⋅\vec{r})^m Cspecular=(clight⋅mspecular)max(0,v⋅r)m
其中, c l i g h t c_{light} clight:入射光线的颜色。 m s p e c u l a r m_{specular} mspecular:材质的高光反射颜色, v ⃗ \vec{v} v:视角方向(指向摄像机), r ⃗ \vec{r} r :光线反射方向,m为材质的光泽度,也被称为反光度。 - 漫反射(diffuse):物体散射出的辐射量。漫反射符合兰伯特定律(Lambert’s Law)。光的漫反射特性是在粗糙的物体表面向各个方向散射等强度的反射光,反射光线的强度与表面法线和光源方向之间的夹角成正比。
C d i f f u s e = ( c l i g h t ⋅ m d i f f u s e ) m a x ( 0 , n ⃗ ⋅ l ⃗ ) C_{diffuse}=(c_{light} ⋅m_{diffuse})max(0,\vec{n} ⋅\vec{l}) Cdiffuse=(clight⋅mdiffuse)max(0,n⋅l)
其中, c l i g h t c_{light} clight:入射光线的颜色。 m d i f f u s e m_{diffuse} mdiffuse:材质的漫反射颜色, n ⃗ \vec{n} n:表面法线$ \vec{l}$:光源方向(指向光源)。 - 环境光(ambient):其他的间接光。
C a m b i e n t = g a m b i e n t C_{ambient}=g_{ambient} Cambient=gambient