Skip to content
toshi0328 edited this page Dec 4, 2011 · 15 revisions

概要

Disp3Dは3次元アプリケーションをrubyを利用して、簡単に実現するフレームワークを提供するライブラリです。

3次元空間を描画するライブラリとして、OpenGLがありますが、このライブラリが提供するのは、主にレンダリングに関する部分であり、低レベルなレイヤーに相当するものです。しかし、実際にアプリケーションを開発する場合、3次元空間に対するマウスオペレーション、描画した要素のピッキング処理などが必要になります。また、3次元空間のデータを表現するシーングラフというデータ構造も利用することがあります。これらの機能は、OpenGL自体には、直接使いやすい形で実装されておらず、各開発者が個別に実装する必要があります。

OpenGLは、関数によって状態を変化させながら、レンダリングを行うというスタイルとなっています。初学者やオブジェクト指向言語を利用している開発者にとっては、やや敷居の高いライブラリだと思います。本ライブラリを利用することで、OpenGL独特の書き方でなく、理解しやすい書き方でコーディングを行うことができます。

C++を用いた開発では、OpenSceneGraphやVisualToolKitなど、OpenGLレイヤーの上の階層のライブラリが多く開発されています。本ライブラリは、Rubyを用いた開発でも、簡単に3次元アプリケーションを開発することのできる環境を提供する目的で開発を進めています。

コード例

Disp3Dをインストールしたら、以下のようなコードを書き、実行します。

require 'disp3D'
main_view = Disp3D::GLUTWindow.new(400,400)
main_view.world_scene_graph.open do
  add_new :type => :TeaPod,
          :material_color => [1,1,0,1],
          :size => 10.0
end
main_view.camera.projection = Disp3D::Camera::ORTHOGONAL
main_view.start                                                                                         

以上のコードで、3次元空間上に図形を描画し、マウスによって、図形を回転したり、拡大・縮小することができます。 image

*コードの詳細な解説は、チュートリアルで取り扱います。

インストール方法

Disp3Dでは、主に、以下の4つのライブラリを利用します。

qtbindingsはQTを用いたアプリケーションを利用する場合に必要です。GLUTのみでWindow作成、描画を行う場合には、qtbindingsは不要です。

"gem install"コマンドだけでは、インストールできないものもありますので、各ライブラリのインストール方法を参照してください。

これらのライブラリをインストールしたら、以下のコマンドを実行し、disp3Dライブラリをインストールします。

gem install disp3D

チュートリアル

/example/tutorialの中に、チュートリアル用のコードが用意されています。

  1. HelloWorld
  2. Elements
  3. CameraScene
  4. Qt
  5. Pick
  6. FileParser
  7. SceneGraph
  8. SceneGraph2
  9. Texture
  10. Animation
  11. MultiView