Comments
Description
Transcript
3DCG作成に於けるアルゴリズム
3 D CG作成に於 けるアル ゴ リズ ム ~リアリティの追求~ 奈良女子大学附属中等教育学校 4年B組❨高校一年❩ 村井 幸輝郎 1 3 D CG作成に於 けるアル ゴ リズ ム ~リアリティの追求~ はじめに 私は小学生のことから3DCGに興味があり、Shadeというソフトウェアで様々なシー ンを作成してきた。その過程で、様々な疑問が幾つも浮かんできたため、その都 度、書籍で調べて仕組みを理解してきた。私が実際に作成したシーンを例に挙げた り、アルゴリズムを図示することによって、その一部を紹介したいと思う。 モデリング モデリングは3DCG作成時に最も重要な過程で、再現された3D空間上に点を追加し ていき、面や線を作成する工程である。この作業は映画等のプロダクションにで は、殆どアーティストの仕事であるが、非常に興味深いアルゴリズムを使用してその 人件費を削減したり、手作業では不可能な精密モデルを作成している事例がある。 Image Based Modeling (and Rendering) イメージベーストモデリングとは、読んで字のごとく、撮影されたデジタルイメージ をもとに3Dを復元する手法で、現実に存在する物体を出来るだけ多くの方向から撮 影することにより、その物体の3Dモデルを作成するというもので ある。これは、高等動物、特に肉食動物は2つの眼 を持ち、それらで同じ領域を観察 キャプチャ対象 することにより立体感をつかんで いるのと全く同じ原理であり、プ ログラミング作業もそれほど困難 なわけではない。 まず、プログラムは入力された画像を配 列的に扱う。画像は複数あるが、隣り合う 二枚の画像はカメラ位置も隣り合っている。 ラ メ カ プログラムはn枚目の画像と❨n+1❩枚目の画像に 2 ついて、それぞれ 色の特徴的な部分を複数個見つける。 ここでいう”特徴的”、と は、色のRGBそれぞれを、座標とその数値についてグラフ化し、微分した時にグラ フの傾きが周囲より特に大きかったり小さかったりする場所であると定義されるこ とが多い。例えば、もしも固定電話機をキャプチャする場合なら、そのボタン上の 文字等が特徴的であると認識されるだろう。 その特徴的な部分について、n枚目のものと❨n+1❩枚目のものでどれだけ座標がずれ ているかを調べ、その点がカメラからどれだけ離れているかを求める。次に、❨n +1❩枚目の画像と❨n+2❩枚目の画像を比較し、同じように特徴的な部分を見つけ、そ の点とカメラとの距離を求める。そうすることにより、特徴的な点の空間上の座標 が分かり、プログラム内で形状の概要が完成する。 次に、各々の特徴的な点の周囲のパターン同士を比較し、その周囲の模様のずれか ら、その形状の表面の形が判明し、精密なモデルが完成する。また、テクスチャは 撮影された写真から貼付けられる。 この方法では、精密な3Dモデルの作成が可能だが、”特徴的な点”や”周りの模様”な どでは人間のチェックが入ることが多い。しかし、最終的なテクスチャ貼付け時に 於いて、写真に写っている陰や影もテクスチャとして認識されてしまうため、完全 にアルゴリズムまかせ、というわけにはいかないようである。 モーション 3Dで動画を作成する場合、3D形状やカメラや光源情報をフレームごとに変化させる 作業が必要になり、多くのキャラクターアニメーションでは人の手による作業(こ れを手付けと呼ぶ)が行われる。その一方で、最近の映画等ではアルゴリズムの助 けを借りて簡単に精密なモーションを作成していることが多い。 Motion Caputuring モーションキャプチャと呼ばれるこの方法は、人間的な動きをする非人間の物体の 動きを再現する時に使われることが多い。モーションキャプチャでは、俳優の関節 に発信器を付けるか、特殊なカメラで写るような玉を付ける。この発信器のデータ は、コンピュータに送られ、連続的なベクトルデータとなる。これをもとに3Dの 3 キャラクターに埋め込まれた関節(ボーンとジョイント)を動かし、動画を作成す る。 Dynamics ダイナミクスとは、3Dの物体の振る舞いを 物理的に計算する手法で、非常によく用い られる。現在、ダイナミクスによって、あ る程度物理的に正しく再現できるものとし て、多体重力計算、落下、衝突、バネなど がある。物理的な正確性に少し欠けるもの としては、水しぶき等の流体、粉砕等の表 現などがある。どのような計算でも、微分や積分時のdtが充分に小さくなかった り、非線形方程式を解く際に無理のある仮定がなされていると、正確性に欠けるの である。ダイナミクスでは、計算する対象となる物理方程式を解き、物体の座標に 反映させるという単純な作業で実現できる。例えば、私事だが多体重力計算では、 質量と座標の規定された物体が互いに万有引力によって引き寄せられるシーンをシ ミュレーションし、夏のセミナーでバタフライ効果についての検証として発表させ ていただいた。このように、ダイナミクスは映画等で使われる他、物理計算の結果 をビジュアルに表現するために使われることがある。以下は、傘に見立てたオレン ジ色の物体に雨粒に見立てたブルーの球体が反射するシミュレーションである。 Others ダイナミクスとは言い難いが、 同じように計算によって自動 的に物体を動かす方法がいくつ かあるが、ここではオブジェ クト追跡を取り上げる。オブ ジェクト追跡とは、あるオブ ジェクトを別のオブジェクトが 追いかけるというもので、鳥や 4 魚群のシミュレーションに使われたり、戦争シーンでのミサイルのモーション作成 に使われたりする。これは非常に簡単で、まずオブジェクトには慣性の法則が適応 される。そして、❨ターゲットとの距離❩^a❨aは2付近であることが多い❩を加算し、 空気抵抗を加えることによってそれなりのシーンが出来上がる。今回は、以前に作 成したイルカの群集計算を紹介する。アルゴリズムは上記のものに、個体差による ランダム性を加えただけである。 レンダリング 作成された形状は単に[x,y,z]の配列の集まりと表面情報だけでしかなく、眼に見え る形になっていない。そこで、オブジェクトを”撮影”する作業が必要になるが、これ をレンダリングと呼ぶ。レンダリングにはいくつかの手法があり、映画等では最高 品質を得るためにレンダリングに時間がかかるのは許容されるが、バーチャルリア リティでのリアルタイムフィードバック等では品質は少し下げても速度が優先され る。そこで、Shadeに搭載されたレンダリングエンジンを使い分け、一つのシーンを レンダリングし、品質と処理時間を比べてみた。 Wire Frame ワイヤーフレームレンダラーでは、各頂 点の座標とカメラの座標から三角比で 画面上の位置を計算し、頂点を結んで 稜線を描く。光の計算は一切しないた め、また、非常に高速な描画が可能で あるため、ダイナミクスシミュレーショ ン結果の参照には適している。建築 パース作成時等にも非常に細かい部分ま Wire Frame 1秒以下 でレンダリングされるが、アートとして の価値は少なく、リアリティの追求と 5 言う面では適さない。 OpenGL OpenGLは、近年ほぼ全てのハードウェ アでアクセラレーションが有効になっ ており、特にMac OS Xで優れたパ フォーマンスを発揮する。 高速である ことから、バーチャルリアリティには適 していると言える。 しかし、デフォル トでは影が出せなかったり、テクス Open GL 1秒以下 チャサイズは2^nに制限されているの で、映画レベルでは使えない。 Scan Line スキャンラインは影、透明度が表現で き、OpenGLと比べると非常にリアルな 表現が可能になる。しかし、影の境界 があやふやであったり、透明な物体の 屈折が表現できなかったり等、細部で はデメリットも目立つ。 Scan Line 4秒 Ray Tracing レイトレーシングでは、カメラから画 素数だけのレイを飛ばし、そのレイが 物体に衝突すれば反射させたり屈折さ せたりして、その都度色情報を加算 し、最終的なピクセルの色を求める手 法である。屈折や影、さらには透過 コースティクスまで表現可能であるが、 Ray Tracing 36秒 どことなくCG臭さの残るレンダラーで 6 ある。アルゴリズムを図示すると、以下のようになる。光源からの光をたくさん分 散させてカメラに届くものを拾う方法では、光源からのレイのほとんどがカメラに 入らないことから効率が悪く、カメラからレイを飛ばした方が、あるピクセル[x,y] での色情報[r,g,b]を確実に取得できる。 光源 この他にも、物体とぶつかった時点で、 ぶつかった座標とカメラの座標間の距離 ラ メ カ が大きければ大きい ほど走査範囲を広 物体 げることによっ て、被写界深度に よる擬似的なピンぼ けを表現できる。レイ トレーシングは、実際 物体 に数年前まではハリ ウッドでも多く使われて いたもので、複数光源に よる擬似的な天空光等と組 み合せることによて現実に近いイメージを生成 できる。 Path Tracing パストレーシングは、レイトレーシン グを進化させた形のレンダラーで、グ ローバルイルミネーションに対応してい る。グローバルイルミネーションとは、 物体が別の物体を照らすことで、リアル なシーンの作成には不可欠なアルゴリズ ムである。また、左の画像ではフォト ンマップも併用しているため、コース Path Tracing 34428秒 ティクスがさらにリアルに表現されてい る。アルゴリズムを図示すると、以下の ようになる。 7 光源 ラ メ カ 物体 物体 これは、カメラから出た黄色いレイが左下の物体で幾つにも反射し、それが右上の 物体でまた幾つにも反射し...ということを続け、その環境光を再現しているもので ある。パストレーシングはこの方法を使って色を加算していき、ピクセルの色を求 める。また、光源からの光を先に計算し、その結果を基に作成された3Dマップをテ クスチャとして貼付けることによって、コースティクスが表現される。 因みに、表紙のCGは、パストレーシングを使い、被写界深度をもとにDOFピンぼけ を再現している。 結論 以上のように、CGはアートとして認められているが、その根底には多くの数学的ア ルゴリズムの支えが存在し、まだまだ研究の余地がありそうである。特に、現在で は市販のパソコンでも64BitCPUが使われ、バーチャルリアリティまでは行かなくと 8 も、個人で楽しむ程度ならパストレーシング等のGIレンダラーを存分に活用できる 時代になっている。 補足 紹介したシーンについて、今年度中のみインターネット上で公開する。アドレスは、 • イルカ:http://homepage.mac.com/n_kent/Yukirou/Dolphin.mov • 傘: http://homepage.mac.com/n_kent/Yukirou/Rain.mov • ワイヤーフレーム: http://homepage.mac.com/n_kent/Yukirou/wireframe.tif • OpenGL: http://homepage.mac.com/n_kent/Yukirou/opengl.tif • スキャンライン: http://homepage.mac.com/n_kent/Yukirou/scanline.tif • レイトレーシング: http://homepage.mac.com/n_kent/Yukirou/raytracing.tif • パストレーシング: http://homepage.mac.com/n_kent/Yukirou/pathtracing.tif • 表紙: http://homepage.mac.com/n_kent/Yukirou/cover.tif 謝辞 夏の数理の翼セミナーに参加させていただいたことを契機にして、今回貴重な紙面 を頂いたことに感謝いたします。また、データ公開に於いて、友人のHPの一部をお 借りすることになり、快く引き受けて下さった友人に感謝します。 使用環境 CPU Power PC G5 1.8GHz ❨G5 は64Bit❩ RAM 2GB ❨1GB x 2❩ OS 3 D ソ フ ト Shade 6 professional for Mac 開発環境 Mac OS “Tiger” 10.4.3 Xcode 2.2.1 , Cocoa.framework , AppleScript 9