【问题标题】:OpenGL - how to draw an array of lines fast, given in a special form?OpenGL - 如何以特殊形式快速绘制线条数组?
【发布时间】:2011-12-14 20:35:28
【问题描述】:

我有一个二维数组,格式如下:

lines[MAX_LINES][MAX_POINT_INDICES];

例如,它可能看起来像:

lines[1] = {2, 3, 0, 0, 0}; //lines from 1 to 2, from 1 to 3, 0=END
lines[2] = {3, 0, 0, 0, 0}; //lines from 2 to 3, 0=END
lines[3] = {4, 5, 6, 7, 0}; //lines from 3 to 4, 3->5, 3->6, 3->7, 0 means END
...

因此,每条线都定义为三角形扇形。现在,我想使用 OpenGL 绘制所有这些线,但是我找不到任何快速的方法来做到这一点,除了按顺序遍历每一行。有什么建议吗?

【问题讨论】:

  • 顺序迭代数组以获取点是一种解决方案。是什么让你觉得它不够快?
  • @loxxy 我想也许 OpenGL 支持这种格式。我花费了许多时钟来准备要与 glDrawElements(GL_LINES,... 一起使用的每一行的行
  • 我不认为有一个很好的方法来绘制这个东西而不迭代它。如果你想用很少的调用来绘制它,你可能必须将你的数据结构更改为可以直接作为 GL_ELEMENT_ARRAY_BUFFER 提供的东西。

标签: c++ c opengl graphics graph


【解决方案1】:

就像 loxxy 所说的那样,迭代您布置的数组是最快的方法。迭代并不慢,这就是在 OpenGL 中绘制事物的方式 - 线性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多