OpenGL+VS 2010開発環境構築


OpenGL規格に基づいて開発するアプリケーションの実行時に動的リンクライブラリOpenGL 32が必要である.DLL、Glu32.DLL、この2つのファイルはWindows NTのインストール時に自動的にC:WINDOWSSYSTEM 32ディレクトリにロードされました(ここでは、ユーザーがWindows NTをCディスクにインストールすると仮定します).OpenGLのグラフィックライブラリ関数は動的リンクライブラリOpenGL 32にカプセル化する.DLLではOpenGLベースのアプリケーションを開発するには,OpenGLのライブラリ関数を先に知る必要がある.OpenGL関数のコマンド方式は非常に規則的で、各ライブラリ関数にはプレフィックスgl、glu、auxがあり、それぞれこの関数がOpenGL基本ライブラリ、実用ライブラリまたは補助ライブラリに属していることを示している.Windows NTの下のOpenGLには100以上のコア関数が含まれており、glを接頭辞とし、他の4つの関数もサポートされています.
OpenGLユーティリティライブラリ関数:43個、gluを接頭辞とする;
OpenGL補助ライブラリ関数:31個、auxを接頭辞とする;
Windows専用ライブラリ関数(WGL):6個、wglを接頭辞とする;
Win 32 API関数(WGL):5個、接頭辞なし.
GLUTキットのインストール
GLUTはOpenGLに必要なものではありませんが、私たちの勉強に一定の便利さをもたらし、インストールをお勧めします.
Windows環境でのGLUTダウンロードアドレス:(サイズ約150 k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
GLUTはOpenGLアプリケーションキットを表し、英語ではOpenGL Utility Toolkitと呼ばれ、ウィンドウシステムに関係のないパッケージです.
Mark KilgardがSGIで書いたものです.AUXライブラリのより強力な代替品として、異なるウィンドウシステムAPIの複雑さを隠すために使用されます.
OpenGLプログラミングを学ぶ良いスタートです.
VS環境構成
 
ダウンロードした圧縮パッケージを解くと、5つのファイル(glut.dll,glut 32.dll,glut.lib,glut 32.lib,glut.h)が得られます.
(1)glut.hをx:Program FilesMicrosoftVisual Studio 10.0VCincludeglフォルダにコピーし、glというフォルダがなければ自分で新規作成できます.(xはVSをインストールするディスク記号です)
(2)解凍したglut.libとglut 32.libを静的関数ライブラリのあるフォルダ(すなわちincludeと並んだlibフォルダの下)に置く.
(3)解凍したglut.dllとglut 32.dllをオペレーティングシステムディレクトリの下にあるsystem 32フォルダに入れる.(典型的な位置は:C:WindowsSystem 32)
(注意:アプリケーションの開発時にOpenGLアシストライブラリ関数を使用する場合は、glaux.dll、glaux.lib、glaux.hを含む動的リンクライブラリもダウンロードする必要があります.対応する手順は同じです).
最初のOpenGLプログラム
まず、次の手順でプロジェクトを作成します.
(1)Win 32 Console Applicationを作成する.
(2)OpenGL librariesをリンク.Visual C++で項目を右クリックし、属性を選択してコネクタラベルを見つけ、最後に入力中の追加依存ライブラリにopengl 32.lib glut 32.lib glu 32.libを加える.
次の例をプロジェクトにコピーして、コンパイルして実行することができます.三角形が見えます

 #include "stdafx.h"
 
 #include<gl/glut.h>
 
 //#include<gl/glu.h>  //glut.h     glu.h   gl.h
 
 //#include<gl/gl.h>
 
  
 
 void renderScene(void)
 
 {
 
          glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
          glLoadIdentity();
 
          glBegin(GL_TRIANGLES);
 
          glVertex3f(-0.5,-0.5,0.0);
 
          glVertex3f(0.5,0.0,0.0);
 
          glVertex3f(0.0,0.5,0.0);
 
          glEnd();
 
          glutSwapBuffers();
 
 }
 
  
 
 int _tmain(int argc, _TCHAR* argv[])
 
 {
 
          glutInit(&argc, (char**) argv);
 
          glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
 
          glutInitWindowPosition(100,100);
 
          glutInitWindowSize(320,320);
 
          glutCreateWindow("Hello OpenGL");
 
          glutDisplayFunc(renderScene);
 
          glutMainLoop();//enters the GLUT event processing loop.
 
          return 0;
 
 }

main関数のglutで始まる関数はglutに含まれる.h中.GLUTライブラリの関数は、マルチウィンドウペイントの処理、コールバック駆動イベントの処理、積層ポップアップメニューの生成、ビットマップフォントとストロークフォントの描画、および各種ウィンドウ管理などのタスクを主に実行します.
glutInitはGLUTライブラリを初期化し、ウィンドウシステムとの会話を協議するために使用されます.
glutInitDisplayModeは、作成したウィンドウの表示モードを決定するために使用されます.パラメータGLUT_SINGLEは単一キャッシュウィンドウを指定します.これもデフォルトモードで、対応するモードはGLUT_です.DOUBLEデュアルキャッシュウィンドウ.パラメータGLUT_RGB指定色RGBAモード、これもデフォルトモード、対応するモードはGLUT_INDEXカラーインデックスモードウィンドウ.
glutInitWindowSizeは、ウィンドウのサイズを初期化し、最初のパラメータはウィンドウの幅、2番目のパラメータはウィンドウの高さ、ピクセル単位です.
glutInitWindowPositionは、最初のパラメータがウィンドウ左上隅xの座標、2番目のパラメータがウィンドウ左上隅yの座標、画素単位で初期ウィンドウの位置を設定します.画面の左上隅の座標は(0,0)で、横座標は右に徐々に増加し、縦座標は下に徐々に増加します.
glutCreateWindowは最上位ウィンドウを作成し、ウィンドウの名前は拡張子のパラメータです.
glutDisplayFunc現在のウィンドウの表示コールバック関数を登録します.ウィンドウのイメージレイヤを再描画する必要がある場合、GLUTはウィンドウの表示コールバック関数を呼び出します.この例のmydisplayは、画像レイヤ全体の描画を担当するパラメータを持たないコールバック関数を表示します.私たちのほとんどの仕事はこの関数に集中します.
glutMainLoopはGLUTイベント処理ループに入る.glutMainLoop関数はGLUTプログラムで最大1回しか呼び出されず、呼び出されると戻ってこず、登録されたコールバック関数を呼び出す.したがって、この関数は登録コールバック関数の後に置かなければなりません.この例ではglutDisplayFuncです.