OpenGL は、3Dグラフィックス関連の各種の機能を提供するライブラリーで、 その仕様が公開されています。これを使えば、比較的容易に3D画像を高速に描画できます。
Windows は、OpenGL を標準で搭載しています。Windows のシステムフォルダー内に、 OpenGL の API( Application Programming Interface )を提供する OPENGL32.DLL と GLU32.DLL という DLL( Dynamic Link Library ) が、 あらかじめ入っています。この DLL をリンクするだけで、各プログラムは、 OpenGL の機能を利用できます。つまり、OpenGL を使う際には、 事前の特別な準備やインストール等は、不用です。
ここに掲載している OpenGL 関連の MikoScript のプログラムは、この DLL を動的に リンクして、3Dグラフィックスを表示しています。 その際、ウィンドウを開かないといけないので、GKライブラリーも使用しています。
最初のプログラム( HelloGL.mc )は、とりあえず、OpenGL を使ってみるためだけのものです。 これは、簡単な2D図形(黒地に白の正方形)を描画します。その際、OpenGL の機能や状態設定は、 ほとんどデフォールトのままになっています。
次のプログラム( CubeSpin.mc )は、自転する立方体を表示します。これにはもちろん、 陰面消去や照光処理等が行なわれていますが、その回転動作の見た目は、非常にスムーズです。 ちなみに、この処理には、CPUパワーのほんのわずかしか消費されないので、 まだまだ複雑な画像を描画する余裕が充分にありそうです。
本スクリプトは、3D CG の分野で有名な ユタ・ティーポット( Utah Teapot )を表示します。 このティーポットの形状データは、1975年、ユタ大学の Martin Newell 氏によって制作されたものです。 これは、一般に公開されているので、今回使わせて頂きました。
本スクリプトを実行すると、このティーポットが自転しているのが表示されます。 この自転は、マウスの右クリックで、ON ⇔ OFF できます。 本画面上で、マウスの左ボタンを押しながら左右に動かすと、それに応じて、 このティーポットは左右方向に回転します。同様に、マウスの左ボタンを押しながら上下に動かすと、 このティーポットは上下方向に回転します。 一方、マウスホイールを回転すると、ポットのふたが上下に移動します。
このスクリプトを実行すると、スターウォーズのオープニングの様に、 遠近表示された文章が、宇宙空間を背景に、手前から現れて、 奥へ流れて消えていきます。 しばらくすると、また同じ動作が繰り返されます。 最初からやり直すには、HOME キーを押します。 中断するには、ESC キーを押します。 一時停止とその解除は、スペースキーで行います。 表示される文章の変更は簡単で、 ソースプログラムの所定の箇所を書き換えるだけです。 文字のフォントは、TrueType Font なら自由に選べます。
本スクリプトを実行すると、回転する立体文字列が表示されます。 この回転は、スペースキーを押すごとに、一時停止/再開します。 拡大率は、マウスホイールで変更できます。 平行移動は、マウスドラッグで行なえます。 HOME キーを押すと、拡大率と表示位置が、初期状態に戻ります。 表示する文字列は、任意に変更できます。 それには、ソースプログラムの当該箇所を書き換えます。 文字フォントは、自由に選べますが、TrueType Font に限定されます。 本スクリプトは、ESC キーを押すと終了します。
本スクリプトは、PMDファイル( MikuMikuDance のモデルデータ )の形状を画面に3D表示します。 表示された3Dモデルの回転/拡大縮小等は、以下の操作で行なえます。
[→] キー | Y軸周りの右回転 |
[←] キー | Y軸周りの左回転 |
[↑] キー | X軸周りの右回転 |
[↓] キー | X軸周りの左回転 |
[Home] キー | 基準の位置に戻す |
[End] キー | 真後ろから見る |
マウスホイール | 拡大/縮小 |
マウスドラッグ | 平行移動 |