2012-01-16 87 views
1

当我使用的模版缓冲绘图操作渲染目标的过程中,有没有什么办法调试什么模板缓存包含在我能看到?我现在正在寻找几个小时,或者我总是错过了一些明显的东西,我找不到找到这张表的方法。(C#)4.0 XNA访问模版缓冲

有在XNA 3.1的GraphicsDevice属性DepthStencilBuffer,但它不存在了。现在我们知道,如果我们希望当我们创建渲染目标,是使用模板缓存,但我怎么能访问模板缓存后,让我可以看到,如果我在模板缓冲值,我期待?

欢呼 卢卡斯

回答

0

我会离开这个评论正常,但我没有足够的代表为它尚未...

我会建议通过这个页面阅读:http://blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx

肖恩哈格里夫斯解释说,模板缓冲的用途是微不足道的,可以使用产生类似性能的其他技术来实现。

一个该网页上的报价:

问:

对于深度缓冲,怎么样的情况,如:

1)深度前传+ normalss颜色通道

2)其他东西...(例如AO)

3)使用之前的深度缓冲区和新的渲染目标渲染固体对象。 (也读的东西像AO)

4)再次使用深度缓冲等待另一次(如体积雾)

答:

新的API的最大的限制是,你不能共享跨多个不同的rendertargets的单个深度缓冲区。然而,通常可以仅仅通过安排事情,所以要重用深度缓冲任何时候,你都绘制到同一渲染目标来实现这种渲染架构(在Windows上,反正)。

例如,使用深度/模板剔除光线量的经典延迟着色优化是完全可行的:您只需要安排缓冲区操作,以便这些光线累积过程完成到绑定在索引上的同一个rendertarget在初始场景渲染期间#0。