【问题标题】:(C#) XNA 4.0 StencilBuffer access(C#) XNA 4.0 StencilBuffer 访问
【发布时间】:2012-02-11 12:37:27
【问题描述】:

当我在绘制操作期间使用 StencilBuffer 来渲染目标时,有什么方法可以在调试时看到模板缓冲区包含的内容?我现在正在搜索几个小时,要么我遗漏了一些非常明显的东西,要么我找不到查找此表的方法。

在 XNA 3.1 的 GraphicsDevice 中有一个属性 DepthStencilBuffer,但它不再存在了。现在我们告诉我们是否要在创建渲染目标时使用模板缓冲区,是的,但是之后我如何访问模板缓冲区,以便我可以查看模板缓冲区中是否有我期望的值?

干杯 卢卡斯

【问题讨论】:

    标签: c# xna render target


    【解决方案1】:

    我通常会对此发表评论,但我还没有足够的代表...

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

    Shawn Hargreaves 解释说,模板缓冲区的用途微不足道,可以使用其他产生类似性能的技术来完成。

    来自该页面的引用之一:

    问题:

    对于深度缓冲区,如:

    1) 深度预通 + 法线到颜色通道

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

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

    4) 再次使用深度缓冲区进行另一遍(例如体积雾)

    答案:

    新 API 的最大限制是您不能在多个不同的渲染目标之间共享一个深度缓冲区。但是,通常可以通过安排一些事情来实现这种渲染架构(无论如何在 Windows 上),以便在任何时候想要重用深度缓冲区时,都可以绘制到同一个渲染目标。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2012-01-24
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多