0

Android 2.4 OSでVAOを使用しています.EGLはVAO拡張を成功させ、すべてのVAOの機能は正しく戻ります。

しかし、glGenVertexArray( )VAOリソースを生成するために呼び出すと、常に「0」IDのリソースを取得しました(正しくレンダリングできますが、0リソースIDを返すだけでなく、異なるVAOリソースIDで複数の頂点タイプを使用することを期待しています)。

IOS または Windows OS では、VAO リソース ID が unsigned int 型に増加します ( glGenVertexArray()0、1、2、3 ... などの ID が返されます。

どうすればこの問題を解決できますか? GL 状態を有効にする関数などを呼び出すのを忘れているのではないでしょうか?

4

2 に答える 2

0

コンテキストが正しく設定されていることを確認しましたか?

iOS でも非常によく似た問題がありました。コンテキストが設定されていない場合 (つまり、null の場合)、OpenGL 関数を呼び出すと、基本的に「if(context == null) return;」となります。

したがって、呼び出しは「機能」し、クラッシュしません...しかし、何もしません。これは、VAO 変数をゼロ以外の値に初期化し、GL がまったく書き込みを行っていないことを確認することで判断しました。

コンテキストを正しく設定すると修正されました。

于 2013-03-14T20:08:39.887 に答える
0

for ( _dword i = 0; i < 3; i ++ )
{
  GLuint res[4] = {0};
  GL_CHECK_ERROR( glGenVertexArrays( 4, res ) );
  WLOG_TRACE_4( L"Create VAO(%d, %d, %d, %d)", res[0], res[1], res[2], res[3] );
}

glGenVertexArrays( ) を呼び出した後、すべての res 配列が (0, 0, 0, 0) を受け取ります。

于 2012-12-04T02:09:11.147 に答える