如何有效地显示大量的移动点

时间:2013-04-05 05:31:17

标签: performance opengl graphics

我有大量的点,动态更新。在大多数情况下,只更新阵列的某些(相对较小的)部分。我的程序的目标是使用这些点构建和显示图片。

如果我直接从点构建图片,它的大小将是8192 x 8192像素。我相信优化将是减小阵列的大小。我的应用程序有两个屏幕区域(一个是放大/放大另一个)。此外,我需要在任一屏幕区域中平移此图片。

我的优化方法如下。

  1. 获取点源数组并使用第一个屏幕区域的缩放系数缩小它
  2. 第二个区域相同,但缩放系数较大
  3. 在两个FBO中渲染两个数组
  4. 使用FBO作为纹理(提供平移图片的功能)
  5. 更新图片时,我只重新渲染更改的区域。
  6. 建议加快速度的方法,因为我目前的实施速度非常慢。

1 个答案:

答案 0 :(得分:1)

如果您没有硬件以足够的速度运行它,您将无法对此进行大量优化。即使您在不同的线程中渲染FBO然后组合结果,您的瓶颈也可能会保留。即使对于现代GPU,也有6700万个数据点无法打喷嚏。

尽量不要不必要地更新,只更新改变的内容,仅渲染更新和可见的内容,尝试最小化组件的大小,例如:如果可能,请使用较短的数据类型。