0

簡単な OpenGL ウィンドウを作成し、それがサポートされていることを確認しました。返されたサポート:

  • グリュー: 1.9.0

  • OpenGL: 3.3.0

私が抱えている問題は、シェイプ (VBO) の作成によるものです。チュートリアルに基づいて形状を作成しているときに、画像 (単純な三角形) を画面に表示できませんでした。これを達成する唯一の方法は、即時モードまたは基本的な頂点配列を使用することでした。

GLEW での vbo サポートの確認について問い合わせましたが、次のような提案がすべて見つかりました。

if ( glewGetExtension("GL_VERSION_1_9") 
    && glewGetExtension( "GL_ARB_vertex_buffer_object" ))
        {
            std::cout << "VBO supported." << std::endl;
        }
    else
        {
            std::cerr << "ARB_vertex_buffer_object not supported!" << std::endl;
        }

false を返しました。

何が問題なのかについて何か提案はありますか?

4

2 に答える 2

1

のチェックを停止しARB_vertex_buffer_objectます。実際、ARB_vertex_buffer_objectの使用をやめてください。拡張機能ではなく、コア機能使用します。OpenGL バージョン 3.3 を求めている場合はコアにバッファ オブジェクト機能があります。それを使用します。

glewGetExtension("GL_VERSION_1_9")

そのような延長はありません。OpenGL バージョン 1.9 も存在しないため、そのようにチェックする理由がわかりません。

OpenGL のバージョンを確認したい場合は、OpenGL の機能を使用する必要があります。

GLint major = 0;
GLint minor = 0;
glGetIntegerv​(GL_MAJOR_VERSION​, &major);
glGetIntegerv​(GL_MINOR_VERSION​, &minor);
于 2013-04-20T10:52:42.980 に答える
0

エラーが発生する理由がわかりました。問題は、ウィンドウを作成する前に glew をチェックしていたことです。したがって、ウィンドウが作成された後に条件を追加した後、すべてが正常に機能し始めました。誰かがこの問題に遭遇した場合glewInit()に備えて、ウィンドウを作成した後に呼び出してください。

于 2013-04-21T07:49:22.723 に答える