2001年5月20日(日)
POV-Rayとは、フリーの3DCGソフトである。3Dというのは、「3次元の」ということであり、CGというのは、「コンピュータグラフィック」ということである。そして最初のフリーというのは、「ただ」ということである。つまり、ただで手に入る3次元コンピュータグラフィックスのソフトということである。
映画ジュラシックパークやアポロ13号では、恐竜やロケット発射の非常にリアルなシーンにコンピュータグラフィックスが使われたということで話題になったし、ターミネータでは、液体の金属のようなものが人間の姿に変わっていったりするという仮想のシーンがリアルに表されている。最近ではコンピュータグラフィックスがいろいろなところに使われるようになってきている。
コンピュータが教室に入りだした頃、ペイントソフトで絵を描かせることがやられていた。私もちょっと使ってみたけれど、画用紙と絵の具・筆がコンピュータの画面となり、ボタンやマウスとなっただけで、結局は描く人の美的なセンスや力量がそのまま反映したものができあがり、がっかりした。
こういう立体を絵に描くときには、頭の中でどのように見えるかを考えて、その結果を画用紙に描くことになる。3次元の物体を2次元の画用紙に射影する操作は、人間の頭脳の働きにまかされることになる。
今では「3DCGソフト」というときには、画用紙やコンピュータ画面のような2次元の世界に出力するときに、「どのように2次元化するか」これまでは人間の頭脳とセンスで行ってきた作業はコンピュータに任されるようになっていて、こういう作業までするソフトを「3次元CGソフト」というのだそうだ。
3DCGソフトを前にして人間がすることは、空間の中の文体をレイアウトすることになるのだ。あとは、空間の中に指示された位置に置かれた物体がどのように見えるのかはコンピュータが計算して2次元化し、それが画面や紙の上に実現されるのである。
指示された物体がどのように見えるか計算して2次元化する方法にはいくつかあるのだそうだが、その中のひとつが「レイトレーシング」または「光線追跡法」である。
光源から放たれた光は、空気中を走れば拡散し、物体にあたっては、その表面の状態によってある波長の光は吸収されある波長の光は反射され、それらが複雑に空中を飛び交い、人間の目の中に入ってくる。光源の光の状態や、物体の表面の状態、そして人間の目の位置によって、いろいろな結果が現れてくる。
「レイトレーサ」は、与えられた位置の目に入ってくる光線を逆算して、目に入ってくる光が光源を出てから反射拡散するようすをひとつひとつ計算することによって2次元の画像を生成する。完全に計算できれば、非常にリアルな映像が得られるはずであるが、一方で、そんな計算にはものずごく時間がかかることも想像に難くない。
POV-Rayはレイトレーサーである。
次のようなテキストファイルを作り、これを処理すると画像が生成される。
| #include "colors.inc" | 色の指定の定義ファイル名 |
| #include "shapes.inc" | 物体の指定の定義ファイル名 |
| #include "stones.inc" | 材質の指定の定義ファイル名 |
| camera { | カメラ・・・すなわち視点 |
| location <5, 5, -10> | カメラを置く位置の空間座標 |
| look_at <0, 0, 0> | カメラを向ける点の空間座標 |
| look_at <0, 0, 0> | カメラを向ける点の空間座標 |
| angle 20 | カメラの画角 |
| } | |
| light_source { <0, 10, -10> color 2*White } | 光源の位置の座標と、光の色の指定 |
| object{ | 物体の指定 |
| Sphere | 物体の形は球 |
| texture{ T_Stone12 } | 物体の材質は大理石 |
| } |
座標の取り方は次のような座標軸を取って考える。平面でのx軸y軸を考えて、髪の向こう側にz軸の正方向になるようになっている。図のような位置に「光源」と「カメラ」が置かれていて、原点に半径1の球が置かれている。光源から出発した光が球に反射してカメラに入ってきて球の映像が得られるのである。この光線の動きを一つ一つ計算することになる。急には大理石のような模様がついている。
背景が真っ黒で、宇宙空間に浮かんだ木星のようにも見える。
|
|