首页 > 解决方案 > 如果您需要深度缓冲区或使用 WebGL 中的 DEPTH_BUFFER_BIT 标志进行 2D 和/或视差

问题描述

想知道WebGL 中的视差,在我看来至少涉及到不同层的深度。

想知道这是否与深度缓冲区和/或使用DEPTH_BUFFER_BIT. 我有一个在初始阶段正在开发的 2D 游戏,我想知道这里是否曾经使用过深度缓冲区以及用于什么目的,以及我是否应该使用该标志。或者,如果深度缓冲区仅真正用于 3D 内容。

我所说的视差是指背景移动比前景慢的横向滚动游戏。

标签: graphics2dwebgldepth-buffer

解决方案


通常不需要,2D 视差游戏不需要深度缓冲区,但这完全取决于您。如果您的前景是 100% 不透明的(没有半透明区域),那么使用深度缓冲区可能会更快。您将先绘制前景层,然后再绘制背景层。使用深度缓冲区意味着被前景像素覆盖的背景像素将不会被绘制。另一方面,如果您的某些前景像素是部分透明的,那么您将被迫向后拉到前面以获得正确的透明度,在这种情况下深度缓冲区无济于事。


推荐阅读