こんにちはの方も、おはようございますの方も、とりあえずようこそ。ブログ連日更新は珍しいぶっそれんれです(`・ω・´)
とりあえずこの記事は自分用メモなので、OpenGLでぐぐってこのページが出てきてしまった人は、まずは焦らずに、落ち着いてから左上の矢印ボタンを押してほしい。
ふぅ、
というわけで、OpenGLをすることになりました。本当はJavaでやりたかったんだけど、やっぱし私はJava嫌い(←主観100%)なので、C++でOpenGLを組んでいこうと思います。
まず、今回使用する環境ですが、Windows7+Visual Studio 2008です。Ubuntuが復活し大、Ubuntu10.10+Eclipseでもやります。ってわけで、まずはOpenGLをダウンロードですね。
さて、問題はGLUTなんですが、こいつが定義されたのが非常に古いのです。さて、入門向けレベルのGLUTでどこまでいけるか、まぁ、機能的にしんどくなったらGLUTを捨てて、windows interface等のAPI処理をガリガリ書いていこうと思います。
今回はWindowsで構築します。まず、GLUTを落とします。
http://www.xmission.com/~nate/glut.html
さて、普通に「win32 コンソールアプリケーション」でVisual Stduioでプロジェクトを作って、そのフォルダの中に出てきた「glut.h」「glut.dll」「glut.lib」をコピーします。どうやらGLUTが勝手にリンクしてくれるみたいです。超便利。
さて、とりあえずウィンドウを呼び出すための最小限のコードを書きますか。
#include "glut.h" #include <stdio.h> void display() { // 画面をクリアして、それを描画(つまり何もしない) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glFlush(); return; } // entry point. int main() { // 画面モードの設定 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH); // 窓の設定 glutInitWindowPosition(0,0); // 場所(X,Y) glutInitWindowSize(400,400); // 横幅、縦幅 glutCreateWindow("ウィンドウタイトルです(`・ω・´)"); // 描画関係の関数を指定 glutReshapeFunc(NULL); // 再描画関数の指定 glutDisplayFunc(display); // 通常描画関数の指定 // メインループ突入 glutMainLoop(); return 0; }
特に説明はいりませんかね。ソースコードにいっぱいコメント書いたし。
画面モードの設定も、DirectXと名前が違うだけで内容は一緒ですね。シングルバッファ、RGBAモード、深度バッファ付き。って感じですかね。
画面のクリアの時も、色情報の削除、深さ情報の削除って感じですかね。何を言っているのかわかりませんよねさーせんwww
あーやっぱDirectX大好き……。けどGLUTも便利すぎ大好き……。
さて、問題は、コンソールが出力されてしまうことなんですよね……。デバッグ時にエラー情報を表示させるには最高なんですが、実際に配布する際はファイルに落としたいですよね。ってわけで、素直にWin32プロジェクトで作り直すとうまいこと動きます。特に問題ないですね。
初期化は以上。次からポリゴン書いてみる。