Количество визуализированных полигонов с тесселяцией

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

Я использую OpenGL 4.2 и отрисовываю сетку, вызывая glDrawElements. Я использую полные программные шейдеры (Vertex, управление тесселяцией, оценка тесселяции, геометрия и фрагментация).

У меня есть начальное количество полигонов в массиве, но после выполнения этапа тесселяции это число больше не действует.

Я пытался использовать glGetQuery (GL_PRIMITIVES_GENERATED), но он всегда возвращает 0.

glGenQueries(1, query).
glBeginQuery(GL_PRIMITIVES_GENERATED, query).
//Draw stuff
glEndQuery(GL_PRIMITIVES_GENERATED).
glGetQueryObjectuiv(query, GL_QUERY_RESULT_AVAILABLE, &value).

1

Решение

Количество сгенерированных примитивов одинаково для каждой вершины для данного LOD. Если вы хотите вычислить # треугольников, сгенерированных для каждой тесселяции, вы можете сделать вычисления самостоятельно, есть ряд уравнений по адресу:

GLSL тесселяция шейдеров число треугольников / граней?

0

Другие решения


По вопросам рекламы [email protected]