深度缓冲
由于画家算法的缺陷,我们常常在3D渲染中碰到错位的情况,因此引入深度缓冲来解决这样的问题。通过深度缓冲来存放场景中点距离照相机的远近,以此来判断当前像素点应该渲染出的颜色。这样渲染器就可以顺序的去处理场景。
算法思路
- 遍历每一个三角形
- 遍历三角形中的样本
- 如果当前深度值小于之前的值
- 更新样本颜色
- 更新深度缓存
- 否则什么都不做
- 遍历三角形中的样本
实现
1 | // 遍历包围盒 |
由于画家算法的缺陷,我们常常在3D渲染中碰到错位的情况,因此引入深度缓冲来解决这样的问题。通过深度缓冲来存放场景中点距离照相机的远近,以此来判断当前像素点应该渲染出的颜色。这样渲染器就可以顺序的去处理场景。
1 | // 遍历包围盒 |