1

私はこのレンダリング機能を持っています:

    void RenderFunction(void)
{
    ++FrameCount;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    drawGraph();
    drawAxis(); 

    glutSwapBuffers();
    glutPostRedisplay();
}

ポイントグラフをレンダリングしています。小さなテキストを表示できるようにしたい。私はこの記事を読みました: http://www.codersource.net/MFC/OpenGL/DisplayingTextOpenGLTutorial5.aspx、必要なのはその関数をコピーしてコードを更新することだけです:

void RenderFunction(void)
{
    ++FrameCount;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();
    drawBitmapText("Osama Hosam's OpenGL Tutorials",200,200,0);

    drawGraph();
    drawAxis(); 

    glutSwapBuffers();
    glutPostRedisplay();
}

renderFunction は内部で呼び出されますglutDisplayFunc(RenderFunction);

これに関する任意のアイデア。何も表示されていないので、何か提案をお願いします。

アップデート:

void drawGraph(){
    glBindVertexArray(VaoId);
    glEnable(GL_LINE_SMOOTH);
    glLineWidth(0);
    glDrawElements(GL_LINES, 48, GL_UNSIGNED_BYTE, (GLvoid*)0);
    glPointSize(10);
    glDrawElements(GL_POINTS, 48, GL_UNSIGNED_BYTE, (GLvoid*)0);
}

void drawAxis(){
    glDisable(GL_LINE_SMOOTH);
    glBindVertexArray(VaoIdAxis);
    glDrawElements(GL_LINES, 4, GL_UNSIGNED_BYTE, (GLvoid*)0);
}

ここに画像の説明を入力

4

1 に答える 1

0

質問は解決しました。何らかの理由で、一部の OpenGL コンテキストでは drawBitmapText() がサポートされていません。最初に私は持っていました:

glutInitContextVersion(3, 3);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);

これにより、アプリケーションがテキストをレンダリングできなくなります。3行をコメントアウトしただけで、すべてがうまくいきました。

于 2013-04-30T00:42:33.640 に答える