计算光栅化片段的数量
Posted
技术标签:
【中文标题】计算光栅化片段的数量【英文标题】:Count number of rasterized fragments 【发布时间】:2012-03-10 22:19:24 【问题描述】:抽象问题:我需要计算给定几何体在渲染/光栅化时生成的片段,无论这些片段是否通过了深度/模板测试。
背景:我目前正在尝试为我正在进行的项目实施镜头光晕。我正在使用 OpenGL 遮挡查询来计算从光源可见的像素,方法是在光源位置渲染屏幕对齐的四边形,同时激活查询以确定光源的可见片段的数量。该四边形具有给定的width
和height
,因此它最初应该在距相机一些 距离处具有width * height
像素。之后,我想调整实际眩光效果的 alpha 值以考虑光源的遮挡部分。为此,我需要知道组装原始渲染四边形的片段总数。
那么,有谁知道我如何确定给定渲染操作生成的片段数量?
【问题讨论】:
这对我来说没有多大意义。您说您已经使用遮挡查询来计算像素,但随后询问如何确定如何找出渲染了多少像素? 我正在尝试获取被遮挡查询测试的像素数量,包括那些没有通过深度/模板测试的像素,但似乎只用一个是不可能的通过。 【参考方案1】:您已经被建议遮挡查询,这正是这项工作的正确工具。你的斗争在于你试图一次完成所有事情的误解。
将您的问题拆分为多个子任务。在您的情况下,您应该为几何体的遮挡查询(没有着色器、纹理等)添加一个渲染通道,并禁用所有片段丢弃测试。
请注意,遮挡查询会计算刚刚通过所有测试的所有片段,但如果深度和颜色写入被禁用,也会计算它们。因此,您可以绘制遮挡查询四边形,而不会使其可见或损坏深度缓冲区。
【讨论】:
以上是关于计算光栅化片段的数量的主要内容,如果未能解决你的问题,请参考以下文章