计算机图形学——学习记录三(光线相交)

文章内容是对《3D计算机图形学》(第三版)一书的学习记录。

光线和计算机图形学

大多数情况下,将光描述为一种无限细的光束-一束光线。一条光线可以由两点或者是一个点加一个向量来定义。

光线几何

与光线相关最常见的计算就是相交测试,也就是观察一条光线是否与一个物体相交,并确定相交的位置。最通用的技术就是将场景中的物体限制在一个限定体之内,这个限定体一般是球。
首先先测试光线和球的相交,球包围着物体,如果光线和球不相交,那么它也不会和物体相交。

相交———光线与球

光线和球之间的相交计算如下:
如果光线的两端分别是(x1,y1,z1)和(x2,y2,z3),则第一步是光线参数化:
在这里插入图片描述
其中,0<t<1。
中心在(l,m,n)半径为r的球由下式给出:
在这里插入图片描述
将上面的x,y,z带入可得
在这里插入图片描述
其中:
在这里插入图片描述
那个便可以用二次方程的判定条件来判定该方程是否有解,也就是光线和球是否有相交点。如果b2-4ac<0则不相交。如果说等于0,光线和球相切,如果大于零会有两个相交点。
在这里插入图片描述
同时,相交也可以获得表面的法向量,同时也可以计算得到反射光线和折射光线。
在这里插入图片描述

相交——光线和凸多边形

这里只介绍简单步骤,与球相交的思想是相似的。
如果说物体是由一组多边形表示,并且是凸多边形,直接的方法是逐个对每个多边形与光线的关系进行测试。

  1. 得到一个包含多边形的平面方程;
  2. 检查该平面和光线的相交;
  3. 检查相交是否包含在多边形中。

相交——光线和包围盒

包围盒可以是一组相互平行的平面对构成的,平面对之间的夹角可以是任意的,这里只考虑矩形的包围框。
测试一条光线是否和包围盒相交:
依次测试每一对平行平面,计算沿着光线到第一平面的距离和到第二平面的距离,比较过程中保留到第一平面的距离中的较大值,以及到第二平面距离的较小值。如果到第一平面的较大值要比到第二平面的较小值大,那么光线不能和包围盒相交。如下图:
在这里插入图片描述
注意:这里是指两对平面之间的关系,而不是一对平面的两个平面。

反射和折射

反射

每当一条光线和一个表面相交时,均会产生一个折射和反射。
反射方向可以由一个单位向量表示:
在这里插入图片描述
L,N代表入射光线方向的单位向量。

折射

光纤通过一个部分或者完全透明的光线时由于光在不同介质中的速度变化而产生折射,折射角和入射角之间存在一定的关系。
公式如下:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值