2

音声合成に OpenGLES2.0 シェーダー (GLSL) をうまく使っている人はいますか?

私はすでに vDSP を使用して、C コードから単純なベクトル命令セットを提供する iOS アプリでオーディオを高速化しています。vDSP の主な問題は、サンプル単位のメイン ループが各プリミティブ演算 (ベクトル加算、ベクトル乗算) にプッシュ ダウンされるため、ベクトル指向のアセンブリ言語に相当するものを作成する必要があることです。式をこれらのシーケンスにコンパイルすることは、シェーダー言語が自動化する本質です。OpenCL は iOS では公開されていません。また、GLSL が実行時にコンパイルされることも興味深い点です。つまり、サウンド エンジンのほとんどが GLSL にある場合、ユーザーは重要なパッチを提供できることになります。

4

1 に答える 1

2

iOS の GPU シェーダーは比較的「高速」ですが、GPU からデータ (テクスチャ、処理されたピクセルなど) を読み込んで回復するパスは、GLSL を使用することによる現在のシェーダーの計算効率を相殺する以上に十分に遅いです。

リアルタイム合成の場合、GPU ピクセル アンロード パスのレイテンシは、RemoteIO にフィードするために CPU 合成のみを使用した場合に可能な最良のオーディオ レスポンス レイテンシよりもはるかに大きくなります。たとえば、表示フレーム レート (GPU パイプラインがロックされている) は、最適な RemoteIO コールバック レートよりも遅くなります。これらの短いオーディオ バッファー内で活用するのに十分な並列処理がありません。

于 2012-06-21T18:49:38.780 に答える