2016-12-01 13 views
0

私はOpenGL ES 2.0でAndroidアプリを開発しており、GL_EXT_shader_framebuffer_fetchの拡張子を使用したいと思います。AndroidでOpenGL拡張GL_EXT_shader_framebuffer_fetchを有効にするにはどうすればよいですか?

私が理解しているところでは、フラグメントシャドウの先頭にある#extensionディレクティブでまず有効にしてから、組み込み変数gl_LastFragDataを使用することができます。

Couldn't compile shader: Fragment shader compilation failed. 
ERROR: 0:1: '' :  GLSL error: extension 'GL_EXT_shader_framebuffer_fetch' is not supported 
ERROR: 1 compilation errors. No code generated. 

誤差はかなり明示的である:私はシェーダをコンパイルするとき、私は次のコンパイルエラーを取得し、しかし

#extension GL_EXT_shader_framebuffer_fetch : require 
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <- Enable the extension 

varying highp vec2 textureCoords; 
uniform sampler2D currentTexture; 

void main() 
{ 
    vec4 currentColor = texture2D(currentTexture, textureCoords); 
    gl_FragColor = currentColor; 
} 

この拡張機能があるので、ここで

は私のフラグメントシェーダでありますnotをサポートしています。

私の技術仕様:

  • ハードウェア:5.0.1
  • のAndroid APIレベル:21
  • OpenGLのバージョン(AndroidのバージョンサムスンギャラクシーS4
  • glGetString(GL_VERSION)):OpenGL ES 3.0 [email protected] AU @(CL @

私はいくつかの質問を持っている:

  • は私が私のデバイス上でこの拡張機能をインストールに何かできることはありますか?
  • そうでない場合は、エミュレータにインストールするか、それを使用できますか?
  • ソフトウェア問題か実際にはハードウェアに問題がありますか?

答えて

2

Is there anything I can do to install this extension on my device?

ません。 GPUとドライバのいずれかがそれをサポートしているか、サポートしていません。

If not, can I install it/use it on an emulator?

エミュレータが拡張をサポートしている場合は、[はい、あなたがそれを使用することができます...

Is it a software matter or really a hardware problem?

は、基盤となるハードウェアの制限、またはドライバの制限のいずれかです。アプリのデベロッパーの視点から見ると、2つは分かれていないので、これは無関係なものです。実際には制限があります...

関連する問題