プロシージャル技術の第二ステップ~表現対象物を算術的関数を応用して表すこと
プロシージャル技術は、表現対象物によっては物理シミュレーションとの線引きが難しいわけだが、表現したいものに何かの規則性や相似性が見出せたときには、まともなシミュレーションを行わなくともそれらしく表現できることがある。
3Dグラフィックスでも反射現象や光学現象を物理モデルでなく、簡易的な関数の組み合わせで表現することが多い。例えば、テカテカした金属材質を表現する最も基本的な陰影処理としてフォン・シェーディングがあるが、これは視線ベクトル、面やピクセルの向き(法線ベクトル)、光源ベクトルの3つのパラメータで計算する、擬似的かつ算術的な鏡面反射表現だ。大胆なことを言えば金属の陰影表現のプロシージャル技術ということができる。
さて、表現したいものが、自然物の場合、その多くのものが、観測的にフラクタル関数(自己相似関数)に近いものであることが、最新の研究でわかってきている。
山岳、樹木や草木、稲妻、河川、海岸線、雲、銀河などの自然物にはフラクタル理論を適用して表現できるものが多い。このためか、プロシージャル技術では、自然物をフラクタル理論で表現しようとするアプローチが起点となることが多い。
フラクタル図形とは自己相似性を持った図形のこと。これはその物体の形状全体と、その物体の細部形状に相似性がある図形を指す。
最も基本的なフラクタル図形の生成法は、与えられた形状に対し、ある取り決めた法則を反復的に適用していくこと。
例えば、コッホ曲線は、与えた線分を三角波で分割していくことを再帰的に繰り替えことで描かれる。細部の枝葉の形状が、全体形状とよく似ていることがわかるだろう。同じように矩形波で分割することもできる。これらが、何となく、形状として樹木とか珊瑚とか、あるいは雪の結晶に見えては来ないだろうか。
(※画像クリックでアニメーションGIFが開きます) コッホ曲線。画像出典はイエール大学のフラクタル図形サイト。以下同 |
与える基本形状の図形(Initiator)を変え、その形状変換(Generator)や分割法則率(Rule)をパラメータ調整していくことで多様でなおかつ興味深い形状が得られるのだ。
本稿でも、再帰分割レベルを変えていくフラクタル図形のアニメーションをいくつか示しておこう。なお、このアニメーション群はイエール大学のフラクタル図形サイトで示されているものをいくつか選んで示している。
(※画像クリックでアニメーションGIFが開きます) 形状を変換する際に角度変換まで加えた例 |
(※画像クリックでアニメーションGIFが開きます) さらにその角度変換率を増加させていくことで図形に運動を与えることも出来るという興味深い例 |
次に反復コピーによるフラクタル図形を見てみることにしよう。
自分自身の形状を縮小したコピーを変調して置き換えていくもので、基本的な考え方は前出の再帰分割法と同じだ。
シダの葉は四辺形(QUAD)を角度を付けた3つの大きさに縮小した3枚のコピーに置き換えていくことを反復的に繰り返していくと表現できる。また、この縮小率、角度を変えていくことで生成されるシダ植物の種類を変えることもできる。
シダの葉は反復法のフラクタルで表現できる。ここで示されている以外のサンプルは「Ferns of the Canberra Region」で見ることができる |
「式の反復」によるフラクタル図形としては、有名なマンデルブロー集合やジュリア集合などがある。
ちなみに、マンデルプロー集合はとは、簡単に説明すると、
Zn+1=Zn2+c
※ただしcは複素数(complex)でc=a+ibとする
で表される漸化式で、適当な初期値を与えて繰り返し計算し適当な回数分計算させて無限大に発散するか、収束するかを見極めて、発散/収束までの計算回数などをパラメータとして複素平面a,bに適当な色を付けていくと周期性というか怪しげで奇妙な模様が現れる。
番外編(?)アナログ世界のフラクタル図形
フラクタル図形はコンピュータだけの世界だけでなく、アナログな世界でも実現できる。
例えば、ビデオカメラをテレビに接続し、そのビデオカメラの映像をテレビで表示して、それをそのビデオカメラで撮影する……という方法だ。
いわば「テレビとビデオカメラの合わせ鏡」的な手法でお手軽にテレビ画面にフラクタル図形を表示できるのだ。筆者も実際に試してみたのだが、確かに合わせ鏡状になり万華鏡のようになる面白い現象(映像)が確認できた。興味のある人はやってみるといい。
David Hagar氏という人物が、これを「ビデオフラクタル」と命名して、様々な試行結果をまとめたページを設けているのでそちらも一緒に参照するといいだろう。(続く)
その例。イエール大学のサイトより |
(トライゼット西川善司)