2

有人成功使用 OpenGLES2.0 着色器 (GLSL) 进行音频合成吗?

我已经在我的 iOS 应用程序中使用 vDSP 来加速音频,它提供了一个来自 C 代码的简单矢量指令集。vDSP 的主要问题是您必须编写相当于面向向量的汇编语言,因为每个样本的主循环被推入每个原始操作(向量加法、向量乘法)。将表达式编译到这些序列中是着色器语言为您自动化的本质。OpenCL 在 iOS 中不公开。有趣的是,GLSL 是在运行时编译的,这意味着如果大部分声音引擎都可以在 GLSL 中,那么用户可以做出不平凡的补丁贡献。

4

1 回答 1

2

尽管 iOS GPU 着色器可以相对“快速”,但从 GPU 加载和恢复数据(纹理、处理的像素等)的路径足够慢,足以抵消使用 GLSL 带来的任何当前着色器计算效率。

对于实时合成,GPU 像素卸载路径的延迟远大于仅使用 CPU 合成来馈送 RemoteIO 的最佳音频响应延迟。例如,显示帧速率(GPU 流水线锁定的)比最佳 RemoteIO 回调速率慢。在这些短音频缓冲区中没有足够的并行性可以利用。

于 2012-06-21T18:49:38.780 回答