(57)【要約】  システムは、グラフィックスメモリと、データバスと、プロセッサと、頂点シェーダとを備えてもよい。データバスは、グラフィックスメモリに動作可能に接続されてもよい。プロセッサは、データバスを介してグラフィックスメモリに頂点データを送ってもよい。頂点シェーダは、グラフィックスメモリから頂点データを読み出してもよく、この頂点データを細分割して、細分割された頂点データにしてもよい。頂点シェーダはまた、細分割された頂点データをグラフィックスメモリに書き込んでもよい。
2008511074.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックスメモリと、
前記グラフィックスメモリに動作可能に接続されるデータバスと、
前記データバスを介して前記グラフィックスメモリに頂点データを送るプロセッサと、
前記グラフィックスメモリから前記頂点データを読み出し、該頂点データを細分割して、細分割された頂点データにするとともに、該細分割された頂点データを前記グラフィックスメモリに書き込む頂点シェーダと
を備えるシステム。
【請求項２】
前記頂点データは幾何学的画像を含む、請求項１に記載のシステム。
【請求項３】
前記頂点データは、色データ、テクスチャデータ、又は法線データをさらに含む、請求項２に記載のシステム。
【請求項４】
前記プロセッサは、アプリケーションプログラミングインタフェース（ＡＰＩ）を用いて前記頂点データを送るように構成される、請求項１に記載のシステム。
【請求項５】
前記データバスは、関連する帯域幅を有し、
前記プロセッサにより送られる前記頂点データは、前記データバスの前記帯域幅のほとんどを使用する、請求項１に記載のシステム。
【請求項６】
前記グラフィックスメモリから前記細分割された頂点データを読み出し、該細分割された頂点データを表示するために準備するピクセルシェーダ
をさらに備える、請求項１に記載のシステム。
【請求項７】
前記ピクセルシェーダは前記細分割された頂点データをラスタ化する、請求項６に記載のシステム。
【請求項８】
前記ピクセルシェーダからの、準備が整った細分割された頂点データをバッファリングして出力するフレームバッファ
をさらに備える、請求項６に記載のシステム。
【請求項９】
前記プロセッサが前記グラフィックスメモリに前記頂点データを送る前に該頂点データを記憶するメインメモリ
をさらに備える、請求項１に記載のシステム。
【請求項１０】
第１の解像度を有する第１の幾何学的画像を記憶するメモリと、
前記第１の幾何学的画像を、前記第１の解像度より高い第２の解像度を有する第２の幾何学的画像に細分割し、該第２の幾何学的画像を前記メモリに記憶する頂点シェーダと、
前記第２の幾何学的画像を表示するために準備するピクセルシェーダと
を備えるシステム。
【請求項１１】
前記ピクセルシェーダからのデータをバッファリングして出力するフレームバッファ
をさらに備える、請求項１０に記載のシステム。
【請求項１２】
前記第１の幾何学的画像を得て前記メモリに該第１の幾何学的画像を送るプロセッサ
をさらに備える、請求項１０に記載のシステム。
【請求項１３】
前記プロセッサがアクセスする、前記第１の幾何学的画像を記憶する別のメモリ
をさらに備える、請求項１２に記載のシステム。
【請求項１４】
前記ピクセルシェーダは前記第２の幾何学的画像をラスタ化する、請求項１０に記載のシステム。
【請求項１５】
前記第２の解像度は前記第１の解像度の約４倍である、請求項１０に記載のシステム。
【請求項１６】
第１のサイズの第１の幾何学的画像を得ること、
前記第１の幾何学的画像を記憶すること、
前記第１の幾何学的画像を、前記第１のサイズより大きい第２のサイズの第２の幾何学的画像に細分割すること、及び
前記第２の幾何学的画像を記憶すること
を含む方法。
【請求項１７】
前記得ることは、
前記第１の幾何学的画像を計算すること
を含む、請求項１６に記載の方法。
【請求項１８】
前記得ることは、
メモリから前記第１の幾何学的画像を読み出すこと
を含む、請求項１６に記載の方法。
【請求項１９】
前記第２のサイズは前記第１のサイズの約４倍である、請求項１６に記載の方法。
【請求項２０】
前記第２の幾何学的画像を、前記第２のサイズより大きい第３のサイズの第３の幾何学的画像に細分割すること、及び
前記第３の幾何学的画像を記憶すること
をさらに含む、請求項１６に記載の方法。
【請求項２１】
前記第１の幾何学的画像を記憶する前に、データバスを介して該第１の幾何学的画像を送信すること
をさらに含む、請求項１６に記載の方法。
【請求項２２】
前記第２の幾何学的画像をラスタ化すること
をさらに含む、請求項１６に記載の方法。
【請求項２３】
グラフィックデータを記憶するメモリと、
前記メモリからグラフィックデータを読み出し、該読み出したグラフィックデータから新たなグラフィックデータを生成し、該新たなグラフィックデータを前記メモリに書き込む頂点シェーダと
を備える装置。
【請求項２４】
前記読み出したグラフィックデータは幾何学的画像を含む、請求項２３に記載の装置。
【請求項２５】
前記頂点シェーダは、前記読み出したグラフィックデータを細分割して前記新たなグラフィックデータを生成するように構成される、請求項２３に記載の装置。
【請求項２６】
メモリから第１の解像度を有する頂点データを読み出すこと、
前記メモリから前記第１の解像度より低い第２の解像度を有する法線データを読み出すこと、及び
前記法線データを用いて、前記頂点データを表示するために準備すること
を含む方法。
【請求項２７】
前記第２の解像度を有する元の頂点データを、前記第１の解像度を有する前記頂点データに細分割すること、及び
前記第１の解像度を有する前記頂点データを前記メモリに書き込むこと
をさらに含む、請求項２６に記載の方法。
【請求項２８】
前記準備することは、
前記第１の解像度を有する前記頂点データのインデックスを、該第１の解像度と前記第２の解像度との比によりスケーリングすることであって、それによって、該第２の解像度を有する前記法線データの対応するインデックスを生成する、スケーリングすること
を含む、請求項２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施態様は、包括的にはグラフィック画像の処理に関し、特に、幾何学的画像を用いたグラフィック画像の処理に関するものであり得る。
【背景技術】
【０００２】
図１は、通常のグラフィックス処理１００を示すフロー図である。グラフィック画像を表現する幾何形状がグラフィックスパイプラインに提示され得る［動作１１０］。このような幾何形状は通常、三角形を含み得るが、四辺形又は任意の他のタイプの幾何形状も含み得る。頂点シェーダが次に、必要に応じて各ポリゴンの変換及び照明、頂点の色決め、法線の算出等の処理を行って、幾何形状を処理し得る［動作１２０］。頂点シェーダは通常、頂点に関連するデータに作用する命令セットを実装するハードウェアを含む。このようなデータは、頂点位置、頂点法線、及び頂点毎のテクスチャ座標を含み得る。これらの値はまた後に、シェーディングハードウェアにより、１つのポリゴンにわたって補間を行い陰影付きの画像を作成するために使用され得る。
【０００３】
次に、ポリゴンを画面の適切な位置に貼り付け得る［動作１３０］。ピクセルシェーダは次に、各ポリゴンをシェーディングし得る［動作１４０］。ピクセルシェーダは通常、各フラグメントが画面にレンダリングされる前にグラフィックスパイプラインを通過する時にそのフラグメントに対して命令セットを実行するハードウェアを含む。ピクセルシェーダ及び頂点シェーダは、同一の命令セットを有していても、又は異なる命令セットを有していてもよい。また、ピクセルシェーダ及び頂点シェーダが実行する命令セットは、プログラマに見える命令と異なっていてもよい。
【０００４】
シェーディングの後に、特定の画素が任意の以前にレンダリングされた画素の正面にある場合、その特定の画素をフレームバッファに書き込んでもよい［動作１５０］。グラフィックエンジンによっては、アルファブレンディングが行われ得る。アルファブレンディングは、部分的に透明なオブジェクトの実装を容易にする機構であり、通常、従来の３次元（３Ｄ）グラフィックスパイプラインにおいて用いられるカラーチャネルへの１つの追加チャネルにより実現され得る。
【０００５】
近年、いくつかの利点を有し得る、グラフィック画像のサーフェス（surface：曲面）の幾何形状を表現する技法が提案されている。このような技法は、任意のグラフィックサーフェスを、「幾何学的画像」と呼ばれる完全な規則構造上に再メッシュ化し得る。この幾何学的画像は、グラフィック画像のサーフェスの幾何形状を、量子化された点の２次元（２Ｄ）アレイとして取り込むことができる。法線及び／又は色等のサーフェス信号は、幾何学的画像と同じサーフェスのパラメータ化を用いて同様の２Ｄ画像に記憶され得る。幾何学的画像に関するさらなる考察は、例えば、Xianfeng Gu他著「幾何学的画像（Geometry Images）」（SIGGRAPH 2002 Proceedings, pp. 355-361）、及びF. Losasso他著「平滑な幾何学的画像（Smooth Geometry Images）」（Eurographics 2003, pp. 138-145 and 273）に見出すことができる。幾何学的画像とは何か、及び幾何学的画像が３Ｄグラフィックオブジェクトをどのように表現し得るかをより良く理解するために、簡単な説明を行う。
【０００６】
図２は、３Ｄモデル２１０からの幾何学的画像２５０の形成を示す（例えば、Hughes Hoppe著「コンピュータグラフィックスにおける不規則構造から完全な規則構造へのメッシュ化（Irregular To Completely Regular Meshing In Computer Graphics）」（International Meshing Roundtable 2002, September 2002）を参照）。３Ｄモデル２１０は、３Ｄ空間において曲げられワーピングされて３Ｄメッシュを形成する２次元（２Ｄ）形状として概念化され得る。モデル２１０は、頂点及び頂点間のエッジ（辺）によって規定される幾何形状（例えば三角形、四辺形等）のこのようなメッシュを含み得る。モデル２１０中の頂点は、３Ｄ座標系における関連する空間座標値（例えば［ｘ，ｙ，ｚ］座標）を有し得る。
【０００７】
３Ｄモデル２１０は、エッジに沿って切断されて、異なる（例えば、うさぎの形でない）２Ｄ形状を形成し得る。切断面（cut）２２０はそのような１つの切断面を例示する。この異なる形状は、既知の技法を用いてワーピング又はパラメータ化して規則形状２３０を形成し得る。規則形状２３０は、モデル２１０からの接続された頂点（例えば三角形として示される）を含んでもよく、切断面２２０は形状２３０の外側のエッジ（複数可）に位置する。したがって、規則形状２３０は、モデル２１０中の頂点の［ｘ，ｙ，ｚ］位置値と、これらの頂点の接続関係との両方を維持する。規則形状２３０は正方形として示されるが、他のタイプの規則形状（例えば円等）を用いてもよいことに留意すべきである。
【０００８】
規則形状２３０内のポリゴンは規則的にサンプリングされて、サンプリングされた形状２４０が生成され得る。サンプリングされた形状２４０内の各サンプリングされた点は、位置値（例えば［ｘ，ｙ，ｚ］座標）を維持するとともに、サンプリングされた画像２４０内の他の頂点に暗黙的に接続されている新たな頂点であり得る。すなわち、サンプリングされた画像２４０内の頂点は、規則形状２３０の規則的なサンプリングのために、エッジにより他の頂点の上側、下側、左側、及び右側に接続され得る。
【０００９】
サンプリングされた画像２４０は、サンプリングされた画像２４０内の頂点の３チャネル［ｘ，ｙ，ｚ］座標を３次元ＲＧＢ空間の［ｒ，ｇ，ｂ］座標にマッピングすることにより赤／緑／青（ＲＧＢ）（又は任意の他の色空間）カラー画像に変換されて、幾何学的画像２５０が生成され得る。幾何学的画像２５０内の各画素は、モデル２１０中のサンプリングされた頂点を、その［ｘ，ｙ，ｚ］空間位置を表現する画素の赤、緑、及び青の値により表現し得る。モデル２１０中の対応するサンプリングされた頂点の近傍頂点は、幾何学的画像２５０内の所与の画素に対する近傍画素により求められる。換言すれば、モデル２１０の近傍頂点は幾何学的画像２５０内の近傍画素により分かり、これらの頂点の位置値は幾何学的画像２５０内の画素の色値により分かる。
【００１０】
幾何学的画像２５０を位置情報に関して説明してきたが、幾何学的画像２５０は、モデル２１０の頂点に関連する任意の情報について生成され得る。例えば、空間を指し示す［ｘ，ｙ，ｚ］ベクトルである法線もまた幾何学的画像２５０により表現することができる。また、色値及び／又はテクスチャ座標も幾何学的画像２５０により表現することができる。モデルを画像として表現することにより、画像圧縮アルゴリズム等の既存の画像処理アルゴリズムを使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
幾何学的画像を圧縮することは可能であるが、このような幾何学的画像は圧縮されていても、場合によりデータバスを介してグラフィックスプロセッサに送られ得る。場合によっては、データバスの帯域幅が、幾何学的画像からグラフィックスプロセッサにより表現される解像度及び／又は視覚的忠実度を制限する場合がある。
【発明を実施するための最良の形態】
【００１２】
本明細書に組み込まれてその一部を成す添付図面は、本発明の原理に一致する１つ又は複数の実施態様を示し、明細書とともに、そのような実施態様を説明する。これらの図面は必ずしも一定の縮尺で描かれておらず、その代わりに、本発明の原理を例示することに重点が置かれている。
【００１３】
以下の詳細な説明は添付図面を参照する。同じ参照番号が様々な図面中で、同一又は同様の要素を特定するために用いられ得る。以下の説明において、限定ではなく説明する目的で、本発明の様々な態様が十分に理解されるよう、特定の構造、アーキテクチャ、インタフェース、技法等の具体的な詳細が記載される。しかし、本開示を利用できる当業者には、本発明の様々な態様を、これらの具体的な詳細から離れた他の例において実施できることが明らかであろう。場合によっては、本発明の説明を不要な詳細により不明瞭にしないために、よく知られたデバイス、回路、及び方法の説明は省略される。
【００１４】
図３は例示的なシステム３００を示す。システム３００は、メインメモリ３１０と、プロセッサ３２０と、データバス３３０と、グラフィックスメモリ３４０と、１つ又は複数の頂点シェーダ３５０と、１つ又は複数のピクセルシェーダ３６０と、フレームバッファ３７０とを備えてもよい。実施態様によっては、要素３４０〜３７０のうちの１つ又は複数は、データバス３３０を介してプロセッサ３２０に接続された物理的に異なるグラフィックスカードに含まれていてもよい。実施態様によっては、要素３４０〜３７０は、要素３１０及び３２０と共通の回路基板（例えば、マザーモード、ドーターボード等）上に配置されてもよい。実施態様によっては、要素３５０及び３６０の一方又は両方はデバイスの或る部分（例えばコア）の一部であってもよく、プロセッサ３２０は同一デバイスの別の部分（例えば別のコア）に含まれていてもよい。
【００１５】
メインメモリ３１０は、幾何学的画像を記憶する記憶デバイスを含み得る。メインメモリ３１０は、ランダムアクセスメモリ（ＲＡＭ）デバイス（ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＲＡＭ（ＤＤＲ  ＲＡＭ）等）を含み得る。メインメモリ３１０は、事前に計算された幾何学的画像及び／又は幾何学的画像を計算する元となるグラフィックデータを記憶してもよい。
【００１６】
プロセッサ３２０は、汎用プロセッサ、専用プロセッサ、及び／又は特殊用途向けに構成されたロジックを含み得る。プロセッサ３２０は、データバス３３０を介してメインメモリ３１０からグラフィックスメモリ３４０へ幾何学的画像を供給するように構成されていてもよい。プロセッサ３２０は、レンダリング、ゲーム、グラフィック作成、又は他のタイプのグラフィック関係のプログラム等のプログラムの制御下でデータバス３３０を介して幾何学的画像を送ってもよい。実施態様によっては、プロセッサ３２０は、メインメモリ３１０内の他の情報から幾何学的画像を計算し、その幾何学的画像をメインメモリ３１０に記憶してもよい。実施態様によっては、プロセッサ３２０は幾何学的画像を、データバス３３０を介して送信する前に（例えばＪＰＥＧ２０００又は別の可逆方式により）圧縮してもよい。
【００１７】
データバス３３０は、プロセッサ３２０をグラフィックスメモリ３４０に接続し得る。データバス３３０は、通常の相互接続プロトコルを使用しても、又はカスタム通信プロトコルを使用してもよい。データバス３３０は、所与の時間内に転送することができる最大データ量を決める関連する帯域幅を有し得る。実施態様によっては、データバス３３０の帯域幅は、システム３００の他の部分（例えば、シェーダ３５０及び／又は３６０）の性能を制限する場合がある。実施態様によっては、データバス３３０の帯域幅は、システム３００の全体的な性能を制限しない場合がある。
【００１８】
グラフィックスメモリ３４０は、記憶デバイスを含んで幾何学的画像を記憶し得る。グラフィックスメモリ３４０は、ランダムアクセスメモリ（ＲＡＭ）デバイス（ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＲＡＭ（ＤＤＲ  ＲＡＭ）等）を含み得る。グラフィックスメモリ３４０は、プロセッサ３２０及び頂点シェーダ３５０から幾何学的画像を受け取って記憶してもよい。グラフィックスメモリ３４０は、書き込み動作により幾何学的画像を記憶するだけでなく、読み出し動作により頂点シェーダ３５０及びピクセルシェーダ３６０にそのような幾何学的画像を提供してもよい。例えば、グラフィックスメモリ３４０は、幾何学的画像に関連する様々な「頂点毎の」データを記憶してもよい。このような頂点データは、頂点位置、テクスチャ座標、色座標、又は法線ベクトルのうちの１つ又は複数を含み得る。
【００１９】
頂点シェーダ３５０は、グラフィックスメモリ３４０から頂点データを読み出し、頂点データを細分割して高解像度の頂点データを生成するように構成されてもよい。頂点シェーダ３５０は、並列アーキテクチャを有してもよく、また、例えばピクセルシェーダ３６０より大きな命令セットを有してもよい。頂点シェーダ３５０は、本明細書中でさらに説明するように、様々な頂点生成プログラム及び細分割方式を用いて、頂点データの解像度を上げてもよい。頂点シェーダ３５０はまた、高解像度の頂点データをグラフィックスメモリ３４０に書き込んでもよい。
【００２０】
グラフィックスメモリ３４０に対する比較的高帯域のアクセスのために、頂点シェーダ３５０は、比較的大量の高解像度の頂点データをグラフィックスメモリ３４０に書き込んでもよい。通常の細分割方式は、幾何学的画像中のデータ量を４倍に増やし得る。頂点シェーダ３５０は、所与の幾何学的画像に対して１つ又は複数のレベルの細分割を行うように構成されていてもよく、例えばグラフィックスメモリ３４０に記憶されている１回細分割された頂点データを頂点シェーダ３５０により使用して、グラフィックスメモリ３４０に記憶するための第２レベルの細分割データを（例えばより高い／細かい解像度で）生成してもよい。
【００２１】
ピクセルシェーダ３６０は、細分割された頂点データをグラフィックスメモリ３４０から読み出して、それを表示するために準備するように構成されてもよい。ピクセルシェーダ３６０は、グラフィックスメモリ３４０に対して、例えば頂点シェーダ３５０より高帯域幅の接続を有してもよく、命令数及び命令セットが頂点シェーダ３５０より制限されてもよい。例えば、ピクセルシェーダ３６０は、グラフィックスメモリ３４０から新たな高解像度の幾何学的画像を読み出し、この画像をラスタ化し、ラスタ化した画素データをフレームバッファ３７０に送るように構成されてもよい。実施態様によっては、ピクセルシェーダ３６０は、プロセッサ３２０からの低解像度の幾何学的画像（グラフィックスメモリ３４０に残り得る）をディスプレイプリミティブとして用いて新たな幾何学的画像をラスタ化してもよい。
【００２２】
フレームバッファ３７０は、ピクセルシェーダ３６０から画素データを受け取り、これを必要に応じて表示前にバッファリングするように構成されてもよい。フレームバッファ３７０はまた、おそらくはグラフィックスプロセッサ（図示せず）の制御下で、ディスプレイ又はディスプレイインタフェースへデータを出力してもよい。
【００２３】
図４は、グラフィックデータを細分割するプロセス４００を示すフロー図である。プロセス４００は、説明を容易にするためにシステム３００に関して説明され得るが、本発明はこの点で必ずしも限定されない。
【００２４】
処理は、プロセッサ３２０が画像中の頂点位置についてテクスチャ、幾何学的画像、及び任意の他の関連する値を得ることから始まり得る［動作４１０］。実施態様によっては、プロセッサ３２０がそれらの値を計算してもよく、実施態様によっては、プロセッサ３２０はそれらの値をメインメモリ３１０から読み出してもよい。幾何学的画像を得ることに加えて、プロセッサ３２０はまた、テクスチャ座標マップ及び色座標マップのうちの一方又は両方を作成してもよい。幾何学的画像を作成する（例えば、エッジ経路に沿ってメッシュを切断し、結果として得られたチャートを正方形にパラメータ化する）ための詳細な手順は、例えば、Xianfeng Gu他著「幾何学的画像（Geometry Images）」（SIGGRAPH 2002 Proceedings, pp. 355-361）に見出すことができる。このようなテクスチャマップ、幾何学的画像、及び／又はカラーマップは、指定の幅及び高さを有するアレイとして実装されてもよい。
【００２５】
テクスチャマップ、カラーマップ、及び／又は法線マップは、図２の頂点マップと同様に作成され得る。テクスチャの場合、ｔｕ及びｔｖがそれぞれ赤チャネル及び緑チャネルに記憶され得る。同様に、色の場合、ｒ値、ｇ値、及びｂ値がテクスチャマップのｒ値、ｇ値、及びｂ値に記憶され得る。テクスチャは通常、単なる色のアレイであるため、カラーマップ及びテクスチャマップの両方がｒ、ｇ、及びｂを用いる。最後に、法線のｘ値、ｙ値、及びｚ値がテクスチャマップのｒチャネル、ｇチャネル、及びｂチャネルに記憶され得る。このようなマッピングは、２Ｄ構造、例えば画像に限定される必要はないことに留意すべきである。むしろ、本明細書中で説明する技法は、ｒ、ｇ、ｂ、及び（必要であれば）アルファにマッピングされる任意数のチャネルを消費することによりテクスチャ、法線、及び色をサポートし得る。４チャネルより多くの頂点に関連する情報又はデータが望まれる場合、その情報に追加のテクスチャマップを使用してもよい。したがって、図２に関して説明した技法を、多少任意の及び／又は複雑な頂点データとともに用いることができる。
【００２６】
また、動作４１０において、プロセッサ３２０は、１回又は複数回細分割されたテクスチャ、幾何学的画像及び色用のプレースホルダアレイを作成してもよい。このようなプレースホルダアレイは、細分割されたテクスチャ、幾何学的画像等のためにグラフィックスメモリ３４０の空間を確保するために、データバス３３０を介して、最小帯域幅を用いて省略形で送られてもよい。実施態様によっては、プレースホルダアレイは頂点シェーダ３５０により、プロセッサ３２０からのコマンドに応答してローカルで生成されてもよい。いずれにせよ、プレースホルダアレイは、ゼロに初期化され、グラフィックスメモリ３４０に記憶され得る。
【００２７】
処理は、プロセッサ３２０がテクスチャ、幾何学的画像、及び任意の他の値（例えば、色座標及び／又は法線ベクトル）を、データバス３３０を介してグラフィックスメモリ３４０に送ることで続行し得る［動作４２０］。実施態様によっては、プロセッサ３２０は、グラフィックスメモリ３４０へのテクスチャ及び幾何学的画像の輸送を扱うことができるグラフィックスアプリケーションプログラミングインタフェース（ＡＰＩ）にテクスチャ、幾何学的画像、及び任意の他の値を提示してもよい。実施態様によっては、テクスチャ、幾何学的画像等はデータバス３３０を介して送信される前に（例えばＪＰＥＧ２０００等の可逆方式により）圧縮されてもよい。
【００２８】
頂点シェーダ３５０は、記憶されているテクスチャ、幾何学的画像、及び任意の他の値（集合的に「頂点データ」）をグラフィックスメモリ３４０から読み出して、これらの頂点データを細分割してもよい［動作４３０］。上記のように、２次元画像（例えば幾何学的画像）の細分割は、画像の解像度をおよそ４倍に高め得る。実施態様によっては、頂点シェーダ３５０は、Ed Catmull及びJim Clark著「任意位相メッシュ上の反復的に生成されたＢスプラインサーフェス（Recursively Generated B-Spline Surfaces on Arbitrary Topological Meshes）」（Computer Aided Geometric Design, Vol. 10, No. 6, 1978）に概要が示されているＣａｔｍｕｌｌ−Ｃｌａｒｋ技法を用いた細分割を実施し得る。
【００２９】
しかし、頂点シェーダ３５０により他の細分割技法が使用されてもよい。実施態様によっては、頂点シェーダ３５０は、Stephen Junkins著「現実の細分割：リアルタイムでスケーラブルなフォトリアリズムのための細分割サーフェスの使用（Subdividing Reality: Employing Subdivision Surfaces for Real Time Scalable Photorealism）」（Game Developers Conference proceedings, 2000）に概要が示されているバタフライ技法を用いて頂点データを細分割してもよい。実施態様によっては、頂点シェーダ３５０は、C. T. Loop著「三角形に基づく平滑な細分割サーフェス（Smooth Subdivision Surfaces Based on Triangles）」（M.S. Thesis, Department of Mathematics, University of Utah, August, 1987）に概要が示されているＬｏｏｐ技法を用いて頂点データを細分割してもよい。実施態様によっては、頂点シェーダ３５０は、D. Doo及びM. Sabin著「異常点付近の反復的分割サーフェスの挙動（Behavior of Recursive Division Surfaces Near Extraordinary Points）」（Computer Aided Design, Vol. 10, No. 6, 1978）に概要が示されているＤｏｏ−Ｓａｂｉｎ技法を用いて頂点データを細分割してもよい。
【００３０】
頂点シェーダ３５０は、細分割された出力頂点データをグラフィックスメモリ３４０に書き込んでもよい［動作４４０］。実施態様によっては、頂点シェーダ３５０は、グラフィックスメモリ３４０内の１つ又は複数のプレースホルダアレイを出力頂点データにより上書きする。実施態様によっては、頂点シェーダ３５０は必要に応じて、グラフィックスメモリ３４０内に、出力頂点データのための新たな構造を作成してもよい。
【００３１】
所望の細分割のレベル数に応じて、頂点シェーダ３５０は、図４に破線の矢印で示すように、動作４３０及び４４０を１回又は複数回繰り返してもよい。例えば、（例えばより高い解像度を生成するために）２回以上の細分割動作が望まれる場合、頂点シェーダ３５０は、前の動作４４０においてグラフィックスメモリ３４０に記憶された、１回細分割された（又は動作４３０を繰り返すのが２回目である場合には２回細分割された）出力頂点データを読み出してさらに細分割してもよい。細分割は、直前の解像度での頂点データ（例えば前の細分割の出力）に依存し得るため、実施態様によっては、頂点シェーダ３５０は、より高い解像度の頂点データを上書き及び／又は削除して、グラフィックスメモリ３４０の空間を空けてもよい。例えば、第２（又はより高い）レベルの細分割を行う際、プロセッサ３２０から送られてきた元の頂点データを上書き及び／又は削除してもよい。
【００３２】
細分割の際には、グラフィックスメモリ３４０の空間及び／又はシステム３００の他の資源を節約するために他の技法も使用され得る。例えば、グラフィックスメモリ３４０の空間は、テクスチャ、法線及び／又は色座標を、例えば関連する幾何学的画像ほど完全には細分割しないことによって節約されてもよい。そのような場合、ピクセルシェーダ３６０は単に、低いレベルの細分割（例えば２回以上細分割された解像度に対して１回だけ細分割されたデータ）を参照し、ルックアップする毎に４で割ってもよい。一例として、２５６×２５６の法線マップを対応する２５６×２５６の幾何学的画像とともに生成及び／又は記憶することが望ましくない場合、代わりに、６４×６４レベルの解像度からの法線マップがピクセルシェーダ３６０により使用されてもよい。位置アレイのインデックス（３２，３２）におけるエントリの場合、６４×６４の法線マップにおける位置（８，８）がピクセルシェーダ３６０により処理中に参照されてもよい。したがって、ピクセルシェーダ３６０は、頂点シェーダ３５０により高解像度に細分割された他の頂点データ（例えば幾何学的画像又は他の構造）をフォーマットする際に、低解像度の１つ又は複数のマップ（例えば法線マップ）を使用してもよい。
【００３３】
実施態様によっては、適切な法線を計算してもよく、次に、最も近い法線を古い法線マップにおいてルックアップしてもよい。結果として得られる法線データは、任意のサイズの法線マップに記憶され得る。所与の解像度について、グラフィックスメモリ３４０内の全てのグラフィックデータを完全に細分割することを避けるために他の技法を用いてもよい。
【００３４】
細分割は、一部のエリア（例えば、幾何学的画像内のエリア）では望ましくない場合がある。これらのエリアでは、既存の幾何学的画像、法線画像、及び／又はテクスチャマップをそのままにしてもよい。細分割が望ましい他のエリアでは、細分割方式を使用してもよい（例えばＣａｔｍｕｌｌ−Ｃｌａｒｋ）。２つの領域（例えば細分割された領域とされていない領域との）間の境界では、一部の頂点情報が重複する場合がある。
【００３５】
グラフィックスメモリ３４０の空間を節約する別の技法は、そこに記憶されるデータ（例えば、元の頂点データ及び／又は細分割された頂点データ）を可逆圧縮方式により圧縮することであり得る。例えば細分割された幾何学的画像の圧縮に好適であり得る１つのこのような方式は、約２．５：１の圧縮比を達成することができるＪＰＥＧ２０００であり得る。データ圧縮は、グラフィックスメモリ３４０に記憶されるデータの量を削減するための他の技法の代わりに、又はそれに加えて用いられてもよい。
【００３６】
処理は、ピクセルシェーダ３６０が、グラフィックスメモリ３４０に記憶されている細分割された頂点データを表示するために準備することで続行し得る［動作４５０］。ピクセルシェーダ３６０は、記憶されている頂点データ（例えば、幾何学的画像、カラーマップ等）を表示するためにラスタ化及び／又は他の方法でフォーマットしてもよい。実施態様によっては、ピクセルシェーダ３６０は、１つ又は複数の低解像度の頂点データセット（例えば元の幾何学的画像）をディスプレイプリミティブとして用いて、細分割された頂点データを準備してもよい。図４には明示的に示していないが、フォーマットされたグラフィック画像は次に、フレームバッファ３７０から表示されてもよい。
【００３７】
頂点シェーダ３５０により頂点データを細分割する上述のシステム及び方式は、実施態様によっては、データバス３３０によって搬送されるデータの所与の帯域幅について表示データの視覚的忠実度／解像度を高め得る。例えば、データバス３３０の帯域幅のほとんど又はほぼ全てを用いる頂点データは、頂点シェーダ３５０によって細分割されて、データバス３３０の帯域幅のために他の方法で可能であり得る表示解像度に対して表示解像度が高められ得る。実施態様によっては、このような細分割方式は、データバス３３０の、細分割を行わなかった場合より狭い帯域幅を用いての所与の視覚的忠実度／解像度の生成を容易にし得る。例えば、表示解像度は、細分割を行わなかった場合と同一のままであり得るが、細分割により、前者の場合において、同一の解像度についてデータバス３３０の実質的により狭い帯域幅を使用することが可能になる。
【００３８】
上述のシステム３００及びプロセス４００の理解をさらに助けるために、例を提示する。この例では、プロセッサ３２０が動作４１０において、３つのｎ×ｎ（ｎは、８、１６、３２等の整数である）アレイＧ０、Ｔ０、及びＣ０を作成するか又はメインメモリ３２０から読み出してもよい。Ｇ０は幾何学的画像であってもよい。Ｔ０はテクスチャ座標マップであってもよく、各位置が対応するテクスチャ座標を含む。Ｃ０は色座標マップであってもよく、各位置が対応する赤、緑、及び青の色値を含む。Ｇ０、Ｔ０、及びＣ０は元の解像度（例えば、８×８、１６×１６等）であり得る。
【００３９】
また動作４１０において、所望の細分割レベル（例えば２レベル）毎に、プロセッサ３２０及び／又は頂点シェーダ３５０が、Ｇ０、Ｔ０、及びＣ０の各々について、それぞれ細分割された解像度でのプレースホルダアレイ／マップを作成してもよい。第１レベルの細分割では、Ｇ１、Ｔ１、及びＣ１が４＊ｎ×４＊ｎのサイズ／解像度で作成されてもよい。これは、細分割がアレイ／画像のサイズ／解像度を４倍に上げ得るためである。第２レベルの細分割では、Ｇ２、Ｔ２、及びＣ２が４＊４＊ｎ×４＊４＊ｎ（すなわち１６ｎ×１６ｎ）のサイズ／解像度で作成されてもよい。便宜上、Ｇ１、Ｔ１、Ｃ１、Ｇ２、Ｔ２、及びＣ２はゼロに初期化され得る。
【００４０】
動作４２０において、プロセッサ３２０は、構造Ｇ０、Ｔ０、Ｃ０、Ｇ１、Ｔ１、Ｃ１、Ｇ２、Ｔ２、及びＣ２を、データバス３３０を介してグラフィックスメモリ３４０に送ってもよい。実施態様によっては、このような動作は、グラフィックスＡＰＩを用いて行われてもよい。この動作は、後に頂点シェーダ３５０により埋められるグラフィックスメモリ３４０の空間を初期化し得る。
【００４１】
頂点シェーダ３５０は次に動作４３０において、Ｇ０、Ｔ０、及びＣ０を細分割して、第１の細分割された頂点データＧ１、Ｔ１、及びＣ１を生成してもよい。例えば、使用される特定の細分割方式がＣａｔｍｕｌｌ−Ｃｌａｒｋ細分割方式である場合、顔を規定する古い点を平均することによって、顔の新たな顔点が計算され得る。１つのエッジを共有する顔の２つの新たな顔点の平均を有する古いエッジの中点を平均することによって、新たなエッジ点が計算され得る。新たな頂点が、Ｑ／ｎ＋（２＊Ｒ）／ｎ＋（Ｓ＊（ｎ−３））／ｎ（ここで、Ｑは、古い頂点に隣接する全ての顔の新たな顔点の平均に等しく、Ｒは、古い頂点に入射する全ての古いエッジの中点の平均に等しく、Ｓは古い頂点である）を平均することによって計算され得る。実施態様によっては、Ｃａｔｍｕｌｌ−Ｃｌａｒｋ以外の他の細分割方式を用いてもよい。
【００４２】
Ｇ１、Ｔ１、及びＣ１における各点セットを作成する際、頂点シェーダ３５０は動作４４０において、それらの値を、グラフィックスメモリ３４０の対応するプレースホルダ構造に記憶してもよい。１回目の細分割が十分に終わると、頂点シェーダ３５０は動作４３０において、Ｇ１、Ｔ１、及びＣ１をさらに細分割して、第２の細分割された頂点データＧ２、Ｔ２、及びＣ２を生成してもよい。頂点シェーダ３５０は動作４４０において、さらに細分割された値を、グラフィックスメモリ３４０の対応するプレースホルダ構造Ｇ２、Ｔ２、及びＣ２に記憶してもよい。上で説明したように、実施態様によっては、Ｇ１、Ｔ１、又はＣ１は第２レベルの細分割を受けなくてもよい。ピクセルシェーダ３６０は、最後に細分割された頂点データ（例えば、全てが２回細分割された場合、Ｇ２、Ｔ２、及びＣ２）をグラフィックスメモリ３４０から読み出して、フレームバッファ３７０により表示するために準備してもよい。Ｇ０、Ｔ０、及びＣ０の全てが２回細分割される訳ではない実施態様では、ピクセルシェーダ３６０がＧ２及び１つ又は複数の細分割の回数が少ない構造（Ｔ１及び／又はＣ１等）を表示するために準備してもよい。
【００４３】
上記の説明例は具体的な実施態様を含むが、本発明はこれに必ずしも限定されない。例えば、最初の頂点データは、Ｇ０、Ｔ０、及びＣ０とは異なるグラフィックデータ、例えば法線データを含んでもよい。頂点シェーダ３５０により行われる細分割の回数は、２回より多くても少なくてもよい。同様に、実施態様によっては、Ｃａｔｍｕｌｌ−Ｃｌａｒｋとは異なる再分割方式を用いてもよい。
【００４４】
１つ又は複数の実施態様の上記の説明は、例示及び説明を提供するが、包括的であること、又は発明の範囲を開示された厳密な形態に限定することは意図されない。修正及び変形が、上記教示に鑑みて可能であるか、又は本発明の様々な実施態様の実施から獲得され得る。
【００４５】
例えば、本明細書中の細分割方式は頂点シェーダ３５０に関して説明されているが、実施態様によっては、他のグラフィックスハードウェアを用いて細分割を行ってもよい。このような他のハードウェア（例えば他のタイプのシェーダ等）は、グラフィックスメモリ３４０から頂点データを読み出し、且つ細分割された頂点データをグラフィックスメモリ３４０に書き込む能力を持っていれば好適であり得る。
【００４６】
さらに、本明細書中で説明される細分割方式は、実施態様によっては頂点シェーダ３５０により必要に応じて（例えば、ほぼリアルタイムで）行われてもよく、実施態様によっては頂点シェーダ３５０により事前に計算されてもよい。また、実施態様によっては、頂点シェーダ３５０は、細分割された頂点データを、まずグラフィックスメモリ３４０に書き込むのではなく、ピクセルシェーダ３６０に直接送ってもよい。
【００４７】
さらに、図４の動作は、図示の順番で実施する必要はなく、必ずしも全ての動作を行う必要もない。また、他の動作に依存しない動作は、他の動作と並行して行われてもよい。さらに、この図中の動作の少なくとも一部は、機械読み取り可能な媒体に実装される命令、又は命令群として実施されてもよい。
【００４８】
本願の説明で用いられる要素、動作、又は命令はいずれも、本発明に重要又は不可欠なものとして明示的に記載されない限り、そのように解釈されるべきではない。また、本明細書中で使用される場合、冠詞「ａ」は１つ又は複数のアイテムを含むことが意図される。本発明の精神及び原理から大幅に逸脱することなく、本発明の上述した実施態様（複数可）に対して変形及び修正が行われ得る。このような修正及び変形はすべて、本明細書のこの開示の範囲に含まれ、添付の特許請求の範囲により保護されることが意図される。
【図面の簡単な説明】
【００４９】
【図１】通常のグラフィックス処理を示すフロー図である。
【図２】幾何学的画像の形成を示す図である。
【図３】例示的なシステムを示す図である。
【図４】グラフィックスデータを細分割するプロセスを示すフロー図である。
【図１】
2008511074.tif 000003
【図２】
2008511074.tif 000004
【図３】
2008511074.tif 000005
【図４】
2008511074.tif 000006
【国際調査報告】
2008511074.tif 000007
2008511074.tif 000008
2008511074.tif 000009