6

GL_INVALID_OPERATIONこれは私の(ラップされた)OpenGL呼び出しであり、 :を引き起こします。

GLTextures.TexImage2D(TexImage2DTarget.TEXTURE_2D, 0, TexImageInternalFormat.LUMINANCE_ALPHA, Width, Height, TexImageFormat.LUMINANCE_ALPHA, TexImagePixelType.UNSIGNED_BYTE, source.GetData());

この呼び出しはWindowsでは機能しますがiOSでは機能しません。Windowsではすべてが正常に機能し、テクスチャが表示されます。私はiOSとWindowsで同じ列挙値を使用し、シェーダーでさえ同じです(iOSではいくつかの正確なヒントがあります)。また、ほとんどのテクスチャはiOSで動作しています。

4

2 に答える 2

3

輝度アルファテクスチャはLATCテクスチャ圧縮を使用します。

また、iPhoneは拡張機能をサポートしていないため、iPhoneでLATCテクスチャをEXT_texture_compression_latc使用することはできません。

より詳しい情報:

http://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt

http://www.glbenchmark.com/phonedetails.jsp?benchmark=glpro25&D=Apple+iPhone+5&testgroup=gl

于 2012-11-09T08:13:34.287 に答える
3

私はそれがデスクトップで実行されるがiOSでは実行されないという事実を考えて問題を見つけました。formatとを使用するOpenGLテクスチャinternal formatは、フォーマットが異なる場合に1つのフォーマットから別のフォーマットに変換されますが、AppleのOpenGLES2.0実装はこれをサポートしていません。

これが、動作しないテクスチャとの唯一の問題である可能性があることに気づきましたGL_INVALID_OPERATION。列挙型を確認したところ、LUMINANCE_ALPHA1つの列挙型の定義に値が割り当てられておらず、+ 1より前の定義の番号を使用していることがわかりました。デスクトップでは数値が有効なテクスチャ形式であるため、OpenGLはこれを無視しますが、iOSでは失敗します。

于 2012-11-17T13:43:04.867 に答える