1

iOSデバイスでコンパイルするのに最大5秒ほどかかる複雑なシェーダーを使用しています。シェーダーは、アプリの実行時間を短縮するために高度に最適化されていますが、最適化が進むほど、コンパイル時間が長くなります。

アプリを実行するたびにコンパイルするのではなく、コンパイルされたバージョンのシェーダーを保存して、最初の実行後にロードする方法があるかどうか疑問に思っています。これにアプローチする方法についてのアイデアは非常に役立ちます。

OpenGL 4.1には「ARB_get_program_binary」と呼ばれる拡張機能があり、このようなことを実行できると思いますが、それはiOSのオプションではありません。

4

2 に答える 2

3

OpenGL ES 2のコア仕様には、シェーダーバイナリが含まれています。

しかし、OpenGL ESのiOS実装の問題は、バイナリ形式をエクスポートしないことです。意味glGetInteger(GL_NUM_SHADER_BINARY_FORMATS)は0を返します。

したがって、バイナリシェーダー形式のiOSでは運がありません。

于 2012-07-10T04:51:41.137 に答える