GLUTを使わないOpeGL超入門_03【立方体の塗りつぶし】
前回はワイヤーフレームで立方体を描画しました。
このままでは表示されている面がわかりにくいので、それぞれの面に異なる色を付けてみましょう。
今回もGLUT以外は下記の書籍を参考にしています。
OpenGL API
OpenGLはシリコングラフィックス社により定義された3Dグラフィックライブラリです。
OSに依存しない設計となっている為、高機能なAPIは含まれず点や線、ポリゴンなどの基本的な描画要素のみがサポートされています。
OpenGLのAPIはプリフィックスがglとなっています。
GLU API
OpenGLのAPIは基本的な描画機能しか含まれていないため、上位機能をサポートするGLUT(OpenGL Utility Library)が用意されています。
球や円柱表示、透視変換などの高度な描画機能を提供しています。
GLUのAPIはプリフィックスがgluとなっています。
本サンプルにおいてもGLU APIを利用しています。
GLUT API
OpenGLはOSに依存しない設計となっている為、ウインドウシステムやキー、マウスなどの入力補助を持っていません。
GLUT(OpenGL Utility Toolkit)はこれらの機能をOpenGL上で提供する補助システムです。
しかしGLUTの持つウインドウシステムは基本機能のみのため、高度なウインドウシステムには不向きだと筆者は考えています。
そのため本サンプルではGLUTは利用せずWindowsの持つウインドウシステムを利用しています。
OpenGLによる立方体の塗りつぶしサンプル
このような表示が出れば成功です。
前回からの修正箇所は、view_cube関数のみです。
簡単にポイントをお伝えします。
glBegin(GL_QUADS);
glBeginは頂点指定のAPIで引数で指定した頂点をどのように利用するかを示します。
前回の線描画ではGL_LINESで2点間を線分で結ぶ指定をしていました。
GL_QUADSでは4点を頂点とする四角形の指定となります。
glColor3dv
カラー指定のAPIです。
前回の線描画で利用したColor3dとは異なり、RGBの配列を指定します。
今回のサンプルでは6面が異なる色で描画する必要があるためあらかじめテーブルで色を用意する必要があります。
このように色を変えるような使い方ではColor3dよりColor3dvが適しています。
ソースコードになります。
OpenGL関連記事一覧
GLUTを使わないOpeGL超入門_01【Visual Studio設定】
GLUTを使わないOpeGL超入門_02【立方体の表示】
GLUTを使わないOpeGL超入門_03【立方体の塗りつぶし】
GLUTを使わないOpeGL超入門_04【ビューポート】
GLUTを使わないOpeGL超入門_05【移動・回転】
GLUTを使わないOpeGL超入門_06【視点移動(球面上をなぞる)】
ディスカッション
コメント一覧
まだ、コメントがありません