1

私はopenglの初心者です。DLL、ライブラリ、ヘッダーを設定しましたが、エラーが発生しました。私の開発環境は win7 (64bit) です。

参考 - DLL : C:\Windows\System32, C:\Windows\SysWOW64 // glu32.dll, glut.dll, glut32.dll, opengl32.dll

ライブラリ : C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib、C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib // glut.lib、glut32.lib

ヘッダー : C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl, C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\gl // GL.H, GLAUX .H、GLU.H、glut.h

#include <Windows.h>
#include <gl/glut.H>

void DoDisplay ( void )
{
    glClearColor ( 0.0f, 0.0f, 1.0f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT );

    glBegin ( GL_TRIANGLES );

    glVertex2f ( 0.0, 0.5 );
    glVertex2f ( -0.5, -0.5 );
    glVertex2f ( 0.5, -0.5 );

    glEnd ();
    glFlush ();
}

int main ( int argc, char ** argv )
{
    glutInit ( &argc, argv );
    glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE );
    glutInitWindowSize ( 300, 300 );
    glutInitWindowPosition ( 0, 0 );
    glutCreateWindow ( "OpenGL" );
    glutDisplayFunc ( DoDisplay );
    glutMainLoop ();

    return 0;
}

編集 :

白い窓 : http://i.stack.imgur.com/9GJoN.jpg

このコードは、白い三角形を出力するだけです。

Win32 プロジェクト -> コンソール プロジェクト。

問題は解決していません..申し訳ありません。

エラーはhttp://i.stack.imgur.com/9GJoN.jpgです

4

2 に答える 2

3
  • 即時モードを使用しています。ありますが、ありglEnd()ませんglBegin()
  • PeterT も指摘したように、あなたには呼び出しがありませんglutInit
  • 印刷したようにパスを指定すると、問題が発生します。少なくとも私の経験では、パスを台無しにするフォワードとバックスラッシュの両方があります。
  • 画面を特定の色にクリアしたり、頂点を特定の色に設定したりしていません。これは、吹雪の中でホッキョクグマを描く場合に当てはまります。

チェックアウト

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glClearColor(r, g, b, a);
  • Drew McGowen が指摘したように、変換または射影行列を指定していません。
  • 三角形を描画するために必要なすべてのこととその理由についての適切な説明を得るために、OpenGL のチュートリアルを探すことを強くお勧めします。Lighthouse3d、Swiftless、OGLDev - 基本を説明するものはたくさんあります。
  • もう 1 つのポイント: 約 7 年間非推奨となっているコードを学習しようとしています。固定関数パイプラインではなく、新しいプログラマブル パイプラインを学習する必要があります。これは、より高速でより多くの制御が可能になるためです。
于 2013-08-08T13:12:41.910 に答える