Android で GLSL を使用して画像処理アルゴリズムを実装するのは簡単です。しかし、アルゴリズムの詳細は、文字列として逆コンパイルされた Java ファイルまたはリソース ファイルで簡単に見つけることができます。コンパイルされた GLSL ソースやその他のテクノロジを使用するなど、GLSL の詳細を隠す方法が存在するかどうか疑問に思っています。
ところで、私は GLSurfaceView を使用することを好みます。
ありがとう。
をご覧になることをお勧めしますglShaderBinary (...)
。シェーダーをコンパイルした後、OpenGL ES からそのバイナリ表現を照会し、そのバイナリを再利用できます (いくつかの大きな制限があります)。
バイトコードの実行可能ファイルについて知っていると思うことを捨てなければなりません。Java には単一の JVM 命令セットがあるため、バイナリは普遍的に実行可能です。Direct3D バイトコードは、ドライバーが基になる GPU のネイティブ命令セットに変換する中間形式であるため、HLSL シェーダーもバイナリ形式で配布できます。
OpenGL には、標準のバイトコード形式はありません。GL から取得するバイナリ シェーダーは、ハードウェアやドライバーのバージョンに固有のものである可能性が非常に高くなります。結果として、バイナリ シェーダーを使用するソフトウェアを配布できる可能性は低いです。GL でのバイナリ シェーダーの主な用途は、ソースレス配布を可能にしないようにコンパイル済みシェーダーをキャッシュすることです。