OpenGLによるプログラム自動作成システム


94178 斎藤早苗

 一般にコンピュータグラフィックス(CG : Computer Graphics)で作成した画像を 保存する方法として、
 (1) 画像ファイルまたは映像ファイルとして保存する、
 (2) オブジェクトの頂点座標をデータとして保存する、
などが考えられる。
 しかし、これらの方法には問題がある。(1)の場合、保存後、形・色・大きさ・ 位置等に修正を加えることが非常に困難である。また、(2)の場合、保存したデー タを読み込んで描画するためのシステムが必要であり、使用するマシン毎にその システムがインストールされていなければならず、移植性に問題がある。
 そこで本研究では、このような問題を解決するためにCGで作成した画像をOpenGL のソースプログラムとして保存するという方法を用いた。「ソースプログラムとし て保存する」と表現したが、これは本システムで画像を作成するのと同時に、作成 した画像と同様のものを描くプログラムを自動生成してファイルに保存することで 実現している。この方法によれば、静止画像だけでなくCGによるアニメーション等 も小さな容量で保存することが可能である。本研究では、まず、OpenGLの知識を持 たなくても、基本図形を組み合わせることで、誰でもがCGを作成できるためのエデ ィタを作成した。次にこのようにして出来たCGを再現するためのソースプログラム を自動生成する機能を追加していった。実際には、画像を描くためのプログラムに 必要な関数、宣言部分、ヘッダファイルの取り込み部分などをファイルの形にして 用意し、変更あるいは追加があった部分を書き換えていくということで行っている。 そして最終的に、その複数のファイルの内容を1つのファイルにまとめて出力する ようにした。また、CG画像の作成は、用意された基本図形に対する回転・拡大・縮 小・移動・色・視点の変更と、その組み合わせによっておこなわれる。操作はユー ザーが使いやすいように、基本図形の選択にメニューバーを用い、座標変換等の選 択は画面上にボタンを作成し、それを用いることにした。
 本システムで、プログラムの自動生成が実現されたので、CG画像の保存に(1)、 (2)の方法を用いた場合の問題は解決された。また同時に、生成されたソースプロ グラムを解読することによって、OpenGLの初心者に対して学習効果を与えることも 可能である。しかし、現段階では、基本図形の種類が少ないので複雑な画像が作成 できない点や、OpenGLの基本的な機能しか盛り込まれていないので、ユーザーがマ ウスで曲線を描く、というような複雑な操作には対応していない点などの問題があ る。したがって、今後の課題として基本図形の充実と本システムでは実現できなか ったOpenGLの他の機能を盛り込むこと等が考えられる。