About POV-Ray


POV-Ray(Persistence of Vision Ray Tracer)は、MS-DOS, Windows 3.1/95/NT, MacOS, Linux, SunOS, Amiga で動作する、 無料(フリーソフト)の、「レイトレーシング法」による 3次元コンピュータグラフィックスソフトウエアです。


1.レイトレーシングとは
2.POV-Ray の入手方法
3.POV-Ray の機能とシーンファイル


1.レイトレーシングとは(OpenGL による 3DCG との比較)

OpenGL(や Direct3D)などによる3次元グラフィックスは「Z バッファ法」と 呼ばれます。

大雑把に言うと、Z バッファ法では基本的にどんな複雑な形状のものでも 最終的には三角形のポリゴンの集合体として描かれ、視点から見たときに、 ある三角形の一部または全部が他の三角形の陰に隠れるかどうかの判定 (隠面消去)を Z バッファ(デプスバッファとも言う) により行うため、「Z バッファ法」と呼ばれます。

本ホームページ上の OpenGL プログラムをシングルバッファで、あるいは フラットシェーディングで表示させてみればその事が良く解ると思います。

また、3D アクセラレータの仕様に、「何万ポリゴン/秒」というのがありますが、 これは上述の三角形ポリゴンを一秒間にいくつ描けるかというもので、 性能を表わす際の目安になります。

この方法は元々の処理速度も比較的速いことに加え、ハードウエアで実現する事も 容易なため、いわゆる 3D アクセラレータによる高速化が可能で、インタラクティブ な処理(VRML ブラウザなど)や、リアルタイムな処理(ゲームなど)で使用 されます。


これに対して「レイトレーシング法」は、光線をシーンに発射することによって そのシーンのイメージを計算するレンダリング手法で、基本的に画面上の 1 ドット (ピクセル)毎に複雑な計算をして描かれます。

その為、リアルな反射、陰影付け、透視、影などの非常に高品質な表現が可能ですが、ハードウエアによる処理もむずかしく、決して高速な手法ではありません。

そのため、一般の 3DCG ソフトでは、作成中や操作中のプレビューには OpenGL などの「Z バッファ法」を使い、最終的に高品質な画像を作成する 時には「レイトレーシング法」を使っている場合が多いようです。


2.POV-Ray の入手方法

POV-Ray はインターネットからでも入手可能ですが、3Dグラフィックスが 初めて、あるいは、POV-Ray を初めて使うというひとは、アスキー出版局から 出ている「POV-Ray ではじめるレイトレーシング」という CD-ROM 付きの書籍 をお勧めします。

この本は、3D グラフィックスの入門書としての側面も持っているため、 3D グラフィックス初心者の方でも簡単に、安く(POV-Ray 自体は無料) レイトレーシングによる 3D グラフィックスを体験できます。


3.POV-Ray の機能とシーンファイル

POV-Ray は、基本的にはシーンファイルの内容をレイトレーシング法により グラフィックス表示するだけのものです。

つまり、一般の 3DCG のモデリングソフトにあるような対話形式で オブジェクトを作成するという機能はありません。

そのような場合には、POV-Ray 用のモデリングソフトを用いるか、一般の モデルデータをPOV-Ray のシーンファイル形式に変換するなどの処理が必要 になります。

シーンファイルはテキストファイルであるため、単純なシーンの場合は テキストエディタで直接シーンを記述することも可能です。

それでは「シーンファイル」の内容はどういうものかというと、 VRML での .wrl ファイルと同じようなものと捉えれば解り易いでしょう。

例として赤い球体が一個と、それを照らす白いライトがひとつのシーンを POV-Ray と VRML で記述してみました。なお、比較のために省略可能なもの もあえて記述してあります。

POY-RAYVRML 2.0
camera {
  location <0,0,-10>
  look_at <0,0,0>
  angle 45
}



light_source
{
  <10,10,-10>
  color rgb <1,1,1>
}



sphere {<0,0,0>,1
  pigment {
    color rgb <1,0,0>
  }
}
                             

#VRML V2.0 utf8

Viewpoint {
  position 0 0 10
  orientation 0 0 1 0
  fieldOfView 0.785398
}

PointLight {
  location 10 10 10
  color 1 1 1
}

Shape {
  appearance Appearance {
    material Material {
      diffuseColor 1 0 0
    }
  }
  geometry Sphere {
    radius 1 
  }
}
                             

座標系の違い(Z 方向が逆)などの細かな差異は有りますが、このような単純 なシーンではほとんど同じである事が解ると思います。

なお、上記のものは .pov ファイル、.wrl ファイルにコピーアンドペースト する事により、POV-Ray 及び VRML ブラウザで実際に表示可能になって います。