1. 为什么要背面消隐
通过之前的DEMO,能够知道如果在渲染过程中多边形越多,那么要不处理的内容就越多,就越消费计算机的处理能力。对于物体来说,一般我们只看到它面对我们的面,可能不是正对着,但是肯定有很多面是完全背对我们的,我们就应该在渲染时跳过他们。这将减少大约一半的三角形渲染量。原理其实很简单,就是向量与平面的关系,这个原理我在参数化直线与平面的那篇文章中特意推导了整个来龙去脉。
我喜欢在2D俯视图中来分析问题,如下图:
2. 注意事项一:背面测试的是“视线与面朝向”的关系,而与相机朝向不直接相关
在刚接触背面消隐时,我以为是拿相机的朝向向量和面的法向量来求夹角,虽然也可以消除一些面,但发现是不对的,因为存在下面的这种情况:
上面红色的面和绿色的面的法向量是相同的,但是一个面是正面,一个面是背面。因为相机朝向是固定的,所以对于这种情况,相机朝向与面法向量求夹角而得出的结论是不正确的。
在图中可以发现,如果我们任取面上一点,与相机的位置做连线,那么这种情况就可