1

我想知道当硬件镶嵌打开时是否有办法获得渲染到窗口的有效多边形(或顶点)的数量。由于自适应细分,多边形数量从一帧到下一帧发生变化。

我正在使用 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).
4

1 回答 1

0

对于给定的 LOD,每个顶点生成的图元数量相同。如果你想计算为每个镶嵌生成的#三角形,你可以自己计算,有一组方程在:

GLSL Tessellation 着色器的三角形/面数?

于 2018-05-11T18:51:17.540 回答