Opengl 读取着色器中分层z缓冲区的级别

Opengl 读取着色器中分层z缓冲区的级别,opengl,graphics,shader,Opengl,Graphics,Shader,我知道如何读取着色器中z缓冲区的值,方法是使帧缓冲区具有深度纹理,然后对其进行渲染,并在以后正常使用该纹理 但是,出于我的目的,我需要能够读取更高级别的层次深度缓冲区表示的边界卷。我的理解是,现代深度缓冲区将使用分层z缓冲,所以有没有任何方法可以利用OpenGL 如果我不能,我有什么选择?我是否必须通过在CPU上分析深度纹理并将结果传递给我的着色器来创建层次结构?无法获取此信息。这些都是特定于硬件的,与深度缓冲区压缩和平铺的实际实现相关。至于你的第二个问题,这是你最不想做的事情——你应该考虑为这

我知道如何读取着色器中z缓冲区的值,方法是使帧缓冲区具有深度纹理,然后对其进行渲染,并在以后正常使用该纹理

但是,出于我的目的,我需要能够读取更高级别的层次深度缓冲区表示的边界卷。我的理解是,现代深度缓冲区将使用分层z缓冲,所以有没有任何方法可以利用OpenGL


如果我不能,我有什么选择?我是否必须通过在CPU上分析深度纹理并将结果传递给我的着色器来创建层次结构?

无法获取此信息。这些都是特定于硬件的,与深度缓冲区压缩和平铺的实际实现相关。至于你的第二个问题,这是你最不想做的事情——你应该考虑为这样的事情发送一个计算着色器任务。事实上,甚至有一篇文章讨论了如何使用mipmap来存储层次结构;这是针对HLSL的,但你明白了。通过启用mipmapping并访问着色器中的特定mip级别,是否不可能实现这一点。有一些关于如何做到这一点的信息。