【コラム】

3Dグラフィックス・マニアックス

82 人工知性でコンテンツを生成するプロシージャル技術(6)

 

82/99

プロシージャル技術による植物の生成(1)~植物とフラクタル理論の関係

植物のプロシージャルに関する研究は意外に古く、1960年代後期より始まっている。

この研究分野で古くから分野で活用されて発展している技術が「L-SYSTEM」だ。

L-SYSTEMの"L"は考案者のAristid Lindenmayer氏の名前から取られたもので、植物の形状を記号言語の形で表現するというユニークなものだ。Aristid Lindenmayer氏は生物学者であり、自然界の多様な植物の形状が、自己相似性があることに気がつき、その成長メカニズムを記号の変換法則で表現しようという研究に生涯を捧げた人物だ。

このL-SYSTEMの具体的なメカニズムについて簡単な例を挙げて説明しよう。

基本的には文字列の置き換えを、ある適当に決めた法則で行っていくものであり、その工程は前出の再帰分割法や反復コピー法のフラクタル理論とよく似ている。

L-SYSTEMの簡単な例題

変換ルールとして

AをxBに変換する
BをyAに変換する

と取り決め、初期値ABに対してこのルールを反復的に行ってやる。変換一回目は、

AB→xByA

となる。このxByAに対して同じルールを適用すると、変換2回目では、

xByA→xyAyxB

となる。

こうすることで、もともと2文字だったものがわずか2回目の変換で6文字となり、しかもその文字列は複雑性を増す。これを植物、生物の成長と照らし合わせて考えていくのが、L-SYSTEMの基本的な考え方だ。

この法則をさらに複雑にしていってみよう。

この単純的な反復変換に、「文脈(コンテキスト)の理解」という動的な条件ルールを設定してみる。具体的には文字を置き換える際に、その置き換え対象の文字の左右の文字の関係性によって置き換える文字を変化させていくというルールだ。

変換対象文字の前後(左右)に依存した規則で文字を変換するアルゴリズムにするとさらに複雑さを増した変換が行える

例えば、

Aの右にyがあるときにBx
BはAに置き換える
Aの左にxがあるときにBy
(それ以外ではそのまま)

として初期値の文字xAを与えて変換していく場合を想定してみる。初期値xAは6回目の変換でxByxyとなり、元の状態からはかなり変わったものになる。変換ルールはまさに生物における遺伝子といった風情だ。

さて、文字列のままでは見た目的に面白みがないし、「植物の成長の表現になっている」といわれてもイメージが湧かない。そこでこうした文字列のビジュアライゼーションを行って図形として見せることを考える。

この方法には様々なものがあるが、典型的な例として有名なのはタートルグラフィックスの仕組みだ。

ラジコンのような絵筆を文字列のコマンドで動かすというイメージがタートルグラフィックス。ちなみにこれは8ビットパソコン時代からある仕組みだ

これは仮想的な絵筆(タートル=亀)をラジコンのように「回れ」「曲がれ」「進め」「戻れ」といったコマンドを実行しながら軌跡を描いていく仕組みだ。「F」は描きながら前進、「+」は時計回りに回転、「-」は反時計回りに回転、「f」は描かずに前進などを表す。回転について回転角も与えられる。

こうしたタートルグラフィックスのコマンド文字列を、前出のような変換ルールで変換していけば複雑な軌跡が描けそうな気がするではないか。そういう着想だ。

なお、再帰分割法や反復コピー法のところで示したフラクタル図形も、このタートルグラフィックスで表現が可能だ。

2つの図形は、記載されている初期値と変換法則に従って文字列を置換し、その文字列結果に応じた描画を行った例。ただ、このままでは枝分かれが出来ないので一筆書きしか描けない

ただ、このままだと一筆書きしか描けないので、植物の特徴である「枝分かれ」の表現が出来る仕組みにする必要がある。そこで"["と"]"の一組の括弧で表される元の位置に戻れる仕組み(PUSH,POP)を取り入れている。[~]で囲まれた部分は小枝(≒子枝)となり、"]"の部分で小枝の描画が終わって、"["で分岐したところまで絵筆(タートル)を戻す……という意味合いになる。

