/*THK Analytics用解析タグ*/

GLUTを使わないOpeGL超入門_03【立方体の塗りつぶし】

2023年1月22日

前回はワイヤーフレームで立方体を描画しました。
このままでは表示されている面がわかりにくいので、それぞれの面に異なる色を付けてみましょう。

今回も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【視点移動(球面上をなぞる)】

 

 Visual studio関連書籍