在OpenGL中启用快速Z清除
为了分层渲染,我发现自己需要在每帧中清除多次 在21世纪初,由于当时带宽有限,清除Z实际上相当昂贵。因此AMD提出了类似的技术,包括深度缓冲区的快速Z-clear操作 在这个时代,我可以假设所有制造商都实现了深度值的快速清除,并且默认启用了它吗 或者是有一个OpenGL扩展我应该知道,或设置我需要切换到某个地方在OpenGL中启用快速Z清除,opengl,depth-buffer,opengl-extensions,Opengl,Depth Buffer,Opengl Extensions,为了分层渲染,我发现自己需要在每帧中清除多次 在21世纪初,由于当时带宽有限,清除Z实际上相当昂贵。因此AMD提出了类似的技术,包括深度缓冲区的快速Z-clear操作 在这个时代,我可以假设所有制造商都实现了深度值的快速清除,并且默认启用了它吗 或者是有一个OpenGL扩展我应该知道,或设置我需要切换到某个地方 顺便说一句,我的目标是OpenGL Core Profile 3.2。如果不知道您要做什么,我无法确定您的问题的最佳解决方案。但是,有一个核心概要文件函数可以提供您想要的内容: 通过将深
顺便说一句,我的目标是OpenGL Core Profile 3.2。如果不知道您要做什么,我无法确定您的问题的最佳解决方案。但是,有一个核心概要文件函数可以提供您想要的内容:
通过将深度设置为最大值,可以有效地清除深度缓冲区。现在,您可能希望在同样具有最大深度的碎片上绘制<代码>glDepthFunc(GL_LEQUAL)在这种情况下很有用
GL_LESS
是初始默认值。如果不知道您正在尝试做什么,我无法确定您的问题的最佳解决方案。但是,有一个核心概要文件函数可以提供您想要的内容:
通过将深度设置为最大值,可以有效地清除深度缓冲区。现在,您可能希望在同样具有最大深度的碎片上绘制<代码>glDepthFunc(GL_LEQUAL)在这种情况下很有用GL_LESS
是初始默认值
float far_value = 1.0f;
glClearBufferfv(GL_DEPTH, 0, & far_value);