Lが左に枝分かれして進む、Rが右に枝分かれして進む……というふうに拡張して描画させた例。コマンドはLR^4(LR)^∞とRL^4(RL)^∞の2つで同一スタート地点から実行

"[~]"で表す分岐(枝)の仕組みを表現する。この[~]の仕組みにより、幹に対して自在な小枝を生やすことが可能となる

図右の植物のように見えるものは全てL-SYSTEMによる文字変換規則を適用して生成したコマンドで描いたもの。[~]の中を描画し終わったら小枝の分岐点まで戻って同じルール適用に繰り返しだ

図は初期値Fで、置き換えルールは「F→FF-[-F+F+F]+[+F-F-F]」で、回転角を22°としたときの描画結果になる。文字変換の世代を多くすればするほど形状も複雑化して草木っぽい感じになる

このままだと結果が必ず同じになってしまう。つまり植物でいうならばクローンのようになってしまい個体差が現れない。動植物を表現する場合には規則性が露呈しては不自然だし、同一種としての相似性はあっても、多様性がほしい。

そこで、文字変換のアルゴリズムにさらに動的な要素として乱数要素を追加してやる。これがSTOCHASTIC L-SYSTEM(確率論的L-SYSTEM)だ。

枝分かれの確率を設定したり、あるいは枝分かれの仕方そのものを確率で切り換えたりすることでこの独自性を表現できる。

多様性を与えるために乱数要素を付加する

このSTOCHASTIC L-SYSTEMの概念を導入することで、1つの種から同じものができるのではなくて、1つの種から成長と共に個体差が出てくるということが表現できるようになるのだ。

ここまで示してきた図は2Dの平面のものなので、3Dグラフィックスとして利用するにはこれをさらに3Dへと次元を1つ増やす必要がある。

ラジコンの要領で進ませる絵筆の方向を平面から立体の三次元へ拡張し、さらには生成される枝の直径の概念も登場する。また、生成するのは枝だけではなく葉も必要になる。ちなみに、葉については葉の形状を同様なL-SYSTEMで記述して、これをポリゴン化して用いることが多いようだ。

描画軌跡の管理を3Dへと拡張する

具体的な例(下図)を1つ示すとしよう。

L-SYSTEMを三次元に拡張して立体的な植物モデルとする

この図のp1は3つの小枝に分岐することを表しており、葉っぱLが生え、新たな成長点Aが誕生する。Fは末端。「&」や「^」、「/」は絵筆を3D的にどの方向に制御するかの記号になる。「!」は枝の直径を減算する意味合いとなっていて、「'」は色に変化を与える演算子となっている。

全体としてみると3つの小枝に分かれ、各枝には葉、直径をすぼめた新たな成長点、さらに孫枝と葉を付ける……といった法則で成長を続けるモデルになっている。(続く)

(トライゼット西川善司)

82/99

インデックス

