今回から,プログラミングの対象を 3D-CG とする. 3D-CG 記述言語 POV-Ray を利用し, 複雑なシーンを効率的に記述できるようになろう.
モデリング(modeling)とは,CG の設計作業のことだ. POV-Ray の場合,人間が シーンファイル(拡張子:.pov)を エディタで編集することになる.
なお,シーンファイルをゼロから作るのは大変なので, 今回はとりあえず,シーンファイルのサンプル test.pov をダウンロードして使おう. (本日の作業用ディレクトリにダウンロードせよ.)
このシーンファイルの内容をエディタで確認してみよう:
$ gedit test.pov &
今回は,内容を理解できなくても良い.
レンダリング(rendering)とは,CG の描画処理のことだ. POV-Ray の場合,povray コマンド によって, コンピュータがシーンファイルを画像ファイルへ自動的に変換してくれる:
$ povray test.pov
うまく行けば,画像が(一瞬だけ)表示された後, 画像ファイル test.png ができているハズ.
$ ls test.png test.pov
画像を再確認するには, display コマンドを使えばよい:
$ display test.png &
またはレンダリングの際, コマンドにオプション +P を指定すれば, 結果表示を一時停止(pause)できる.
$ povray +P test.pov
場合に応じて,これら2通りの方法を使い分け, 作業を効率的に進めよう. 例えば:
もう少し具体的に?
povray コマンドの一般形は,こんな感じ:
$ povray オプション引数 シーンファイル名
次表のような,複数のオプション引数を自由に組み合わせ可能である.
引数 | 意味 | 既定値 |
---|---|---|
+P | 画像を表示したまま一時停止 | |
+W整数 | 画像の横方向のサイズを指定 | 320 |
+H整数 | 画像の縦方向のサイズを指定 | 240 |
+A小数 | 画像の微細度(品質)を指定 | 1.0 |
ここで,画像サイズについては,通常は, 縦横比が 4:3 になるように指定する必要がある. また,微細度については,値が小さいほど高品質になる.
なお,解像度が高い(サイズが大きく,微細度が小さい)ほど, レンダリングに時間がかかってしまう. この原則に注意して,作業を効率的に進めよう. 例えば:
今回は肩慣らしのためのお遊びです. 中学生向けの POV-Ray 体験コースを試してみよう.
この体験コースでは,F1 マシンの部品があらかじめ用意されているので, 作業はプラモデル感覚で,作品は簡単に出来上がってしまう. 今後は,より基本的な形状を元にして, 必要な部品を独自に作り出して行くことになる. もちろん題材は,F1 に限らず,自由だ.
ちなみに,POV-Ray では,レイトレーシング(ray-tracing)等の 高度なレンダリング手法が利用されており, モデリング次第では,極めて現実的 or 幻想的な画像を生成できる. また,特別研究などで説明図の作成に利用すれば, プレゼンの説得力が増すかもしれない. 次回から,さまざまな技を習得して行こう.