自学内容网 自学内容网

OpenGL Phong光照模型-镜面反射-反射方向推导

反射方向计算公式如下:

其中R表示反射方向,L表示入射方向,N表示法向(单位向量)。

该公式推导如下:

1、首先入射方向、反射方向向量可分成两个分量分别是:

        与法向N平行分量Ln、垂直于法向N分量Lnt,可如下图所示(针对于入射方向):

2、依据上图,可以推导出入射向量在法线向量方向的分量为:Ln =(L·N)*N,注意:由于法线向量N为单位向量,其单位向量的模为1,故L·N = |L||N|cosa = |L|cosa ,相当于L·N的点乘结果为L在N上的垂直投影,后续乘以法线向量代表Ln的方向,该方向为法向量的方向;进一步地,可以推导出L在垂直法线向量的分量:Lnt = L-Ln = L - (L·N)*N;

3、由于镜面反射结果,入射向量L与法线向量N的夹角(a1)等于反射向量R与法线向量N的夹角(a2),另外由于L的入射方向是向目标物体表面的,故上述推导转成反射向量的分量,需要对L进行取反,故:R = -Lnt + Ln = -[(-L)-(-L·N)*N] +(-L·N)*N= L -2(L·N)*N;

 故此,公式推导如上所述,其中用到了一个向量的基本加减推导,也即A+B = C


原文地址:https://blog.csdn.net/yunnGuitu/article/details/143726840

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!