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に挑戦したいけど挫折しそう。
(参考: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に挑戦したいけど挫折しそう。