基本问题:使用 OpenGL,可以使着色器程序使用单个 glDrawArrays 调用(使用 GL_POINTS)在每个顶点绘制不同的点精灵吗?
更多信息:我有一个可以显示数千个 2D 轨迹的 OpenGL 桌面程序(在 WPF 应用程序中使用 SharpGL)。部分地,轨迹是一系列时间戳点,并且部分点根据可变 CurrentTime 周围的时间跨度显示。每个点的其他属性决定了该点的颜色。每个轨道绑定它的顶点数组、颜色数组和时间戳数组,并调用 glDrawArrays 来渲染它的点。着色器程序完成其余的工作。
我最近开始使用点精灵为不同类型的轨道赋予不同的符号来表示它们的点。我想根据每个点的其他属性在轨道上给出不同的符号不同的点。我想为每个轨道调用一个 glDrawArrays 来做到这一点。所以想法是一个精灵数组可以解决问题(对每个顶点应用不同的精灵)。这可能吗?我错过了更好的解决方案吗?