(57)【特許請求の範囲】
【請求項１】
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するための方法であって、当該方法はコンピュータによって実行され、当該コンピュータは、分割手段、サンプリング手段、計算手段、及び、生成手段を有し、
前記トライアングルは、頂点およびエッジを含み、前記方法は、
前記メッシュにおいて、すべてのトライアングルではないが、少なくとも１つのトライアングル（５０２）を、前記コンピュータ内の分割手段が、少なくとも２つまたはそれよりも多くのトライアングルにそれぞれ分割するステップを備え、
少なくとも１つのトライアングルの前記分割は、前記コンピュータ内の分割手段が、少なくとも１つのエッジ（５１２）を分割するステップと、少なくとも１つの新しい頂点（５１２）及び少なくとも１つの新しいエッジ（５３２）および前記トライアングルに対し、前記頂点から伸びる少なくとも１つの新しいエッジ（５３２）を作成するステップとを含み、
前記コンピュータ内のサンプリング手段が、各エッジの各頂点および各中点におけるPRTベクトルをサンプリング（４０２）するステップと、
前記コンピュータ内の計算手段が、各前記エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づき、各エッジの各中点におけるエラーを計算（４０４）するステップであって、当該エラーが、サンプリングされたベクトルと、エッジの各終端におけるベクトルの線形補間から生じるベクトルと、の間の平方誤差であるものと、
予め定められた許容誤差値よりも大きい中点におけるエラーを有する各エッジ（「印を付けられたエッジ」）に対し、そのエッジに対する前記トライアングルを、
前記コンピュータ内の分割手段が、前記印を付けられたエッジを、２つの分割されたエッジに分割し、２つの分割されたエッジが、前記エッジの中点において、新しい頂点（５４２）を含む新しいエッジであり、および、
前記コンピュータ内の生成手段が、前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジ（５３２）を作成し、前記エッジが前記２つの新しいトライアングルに共通する（「共通のエッジ」）ようにして、
少なくとも２つの新しいトライアングルに分割（４０８）するステップと、
をさらに備えることを特徴とする、
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するための方法。
【請求項２】
分割されたエッジおよび共通のエッジを含む各新しいエッジに対し、このような作成された新しいエッジ（以後、各「エッジ」）ごとに、
前記コンピュータ内のサンプリング手段が、各エッジ（５１２，５１４）の中点（５４２，５４４）でPRTベクトルをサンプリング（４１２）し、ならびに前記各エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づいた各エッジの各中点におけるエラーを、前記コンピュータ内の計算手段が計算（４０４）するステップと、
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する各エッジ（「印を付けられたエッジ」）に対して、そのエッジに対する前記トライアングルを、
前記コンピュータ内の分割手段が、前記印を付けられたエッジを、前記エッジに対する前記中点における新しい頂点を有する新しいエッジである２つの分割されたエッジに分割し、および、
前記コンピュータ内の生成手段が、前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジを作成し、前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ようにして、
前記コンピュータ内の分割手段が、少なくとも２つの新しいトライアングル（５２２，５２４，５２６，５２７）に分割するステップとを再帰的に実行するステップをさらに備え、
前記ステップは、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または、
（b）予め定められた反復の回数が実行されるまで再帰的に実行される、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する１つのエッジから成るトライアングルは、少なくとも２つの新しいトライアングルに分割されることを特徴とする請求項２に記載の方法。
【請求項４】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する２つのエッジから成るトライアングルは、３つの新しいトライアングルに分割されることを特徴とする請求項２に記載の方法。
【請求項５】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する３つのエッジから成るトライアングルは、４つの新しいトライアングル（５２６−５２９）に分割されることを特徴とする請求項２に記載の方法。
【請求項６】
中点において予め定められた許容誤差値よりも大きいエラーを有する、少なくとも１つのエッジがエラーを含む各トライアングルに対し、前記トライアングルを、
前記コンピュータ内の分割手段が、前記トライアングルの各エッジを前記そのようなエッジに対する前記中点に新しい頂点を有する新しいエッジである２つの分割されたエッジ（「分割されたエッジ」）に分割し、および
前記コンピュータ内の生成手段が、新しい頂点の各対の間に新しいエッジである共通のエッジを作成して、
前記コンピュータ内の分割手段が、４つの新しいトライアングルに分割するステップと、
をさらに備えることを特徴とする請求項２に記載の方法。
【請求項７】
分割されたエッジおよび共通のエッジを含む各新しいエッジに対し、このような作成された新しいエッジ（以後、各「エッジ」）ごとに
前記コンピュータ内のサンプリング手段が、各エッジにおけるPRTベクトルをサンプリングし、ならびに各前記エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づく各エッジの各中点におけるエラーを計算するステップと、
予め定められた許容誤差値よりも大きい中点におけるエラーを有する少なくとも１つのエッジを含む各トライアングルに対し、前記トライアングルを
前記コンピュータ内の分割手段が、各エッジを前記このようなエッジに対し前記中点における新しい頂点を有する２つの新しいエッジに分割し、および
前記コンピュータ内の生成手段が、新しい頂点の各対の間に新しいエッジを作成して、
前記コンピュータ内の分割手段が、４つの新しいトライアングルに分割するステップと、を再帰的に実行するステップと、
をさらに備え、
前記ステップ群は、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または、
（b）予め定められた反復の回数が実行されるまで再帰的に実行されることを特徴とする請求項６に記載の方法。
【請求項８】
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するためのシステム（３０２）であって、前記トライアングルは、頂点およびエッジを含み、前記システムは、前記メッシュにおいて、すべてのトライアングルではないが、少なくとも１つのトライアングルを、少なくとも２つまたはそれよりも多くのトライアングルにそれぞれ分割するためのサブシステムを備え、
前記メッシュにおいて少なくとも１つのトライアングルを分割するための前記サブシステムは、少なくとも１つのエッジを分割し、ならびに少なくとも１つの新しい頂点および前記頂点から伸びる少なくとも１つの新しいエッジを作成するためのサブシステムを含み、
各エッジの各頂点および各中点におけるPRTベクトルをサンプリングするためのサブシステムと、
前記各エッジに対応する各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づく各エッジの各中点におけるエラーを計算するためのサブシステムであって、当該エラーが、サンプリングされたベクトルと、エッジの各終端におけるベクトルの線形補間から生じるベクトルと、の間の平方誤差であるものと、
印を付けられたエッジ、すなわち、予め定められた許容誤差値（３１４）よりも大きい中点におけるエラーを有するエッジを、前記エッジに対する中点における新しい頂点を有する新しいエッジである２つの分割されたエッジに分割するためのサブシステムと、
前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジを作成し、それにより前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ためのサブシステムとをさらに備えたことを特徴とする、
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するためのシステム。
【請求項９】
分割されたエッジおよび共通のエッジを含む各新しいエッジに対し、このような新しいエッジ（以後、各「エッジ」）ごとに
各エッジの中点ごとにPRTベクトルをサンプリングし、ならびに前記各エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づいた各エッジの各中点におけるエラーを計算するステップと、
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する各エッジ（「印を付けられたエッジ」）に対して、そのエッジに対する前記トライアングルを
前記印を付けられたエッジを、前記エッジに対する前記中点における新しい頂点を有する新しいエッジである２つの分割されたエッジ（各「分割されたエッジ」）に分割し、および、
前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジを作成し、前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ようにして、少なくとも２つの新しいトライアングルに分割するステップとを再帰的に実行するサブシステムをさらに備え、
前記ステップは、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または
（b）予め定められた反復の回数（３１６）が実行されるまで再帰的に実行されることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する１つのエッジから成るトライアングルは、少なくとも２つの新しいトライアングルに分割されることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する２つのエッジから成るトライアングルは、３つの新しいトライアングルに分割されることを特徴とする請求項９に記載のシステム。
【請求項１２】
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する３つのエッジから成るトライアングルは、４つの新しいトライアングルに分割されることを特徴とする請求項９に記載のシステム。
【請求項１３】
予め定められた許容誤差値よりも大きい中点におけるエラーを有する少なくとも１つのエッジを有する各トライアングルを、
各エッジを前記エッジに対する前記中点における新しい頂点を有する新しいエッジである２つの分割されたエッジに分割し、および、
新しい頂点の各対の間に新しいエッジである共通のエッジを作成して、
４つの新しいトライアングルに分割するためのサブシステムとをさらに備えることを特徴とする請求項８に記載のシステム。
【請求項１４】
分割されたエッジおよび共通のエッジを含む各新しいエッジに対し、このような作成された新しいエッジ（以後、各「エッジ」）について、
各エッジにおけるPRTベクトルをサンプリングし、ならびに各前記エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づく各エッジの各中点におけるエラーを計算するステップと、
予め定められた許容誤差値よりも大きい中点におけるエラーを有する少なくとも１つのエッジを含む各トライアングルに対し、前記トライアングルを
各エッジを前記エッジに対する前記中点における新しい頂点を有する２つの新しいエッジに分割し、および
新しい頂点の各対の間に新しいエッジを作成して、
４つの新しいトライアングルに分割するステップとを再帰的に実行する新しいサブシステムをさらに備え、
前記ステップは、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または（b）
予め定められた反復の回数が実行されるまで再帰的に実行されることを特徴とする請求項１３に記載のシステム。
【請求項１５】
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するためのコンピュータ読取り可能な命令が記録されたコンピュータ読取り可能な媒体であって、前記トライアングルは、頂点およびエッジを含み、前記コンピュータ読取り可能な命令は、コンピュータにより実行されたときに、コンピュータ内の分割手段によって、前記メッシュにおいて、すべてのトライアングルではないが、少なくとも１つのトライアングルを、少なくとも２つまたはそれよりも多くのトライアングルにそれぞれ分割するための命令を含み、
メッシュにおいて少なくとも１つのトライアングルを分割するための前記命令は、コンピュータにより実行されたときに、コンピュータ内の分割手段によって、少なくとも１つのエッジを分割し、コンピュータにより実行されたときに、コンピュータ内の生成手段によって、１つのトライアングルに対して、少なくとも１つの新しい頂点および前記頂点から伸びる少なくとも１つの新しいエッジを作成するための命令を含み、
コンピュータにより実行されたときに、コンピュータ内のサンプリング手段によって、各エッジの各頂点および各中点におけるPRTベクトルをサンプリングし、コンピュータにより実行されたときに、コンピュータ内の計算手段によって、各前記エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づく各エッジの各中点におけるエラーを計算するための命令であって、当該エラーが、サンプリングされたベクトルと、エッジの各終端におけるベクトルの線形補間から生じるベクトルと、の間の平方誤差であるものと、
予め定められた許容誤差値よりも大きな中点におけるエラーを有する各エッジ（「印を付けられたエッジ」）に対し、前記トライアングルを
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、前記印を付けられたエッジを、前記エッジに対する前記中点における新しい頂点を有する新しいエッジである２つの分割されたエッジに分割し、および、
コンピュータにより実行されたときに、コンピュータ内の生成手段によって、前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジを作成し、前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ようにして、
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、少なくとも２つの新しいトライアングルに分割するための命令とをさらに備えたことを特徴とする、
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するためのコンピュータ読取り可能な命令が記録されたコンピュータ読取り可能な媒体。
【請求項１６】
分割されたエッジおよび共通のエッジを含む新しいエッジ（以後、各「エッジ」）ごとに、
コンピュータにより実行されたときに、コンピュータ内のサンプリング手段によって、各エッジの中点ごとにPRTベクトルをサンプリングし、ならびに、コンピュータにより実行されたときに、コンピュータ内の計算手段によって、前記各エッジに対応する、各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づいた各エッジの各中点におけるエラーを計算するステップと、
前記予め定められた許容誤差値よりも大きい中点におけるエラーを有する各エッジ（「印を付けられたエッジ」）に対して、そのエッジに対する前記トライアングルを、
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、前記印を付けられたエッジを、前記エッジに対する前記中点における新しい頂点を有する新しいエッジである２つの分割されたエッジに分割し、および、
コンピュータにより実行されたときに、コンピュータ内の生成手段によって、前記新しい頂点と前記エッジ上にない頂点との間に新しいエッジである共通のエッジを作成し、前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ように、
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、少なくとも２つの新しいトライアングルに分割するステップと、
を再帰的に実行するための命令とをさらに備え、
前記ステップは、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または
（b）予め定められた反復の回数が実行されるまで再帰的に実行されることを特徴とする請求項１５に記載のコンピュータ読取り可能な媒体。
【請求項１７】
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、トライアングルが、予め定められた許容誤差値よりも大きい中点におけるエラーを有する１つのエッジからなるとき、前記トライアングルを少なくとも２つの新しいトライアングルに分割するための命令をさらに備えたことを特徴とする請求項１６に記載のコンピュータ読取り可能な媒体。
【請求項１８】
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、トライアングルが、予め定められた許容誤差値よりも大きい中点におけるエラーを有する２つのエッジからなるとき、前記トライアングルを３つの新しいトライアングルに分割するための命令をさらに備えたことを特徴とする請求項１６に記載のコンピュータ読取り可能な媒体。
【請求項１９】
トライアングルが、予め定められた許容誤差値よりも大きい中点におけるエラーを有する３つのエッジからなるとき、コンピュータにより実行されたときに、コンピュータ内の分割手段によって、前記トライアングルを４つの新しいトライアングルに分割するための命令をさらに備えたことを特徴とする請求項１６に記載のコンピュータ読取り可能な媒体。
【請求項２０】
予め定められた許容誤差値よりも大きい中点におけるエラーを有する少なくとも１つのエッジを含む各トライアングルに対し、前記トライアングルを、
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、前記トライアングルの各エッジを前記そのようなエッジに対する前記中点に新しい頂点を有する新しいエッジである２つの分割されたエッジに分割し、および、
新しい頂点の各対の間に新しいエッジである共通のエッジを作成するように、
４つの新しいトライアングルに分割するための命令とをさらに備えることを特徴とする請求項１５に記載のコンピュータ読取り可能な媒体。
【請求項２１】
分割されたエッジおよび共通のエッジを含む新しく生成されたエッジ（以後、各「エッジ」）ごとに
コンピュータにより実行されたときに、コンピュータ内のサンプリング手段によって、各エッジにおけるPRTベクトルをサンプリングし、ならびに、コンピュータにより実行されたときに、コンピュータ内の計算手段によって、各前記エッジに対応する各前記中点に対する前記PRTベクトルおよび各頂点に対する前記PRTベクトルに基づく各エッジの各中点におけるエラーを計算する命令と、
予め定められた許容誤差値よりも大きい中点におけるエラーを有する少なくとも１つのエッジを含む各トライアングルに対し、前記トライアングルを、
コンピュータにより実行されたときに、コンピュータ内の分割手段によって、各エッジを前記そのようなエッジに対する前記中点における新しい頂点を有する２つの新しいエッジに分割するステップと、
コンピュータにより実行されたときに、コンピュータ内の作成手段によって、新しい頂点の各対の間に新しいエッジを作成するように、コンピュータにより実行されたときに、コンピュータ内の分割手段によって、４つの新しいトライアングルに分割するステップとを再帰的に実行するための命令とをさらに備え、
前記ステップは、
（a）再帰的な反復の前に新しいエッジが作成されなくなるか、または、
（b）予め定められた反復の回数が実行されるまで再帰的に実行されることを特徴とする請求項２０に記載のコンピュータ読取り可能な媒体。
【請求項２２】
トライアングルのテッセレーションを含む計算済み放射輝度伝達（PRT）メッシュを改善するための手段を有するハードウェア制御装置であって、前記トライアングルは、頂点およびエッジを含み、
前記メッシュを改善するための手段は、請求項１５ないし２１のいずれかに記載のコンピュータ読取り可能な媒体に記録された命令を実行するハードウェア制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータグラフィクスの分野に関し、より詳細には、ナチュラルライティング環境（natural lighting environment）に存在するコンピュータ処理の３次元グラフィクスオブジェクトのリアルタイムのリライティング（re-lighting）に関する。
【背景技術】
【０００２】
ナチュラルライティング環境に存在するコンピュータ処理の３次元グラフィクスオブジェクトに関して、面源（area source）、ソフトシャドー（soft shadow）及び相互反射から適切に表現されるライティング（lighting）は、写実的な画像の合成において重要な効果である。あいにく、複数の点光源にわたって足し合わせるモンテカルロ・レイトレーシング、ラジオシティー、およびマルチパスレンダリングを含む大規模なライティング環境を統合するための本技術分野における一般的な方法は、どれもリアルタイムレンダリングに対して実用的でない。リアルタイムの写実的で大域的な照明は、３つの困難に直面する。（ａ）現実の素材の双方向反射分布関数（Bidirectional Reflectance Distribution Functions（BRDFs））の空間的に変化する合成物を作る必要がある（すなわち、BRDFの複雑性）。（ｂ）この照明は、各点におけるライティング方向の半球にわたる積分を要求する（光の積分(light integration)）。（ｃ）影のような、光源から受光体（receiver）への光路に沿う介在物のため、バウンシング（bouncing）／オクルージョン（occlusion）効果を明らかにしなくてはならない（光の伝達の複雑性）。当業者によって知られ、および理解されているように、本技術分野における既存の開発は、方向または点の和として入射光を表現することによる拡張されたＢＲＤＦ複雑性（例えば、光沢および異方性反射）および光の積分問題の解決に概ね集中している。光の積分は、僅かな点における解析的な、または集計されたBRDFのサンプリングを減らすが、大きな光源のため扱いにくくなる。他の既存の方法は、放射輝度（radiance）をサンプリングし、および様々な大きさの粒子を有する放射輝度をプレコンボルブ（preconvolve）し、光の積分問題を処理するが、それらの方法は、畳み込み（convolution）が、入射光が透過し、散乱しないことを引き起こすため、影のような光の伝達の複雑性を無視する。よって、数少ない追加の方法は、より複雑な光の伝達、特に影をシミュレートするために存在するが、光の積分は未解決であり、これらの技術は非常に大きな光源に対しては実用的でない。
【０００３】
既存の方法におけるこれらの問題の多くを解決するために最近現れてきた１つの改良された方法は、計算済み放射輝度伝達（Precomputed Radiance Transfer(PRT)）である。PRTは、ソフトシャドー、相互反射、コースティクス（caustic）を捉える低周波数の光の環境における拡散する、および光沢のある物体のリアルタイムレンダリングのための方法である。前工程として、全伝達シミュレータ（global transport simulator）は、任意の伝達、影のような全効果を含む伝達された放射輝度の中の低周波数の入射光、および物体自体からの相互反射を表現する物体表面にわたる関数を生成する。ランタイムにおいて、これらの伝達関数は、実際の入射光に適用される。動的で、局所的なライティングは、フレームごとに物体に近い光をサンプリングすることによって処理され、および物体は、ライティングに対して固定回転もされる（および、その逆も同様）。ライティングおよび伝達関数は、エイリアシング（aliasing）を避ける、低位の球面調和関数を用いて表現され、例えば、拡散する受光体に対する９から２５の要素ベクトルの内積に不可欠なシェーディング（shading）を減らすことにより、グラフィクスハードウェアにおいて効率的に評価される。光沢のある物体は、ベクトルよりも行列を用いて処理される。その方法も、間隙を介した隣の点に対し、計算済みの物体を通して動的なライティング環境からの光の伝達のための関数を実装する。これらは、固定して動く物体からのソフトシャドーおよびコースティクスを可能にし、リアルタイムのグローバルなライティング効果を提供するために任意で、動的な受光体に影を掛けられる。
【０００４】
PRTは、特に低周波数のライティング環境において効率的に環境を表現するこの低次元球面調和（spherical harmonic（SH））基底を用いることにより、リアルタイムに光の積分および光の伝達の複雑性をより良く捉えている。PRT法の基本的なアプローチは、どのように物体がそれ自体またはそれに隣接する空間へこの光を散乱させるかを表現することである。一般に、PRT法の技術は、初めに無限遠環境地図によって光らせる凸状の、散乱する物体を有すると仮定する。その環境に対する物体の影付き「応答」は、この場合単純に余弦関数で重み付けされた積分を実行する、入力および出力放射輝度をマッピングする伝達関数と見なされることが可能である。より複雑な積分は、凹状の物体が物体自身にどのように影を作り、被積分関数が各方向に沿って鮮明度を表現する追加の伝達要素をどこに掛けるかを捉える。PRTのアプローチは、シャドーイングのような複雑な伝達関数により要求される高度な伝達シミュレーションを与えられた物体に対して予め計算することである。得られた伝達関数は、物体表面にわたるベクトルまたは行列の稠密集合として表される。その間、入射光は、グラフィクスハードウェアが多数の点における入射光を動的にサンプリングすることが可能であり、スカイライトモデルまたは円のような単純な形態などの分析モデルも用いることが可能であるように予め計算される必要はない。線形基底（この場合、SH）において入射光と伝達関数との両方を表現することによって、前記方法は、光の伝達の線形性を活用し、係数ベクトル間の単純な内積（散乱する受光体）、または小さな伝達行列を介したライティング係数ベクトルの単純な線形変換（光沢のある受光体）に対する光の積分を減らす。低周波数ライティング環境は、再び９から２５まで変動する係数である少数の係数を要求し、グラフィクスハードウェアが単一経路における結果を計算することを可能にする。従って、PRT法のランタイム計算は、モンテカルロ・レイトレーシングの技術およびマルチパス光積分（multi-pass light integration）の方法とは違い、光源がどんなに多くてもまたはどんなに大きくても一定であり、さらにこの方法は、必要なSH係数の数を制限する大規模で、滑らかなライティングから恩恵を受ける。
【０００５】
PRT法は、伝達関数において相互反射およびコースティクスのような複雑な伝達効果を表現する。これらが前工程としてシミュレートされるので、伝達関数の基底係数のみに影響し、ランタイム計算には影響しない。このアプローチは、表面と体積の両方に基づいてジオメトリを処理する。さらに、自己伝達（self-transfer）と呼ばれる、固定した物体から物体自身への伝達であるその技術は、動く受光体におけるソフトシャドー付け、光沢のある反射、およびコースティクスを許可する、固定した物体から物体の隣の空間への近接伝達（neighborhood-transfer）、に対して一般化されることが可能である。
【０００６】
前工程として、全照明シミュレータ（global illumination simulator）は、どのように影を掛けおよび物体自身に光を散乱させるかを捉えるモデル上で実行される。その結果は、そのモデル上でベクトル(拡散する場合)または行列（光沢のある場合）の稠密集合として記録される。ランタイムにおいて、入射光は、まずSH基底と予測される。次に、そのモデルの伝達ベクトルまたは行列のフィールド（field）は、ライトニングの係数ベクトルに適用される。物体が拡散する場合、物体上の各点における伝達ベクトルには、ライトニング係数が点在し、正確に自己散乱シェーディング（self-scattered shading）を実現する。物体に光沢がある場合、伝達行列は、ライトニング係数に適用され、各点における自己散乱された入射光を表す球面調和関数の係数を実現する。この関数は、物体のBRDFで畳み込まれ、次いでビュー依存反射方向（view-dependent reflection direction）において評価され、最終シェーディングを実現する。
【０００７】
PRTのアプローチの、この簡潔な説明を補うため、PRTについての詳細な情報を非特許文献１において知ることができる。
【０００８】
【非特許文献１】Peter-Pike Sloan, Jan Kautz, and John Snyder, ”Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments”, SIGGRAPH, July 2002.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、PRT法の利点があるにもかかわらず、凸状の影の付いていない範囲は、鋭い影を投げかける遮断物近くの領域よりも小さな空間的変動を表示する。従って少ないサンプルを要求する。また、従来のPRTは、空間的サンプリング密度の利点を明らかにしていない。同様に、遮断物によって生じるシャープなビジビリティホライゾン（sharp visibility horizon）、またはコースティクス集束効果（caustic focusing effect）などの真の伝達が、非常に高い周波数の光を有するが、一般に信号の低周波数の構成要素においてより大きな利点が存在する。本技術分野において必要なものは、空間および密度特性の両方をより詳細に明かにする強化されたPRT法である。
【課題を解決するための手段】
【００１０】
本発明は、計算済み放射輝度伝達（Precomputed Radiance Transfer）の方法論に対し堅牢なサンプリングアプローチを提供するためのシステムおよび方法を提供することにより、以前の本技術分野の欠点および欠陥を克服する。一実施形態において、本発明は、最小化エイリアシング（minimizing aliasing）を行う間、適切な解像度で伝達信号を測定する３次元（３D）の表面上のサンプリング技術を備える。計算されると、信号は、可能な限り簡潔に表現され、ストレージおよびランタイム計算要件を最小限にする。
【００１１】
本発明の様々な実施形態は、PRTシステムを対象とする。PRTシステムは、アルゴリズムを利用して、表面のメッシュ上のPRT信号を計算し、メッシュの要素を細分して、伝達信号の空間的変動が表面上の何処においても十分に処理されるように表面の頂点の数を増加させるコンピュータシステムである。この方法は、放射輝度伝達シェーディング（radiance transfer shading）が全表面にわたって十分な精度の色を実現することを確実にする。ある実施形態において、これは、テッセレーション（tessellation）が荒すぎる範囲内の表面ラインティングの細部の許容可能な若干のエイリアシングおよびぼかし（blurring）をもたらすが、伝達は、表面の頂点においてのみ計算される。
【００１２】
本発明のある実施形態は、トライアングルのテッセレーションを備える計算済み放射輝度伝達（PRT）メッシュを強化するためのシステムおよび方法を対象とする。前記トライアングルは、（ａ）各頂点および各エッジの各中点におけるPRTベクトルをサンプリングし、各前記エッジに対応する各前記中点に対するPRTベクトル、および各頂点に対するPRTベクトルに基づく各エッジの各中点におけるエラーを計算すること、（ｂ）（例えば、中点におけるPRTとエッジ上のPRTに対するあるモデルとの間の違いが終端におけるPRTに基づいて計算されるとき、中点におけるPRTと２つの終端（線形補間に対する中点）間のPRTの平均との間のそのような差が１つのエラー値を有する位置で）予め定められた許容誤差値より大きい中点におけるエラーを有するエッジごとに、（ｉ）作成されたエッジの前記中点における新しい頂点を有する２つの新しいエッジを分割し、（ｉｉ）前記新しい頂点と、前記エッジが前記２つの新しいトライアングルに共通する（各「共通のエッジ」）ような、前記エッジ上にない頂点との間への新しいエッジを作成して、そのエッジに対するトライアングルを２つの新しいトライアングルへ分割することにより、頂点およびエッジを有する。代替の実施形態において、分割されたエッジおよび共通のエッジを含む各新しいエッジに対し、そのような新しい作られたエッジ（以降、各「エッジ」）ごとに以下のステップを再帰的に実行するための追加のステップも開示される。（１）各エッジの中点ごとにPRTベクトルをサンプリングし、各前記エッジに対応する各前記中点に対するPRTベクトル、および各頂点に対するPRTベクトルに基づく各エッジの中点ごとのエラーを計算し、（２）予め定められた許容誤差値よりも大きい中点におけるエラーを有する各エッジに対し、前述のように２つの新しいトライアングルへのそのエッジに対するトライアングルを分割する。これらのステップは、新しいエッジが前の再帰的な反復において作成されなくなるか、または予め定められた反復の回数を実行されるまで再帰的に実行される。
【００１３】
ある追加の実施形態に関し、１つの代替のアプローチは、予め定められた許容誤差値よりも大きい中点における１つのエラーを有する少なくとも１つのエッジ（「印を付けたたエッジ」）を備える各トライアングルに対して用いられ、前記トライアングルを４つの新しいトライアングルに以下のように分割する。前記トライアングルの各エッジを前記このようなエッジ（各「分割されたエッジ」）に対し中点における１つの新しい頂点を有する２つの新しいエッジに分割し、および新しい頂点の各対の間に新しいエッジ（各「共通のエッジ」）を作成する。
【００１４】
これらおよび他の実施形態は、本明細書においてより詳細に説明される。
【００１５】
添付の図面と共に読むとき、前述の概要は、好ましい実施形態の後述の詳細な説明と同様、良く理解される。本発明を説明するために、本発明の例示的な説明を図において示すが、本発明は、開示される特定の方法および手段に限定されない。
【発明を実施するための最良の形態】
【００１６】
本主題は、法的用件に合う特定性を持って説明される。しかし、その説明は、この特許の請求の範囲を限定することを意図しない。むしろ、発明者は、特許請求の対象が他の現在のまたは未来の技術と共に、異なるステップまたは本明細書において説明されるものと同様なステップの組み合わせを含む、他の手段においても実施できることを意図している。さらに、「ステップ」という用語が、用いられた方法の異なる要素を暗示するために本明細書において使用されるが、その用語は、個別のステップの順序が明示的に説明されるときでない限りおよびそのようなときを除いて、本明細書で説明される様々なステップの中または間にいかなる優先順位も暗示すると解されるべきでない。
【００１７】
（コンピュータ環境）
本発明の多数の実施形態は、コンピュータ上で実行することができる。図１および後述の議論は、本発明が実装される適当なコンピューティング環境の簡潔で一般的な説明を提供することを意図される。必須ではないが、本発明は、クライアントワークステーションまたはサーバなどのコンピュータによって実行されているプログラムモジュールなどのコンピュータ実行可能な命令の一般的状況において説明される。一般に、特定のタスクを実行する、または特定の抽象データ型を実施するプログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者は、本発明をハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成と共に実施することができることを理解されたい。本発明は、タスクが通信ネットワークを介しリンクされるリモート処理装置によって実行される分散型コンピューティング環境においても実施されることができる。分散型コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置の両方に配置されることができる。
【００１８】
図１に示すように、例示的な汎用コンピューティングシステムは、処理装置２１、システムメモリ２２、およびシステムメモリを含む様々なシステムコンポーネントを処理装置２１に結合するシステムバス２３を含む、従来のパーソナルコンピュータ２０などを含む。システムバス２３は、メモリバスまたはメモリコントロール、周辺バス、および様々なバスアーキテクチャの中の任意のものを用いるローカルバスを含む何種類かのバス構造の中の任意のものであり得る。システムメモリは、読出し専用メモリ（ROM）２４およびランダムアクセスメモリ（RAM）２５を含む。起動中などにパーソナルコンピュータ２０内の要素間に情報を伝達するための基本ルーチンを含む基本入力／出力システム（BIOS）２６は、ROM２４内に格納される。パーソナルコンピュータ２０は、図示していないハードディスクから読み出し、および書き込むためのハードディスクドライブ２７、リムーバブル磁気ディスク２９から読み出し、および書き込むための磁気ディスクドライブ２８、およびCD−ROMまたは他の光媒体などのリムーバブル光ディスク３１から読み出し、および書き込むための光ディスクドライブ３０をさらに含むことができる。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、ハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ドライブインターフェース３４によってそれぞれシステムバス２３に接続される。ドライブおよびそれらの関連するコンピュータ読取り可能な媒体は、パーソナルコンピュータ２０に対しコンピュータ読取り可能な命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書で説明される例示的な環境が、ハードディスク、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を用いるが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（RAMs）、読出し専用メモリ（ROMs）などのような、コンピュータによってアクセス可能なデータを格納することが可能な他の種類のコンピュータ読取り可能な媒体も例示的な操作環境において用いることができることは当業者により理解されるであろう。
【００１９】
多数のプログラムモジュールは、オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム、他のプログラムモジュール３７およびプログラムデータ３８を含む、ハードディスク、磁気ディスク２９、光ディスク３１、ROM２４またはRAM２５上に格納されることができる。ユーザは、キーボード４０およびポインティングデバイス４２などの入力装置を介し、パーソナルコンピュータ２０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイステック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、多くの場合システムバスに接続されるシリアルポートインターフェース４６を介して処理装置２１に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（USB）などの他のインターフェースによっても接続されることができる。モニタ４７または他の種類の表示装置も、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続される。モニタ４７に加えて、パーソナルコンピュータは、一般にスピーカおよびプリンタなどの他の周辺出力装置（図示せず）を含む。図１の例示的なシステムも、ホストアダプタ５５、SCSI（Small Computer System Interface）バス５６、およびSCSIバス５６に接続された外付けの記憶装置６２を含む。
【００２０】
パーソナルコンピュータ２０は、１つまたは複数のリモートコンピュータへの論理接続を用いるネットワーク化された環境において操作することができる。メモリ記憶装置５０のみが図１には示されているが、リモートコンピュータ４９は、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置または他の共通のネットワークノードであり得、および一般にパーソナルコンピュータ２０に関連する上述の要素の多くまたはすべてを含む。図１において説明された論理接続は、ローカルエリアネットワーク（LAN）５１およびワイドエリアネットワーク（WAN）５２を含む。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【００２１】
LANネットワーキング環境において用いられるとき、パーソナルコンピュータ２０は、ネットワークインタフェースまたはアダプタ５３を介してLAN５１に接続される。WANネットワーキング環境において用いられるとき、パーソナルコンピュータ２０は、一般にインターネットなどのワイドエリアネットワーク５２上に構築される接続のためにモデム５４または他の手段を含む。内蔵または外付けが可能なモデム５４は、シリアルポートインターフェース４６を介してシステムバス２３に接続される。ネットワーク環境において、説明されたパーソナルコンピュータ２０に関連するプログラムモジュールまたはその一部を、リモートメモリ記憶装置に格納することができる。示されたネットワーク接続が、使用することができるコンピュータ間の通信リンクを構築するための例示的なおよび他の手段であることは理解されたい。
【００２２】
本発明の多数の実施形態がコンピュータ化されたシステムに対して特によく適しているが、この明細書は、このような実施形態に本発明を限定することを意図したものはない。一方、本明細書で用いられる「コンピュータシステム」という用語は、装置が電子的、機械的、論理的または仮想的であるか否かに関わらず、情報を格納し、および処理することのできる、および／または装置自体の動作または実行を制御するための格納された情報を用いることのできる任意のおよびすべての装置を含むことを意図している。
【００２３】
（グラフィクス処理サブシステム）
図２は、典型的なコンピュータグラフィクスサブシステム２００を示したブロック図である。サブシステム２００は、次にオンチップL１キャッシュ（図示せず）を有し、さらに直接L２キャッシュ２１２に接続されたコアプロセッサ２１４を備えたCPU ２１'を備える。CPU ２１'のL１キャッシュ（図示せず）は、通常マイクロプロセッサチップ自体に形成される。例えば、Intel ＭＭＸ（登録商標）マイクロプロセッサは、３２KBL１キャッシュを搭載している。一方、L２キャッシュ２１２は、通常別のチップ（または場合により拡張カード）上にあるが、それでもRAMより素早くアクセスすることが可能であり、通常L１キャッシュよりも大きい。例えば、１メガバイトは、L２キャッシュに対する共通のサイズである。当業者によってよく理解されているように、キャッシュメモリ内のデータおよび命令にアクセスするCPU ２１'は、ランダムアクセスメモリ（RAM２５、図１参照）におけるデータおよび命令にアクセスするよりもさらにより効率的であり、ひいてはCPUは、キャッシュのないGPUに対し大きな性能向上を達成することが可能である。
【００２４】
CPU２１'は、AGP２３０に接続される。AGPは、CPU２１'、システムメモリRAM２５'、およびグラフィクスカード２４０間の２地点間接続を提供し、これら３つのコンポーネントを、図１に示したハードディスクドライブ３２、磁気ディスクドライブ３４、ネットワーク５３、および／または周辺装置などの他の入力／出力（I／O）装置２３２にPCIバス２３'などの従来のシステムバスを介して更に接続する。AGPの存在も、コンピュータシステムがデータトラフィックのシステムからビデオへ（system-to-video）のフローを有利にすることを意味する。つまり、CPU２１'およびシステムメモリRAM２５'からグラフィクスカード２４０へその反対よりも多くのトラフィックが流れる。なぜなら、AGPは、一般にグラフィクスカード２４０から戻ってくる量に比べてグラフィクスカード２４０に流すデータがちょうど４倍に達するよう設計されているからである。
【００２５】
グラフィクスカード２４０は、表示装置４７'に直接接続されたフレームバッファ２４６をさらに備えている。当業者によりよく知られ、理解されているように、フレームバッファは、一般に表示装置４７'が現在の表示内容をリフレッシュ（または「アップデート」）するためフレームバッファから一斉に読み出している間、プロセッサ（場合によっては、GPU２４２またはCPU２１'）が新しい（または修正された）画像をフレームバッファに書くことを可能にするデュアルポートメモリ（dual-ported memory）である。グラフィックカード２４０は、GPU２４２およびVRAM２４４をさらに備える。
【００２６】
GPU２４２は、基本的に、グラフィクス操作に対し特に最適化されているコンピュータシステムにおける第２の処理装置である。グラフィックカードに応じて、GPU２４２は、グラフィクスコプロセッサまたはグラフィクスアクセラレータのどちらかであり得る。グラフィックカードが、グラフィックコプロセッサであるとき、ビデオドライバ２２４は、グラフィクスに関するタスクを実行のために直接グラフィクスコプロセッサに送り、グラフィックコプロセッサは、単独でフレームバッファ２４６に対して（CPU２１'の直接の関与なしに）グラフィクスをレンダリングする。他方、グラフィクスカードがグラフィクスアクセラレータであるとき、ビデオドライバ２２４は、グラフィクスに関するタスクをCPU２１'に送り、次にCPU２１'は、グラフィクスアクセラレータに特定のグラフィクス集約型のタスクを実行するよう指示する。例えば、CPU２１'は、グラフィクスアクセラレータに輪郭を示す頂点を有するポリゴンを描くよう指示することができ、次にグラフィクスアクセラレータは、ビデオメモリ（VRAMSM２４８）にポリゴンのピクセルを書くタスクを実行し、ここから、表示装置４７'上に表示するためにアップデートされた画像をフレームバッファ２４６へコピーする。
【００２７】
GPU２４２に付随するのは、GPUが（RAMの使用に代わって）即時にメモリを呼び出すために近くに置かれた自らのシャドーメモリ（VRAMSM）を保持することを可能にするVRAM２４４であり、GPUの方法などのような追加の処理動作のために必要な追加のメモリ（例えば、VWM）も提供することができる。VRAM２４４は、VRAMSM２４８およびVWM２４９をさらに含む。VRAMSM２４８は、GPU２４２が（GPUの方法におけるCIsを含む）グラフィクス画像を構成し、および修正するVRAM内の場所であり、およびそれは、GPU２４２がレンダリングされたグラフィック画像を、表示装置４７'をアップデートするためにグラフィクスカード２４０のフレームバッファ２４６にコピーする場所である。GPUの方法において、VWMは、特にGOsを格納し、および／またはPOs（またはこの一部）を格納する／再格納するGPU２４２により用いられることができるグラフィクスデータを一時的に格納するGPU２４２によって用いられるVRAMの追加の領域である。（この機能性をグラフィクスカード２４０にオフロードすることにより、CPU２１'およびVSM２２２は、これらのタスクから開放される。）
システムメモリRAM２５'は、オペレーティングシステム３５'、ビデオドライバ２２４、ビデオメモリサーフェース（VMSs）２２３、およびビデオシャドーメモリ（VSM）２２２を備えることができる。VSMは、CPU２１'が（CPUの方法におけるCIsを含む）グラフィック画像を構成し、および修正し、CPU２１'がレンダリングされたグラフィック画像を、AGP２３０を介してグラフィクスカード２４０のフレームバッファ２４６にコピーするRAM２５'内の場所である。CPUの方法において、VMSsは、特にGOsを格納し、および／またはPOs（またはこの一部）を格納する／再格納するCPU２１'により用いられることができるグラフィクスデータを一時的に格納するCPU２１'によって用いられるRAMの追加の領域である。
【００２８】
（空間的分離適応サンプリングアルゴリズム（Spatially-Discrete Adaptive Sampling Algorithm））
本発明の様々な実施形態は、PRTシステム、つまり、メッシュの面を分割し、伝達信号の空間的変動が表面のどの場所でも十分に処理されるように表面の頂点の数を増やす、表面メッシュ上のPRT信号を計算するためのアルゴリズムを利用するコンピュータシステムを対象とする。この方法は、輝度伝達シェーディングが全表面にわたって十分に正確な色を実現することを可能にする。ある実施形態において、伝達は、テッセレーションが粗過ぎる領域における表面ライティングの細部の一定量の許容可能なエイリアシングおよびぼかしを生じさせるが、表面の頂点においてのみ計算される。
【００２９】
図３は、本発明のいくつかの実施形態に対する入力および出力を示したブロック図である。図において、PRTシステム３０２は、粗くテッセレートされた（標準の）三角メッシュ３１２、（後述の）許容誤差３１４に対応する値、および再分割レベル３１６の最大数に対応する値を含む入力を受信する。これらの入力を用いて、PRTシステムは、（ｉ）幾何学的に入力メッシュと同様であるが、面がより細かく再分割されている新しい、強化されたメッシュ（「EM」）３２２、および（ｉｉ）（「TSVs」と共に）強化されたメッシュ３２８の各頂点における伝達信号ベクトルを実現する。
【００３０】
図４は、本発明の様々な特徴を備えた方法の一実施形態を示すフローチャートである。要約すると、入力を出力に変換するため、PRTシステムは、例えば、（現在、DirectX9.1D3DXSHPRTシミュレーション関数がDirectX APIにおいて公開されていないことに留意されるべきだが）現在のDirectX9.1D3DXSHPRTシミュレーション関数のバックエンドにおいて見られるようなソフトウェアレイトレーサ（software ray-tracer）を用いるメッシュの頂点におけるPRTベクトルをサンプリングするアルゴリズムを用いた。このようなレイトレーサは、例えば、サンプルの確立分布が余弦関数的に重み付けされ、拡散余弦減衰（diffuse cosine falloff）を重要度サンプリング（importance-sample）し、静的分布（static distribution）が各頂点のローカルフレームに使い回される、各点について半球に関し分布された光線の方向のHammersleyポイントまたはHaltonシーケンスを用いる。
【００３１】
図に示されるように、および本発明のいくつかの実施形態に対し、PRTシステムによって用いられるアルゴリズムは、複数のステップを備える。ステップ４０２において、システムは、最初にサンプリングし、およびテッセレーションの各エッジの各頂点および中点における（つまり、メッシュにおける元のトライアングルごとに）PRTベクトルをキャッシュに入れる。ステップ４０４において、次にシステムは、各エッジにおけるエラーを計算する。そのエラーは、サンプリングされたエッジとエッジの各終端におけるベクトルの線形補間から生じるベクトルとの間の単純な平方誤差であり得る。ステップ４０６において、次に各エッジに対し、システムは、エラーが提供された閾値よりも大きいかを判定し、もしそうであるなら、一斉に各そのようなエッジに印を付け、再分割する。ステップ４０８において、およびテッセレーションにおける（３つのエッジと３つの頂点とを備える）トライアングルごとに、システムは、エッジの１つ、２つ、または３つが印を付けられた場合、前記トライアングルを２つ、３つ、または４つのトライアングルに分割し、各新しい頂点におけるPRTベクトルが再分割前のエッジの中点において計算された値を与える。ステップ４１０において、任意のトライアングルがステップ４０８において新しいトライアングルに分割された場合、および再分割の最大数にまだ達していない場合、次にステップ４１２（およびサブシーケンス反復）において、システムは、テップ４０８の直近の操作において作成された新しいトライアングルの各エッジの各頂点および中点におけるPRTベクトルをサンプリングし、キャッシュに入れる。次にステップ４０４に戻り、それらのエッジのさらなる処理を続ける。このサイクルは、ステップ４１０においてステップ４０８の直近の反復においてトライアングルが再分割されなかったか、または再分割の最大数に達するまで続く。その時定で、ステップ４１４において、再分割処理は終了され、およびシステムは、入力メッシュを出力メッシュに置き換える。その後、頂点およびトライアングルの現在のリストを提供し、PRT信号が各頂点におけるキャッシュに入れられたPRTベクトルである。
【００３２】
図５A、５Bおよび５Cは、図４のステップ４０８において説明したような、本発明の一実施形態に従うすべての２つ、３つまたは４つの新しいトライアングルそれぞれへのトライアングルの分割を示したブロック図である。図５Aにおいて、新しいエッジ５３２が、印が付けられたエッジ５１２の中点５４２から前記印を付けられたエッジ５１２の反対側の頂点５５２に伸びるとき、単一の印を付けられたエッジ５１２を有するトライアングル５０２は、２つの新しいトライアングル５２２および５２４に分割される。
【００３３】
図５Bにおいて、２つの印を付けられたエッジ５１２および５１４を有する同じトライアングル５０２は、基本的に図５Aに示されたような同様のアプローチを用いるが、それは２つの部分においてである。第１の部分では、図５Aにおいて示されたようなエッジ５１２に対して再分割が行われ、第２の部分では、エッジ５１４に対し再分割が行われ、エッジ５１２に対して行われた第１の部分における再分割から生じた第２のエッジ５１４に対する再分割が新しいトライアングル５２２内で行われる。より具体的には、２つの印の付けられたエッジ５１２および５１４を有するトライアングル５０２に対し、（a）新しいエッジ５３２が、印を付けられたエッジ５１２の中点５４２から前記印を付けられたエッジ５１２の反対側の頂点５５２に伸びるとき、トライアングル５０２は、２つの新しいトライアングル５２２および５２４にまず分割され、（b）新しいエッジ５３４が印を付けられたエッジ５１４の中点５４４から（前記頂点５５４もエッジ５１２の中点に生じる）前記印を付けられたエッジ５１４の反対側の頂点５５４に伸びるとき、新しいトライアングル５２２は、２つの新しいトライアングル５２６および５２７にさらに分割される。
【００３４】
図５Cおいて、３つの印を付けられたエッジ５１２，５１４および５１６を有する同じトライアングル５０２も、基本的には図５Aおよび５Bに示されているような同様のアプローチを用いるが、それは３つの部分においてである。第１の部分では、図５Aに示されるようなエッジ５１２に対し再分割が行われ、第２の部分では、図５Bに示されるようなエッジ５１４に対し再分割が行われ、第３の部分では、エッジ５１６に対する再分割が、エッジ５１２に対して行われた第１の部分における再分割から生じた新しいトライアングル５２４内で行われる。より具体的には、３つの印を付けられたエッジ５１２、５１４および５１６を有するトライアングル５０２に対し、（a）新しいエッジ５３２が、印が付けられたエッジ５１２の中点５４２から、前記印が付けられたエッジ５１２の反対側の頂点５５２に伸ばされるとき、トライアングル５０２は、まず２つの新しいトライアングル５２２および５２４に分割され、（b）新しいエッジ５３４が、印が付けられたエッジ５１４の中点５４４から、（前記頂点５５４もエッジ５１２の中点に生じる）前記印が付けられたエッジ５１４の反対側の頂点５５４に伸ばされるとき、新しいトライアングル５２２は、２つの新しいトライアングル５２６および５２７にさらに分割され、（c）新しいエッジ５３６が、印が付けられたエッジ５１４の中点５４６から、（前記頂点５５６もエッジ５１２の中点およびトライアングル５２２におけるエッジ５１４の反対側の頂点に生じる）前記印が付けられたエッジ５１４の反対側の頂点５５６にさらに伸ばされるとき、新しいトライアングル５２４は、２つの新しいトライアングル５２８および５２９にさらに分割される。
【００３５】
図４を再び参照すると、ステップ４０８に関し、作成された新しいトライアングルの和（例えば、図５C のトライアングル５２６、５２７、５２８および５２９）が元のトライアングル（５０２）と正確に同じ空間にまでおよぶことに留意することは重要である。加えて、アルゴリズムが、正常変動が新しい、強化されたメッシュにおいてより良く処理されるように終端から新しい頂点に標準のベクトルを補間することも仮定される。
【００３６】
図４に示された方法に対するある代替の実施形態において、および特にステップ４０８に関し、エッジの１、２または３箇所に印が付いた場合、トライアングルを２つ、３つまたは４つのトライアングルに分割する代わりに、 PRTシステムは、単一の印を付けられたエッジを有する任意のトライアングルを、元のトライアングルの各エッジの中点に基づいた４つのトライアングルに再分割することができる。このアプローチは、アルゴリズムが、元のトライアングルの同じエッジを繰り返し分割する図４のステップ４０８に示した方法をもたらす「鋭角トライアングル」を避ける。図６は、例えば、点６０２と６０４との間の遷移が表示された画像に鋭い画像の輪郭を定めるとき、図４の方法の４回の反復から生じる鋭角トライアングルの結果を示すブロック図である。一方、図７A、７Bおよび７Cは、代替の４−トライアングル再分割方法の３回の反復から生じるトライアングルを示すブロック図である。各生じたトライアングルが、より小さいが、大きなトライアングルの相似形であることに留意されたい。図７Aにおいて、元のトライアングル７０２は、４つのトライアングル７１２、７１４、７１６および７１８に分割される。図７Bにおいて、生じたトライアングル７１６（ラベル表示されていない）は、再び４つのトライアングル７２２、７２４、７２６および７２８に分割される。図７Cにおいて、生じたトライアングル７２６（ラベル表示されていない）は、再び４つのトライアングル７３２、７３４、７３６および７３８に分割される。
【００３７】
さらに、それらの実施形態のいくつかに対し、および特に図７A、７B、および７Cに示した４−トライアングル再分割方法に関し、T−頂点を避けるために、一般に「コンフォーマルエッジ」として知られる、追加のエッジは、T−頂点を取り除くために必要に応じて再分割の過程の一部として必ずしも含まれない。図７Bにおいて、これは、図７Dに示すように２つのトライアングル７１４'および７１４''に分割されるトライアングル７１４を生じさせる。図７Cにおいて、これは、図７Eに示すように２つのトライアングル７２４'および７２４''に分割されるトライアングル７２４を生じさせる。どちらの場合においても、それらの等角分割は、近接するトライアングルにおいて起きる４対１再分割によって生じる。図５A、５Bおよび５Cに示したように２つ、３つまたは４つに分割されたトライアングルに対し、この同じ過程も必要であり、ある実施形態に対しても自動的に生じる。
【００３８】
しかし、用いられるアプローチに関係なく、本発明のそれら様々な実施形態は、一連のエッジのマーキングおよび再分割の後、メッシュは、いかなるT−クラックも有さないという意味において常にいい形に整形され、従ってこのアプローチは、整理されたパスを要求する、またはより複雑な分割規則を要求するより洗練された方法より簡潔であるという点において、固有の優位性を有する再分割の方法を用いる。
【００３９】
本発明の様々な実施形態によって用いられる１つのエラー測定基準は、エッジにわたって積分されたPRT信号の平方誤差である。これは、エッジの長さに関連し、従ってエラーは、再分割の水準が高い場所で減少する。本発明のある代替の実施形態によって用いられる代替のエラー測定基準は、積分を廃止し、各エッジのまさに中点における絶対的なエラーの違いを簡潔に測定する。その各エッジは、テストされ、表面上の最大エラーの個別のサンプリングを通して、L∞基準評価のように大まかに解釈されることができる。
【００４０】
全体的に、この強化されたPRTアプローチは、簡潔であり、および基礎を成すアルゴリズムは、再分割のすべてのステップにおいて有効なメッシュを提供する。さらに、エッジのいたる所でのエラー推定において計算されたおよびキャッシュに入れられたデータが存在するため、伝達信号の最終値をエクスポートするのは些細なことである。
【００４１】
（結論）
本明細書において説明される様々なシステム、方法および技術は、ハードウェアまたはソフトウェアを伴い、またはその両方の適切な組み合わせを伴い実施することができる。従って、本発明の方法および装置、またはそれらの特定の態様ならびに一部は、フロッピー（登録商標）ディスク、CD-ROM、ハードドライブ、または任意の他のマシン‐読取り可能な記憶媒体などの有形の媒体において実施されるプログラムコード（例えば、命令）の形を取る。プログラムコードがコンピュータのようなマシンにロードされ、および実行されるとき、マシンは、本発明を実施するための装置になる。プログラム可能なコンピュータ上でのプログラムコードを実行する場合、コンピュータは、一般にプロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性および不揮発性メモリおよび／またはストレージ要素）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。１つまたは複数のプログラムは、コンピュータシステムとやりとりする高水準の手続き型プログラミング言語またはオブジェクト指向プログラミング言語において好ましくは実装される。しかし、必要ならば、プログラムを、アッセンブリー言語または機械語において実装することが可能である。いかなる場合においても、言語は、コンパイル済みまたはインタープリタ型言語であってもよく、ハードウェア実装と組み合わされることもできる。
【００４２】
本発明の方法および装置も、電気配線またはケーブリング、光ファイバー、ならびに伝送の任意の他の形態など、いくつかの伝送媒体を伝達されるプログラムコードの形態において具現化することができる。プログラムコードが、EPROM、ゲートアレイ、プログラム可能な論理装置（PLD）、クライアントコンピュータ、ビデオレコーダなどのマシンによって受信され、ロードされ、実行されるとき、そのマシンは、本発明を実施する装置になる。汎用プロセッサ上に実装されるとき、プログラムコードは、プロセッサと組み合わせ、本発明のインデックス付け機能性を実行する働きをする独自の装置を提供する。
【００４３】
本発明が様々な図の好ましい実施形態と結びつけて説明されているが、他の同様な実施形態を使用して、または記載された実施形態に対する修正および追加を行って、本発明から逸脱することなく本発明と同様の機能を実行することができることは理解されることである。例えば、本発明の例示的な実施形態が、パーソナルコンピュータの機能性をエミュレートするデジタル装置という状況で説明されるが、当業者は、本発明が、本願に記載のようなデジタル装置に限定されず、有線であろうと無線であろうと、ゲーム用コンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなどの既存のまたは現れつつある、コンピューティング装置または環境のいくつにでも適用でき、通信ネットワークを介し接続され、ネットワーク上でやりとりするそのようなコンピューティング装置のいくつにでも適用されることができることを理解されたい。さらに、ハンドヘルド装置のオペレーティングシステムおよび他のアプリケーション固有のハードウェア／ソフトウェアインタフェースシステムを含む、様々なコンピュータプラットフォームが本明細書において特に無線ネットワーク装置の数が増え続けるとして検討されたことは強調されるべきである。従って、半発明は、いかなる単一の実施形態にも限定されるべきではなく、むしろ添付の請求項に従う幅および範囲において解釈される。
【図面の簡単な説明】
【００４４】
【図１】本発明を組み込むことのできるコンピュータシステムを表したブロック図である。
【図２】典型的なコンピュータグラフィクスサブシステムを示したブロック図である。
【図３】本発明のいくつかの実施形態に対する入力および出力を示したブロック図である。
【図４】本発明の様々な態様を備えた方法の一実施形態を示したフローチャートである。
【図５Ａ】図４において説明したような本発明の一実施形態に従う２つの新しいトライアングルの分割を示したブロック図である。
【図５Ｂ】図４において説明したような本発明の一実施形態に従う３つの新しいトライアングルの分割を示したブロック図である。
【図５Ｃ】図４において説明したような本発明の一実施形態に従う４つの新しいトライアングルの分割を示したブロック図である。
【図６】例えば、特定の点の間の遷移が、描かれているグラフィックにおいてくっきりした画像の輪郭を定義するときに生じる図４の方法の４回の反復から生じた鋭角トライアングルの結果を示したブロック図である。
【図７Ａ】代替の４−トライアングルの再分割の方法の３回の反復から生じたトライアングルを示したブロック図である。
【図７Ｂ】代替の４−トライアングルの再分割の方法の３回の反復から生じたトライアングルを示したブロック図である。
【図７Ｃ】代替の４−トライアングルの再分割の方法の３回の反復から生じたトライアングルを示したブロック図である。
【図７Ｄ】代替の４−トライアングルの再分割の方法の３回の反復から生じたトライアングルを示したブロック図である。
【図７Ｅ】代替の４−トライアングルの再分割の方法の３回の反復から生じたトライアングルを示したブロック図である。
【符号の説明】
【００４５】
３１  リムーバブル光ディスク
２００  コンピュータグラフィクスサブシステム
２３'  PCIバス
【図１】
0004705357.tif 000002
【図２】
0004705357.tif 000003
【図３】
0004705357.tif 000004
【図４】
0004705357.tif 000005
【図５Ａ】
0004705357.tif 000006
【図５Ｂ】
0004705357.tif 000007
【図５Ｃ】
0004705357.tif 000008
【図６】
0004705357.tif 000009
【図７Ａ】
0004705357.tif 000010
【図７Ｂ】
0004705357.tif 000011
【図７Ｃ】
0004705357.tif 000012
【図７Ｄ】
0004705357.tif 000013
【図７Ｅ】
0004705357.tif 000014