在OpenGL中绘制大量像素

Mat*_*tRS 6 c++ opengl graphics

我一直在研究一些声音处理代码,现在我正在做一些可视化.我完成了谱图光谱图,但我如何绘制它太慢了.

我正在使用OpenGL进行2D绘图,这使得搜索帮助变得更加困难.我也是OpenGL的新手,所以我不知道事情的标准方式.

我将每个像素的r,g,b值存储在一个大矩阵中.每次我得到一个小的声音片段,我处理它并将其转换为像素列.一切都转移到左边1像素,新线放在最后.

每次重绘时,我都会循环设置颜色并单独绘制每个像素,这似乎是一种非常低效的方法.

有一个更好的方法吗?是否有一些方法可以简单地移动一堆像素?

小智 4

有很多方法可以提高您的绘图速度。最简单的方法是分配一个 RGB 纹理,您将使用屏幕对齐的纹理四边形来绘制该纹理。每次您想要绘制一条新线时,您可以使用 glTexSubImage2d 加载纹理的新子集,然后重新绘制四边形。