連載目次
第99回 3D立体視の解体新書 - 立体視という知覚(4)~単眼立体視と両眼立体視の有効範囲の考察
第98回 3D立体視の解体新書 - 立体視という知覚(3)~両眼立体視
第97回 3D立体視の解体新書 - 立体視という知覚(2)~単眼立体視(2)
第96回 3D立体視の解体新書 - 立体視という知覚(1)~単眼立体視(1)
第95回 人工知性でコンテンツを生成するプロシージャル技術(19)
第94回 人工知性でコンテンツを生成するプロシージャル技術(18)
第93回 人工知性でコンテンツを生成するプロシージャル技術(17)
第92回 人工知性でコンテンツを生成するプロシージャル技術(16)
第91回 人工知性でコンテンツを生成するプロシージャル技術(15)
第90回 人工知性でコンテンツを生成するプロシージャル技術(14)
第89回 人工知性でコンテンツを生成するプロシージャル技術(13)
第88回 人工知性でコンテンツを生成するプロシージャル技術(12)
第87回 人工知性でコンテンツを生成するプロシージャル技術(11)
第86回 人工知性でコンテンツを生成するプロシージャル技術(10)
第85回 人工知性でコンテンツを生成するプロシージャル技術(9)
第84回 人工知性でコンテンツを生成するプロシージャル技術(8)
第83回 人工知性でコンテンツを生成するプロシージャル技術(7)
第82回 人工知性でコンテンツを生成するプロシージャル技術(6)
第81回 人工知性でコンテンツを生成するプロシージャル技術(5)
第80回 人工知性でコンテンツを生成するプロシージャル技術(4)
第79回 人工知性でコンテンツを生成するプロシージャル技術(3)
第78回 人工知性でコンテンツを生成するプロシージャル技術(2)
第77回 人工知性でコンテンツを生成するプロシージャル技術(1)
第76回 3Dモデルの変形までが可能な動的PRT(5)~SH Exp演算の大胆な近似による高速化
第75回 3Dモデルの変形までが可能な動的PRT(4)~SH Log演算とSH Log次元における遮蔽の統合
第74回 3Dモデルの変形までが可能な動的PRT(3)~帯域調和関数(Zonal Harmonics)の導入
第73回 3Dモデルの変形までが可能な動的PRT(2)~SH LogとSH Expとは?
第72回 3Dモデルの変形までが可能な動的PRT(1)~3Dモデルの変形に対応した動的PRT技術の台頭
第71回 限定条件付き動的PRT(2)~PSF技法におけるライティング
第70回 限定条件付き動的PRT(1)~動的PRT第一段階PSF技法とは?
第69回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(4)
第68回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(3)
第67回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(2)
第66回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(1)
第65回 事前計算放射輝度伝搬(PRT)~PRTとは?
第64回 表面下散乱によるスキンシェーダ(8)~表面下散乱とスキンシェーダ(6)
第63回 表面下散乱によるスキンシェーダ(7)~表面下散乱とスキンシェーダ(5)
第62回 表面下散乱によるスキンシェーダ(6)~表面下散乱とスキンシェーダ(4)
第61回 表面下散乱によるスキンシェーダ(5)~表面下散乱とスキンシェーダ(3)
第60回 表面下散乱によるスキンシェーダ(4)~表面下散乱とスキンシェーダ(2)
第59回 表面下散乱によるスキンシェーダ(3)~表面下散乱とスキンシェーダ(1)
第58回 表面下散乱によるスキンシェーダ(2)~ハーフライフ2で採用の疑似ラジオシティライティング(2)
第57回 表面下散乱によるスキンシェーダ(1)~ハーフライフ2で採用の疑似ラジオシティライティング(1)
第56回 水面の表現(5)~大きな波
第55回 水面の表現(4)~水面のライティング(2)
第54回 水面の表現(3)~水面のライティング(1)
第53回 水面の表現(2)~動的なさざ波
第52回 水面の表現(1)~水面表現の歴史
第51回 HDRレンダリング(11)~トーンマッピング
第50回 HDRレンダリング(10)~HDRブルーム/グレア処理
第49回 HDRレンダリング(9)~HDRテクスチャ
第48回 HDRレンダリング(8)~HDRレンダーターゲット
第47回 HDRレンダリング(7)~HDRレンダリングのプロセス
第46回 HDRレンダリング(6)~HDRレンダリングの歴史と動向(2)
第45回 HDRレンダリング(5)~HDRレンダリングの歴史と動向(1)
第44回 HDRレンダリング(4)~HDRレンダリングの第三の効能
第43回 HDRレンダリング(3)~HDRレンダリングの第二の効能
第42回 HDRレンダリング(2)~HDRレンダリングの第一の効能
第41回 HDRレンダリング(1)~HDRレンダリングとは?
第40回 ジオメトリシェーダ(11)~ジオメトリシェーダを活用した新表現(7)
第39回 ジオメトリシェーダ(10)~ジオメトリシェーダを活用した新表現(6)
第38回 ジオメトリシェーダ(9)~ジオメトリシェーダを活用した新表現(5)
第37回 ジオメトリシェーダ(8)~ジオメトリシェーダを活用した新表現(4)
第36回 ジオメトリシェーダ(7)~ジオメトリシェーダを活用した新表現(3)
第35回 ジオメトリシェーダ(6)~ジオメトリシェーダを活用した新表現(2)
第34回 ジオメトリシェーダ(5)~ジオメトリシェーダを活用した新表現(1)
第33回 ジオメトリシェーダ(4)~ジオメトリシェーダのアクセラレーション的活用(4)
第32回 ジオメトリシェーダ(3)~ジオメトリシェーダのアクセラレーション的活用(3)
第31回 ジオメトリシェーダ(2)~ジオメトリシェーダのアクセラレーション的活用(2)
第30回 ジオメトリシェーダ(1)~ジオメトリシェーダのアクセラレーション的活用・ステンシルシャドウボリューム技法の影生成を加速する
第29回 影の生成(10)~改良型デプスシャドウ技法(5)
第28回 影の生成(9)~改良型デプスシャドウ技法(4)
第27回 影の生成(8)~改良型デプスシャドウ技法(3)
第26回 影の生成(7)~改良型デプスシャドウ技法(2)
第25回 影の生成(6)~改良型デプスシャドウ技法(1)
第24回 影の生成(5)~デプスシャドウ技法
第23回 影の生成(4)~ステンシルシャドウボリューム技法(2)
第22回 影の生成(3)~ステンシルシャドウボリューム技法(1)
第21回 影の生成(2)~投射テクスチャマッピング技法
第20回 影の生成(1)~3Dグラフィックスにおける2つのカゲの存在
第19回 バンプマッピングの先にあるもの(3)~セルフシャドウ付き視差遮蔽マッピング
第18回 バンプマッピングの先にあるもの(2)~視差遮蔽マッピング
第17回 バンプマッピングの先にあるもの(1)~視差マッピング
第16回 微細凹凸表現の基本形「法線マップ」(3)
第15回 微細凹凸表現の基本形「法線マップ」(2)
第14回 微細凹凸表現の基本形「法線マップ」(1)
第13回 3Dグラフィックスの概念とレンダリングパイプライン(5)
第12回 3Dグラフィックスの概念とレンダリングパイプライン(4)
第11回 3Dグラフィックスの概念とレンダリングパイプライン(3)
第10回 3Dグラフィックスの概念とレンダリングパイプライン(2)
第9回 3Dグラフィックスの概念とレンダリングパイプライン(1)
第8回 GPUとシェーダ技術の基礎知識(8)
第7回 GPUとシェーダ技術の基礎知識(7)
第6回 GPUとシェーダ技術の基礎知識(6)
第5回 GPUとシェーダ技術の基礎知識(5)
第4回 GPUとシェーダ技術の基礎知識(4)
第3回 GPUとシェーダ技術の基礎知識(3)
第2回 GPUとシェーダ技術の基礎知識(2)
第1回 GPUとシェーダ技術の基礎知識(1)

もっと見る

関連キーワード

人気記事

一覧

新着記事

羽鳥アナ、苦手な芸能人を実名告白「本気で困っている」
[07:00 8/31] エンタメ
テクノロジーとポップカルチャーの融合を日本で - 「東京コミコン」12月に開催
[07:00 8/31] 企業IT
ASUS ZenFone 3デザイナーが語るその秘密 - 日本投入は9月予定
[07:00 8/31] スマホとデジタル家電
電力事業者の新設が多い都道府県は?
[07:00 8/31] マネー
夫婦のLINE 第222回 ダメな所を認めることが逆説的に自己肯定につながる
[07:00 8/31] ライフスタイル