Подсчитать количество растеризованных фрагментов - PullRequest
1 голос
/ 11 марта 2012

Устранить проблему: Мне нужно подсчитать фрагменты данной геометрии, сгенерированной во время ее рендеринга / растеризации, независимо от того, прошли эти фрагменты тест глубины / трафарета или нет.

Контекст: В настоящее время я пытаюсь реализовать засветку объектива для проекта, над которым я работаю. Я использую окклюзионные запросы OpenGL для подсчета пикселей, видимых от источника света, путем рендеринга выровненного по экрану квадратора в положении источника света при активном запросе для определения количества видимых фрагментов источника света. Этот квад имеет данные width и height, поэтому изначально он должен иметь width * height пикселей на некотором расстоянии от камеры. После этого я хочу отрегулировать альфа-значение фактического эффекта вспышки, чтобы учесть перекрытые части источника света. Для этого мне нужно знать общее количество фрагментов, которые собрали изначально отрендеренный квад.

Итак, кто-нибудь знает, как я могу определить количество фрагментов, сгенерированных из данной операции рендеринга?

1 Ответ

2 голосов
/ 11 марта 2012

Вам уже был предложен окклюзионный запрос, который является именно тем инструментом, который подходит для этой работы.Ваша борьба заключается в заблуждении, что вы пытаетесь сделать все за один проход.

Разделите вашу проблему на несколько подзадач.В вашем случае вы должны добавить один проход рендеринга только для запроса окклюзии геометрии (без шейдеров, текстур и т. Д.), Когда все тесты отбрасывания фрагментов отключены.

Обратите внимание, что запрос окклюзии подсчитывает все проходящие фрагментывсе тесты, но также подсчитывает их, если записи глубины и цвета отключены.Таким образом, вы можете нарисовать четырехугольник запроса окклюзии, чтобы он не стал видимым или поврежден буфер глубины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...