如何从片段着色器访问默认深度缓冲区?

时间:2013-12-04 22:04:36

标签: opengl directx deferred-rendering

我要将DirectX代码移植到OpenGL,需要选择合适的OpenGL版本。根据我在网上已经阅读的内容,我想做的事情甚至可能无法实现。

据我了解(虽然我可能错了),我可以使用默认深度缓冲区作为DirectX 10中的像素着色器资源[1]。这对于延迟照明很有用。在第一遍中,我将绘制网格,深度缓冲区将被填充。在后处理期间,我可以使用深度缓冲区信息。我不必使用多个渲染目标,并且可以通过这种方式节省一些内存和带宽。

在任何OpenGL版本中实现此目的的唯一方法是使用FBO和blitting [2,3]吗?

[1] http://bitwisegames.wordpress.com/2011/03/25/getting-direct-access-to-the-depthbuffer-in-directx10/

[2] http://www.gamedev.net/topic/578084-depth-buffer-and-deferred-rendering/

[3] http://www.opengl.org/discussion_boards/showthread.php/180782-Binding-to-a-different-depth-buffer

0 个答案:

没有答案