【问题标题】:Special case for deferred rendering延迟渲染的特殊情况
【发布时间】:2018-11-19 17:48:36
【问题描述】:

我想知道以下是否可能:

我想分两次渲染一个场景。在第一遍检测实际可见的片段并且仅检测那些可见的片段(即,如果我只有一个被光栅化的三角形,则未包含在三角形光栅化中的任何像素都被视为不可见)。

然后我想在第二次通过时使用此信息来生成更复杂的图像。

这里的重点是,我不仅想从计算中省略被遮挡的片段,我还想省略任何不是光栅化结果的东西。

最终目标很简单,滥用这种着色器来渲染包含不透明和透明几何体的几何体。不透明几何体在第一遍中被认为不存在并被丢弃。

生成仅包含第一个可见透明片段的片段映射。

然后我在第二遍中使用此信息根据透明度生成光线追踪颜色。

目标是将碎片的数量减少到仅是实际追踪透明几何体所需的严格最小值。

【问题讨论】:

  • 实现它的方法很少。 1.您可以使用深度预通。这是最简单的方法,而且效果很好。 2. 您可以在光栅化之前使用计算着色器实际过滤几何图形。 DICE 讨论了这种方法。 3.您可以在第一次通过时将片段存储到链表中,稍后对其进行着色。如果没有其他信息,很难回答您的问题。
  • 这听起来是个好答案
  • 好的。我就这么写吧

标签: c++ opengl graphics glsl rendering


【解决方案1】:

实现它的方法很少。

  1. 您可以使用深度预通。这是最简单的方法,而且效果很好。
  2. 在栅格化几何之前,您可以使用计算着色器实际过滤几何。 DICE 讨论了这种方法。
  3. 您可以在第一次通过时将片段存储到链表中,稍后对其进行着色。

如果没有其他信息,很难回答您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2019-01-10
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多