【问题标题】:Count number of rasterized fragments计算光栅化片段的数量
【发布时间】:2012-03-10 22:19:24
【问题描述】:

抽象问题:我需要计算给定几何体在渲染/光栅化时生成的片段,无论这些片段是否通过了深度/模板测试。

背景:我目前正在尝试为我正在进行的项目实施镜头光晕。我正在使用 OpenGL 遮挡查询来计算从光源可见的像素,方法是在光源位置渲染屏幕对齐的四边形,同时激活查询以确定光源的可见片段的数量。该四边形具有给定的widthheight,因此它最初应该在距相机一些 距离处具有width * height 像素。之后,我想调整实际眩光效果的 alpha 值以考虑光源的遮挡部分。为此,我需要知道组装原始渲染四边形的片段总数。

那么,有谁知道我如何确定给定渲染操作生成的片段数量?

【问题讨论】:

  • 这对我来说没有多大意义。您说您已经使用遮挡查询来计算像素,但随后询问如何确定如何找出渲染了多少像素?
  • 我正在尝试获取被遮挡查询测试的像素数量,包括那些没有通过深度/模板测试的像素,但似乎只用一个是不可能的通过。

标签: c++ opengl


【解决方案1】:

您已经被建议遮挡查询,这正是这项工作的正确工具。你的斗争在于你试图一次完成所有事情的误解。

将您的问题拆分为多个子任务。在您的情况下,您应该为几何体的遮挡查询(没有着色器、纹理等)添加一个渲染通道,并禁用所有片段丢弃测试。

请注意,遮挡查询会计算刚刚通过所有测试的所有片段,但如果深度和颜色写入被禁用,也会计算它们。因此,您可以绘制遮挡查询四边形,而不会使其可见或损坏深度缓冲区。

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多