CAD图形渲染之深度(Depth)

大家好,今天我们来聊聊图形渲染中的深度。深度,咋一看,蛮抽象的一个概念,但实际却处处存在于我们生活中。比如现在很火的无人驾驶激光雷达的定位,深度相机感知,以及各种传感器深度测量等,都与深度相关。同样的,在图形渲染中,深度的应用也很广。首先,我们看看图形渲染中一个常见的现象,在我们显示CAD模型时,很多时候需要同时显示面和边。这个时候,我们经常会发现边的显示是断断续续的,显示不完整。如下图所示:

图片

       这种显示效果是很糟糕的,我们称这种现象叫着Z-Fighting。Z-Fighting顾名思义就是指边和面的z坐标之间互相冲突了,造成这种现象的主要原因是因为面和边离得很近,两者的深度值很接近,正常的深度剔除没办法保证绘制的前后顺序。接下来我们就来讲讲为什么会这样,以及在开发时,怎样避免这种问题。

       1. 深度值计算

        在讲深度值之前,我们先回顾一下深度值是怎么使用的。上一篇我们在讲透明渲染时也提到过。OpenGL渲染时有个深度缓冲区,在进行绘制每个对象时,对于光栅化后的对象像素,计算每个像素的深度,大于缓冲区深度的像素不绘制,小于深度缓冲区的像素才进行绘制,并把当前深度值写入到缓冲区中。

        世界坐标系中的点,经过模型变换,视图变换、投影变换等最终转换成NDC坐标中的点,NDC坐标系中点的z值就是我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值