我想绘制两个单独的对象,以便在绘制第二个对象时执行查询。绘图代码如下所示:
glDrawElements(GL_TRIANGLES,...); // draw first object
glBeginQuery(GL_SAMPLES_PASSED, queries[0]);
glDrawElements(GL_TRIANGLES,...); // draw second object
glEndQuery(GL_SAMPLES_PASSED);
glGetQueryObjectiv(queries[0], GL_QUERY_RESULT, &result);
return restult;
大多数OpenGL教程都不会超出单个glDraw*()
命令。据我所知this site,我需要两个顶点数组对象,但该网站没有解释如何为单独的对象设置缓冲区数据。为简单起见,我只想说我希望每个对象都是一个三角形:
Triangle1:
vertex1: -0.5, 0.0, 0.0
vertex2: -0.5, 0.5, 0.0
vertex3: 0.0, 0.0, 0.0
Triangle2:
vertex1: 0.0, 0.0, 0.0
vertex2: 0.5, 0.5, 0.0
vertex3: 0.5, 0.0, 0.0
有人可以告诉我如何设置顶点数组对象,顶点缓冲对象和元素数组缓冲区来在C ++和OpenGL 3.2中执行此查询吗?
答案 0 :(得分:0)
您绘制几何图形的代码错过了两个基本步骤:
允许绘制多个网格的那些。
答案 1 :(得分:-1)
一些建议:
您可以绘制一个三角形的集合,这些三角形彼此没有连接,并且在视觉上看起来像是两个对象。
您还可以创建两个单独的OpenGL上下文。要绘制的每个对象的一个上下文。绘制每个对象时,将关联的上下文设为“当前”。上下文并进行绘制调用。