CYBERBUST POV-Ray TECHNIQUE
ちょっとばかり御参考にでもなればと思い、私のシーンファイル作成のテクニックを順次公開してゆきます。
![]() | A. 構造、一般
|
Excel for Windows95 ver.7(たぶん、ver.5 以上であれば走ると思います)を使ったサンプル ilphowt4.xls を用意しましたので、御覧下さい。なお、このサンプルは A-8. と同じもので、Visual BASICを用いたExcelのユーザー関数を用いて3次元曲面を描くものです。このように、高度な計算や論理を組みこんだ表現が容易に可能となります。
A-1. と A-8. 共通のサンプル ilphowt4.xls のなかで使っていますので、御覧下さい。例えば、ユーザー関数は次のように定義します。
シーンファイル:ilphowt5.txt(シーンファイルにコピーして下さい)
POV-Rayの、#declare #while #endを使って、似たようなオブジェクトを、少しづつ変えながらたくさん並べることができます。サンプルは次のようにしています。
このように、#declare #while #endを複層化することで、繰り返しを繰り返させることができます。
シーンファイル:ilphowt6.txt(シーンファイルにコピーして下さい)
POV-Rayの、#declare #while #endを使って、
部分の構造がより小さな部分の構造となって全体ができている、いわゆるフラクタルな構造を、簡単な表現で描かせることができます。
次のように、初期定義と再帰定義を用います。
関節から先の部分をunionにして、関節に相当する位置が原点(0,0,0)になるようtranslateしてから回転させ、一つ手前の関節からの位置ベクトル分固定translateします。これを関節毎に繰り返しています。
従って、各関節の曲がり角度を指定するだけであらゆるポーズが可能となります。
例、チラノザウルスの人形
シーンファイル:ilphowt1.txt(シーンファイルにコピーして下さい)
シーンファイル:ilphowt2.txt(シーンファイルにコピーして下さい)
「白」の「to Princess Diana」や「析晶」や「標本」は、多面体の頂点にそれぞれオブジェクトを配備したものです。「綾」の「煌」の背景の球状星雲の部分も多角体の頂点に小さな球を配備して、階層構造にして作ったものです。
このようにしますと、オブジェクトが並んでほぼ球形を成し、自己完結的で幾何学的な美しさを備えた集合体を作ることができます。
例は、頂点を4、8、12、32持つ多面体の座標を計算して得たものです。
なお、こちらに、分類されたたくさんの3D-CG多面体をはじめとする、多面体の詳細が述べられています。関心のあるかたは必見です。
シーンファイル:ilphowt3.txt(シーンファイルにコピーして下さい)
POV-Rayには、16個の立体座標の間を補間してなめらかな曲面を描かせる内部関数が用意されています。bicubic_patchというもので、これを使って「白」の「to Princess Diana」のユリの花びらを描いています。陰影を宿した微妙な曲面が容易に得られ、花を魅せるものに描くのに威力を発揮します。
他にも、魚など例のように左右2枚を合わせるだけでできてしまうなど、さまざまなものを描くのにとても便利です。
シーンファイル:ilphowt4.xls(Excel for Windows95 ver.7を用いており、たぶんver.5以上で走ると思います、テキストファイルに変換して保存したものをシーンファイルにコピーして下さい)
bicubic_patchを隣接させて張り合わせてゆけば、大きな、折りや曲がりのある複雑な面を正確に作ることができます。隣接する単位の面同士が滑らかに接続するためには、細かい座標入力が必要です。
これを使って「白」の「地平線にささぐ」の蝋燭?を描いています。
空間座標の与え方に制限はありませんが、サンプルはX-Z平面の格子状にY座標を与えるものです。サンプルを拡張してよりたくさんのデータを扱うものとすれば、実験データの3次元表示にも使えると思います。bicubic_patchを A-2. で説明しました手法でPOV-Rayのユーザー関数にして単純化、A-1. で説明しました手法で表計算により隣接して並べています。これで人の面を作ってみようか、などと考えています。
このシーンファイルのPOV-Rayによるレンダリングは、先行するパーシングが普通よりちょっと待たされますが、レンダリング自体は高速です。