Abtract问题:我需要计算渲染/栅格化时生成的给定几何体的碎片,无论这些碎片是否通过了深度/模板测试。
背景:我正在尝试为我正在开展的项目实施镜头光晕。我正在使用OpenGL遮挡查询来计算从光源可见的像素,方法是在光源位置处对齐四边形屏幕,同时使查询处于活动状态以确定光源的可见碎片数量。此四元组具有给定的width
和height
,因此它最初应该距离相机一些距离处width * height
像素。之后,我想调整实际眩光效果的alpha值,以解释光源的遮挡部分。为此,我需要知道组装最初渲染的四边形的碎片总量。
那么,有没有人知道如何确定从给定渲染操作生成的片段数量?
答案 0 :(得分:2)
您已经建议使用遮挡查询,这是此作业的正确工具。你的斗争就在于误以为你只是在一次通过中尝试做所有事情。
将您的问题拆分为多个子任务。在您的情况下,您应该为几何的遮挡查询添加一个渲染过程(没有着色器,纹理等),并禁用所有碎片丢弃测试。
请注意,遮挡查询会计算刚刚通过所有测试的所有片段,但如果禁用深度和颜色写入,则会对它们进行计数。因此,您可以绘制遮挡查询四元组,而不会使深度缓冲区变得可见或损坏。