レイトレーシングやラジオシティなどのような、写実的三次元画像のレンダリングにおいて、ビュー角(viewing angle)が常に変化する場合には通常、大量の計算が必要であり、対話型アプリケーションに適用することは難しい。レイトレーシングは、観測者の目に入る異なる角度の光線のたどる軌跡を計算することにより写実的な画像を作り出す、コンピュータグラフィックにおいて用いられる技術である、と一般的に定義することができる。レイトレーシングは、光線が目までたどる道筋を模倣する。したがって、コンピュータはそれぞれの光線がどのように相互作用を起こすのかを計算する必要がある。
ラジオシティは、現実的なライティングを備えた三次元(3D)シーンのレンダリングのためのもう一つの技術である。ラジオシティマッピング(radiosity mapping)の背景にある理論は、概して、空間の一点についてラジオシティを事前計算(precalculating)して、オブジェクト上の他の全ての点に適用することにより、オブジェクト全体のラジオシティを近似できるというものである。これは主に、空間の近傍する点全てにおいて、ライティングがほぼ同じであることによる。ラジオシティのプログラムは、通常レイトレーシングのプログラムと補完関係にあり、ラジオシティのプログラムがレンダリングの前段階を構成する。
リアルタイムの写実的レンダリング性能の向上を試みて、これまでに多くの最適化の手法が用いられてきた。ほとんどの方法は、動的観点を扱うにあたって、モデルデータ構造のアップデートを最適化する。レイキャッシング(Ray-caching)やレンダーキャッシング(Render-caching)によるアプローチも似ているが、以前に見た角度に制限される。さらに、計算の高速化に近似が利用されていない。レイトレーシングを最適化するひとつの方法は、ライティングを固定し、ビュー角を固定することである。こうすることで、サーフェスが変わっても、以前に空間の点について計算した結果をキャッシュすることができる。しかしながら、ビュー角が変わるときには、その他のデータが変わらないとしても、レイトレーシングにおいては再びすべての三角形について横切る(traverse)ことを余儀なくされる。
他の最適化方法においては、特定の物質についての結果を事前計算することで、他の計算が不要となる。レイトレーシングにおける主な関心は、アルゴリズムを構成することにより、すべての三角形については、特に画面上に見えないものについては計算を不要とすることにある。
また他の最適化手法は、事前計算に似ているが、事前計算の方法と事前計算の結果を記憶する方法に違いがある。この手法は非特許文献1に記述されている。この手法は、ライティング環境の低変動次数(low variant order)を活用する。伝達スカラー関数とベクトル行列を事前計算することで、最終レンダリング段階を著しく高速化する。ただし、放射伝達関数とベクトル行列は実際のモデルサーフェスのサンプリング空間(sampled space)である。サンプリング空間において近似を行う。しかしながら、「動的低周波ライティング環境におけるリアルタイムレンダリングのための事前計算された放射伝達」は、サーフェスポイントをベースとするものではない。
Sloan, Kuatz, and Snyder, Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments, Proc. of SIGGRAPH '02, 527〜536
サーフェスをベースとするサンプリング方法を創造することで、複数のライティング値に渡り、複数のビュー角に渡って近似することができる。このため、サーフェスをベースとするサンプリングに係る発明は、非常に複雑なサーフェスを持つモデルの詳細な高次ライティングを扱うことができるであろう。
したがって、少なくとも従来の三次元レンダリングに伴う問題のいくつかに対処することができる、シェーディング結果をモデルサーフェス表現に組み込むことにより動的ビュー角からの写実的三次元レンダリングを向上させる方法が求められている。
本発明は、本明細書において大方、動的ビュー角からの写実的な三次元レンダリングを向上させるための方法およびシステムに関して記述されている。しかしながら、開示された方法に基づき稼働するためのシステムもまた本発明の範囲に入ることは当業者に理解されるところである。前記システムは、コンピュータプログラム、または複数の異なるコンピュータプログラムの部分の組み合わせによって実行することが可能である。
本発明はまた、ディスク、またはその他データ処理システムに使用するのに適切な記憶媒体などの、コンピュータプログラム製品によっても実施することができる。適切なプログラム手段を有するコンピュータによって、プログラム製品に実装された本発明の方法のステップが実施可能であることは当業者に認識されるところである。本明細書に記述された大方の実施例はコンピュータハードウェアにインストールされ、実行されるソフトウェアについてのものであるが、ファームウェアやハードウェアとして実装される代替的な実施例も本発明の範囲に含まれることは、当業者に認識されるところである。
図1は、コンピュータによりレンダリングされた特定のビュー角からみたシーンの例を示す図である。図1の例は、像104とテーブル106で構成される部屋108を含むシーンを表示するモニター102を含む。像とテーブルの両者が光を反射もしくは拡散するサーフェスから構成される。
図2には別の選択されたビュー角から見た、コンピュータによりレンダリングされたシーンが示されている。図2の例は、同じ像104と同じテーブル106で構成される同じ部屋108を含むシーンを表示する同じモニター102を含む。図1と図2の違いは、レンダリングされたシーンのビュー角にある。ビュー角が変化すると、シーン中のサーフェスによって反射されるライティングもまた変化する。
図3は、図1および図2の異なるビュー角から見たレンダリングのために適切なコンピュータシステムを示す図である。本明細書において、コンピュータとは任意の自動化された計算装置をいう。したがって、コンピュータという語は一般的な用途のコンピュータ、たとえばノート型コンピュータ、パーソナルコンピュータ、ミニコンピュータ、メインフレーム等のみならず携帯情報端末(PDA)、ネットワーク可能な携帯機器、インターネット接続可能な携帯電話なども含む。より詳細な説明のため、図1および図2のシーンを見るのに用いられるコンピュータ103を有する、自動計算装置のブロック図を図3に示す。図3のコンピュータ103は、少なくとも一つのコンピュータプロセッサ256、つまりCPUと共に、ランダムアクセスメモリ(RAM)268を含む。RAM268には、アプリケーションプログラム252が記憶されている。本発明の様々な実施例において用いられるアプリケーションプログラムには、ブラウザ、ワードプロセッサ、表計算プログラム、データベース管理システム、Eメールクライアント、TCP/IPクライアントなどを含むことは、当業者に理解されるところである。コンピュータ103が3次元シーンをレンダリングするために動作する場合、アプリケーション252は3次元レンダリングソフトウェアを含む。3次元レンダリングソフトウェアの例には、エイリアス社のMAYA(登録商標)、ソフトイメージ(登録商標)、エイリアス社の3DSMax(登録商標)などを含む。
RAM268にはまた、オペレーティングシステム254も記録されている。本発明の実施例によるコンピュータに使用可能なオペレーティングステムとしては、Unix(登録商標)、Linux(登録商標)、マイクロソフトNT(登録商標)、その他当業者に想起されるものを含む。TCP/IPクライアントのようなトランスポート層およびネットワーク層のソフトウェアクライアントは、典型的にはオペレーティングシステムの構成要素として提供される。前記オペレーティングシステムには、マイクロソフトウィンドウズ(登録商標)、IBMのAIX(登録商標)、Linuxなどが含まれる。図3の例では、オペレーティングシステム254は入力装置281、ディスプレイ280をも有する。入力装置の例としては、デジタルカメラ299、ウェブカメラ、マウス、キーボード、数値キーパット、タッチスクリーン、マイクなどを含む。レンダリングするシーンのビュー角を選択する方法の一例として、ライブシーンを記録しているカメラ299のビュー角を調整する方法がある。ディスプレイ装置の例としては、モニタ、液晶(LCD)ディスプレイ、グラフィックユーザインタフェース画面、テキスト画面、タッチスクリーン(touch sensitive screen)、点字ディスプレイ(Braille display)などがある。モニタ、液晶ディスプレイなどのディスプレイ装置は、三次元レンダリングシーンを表示することができる。
図3の例のコンピュータでは、システムバス260によってプロセッサ256およびその他のコンピュータの構成要素に結合されたコンピュータメモリ266を含む。コンピュータメモリ266は、ハードディスクドライブ270、光ディスクドライブ272、EEPROM(登録商標)またはフラッシュメモリ274、RAMドライブ(図示せず)またはその他の当業者に想起され得るコンピュータメモリとして実装されてもよい。図3に示すコンピュータ103の例は、他のコンピュータ282へのデータ通信284の接続を構築する通信アダプター267を含む。通信アダプター267は、ハードウェアレベルでのデータ通信接続を構築し、このデータ通信接続を通じてクライアントコンピュータとサーバーがデータ通信を互いに直接、またはネットワークを介して送信する。通信アダプター267の例は、有線ダイヤルアップ接続用モデム、有線LAN接続用イーサネット(登録商標)アダプター(IEEE802.3)、無線LAN接続用802.11アダプター、無線マイクロLAN接続用ブルートゥース(登録商標)アダプターを含む。
図3に示すコンピュータ103の例は1以上のインタフェースアダプター278を含む。コンピュータ103の入出力インタフェースアダプター278は、入力装置281およびディスプレイ装置280への、またはこれらからの入出力を構築する機器を含む。図3の例では、アプリケーション252は、入力装置を通して受信されたコンピュータ資源へのアクセスのためのユーザ主体の入出力により表現された要求を、オペレーティングシステムのアクセス機能255によって制御し、実行する。オペレーティングシステムのアクセス機能255はコンピュータ資源へのアクセスを許可してもよく、その結果、1またはそれ以上の入出力インタフェースアダプター278を通じて、ディスプレイ装置を通して要求者に返されることになる。アクセス機能255の例として、特に、ファイルへのアクセス許可に影響を及ぼすことでコンピュータ資源へのアクセスを制御するUnixの「chmod」のようなオペレーティングシステムの機能がある。
アプリケーションソフトウェア252は、本発明の実施例を実行するために、プラグイン、カーネル機能の拡張、ソースコードレベルの本発明にそった変更などで換えることができる。別の選択技として、本発明の実施例を構築するために、ゼロから新しいアプリケーションまたはオペレーティングシステムソフトウェアを開発することもできる。
図4は、動的ビュー角からの写実的三次元レンダリング方法を示す。写実的レンダリングは、拡散サーフェス、ライティング、シャドウ、シェーデングその他の写実的特徴をレンダリングすることができる。本明細書において「動的ビュー角」とは、次々と変化し、固定されていないビュー角をいう。
図4の方法では、まずステップ302において、任意のビュー角を選ぶステップから始まる。ビュー角を選ぶステップは、コンピュータプログラムによって、キーボード、マウス、またはその他の当業者に想起され得るユーザのコンピュータへのアクセスによって実行される。ビュー角は、写実的三次元レンダリングにおいて典型的に含まれる多数の変数の一つである。変数の例としては、光源の数、シーン中のオブジェクトの数、動くオブジェクトなどが含まれる。
ステップ302においてビュー角を選択した後、図4の方法は、さらに、シェーディング結果を事前計算するステップ304を含む。シェーディング結果の事前計算は典型的には、シーンに含まれるそれぞれのサブサーフェスのシェーディング結果の計算によって実行することができる。
シェーディング結果を事前計算した後、図4の方法は、シェーディング結果について式を作るステップ306を含む。シェーディング結果についての式は、多項方程式の形をとることができる。前記式はさらに、典型的には、別の多項方程式の形で定義される近傍のサーフェスと共に、サーフェスを定義することができる。
ステップ306において、シェーディング結果に対して式を作った後、図4の方法は、サーフェスを前記式にマッチングさせるステップ308および、シーンにおいて、前記サーフェスと他のサーフェスをレンダリングするステップ310を含む。
図5には、動的ビュー角からの写実的三次元レンダリング方法の例を4つのフェーズに示す。図5の例において、最初のフェーズは事前計算フェーズ402である。事前計算フェーズ402は、ラジオシティおよびレイトレーシングから得られたシェーディング結果を事前計算するステップを含む。シーンのラジオシティは典型的には、モンテカルロ法、確率的レイ法、またはその他の当業者が想起し得る方法によって実行することができる。
レイトレーシングの方法は、前進、後退、分布レイトレーシングおよびその他の当業者が想起しうる方法を含む。前進レイトレーシングは、光源から放射された光線を追跡し、サーフェスにおける数々の反射を経てその行き着く先を決定する。後退レイトレーシングは、シーンの異なる角度に投射される光線をシーン中のサーフェスに至るまで追跡することによって行われる。ここでそのサーフェスにおける光の総量は、1以上の光源までの距離を評価することによって計算される。前進および後退レイトレーシングの組み合わせは、分布レイトレーシングと呼ばれる。確率的レイトレーシングは、極度に複雑なシーンのシミュレーションに用いられる。当該技術分野において、これらのレイトレーシングの計算をするための様々なアルゴリズムが存在し、レイトレーシングによるシェーディング結果の事前計算に用いることができる。レイトレーシングのアルゴリズムは再帰的なコンピュータ関数、および3DSMAX、ソフトイメージのような三次元レンダリングソフトウェアに含まれる関数を含む。
事前計算フェーズ402の次のフェーズは、近似フェーズ404である。このフェーズにおいて、ビュー角を変数とする事前計算されたシェーディング結果は、サーフェスを表現する式を作るのに用いられる。近似フェーズ404は、サーフェスを表現する式とサーフェスとをマッチングさせるステップを含む。
一例として、動的ビュー角からの写実的三次元レンダリング方法によってレンダリングされる三次元シーンが、光源のみを構成要素として有するとき、多項方程式または式は、1次の多項方程式または式として表現される。反射面または鏡面のような要素が加わると、多項方程式または式の次数は2次また3次に増加する。サーフェスを表現する多項方程式の次数はまた、記憶装置の制限にもよる。
サーフェスを式にマッチングさせるステップは多項方程式または式の係数を計算するステップを含み、多項方程式の係数について解くことで実現される。多項方程式の係数を計算する方法の一例は、その次数のために無視できると考えられる係数を多項方程式または式から切り捨てることである。したがって、この現実の方法例においては、主要な係数のみ取り上げることを要する。
近似フェーズ404に続くのは圧縮フェーズ406である。近似フェーズ404においてサーフェスを表現する式とマッチングされたサーフェスは、式または多項方程式で定義された近傍のサブサーフェスを有する。ある近傍のサブサーフェスがシーンにおいて再び使用され得る場合、その近傍のサブサーフェスの多項方程式または式は圧縮され得る。例えば、ある近傍のサブサーフェスが別の近傍のサーフェスと同じ投影された画素値を有するとき、第一のサーフェスに対応する式は、コンピュータの記憶装置スペースを節約するために圧縮され得る。投影された画素値は、選択されたビュー角を用いて、多項方程式または式の値を求めることで得られる。ビュー角は、任意のビュー角でよい。圧縮するとは、データ(この例でいえば、式を記憶しているデータ)を変換して、記憶または伝送に必要なスペースを最小化することである。近傍のサーフェスの圧縮の程度については、範囲を設定する必要がある。
近傍のサーフェスの式または多項方程式を圧縮するには、一般的にリアルタイム要求を満たすために伸長(decompression)方法を選択する必要がある。圧縮度が高すぎたり、圧縮されている近傍のサーフェスの式の数が多すぎる場合には、伸長のレートが遅すぎて、リアルタイムでレンダリング結果を得ることができない。近傍のサーフェスの式の圧縮は記憶容量による。例えば、記憶装置が多項方程式または式を収めるのに4ワードしか許容しない場合を考える。この例においては、多項方程式または式を4ワードに圧縮するのに適切な圧縮アルゴリズムが用いられる。この過程において有用な典型的な圧縮アルゴリズムは、zip、rar、その他当業者に想起され得るものを含む。
プログラミングにおいてワードとは、コンピュータに固有のデータのサイズをいう。ワードのサイズはCPUに依存し、コンピュータによって異なる。16ビットCPUのコンピュータにおいては、ワードは16ビット(2バイト)である。大型のメインフレームにおいてはワードは64ビット(8バイト)にも長くなりうる、等である。
リアルタイムとは、現実生活でイベントが起きるのと同じ速さで、コンピュータがシミュレーションすることをいう。例えば、リアルタイムプログラムは、オブジェクトが実際に動く速さと同じ速さで画面を横切る表示をする。グラフィックレンダリングにおいては、リアルタイムは典型的には毎秒15フレームまたはそれ以上のフレーム速度を要する。
図5の例において最後のフェーズは、リアルタイムレンダリングフェーズ410である。レンダリングフェーズにおいては、画素値を計算することによって画素が画面に投影される。画素のレンダリングは、三角形から視点への、光線−画素交差法(ray-pixel intersection)、または視点から画素への、光線−三角形交差法(ray-triangle intersection)を用いることで実行される。これら二つの交差方法は本発明の範囲を制限するものではない。当業者において想起されうる他のレンダリング方法も本発明の実施に用いられ、本発明の範囲に入るものである。
一例として、視点から画素への、光線−三角形交差法においては、光線は目からそれぞれの画素を通り、物体と交差するかどうかテストされる。視点から画素への、光線−三角形交差法を実行するには様々な異なる方法がある。視点から画素への、光線−三角形交差法の結果を計算するために、再帰的なアルゴリズムを用いることができる。視点から画素への、光線−三角形交差法を用いた実施例の中では、図の画素値は単純に動的ビュー角を、視点から画素への、光線−三角形交差法によって計算された対応する三角形に関連づけられた式に適用することによって計算される。
光線が放射されたのちに、複数回のトリップ(trip)および、反射拡散の分析を必要とする従来のレイトレーシング法に比べて、本発明による実施例は1回のトリップでレイトレーシングを実行することができる。この実施例においては、光線を一回放射するのみで十分である。なぜならば、ビュー角をそれぞれの点に対して計算された係数を持つ式にあてはめることによって、その係数とともにビュー角がそれぞれ訪れたポイントにおけるカラー値を記述するからである。
本発明の様々な実施例において、その本質を外れない範囲における修正変更が可能であることは、以上の記述から理解される。本明細書は説明のためのみに記述されており、本発明の範囲を制限するものではない。本発明の範囲はクレームの記述によってのみ制限される。