从零实现3D图像引擎:(14)背面消隐的三大陷阱

1. 为什么要背面消隐

通过之前的DEMO,能够知道如果在渲染过程中多边形越多,那么要不处理的内容就越多,就越消费计算机的处理能力。对于物体来说,一般我们只看到它面对我们的面,可能不是正对着,但是肯定有很多面是完全背对我们的,我们就应该在渲染时跳过他们。这将减少大约一半的三角形渲染量。原理其实很简单,就是向量与平面的关系,这个原理我在参数化直线与平面的那篇文章中特意推导了整个来龙去脉。

我喜欢在2D俯视图中来分析问题,如下图:

面的可见性

 

 

 

2. 注意事项一:背面测试的是“视线与面朝向”的关系,而与相机朝向不直接相关

在刚接触背面消隐时,我以为是拿相机的朝向向量和面的法向量来求夹角,虽然也可以消除一些面,但发现是不对的,因为存在下面的这种情况:

 背面测试与相机朝向不直接相关

上面红色的面和绿色的面的法向量是相同的,但是一个面是正面,一个面是背面。因为相机朝向是固定的,所以对于这种情况,相机朝向与面法向量求夹角而得出的结论是不正确的。

 

在图中可以发现,如果我们任取面上一点,与相机的位置做连线,那么这种情况就可

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值