📜  计算机图形背面去除算法

📅  最后修改于: 2020-12-21 09:28:57             🧑  作者: Mango

背面去除算法

它仅用于绘制将面对相机的表面。背面的对象不可见。如果使用平行投影,此方法将从场景中删除50%的多边形。如果使用透视投影,则将去除50%以上的不可见区域。该对象距离投影中心更近,后面的多边形数量将被删除。

它适用于单个对象。它不考虑各种对象之间的交互。尽管许多多边形更靠近查看者,但它们的正面遮挡了许多多边形,因此要删除此类正面,可以使用背面去除算法。

进行投影时,从投影中心通过观察屏幕到目标物体的任何投影器射线都在两个点处发光,一个是可见的前表面,另一个是不可见的后表面。

该算法对另一种算法进行预处理。背面算法可以用几何表示。每个多边形都有几个顶点。所有顶点均按顺时针编号。生成法线M 1是任意两个连续边缘向量的叉积。 M 1表示垂直于面并从多面体表面向外指向的向量

N 1 =(v 2 -v 1 )(v 3 -v 2 )
如果N 1.P≥0可见
N 1 .P <0不可见

优点

  • 这是一种简单直接的方法。
  • 它减少了数据库的大小,因为不需要在数据库中存储所有表面,只存储可见的表面。

背面去除算法

对场景中的所有多边形重复上述步骤。

  • 对所有多边形进行顺时针编号,即v 1 v 2 v 3 ….. v z
  • 计算法向向量,即N 1 N 1 =(v 2 -v 1 )*(v 3 -v 2 )
  • 考虑投影仪P,它是任何顶点的投影计算点积Dot = NP
  • 测试并绘制表面是否可见。如果Dot≥0,则表面可见,否则不可见