我一直在研究一些声音处理代码,现在我正在做一些可视化。我完成了 spectrogram谱图,但我绘制它的方式太慢了。
我正在使用 OpenGL 进行 2D 绘图,这使得寻求帮助变得更加困难。另外,我对 OpenGL 很陌生,所以我不知道标准的完成方式。
我将每个像素的 r、g、b 值存储在一个大矩阵中。 每次我得到一个小的声音片段时,我都会对其进行处理并将其转换为像素列。一切都向左移动 1 个像素,新行放在末尾。
每次重绘时,我都会循环设置颜色并单独绘制每个像素,这似乎是一种非常低效的方法。
有更好的方法吗?有什么方法可以简单地将一堆像素移过来吗?
最佳答案
提高绘图速度的方法有很多。 最简单的方法是分配一个 RGB 纹理,您将使用屏幕对齐的纹理四边形绘制它。 每次您想绘制一条新线时,您都可以使用 glTexSubImage2d 加载纹理的新子集,然后重新绘制四边形。
关于c++ - 在 OpenGL 中绘制大量像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4111485/