深度测试初始

2020-07-13  本文已影响0人  简单的孤寂

如上图所示。为什么会出现这种情况?因为虽然我们使用了正背面剔除去去掉黑色部分,但是当“甜甜圈”在旋转的时候 在处于如图所示的位置的时候。这个时候系统不能清除的分析出 那个是正面,那个是背面。因此就会出现被啃的情况。这种情况改怎么解决呢。就需要我们对其做深度测试。

深度测试:

首先我们要了解什么是深度。深度就是以物体坐标系为准。当观察者的位置在物体正面的时候。这个时候Z值越大 物体离我们越近。也可以理解为 Z的绝对值越大。物体离我们越近。简单来说 就是物体离观察者的距离。如果距离小物体离我们越近。如果距离越大离我们越远。

而什么是深度测试呢。深度测试就是在绘制物体的时候系统会拿着新的深度值去和 深度缓存区储存的深度值去做比较。如果新的深度值大于缓存区的深度值。那么这个新的像素点就不去绘制。如果新的深度值小于深度缓存区的值那就去绘制这个像素点。这就叫深度测试。

多边形偏移:

为什么要使用多边形偏移。如果开启了深度测试在我们对图层进行渲染的时候,如果2个图层的间隔特别近 已经大于了深度缓存区的精度。这时候系统不能判断这两个图层的位置。这个时候就会出现Z-Fighting(Z冲突,闪烁) 而这个时候 就需要我们开启多边形偏移来进行调整。而多边形偏移就是让两个图层中间的间隔变大一点 让系统能更好的分别出 图层的先后位置

上一篇下一篇

猜你喜欢

热点阅读