2015-07-13 295 views
1

我正在编写一个包含大型数据集线图的应用程序。OpenGL绘制每n个顶点

我目前的策略是将每个通道的数据加载到一维顶点缓冲区中。

我再画组装我的缓冲区到顶点(这样我就可以重新使用我的多组数据的缓冲区之一)

这是相当不错的了,而且我能画几百时使用顶点着色器百万个数据点,而不会放慢太多。

为了进一步拉伸事物,我想减少实际绘制的点数,尽管简单的缩小(即绘制每n个点),因为没有太多的点绘制1000点,这些点全部由单个像素)

我能想到的一种方法是使用几何着色器,并且只发出每N个点,但我不确定这是否是最佳攻击计划。

这是推荐的方式吗?

回答

3

通过将所有顶点属性的步幅调整为正常值的N倍,可以更简单地完成此操作。

+0

我可以通过在绑定到vbo进行绘制之后再次调用glVertexAttribPointer来完成此操作。我已经尝试过增加1000倍,但没有看到FPS明显增加。 – Hugoagogo

+0

@Hugoagogo那么你的瓶颈是不是你画的点数(1亿对现代硬件来说并不是那么多) –

+0

我知道这是一个全新的问题,但是在哪里可以探索和开始。我还认为2gb的顶点数据越来越大。 – Hugoagogo