计算机图形学(二)输出图元_10_多边形填充区_6_前向面与后向面

前向面与后向面
       由于我们通常处理包围对象内部的多边形表面,因此需要区分每个面的两侧。向着对象内部的 一侧称为后向面(back face ),可见或朝外的一侧称为前向面(front face )判定一个点相对于多边 形前向面和后向面的空间位置是许多图形算法的基本任务,例如在判定对象可见性中。每一多边形 包含在将空间分为两区域的一个无限平面中。任何一个不在平面上且可看见对象前向面的点称为在 平面的前方(或外部),因此该点在对象的外部。任何可看见多边形后向面的点均称为在平面后方 (或内部)。位于所有多边形所在平面后方(内部)的点是对象的内点。必须注意,这种内/外分类 是与包含多边形的平面联系在一起的,而前面的使用环绕数或奇偶规则的内/外测试则是针对某些 二维边界的内部。
       平面方程可用于判定空间一点与对象的多边形面片的相对位置关系。如果任意点(x, y, z)不在 参数为A, B, C, D的平面上,则

       因此我们可以按Ax+By+Cz+D的符号来判定一个点是否在该面中多边形的后方或前方:

       这些不等式测试在右手笛卡儿系统中有效,其中参数A, B,C,D使用从前往后观察平面时严格按 逆时针顺序排列的坐标位置中选出的坐标值计算而得。例如,图3.52中任意一个在着色多边形外部 (前方)的点满足不等式x-1>0,而任意内部(后方)的点的x坐标小于1。
计算机图形学(二)输出图元_10_多边形填充区_6_前向面与后向面_第1张图片

       多边形表面的空间方向可用其所在平面的法向量(normal vector)来描述,如图3.53所示。该 表面法向量与平面垂直且以(A,B,C)为其笛卡儿坐标分量,其中A, B和C是用方程(3.62)计 算而得的平面系数。法向量从平面的内部指向外部,即从多边形的后方指向前方。
计算机图形学(二)输出图元_10_多边形填充区_6_前向面与后向面_第2张图片

    作为计算多边形法向量即平面参数的例子,我们选择图3.52中单位立方体着色面的三个顶点: 这些顶点按从外向其中心方向观察立方体时的逆时针方向排序。按此顺序选择的顶点坐标用于 方程(3.62)获得平面系数:A=1、B = 0、C = 0、D = -1。因此,该平面的法向量是N=(1,0,0). 即x轴的正方向。这就是说,法向量从立方体内部指向外部且与平面x = 1垂直。
    法向量的分量也可通过向量叉积计算获得。假定我们有一个凸多边形面片和一个右手坐标系, 我们再选择任意三个顶点:V1、V2和V3,满足从对象外部向内观察时的逆时针排序。形成两个向 量,一个从V1到V2而第二个从V1到V3,按向量叉积计算N:

这样生成了平面参数A, B和C,接下来将这些值和一个多边形顶点坐标代人平面方程( 3.59)可 解出D。使用法向量N和平面上任一点P可给出向量形式的平面方程:

    对于凸多边形来说,我们也可以使用两个连续的边向量的叉积来获得平面参数。 对于凹多边形,我们可以选择这样的三个顶点,使用于叉积计算的两条边的夹角小于180度。否则,我们取叉积 的反向量来获得正确的多边形法向量方向。



你可能感兴趣的:(多边形填充区,前向面与后向面)