0

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

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

我的优化方法如下。

  1. 获取点的源数组并使用第一个屏幕区域的缩放因子来减少它
  2. 第二个区域相同,但比例因子更大
  3. 在两个 FBO 中渲染两个数组
  4. 使用 FBO 作为纹理(提供平移图片的能力)
  5. 更新图片时,我只重新渲染更改的区域。

建议加快速度的方法,因为我当前的实现运行速度非常慢。

4

1 回答 1

1

如果您没有足够的硬件以足够的速度运行它,您将几乎无法对其进行大量优化。即使您在不同的线程中渲染到 FBO,然后组合结果,您的瓶颈可能仍然存在。即使对于现代 GPU,6700 万个数据点也不容小觑。

尽量不要进行不必要的更新,只更新更改的内容,只渲染更新和可见的内容,尽量减少组件的大小,例如,如果可能,使用更短的数据类型。

于 2013-04-05T14:36:21.010 回答