带有镶嵌的渲染多边形的数量

时间:2014-05-10 04:47:12

标签: c++ opengl polygon opengl-4 tessellation

我想知道在打开硬件细分时是否有办法获取渲染到窗口的有效多边形(或顶点)的数量。由于自适应曲面细分,多边形数量从一帧变为下一帧。

我正在使用OpenGL 4.2并渲染网格调用glDrawElements。我正在使用完整的程序着色器(顶点,曲面细分控制,曲面细分评估,几何和碎片)。

我在数组中有初始的多边形数,但在执行细分阶段后,此数字不再有效。

我尝试使用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 个答案:

答案 0 :(得分:0)

对于给定的LOD,每个顶点生成的基元数相同。如果您想计算为每个曲面细分生成的#三角形,您可以自己进行计算,其中包含一组方程式:

GLSL Tessellation shader number of triangles/faces?