http://unlimiteddetailtechnology.com/
めんどくさがらず、一次ソース読んでみた。
- まず、このシステムは文字通りに「unlimited geometry」だそうです。文字通り、無限。ジオメトリ、無制限。
- Unlimited Detail は、3D エンジンというより検索アルゴリズムに近い。
- Unlimited Detail は基本的には点群の検索アルゴリズムです。
- 莫大な量の点情報を、とても小さく圧縮するなんか秘密なテクノロジがあるらしい
- このエンジンは、カメラが向いてる方向によって描画に必要な点データ (レンダリング解像度が 1024x768 だったら、1024x768 の点データ) だけを検索する。1ピクセルが1点データに対応するように。
- この検索には、いくつかの解決しなければならない扱いにくい事柄がある、例えば:どの物体がカメラに一番近いか? どの物体が他の物体を遮蔽しているか? 遡って(?)オブジェクトがどのくらいの大きさであるべきか?
- しかし、これらは我々が “mass connected processing” と呼ぶ新しい種類の手法によって解決されます。”Mass connected processing” は、我々が「データの塊を同時に処理する」そして「最終的に各パートに小さな変更を適用する」やりかたを持っているところです。
ということらしい。
てことはやはり、膨大なジオメトリ情報からレンダリングに必要なのだけを超高速に取り出す「動的な刈り込みLOD」みたいな技術のようだけど、どうやって超高速に取り出してるのか (Mass connected processing の部分) は不明。まあここがキモなのでそう簡単には教えませんよね。あとレンダリングについても不明。
あと、こういうアルゴリズムであるということは生のジオメトリデータに対してオフラインで何らかのインデックスとかメタデータとかをくっつけてる予感がするんですが、となるとアニメーションとかには非常に弱い感じになるんでしょうか?
確かに、デモ動画でもウォークスルーばかりで、アニメーションしてるところなかったし。ということで、予感が当たれば、地形なんかにはこれを使えるけどキャラクタアニメーションとかにはかなり向かない感じがします。(そして地形なんかにしても最近は草をなびかせたり物理シミュレーションで背景の破壊インタラクションなんかをやってるので、うーむという感じ……)
ある点が周りからどう遮蔽されているか、というのも動かないのであれば当然事前計算可能なので、環境遮蔽での大域照明っぽいことは出来るはずですね (デモ動画でも6:57秒あたりでやってますね) 。
大まかなアイディアは分かったけど細かいとこ全然わかんないので、西川善司さんに取材と解説をして欲しいところです(笑)