您的位置:首页 > 理论基础

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

2016-05-20 14:50 288 查看
前向面与后向面
       由于我们通常处理包围对象内部的多边形表面,因此需要区分每个面的两侧。向着对象内部的一侧称为后向面(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。



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



    作为计算多边形法向量即平面参数的例子,我们选择图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度。否则,我们取叉积的反向量来获得正确的多边形法向量方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息