opengl是否执行基于z-index的Visibiltyalgorithm?

OpenGL是否执行基于z-index的Visibiltyalgorithm? 或者我们必须编写我们自己的algorithm。 主要是指z-bufferalgorithm。 它是内置的吗?

是的,OpenGL(或实际上是OpenGL用于访问的GPU硬件)已经内置了对通过z缓冲区进行深度testing的支持。 要启用它,只需确保OpenGL上下文在创建时包含深度缓冲区(详细信息取决于您使用的操作系统或工具包)。 然后,在绘制任何几何体之前,将这些调用插入到渲染函数中:

glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glClearDepth(1.0f); 

并将GL_DEPTH_BUFFER_BIT添加到您的glClear调用。 这应该是所有你需要做的,以启用z缓冲。 有关更多信息,请参阅本教程 。