gpt4 book ai didi

c++ - 如何在 OpenGL 中绘制多个对象?

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:11 26 4
gpt4 key购买 nike

我想绘制两个单独的对象,以便在绘制第二个对象时可以执行查询。绘图代码看起来像这样:

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 中执行此查询?

最佳答案

您绘制几何图形的代码遗漏了两个基本步骤:

  1. 创建 GL_ARRAY_BUFFER(glGenBuffers、glBindBuffer、glBufferData)
  2. 绘图状态机与数组缓冲区的关联(调用 gl…指针函数)

它是那些允许绘制多个网格的。

关于c++ - 如何在 OpenGL 中绘制多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com