求反射向量

转载 2015年07月08日 10:30:23

在图形学中,计算光照模型时,经常需要求取反射向量,一般的shader函数库都提供计算反射向量的方法,下面介绍一下如何手动计算反射向量。

给定入射光线向量I和平面法向量N,求反射向量R,如下图。为了方便计算,这里假定I和N都是单位向量(模为1,编程时可先将I和N单位化)

方法一

设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有

R = 2P - I              (1)

现在问题变成了如何求取P,设入射点0到P与N的交点的向量为S,那么有

P = I + S               (2)

现在问题变成了如何求取向量S,向量S即向量-N(注意,这里是-N,因为S和N的方向相反。)在向量N上的投影,根据向量的投影公式有

因为N是单位向量,简化一下得到

将S代入公式(2),再将P代入公式(1)得到

方法二

将R平移一下,与向量N的延长线相交。

由于入射角和反射角相等,且I和R的长度也相等,所以三角形ION是等腰三角形。故有

ON = 2S

所以有

R = I + 2S

而S是-I在N上的投影,所以有

由于N是单位向量,简化一下得到

所以

貌似方法二更直观些。

作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

[图形学] 光线追踪中的数学方法

reference: 《Mathematics for 3D Game Programming and Computer Graphics》         光线追踪这一术语是指跟随光束来决定它们和...
  • ZJU_fish1996
  • ZJU_fish1996
  • 2016年08月22日 17:33
  • 2411

计算机图形学:任意点相对于任意平面的反射矩阵

转载请注明出处http://hi.baidu.com/wsliulao5/blog/item/bca731dde0a26cdc8d10291f.html,谢谢。 问题:已知空间中任意平面n*(x...
  • duotianshi86
  • duotianshi86
  • 2014年06月06日 11:40
  • 1528

图像变换——向前映射和向后映射

一,图像变换与映射 我们在进行图像处理时常常需要对图像进行变换。比如对图像进行缩放,旋转,平移等。图像变换的本质是将像素点的坐标通过某一种函数关系,映射到另外的位置。假设变换前图像为I(x,y),变...
  • glorydream2015
  • glorydream2015
  • 2015年04月04日 16:17
  • 2811

OpenGL 求反射光线 反射向量

  • 2011年04月28日 23:06
  • 7KB
  • 下载

求矩阵特征向量

  • 2014年05月28日 22:44
  • 540KB
  • 下载

vba求特征值与特征向量

  • 2014年08月14日 22:45
  • 3KB
  • 下载

求矩阵特征值和特征向量

  • 2014年07月15日 07:55
  • 208KB
  • 下载

支持向量机求最优分类面的一个实例解答

  • 2014年03月18日 19:32
  • 170KB
  • 下载

乘幂法求矩阵的特征值及特征向量程序

  • 2009年05月07日 22:14
  • 319B
  • 下载

求矩阵的特征值与特征向量

  • 2010年03月12日 16:06
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求反射向量
举报原因:
原因补充:

(最多只允许输入30个字)