2

iOS デバイス用の OpenGL ES 2.0 を使用して、一連の GPGPU 関数をフレームワークとしてリリースすることを考えています。

XCode で OpenGL ES フレームをキャプチャすると、使用されているシェーダーのコードが表示されます。これが起こらないようにする方法はありますか?glDeleteShaderOpenGL ES プログラムをリンクした後、シェーダーを削除してデタッチしようとしましglDetachShaderたが、コードはまだキャプチャされています。

私は防弾オプション (おそらく存在しない) を探しているのではなく、単にボタンを押すよりもコードにアクセスするのが少し難しくなるようなものを探しているだけです。

ありがとうございました。

4

1 に答える 1

0

デバッガーは への呼び出しからglShaderSourceの入力をキャプチャする必要があります。実際のシェーダー ソースは、コンパイル後に VRAM に保存されることはありません。この問題を直接克服する方法は思いつきません。glShaderSourceOpenGL ES はコンパイル済みのシェーダー バイナリをサポートしていないため、呼び出しが必要です。

元のシェーダー コードを難読化することをお勧めします。おそらくコンパイル時マクロを使用するか、スクリプトを使用して変数名などをスクランブルすることをお勧めします (アプリ コードへのリンケージに影響を与えるため注意してください) attribsuniforms

これは、シェーダー コードの難読化/最小化に使用されるツールです。WebGL用に構築されているため、完全には機能しない可能性があります。http://glslunit.appspot.com/compiler.html

于 2013-08-05T03:23:18.263 に答える