(57)【要約】【課題】  リアルな表現をリアルタイムでレンダリングするためのシェーディング方式を提供できる方法ならびに装置を提供すること。【解決手段】  高解像度のライティング特性を与えてイメージをレンダリングするための方法が提供される。この方法では、まず、イメージに対応するテクスチャマップを生成する。テクスチャマップは、テクセルによって定義される。続いて、各テクセルについてライティング特性を表す値を計算する。次に、この値を記憶する。続いて、テクスチャマップの座標空間をディスプレイスクリーンの座標空間と対応付ける。次に、記憶した値を使用して、イメージをディスプレイスクリーンにレンダリングする。また、オブジェクトのイメージのライティング特性をテクスチャマップに組み込むための方法が提供される。さらに、リアルタイムシャドウイング効果を提示するように構成される演算装置および集積回路が提供される。【選択図】図６
2005071368.tif 000002
【特許請求の範囲】
【請求項１】
高解像度のライティング特性を有するイメージをレンダリングするための方法であって、
前記イメージと対応し、テクセルによって定義されるテクスチャマップを生成する操作と、
前記テクセルの各々のライティング特性を表す値を計算する操作と、
前記値を記憶する操作と、
前記テクスチャマップの座標空間をディスプレイスクリーンの座標空間と対応付ける操作と、
記憶した前記値を使用して前記イメージをディスプレイスクリーンにレンダリングする操作と、を有する方法。
【請求項２】
前記テクセルの各々のライティング特性を表す値を計算する前記操作は、
前記テクセルのうちの１つに対応するポイントからの可視性を求める操作と、
入射光線の分布を求める操作と、を有する請求項１に記載の方法。
【請求項３】
遮蔽関数を適用して前記可視性を求め、かつレイトレーシングを適用して入射光の前記分布を求める請求項２に記載の方法。
【請求項４】
前記テクセルの各々のライティング特性を表す値を計算する前記操作は、
第１の解像度に対応するイメージを定義する操作と、
基底関数を適用して前記値を求める操作と、を有する請求項１に記載の方法。
【請求項５】
前記値は複数の係数によって表される請求項４に記載の方法。
【請求項６】
ディスプレイスクリーン上の前記イメージは、前記第１の解像度よりも低い第２の解像度に対応する請求項４に記載の方法。
【請求項７】
基底関数を適用して前記値を求める前記操作は、
伝達関数を実行して前記値を得る操作を含む請求項４に記載の方法。
【請求項８】
オブジェクトのイメージのライティング特性をテクスチャマップに組み込むための方法であって、
前記イメージと対応するテクスチャマップを定義する操作と、
前記テクスチャマップのテクセルに対応するライティング特性を求める操作と、
前記テクセルを前記ライティング特性と対応付ける操作と、を有する方法。
【請求項９】
前記テクスチャマップのテクセルに対応するライティング特性を求める前記操作は、
前記イメージ上のポイントを識別する操作と、
基底関数を適用して、ライティング特性を表す係数を求める操作と、を有する請求項８に記載の方法。
【請求項１０】
前記イメージをディスプレイスクリーンにレンダリングする操作をさらに含み、前記ライティング特性は、表示しようとしている前記イメージに対応するシャドウを定義する請求項８に記載の方法。
【請求項１１】
前記ディスプレイスクリーン上の前記イメージは第１の解像度に対応しており、前記イメージは第２の解像度に対応しており、前記第１の解像度は前記第２の解像度よりも低い請求項１０に記載の方法。
【請求項１２】
前記ライティング特性は、自己シャドウイング成分および自己相互反射成分を含む請求項８に記載の方法。
【請求項１３】
前記テクスチャマップのテクセルに対応するライティング特性を求める前記操作は、
光源が移動したときに前記ライティング特性の輝度が変動しないような前記ライティング特性の輝度を計算する操作を含む請求項８に記載の方法。
【請求項１４】
前記ライティング特性は伝達関数から導出される請求項８に記載の方法。
【請求項１５】
前記伝達関数は、前記イメージの表面から反射される光を表す値を計算する請求項１４に記載の方法。
【請求項１６】
イメージをレンダリングするための方法であって、
前記イメージと対応するテクスチャマップを定義する操作と、
多方位信号に対応する値を前記テクスチャマップのテクセルと対応付ける操作と、
前記テクセルに対応付けられたピクセルの輝度を求める操作と、を含み、この操作は、
前記テクセルに対応付けられた前記値にアクセスする操作と、
光源成分を表す数量に前記値を適用する操作と、を有する方法。
【請求項１７】
多方位信号に対応する値を前記テクスチャマップのテクセルと対応付ける操作は、前記テクセルに対応付けられたポイントに対して、入射光のうち球面全体で反射される光を表す関数を計算する操作を含む請求項１６に記載の方法。
【請求項１８】
多方位信号に対応する値を前記テクスチャマップのテクセルと対応付ける前記操作は、前記テクセルに対応付けられたデータと共に前記値を挿入する操作を含む請求項１６に記載の方法。
【請求項１９】
前記輝度を有する前記ピクセルを表示する操作をさらに含む請求項１６に記載の方法。
【請求項２０】
光源成分を表す数量に前記値を適用する操作は、
反射される光を表す前記関数および前記光源成分から球面調和係数を導出する関数を投射する操作と、
反射される光を表す前記関数および前記球面調和係数を導出する前記関数の積の積分を定義する操作と、を有する請求項１７に記載の方法。
【請求項２１】
前記積分が前記関数のそれぞれの係数の内積に等しい請求項２０に記載の方法。
【請求項２２】
高解像度のライティング特性を与えてイメージをレンダリングするプログラム命令を含むコンピュータ可読媒体であって、
前記イメージに対応するテクスチャマップのテクセルに対応付けられたライティング特性値にアクセスするプログラム命令と、
前記テクスチャマップの座標空間をディスプレイスクリーンの座標空間と対応付けるプログラム命令と、
ディスプレイスクリーンに表現するために、前記ライティング特性値を対応するピクセルに適用するプログラム命令と、を有するコンピュータ可読媒体。
【請求項２３】
前記テクスチャマップの座標空間をディスプレイスクリーンの座標空間と対応付ける前記プログラム命令は、
前記テクスチャマップの座標空間を前記ディスプレイスクリーンの座標空間にマッピングするプログラム命令を含む請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
前記ディスプレイスクリーンに表現するために、前記ライティング特性値を対応するピクセルに適用する前記プログラム命令は、
前記ライティング特性の係数と入射光を表す係数とを乗ずるプログラム命令を含む請求項２２に記載のコンピュータ可読媒体。
【請求項２５】
前記ライティング特性は球面調和ベースの関数から導出される請求項２２のコンピュータ可読媒体。
【請求項２６】
オブジェクトのイメージのライティング特性をテクスチャマップに組み込むプログラム命令を含むコンピュータ可読媒体であって、
イメージと対応付けられたテクスチャマップを定義するプログラム命令と、
前記テクスチャマップのテクセルと対応するライティング特性を求めるプログラム命令と、
前記テクセルを前記テクスチャマップと対応付けるプログラム命令と、を有するコンピュータ可読媒体。
【請求項２７】
前記テクスチャマップのテクセルと対応するライティング特性を求める前記プログラム命令は、
前記イメージ上のポイントを識別するプログラム命令と、
球面基底関数を適用することによって、前記ライティング特性を表す係数を計算するプログラム命令と、を有する請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
前記ライティング特性は、自己シャドウイング成分および自己相互反射成分を含む請求項２６に記載のコンピュータ可読媒体。
【請求項２９】
前記テクスチャマップのテクセルと対応するライティング特性を求める前記プログラム命令は、
光源が移動したときに前記ライティング特性の輝度が変動しないような前記ライティング特性の輝度を計算するプログラム命令を含む請求項２６に記載のコンピュータ可読媒体。
【請求項３０】
前記ライティング特性は伝達関数から導出される請求項２６に記載のコンピュータ可読媒体。
【請求項３１】
前記伝達関数は前記イメージの表面から反射される光を表す値を決定するように構成される請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
演算装置であって、
イメージと対応付けられたテクスチャマップを表すデータを記憶可能なメモリを有し、前記テクスチャマップはテクセルを含み、前記テクセルは基底関数に従って前記テクセル内のポイントに対するライトフィールドを記述しているデータに対応付けられたものであり、
前記テクセルを、前記演算装置に接続されたディスプレイスクリーンに対応付けられているピクセルにマップするロジックと、
前記ライトフィールドを記述している前記データにアクセスするロジックと、
前記ライトフィールドを記述している前記データに基づいて前記ピクセルに対応する輝度を求めるロジックと、
前記ディスプレイスクリーンに前記ピクセルの前記輝度を表現できるようにするロジックと、を有する演算装置。
【請求項３３】
前記演算装置は、ビデオゲーム機およびサーバのうちのいずれかである請求項３２に記載の演算装置。
【請求項３４】
前記演算装置に接続されたディスプレイスクリーンをさらに有する請求項３２に記載の演算装置。
【請求項３５】
前記ライトフィールドを記述している前記データに基づいて前記ピクセルに対応する輝度を求める前記ロジックは、
入射するイルミネーション値を求めるロジックと、
前記入射するイルミネーション値をライトフィールドを記述している前記データと結合するロジックと、を有する請求項３２に記載の演算装置。
【請求項３６】
集積回路であって、
イメージに対応付けられた自己シャドウ特性および自己相互反射特性に対応するデータを記憶可能なメモリと、
前記データにアクセスする回路と、
前記データとイルミネーション値との積に基づいてピクセルに対応する輝度を求める回路と、
前記ディスプレイスクリーンに前記ピクセルの輝度を表現できるようにする回路と、を有する集積回路。
【請求項３７】
前記イメージはビデオゲームに対応付けられる請求項３６の集積回路。
【請求項３８】
前記集積回路はビデオゲーム機に組み込まれる請求項３６の集積回路。
【請求項３９】
前記データはメモリに記憶されるテクスチャマップのテクセルに対応付けられる請求項３６の集積回路。
【請求項４０】
検索テーブルが前記テクセルを前記ピクセルにマップしている請求項３９の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にビデオ処理に関し、本発明は、より詳細には、ディスプレイにオブジェクトをレンダリングするためのリアルタイムなシェーディングモデルを提供することに関する。
【背景技術】
【０００２】
ゲーム開発者は、ユーザにリアルな視覚的印象を提示するための手法を開発すべく、イメージ合成を絶えず改良し続けている。リアルな視覚的印象を提示するために使用されるイメージ合成の一態様は、シャドウおよびシェーディングを正確に描写することである。コンピュータゲームに使用される通常のライティング（光源処理）では、ベクトル内積の計算が使用される。この方法は比較的簡単であるが、正確さに欠ける。ベクトル内積の計算では、ハードエッジシャドウを描画できるが、ソフトエッジシャドウを描画することはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
図１は、ディスプレイをレンダリングするためのライティングの代表的な計算方法を示す模式図である。光源１００は、光を発するポイントを多数有する。遮蔽面１０２は、光源１００から面１０４に向かう光の一部を遮蔽する。このように、ハードエッジシャドウ（本影）は、遮蔽面１０２から領域１０６によって定義される。しかし、領域１０８のソフトシャドウ（すなわち半影）にあるポイント１１０では、光源１００の複数のポイントを選択して、各ポイントについて投影を求める必要がある。次に、ポイント１１０に対して、求めた全ての投影の和を求める。このため、ソフトシャドウ領域１０８内のポイントをリアルに表示するには、多数のライティング関数の和を求める必要がある。しかし、ライティング関数の計算および加算には、多くの演算を実行する必要があり、この方法は、リアルなシェーディングをリアルタイムに提示できる実際的な方法ではない。さらに、特にビデオゲームにおいて広く行われている光源の追加を行うと、最初から計算をやり直す必要がある。
【０００４】
上記の不具合を解決するための試みとして特例リストを用いる方法がある。このリストは、特定の基準が満たされたときのシェーディング属性を定義している。しかし、特例リストに全ての状況を網羅することはできず、このため、新しい状況が発生する都度リストを更新する必要がある。また、特定の状況を無理に特例にあてはめようとすると、最適な画像品質が得られなくなることがある。さらに、特例リストを用いると、ゲーム開発者に制約を与えることとなってしまう。
【０００５】
このため、従来技術の問題点を解決して、リアルな表現をリアルタイムでレンダリングするためのシェーディング方式を提供できる方法ならびに装置を提供することが求められている。
【課題を解決するための手段】
【０００６】
本発明は、概略的には、全方位型の基底関数を使用することによって、ライティング関数を簡略化すると共に、テクスチャマッピングと組み合わせることで、計算量を最小限に抑えつつリアルなシャドウイングのリアルタイム表示を実現する方法および装置を提供することにより上記の要求に応える。なお、本発明を、方法、システム、コンピュータ可読媒体またはデバイスなどの多くの方法で実施できる点。本発明の幾つかの実施形態については後述する。
【０００７】
一実施形態においては、高解像度のライティング特性を与えてイメージをレンダリングするための方法が提供される。この方法では、まず、イメージに対応するテクスチャマップを生成する。このテクスチャマップは、テクセルによって定義される。続いて、各テクセルについてライティング特性を表す値を計算する。次に、この値を記憶する。続いて、テクスチャマップの座標空間をディスプレイスクリーンの座標空間と対応付ける。次に、記憶した値を使用して、イメージをディスプレイスクリーンにレンダリングする。
【０００８】
別の実施形態においては、オブジェクトのイメージのライティング特性をテクスチャマップに組み込むための方法が提供される。この方法では、まず、イメージに対応するテクスチャマップを定義する。次に、テクスチャマップのテクセルに対応付けられたライティング特性を求める。続いて、テクセルをライティング特性と対応付ける。
【０００９】
さらに別の実施形態においては、イメージをレンダリングするための方法が提供される。この方法では、まず、イメージに対応するテクスチャマップを定義する。続いて、多方位信号に対応する値をテクスチャマップのテクセルと対応付ける。次に、テクセルと対応付けられているピクセルの輝度を求める。輝度を求める際に、テクセルに対応付けられた値にアクセスして、この値を、光源成分を表す数量に適用する。
【００１０】
さらに別の実施形態において、高解像度のライティング特性を与えてイメージをレンダリングするプログラム命令を含むコンピュータ可読媒体が提供される。このコンピュータ可読媒体は、イメージに対応するテクスチャマップのテクセルに対応付けられたライティング特性値にアクセスするプログラム命令を含む。ディスプレイスクリーンの座標空間をテクスチャマップの座標空間と対応付けるプログラム命令も含む。また、ディスプレイスクリーンに表現するため、ライティング特性値を対応するピクセルに適用するプログラム命令も提供される。
【００１１】
別の実施形態においては、オブジェクトのイメージのライティング特性をテクスチャマップに組み込むプログラム命令を含むコンピュータ可読媒体が提供される。このコンピュータ可読媒体は、イメージに対応するテクスチャマップを定義するプログラム命令を含む。テクスチャマップのテクセルに対応付けられたライティング特性を求めるプログラム命令も提供される。テクセルをライティング特性と対応付けるプログラム命令が含まれる。
【００１２】
さらに別の実施形態においては、演算装置が提供される。この演算装置は、イメージに対応するテクスチャマップを表すデータを記憶可能なメモリを有する。テクスチャマップはテクセルを含む。テクセルは、基底関数に従って、テクセル内のポイントに対するライトフィールドを記述しているデータと対応付けられる。この演算装置は、テクセルを、演算装置に接続されるディスプレイスクリーンに対応付けられているピクセルにマップするロジックを含む。ライトフィールドを記述しているデータにアクセスするロジックが提供される。また、ライトフィールドを記述しているデータに基づいてピクセルに対応する輝度を求めるロジックと、ディスプレイスクリーンにピクセルの輝度を表現できるようにするロジックとが含まれる。
【００１３】
集積回路が提供される。この集積回路は、イメージの自己シャドウ特性および自己相互反射特性に対応するデータを記憶可能なメモリを備える。このデータにアクセスする回路が提供される。上記データとイルミネーション値との積に基づいてピクセルに対応する輝度を求める回路が含まれる。ディスプレイスクリーンにピクセルの輝度を表現できるようにする回路が含まれる。
【発明の効果】
【００１４】
本発明の他の態様および利点は、添付の図面と併せて、以下の詳細な説明を読めば自明となるであろう。下記の詳細な説明は、例示のみを目的として、本発明の原理を示している。
【発明を実施するための最良の形態】
【００１５】
本発明は添付の図面と併せて以下の詳細な説明を読めば容易に理解できるであろう。図面において、同じ構造要素には同じ参照符号が付されている。
【００１６】
発明は、演算を多用する計算の使用を最小限に抑えつつ、ビデオゲームなどのビデオ表現のために、ソフトシャドウのリアルタイム表現を可能にするシステム、装置および方法に関する。しかし、本発明の詳細な内容の一部または全てを用いなくても本発明が実施し得ることは当業者にとって自明である。場合によっては、本発明を不必要にわかりにくくしないように、公知のプロセス操作については詳しく記載しなかった。図１については「背景技術」に記載している。
【００１７】
本発明の各種実施形態は、ビデオゲームなどのビデオ表現時に、リアルなシャドウのリアルタイム表現を可能にするシステム及び方法を提供する。一実施形態においては、球面調和関数によって、レンダリング式が簡略化され、球面調和係数に対する内積となる。球面調和関数とは、フーリエ変換に似ているが、球体の表面にわたって定義された数学体系である。一実施形態においては、入射するイルミネーションの表現（representation）と、表面反射率の表現とを乗算する。これを、本明細書において伝達関数（Ｔ）と呼ぶ。球面調和関数の直交性のために、この関数の積の積分が、関数それぞれの係数の内積と等しくなるということは当業者にとって自明であろう。したがって、ライティング関数は、全方位からの入射光を記述している輝度関数（ライティング関数とも呼ばれる）の係数と、表面反射率を記述している伝達関数の係数との内積に圧縮される。伝達関数と輝度関数との内積を求める、すなわちこれらを乗算して積分すると、各ポイントのライティングの近似が得られる。拡散面用に別の種類の伝達関数を作成してもよいことを理解すべきであり、伝達関数の種類に応じて、計算の複雑さが変わってくる。一般に、入射するイルミネーションの記述（description）と、表面反射率の記述の一種（伝達関数と呼ばれる）とを乗算して、これにより、発生する反射光を得る。これを入射光の球面全体について行わなければならないため、積分する必要がある。
【数１】
2005071368.tif 000003
上記式において、Ｌは入射光、ｔは伝達関数を表す。イルミネーション関数および伝達関数の両方が球面調和（ＳＨ）係数に投影される場合、直交性によって、関数の積の積分がそれらの係数の内積と等しくなることが保証される。
【数２】
2005071368.tif 000004
【００１８】
このように、球面全体での積分をＳＨ係数に対する内積に圧縮することができ、この内積の計算は単なる乗算、加算の繰り返しとなる。したがって、これらの関数をＳＨ空間に投影することによって、球面全体での積分を非常に高速な演算に変換することができる。別の種類の伝達関数および球面調和ライティングに関する一般的な詳細については、論文「球面調和ライティング−現実的な詳細（Spherical Harmonic Lighting - Gritty Details）」、ロビン・グリーン（Robin Green）、２００３年１月１６日に記載されている。本明細書に記載している伝達関数およびライティング関数は、方向のパラメータ化を使用して全方位にわたって定義可能な点を理解すべきである。方向のパラメータ化は球状でも、立方状でも、円筒状などでもよい。さらに、伝達関数およびライティング関数は、任意の基底関数の和として表現することができる。代表的な基底関数には、球面調和基底関数、ウェーブレット、ラップド基底関数（lapped basis functions）などがあり、これらの基底関数は各々、直交関数でも、正規直交関数でも、これ以外の関数でもよい。
【００１９】
本発明の一実施形態においては、伝達関数によって捕捉されるデータは、テクスチャマップのデータと共にメモリに記憶される。一実施形態においては、三角形の頂点でライティング関数を計算するのではなく、テクセルの中央でライティング基底関数がサンプリングされて、得られた係数が記憶される。このため、三角形の頂点から補間しなくても済む。下記に詳述するように、高解像度オブジェクトを使用して、シャドウが定義される場所とシャドウの輝度の性質とを計算する。換言すれば、イメージの自己シャドウイング特性および自己相互反射特性が、伝達関数によって捕捉される。高い解像度を使用してシャドウを求めることにより、高解像度ポリゴンモデルから導出されたデータを記憶し、低解像度のイメージを高解像度に見せるために低解像度ポリゴンモデルに適用することが可能となる。一実施形態においては、二次元空間のポイントと三次元空間のポイントとを一対一でマッピングさせることによって、検索操作により、記憶された伝達関数データと対応するピクセル位置を求めることが可能となる。
【００２０】
図２Ａは、本発明の一実施形態による、照明関数を最終的に導出するために使用される基底関数の３つの成分を示す略式模式図である。この３つの成分は、イルミネーション関数（Ｌ）、遮蔽関数（Ｏ）および余弦項（ｃｏｓ（θ））を表している。なお、面１１２ａ，１１２ｂ，１１２ｃは、それぞれ対応するグローブの表面を展開した面を表す点である。イルミネーション関数（Ｌ）成分は、光源１１４から特定のポイントに入射する光を決定する。さらに、表面１１２ａが「シータからファイへのパラメータ化（theta to phi parameterization）」と呼ばれることもある。遮蔽関数（Ｏ）は、ポイントからブロックされた、すなわち遮蔽された光源の領域を表す。シャドウ領域１１６は、光源からブロックされた、すなわち遮蔽された領域を示す。球面関数の３番目の項は余弦項である。余弦項は、ある方向から光に照らされたときに、表面で反射される光の比率を示す。余弦項は、法線表面からみて、球面１１２ｃの上半球ではゼロ以外の値をとる。遮蔽成分と余弦成分とを結合して、伝達関数（Ｔ）を定義することができる。伝達関数は、オブジェクト上の特定のポイントについて、自己伝達および自己シャドウイングに関するライティング特性を記述している。
【００２１】
当業者であれば、球面調和ベースの関数は、直交多項式に対応付けられており、このため、式の項の和を求めることにより、関数を分解して、別個の多項式として表すことができることが理解されるであろう。さらに、球面調和ベースの関数は、回転しても不変である。ビデオゲームに関し、球面調和ベースの関数を使用することによって、シーンのアニメーション中に、照明を移動したり、オブジェクトを回転しても、照明の輝度の変動、クロール、脈動などの、シェーディング技術に伴う、望ましくないアーティファクトが生じないことが保証される。さらに、球面関数を利用することによって、球面調和ベースの関数を使用してライティング関数を求める場合に、最初から計算をやり直す必要がなくなる。
【００２２】
上記したように、遮蔽成分および余弦成分を含む伝達関数（Ｔ）は、表面反射率の記述を表している。直交基底関数を適用することによって、球面全体に対する伝達関数（Ｔ）およびイルミネーション関数（Ｌ）の積分を、これらの係数の内積の加算へと簡略化することができる。したがって、ライティング関数を、レンダリング式に基づいて２つの異なる関数の乗算に圧縮することができる。このように、ライティング関数を圧縮することにより得られる一連の乗算および加算の処理により、レンダリングしようとしているオブジェクトのライティング特性を求めるための、球面全体の積分の変換を比較的高速に演算することが可能となる。したがって、伝達関数によって定義されるように、リアルなシェーディングのリアルタイムの表現をビデオゲームに実装できるようになる。さらに、基底関数により、最小限の演算量でソフトシャドウを求め、その後、さらに計算を行うことによってハードシャドウを定義することができる。従来の手法では、最初にハードシャドウを求めてから、複雑な計算を行ってソフトシャドウを定義する必要があった。球面調和ライティング技術および球面基底関数についての一般的な詳細情報は、論文「球面調和ライティング−現実的な詳細（Spherical Harmonic Lighting: The Gritty Details）」に開示されている。本明細書に記載した本発明は、記載した球状調和関数だけではなく、どのような基底関数にも使用することができることは当業者にとって自明である。例えば、球面基底関数のほか、ウェーブレット分解を使用してもよい。ウェーブレットは、周波数の和として信号を表す別の方法であることは、当業者にとって自明である。例えば、基底関数は方向領域（directional domain）のどのようなパラメータ化にわたって定義されてもよく、例えば、球状、半球状、立方状、円錐状、または円筒状などが可能である。さらに、このような基底関数は直交関数でも、正規直交関数でも、重複関数でも、それ以外の関数であってもよい。
【００２３】
図２Ｂ〜２Ｇは、照明関数を導出するために使用される基底関数の成分を表す略式模式図である。ここで、図２Ｂ〜２Ｇは、図２Ａの別表現となっている。図２Ｂには、光源１００が記載されており、遮蔽面１０２は光の一部を遮蔽し、これによって面１０４に本影１０６が定義される。このように、図２Ｂには、ソフトシャドウが定義されていない。図２Ｃは、光に照らされている面上のポイント１０４を表しており、展開球面関数（unwrapped spherical function）によって表現される。図２Ｄは、球面関数のイルミネーション関数（Ｌ）成分を示す。図２Ｅは可視性関数を示す。可視性関数は、遮蔽関数（Ｏ）と呼ばれることもある。図２Ｆは、余弦項（ｃｏｓ（θ））を示す。ライティング特性を求めるための基底関数は、図２Ｄのライティング関数、図２Ｅの可視性関数、および図２Ｆの余弦項の積として表すことができる点を理解すべきである。図２Ｇは、伝達関数を表す。図２Ｇの伝達関数の表現は図２Ｂのライティング関数を除いたものである、すなわち、この伝達関数は、図２Ｅの可視性関数と図２Ｆの余弦項とを組み合わせたのであることを当業者は理解する。
【００２４】
図３は、ポリゴンを示す模式図であり、本図において、本発明の一実施形態によりポリゴンの表面のポイントにおいてライティング関数を定義するためにレイトレーシング技術が使用されている。ポイントＰ１２４は、ポリゴン１２０の面上にある。Ｐに対する法線１２２も図示されている。ここで、光線が、所定のポイント（例えばポイントＰ１２４）から、ポリゴンデータベースをトレースされ、ぶつかる場所が求められる。例えば、光線１２６はポイントＰ１２４からトレースされて、ポリゴン１２０の一辺にぶつかり、反射して光線１３０となる。その一方で、光線１２８はポリゴン１２０のどの辺にもぶつからず、外界に対して見える。円弧１３２は、ポイントＰを見ることのできる外界の範囲（amount）を示している。レイトレーシング情報は、光を分散、すなわち自己伝達（self-transfer）させる。自己伝達は、自己相互反射とも呼ばれ、ポリゴン１２０の面に反射して、領域を再度照らす光線によって決まる。さらに、光線は、ポリゴンの壁に反射されるたびに所定量のエネルギーを失っていくという点を理解すべきである。レイトレーシング技術に関する詳細な情報は、上記の論文「球面調和ライティング−現実的な詳細（Spherical Harmonic Lighting: The Gritty Details）」に記載されている。
【００２５】
図４Ａは、グーローシェーディングの使用を示す略式模式図である。公知となっているように、グーローシェーディングでは、領域のシェーディングを滑らかに補間するため多数の三角形を用いる。ここで、領域１４０は、領域のシェーディングをより正確に捕捉するために、複数の小さい三角形が示されている。しかし、領域１４２は、これより大きな三角形から構成されている。この三角形では、領域のシェーディング量を詳細に捕捉する必要がない。グーローシェーディングでは、正確なシェーディング画像を提供するために、一部の領域では、小さな三角形を多数定義する必要がある。三角形の各頂点におけるライティング特性を計算し、線形補間によって三角形全体のシェーディングを求める。
【００２６】
図４Ｂは、線形補間のプロセスを示す模式図である。三角形１４０ａの各頂点には、ライティングを表す値が対応付けられ得る。１番目の頂点の値は８０、２番目の頂点の値は１５、３番目の頂点の値は５である。線形補間により、各頂点に相対的な重み付けをすることによって三角形全体のシェーディングを求める。すなわち、８０の重みを有する頂点により近いポイントは、８０に近い値を与えられる。ポリゴン（すなわち三角形）の計算は演算を多用するものであり、ソフトシャドウの提示に必要とされる計算のために、ビデオゲーム用のリアルタイムなシェーディングを提示することができない点を理解すべきである。さらに、光源が追加されたり変更された場合には、イメージをレンダリングするために計算を最初からやり直す必要がある。
【００２７】
図５は、本発明の一実施形態による、テクスチャマップにライティング係数を埋め込むための方法を示す模式図である。オブジェクト１５０ａ、具体的にはオブジェクト１５０ａを構成しているポイントが、ワールド空間からテクスチャマップ１５４に投射される。ワールド空間は、三次元空間と呼ばれることがある。例えば、オブジェクト１５０ａの領域１５２ａは、三次元空間から、一般に（ｕ，ｖ）座標で表されるテクスチャマップ１５４の座標空間にマップされる。このように、テクスチャマップ空間の領域１５２ｂは、三次元空間の領域１５２ａに対応している。テクスチャマップの（ｕ，ｖ）座標は、ディスプレイスクリーンにオブジェクト１５０ｂをレンダリングするためのスクリーン空間と対応付けられている。一実施形態においては、テクスチャマップ１５４を定義しているテクセルは、このテクセルに対応するライティング特性を表すデータを含んでいる。別の実施形態においては、球面調和ライティング関数が各テクセルの中央でサンプリングされ、得られた係数すなわち値がメモリに記憶される。このように、各テクセルについて、伝達関数（Ｔ）を構成している遮蔽関数および余弦関数を、演算装置のメモリにキャッシュすることができる。このため、イルミネーション源（Ｌ）を求めることができ、ライティング関数は、キャッシュされている伝達関数（Ｔ）の値とイルミネーション源（Ｌ）との内積となる。ビデオゲームの場合、この演算装置は、例えばソニーコンピュータエンターテインメント社が製造している「ＰＬＡＹＳＴＡＴＩＯＮ  ２（登録商標）」ビデオゲーム機であり得る。
【００２８】
なお、グーローシェーディングなどの従来のシェーディング方式で必要とされるポリゴンを計算しなくてもよい。球面調和関数などの球面基底関数を適用することによって、レンダリングの速度が、光構造（light structures）のサイズおよび数に依存しなくなる。特に、ビデオゲームでは、光源は絶えず変化する。このため、光源を表すイルミネーション関数（Ｌ）の値を容易に求め、記憶済みの転送関数の値と結合して、アプリケーションにリアルタイムシェーディングを提供できるようになる。換言すれば、伝達関数（Ｔ）は一定であり、一度計算したら記憶しておく。なお、一実施形態においては、記憶される転送関数値が、レイトレーシングによって定義することができる多方位信号と対応している。
【００２９】
図６は、本発明の一実施形態による、オブジェクトのリアルタイムシェーディング表示の際の二次元座標空間と三次元座標空間との相互の関係を示す模式図である。上記したように、ライティング関数のデータを、テクスチャマップの各テクセルに埋め込むことによって、イメージのライティング特性、すなわちシェーディングプロパティをリアルタイムに提示することが可能となる。ライティング関数のデータは、伝達関数（Ｔ）を適用することによって、自己シャドウイング特性および自己相互反射特性を捕捉する。一実施形態においては、オブジェクトの高解像度描画を使用して、ライティング関数のデータを捕捉する。続いて、ライティング関数のデータを記憶して、低解像度モデルに適用する。ライティング関数のデータが低解像度モデルに適用されると、低解像度モデルが高解像度に見えるように提示される。
【００３０】
再び図６を参照すると、オブジェクト１４２は三次元空間での高解像度描画である。高解像度を提供するために、多数のポリゴン（例えばポリゴン１４２の場合は何千個のポリゴン）がオブジェクト１４６上に定義されている。三次元空間のポイントから二次元空間のポイントへの一対一のマッピングが実行されている。このように、テクスチャマップ１４８によって定義されるテクセルは、このマッピングによって、オブジェクト１４２のポイントと対応している。例えば、テクセル１４２−２はポリゴン１４２に対応し得る。広く知られているように、テクスチャ化は、三次元のオブジェクトを二次元のラッピングペーパーで包むことにたとえられることがある。図５に関して上記したように、テクセル１４２−２は、球面基底関数から導出された、ライティング特性（例えば伝達関数）を表すデータに対応付けられている。このように、三次元のオブジェクト１４６の二次元のイメージ１４４をスクリーン空間にレンダリングする場合、低解像度イメージが高解像度イメージのように見えるように表現される。換言すれば、何千個のポリゴンによって定義される高解像度イメージのライティング特性を表すデータが、テクスチャマップ１４８によって捕捉される。次に、捕捉されたライティング特性が、テクスチャマップ１４８から二次元のイメージ１４４に投射されて、ディスプレイスクリーンに提示される。図６に示すように、イメージ１４４は１２個のポリゴン（うち、６個のポリゴンが表示されている）によって定義される低解像度イメージである。しかし、イメージ１４４の、シェーディング、シャドウなどのライティング特性は、何千ものポリゴンによって定義されるイメージ１４６から導出される。したがって、これらのライティング特性は、高解像度イメージのように見えるように低解像度イメージに投射される。
【００３１】
図７は、図５，６の３つの座標空間の別例による表現を示す模式図である。テクスチャマップ１５４は複数のテクセルによって定義される領域１５７−１を含む。各テクセルは、対応するテクセルのライティング特性データを有し得、ライティング特性データは取得可能である。すなわち、ライティング特性データはテクセルデータと共にメモリに記憶される。例えば、ポイント１５６−１は、上記のライティング特性データを表しており、対応するテクセルに埋め込まれる。ライティング特性データが、イメージ１５５に球面基底関数を適用することにより導出される。図６に関して上記したように、図７のイメージ１５５は、多数のポリゴンによって定義される高解像度イメージであり得る。テクスチャマップ１５４の領域１５７−１は、三次元イメージ１５５の領域１５７−２に対応している。さらに、球面基底関数を適用することによってポイント１５６−１によって表されるライティング特性データが導出され、自己シャドウイング（すなわち遮蔽関数）および自己相互反射が求められる。遮蔽関数が、それぞれのポイントＰについて、可視性すなわち自己シャドウイングを決定することは、当業者にとって自明である。本発明の一実施形態においては、自己相互反射のデータはレイトレーシングによって計算される。イメージ１５７−３をディスプレイスクリーンにレンダリングする際に、ライティング特性データ（例えば伝達関数データ）の検索が実行される。次に、伝達関数（Ｔ）のデータとイルミネーション関数（Ｌ）のデータとの内積が計算されて、対応するピクセルの輝度が得られ、そのピクセルが表示される。
【００３２】
図６，７では、テクセルとピクセルとの対応付けは一対一となっているが、本発明はこの関係に限定されるものではない。換言すれば、複数のテクセルが１つのピクセルに対応付けられても（例えば縮小）、１つのテクセルが複数のピクセルに対応付けられても（例えば拡大）よい。さらに、エイリアシングアーティファクトを防ぐために、これらのリサンプリング操作がフィルタされてもよい。
【００３３】
図８は、本発明の一実施形態による、リアルタイム自己シャドウイングおよび自己相互反射をイメージのオブジェクトに提供できる演算装置の略式模式図である。演算装置１６０はチップ１６１を備える。チップ１６１は、中央処理装置（ＣＰＵ）１６２、メモリ１６９、およびグラフィック処理装置（ＧＰＵ）１６８を備える。さらに、自己シャドウイングおよび自己相互反射ロジック１６４は、バス１６６を介してＣＰＵ  １６２、メモリ１６９およびＧＰＵ  １６８と接続されている。本明細書に記載するように、自己シャドウイングおよび自己相互反射ロジック１６４は、あらかじめ処理しておいた、高解像度モデルのライティング効果および自己シャドウイング効果を低解像度モデルに適用することによって、ライティング特性をリアルタイムに表現できるようにする機能を実行する。なお、それぞれのライトフィールドを記述している、あらかじめ処理済みの伝達関数データを、テクスチャマップのデータと共にメモリ１６９に記憶してもよい。演算装置１６０は記憶媒体１７０を備える。記憶媒体１７０は、ライトフィールドを記述しているデータを含むテクセルを有するテクスチャマップを、球面調和係数として記憶するように構成される。あるいは、適切な球面基底関数に対応付けられた他の値を記憶するように構成される。このように、記憶されているデータとイルミネーションデータを結合するレンダリング操作によって、記憶されているデータに対応する場所に対応付けられたピクセルの輝度が計算される。レンダリングをイルミネーションデータに対応付けられた係数と伝達関数のデータとの内積に簡略化でき、これにより、計算が比較的高速化されるという点を理解すべきである。ディスプレイスクリーン１７２は、レンダリングされたデータを用いて、演算装置１６０によって定義された画像を提示する。一実施形態においては、演算装置１６０は、例えばソニーコンピュータエンターテインメント社が製造している「ＰＬＡＹＳＴＡＴＩＯＮ  ２（登録商標）」ビデオゲーム機などの任意のビデオゲーム機であり得る。オンラインゲームアプリケーションの場合、演算装置１６０はサーバであってもよい。
【００３４】
図９は、本発明の一実施形態による、イメージに高解像度照明特性を付与するための操作のフローチャート図である。この方法は、イメージに対応付けられたテクスチャマップを生成する操作１８０から始まる。このテクスチャマップは複数のテクセルを定義している。次に、この方法は、各テクセルのライティング特性を表す値を計算する操作１８２に進む。一実施形態においては、球面調和関数を適用して、ライティング特性を表す値を計算する。別の実施形態においては、この値は、方位基底関数を使用して記述された伝達関数（Ｔ）に対応する多くの係数によって表される。上記したように、伝達関数（Ｔ）は、自己シェーディングおよび自己相互反射のデータを表す。換言すれば、伝達関数は、表面反射率を表している。当然、ウェーブレット変換、球面基底関数など、任意の適した基底関数と対応付けられた値がライティング特性を表してもよい。続いて、この方法は操作１８４へ進み、操作１８２で計算した値を任意の適した記憶媒体に記憶する。一実施形態においては、テクスチャマップの各テクセルについて（例えば各テクセルの中央点について）値を計算する。次に、この方法は操作１８６へ進み、テクスチャマップの座標空間をディスプレイスクリーンの座標空間に対応付ける。テクスチャ空間の座標をスクリーン座標空間に対応付けるための既存の技術が数多くあることは当業者にとって自明である。次に、この方法は操作１８８に進み、イメージをディスプレイスクリーンにレンダリングする。ここで、上記のようにイメージは高解像度イメージのように見える。
【００３５】
図１０は、本発明の一実施形態による、オンラインゲームアプリケーションを示す模式図である。ゲーム機２６０は、任意の有線接続または無線接続によって、インターネット２５４を介してサーバ２６２に接続されている。サーバ２６２は１台以上のサーバであり得る。コントローラ２５９がゲーム機２６０と接続されており、ゲーム機２６０はディスプレイスクリーン２５６と接続されている。ゲーム機２６０は、記憶装置２６８を備えるほか、コンピュータ可読媒体２０２を受け入れるように構成されている。図８に関して記載した集積回路が、サーバ２６２またはゲーム機２６０に搭載されていてもよい。あるいは、上記した機能を実行しているソフトウェアが、同様にサーバ２６２またはゲーム機２６０に搭載されていてもよい。
【００３６】
以上まとめると、上記の発明は、リアルタイムのビデオ表現にリアルなシェーディングを提供するための方法および装置を教示する。上記の各種実施形態は、球面調和ライティング技術など、基底関数（例えばウェーブレット関数または適した全方位型の基底関数）を使用してデータをあらかじめ処理しておく。伝達関数の計算から導出された、あらかじめ処理済みのデータを、テクスチャマップのデータと共にメモリに記憶する。一実施形態においては、伝達関数は、回転しても不変であるデータを生成する。次に、記憶したデータにアクセスして、入射光を表すイルミネーション値と結合して、イメージのリアルなシェーディングを定義する。一実施形態においては、あらかじめ処理したデータは、高解像度イメージ、すなわち何千個のポリゴンによって定義されるイメージと対応付けられる。このように、あらかじめ処理したデータによって定義されるシェーディングが、低解像度イメージに適用され、ディスプレイスクリーンに提示される場合、低解像度イメージは高解像度のように見える。
【００３７】
また、本明細書に記載した各種実施形態は、オンラインゲームアプリケーションに適用できる点を理解すべきである。すなわち、図１０に関して記載したように、インターネットなどの分散形ネットワークを介して複数のユーザにビデオ信号を送信するサーバに、上記した実施形態を実施してもよい。このビデオ信号はリアルなライティング特性を有するイメージを定義し、このライティング特性はリアルタイムで生成され得る。
【００３８】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されるデータを使用する、各種のコンピュータ実装操作を使用してもよい点を理解すべきである。これらの操作には、物理量の物理的な操作を必要とする操作が含まれる。この物理量は通常、記憶、転送、結合、比較などの操作が可能な電気信号または磁気信号の形を取るが、必ずしもこれらに限定されない。さらに、実行される操作は、生成、識別、決定または比較などと呼ばれることが多い。
【００３９】
上記した発明は、携帯式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースのプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、通信ネットワークを介してリンクされる遠隔処理デバイスによってタスクが実行される。
【００４０】
本発明は、また、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、コンピュータシステムによって後から読取ることができるデータを記憶できるデータ記憶デバイスであれば、どのようなものであってもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置（ＮＡＳ）、読取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープおよび他の光学式データ記憶デバイスおよび非光学式データ記憶デバイスなどがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されてもよい。
【００４１】
上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更または変形して実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されるものではなく、添付の特許請求の範囲の範囲およびその均等物の範囲内で変更されてもよい。特許請求の範囲において、要素および／または操作の順序は、請求項に明示的に記載されていない限り、操作の順序を特定の順序を示すものではない。
【図面の簡単な説明】
【００４２】
【図１】ディスプレイをレンダリングするためのライティングの代表的な計算法を示す模式図である。
【図２Ａ】本発明の一実施形態による、ライティング関数を最終的に導出するために使用される基底関数の３つの成分を示す略式模式図である。
【図２Ｂ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。
【図２Ｃ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。
【図２Ｄ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。
【図２Ｅ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。
【図２Ｆ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。成分の別例を示す略式模式図である。
【図２Ｇ】ライティング関数を導出するために使用される基底関数の成分の別例を示す略式模式図である。
【図３】ポリゴンを示す模式図であり、本図において、本発明の一実施形態によりポリゴンの表面のポイントにおいてライティング関数を定義するためにレイトレーシング技術が使用されている。
【図４Ａ】グーローシェーディングの使用を示す略式模式図である。
【図４Ｂ】線形補間のプロセスを示す模式図である。
【図５】本発明の一実施形態による、テクスチャマップにライティング係数を埋め込むための方法を示す模式図である。
【図６】本発明の一実施形態による、オブジェクトのリアルタイムシェーディング表示の際の二次元座標空間と三次元座標空間との相互の関係を示す模式図である。
【図７】図５，６の３つの座標空間の別例による表現を示す模式図である。
【図８】本発明の一実施形態による、リアルタイム自己シャドウイングおよび自己相互反射をイメージのオブジェクトに提供できる演算装置の略式模式図である。
【図９】本発明の一実施形態による、イメージに高解像度照明特性をリアルタイムで付与するための操作のフローチャート図である。
【図１０】本発明の一実施形態による、オンラインゲームアプリケーションを示す模式図である。
【符号の説明】
【００４３】
１００  光源
１４２−２  テクセル
１４６，１５０ａ，１５０ｂ  オブジェクト6
１４８，１５４  テクスチャマップ
オブジェクト
１５５，１５７−３  イメージ
１６０  演算装置
１６９  メモリ
１７２，２５６  ディスプレイスクリーン
２０２  コンピュータ可読媒体
２６０  ゲーム機
２６２  サーバ
２６８  記憶装置
【図１】
2005071368.tif 000005
【図２Ａ】
2005071368.tif 000006
【図２Ｂ】
2005071368.tif 000007
【図２Ｃ】
2005071368.tif 000008
【図２Ｄ】
2005071368.tif 000009
【図２Ｅ】
2005071368.tif 000010
【図２Ｆ】
2005071368.tif 000011
【図２Ｇ】
2005071368.tif 000012
【図３】
2005071368.tif 000013
【図４Ａ】
2005071368.tif 000014
【図４Ｂ】
2005071368.tif 000015
【図５】
2005071368.tif 000016
【図６】
2005071368.tif 000017
【図７】
2005071368.tif 000018
【図８】
2005071368.tif 000019
【図９】
2005071368.tif 000020
【図１０】
2005071368.tif 000021