- 136
- 0
- 约1.16万字
- 约 63页
- 2018-11-22 发布于河南
- 举报
2010射线跟踪课件3
一、射线跟踪基本概念 二、直射波、反射波、绕射波 2.3 实际源、虚拟源的有效区域 2.4 场强计算 三、射线的跟踪 3.5 具有任意3-D多面体面的射线求交算法 3.7 几何模型和形态模型 8.5 射线跟踪加速技术 由于实际环境中可视区域内反射面数量有限,可以设定一个适当数值M,当面距源点距离的排序号大于M之后,可认为以后的面都将被遮挡。这个设定对射线追踪精度的影响很小,但对于复杂环境,可以省去大量的运算。 遮挡测试后,在进行射线追踪时考虑的面就只考虑那些没有被遮挡的面,从而进一步缩小了需要考虑的反射面的范围。 射线跟踪算法最核心的运算是求交。在早期的射线跟踪算法中,75%~95%的计算用于求交。所以,设计高效率的求交算法很有必要。另外,有的时候,射线与物体相距甚远,根本不必具体计算它们的交点,只要判断出它们是不可能相交的,就不用再计算交点。另外,当物体表面本身是 3 次以上曲面时可采用包围盒或包围球的方法,减少不必要的求交计算。 任意形状多面体面的算法可以分为两步: (1)射线—平面求交计算。首先,确定包含该多面体面的平面,计算射线—平面的交点。如果平面和射线是平行的话,就没有交点,因此也就没有射线—多面体面之间的求交。否则,计算射线—平面的交点。 (2)测试确定某点是在平面中某多边形里面还是外面。已知射线—平面的交点,可以确定该点是在多边形内还是在多边形外部。如果该点在多边形内部,就有射线—多面体面相交(见图 3.10(a));否则,就没有射线—多面体面相交(见图 3.10(b))。 图 3.10射线—多面体面相交 图 3.11 画出了上述步骤的流程图。 图 3.11 射线—多面体面求交算法的方案 1.平面多面体面的确定 平面的一般方程 其中 A、B 、C 为常数,且不同时为零。 如果平面的法向矢量不知道的话,可以由该平面上的 3 个非共线的点 (x1 , y1, z1) 、(x2, y2, z2) 、 (x3, y3, z3) 确定平面的方程: 可得 式中 是 的逆矩阵。或可表示为 当求得平面方程的 A 、B 、C 后,该平面的法向矢量就是矢量{A ,B, C },归一化后可得到单位法向矢量 ,即 如果已知该平面的法向矢量(见附录 8A),那么系数 A、B 和 C 就可求得,即等于通过原点的法向矢量在 3 个坐标上的分量。再由平面上的任意一点 (x0, y0, z0) 可得到 D 的值: 平面上的该点可以是任意一个多面体面顶点。这样,表示该平面的方程就得到。 附录 8A 任意多面体面的法向矢量 利用下面表示式可以得到任意多面体面单位法向矢量 : 式中 N 是顶点数目, 是多面体面顶点的矢径,A 是多面体面的面积。通常,多面体面的面积 A 是未知的,所以为了得到 ,可先计算括号内的表示式,再对所得到的矢量进行归一化。 2.射线-平面相交 假设射线(有向线段)的起点和终点矢径分别为 和 。那么,该射线上的任意一点矢径 为 如果 的话,射线就平行于该平面,可作不相交处理。若满足 则射线在该平面上,因此和该平面有无限多个交点。 已知平面 的单位法向矢量为 ,该平面离坐标系原点的距离 d 为 和 图 3.12 若射线和平面相交的话,则满足 如果 的话,射线和平面相交,其交点就在射线两端点之间,交点的矢径给出为 如果 的话,平面就和该射线或包含该射线的直线有一交点。由于 (见图 3.12),代入(8.26)式可求得交点处的射线参数 是 图 3.12 若射线和平面相交的话,则满足 图3.13 的流程图画出了上述计算步骤详细的过程。 图 3.13 射线和平面求交算法的方案 3.多边形内部/外部的点 有许多方法可用来求解某点是在多边形内部还是在多边形外部。这里介绍的方法是基于所谓的“约当曲线”理论,它对任意形状多边形都是有效的。 已知位于某平面上的多边形及点 。在该平面上,射线 从点 处以任意方向射出,计算该射线和多边形相交的边数,然后可以通过利用下面法则来确定点 是在多边形内还是在多边形外:如果相交的边 图 3.14 在任意多面体面的内部或外部的点 数是奇数的话,那么
原创力文档

文档评论(0)