冯氏光照模型
Notes
- 冯氏光照模型
主要由三部分构成:
环境光照:世界上通常有的一些光亮
漫反射光照:模拟光源对物体的方向性影响
镜面光照:模拟有光泽物体上面的亮点
人眼看到物体的颜色为:光颜色*物体颜色
- 冯氏光照模型表达式
I p = k a i a + ∑ m ∈ l i g h t s ( k d ( L m → ⋅ N → ) i m , d + k s ( R m → ⋅ V → ) α i m , s ) {
{I}_{p}}={
{k}_{a}}{
{i}_{a}}+\sum\limits_{m\in lights}{({
{k}_{d}}(\overrightarrow{
{
{L}_{m}}}\centerdot \overrightarrow{N}){
{i}_{m,d}}+{
{k}_{s}}{
{(\overrightarrow{
{
{R}_{m}}}\centerdot \overrightarrow{V})}^{\alpha }}{
{i}_{m,s}})} Ip=kaia+m∈lights∑(kd(Lm⋅N)im,d+ks(Rm⋅V)αim,s)
环境光:
k a {
{k}_{a}} ka: 环境光常数
i a {
{i}_{a}} ia:环境光强度
漫反射光:
k d {
{k}_{d}} kd:漫反射光常数
L m → \overrightarrow{
{
{L}_{m}}} Lm: 光源-物体方向
N → \overrightarrow{N} N: 物体法线方向
i m , d {
{i}_{m,d}} im,d: 漫反射光强度
镜面光:
k s {
{k}_{s}} ks:镜面光常数
R m → \overrightarrow{
{
{R}_{m}}} Rm: 物体-光源反射方向
V → \overrightarrow{V} V: 视角-物体视野方向
α ^{\alpha } α: 高光反光度
i m , s {
{i}_{m,s}} im,s: 镜面光强度
- 法线矩阵
在片段着色器中世界坐标系下计算冯氏光照模型,而法线方向在顶点着色器中在物体坐标下,因此需要转换到世界坐标下即用Model矩阵作用后。而非等比缩放就会发生法线不垂直于物体,因此为法线再作用一个矩阵,使其能够垂直于物体,该矩阵即为法线矩阵。
N ˋ → ⋅ T ˋ → = ( G ⋅ N ) ⋅ ( M T ) = 0 \overrightarrow{ { {N}^{\grave{\ }}}}\centerdot \overrightarrow{ { {T}^{\grave{\ }}}}=(G\centerdot N)\centerdot (MT)=0 N ˋ⋅T