ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

VC++2010でOpenGL使ったりしたい(Windows7で)

2010年06月08日 20時32分40秒 | ソフト開発日記
OpenGL使って遊びたい、ということでVC++2010でやってみることに。
(参考:OpenGLでつくる3次元CG&アニメーション)

とりあえず「opengl32.lib」「glu32.lib」「gl.h」「glu.h」
「opengl32.dll」「glu32.dll」という必要ファイルは、
VC++をインストールするとついてくるみたい。

GLUTをサイトにいってダウンロード。
解凍すると出てくる「glut32.lib」「glut.h」「glut32.dll」
の3ファイルをそれぞれ、

C:Program Files\Microsoft SDKs\Window\sv7.0A\Lib
に「glut32.lib」
C:Program Files\Microsoft SDKs\Windows\v7.0A\Include\GL
に「glut.h」
C:Windows\System32
に「glut32.dll」

とぶちこんで、VC++で新しいプロジェクトでコンソールアプリケーションを
選択し、#include <glut.h> とインクルードして完成。
実験がてら本読みながら下のソースを書いてみました。

#include <GL/glut.h>

void init();
void display(void);
void draw(void);

int main(int argc, char** argv){
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGBA);
  glutInitWindowSize(500, 500);
  glutInitWindowPosition(150, 150);

  //ウィンドウ作成
  glutCreateWindow("PointTest");
  glutDisplayFunc(display);
  init();
  glutMainLoop();
  return 0;
}

void init(void){
  glClearColor(1.0, 1.0, 1.0, 1.0);
}

void display(void){
  glClear(GL_COLOR_BUFFER_BIT);
  draw();
  glFlush();
}

void draw(void){
  //線の色
  glColor3f(0.6, 0.6, 0.9);
  //線の幅
  glLineWidth(2.0);
  //線の描画
  glBegin(GL_LINES);
    glVertex2f(-0.5, -0.2);
    glVertex2f(0.5, 0.2);
    glVertex2f(-0.5, 0.2);
    glVertex2f(0.5, -0.2);
  glEnd();

  //線の色
  glColor3f(0.6, 0.9, 0.6);
  //線の幅
  glLineWidth(1.0);
  //モード(塗りつぶし)
  glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  //三角形の描画
  glBegin(GL_TRIANGLES);
    glVertex2f(-0.1, -0.1);
    glVertex2f(0.1, -0.1);
    glVertex2f(0.0, 0.1);
  glEnd();

  //点の色
  glColor3f(0.9, 0.6, 0.6);
  //点の大きさ
  glPointSize(50.0);
  //点の作成
  glBegin(GL_POINTS);
    glVertex2f(0.0, -0.2);
  glEnd();

}

うまい具合に描けました。しかも結構簡単。
ただコンソール画面がちょっと邪魔。どうにかならないのかな。
今度は3次元CGに挑戦したいけど挫折しそう。