(57)【要約】【課題】幾何プリミティブの描画には、頂点データ等の大量のデータ処理が伴う。【解決手段】ピクセルシェーダは、インデックスバッファ内で第１のテクスチャルックアップを実行し、表示される幾何プリミティブの頂点インデックス値を取得するように動作する。ピクセルシェーダはまた、頂点バッファ内で第２のテクスチャルックアップを実行し、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得するように動作する。第１および第２のテクスチャルックアップは、表示される幾何プリミティブを規定するために必要な各頂点についての頂点データを取得するように、ピクセルシェーダによって繰り返し実行される。そして、ピクセルシェーダは、既に取得された頂点データを使用して、表示される幾何プリミティブのラスタ化を実行するよう動作する。【選択図】図３
2006221650.tif 000002
【特許請求の範囲】
【請求項１】
ピクセルシェーダを動作させて、表示される幾何プリミティブのインデックスを外す方法であって、
（ａ）インデックスバッファ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値を取得し、
（ｂ）頂点バッファ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得し、
（ｃ）表示される幾何プリミティブを規定するために必要な各頂点について（ａ）と（ｂ）の操作を繰り返し、
（ｄ）ピクセルシェーダ内から生成された既に取得した頂点データを使用して、表示される幾何プリミティブのラスタ化を実行することを特徴とするインデックス外し方法。
【請求項２】
表示されるシーン内の幾何プリミティブのそれぞれについて、前記（ａ）ないし（ｄ）の操作を繰り返すことを特徴とする請求項１に記載のインデックス外し方法。
【請求項３】
前記幾何プリミティブは、三つの頂点を有する三角形として表現されることを特徴とする請求項１に記載のインデックス外し方法。
【請求項４】
第２のテクスチャルックアップを実行する前に、前記頂点バッファ内に含まれる頂点データがスクリーン空間内で処理されていることを特徴とする請求項１に記載のインデックス外し方法。
【請求項５】
第２のテクスチャルックアップの実行によって取得された頂点データを、フレームバッファのスクラッチ部分に格納することをさらに含み、
フレームバッファのスクラッチ部分のデータは明示的に表示されないことを特徴とする請求項１に記載のインデックス外し方法。
【請求項６】
前記操作（ａ）ないし（ｄ）を実行する前に、前記インデックスバッファと前記頂点バッファとを前記ピクセルシェーダ内のメモリに送信することをさらに含むことを特徴とする請求項１に記載のインデックス外し方法。
【請求項７】
表示される幾何プリミティブのインデックスを外す方法であって、
ラスタライザを動作させて、表示される幾何プリミティブを規定するのに十分な複数の頂点インデックス値をインデックスバッファから読み出し、
ラスタライザを動作させて、前記インデックスバッファから読み出された複数の頂点インデックス値のそれぞれに対応する頂点データを頂点バッファから読み出し、複数の頂点インデックス値はそれぞれ前記頂点バッファ内の特定のエントリを参照しており、
ラスタライザを動作させて、表示される幾何プリミティブを前記頂点データにしたがってラスタ化することを特徴とするインデックス外し方法。
【請求項８】
前記幾何プリミティブは、三つの頂点を有する三角形として表現されることを特徴とする請求項７に記載のインデックス外し方法。
【請求項９】
ラスタライザを動作させて前記頂点バッファから頂点データを読み出す前に、前記頂点バッファ内に含まれる頂点データがスクリーン空間内で処理されていることを特徴とする請求項７に記載のインデックス外し方法。
【請求項１０】
ラスタライザを動作させて前記頂点バッファから頂点データを読み出すことによって取得された頂点データを、フレームバッファのスクラッチ部分に格納することをさらに含み、
フレームバッファのスクラッチ部分のデータは明示的に表示されないことを特徴とする請求項７に記載のインデックス外し方法。
【請求項１１】
ラスタライザを動作させてインデックスバッファと頂点バッファからの読み出しをする前に、前記インデックスバッファと前記頂点バッファとを前記ラスタライザ内のメモリに送信することをさらに含む請求項７に記載のインデックス外し方法。
【請求項１２】
表示される幾何プリミティブをラスタ化する装置であって、
ラスタライザ内に定義され、表示される幾何プリミティブの頂点インデックス値をインデックスバッファから取得する第１テクスチャルックアップ回路と、
ラスタライザ内に定義され、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを頂点バッファから取得する第２テクスチャルックアップ回路と、を備え、
第１および第２のテクスチャルックアップ回路は、表示される幾何プリミティブの頂点データの完全なセットを取得するよう動作するべく定義されており、
ラスタライザ内に定義され、頂点データの完全なセットに基づいて、表示される幾何プリミティブのピクセルデータを生成するラスタ化回路をさらに備えることを特徴とするラスタ化装置。
【請求項１３】
ラスタライザ内に定義され、前記インデックスバッファと前記頂点バッファとを格納するメモリをさらに備えることを特徴とする請求項１２に記載のラスタ化装置。
【請求項１４】
前記幾何プリミティブは、三つの頂点を有する三角形として表現されることを特徴とする請求項１２に記載のラスタ化装置。
【請求項１５】
第２のテクスチャルックアップ回路によって取得されるより前に、前記頂点バッファ内に含まれる頂点データがスクリーン空間内で処理されることを特徴とする請求項１２に記載のラスタ化装置。
【請求項１６】
ピクセルシェーダを動作させて、表示される幾何プリミティブのインデックスを外すためのプログラム命令が格納されたコンピュータ可読媒体であって、
インデックスバッファ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値を取得するプログラム命令と、
頂点バッファ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得するプログラム命令と、
表示される幾何プリミティブを規定するために必要な各頂点について、第１および第２のテクスチャルックアップを繰り返すプログラム命令と、
ピクセルシェーダ内から生成された既に取得した頂点データを使用して、表示される幾何プリミティブのラスタ化を実行するプログラム命令と、
を含むことを特徴とするコンピュータ可読媒体。
【請求項１７】
前記幾何プリミティブは、三つの頂点を有する三角形として表現されることとを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
第２のテクスチャルックアップを実行するためのプログラム命令は、スクリーン空間内で既に処理された頂点バッファ内に含まれる頂点データに基づいて規定されることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
第１および第２のテクスチャルックアップを実行する前に、前記インデックスバッファと前記頂点バッファとを前記ピクセルシェーダ内のメモリに送信するプログラム命令をさらに含むことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
表示される幾何プリミティブをラスタ化する装置であって、
ラスタライザ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値をインデックスバッファから取得する手段と、
ラスタライザ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを頂点バッファから取得する手段と、を備え、
第１および第２のテクスチャルックアップを実行する手段は、表示される幾何プリミティブの頂点データの完全なセットを取得するように定義されており、
頂点データの完全なセットに基づいて、表示される幾何プリミティブのピクセルデータを生成する手段をさらに備えることを特徴とするラスタ化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータグラフィックスのデータ処理に関する。
【背景技術】
【０００２】
今日のコンピュータグラフィックスは、シーンをキャプチャ／定義したり、電子表示装置上にシーンを描画したりするための様々な技術を利用している。そのような技術の一つは、多くの幾何プリミティブでシーンを規定することを伴う。幾何プリミティブは、特定の多角形形状を表す。例えば、幾何プリミティブは、三辺（三角形）、四辺（四角形）、五辺（五角形）、六辺（六角形）、その他であってよい。シーンの規定に使用される各幾何プリミティブは、その頂点によって特徴づけられる。シーンの個別の部分を表現するために、境界線が規定された領域内において特定の視覚効果を表示するように各幾何プリミティブを処理してもよい。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
シーンを規定する多数の幾何プリミティブは、それぞれ、対応するピクセルデータのセットに変換されて、電子表示装置上にシーン画像を描画する際に使用することができる。コンピュータグラフィックのシーンが多数の幾何プリミティブによって規定されることは、一般的である。したがって、あるシーンの幾何プリミティブを規定し描画することは、例えば頂点データ等の大量のデータを処理することを伴う。それゆえ、幾何プリミティブを使用するシーンの規定および描画にコンピュータグラフィックス技術を適用するとき、コンピュータグラフィックス技術の改善が引き続き必要とされている。
【課題を解決するための手段】
【０００４】
一実施形態では、ピクセルシェーダを動作させて、表示される幾何プリミティブのインデックスを外す方法が開示される。この方法は、インデックスバッファ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値を取得する操作を含む。この方法は、頂点バッファ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得する操作を含む。この方法は、表示される幾何プリミティブを規定するために必要な各頂点について、頂点データを取得する第１および第２のテクスチャルックアップを実行する操作を繰り返すことを含む。この方法はさらに、ピクセルシェーダ内から生成された既に取得した頂点データを使用して、表示される幾何プリミティブのラスタ化を実行する操作をさらに含む。
【０００５】
別の実施形態では、表示される幾何プリミティブのインデックスを外す方法が開示される。この方法は、ラスタライザを動作させて複数の頂点インデックス値をインデックスバッファから読み出す操作を含む。インデックスバッファから読み出される複数の頂点インデックス値は、表示される幾何プリミティブを規定するのに十分である。この方法は、ラスタライザを動作させて、頂点データを頂点バッファから読み出す操作を含む。頂点バッファから読み出される頂点データは、インデックスバッファから読み出された複数の頂点インデックス値のそれぞれに対応する。複数の頂点インデックス値はそれぞれ、頂点バッファ内の特定のエントリを参照する。この方法はさらに、ラスタライザを動作させて、表示される幾何プリミティブを頂点データにしたがってラスタ化する操作を含む。
【０００６】
別の実施形態では、表示される幾何プリミティブをラスタ化する装置が開示される。この装置は、ラスタライザ内に定義され、表示される幾何プリミティブの頂点インデックス値を取得する第１テクスチャルックアップ回路を含む。頂点インデックス値は、インデックスバッファから取得されることになる。この装置は、ラスタライザ内に定義され、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを第２テクスチャルックアップ回路を含む。頂点データは、頂点バッファから取得されることになる。第１および第２のテクスチャルックアップ回路は、表示される幾何プリミティブの頂点データの完全なセットを取得するよう動作するべく定義されている。この装置はさらに、ラスタライザ内に定義され、頂点データの完全なセットに基づいて、表示される幾何プリミティブのピクセルデータを生成するラスタ化回路を含む。
【０００７】
別の実施形態では、コンピュータ可読媒体が開示される。このコンピュータ可読媒体には、ピクセルシェーダを動作させて、表示される幾何プリミティブのインデックスを外すためのプログラム命令が格納されている。このコンピュータ可読媒体は、インデックスバッファ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値を取得するプログラム命令を含む。このコンピュータ可読媒体は、頂点バッファ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得するプログラム命令を含む。このコンピュータ可読媒体は、表示される幾何プリミティブを規定するために必要な各頂点について、第１および第２のテクスチャルックアップを繰り返すプログラム命令を含む。このコンピュータ可読媒体はさらに、ピクセルシェーダ内から生成された既に取得した頂点データを使用して、表示される幾何プリミティブのラスタ化を実行するプログラム命令を含む。
【０００８】
別の実施形態では、表示される幾何プリミティブをラスタ化する装置が開示される。この装置は、ラスタライザ内で第１のテクスチャルックアップを実行して、表示される幾何プリミティブの頂点インデックス値を取得する手段を含む。頂点インデックス値は、インデックスバッファから取得されることになる。この装置は、ラスタライザ内で第２のテクスチャルックアップを実行して、表示される幾何プリミティブについて既に取得された頂点インデックス値に対応する頂点データを取得する手段を含む。頂点データは、頂点バッファから取得されることになる。第１および第２のテクスチャルックアップを実行する手段は、表示される幾何プリミティブの頂点データの完全なセットを取得するように定義される。この装置はさらに、頂点データの完全なセットに基づいて、表示される幾何プリミティブのピクセルデータを生成する手段を含む。
【０００９】
本発明の別の態様は、本発明の実施例として示される添付の図面と併せて、以下の詳細な説明からより明白になるであろう。
【００１０】
本発明および本発明のさらなる利点は、添付の図面と併せて以下の説明を参照することによって、最も良く理解することができる。
【発明を実施するための最良の形態】
【００１１】
本発明がプロセス、装置、システム、デバイスまたは方法を含む多数の形式で実現されうることは認められよう。以下、添付の図面を参照して本発明の典型的な実施形態のいくつかについて詳細に説明する。
【００１２】
以下の説明では、本発明を完全に理解するために多数の具体的な詳細が記述される。しかしながら、本発明がこれらの具体的な詳細のいくつかまたは全てを用いずに実施されてもよいことは、当業者にとって明らかである。他の例において、周知のプロセス動作は、不必要に本発明を不明瞭にすることを避けるために詳述しなかった。
【００１３】
コンピュータグラフィックスにおける頂点インデックス付け（indexing：索引付けともいう）は、グラフィックスパイプラインを通して格納され送信される必要があるグラフィックスデータの量を減らすために実行される。一例として、頂点インデックス付けは即座に記述されてもよい。図１Ａは、コンピュータディスプレイ上にグラフィックスイメージとして描画されるシーン内の二つの三角形（Ｔ０およびＴ１）を示す図である。三角形Ｔ０およびＴ１の各々は、三つの頂点によって規定される。三角形Ｔ０は、座標ｘ＝３、ｙ＝４の頂点Ａ、座標ｘ＝４、ｙ＝１の頂点Ｂ、座標ｘ＝１、ｙ＝２の頂点Ｃによって規定される。三角形Ｔ１は、座標ｘ＝１、ｙ＝２の頂点Ｃ、座標ｘ＝４、ｙ＝１の頂点Ｂ、座標ｘ＝０、ｙ＝０の頂点Ｄによって規定される。三角形Ｔ０とＴ１が頂点Ｃ、Ｂを共有していることに注意されたい。
【００１４】
頂点インデックス付けを使用しない場合、各三角形Ｔ０、Ｔ１は、それぞれ三つの頂点によって規定される必要がある。図１Ｂは、各三角形Ｔ０、Ｔ１を記述するために必要な頂点データを含む、三角形についてインデックス付けされていないバッファを示す。図１Ｂに示すように、三角形Ｔ０は、頂点Ａ、Ｂ、Ｃの座標によって規定される。また、三角形Ｔ１は、頂点Ｃ、Ｂ、Ｄの座標によって規定される。図１Ｂの最左列に示す数は、三角形についてのインデックス付けされていないバッファのインデックス値を表している。頂点インデックス付けを用いない場合、三角形Ｔ０とＴ１を規定するために六つの頂点座標エントリが必要であることが理解されよう。
【００１５】
図１Ｃは、頂点インデックス付けプロセスを実行するために使用される頂点バッファ（ＶＢ：Vertex Buffer）を示す。図１Ｃの頂点バッファ（ＶＢ）は、図１Ａの三角形Ｔ０、Ｔ１を規定するために必要な頂点のデータを含む。座標によって規定される固有の頂点は、それぞれ頂点バッファ（ＶＢ）に一度格納される。したがって、三角形Ｔ０、Ｔ１を規定する必要に応じて、頂点バッファ（ＶＢ）は、頂点Ａ、Ｂ、Ｃ、Ｄのそれぞれに対して一つのエントリを有する。図１Ｃの最左列に示す数は、頂点バッファ（ＶＢ）に格納された固有の頂点に対するインデックス値を表す。頂点バッファ（ＶＢ）を一次元の配列とみなすことができることが理解されよう。この一次元配列は、一次元、すなわち単一のインデックスによって検索され（navigate）、固有の頂点についての座標情報を格納したり座標情報にアクセスしたりすることができる。頂点バッファ（ＶＢ）は、図１Ｂのインデックス付けされていないバッファに含まれるような六つの頂点ではなく、四つの頂点についてそれぞれのデータを含んでいることが認められよう。このように、頂点バッファ（ＶＢ）を使用すると、頂点座標データを二重に記憶することが避けられる。さらに、頂点バッファ（ＶＢ）を使用すると、重複のない頂点データで操作（例えば変換、送信、その他）を実行することができる。
【００１６】
しかしながら、三角形Ｔ０とＴ１のそれぞれを完全に記述する頂点バッファ（ＶＢ）の使用を可能にするためには、各三角形に適切な頂点を関連付けるための仕組みを設ける必要がある。図１Ｄは、頂点バッファに含まれる適切な頂点と、三角形Ｔ０、Ｔ１のそれぞれとを関連付けるために定義されるインデックスバッファ（ＩＢ：Index Buffer）を示す。本実施例のインデックスバッファ（ＩＢ）は、二次元配列として定義される。第１の次元は、様々な三角形、例えばＴ０とＴ１を検索する（navigate）ために用いられ、第２の次元は、特定の三角形を規定するのに必要な三つの頂点を検索するために用いられる。第１の次元は、図１Ｄの最左列の数字によって表され、各三角形、例えばＴ０、Ｔ１、その他に対するインデックスとして表記される。第２の次元は、図１Ｄの最上行の数字によって表され、各三角形、すなわち０、１、２の各々の三つの頂点に対するインデックスとして表記される。第１次元および第２次元のインデックス値は、メモリ内のインデックスバッファ（ＩＢ）を定義するために用いられる検索可能なパラメータであることを認められよう。
【００１７】
インデックスバッファ（ＩＢ）には、頂点バッファ（ＶＢ）に格納された各三角形の頂点インデックス値に対応するデータが書き込まれる。インデックスバッファ（ＩＢ）内の特定のデータ項目を、ＩＢ［三角形番号、頂点番号］によって参照可能であることを考慮する。ここで、三角形番号はグラフィックスシーンにおける三角形の番号を参照し、頂点番号は、三角形番号に対応する三角形を規定するために必要な三つの頂点のそれぞれを参照する。したがって、ＩＢ［０，０．．２］は、頂点インデックス値０、１、２を含む。ここで、頂点インデックス値０はＶＢにおける頂点Ａを参照し、頂点インデックス値１はＶＢにおける頂点Ｂを参照し、頂点インデックス値２はＶＢにおける頂点Ｃを参照する。また、ＩＢ［１，０．．２］は、頂点インデックス値２、１、３を含み、それぞれＶＢにおける頂点Ｃ、Ｂ、Ｄを参照する。
【００１８】
図１Ｂに関して述べた三角形表現に代わるものとして、三角形ストリップを使用してシーン内の三角形を表現することもできる。三角形ストリップでは、三角形は、一度に一つの頂点をステップする三つの頂点のグループからなる頂点の配列／バッファから暗黙的に定義される。図１Ｅは、図１Ａの各三角形Ｔ０、Ｔ１を記述するために必要な頂点データを含む、インデックス付けされていない三角形ストリップバッファを示す。図１Ｅに示すように、三角形Ｔ０は頂点Ａ、Ｂ、Ｃの座標によって規定される。また、三角形Ｔ１は頂点Ｂ、Ｃ、Ｄの座標によって規定される。
【００１９】
三角形ストリップについてもインデックス付けすることができる。例えば、図１Ｆは、図１Ｃの頂点バッファ（ＶＢ）に含まれる適切な頂点と、各三角形Ｔ０、Ｔ１とを関連付けるために定義された三角形ストリップインデックスバッファ（ＴＳＩＢ：Triangle Strip Index Buffer）を示す。本実施例の三角形ストリップインデックスバッファ（ＴＳＩＢ）は、三角形ストリップと同様の方法で定義される。しかしながら、三角形ストリップインデックスバッファ（ＴＳＩＢ）は、頂点バッファ（ＶＢ）に格納された各三角形の頂点インデックス値に対応するデータを含む。したがって、図１Ｆに関して、三角形Ｔ０は、頂点インデックス値０、１、２によって規定される。三角形Ｔ１は、頂点インデックス値１、２、３によって規定される。後述する本発明は、図１Ａないし図１Ｄに関して上述したようなインデックス付けされた三角形と、図１Ａ、図１Ｃ、図１Ｅ、図１Ｆに関して上述したようなインデックス付けされた三角形ストリップの両方のラスタ化（ラスタライズ）に等しく適用可能であることを認められよう。
【００２０】
図１Ａないし図１Ｆに示したように、多数の頂点が共有されている三角形で規定されたシーンにおいては特に、頂点インデックス付けは、格納および処理されるべき頂点データの量を削減するために有用であり得る。さらに、頂点インデックス付けは、頂点によって規定される本質的に任意の幾何なプリミティブについて実施可能であることを認められよう。例えば、上述した頂点インデックス付けは、三角形以外にも四辺、五辺、六辺その他の多角形の幾何プリミティブに対して適用可能である。議論を容易にするために、本発明の残りの部分では三角形を取り上げて説明する。しかしながら、本発明の原理は、頂点によって規定される任意の幾何プリミティブに対して等しく適用可能であることを理解されよう。
【００２１】
シーンの三角形を描画するピクセル処理を実行する前に、シーンの各三角形がその三つの頂点のそれぞれによって独立してかつ明示的に規定されるように、インデックスを外す（de-indexing）プロセスを実行する必要がある。図２は、シーンを表示するための頂点−ピクセルパイプライン２００を示す。ここでは、シーンを規定する三角形に関連するデータを処理するために、頂点インデックス付けが使用される。頂点−ピクセルパイプライン２００は、図１Ａないし図１Ｆに関して上述したような頂点インデックス付けプロセスが、シーンを規定する各三角形について実行されたものと仮定する。したがって、適切な頂点バッファ（ＶＢ）と対応するインデックスバッファ（ＩＢ／ＴＳＩＢ）とが、表示されるべきシーンについて存在している。議論を容易にするために、本発明の残りの部分では、図１Ａないし図１Ｄについて述べたような三角形のインデックス付けの文脈にしたがって説明をする。しかしながら、本発明の原理は、三角形ストリップのインデックス付けの文脈においても等しく適用可能であることを認められよう。
【００２２】
頂点−ピクセルパイプライン２００は、頂点処理モジュール２０１を含む。頂点処理モジュールは、頂点バッファ（ＶＢ）と処理マトリックス（Ｍ）とを入力として受け取る。ここで、「入力として受け取る」という文言は、頂点処理モジュール２０１内のメモリへの入力ストリームとして関連するデータを実際に受け取ること、または、頂点処理モジュール２０１が頂点−ピクセルパイプライン２００と通信してメモリからの関連データにアクセスして取り出せるようにすること、のいずれかとして実現可能であることを認められよう。頂点処理モジュール２０１は、頂点バッファ（ＶＢ）内の頂点データを変換して、スクリーン上、すなわちスクリーン空間に描画するのに適当な頂点データにするよう機能する。頂点処理モジュール２０１は、専用ハードウェア、ソフトウェアまたは専用のハードウェアとソフトウェアの組合せとして定義されてもよいことを認められよう。
【００２３】
処理マトリックス（Ｍ）は、頂点バッファ（ＶＢ）内の頂点データをスクリーン空間内に変換する手段を表す。様々な実施形態において、処理マトリックス（Ｍ）は、頂点データに対して多くの異なる変換操作を実行することができる。例えば、一実施例では、処理マトリックス（Ｍ）は、頂点バッファ（ＶＢ）内の各頂点を適切なピクセル位置に変換するように定義されることができる。別の実施例では、処理マトリックス（Ｍ）は、シーンを規定する三角形を適切に伸張したり（stretch）またはゆがめる（skew）ように、頂点バッファ（ＶＢ）内の各頂点を修正するように定義されることができる。当業者にとって周知のように、処理マトリックス（Ｍ）は、本質的に任意のグラフィックス処理技術によって頂点バッファ（ＶＢ）内の頂点を変換するように定義可能であることを認められよう。したがって、いくつかの実施形態では、処理マトリックス（Ｍ）は、頂点バッファ（ＶＢ）内の頂点に適用されるべき複雑な関数を表現することもできる。頂点バッファ（ＶＢ）内の頂点が処理マトリックス（Ｍ）によって変換されると、頂点バッファは（ＶＢ’）と表現される。頂点バッファ（ＶＢ’）は、（ＶＢ）に以前含まれたように、適切に変換されたものの、固有の頂点のそれぞれを含む。したがって、インデックスバッファ（ＩＢ）は、頂点バッファ（ＶＢ’）に対しても等しく適用することができる。
【００２４】
頂点−ピクセルパイプライン２００は、インデックスを外すプロセスを実行して、シーン内に描画される各三角形の頂点データの完全なセットを生成する、インデックス外しモジュール２０３をさらに含む。インデックス外しモジュール２０３は、頂点バッファ（ＶＢ’）とインデックスバッファ（ＩＢ）とを入力として受け取る。ここで、「入力として受け取る」という文言は、インデックス外しモジュール２０３内のメモリへの入力ストリームとして関連するデータを実際に受け取ること、または、インデックス外しモジュール２０３が頂点−ピクセルパイプライン２００と通信してメモリからの関連データにアクセスして取り出せるようにすること、のいずれかとして実現可能であることを認められよう。本実施形態では、インデックス外しモジュール２０３は、頂点−ピクセルパイプライン２００内の専用のハードウェア要素として定義される。
【００２５】
インデックス外しモジュール２０３は、インデックスバッファ（ＩＢ）内に表現される各三角形の各頂点を明示的に規定するように機能する。したがって、インデックス外しモジュール２０３は、インデックスバッファ（ＩＢ）内の各三角形の各頂点について格納された頂点インデックス値を使用して、頂点バッファ（ＶＢ’）から対応する頂点データを取り出す。各三角形の各頂点について引き出された頂点データは、頂点−ピクセルパイプライン２００内でインデックス外しモジュール２０３からラスタ化モジュール２０５に送信される。したがって、シーン内の各三角形（すなわち、Ｔ０からＴＮ−１、但しＮはシーン内の三角形の総数を表す）について、インデックス外しモジュール２０３は、インデックスバッファ（ＩＢ）に格納された頂点インデックス値にしたがって、対応する頂点データを頂点バッファ（ＶＢ’）からラスタ化モジュール２０５に送信するように機能する。
【００２６】
ラスタ化モジュール２０５は、インデックス外しモジュール２０３から受け取った頂点データにより規定される各三角形を描画するためのピクセル値を規定するように機能する。各三角形の描画には、頂点のピクセルを描画するだけでなく、三角形の境界内部のピクセルも描画することも含まれることは認められよう。したがって、ラスタ化モジュール２０５により規定される各三角形のピクセル値は、三角形の頂点ピクセル値と、三角形の境界内部のピクセル値の両方を含む。
【００２７】
表示のためにラスタ化モジュール２０５によって規定されるピクセル値は、フレームバッファ２０７に格納される。フレームバッファ２０７は、ディスプレイ、例えばスクリーンの各ピクセルについての適当な数の記憶セルを含む。フレームバッファ２０７に格納されるピクセルデータは、表示モジュール２０９に送信され、そこで適切に処理されて表示される。当業者は、フレームバッファ２０７および表示モジュール２０９の詳細な機能を理解するだろう。
【００２８】
一実施形態では、フレームバッファ２０７は、ラスタ化モジュール２０５と関連付けられた大規模メモリの一部として定義される。大規模メモリは、一つ以上の表示用のフレームバッファ、頂点データ（例えば、ＶＢ、ＶＢ’）、インデックスデータ（例えば、ＩＢ）、テクスチャ、および他のデータを折々保持するために使用することができる。大規模メモリの割り当ては柔軟である。例えば、特定アドレスのメモリは、あるときはフレームバッファの一部であり、別のときはテクスチャの一部であり、さらに別のときは頂点アレイの一部であってもよい。
【００２９】
図３は、本発明の一実施形態にしたがった、強化された頂点−ピクセルパイプライン３００を示す。図２に関して上述したように、強化された頂点−ピクセルパイプライン３００は、頂点処理モジュール２０１、フレームバッファ２０７、および表示モジュール２０９を含む。しかしながら、強化された頂点−ピクセルパイプライン３００は、インデックス外しモジュール２０３を含まない。また、強化された頂点−ピクセルパイプライン３００は、インデックス外しラスタ化モジュール３０１を含む。
【００３０】
上述したように、頂点処理モジュール２０１は、頂点バッファ（ＶＢ）と処理マトリックス（Ｍ）とを入力として受け取る。処理マトリックス（Ｍ）にしたがって、頂点処理モジュール２０１は、頂点バッファ（ＶＢ）内の頂点データをスクリーン上の描画に適した頂点データに変換するように機能する。変換された頂点データは、頂点バッファ（ＶＢ’）に格納されるものとして表現される。頂点バッファ（ＶＢ’）は、インデックス外しラスタ化モジュール３０１が利用できるようにされる。
【００３１】
インデックス外しラスタ化モジュール３０１は、頂点バッファ（ＶＢ’）とインデックスバッファ（ＩＢ）とを入力として受け取る。ここで、「入力として受け取る」という文言は、インデックス外しラスタ化モジュール３０１内のメモリへの入力ストリームとして関連するデータを実際に受け取ること、または、インデックス外しラスタ化モジュール３０１が強化された頂点−ピクセルパイプライン３００と通信してメモリからの関連データにアクセスして取り出せるようにすること、のいずれかとして実現可能であることを認められよう。インデックス外しラスタ化モジュール３０１は、インデックス外し機能３０１ａを含む。インデックス外し機能３０１ａは、インデックスバッファ（ＩＢ）内の各三角形の各頂点について格納された頂点インデックス値を使用して、頂点バッファ（ＶＢ’）から対応する頂点データを取得するように定義される。各三角形の各頂点について頂点バッファ（ＶＢ’）から取得された頂点データは、続いて、インデックス外しラスタ化モジュール３０１により処理されて、各三角形を描画するためのピクセルデータを規定する。インデックス外しラスタ化モジュール３０１によって規定されたピクセルデータは、フレームバッファ２０７に格納される。それから、フレームバッファ２０７に格納されたピクセルデータは、表示モジュール２０９に送信され、そこで適切に処理されて表示される。
【００３２】
一実施形態では、強化された頂点−ピクセルパイプライン３００のインデックス外しラスタ化モジュール３０１は、頂点−ピクセルパイプライン２００のラスタ化モジュール２０５と同等のハードウェアであるように定義される。しかしながら、本実施形態では、インデックス外しラスタ化モジュール３０１はインデックス外し機能３０１ａを提供するようにプログラムされる一方で、ラスタ化モジュール２０５はそうでない。したがって、強化された頂点−ピクセルパイプライン３００のインデックス外しラスタ化モジュール３０１を使用すれば、インデックス外しモジュール２０３の専用ハードウェアは必要でない。
【００３３】
図４は、本発明の一実施形態によるインデックス外しラスタ化モジュール３０１を示す。上述のように、インデックス外しラスタ化モジュール３０１はインデックス外し機能３０１ａを含む。図４において、インデックス外し機能３０１ａは、第１のテクスチャルックアッププロセス４０１を実行する手段と、第２のテクスチャルックアッププロセス４０３を実行する手段とを含むものとして表されている。当業者は、ラスタ化モジュールの文脈において、テクスチャルックアップ（検索）とは、ラスタ化モジュールがメモリ位置（例えばキャッシュ、ＲＡＭ等）における幾何プリミティブデータにアクセスして読み幾何プリミティブデータを読み出すプロセスのことを指すことを認められよう。第１および第２のテクスチャルックアッププロセス（４０１、４０３）を実行するための手段が、インデックス外しラスタ化モジュール３０１の範囲内で規定される回路を含んでもよいことを認められよう。回路、または回路の一部は、機能専用として設計されてもよいし、必要な機能を実行するようプログラムされたものとして設計されてもよい。
【００３４】
第１のテクスチャルックアッププロセス４０１において、インデックス外しラスタ化モジュール３０１は、インデックスバッファ（ＩＢ）内でのテクスチャルックアップを実行して、三角形の頂点インデックス値を取得するようにプログラムされる。第２のテクスチャルックアッププロセス４０３において、インデックス外しラスタ化モジュール３０１は、第１のテクスチャルックアッププロセス４０１で取得された頂点インデックス値を使用して、頂点バッファ（ＶＢ）から対応する頂点データを取得するようにさらにプログラムされる。第２のテクスチャルックアッププロセス４０３において頂点バッファＶＢ’から取得されたデータは、三角形の各頂点を明示的に規定する。第２のテクスチャルックアッププロセス４０３において頂点バッファＶＢ’から取得されるデータは、三角形を描画するためのピクセルデータを規定するためにラスタ化モジュール４０５により使用される。上述したように、三角形の描画には、頂点ピクセルを描画するだけでなく、三角形の境界内部のピクセルを描画することも含まれる。したがって、ラスタ化モジュール４０５は、三角形の各頂点と三角形の境界内部の領域のピクセルデータを規定する。それから、上述したように、ラスタ化モジュール４０５により規定されたピクセルデータは、インデックス外しラスタ化モジュール３０１からフレームバッファ２０７に送信される。
【００３５】
ラスタ化モジュール４０５は、幾何プリミティブのピクセルデータを生成する手段を表していることを認められよう。幾何プリミティブは、対応する頂点データの完全セットに基づいて表示される。ラスタ化モジュール４０５は、インデックス外しラスタ化モジュール３０１内の回路として定義されてもよい。回路、または回路の一部は、機能専用として設計されてもよいし、必要な機能を実行するようプログラムされたものとして設計されてもよい。
【００３６】
上述したように、インデックス外しラスタ化モジュール３０１を含む強化された頂点−ピクセルパイプライン３００は、本明細書で言及した例示の三角形以外にも、任意の幾何プリミティブに関して使用することができる。さらに、各幾何プリミティブの各頂点を規定するデータは、最小限必要な二次元の空間座標ｘ、ｙ以外にも、任意の数の座標および属性にまで拡張することができる。各頂点を規定するデータは座標に限定されないことを認められよう。例えば、各頂点に割り当てられる色データがあってもよい。各頂点を規定するためにより多数の座標および／または属性が使用される実施形態では、頂点バッファ（ＶＢおよびＶＢ’）は、各固有の頂点についての追加的なデータに対応するように適切に拡張される。また、インデックス外しラスタ化モジュール３０１は、第２のテクスチャルックアッププロセス４０３において、頂点バッファＶＢ’から適切に拡張された座標情報を取得するようにプログラムされる。単一のパスでテクスチャとしてアクセス可能な各頂点におけるデータのタイプまたは数、もしくは、単一のパスで書き込み可能なデータのタイプまたは数のいずれかを、インデックス外しラスタ化モジュール３０１が制限する場合、全ての頂点データのインデックスを外すために複数のパスを使用してもよいことを認められよう。また、インデックス外しラスタ化モジュール３０１は、インデックス外し（de-indexing：デインデクシング）ピクセルシェーダ、インデックス外しグラフィックスシンセサイザ、ラスタライザ、ピクセルシェーダ、グラフィックスシンセサイザ、またはフラグメントシェーダと呼ばれてもよいことも認められよう。
【００３７】
上述にしたがって、本発明のインデックス外しラスタ化モジュール３０１は、ラスタ化モジュール２０５でなされたように明示的な三角形頂点データを入力として受け取るのではなく、インデックスバッファ（ＩＢ）と頂点バッファ（ＶＢ’）の両方を入力として受け取るようにプログラムされる。また、本発明のインデックス外しラスタ化モジュール３０１は、二回のテクスチャルックアップを実行して明示的な三角形頂点データを取得するようにプログラムされており、その結果、インデックス外しプロセスが効率的に実行される。さらに、本発明のインデックス外しラスタ化モジュール３０１は、二回のテクスチャルックアップを実行することによって取得された明示的な三角形頂点データを使用して、対応する三角形を描画するためのピクセルデータを規定するようにプログラムされている。本発明のインデックス外しラスタ化モジュール３０１を使用すれば、頂点−ピクセルパイプラインからインデックス外しモジュール２０３の専用ハードウェアを取り除いてもよいことを認められよう。
【００３８】
一実施形態では、インデックス外しラスタ化モジュール３０１は、インデックス外しラスタ化モジュール３０１と関連するメモリ内に一時バッファを作成する。一時「フレーム」バッファに書き込まれたデータが表示されることになっていない場合でも、一時バッファを一時「フレーム」バッファとみなすことができる。議論を容易にするために、一時バッファという用語を使用する。一時バッファは、第１のテクスチャルックアップにおいてインデックス外しされた頂点データをインデックス外しラスタ化モジュール３０１が書き込むことができるメモリ空間を表す。インデックス外しラスタ化モジュール３０１がピクセル単位で一時バッファを観察し、各ピクセルが一時バッファの特定の位置に割り当てられていることを認められよう。したがって、一時バッファの各「ピクセル」を活動化させるために、インデックス外しラスタ化モジュール３０１を動作させて、一時バッファを範囲に含むダミー図形（dummy geometry）を描画させる。一実施形態では、ダミー図形は一つまたは二つの大きな三角形として描画される。
【００３９】
インデックス外しされた頂点データを格納するために一時バッファが使用されるので、一時バッファにおける各ピクセル位置を、インデックス外しされた頂点データを格納するためのメモリのユニットとみなすことができる。使用される頂点データを入力として書き込むための、インデックス外しラスタ化モジュール３０１用の出力バッファとして一時バッファを使用するので、インデックス外しラスタ化モジュール３０１は頂点データ型の出力をサポートする必要がある。場合によっては、複数の出力要素を使用して所与の頂点のデータ要素を形成してもよいし、および／または複数のピクセルを使用して所与の頂点を形成してもよい。例えば、ハードウェアがピクセル毎に最大３２ビットを書き込み可能であり、頂点毎に四つの３２ビット浮動値が存在する場合、四つのピクセルを使用して単一の頂点を記述してもよい。また、一時バッファ内に表現された各ピクセルを、自身のプログラムを実行して一時バッファ内の自身のメモリ位置に書き込まれるべきデータの内容を決定するものと見ることもできる。各ピクセルのプログラム動作は同一である。しかしながら、各ピクセルに関連付けられるデータはそれぞれ異なる。
【００４０】
一時バッファ内で表現された各ピクセルは、一時バッファ内の自身の位置に書き込まれるべき頂点データを知っている必要がある。一時バッファ内の特定のピクセル位置に書き込まれるべき頂点データは、一時バッファ内の特定のピクセル位置のメモリアドレスに依存する。一時バッファ内の特定のピクセル位置のメモリアドレスは、一時バッファの始めからのオフセットに関して考慮されてもよい。一実施形態では、ピクセルは自身のメモリ位置を照会してもよい。別の実施形態では、ピクセルは、自身の一時バッファの位置に基づく数式を計算して、自身のメモリ位置を発見してもよい。
【００４１】
各ピクセルが、一時バッファ内の自身のメモリ位置に書き込む必要のある頂点インデックスを知ると、ピクセルは、テクスチャとして構成されたインデックスバッファ（ＩＢ）内の第１のテクスチャルックアップにおけるテクスチャ座標として頂点インデックスを使用する。それから、ピクセルは一時バッファ内の自身の位置に、戻された頂点データを書き込む。一時バッファが書き込まれた後、インデックス外しラスタ化モジュール３０１は、第２のテクスチャルックアップで読み出される頂点データ入力として一時バッファを使用して、ディスプレイフレームバッファ２０７への出力として構成される。元の頂点データ（ＶＢ／ＶＢ’）およびインデックスデータ（ＩＢ）は、廃棄されてもよいし、または次のフレームのために保存されてもよい。
【００４２】
本発明は、テクスチャとしてインデックスデータと頂点データとを使用するので、インデックス外しラスタ化モジュール３０１が、インデックスデータフォーマット（例えば、８ビット、１６ビット、または３２ビット整数）と頂点データフォーマット（例えば、固定または浮動）の両方でテクスチャをサポートする必要がある。また、インデックス外しラスタ化モジュール３０１は、一次元のテクスチャ、またはＮ×１である二次元のテクスチャとして、インデックスデータと頂点データとにアクセスするのをサポートするように定義されてもよい。インデックス外しラスタ化モジュール３０１はまた、数式、例えばハードウェア依存の数式にテクスチャ座標を通すことによって、一般の二次元テクスチャとしてインデックスデータと頂点データとにアクセスするように定義されてもよい。
【００４３】
図５は、本発明の一実施形態にしたがって、ピクセルシェーダを動作させ、表示される幾何プリミティブのインデックス外しを実行する方法のフローチャートを示す。この方法は、インデックスバッファで第１のテクスチャルックアップを実行して、表示される幾何プリミティブについての頂点インデックス値を取得する操作５０１を含む。この方法は、頂点バッファで第２のテクスチャルックアップを実行して、操作５０１で既に取得された頂点インデックス値に対応する頂点データを取得する操作５０３も含む。一実施形態では、頂点バッファ内に含まれる頂点データは、第２のテクスチャルックアップを実行する前にスクリーン空間内で処理される。また、一実施形態では、操作５０１と操作５０３とを実行する前に、インデックスバッファと頂点バッファがピクセルシェーダ内のメモリにそれぞれ送信される。さらに、一実施形態では、操作５０３で取得された頂点データは、フレームバッファのスクラッチ（作業用）部分に格納される。フレームバッファのスクラッチ部分に格納されたデータは、明示的に表示されることはない。
【００４４】
この方法は、表示される幾何プリミティブを規定するために必要な各頂点について、操作５０１と操作５０３とを連続的に繰り返す操作５０５をさらに含む。一実施形態では、表示される幾何プリミティブは三角形である。したがって、この実施形態では、操作５０１と操作５０３は、各三角形について合計で三回、すなわち、各三角形の三つの頂点のそれぞれについて一回ずつ実行される。操作５０７において、表示される幾何プリミティブがラスタライズされる。操作５０７のラスタライズは、操作５０１と操作５０３の連続的実行によって既に取得された頂点データを使用して、実行される。操作５０１ないし５０７は、シーン内で表示される幾何プリミティブのそれぞれについて繰り返される。
【００４５】
図６は、本発明の一実施形態にしたがって、表示される幾何プリミティブをインデックスを外す方法のフローチャートを示す。この方法は、ラスタライザを動作させて、表示される幾何プリミティブを規定するのに十分な複数の頂点インデックス値をインデックスバッファから読み出す操作６０１を含む。一実施形態では、表示される幾何プリミティブは、三つの頂点を有する三角形として表現される。この方法は、ラスタライザを動作させて、頂点バッファから頂点データを読み出す操作６０３も含む。これらの頂点データは、操作６０１でインデックスバッファから読み出された複数の頂点インデックス値のそれぞれと対応する。複数の頂点インデックス値のそれぞれは、頂点バッファ内の特定のエントリを参照する。
【００４６】
一実施形態では、頂点バッファ内に含まれる頂点データは、操作６０３を実行する前にスクリーン空間内で処理される。また、一実施形態では、操作６０１と操作６０３を実行してインデックスバッファと頂点バッファから読み出しをする前に、インデックスバッファと頂点バッファとがラスタライザ内のメモリに送信される。別の実施形態では、操作６０３で取得された頂点データは、フレームバッファのスクラッチ部分に格納される。フレームバッファのスクラッチ部分に格納されたデータは、表示されることはない。この方法は、ラスタライザを動作させ、操作６０３で読み出された頂点データにしたがって、表示される幾何プリミティブをラスタ化する操作６０５をさらに含む。
【００４７】
本明細書で述べた本発明の実施形態は、コンピュータ機器に組み込まれてもよい。コンピュータ機器はテレビゲーム機として表現されてもよい。本明細書で述べた実施形態は、ハードウェア、ソフトウェアまたはそれらの組合せとして実現可能であることを認められよう。
【００４８】
上述の実施形態を念頭において、本発明は、コンピュータシステムに格納されたデータに関わる様々なコンピュータ実装の操作を採用可能であることを理解されたい。これらの操作は、物理量の物理的な操作を必要とするものである。通常は、しかし必須ではなく、これらの量は、格納され、転送され、組み合わされ、比較されまたは他の操作を受けることができる電気信号または磁気信号の形態をとる。さらに、実行される操作は、生成、識別、決定または比較などの用語で呼ばれることが多い。
【００４９】
本発明の一部を形成する本明細書で述べた操作はいずれも、有用な機械動作である。本発明は、これらの動作を実行するデバイスまたは装置にも関連する。装置は、必要な目的のために特別に構築されてもよいし、または、コンピュータに格納されたコンピュータプログラムによって選択的に起動あるいは構成される汎用のコンピュータであってもよい。特に、本明細書の教示にしたがって記述されたコンピュータプログラムとともに、様々な汎用マシンを使用することができるし、必要な動作を実行するより専用的な装置を構築すればさらに便利である。
【００５０】
本発明の一部を形成する本明細書で述べた操作はいずれも、列挙された機能を実行するための能力を提供する、任意の適切な構造上の「手段」によって実行することもできる。例えば、例示的な構造は、特許請求の範囲で述べる発明の種々の実施形態で参照された、一例としての回路要素である。
【００５１】
本発明は、コンピュータ可読媒体におけるコンピュータ可読コードとして具現化されてもよい。コンピュータ可読媒体は、データを格納可能でありコンピュータシステムによって読み出し可能である任意のデータ記憶デバイスであってよい。コンピュータ可読媒体の例は、ハードディスクドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読出し専用メモリ、ランダムアクセスメモリ、ＣＤ―ＲＯＭ、ＣＤ―Ｒ、ＣＤ-ＲＷ、磁気テープ、および他の光学／非光学のデータ記憶デバイスを含む。コンピュータ可読媒体がネットワーク接続されたコンピュータシステムを介して配布され、コンピュータ可読コードが分散形態で格納され実行されてもよい。
【００５２】
本発明をいくつかの実施形態に関して説明したが、明細書を読み図面を検討することによって、当業者は様々な変更、付加、置換およびそれらの等価物を実現することを認められよう。したがって、本発明は、本発明の真の精神および範囲内にある変更、付加、置換、および等価物の全てを含むように意図されている。
【図面の簡単な説明】
【００５３】
【図１Ａ】グラフィックス画像としてコンピュータディスプレイに描画される、あるシーン内の二つの三角形（Ｔ０、Ｔ１）を示す図である。
【図１Ｂ】各三角形Ｔ０、Ｔ１を記述するのに必要となる頂点データを含む、三角形についてのインデックス付けされていないバッファを示す図である。
【図１Ｃ】頂点インデックス付けプロセスを実行する際に使用される頂点バッファを示す図である。
【図１Ｄ】頂点バッファ内に含まれる適切な頂点と各三角形Ｔ０、Ｔ１とを関連付けるために定義されるインデックスバッファを示す図である。
【図１Ｅ】図１Ａの各三角形Ｔ０、Ｔ１を記述するのに必要となる頂点データを含む、インデックス付けされていない三角形ストリップバッファを示す図である。
【図１Ｆ】図１Ｃの頂点バッファ（ＶＢ）に含まれる適切な頂点と各三角形Ｔ０、Ｔ１とを関連付けるために定義される三角形ストリップインデックスバッファ（ＴＳＩＢ）を示す図である。
【図２】頂点のインデックス付けを使用してシーンを規定する三角形に関連付けられたデータを処理する、シーン表示用の頂点−ピクセルパイプラインを示す図である。
【図３】本発明の一実施形態による強化された頂点−ピクセルパイプラインを示す図である。
【図４】本発明の一実施形態によるインデックス外しラスタ化モジュールを示す図である。
【図５】本発明の一実施形態による、ピクセルシェーダを動作させて、表示されるべき幾何プリミティブのインデックス外しを実行する方法のフローチャートである。
【図６】本発明の一実施形態による、表示されるべき幾何プリミティブのインデックスを外す方法のフローチャートである。
【符号の説明】
【００５４】
２０１  頂点処理モジュール、  ２０３  インデックス外しモジュール、  ２０５  ラスタ化モジュール、  ２０７  フレームバッファ、  ２０９  表示モジュール、  ２００、３００  頂点−ピクセルパイプライン、  ３０１  ラスタ化モジュール。  
【図１Ａ】
2006221650.tif 000003
【図１Ｂ】
2006221650.tif 000004
【図１Ｃ】
2006221650.tif 000005
【図１Ｄ】
2006221650.tif 000006
【図１Ｅ】
2006221650.tif 000007
【図１Ｆ】
2006221650.tif 000008
【図２】
2006221650.tif 000009
【図３】
2006221650.tif 000010
【図４】
2006221650.tif 000011
【図５】
2006221650.tif 000012
【図６】
2006221650.tif 000013