(57)【要約】バーテックスソータ１１４は、ポリゴン構造体インスタンスを、ポリゴン／スプライト共通データＣＩに変換し、バーテックスエキスパンダ１１６は、スプライト構造体インスタンスを、同一形式のポリゴン／スプライト共通データＣＩに変換する。後段の回路１１８，１２０，１２２，１２４，１２６，１１，１３０及び１３２は、同一形式のポリゴン／スプライト共通データＣＩに基づいて、スクリーンに表示される画像を生成する。ハードウェア規模を抑制しながらも、ポリゴン及びスプライトの任意の組み合わせからなる画像を生成でき、かつ、メモリ容量の増大を招くことなく、同時に描画できるポリゴン及びスプライトの数を多くできる。
2007043293.tif 000002
【特許請求の範囲】
【請求項１】
複数のグラフィック要素からなる、前記スクリーンに表示される画像を生成する画像生成装置であって、
前記複数のグラフィックス要素は、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素および前記スクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなり、
前記多角形状のグラフィック要素を生成するための第１の表示情報を、所定形式のデータに変換する第１のデータ変換手段と、
前記矩形状のグラフィック要素を生成するための第２の表示情報を、前記所定形式のデータに変換する第２のデータ変換手段と、
前記第１のデータ変換手段および前記第２のデータ変換手段から受け取った前記所定形式のデータに基づいて、前記スクリーンに表示される前記画像を生成する画像生成手段と、を備える画像生成装置。
【請求項２】
第１の二次元直交座標系は、前記グラフィック要素の前記スクリーンへの表示に用いられる二次元座標系であり、
第２の二次元直交座標系は、前記グラフィック要素にマッピングされる画像データが配置される二次元座標系であり、
前記所定形式のデータは、複数の頂点フィールドを含み、
前記頂点フィールドはそれぞれ、第１フィールドと第２フィールドとを含み、
前記第１のデータ変換手段は、前記第１の二次元直交座標系における前記多角形状のグラフィック要素の頂点の座標を前記第１フィールドに格納し、かつ、描画モードに応じた形式で前記多角形状のグラフィック要素の頂点のパラメータを前記第２フィールドに格納し、
前記第２のデータ変換手段は、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の頂点の座標を前記第１フィールドに格納し、かつ、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の頂点の座標を前記第２の二次元直交座標系へ写像した座標を前記第２フィールドに格納する、請求項１記載の画像生成装置。
【請求項３】
前記第２のデータ変換手段は、前記第２の表示情報に含まれる、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の１つの頂点の座標、及び前記グラフィック要素のサイズ情報に基づいて、前記第１の二次元直交座標系における他の３つの頂点の一部または全部の座標を算出し、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第１フィールドに格納し、かつ、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第２の二次元直交座標系へ写像した座標を生成し、生成された前記第２の二次元直交座標系の座標を前記第２フィールドに格納する、請求項２記載の画像生成装置。
【請求項４】
前記第２のデータ変換手段は、前記第２の表示情報に含まれる、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の１つの頂点の座標、前記グラフィック要素の拡縮率、及び前記グラフィック要素のサイズ情報に基づいて、前記第１の二次元直交座標系における他の３つの頂点の一部または全部の座標を算出し、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第１フィールドに格納し、かつ、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第２の二次元直交座標系へ写像した座標を生成し、生成された前記第２の二次元直交座標系の座標を前記第２フィールドに格納する、請求項２記載の画像生成装置。
【請求項５】
前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点の前記第１の二次元直交座標系における座標を取得して前記第１フィールドに格納し、
前記描画モードがテクスチャマッピングでの描画を示している場合、前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点の前記第２の二次元直交座標系における座標を算出するための情報と遠近補正用パラメータとを取得し、前記第２の二次元直交座標系における頂点の座標を算出して、遠近補正を施し、遠近補正後の頂点の座標と前記遠近補正用パラメータとを前記第２フィールドに格納し、
前記描画モードがグーローシェーディングでの描画を示している場合、前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点のカラーデータを取得し、取得したカラーデータを前記第２フィールドに格納する、請求項２記載の画像生成装置。
【請求項６】
前記所定形式のデータは、当該データが前記多角形状のグラフィックス要素であるか前記矩形状のグラフィックス要素であるかを示すフラグフィールドをさらに含み、
前記第１のデータ変換手段は、前記フラグフィールドに当該データが前記多角形状のグラフィックス要素であることを示す情報を格納し、
前記第２のデータ変換手段は、前記フラグフィールドに当該データが前記矩形状のグラフィックス要素であることを示す情報を格納する、請求項２から５記載の画像生成装置。
【請求項７】
前記画像生成手段は、前記スクリーンを構成するライン単位で、所定のライン順序に従って描画処理を行い、
前記第１のデータ変換手段は、複数の前記第１フィールドに含まれる頂点の座標の順が、前記所定のライン順序において頂点が出現する順に一致するように、前記頂点フィールドの内容を入れ替え、
前記第２のデータ変換手段は、前記矩形状のグラフィック要素の頂点の座標の順が、前記所定のライン順序において頂点が出現する順に一致するように、前記各頂点フィールドにデータを格納する、請求項２から６記載の画像生成装置。
【請求項８】
前記画像生成手段は、
前記所定形式のデータを受け取って、前記第１フィールドに格納された頂点の座標に基づいて、前記スクリーンの描画対象のラインと前記グラフィック要素の辺との２つの交点の座標を算出し、その差分を算出して第１のデータとし、かつ、前記第２フィールドに格納された頂点のパラメータに基づいて、前記２つの交点におけるパラメータを算出し、その差分を算出して第２のデータとし、かつ、前記第２のデータを前記第１のデータで除して前記第１の二次元座標系における単位座標当りの当該パラメータの変化量を求める交点算出手段を含む請求項２記載の画像生成装置。
【請求項９】
前記画像生成手段は、
前記第１フィールドに格納された頂点の座標に基づいて、前記スクリーンの描画対象のラインと前記グラフィック要素の辺との２つの交点の座標を算出し、その差分を算出して第１のデータとする交点算出手段を含み、
受け取った前記所定形式のデータに含まれる前記フラグフィールドが、前記多角形状のグラフィック要素であることを示す場合、前記交点算出手段は、前記描画モードに応じて前記第２フィールドに格納された頂点のパラメータに基づいて、前記２つの交点におけるパラメータを算出し、その差分を算出して第２のデータとし、
受け取った前記所定形式のデータに含まれる前記フラグフィールドが、前記矩形状のグラフィック要素であることを示す場合、前記交点算出手段は、前記第２フィールドに含まれる前記第２の二次元直交座標系における頂点の座標に基づいて、前記２つの交点におけるパラメータとしての、前記２つの交点の前記第２の二次元直交座標系における座標を算出し、その差分を算出して第２のデータとし、
前記交点算出手段は、前記第２のデータを前記第１のデータで除して前記第１の二次元座標系における単位座標当りの当該パラメータの変化量を求める、請求項６記載の画像生成装置。
【請求項１０】
受け取った前記所定形式のデータに含まれる前記フラグフィールドが前記多角形状グラフィック要素であることを示し、かつ、前記描画モードがテクスチャマッピングでの描画であることを示している場合、前記交点算出手段は、前記第２フィールドに格納されている遠近補正後の頂点の座標と遠近補正用パラメータとに基づいて、前記２つの交点の遠近補正後の頂点の座標と遠近補正用パラメータとを算出し、その差分を算出して前記第２のデータとし、
受け取った前記所定形式のデータに含まれる前記フラグフィールドが前記多角形状グラフィック要素であることを示し、かつ、前記描画モードがグーローシェーディングでの描画であることを示している場合、前記交点算出手段は、前記第２フィールドに格納されているカラーデータに基づいて、前記２つの交点のカラーデータを算出し、そのカラーデータの差分を算出して前記第２のデータとする、請求項９記載の画像生成装置。
【請求項１１】
前記画像生成手段は、
前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標当たりの当該パラメータの変化量を、前記２つの交点のいずれか一方の前記パラメータに順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標におけるパラメータを算出する加算手段をさらに含む請求項８記載の画像生成装置。
【請求項１２】
前記画像生成手段は、
前記矩形状のグラフィック要素に対して、前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標値当たりの前記第２の二次元直交座標系の座標の変化量を、前記２つの交点のいずれか一方の前記第２の二次元直交座標系における座標に順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標における前記第２の二次元直交座標系の座標を算出する加算手段をさらに含み、
前記加算手段は、前記描画モードがテクスチャマッピングでの描画を示している前記多角形状のグラフィック要素に対して、前記第１の二次元直交座標系の単位座標値当たりの前記第２の二次元直交座標系における遠近補正後の頂点の座標と遠近補正用パラメータの変化量を、前記２つの交点のいずれか一方の前記第２の二次元直交座標系における遠近補正後の頂点の座標と遠近補正用パラメータに順次加えていき、前記２つの交点間の遠近補正後の頂点の座標と遠近補正用パラメータを算出し、
前記加算手段は、前記描画モードがグーローシェーディングでの描画を示している前記多角形状のグラフィック要素に対して、前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標当たりのカラーデータの変化量を、前記２つの交点のいずれか一方のカラーデータに順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標におけるカラーデータを算出する、請求項１０記載の画像生成装置。
【請求項１３】
所定規則に従って、描画処理における前記多角形状のグラフィック要素および前記矩形状のグラフィック要素の描画優先順位を決定するマージソート手段をさらに備え、
前記第１の表示情報は、前記描画優先順位が高い順に予め第１の配列に格納され、
前記第２の表示情報は、前記描画優先順位が高い順に予め第２の配列に格納され、
前記マージソート手段は、前記第１の表示情報と前記第２の表示情報との前記描画優先順位を比較し、
前記第１の表示情報の前記描画優先順位が前記第２の表示情報の前記描画優先順位より高い場合、前記マージソート手段は、前記第１の配列から前記第１の表示情報を読み出し、
前記第２の表示情報の前記描画優先順位が前記第１の表示情報の前記描画優先順位より高い場合、前記マージソート手段は、前記第２の配列から前記第２の表示情報を読み出し、
前記マージソート手段は、前記第１の表示情報を読み出した場合は、当該第１の表示情報を単一のデータ列として出力し、前記第２の表示情報を読み出した場合は、当該第２の表示情報を前記単一のデータ列として出力する、請求項１から１２記載の画像生成装置。
【請求項１４】
所定のライン順序に従って行う描画処理において、前記グラフィック要素の複数の頂点の前記第１の二次元直交座標系における座標のうち、前記所定のライン順序において最も早く出現する頂点の座標を出現頂点座標としたときに、前記所定規則は、前記出現頂点座標が前記所定のライン順序において早く出現する前記グラフィック要素の前記描画優先順位が高くなるように定められる、請求項１３記載の画像生成装置。
【請求項１５】
前記マージソート手段は、前記出現頂点座標が同じ値を示している場合、前記第１の表示情報に含まれる表示深度情報と前記第２の表示情報に含まれる表示深度情報と、を比較し、より奥に描画される方の前記グラフィック要素の前記描画優先順位が高いと判断する、請求項１４記載の画像生成装置。
【請求項１６】
前記マージソート手段は、前記出現頂点座標が、最初に描画するラインより前に位置する場合は、当該出現頂点座標を最初に描画するラインに相当する座標に置き換えて、前記描画優先順位を決定する、請求項１５記載の画像生成装置。
【請求項１７】
前記マージソート手段は、インタレース表示が行われる場合、前記出現頂点座標が、奇数フィールドおよび偶数フィールドのうちの表示対象のフィールドで描画されないラインに相当する場合、そのラインの次のラインに相当する座標に当該出現頂点座標を置き換えて扱う、請求項１６記載の画像生成装置。
【請求項１８】
多角形状のグラフィック要素にテクスチャをマッピングするテクスチャマッピング装置であって、
前記テクスチャは複数の切片に分割され、前記テクスチャが前記グラフィックス要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片が回転及び移動されて、前記切片の全てが、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置され、
前記第２の二次元空間に配置される前記切片の全てが格納されている二次元配列から前記複数の切片を読み出す読出手段と、
読み出された前記複数の切片を結合する結合手段と、
前記複数の切片を結合して得られた前記テクスチャを前記多角形状のグラフィック要素にマッピングするマッピング手段と、を備えるテクスチャマッピング装置。
【請求項１９】
前記多角形状のグラフィック要素は、二角形状のグラフィック要素であり、
前記テクスチャは、三角形状のテクスチャである、請求項１８記載のテクスチャマッピング装置。
【請求項２０】
前記テクスチャは、２つの前記切片に分割され、そのうちの１つの前記切片が回転及び移動されて、前記２つの切片が前記二次元配列に格納されている、請求項１９記載のテクスチャマッピング装置。
【請求項２１】
前記三角形状のテクスチャは、前記第２の二次元テクセル空間の第１座標軸に平行な辺と前記第１座標軸に直交する第２座標軸に平行な辺とを有する直角三角形状のテクスチャであり、
前記直角三角形状のテクスチャは、前記第１座標軸あるいは前記第２座標軸のいずれかに平行な直線によって、前記２つの切片に分割されており、
前記１つの切片が１８０度回転及び移動されて、前記２つの切片が前記二次元配列に格納されている、請求項２０記載のテクスチャマッピング装置。
【請求項２２】
前記テクスチャの前記二次元配列への格納形態として、第１格納形態及び第２格納形態が用意されており、
前記テクスチャは、複数のテクセルからなり、
前記第１格納形態では、前記第２の二次元テクセル空間の第１座標軸あるいは前記第１座標軸に直交する第２座標軸のいずれかに、平行かつ一次元に並んだ第１の所定数のテクセルを１単位とし、その１単位のテクセルがメモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納され、
前記第２格納形態では、前記第２の二次元テクセル空間に二次元に並んだ第２の所定数のテクセルを１単位とし、その１単位のテクセルが前記メモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納される、請求項１８から２１記載のテクスチャマッピング装置。
【請求項２３】
前記テクスチャの繰り替えしマッピングが行われる場合は、前記分割並びに前記回転及び移動なしに、前記テクスチャは前記二次元配列に格納されており、前記読出手段は、前記二次元配列から前記テクスチャを読出し、前記結合手段は、結合処理を行わず、前記マッピング手段は、前記読出手段が読み出した前記テクスチャを前記多角形状のグラフィック要素にマッピングする、請求項１８から２１記載のテクスチャマッピング装置。
【請求項２４】
バイリニアフィルタリングを実行する画像処理装置であって、
テクスチャが複数の切片に分割され、前記テクスチャが多角形状のグラフィック要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片が１８０度回転及び移動されて、前記切片の全てが、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置されており、かつ、前記第２の二次元テクセル空間においてバイリニアフィルタリングで用いるテクセルが前記切片に隣接して配置されるように、前記切片の全てが二次元配列に格納され、
前記グラフィック要素に含まれるピクセルが写像される前記第１の二次元テクセル空間の座標に対応する前記第２の二次元テクセル空間における座標（Ｓ，Ｔ）を算出する座標算出手段と、
写像された前記ピクセルに対応する前記座標（Ｓ，Ｔ）が、１８０度回転及び移動なしに前記二次元配列に格納された前記切片に含まれる場合、前記第２の二次元テクセル空間の座標（Ｓ，Ｔ）、座標（Ｓ＋１，Ｔ）、座標（Ｓ，Ｔ＋１）、及び座標（Ｓ＋１，Ｔ＋１）に位置する４つのテクセルを読み出し、写像された前記ピクセルに対応する前記座標（Ｓ，Ｔ）が、１８０度回転及び移動して前記二次元配列に格納された前記切片に含まれる場合、前記第２の二次元テクセル空間の座標（Ｓ，Ｔ）、座標（Ｓ−１，Ｔ）、座標（Ｓ，Ｔ−１）、及び座標（Ｓ−１，Ｔ−１）に位置する４つのテクセルを読み出す読出手段と、
前記読出手段が読み出した前記４つのテクセルを用いて、写像された前記ピクセルのバイリニアフィルタリングを実行するバイリニアフィルタリング実行手段と、を備える画像処理装置。
【請求項２５】
前記多角形状のグラフィック要素は、三角形状のグラフィック要素であり、
前記テクスチャは、三角形状のテクスチャである、請求項２４記載の画像処理装置。
【請求項２６】
前記テクスチャは、２つの前記切片に分割され、そのうちの１つの前記切片が１８０度回転及び移動されて、前記２つの切片が前記二次元配列に格納されている、請求項２５記載の画像処理装置。
【請求項２７】
前記三角形状のテクスチャは、前記第２の二次元テクセル空間の第１座標軸に平行な辺と前記第１座標軸に直交する第２座標軸に平行な辺とを有する直角三角形状のテクスチャであり、
前記直角三角形状のテクスチャは、前記第１座標軸あるいは前記第２座標軸のいずれかに平行な直線によって、前記２つの切片に分割されている、請求項２６記載の画像処理装置。
【請求項２８】
前記テクスチャの前記二次元配列の格納形態として、第１格納形態及び第２格納形態が用意されており、
前記テクスチャは、複数のテクセルからなり、
前記第１格納形態では、前記第２の二次元テクセル空間の第１座標軸あるいは前記第１座標軸に直交する第２座標軸のいずれかに、平行かつ一次元に並んだ第１の所定数のテクセルを１単位とし、その１単位のテクセルがメモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納され、
前記第２格納形態では、前記第２の二次元テクセル空間に二次元に並んだ第２の所定数のテクセルを１単位とし、その１単位のテクセルが前記メモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納される、請求項２４から２６記載の画像処理装置。
【請求項２９】
前記テクスチャの繰り替えしマッピングが行われる場合は、前記分割並びに前記回転及び移動なしに、前記テクスチャは前記二次元配列に格納されており、前記読出手段は、前記第２の二次元テクセル空間の座標（Ｓ，Ｔ）、座標（Ｓ＋１，Ｔ）、座標（Ｓ，Ｔ＋１）、及び座標（Ｓ＋１，Ｔ＋１）に位置する４つのテクセルを読み出す、請求項２４から２８記載の画像処理装置。
【請求項３０】
三角形状のグラフィック要素にテクスチャをマッピングし、前記グラフィックス要素を構成する各ピクセルの描画処理を行う画像処理装置であって、
ピクセルの描画が行われる二次元直交座標系を第１の座標系とし、前記第１の座標系における座標を（Ｘ，Ｙ）で表し、
前記テクスチャを構成する各テクセルが前記グラフィックス要素にマッピングされる態様で配置される二次元直交座標系を第２の座標系とし、前記第２の座標系における座標を（Ｕ，Ｖ）で表し、
前記各テクセルがメモリに格納される態様で配置される二次元直交座標系を第３の座標系とし、前記第３の座標系における座標を（Ｓ，Ｔ）で表し、
前記各テクセルのうちで最大のＶ座標を持つテクセルのＶ座標に基づいてＶ座標閾値が定められ、
前記第１の座標系におけるピクセルの座標（Ｘ，Ｙ）を前記第２の座標系に写像し、前記ピクセルの座標（Ｕ，Ｖ）を求める座標算出手段と、
前記ピクセルのＶ座標が前記Ｖ座標閾値以下の場合、前記ピクセルの座標（Ｕ，Ｖ）を前記第３の座標系における前記ピクセルの座標（Ｓ，Ｔ）とし、前記ピクセルのＶ座標が前記Ｖ座標閾値を超える場合、前記各ピクセルの座標（Ｕ，Ｖ）を１８０度回転及び移動して前記第３の座標系における前記ピクセルの座標（Ｓ，Ｔ）に変換する座標変換手段と、
前記各ピクセルの座標（Ｓ，Ｔ）に基づいてテクセルデータを前記メモリから取得する読出手段と、を備える画像処理装置。
【請求項３１】
前記座標変換手段は、テクスチャの繰り返しマッピングが行われる場合、前記ピクセルのＶ座標が前記Ｖ座標閾値以下か否かにかかわらず、Ｕ座標の上位Ｍビット（Ｍは１以上の整数）を「０」に置き換えた値を前記ピクセルのＳ座標とし、Ｖ座標の上位Ｎビット（Ｎは１以上の整数）を「０」に置き換えた値を前記ピクセルのＴ座標として、前記第２の座標系における前記各ピクセルの座標（Ｕ，Ｖ）を前記第３の座標系における前記各ピクセルの座標（Ｓ，Ｔ）に変換する、請求項３０記載の画像処理装置。
【請求項３２】
前記ピクセルのＶ座標が前記Ｖ座標閾値以下の場合、前記読出手段は、前記第３の座標系における座標（Ｓ，Ｔ）、座標（Ｓ＋１，Ｔ）、座標（Ｓ，Ｔ＋１）、及び座標（Ｓ＋１，Ｔ＋１）に位置する４つのテクセルを読み出し、
前記ピクセルのＶ座標が前記Ｖ座標閾値を超える場合、前記読出手段は、前記第３の座標系における座標（Ｓ，Ｔ）、座標（Ｓ−１，Ｔ）、座標（Ｓ，Ｔ−１）、及び座標（Ｓ−１，Ｔ−１）に位置する４つのテクセルを読み出し、
前記画像処理装置は、
前記読出手段が読み出した前記４つのテクセルを用いて、前記座標（Ｓ，Ｔ）に写像される前記ピクセルのバイリニアフィルタリングを実行するバイリニアフィルタリング実行手段をさらに備える請求項３０又は３１記載の画像処理装置。
【請求項３３】
多角形状のグラフィック要素にマッピングされるテクスチャを複数の切片に分割するステップと、
前記テクスチャが前記グラフィック要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片を回転及び移動して、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置された全ての前記切片を、前記テクスチャを分割せずに二次元配列に格納した場合に要する記憶容量より少ない記憶容量の記憶領域に格納される二次元配列に格納するステップと、を含むテクスチャ格納方法。
【請求項３４】
前記テクスチャの前記二次元配列の格納形態として、第１格納形態及び第２格納形態が用意され、
前記テクスチャは、複数のテクセルからなり、
前記第１格納形態では、格納する前記ステップは、前記第２の二次元テクセル空間の第１座標軸あるいは前記第１座標軸に直交する第２座標軸のいずれかに、平行かつ一次元に並んだ第１の所定数のテクセルを１単位とし、その１単位のテクセルが記憶装置の１ワードに格納されるように、前記全ての切片を前記二次元配列に格納し、
前記第２格納形態では、格納する前記ステップは、前記第２の二次元テクセル空間に二次元に並んだ第２の所定数のテクセルを１単位とし、その１単位のテクセルが前記記憶装置の１ワードに格納されるように、前記全ての切片を前記二次元配列に格納する、請求項３３記載のテクスチャ格納方法。
【請求項３５】
格納する前記ステップは、前記第２の二次元テクセル空間において近傍に配置される前記切片同士の間が空き領域になるように、前記全ての切片を前記二次元配列に格納し、
前記テクスチャ格納方法は、
前記空き領域に、所定の画像処理に利用する画像データが配置されるように、前記画像データを前記二次元配列に格納するステップをさらに含む請求項３３又は３４記載のテクスチャ格納方法。
【請求項３６】
前記多角形状のグラフィック要素は、三角形状のグラフィック要素であり、
前記テクスチャは、三角形状のテクスチャである、請求項３３から３５記載のテクスチャ格納方法。
【請求項３７】
分割する前記ステップは、前記テクスチャを、２つの前記切片に分割し、
格納する前記ステップは、前記２つの切片のうちの１つの前記切片を回転及び移動して、前記２つの切片を前記二次元配列に格納する、請求項３６記載のテクスチャ格納方法。
【請求項３８】
前記三角形状のテクスチャは、前記第２の二次元テクセル空間の第１座標軸に平行な辺と前記第１座標軸に直交する第２座標軸に平行な辺とを有する直角三角形状のテクスチャであり、
分割する前記ステップは、前記直角三角形状のテクスチャを、前記第１座標軸あるいは前記第２座標軸のいずれかに平行な直線によって、前記２つの切片に分割し、
格納する前記ステップは、前記１つの切片を１８０度回転及び移動して、前記２つの切片を前記二次元配列に格納する、請求項３７記載のテクスチャ格納方法。
【請求項３９】
前記テクスチャの繰り替えしマッピングが行われる場合は、分割する前記ステップは実行されず、
格納する前記ステップは、前記回転及び移動なしに、前記テクスチャを前記二次元配列に格納する、請求項３３から３８記載のテクスチャ格納方法。
【請求項４０】
複数のグラフィック要素からなる、スクリーンに表示される画像を生成する画像生成装置であって、
前記グラフィック要素にマッピングするためのテクスチャデータを外部のメモリから読み出すための要求を行うデータ要求手段と、
前記メモリから読み出されたテクスチャデータを一時的に保管するテクスチャバッファ手段と、
前記テクスチャバッファ手段の領域を分割し、新たに描画を開始する前記グラフィック要素にマッピングされるテクスチャデータを格納するために当該テクスチャデータのサイズに応じた領域の割り当てと、描画が完了した前記グラフィック要素にマッピングされているテクスチャデータを格納していた領域の解放と、を行うテクスチャバッファ管理手段と、を備える画像生成装置。
【請求項４１】
前記複数のグラフィックス要素は、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素および前記スクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなり、
前記テクスチャバッファ管理手段は、前記矩形状のグラフィック要素にマッピングされるテクスチャデータの格納領域として、当該テクスチャデータの一部分のみが格納可能なサイズを割り当て、前記多角形状のグラフィック要素にマッピングされるテクスチャデータの格納領域として、当該テクスチャデータの全体が格納可能なサイズを割り当てる、請求項４０記載の画像生成装置。
【請求項４２】
前記データ要求手段は、前記矩形状のグラフィック要素にマッピングされるテクスチャデータを要求する際には、描画が進むに従ってマッピングするテクスチャデータを部分単位で要求し、前記多角形状のグラフィック要素にマッピングされるテクスチャデータを要求する際には、マッピングするテクスチャデータの全体を一括して要求する、請求項４１記載の画像生成装置。
【請求項４３】
前記テクスチャバッファ管理手段は、前記テクスチャバッファ手段の各領域を管理する複数の構造体インスタンスを用いて前記テクスチャバッファ手段を管理する、請求項４０から４２に記載の画像生成装置。
【請求項４４】
前記複数の構造体インスタンスは、管理する領域のサイズに応じて複数のグループに分けられ、前記グループ内の前記構造体インスタンスは、リング状に互いがリンクされている、請求項４３に記載の画像生成装置。
【請求項４５】
全ての前記構造体インスタンスを初期値に設定する構造体初期化手段をさらに備える、請求項４３又は４４に記載の画像生成装置。
【請求項４６】
前記構造体初期化手段が、前記構造体インスタンスを初期値に設定するために前記構造体インスタンスにアクセスする間隔を設定する制御レジスタをさらに備え、
前記制御レジスタには、外部からアクセス可能である、請求項４５に記載の画像生成装置。
【請求項４７】
前記テクスチャバッファ手段は、前記画像生成装置および外部の機能ユニットが共有する共有メモリ上に、任意の位置及び／又はサイズで構成可能である、請求項４０から４６に記載の画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素（ポリゴン）およびスクリーンに平行な矩形状のグラフィック要素（スプライト）の任意の組み合わせからなる画像を生成する画像生成装置及びその関連技術に関する。
また、本発明は、スクリーン上の三次元モデルを構成するグラフィック要素（ポリゴン）及び二次元のグラフィック要素（スプライト）にテクスチャをマッピングするテクスチャマッピング装置及びその関連技術に関する。
さらに、本発明は、複数のグラフィック要素からなる、スクリーンに表示される画像を生成する画像生成装置及びその関連技術に関する。
【背景技術】
【０００２】
従来より、ポリゴンとスプライトとを混在して表示する技術が存在する。この場合、特許文献１（特開平７−８５３０８号公報）に紹介されているように、２Ｄシステムと３Ｄシステムとを独立に用意して、表示のためのビデオ信号に変換する際に、スプライトとポリゴンとを加算合成する。
しかしながら、この方法の場合には、２Ｄシステムと、３Ｄシステムとの、それぞれに個別に専用回路と、フレームメモリが必要な上に、ポリゴンとスプライトとを、十分に混合して表現することは困難である。
特許文献１では、この問題を解決するための画像表示方法を開示している。この画像表示方法では、画像表示面に表示する物体を、その物体の各面を構成するポリゴンの描画命令により描画すると共に、物体のポリゴンをテクスチャ記憶領域に記憶されているテクスチャ画像により装飾する。
画像表示面に常に正立する所定の大きさの矩形のポリゴンに、テクスチャ記憶領域上の、上記矩形と同じ大きさの矩形テクスチャ画像を配置する矩形描画命令を設定する。この矩形描画命令によって、画像表示面上の上記矩形の位置及びテクスチャ記憶領域上の矩形テクスチャ画像の位置を指定する。この矩形描画命令により、画像表示面上の任意の位置に、矩形領域の描画を行うことができる。
このように、３Ｄシステムを利用して、２Ｄシステムのスプライトと類似する画像（以下、「擬似スプライト」と呼ぶ。）を表示するようにして、ハードウェアを少なくしている。
しかしながら、３Ｄシステムを利用しているので、テクスチャ記憶領域には、擬似スプライト画像全体、つまり、矩形テクスチャ画像全体を格納しておく必要がある。結局、ポリゴンにせよ、擬似スプライトにせよ、１グラフィック要素にマッピングするテクスチャ画像の全体をテクスチャ記憶領域に格納しなければならない。これは、スクリーンにおける描画対象の水平ラインに含まれるピクセル群を、テクスチャ画像が配置されるテクセル空間に写像すると、３Ｄシステムの場合、テクセル空間中のあらゆる直線上に写像される可能性があるからである。これに対し、スプライトの場合は、テクセル空間の水平軸に平行な直線上にのみ写像される。
ポリゴンや擬似スプライトといったグラフィック要素ごとにテクスチャ画像全体を格納したのでは、テクスチャ記憶領域の容量は限られているため、同時に描画できるポリゴン及び擬似スプライトの数が少なくなる。同時に描画できるポリゴン及び擬似スプライトの数を多くしたい場合は、メモリ容量を大きくせざるをえず、少ないメモリ容量で、同時に多くのポリゴン及び擬似スプライトの描画を行うのは困難である。
また、３Ｄシステムを利用しているので、３Ｄシステムのポリゴンと同じ形状の、擬似スプライトを表示できるに過ぎない。つまり、ポリゴンがｎ（ｎは３以上の整数）角形であれば、擬似スプライトもｎ角形になってしまい、両者の形状を異ならせることはできない。ちなみに、三角形のポリゴン２つで、四角形の擬似スプライトを構成できるが、この場合も、２つの三角形のポリゴンの画像全体を、テクスチャ記憶領域に格納しておく必要があり、必要なメモリ容量が大きくなる。
そこで、本発明は、ハードウェア規模を抑制しながらも、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素およびスクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなる画像を生成でき、かつ、メモリ容量の増大を招くことなく、同時に描画できるグラフィック要素の数を多くできる画像生成装置及びその関連技術を提供することを目的とする。
ところで、特許文献２（特開平８−１１０９５１号公報）に開示されたテクスチャマッピング装置は、テクスチャマッピング部と、画像メモリとにより構成される。画像メモリは、フレームメモリとテクスチャメモリとから構成され、フレームメモリには、テクスチャマッピングの対象となる３次元画像データが表示平面に対応したフィル座標系で格納され、テクスチャメモリには、マッピングすべきテクスチャデータがテクスチャ座標系で格納される。
一般に、このようなテクスチャメモリには、マッピングされるそのままの態様で、テクスチャが格納される。そして、一般に、テクスチャは、二次元配列としてテクスチャメモリに格納される。このため、マッピングされるそのままの態様で、テクスチャメモリにテクスチャを格納したのでは、マッピングされない無駄なテクセルが発生する場合がある。
特に、三角形にマッピングする三角形のテクスチャでは、二次元配列内のおよそ半分ものテクセルが無駄になってしまう。
そこで、本発明の他の目的は、メモリに格納されるテクスチャパターンデータに含まれる無駄なテクセルデータを極力削減して、必要なメモリ容量を抑制できるテクスチャマッピング装置及びその関連技術を提供することである。
ところで、特許文献２には、上記のようなテクスチャマッピング装置が開示されているが、この特許文献２は、テクスチャメモリの領域管理については特に着目していない。しかし、適切な領域管理をしないと、テクスチャデータ取得のための外部への無駄なアクセスが多くなったり、容量の大きいテクスチャメモリを確保しなければならない事態が発生する。
そこで、本発明のさらに他の目的は、テクスチャデータ取得のための無駄な外部メモリへのアクセスを回避でき、かつ、テクスチャデータを一時的に格納しておくためのハードウェアリソースが過剰に大きくなることを抑制できる画像生成装置及びその関連技術を提供することである。
【発明の開示】
【０００３】
本発明の第１の観点によれば、画像生成装置は、複数のグラフィック要素からなる、前記スクリーンに表示される画像を生成する画像生成装置であって、前記複数のグラフィックス要素は、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素および前記スクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなり、前記多角形状のグラフィック要素を生成するための第１の表示情報を、所定形式のデータに変換する第１のデータ変換手段（バーテックスソータ１１４に相当）と、前記矩形状のグラフィック要素を生成するための第２の表示情報を、前記所定形式のデータに変換する第２のデータ変換手段（バーテックスエキスパンダ１１６に相当）と、前記第１のデータ変換手段および前記第２のデータ変換手段から受け取った前記所定形式のデータに基づいて、前記スクリーンに表示される前記画像を生成する画像生成手段（バーテックスソータ１１４及びバーテックスエキスパンダ１１６の後段の回路に相当）と、を備える。
この構成によれば、多角形状のグラフィック要素（例えば、ポリゴン）を生成するための第１の表示情報および矩形状のグラフィック要素（例えば、スプライト）を生成するための第２の表示情報を同一形式のデータに変換するので、多角形状のグラフィック要素と矩形状のグラフィック要素とで、画像生成手段の内部機能ブロックを極力共通化することができる。このため、ハードウェア規模の抑制を図ることができる。
また、従来のように３Ｄシステムだけではなく、スクリーンの枠に平行な矩形状のグラフィック要素の描画を行う２Ｄシステムをも搭載しているので、矩形状のグラフィック要素を描画する場合は、当該グラフィック要素全体のテクスチャ画像を一括して取得する必要はなく、例えば、スクリーンにおける１ライン単位での画像データの取得が可能である。このため、メモリ容量の増大を招くことなく、同時に描画できるグラフィック要素の数を多くできる。
以上の結果、ハードウェア規模を抑制しながらも、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素およびスクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなる画像を生成でき、かつ、メモリ容量の増大を招くことなく、同時に描画できるグラフィック要素の数を多くできる。
上記画像生成装置において、第１の二次元直交座標系は、前記グラフィック要素の前記スクリーンへの表示に用いられる二次元座標系であり、第２の二次元直交座標系は、前記グラフィック要素にマッピングされる画像データが配置される二次元座標系であり、前記所定形式のデータは、複数の頂点フィールドを含み、前記頂点フィールドはそれぞれ、第１フィールドと第２フィールドとを含み、前記第１のデータ変換手段は、前記第１の二次元直交座標系における前記多角形状のグラフィック要素の頂点の座標を前記第１フィールドに格納し、かつ、描画モードに応じた形式で前記多角形状のグラフィック要素の頂点のパラメータを前記第２フィールドに格納し、前記第２のデータ変換手段は、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の頂点の座標を前記第１フィールドに格納し、かつ、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の頂点の座標を前記第２の二次元直交座標系へ写像した座標を前記第２フィールドに格納する。
この構成によれば、第１のデータ変換手段は、所定形式のデータの第２フィールドに、描画モードに応じた形式で頂点のパラメータを格納するので、所定形式のデータの形式の同一性を保持しながらも、３Ｄシステムにおいて、異なる描画モードでの描画を実現できる。
上記画像生成装置において、前記第２のデータ変換手段は、前記第２の表示情報に含まれる、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の１つの頂点の座標、及び前記グラフィック要素のサイズ情報に基づいて、前記第１の二次元直交座標系における他の３つの頂点の一部または全部の座標を算出し、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第１フィールドに格納し、かつ、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第２の二次元直交座標系へ写像した座標を生成し、生成された前記第２の二次元直交座標系の座標を前記第２フィールドに格納する。
この構成によれば、他の３つの頂点の一部または全部の座標を計算で求めるので、第２の表示情報に４つの頂点全ての座標を含める必要はなく、第２の表示情報の格納に必要なメモリ容量を抑制できる。
上記画像生成装置において、前記第２のデータ変換手段は、前記第２の表示情報に含まれる、前記第１の二次元直交座標系における前記矩形状のグラフィック要素の１つの頂点の座標、前記グラフィック要素の拡縮率、及び前記グラフィック要素のサイズ情報に基づいて、前記第１の二次元直交座標系における他の３つの頂点の一部または全部の座標を算出し、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第１フィールドに格納し、かつ、予め前記第２の表示情報に含まれる頂点の座標と算出された頂点の座標とを前記第２の二次元直交座標系へ写像した座標を生成し、生成された前記第２の二次元直交座標系の座標を前記第２フィールドに格納する。
この構成によれば、他の３つの頂点の一部または全部の座標を計算で求めるので、第２の表示情報に４つの頂点全ての座標を含める必要はなく、第２の表示情報の格納に必要なメモリ容量を抑制できる。また、第２の二次元直交座標系へ写像された座標はグラフィック要素の拡縮率が反映されたものであるため、原画像を拡大または縮小した画像をスクリーンに表示する場合でも、拡大後または縮小後の画像データを予めメモリ上に用意する必要はなく、画像データの格納に必要なメモリ容量を抑制できる。
上記画像生成装置において、前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点の前記第１の二次元直交座標系における座標を取得して前記第１フィールドに格納し、前記描画モードがテクスチャマッピングでの描画を示している場合、前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点の前記第２の二次元直交座標系における座標を算出するための情報と遠近補正用パラメータとを取得し、前記第２の二次元直交座標系における頂点の座標を算出して、遠近補正を施し、遠近補正後の頂点の座標と前記遠近補正用パラメータとを前記第２フィールドに格納し、前記描画モードがグーローシェーディングでの描画を示している場合、前記第１のデータ変換手段は、前記第１の表示情報に含まれる、前記多角形状のグラフィック要素の頂点のカラーデータを取得し、取得したカラーデータを前記第２フィールドに格納する。
この構成によれば、所定形式のデータの形式の同一性を保持しながらも、３Ｄシステムにおいて、テクスチャマッピングおよびグーローシェーディングといった２種類の描画モードでの描画を実現できる。
上記画像生成装置において、前記所定形式のデータは、当該データが前記多角形状のグラフィックス要素であるか前記矩形状のグラフィックス要素であるかを示すフラグフィールドをさらに含み、前記第１のデータ変換手段は、前記フラグフィールドに当該データが前記多角形状のグラフィックス要素であることを示す情報を格納し、前記第２のデータ変換手段は、前記フラグフィールドに当該データが前記矩形状のグラフィックス要素であることを示す情報を格納する。
この構成によれば、所定形式のデータの同一性を保持しながらも、所定形式のデータを受け取る画像生成手段は、フラグフィールドを参照することにより、描画対象のグラフィック要素の種類を容易に判別して、グラフィック要素の種類ごとの処理を行うことができる。
この画像生成装置において、前記画像生成手段は、前記第１フィールドに格納された頂点の座標に基づいて、前記スクリーンの描画対象のラインと前記グラフィック要素の辺との２つの交点の座標を算出し、その差分を算出して第１のデータとする交点算出手段（スライサ１１８に相当）を含み、受け取った前記所定形式のデータに含まれる前記フラグフィールドが、前記多角形状のグラフィック要素であることを示す場合、前記交点算出手段は、前記描画モードに応じて前記第２フィールドに格納された頂点のパラメータに基づいて、前記２つの交点におけるパラメータを算出し、その差分を算出して第２のデータとし、受け取った前記所定形式のデータに含まれる前記フラグフィールドが、前記矩形状のグラフィック要素であることを示す場合、前記交点算出手段は、前記第２フィールドに含まれる前記第２の二次元直交座標系における頂点の座標に基づいて、前記２つの交点におけるパラメータとしての、前記２つの交点の前記第２の二次元直交座標系における座標を算出し、その差分を算出して第２のデータとし、前記交点算出手段は、前記第２のデータを前記第１のデータで除して前記第１の二次元座標系における単位座標当りの当該パラメータの変化量を求める。
この構成によれば、フラグフィールドを参照することにより、グラフィック要素の種類を容易に判別して、その種類に応じた第２のデータの算出を行うことができる。また、第１の二次元座標系における単位座標当りのパラメータの変化量が後段に送出されるので、後段において、上記２つの交点間の各パラメータを線形補間により容易に算出できる。
この画像生成装置において、受け取った前記所定形式のデータに含まれる前記フラグフィールドが前記多角形状グラフィック要素であることを示し、かつ、前記描画モードがテクスチャマッピングでの描画であることを示している場合、前記交点算出手段は、前記第２フィールドに格納されている遠近補正後の頂点の座標と遠近補正用パラメータとに基づいて、前記２つの交点の遠近補正後の頂点の座標と遠近補正用パラメータとを算出し、その差分を算出して前記第２のデータとし、受け取った前記所定形式のデータに含まれる前記フラグフィールドが前記多角形状グラフィック要素であることを示し、かつ、前記描画モードがグーローシェーディングでの描画であることを示している場合、前記交点算出手段は、前記第２フィールドに格納されているカラーデータに基づいて、前記２つの交点のカラーデータを算出し、そのカラーデータの差分を算出して前記第２のデータとする。
この構成によれば、描画モードがテクスチャマッピングでの描画であることを示している場合、後段において、上記２つの交点間の第２の二次元直交座標系における各座標を、遠近補正後の頂点の座標と遠近補正用パラメータの線形補間により容易に算出できる。−方、描画モードがグーローシェーディングでの描画であることを示している場合、後段において、上記２つの交点間の各カラーデータを線形補間により容易に算出できる。
この画像生成装置において、前記画像生成手段は、前記矩形状のグラフィック要素に対して、前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標値当たりの前記第２の二次元直交座標系の座標の変化量を、前記２つの交点のいずれか一方の前記第２の二次元直交座標系における座標に順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標における前記第２の二次元直交座標系の座標を算出する加算手段（ピクセルステッパ１２０に相当）をさらに含み、前記加算手段は、前記描画モードがテクスチャマッピングでの描画を示している前記多角形状のグラフィック要素に対して、前記第１の二次元直交座標系の単位座標値当たりの前記第２の二次元直交座標系における遠近補正後の頂点の座標と遠近補正用パラメータの変化量を、前記２つの交点のいずれか一方の前記第２の二次元直交座標系における遠近補正後の頂点の座標と遠近補正用パラメータに順次加えていき、前記２つの交点間の遠近補正後の頂点の座標と遠近補正用パラメータを算出し、前記加算手段は、前記描画モードがグーローシェーディングでの描画を示している前記多角形状のグラフィック要素に対して、前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標当たりのカラーデータの変化量を、前記２つの交点のいずれか一方のカラーデータに順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標におけるカラーデータを算出する。
このように、矩形状のグラフィック要素に対して、第１の二次元座標系における単位座標当りの第２の二次元直交座標系の座標の変化量に基づいて、第２の二次元直交座標系における上記２つの交点間の各座標を線形補間により容易に算出できる。−方、描画モードがテクスチャマッピングでの描画を示している多角形状のグラフィック要素に対して、第１の二次元座標系における単位座標当りの第２の二次元直交座標系の遠近補正後の頂点の座標と遠近補正用パラメータの変化量に基づいて、上記２つの交点間の遠近補正後の頂点の座標と遠近補正用パラメータを線形補間により容易に算出できる。また、描画モードがグーローシェーディングでの描画を示している多角形状のグラフィック要素に対して、第１の二次元座標系における単位座標当りのカラーデータの変化量に基づいて、上記２つの交点間の各カラーデータを線形補間により容易に算出できる。
上記画像生成装置において、前記画像生成手段は、前記スクリーンを構成するライン単位で、所定のライン順序に従って描画処理を行い、前記第１のデータ変換手段は、複数の前記第１フィールドに含まれる頂点の座標の順が、前記所定のライン順序において頂点が出現する順に一致するように、前記頂点フィールドの内容を入れ替え、前記第２のデータ変換手段は、前記矩形状のグラフィック要素の頂点の座標の順が、前記所定のライン順序において頂点が出現する順に一致するように、前記各頂点フィールドにデータを格納する。
この構成によれば、多角形状のグラフィック要素および矩形状のグラフィック要素のいずれについても、所定形式のデータにおいて、頂点の出現順に並べられているので、後段での描画処理が容易になる。
上記画像生成装置において、前記画像生成手段は、前記所定形式のデータを受け取って、前記第１フィールドに格納された頂点の座標に基づいて、前記スクリーンの描画対象のラインと前記グラフィック要素の辺との２つの交点の座標を算出し、その差分を算出して第１のデータとし、かつ、前記第２フィールドに格納された頂点のパラメータに基づいて、前記２つの交点におけるパラメータを算出し、その差分を算出して第２のデータとし、かつ、前記第２のデータを前記第１のデータで除して前記第１の二次元座標系における単位座標当りの当該パラメータの変化量を求める交点算出手段（スライサ１１８に相当）を含む。
この構成によれば、第１の二次元座標系における単位座標当りのパラメータの変化量が後段に送出されるので、後段において、上記２つの交点間の各パラメータを線形補間により容易に算出できる。
この画像生成装置において、前記画像生成手段は、前記交点算出手段により算出された、前記第１の二次元直交座標系の単位座標当たりの当該パラメータの変化量を、前記２つの交点のいずれか一方の前記パラメータに順次加えていき、前記２つの交点間の前記第１の二次元直交座標系の各座標におけるパラメータを算出する加算手段（ピクセルステッパ１２０に相当）をさらに含む。
このように、第１の二次元座標系における単位座標当りのパラメータの変化量に基づいて、上記２つの交点間の各パラメータを線形補間により容易に算出できる。
上記画像生成装置において、所定規則に従って、描画処理における前記多角形状のグラフィック要素および前記矩形状のグラフィック要素の描画優先順位を決定するマージソート手段（マージソータ１０６に相当）をさらに備え、前記第１の表示情報は、前記描画優先順位が高い順に予め第１の配列に格納され、前記第２の表示情報は、前記描画優先順位が高い順に予め第２の配列に格納され、前記マージソート手段は、前記第１の表示情報と前記第２の表示情報との前記描画優先順位を比較し、前記第１の表示情報の前記描画優先順位が前記第２の表示情報の前記描画優先順位より高い場合、前記マージソート手段は、前記第１の配列から前記第１の表示情報を読み出し、前記第２の表示情報の前記描画優先順位が前記第１の表示情報の前記描画優先順位より高い場合、前記マージソート手段は、前記第２の配列から前記第２の表示情報を読み出し、前記マージソート手段は、前記第１の表示情報を読み出した場合は、当該第１の表示情報を単一のデータ列として出力し、前記第２の表示情報を読み出した場合は、当該第２の表示情報を前記単一のデータ列として出力する。
この構成によれば、第１の表示情報あるいは第２の表示情報の如何に関係なく、全ての表示情報を描画優先順位に基づいて整列した上で、同じ単一のデータ列として出力されるので、多角形状のグラフィック要素と矩形状のグラフィック要素とで、後段の機能ブロックを極力共通化でき、ハードウェア規模の抑制を一層図ることができる。
この画像生成装置において、所定のライン順序に従って行う描画処理において、前記グラフィック要素の複数の頂点の前記第１の二次元直交座標系における座標のうち、前記所定のライン順序において最も早く出現する頂点の座標を出現頂点座標としたときに、前記所定規則は、前記出現頂点座標が前記所定のライン順序において早く出現する前記グラフィック要素の前記描画優先順位が高くなるように定められる。
この構成によれば、出現頂点座標が早く出現するグラフィック要素の描画優先順位が高くなる所定規則にしたがってマージソートを行うので、単一のデータ列として出力される第１の表示情報及び第２の表示情報に対して、出力順に描画処理を行うだけでよい。このため、１フレーム以上の画像を格納するための大容量のバッファ（フレームバッファ等）を実装する必要は必ずしもなく、より容量の小さいバッファ（ラインバッファや、１ラインに満たないピクセルを描画するピクセルバッファ等）を実装した場合であっても、多くの多角形状のグラフィック要素及び矩形状のグラフィック要素を組み合わせた画像の表示が可能になる。
この画像生成装置において、前記マージソート手段は、前記出現頂点座標が同じ値を示している場合、前記第１の表示情報に含まれる表示深度情報と前記第２の表示情報に含まれる表示深度情報と、を比較し、より奥に描画される方の前記グラフィック要素の前記描画優先順位が高いと判断する。
この構成によれば、多角形状のグラフィック要素と矩形状のグラフィック要素とで出現頂点座標が同じ場合、描画対象のラインにおいて、表示深度の順で描画優先順位が決定される。従って、描画対象のラインにおいて、より奥に描画されるグラフィック要素が先に描画される（表示深度順の描画）。このため、半透明合成を適切に行うことができる。
この画像生成装置において、前記マージソート手段は、前記出現頂点座標が、最初に描画するラインより前に位置する場合は、当該出現頂点座標を最初に描画するラインに相当する座標に置き換えて、前記描画優先順位を決定する。
この構成によれば、多角形状のグラフィック要素及び矩形状のグラフィック要素の双方の出現頂点座標が、最初に描画するライン（つまり、スクリーンの先頭ライン）より前に位置する場合は、それらは同一座標とみなされるので、上記のように、表示深度情報に基づいて、より奥に描画される方のグラフィック要素の描画優先順位が高いと判断される。従って、スクリーンの先頭ラインにおいて、グラフィック要素は、表示深度順で描画される。このような先頭ラインでの処理を行わない場合、先頭ラインの描画においては、必ずしも表示深度順での描画が保証されないが、この構成によれば、先頭ラインから表示深度順での描画を行うことが可能となる。表示深度順で描画する効果は上記と同様である。
この画像生成装置において、前記マージソート手段は、インタレース表示が行われる場合、前記出現頂点座標が、奇数フィールドおよび偶数フィールドのうちの表示対象のフィールドで描画されないラインに相当する場合、そのラインの次のラインに相当する座標に当該出現頂点座標を置き換えて扱う。
この構成によれば、インタレース表示が行われる場合において、表示対象のフィールドで描画されないラインに相当する出現頂点座標と、そのラインの次のライン（表示対象のフィールドで描画されるライン）に相当する出現頂点座標と、が同一座標として扱われるので、上記のように、表示深度情報に基づいて、より奥に描画される方のグラフィック要素の描画優先順位が高いと判断される。このため、インタレース表示の場合でも表示深度順での描画処理が保証される。表示深度順で描画する効果は上記と同様である。
本発明の第２の観点によれば、テクスチャマッピング装置は、多角形状のグラフィック要素にテクスチャをマッピングするテクスチャマッピング装置である。前記テクスチャは複数の切片に分割され、前記テクスチャが前記グラフィックス要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片が回転及び移動されて、前記切片の全てが、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置される。
そして、このテクスチャマッピング装置は、前記第２の二次元空間に配置される前記切片の全てが格納されている二次元配列から前記複数の切片を読み出す読出手段と、読み出された前記複数の切片を結合する結合手段と、前記複数の切片を結合して得られた前記テクスチャを前記多角形状のグラフィック要素にマッピングするマッピング手段と、を備える。
この構成によれば、テクスチャは、グラフィックス要素にマッピングされる態様でメモリに格納されるのではなく、複数の切片に分割され、かつ、少なくとも１つの切片が回転及び移動されて、メモリに格納される。このため、例えば三角形等、四角形以外のポリゴンにマッピングするテクスチャをメモリに格納する場合においても、テクスチャが格納されない無駄な記憶領域を極力省くことができ、効率良く格納できるので、テクスチャパターンデータを格納するメモリの容量を小さくできる。
つまり、テクスチャパターンデータを構成するテクセルデータのうち、テクスチャが配置される領域のテクセルデータは実体的な内容（カラーを直接的あるいは間接的に示す情報）を含むものであるが、テクスチャが配置されない領域のテクセルデータは、実体的な内容を含まない無駄なものである。この無駄なテクセルデータを極力省くことで、必要なメモリ容量を抑制できる。
ここで言うところのテクスチャパターンデータとは、テクスチャが配置される領域のみのテクセルデータを意味するのではなく、それ以外の領域のテクセルデータを含む。例えば、三角形のテクスチャを含む四角形の領域のテクセルデータである。
このテクスチャマッピング装置において、前記多角形状のグラフィック要素は、三角形状のグラフィック要素であり、前記テクスチャは、三角形状のテクスチャである。
特に三角形のグラフィック要素にマッピングする三角形のテクスチャをそのまま２次元配列に格納すると、配列内のおよそ半分のテクセルデータが無駄になる。三角形のグラフィック要素にマッピングされる三角形のテクスチャを複数に分割して格納することにより、無駄になるテクセルデータを大幅に減らすことができる。
このテクスチャマッピング装置において、前記テクスチャは、２つの前記切片に分割され、そのうちの１つの前記切片が回転及び移動されて、前記２つの切片が前記二次元配列に格納されている。
この構成によれば、三角形のグラフィック要素にマッピングされる三角形のテクスチャを２つに分割して格納することにより、無駄になるテクセルデータを大幅に減らすことができる。
このテクスチャマッピング装置において、前記三角形状のテクスチャは、前記第２の二次元テクセル空間の第１座標軸に平行な辺と前記第１座標軸に直交する第２座標軸に平行な辺とを有する直角三角形状のテクスチャであり、前記直角三角形状のテクスチャは、前記第１座標軸あるいは前記第２座標軸のいずれかに平行な直線によって、前記２つの切片に分割されており、前記１つの切片が１８０度回転及び移動されて、前記２つの切片が前記二次元配列に格納されている。
この構成によれば、テクスチャは直角三角形状であるため、直角をなす２辺をそれぞれ、第１の二次元テクセル空間の一方座標軸及び他方座標軸に一致させ、かつ、直角の頂点を第１の二次元テクセル空間の原点に設定することにより、第１の二次元テクセル空間における三角形の頂点の座標の指定のために必要なデータ量を少なくできる。
上記テクスチャマッピング装置において、前記テクスチャの前記二次元配列への格納形態として、第１格納形態及び第２格納形態が用意されており、前記テクスチャは、複数のテクセルからなり、前記第１格納形態では、前記第２の二次元テクセル空間の第１座標軸あるいは前記第１座標軸に直交する第２座標軸のいずれかに、平行かつ一次元に並んだ第１の所定数のテクセルを１単位とし、その１単位のテクセルがメモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納され、前記第２格納形態では、前記第２の二次元テクセル空間に二次元に並んだ第２の所定数のテクセルを１単位とし、その１単位のテクセルが前記メモリの１ワードに格納されるように、前記全ての切片が前記二次元配列に格納される。
ここで、多角形状のグラフィックス要素（例えば、ポリゴン）を、二次元空間に投影された三次元立体の各面の形状を表すためのものとする。このように、三次元立体を表すためのグラフィック要素であっても、（スプライトと同様の）スクリーンに正立する二次元のグラフィック要素として使用する場合もある。
スクリーンは複数の平行に並んだ水平ラインで構成されるところ、三次元立体を表すためのグラフィック要素を二次元のグラフィック要素として使用する場合は、１水平ラインごとにテクセルデータを取得することにより、テクセルデータを一時格納するためのメモリ容量を削減することができる。
第１の格納形態では、メモリの１ワードに一次元に並んだテクセルデータが格納されるので、１水平ラインごとにテクセルデータを取得する際のメモリへのアクセス回数を減らすことができる。
一方、多角形状のグラフィックス要素によって三次元立体を表す場合は、スクリーンの水平ライン上のピクセルを第１の二次元テクセル空間に写像したとき、必ずしも第１の二次元テクセル空間の水平ライン上に写像されるとは限らない。
このように、ピクセルが第１の二次元テクセル空間の水平ライン上に写像されない場合でも、第２の格納形態ではメモリの１ワードに二次元に並んだテクセルデータが格納されるので、ピクセルが写像された座標に配置されたテクセルデータが、メモリから既に取得したテクセルデータの中に存在する可能性が高く、テクセルデータ取得のためのメモリへのアクセス回数を減らすことができる。
上記テクスチャマッピング装置において、前記テクスチャの繰り替えしマッピングが行われる場合は、前記分割並びに前記回転及び移動なしに、前記テクスチャは前記二次元配列に格納されており、前記読出手段は、前記二次元配列から前記テクスチャを読出し、前記結合手段は、結合処理を行わず、前記マッピング手段は、前記読出手段が読み出した前記テクスチャを前記多角形状のグラフィック要素にマッピングする。
この構成によれば、テクスチャは分割並びに回転及び移動なしに二次元配列に格納されるので、水平方向及び／又は垂直方向にテクスチャが繰り返すようなテクスチャマッピングを行う際の、テクスチャパターンデータのメモリへの格納に好適である。しかも、繰り返しマッピングなので、同じテクスチャパターンデータを使用することができ、メモリ容量の削減が可能となる。
本発明の第３の観点によれば、画像処理装置は、バイリニアフィルタリングを実行する画像処理装置である。テクスチャが複数の切片に分割され、前記テクスチャが多角形状のグラフィック要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片が１８０度回転及び移動されて、前記切片の全てが、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置されており、かつ、前記第２の二次元テクセル空間においてバイリニアフィルタリングで用いるテクセルが前記切片に隣接して配置されるように、前記切片の全てが二次元配列に格納される。
そして、この画像処理装置は、前記グラフィック要素に含まれるピクセルが写像される前記第１の二次元テクセル空間の座標に対応する前記第２の二次元テクセル空間における座標（Ｓ，Ｔ）を算出する座標算出手段と、写像された前記ピクセルに対応する前記座標（Ｓ，Ｔ）が、１８０度回転及び移動なしに前記二次元配列に格納された前記切片に含まれる場合、前記第２の二次元テクセル空間の座標（Ｓ，Ｔ）、座標（Ｓ＋１，Ｔ）、座標（Ｓ，Ｔ＋１）、及び座標（Ｓ＋１，Ｔ＋１）に位置する４つのテクセルを読み出し、写像された前記ピクセルに対応する前記座標（Ｓ，Ｔ）が、１８０度回転及び移動して前記二次元配列に格納された前記切片に含まれる場合、前記第２の二次元テクセル空間の座標（Ｓ，Ｔ）、座標（Ｓ−１，Ｔ）、座標（Ｓ，Ｔ−１）、及び座標（Ｓ−１，Ｔ−１）に位置する４つのテクセルを読み出す読出手段と、前記読出手段が読み出した前記４つのテクセルを用いて、写像された前記ピクセルのバイリニアフィルタリングを実行するバイリニアフィルタリング実行手段と、を備える。
この構成によれば、写像されたピクセルに対応する座標（Ｓ，Ｔ）が、１８０度回転及び移動して二次元配列に格納された切片に含まれる場合でも、これを考慮して、４テクセルを取得する。また、分割して格納される切片同士の間には、バイリニアフィルタリングで用いるテクセルが切片に隣接するように格納される。
これらのことから、テクスチャを分割してメモリに格納する場合でも、バイリニアフィルタリング処理を問題なく実現できる。
本発明の第４の観点によれば、画像処理装置は、三角形状のグラフィック要素にテクスチャをマッピングし、前記グラフィックス要素を構成する各ピクセルの描画処理を行う画像処理装置である。ピクセルの描画が行われる二次元直交座標系を第１の座標系とし、前記第１の座標系における座標を（Ｘ，Ｙ）で表し、前記テクスチャを構成する各テクセルが前記グラフィックス要素にマッピングされる態様で配置される二次元直交座標系を第２の座標系とし、前記第２の座標系における座標を（Ｕ，Ｖ）で表し、前記各テクセルがメモリに格納される態様で配置される二次元直交座標系を第３の座標系とし、前記第３の座標系における座標を（Ｓ，Ｔ）で表し、前記各テクセルのうちで最大のＶ座標を持つテクセルのＶ座標に基づいてＶ座標閾値が定められる。
そして、この画像処理装置は、前記第１の座標系におけるピクセルの座標（Ｘ，Ｙ）を前記第２の座標系に写像し、前記ピクセルの座標（Ｕ，Ｖ）を求める座標算出手段と、前記ピクセルのＶ座標が前記Ｖ座標閾値以下の場合、前記ピクセルの座標（Ｕ，Ｖ）を前記第３の座標系における前記ピクセルの座標（Ｓ，Ｔ）とし、前記ピクセルのＶ座標が前記Ｖ座標閾値を超える場合、前記各ピクセルの座標（Ｕ，Ｖ）を１８０度回転及び移動して前記第３の座標系における前記ピクセルの座標（Ｓ，Ｔ）に変換する座標変換手段と、前記各ピクセルの座標（Ｓ，Ｔ）に基づいてテクセルデータを前記メモリから取得する読出手段と、を備える。
この構成によれば、テクスチャがＶ座標閾値を境に２分割されて、Ｖ座標が大きい方の切片が１８０度回転及び移動して格納されている場合に、格納先から適切なテクセルデータを読み出すことができる。
この画像処理装置において、前記座標変換手段は、テクスチャの繰り返しマッピングが行われる場合、前記ピクセルのＶ座標が前記Ｖ座標閾値以下か否かにかかわらず、Ｕ座標の上位Ｍビット（Ｍは１以上の整数）を「０」に置き換えた値を前記ピクセルのＳ座標とし、Ｖ座標の上位Ｎビット（Ｎは１以上の整数）を「０」に置き換えた値を前記ピクセルのＴ座標として、前記第２の座標系における前記各ピクセルの座標（Ｕ，Ｖ）を前記第３の座標系における前記各ピクセルの座標（Ｓ，Ｔ）に変換する。
この構成によれば、上位Ｍビット及び／又は上位Ｎビットをマスクする（「０」にする）ことにより、同じテクスチャパターンデータを使用して、容易にテクスチャの繰り返しマッピングを実現できる。その結果、メモリ容量の削減が可能となる。
本発明の第５の観点によれば、テクスチャ格納方法は、多角形状のグラフィック要素にマッピングされるテクスチャを複数の切片に分割するステップと、前記テクスチャが前記グラフィック要素にマッピングされる態様で配置される第１の二次元テクセル空間において少なくとも１つの前記切片を回転及び移動して、前記テクスチャがメモリに格納される態様で配置される第２の二次元テクセル空間に配置された全ての前記切片を、前記テクスチャを分割せずに二次元配列に格納した場合に要する記憶容量より少ない記憶容量の記憶領域に格納される二次元配列に格納するステップと、を含む。
本発明の第６の観点によれば、画像生成装置は、複数のグラフィック要素からなる、スクリーンに表示される画像を生成する画像生成装置であって、前記グラフィック要素にマッピングするためのテクスチャデータを外部のメモリから読み出すための要求を行うデータ要求手段と、前記メモリから読み出されたテクスチャデータを一時的に保管するテクスチャバッファ手段と、前記テクスチャバッファ手段の領域を分割し、新たに描画を開始する前記グラフィック要素にマッピングされるテクスチャデータを格納するために当該テクスチャデータのサイズに応じた領域の割り当てと、描画が完了した前記グラフィック要素にマッピングされているテクスチャデータを格納していた領域の解放と、を行うテクスチャバッファ管理手段と、を備える。
この構成によれば、テクスチャデータを毎回外部メモリ（例えば、図１の外部メモリ５０に相当）から読み出すのではなく、読み出したテクスチャデータをテクスチャバッファ手段に一時的に保持しておくことにより、テクスチャデータが再利用される場合に、無駄な外部メモリへのアクセスを避けることができる。また、テクスチャバッファ手段を必要とされるサイズに領域分割し、領域の確保と解放とを動的に行うことで、テクスチャバッファ手段の使用効率が高まり、テクスチャバッファ手段のためのハードウェアリソースが過剰に大きくなることを防ぐことができる。
この画像生成装置において、前記複数のグラフィックス要素は、二次元空間に投影された三次元立体の各面の形状を表すための多角形状のグラフィック要素および前記スクリーンの枠に平行な矩形状のグラフィック要素の任意の組み合わせからなり、前記テクスチャバッファ管理手段は、前記矩形状のグラフィック要素にマッピングされるテクスチャデータの格納領域として、当該テクスチャデータの一部分のみが格納可能なサイズを割り当て、前記多角形状のグラフィック要素にマッピングされるテクスチャデータの格納領域として、当該テクスチャデータの全体が格納可能なサイズを割り当てる。
この構成によれば、グラフィック要素の描画が水平ライン単位で順次的に行われる場合、矩形状のグラフィック要素（例えば、スプライト）にマッピングされるテクスチャデータは描画処理の進行に応じてテクスチャデータの水平ライン単位で外部メモリから読み出せばよいため、テクスチャバッファ手段に確保する領域のサイズを抑えることができる。一方、多角形状のグラフィック要素（例えば、ポリゴン）にマッピングされるテクスチャデータは、テクスチャデータ上のどの部分のデータが必要になるかを事前に予測することは難しいため、テクスチャデータ全体を格納可能なサイズの領域をテクスチャバッファ手段に確保する。
この画像生成装置において、前記データ要求手段は、前記矩形状のグラフィック要素にマッピングされるテクスチャデータを要求する際には、描画が進むに従ってマッピングするテクスチャデータを部分単位で要求し、前記多角形状のグラフィック要素にマッピングされるテクスチャデータを要求する際には、マッピングするテクスチャデータの全体を一括して要求する。
上記画像生成装置において、前記テクスチャバッファ管理手段は、前記テクスチャバッファ手段の各領域を管理する複数の構造体インスタンスを用いて前記テクスチャバッファ手段を管理する。
このように、構造体インスタンスを用いてテクスチャバッファ手段の各領域を管理することで、領域の確保・解放のための処理が簡便になる。
この画像生成装置において、前記複数の構造体インスタンスは、管理する領域のサイズに応じて複数のグループに分けられ、前記グループ内の前記構造体インスタンスは、リング状に互いがリンクされている。
この構成によれば、構造体インスタンス、ひいてはテクスチャバッファ手段の各領域の検索を容易に行うことができる。
この画像生成装置は、全ての前記構造体インスタンスを初期値に設定する構造体初期化手段をさらに備える。
このように、全ての構造体インスタンスを初期値に設定することにより、テクスチャバッファ手段の領域のフラグメンテーションを解消できる。フラグメンテーションを解消する手段としては、一般的なガーベージコレクションより小さい回路規模で達成できるだけでなく、処理時間も短い。また、グラフィック要素の描画のための処理であるため、１ビデオフレームまたは１フィールドの描画が完了する毎にテクスチャバッファ手段の全体を初期化するようにすれば、描画処理上全く問題がない。
この画像生成装置は、前記構造体初期化手段が、前記構造体インスタンスを初期値に設定するために前記構造体インスタンスにアクセスする間隔を設定する制御レジスタをさらに備え、前記制御レジスタには、外部からアクセス可能である。
このように、制御レジスタに外部からアクセス可能にして、構造体初期化手段がアクセスする間隔を自由に設定可能とすることで、システム全体のパフォーマンスの低下を引き起こすことなく、初期化処理を実行できる。なお、例えば、構造体配列を共有メモリ上に設ける場合には、構造体初期化手段からのアクセスが時間的に集中して行われると、他の機能ユニットからの共有メモリへのアクセスのレイテンシが大きくなり、システム全体のパフォーマンスを低下させる恐れがある。
上記画像生成装置において、前記テクスチャバッファ手段は、前記画像生成装置および外部の機能ユニットが共有する共有メモリ上に、任意の位置及び／又はサイズで構成可能である。
このように、テクスチャバッファ手段を、共有メモリ上に位置及びサイズとも自由に設定可能とすることで、必要とされるテクスチャバッファ領域が少ない場合には、余剰の領域を他の機能ユニットが用いることが可能になる。
【図面の簡単な説明】
【０００４】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
図１は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。
図２は、図１のＲＰＵ９の内部構成を示すブロック図である。
図３は、テクスチャマッピングモードのポリゴン構造体の構成を示す図である。
図４は、テクスチャアトリビュート構造体の構成を示す図である。
図５は、グーローシェーディングモードのポリゴン構造体の構成を示す図である。
図６（ａ）は、シザリングディセーブル時のスプライト構造体の構成を示す図である。図６（ｂ）は、シザリングイネーブル時のスプライト構造体の構成を示す図である。
図７は、図２のマージソータ１０６の入出力信号の説明図である。
図８は、図２のバーテックスエキスパンダ１１６の入出力信号の説明図である。
図９は、スプライトの頂点パラメータ算出の説明図である。
図１０は、図２のバーテックスソータ１１４の入出力信号の説明図である。
図１１は、ポリゴンの頂点パラメータ算出の説明図である。
図１２は、ポリゴンの頂点ソート処理の説明図である。
図１３は、ポリゴン／スプライト共通データＣＩの構成を示す図である。
図１４は、図２のスライサ１１８による、グーローシェーディングモードのポリゴンに対する処理の説明図である。
図１５は、図２のスライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理の説明図である。
図１６は、図２のスライサ１１８による、スプライトに対する処理の説明図である。
図１７は、図２のバイリニアフィルタ１３０によるバイリニアフィルタリングの説明図である。
図１８（ａ）は、繰り返しマッピングが行われる場合において、ＳＴ空間に配置されたテクスチャの例示図である。図１８（ｂ）は、繰り返しマッピングが行われる場合において、ＵＶ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図である。図１８（ｃ）は、テクスチャが繰り返してマッピングされた、ＸＹ空間におけるポリゴンの描画の例示図である。
図１９（ａ）は、ポリゴン構造体のメンバＭＡＰが「０」の場合において、ＳＴ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図ある。図１９（ｂ）は、ポリゴン構造体のメンバＭＡＰが「１」の場合において、ＳＴ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図ある。
図２０は、ＳＴ空間に配置された、スプライトにマッピングされるテクスチャの例示図ある。
図２１（ａ）は、ポリゴン構造体のメンバＭＡＰが「０」の場合において、１メモリワードに格納されるテクセルブロックの説明図である。図２１（ｂ）は、ポリゴン構造体のメンバＭＡＰが「１」の場合において、１メモリワードに格納されるテクセルブロックの説明図である。図２１（ｃ）は、１メモリワードへのテクセルブロックの格納状態の説明図である。
図２２は、図２のテクセルマッパ１２４の内部構成を示すブロック図である。
図２３は、図２２のテクセルアドレス算出部４０の内部構成を示すブロック図である。
図２４は、テクスチャパターンデータの分割格納が行われた場合のバイリニアフィルタリングの説明図である。
図２５（ａ）は、ボスＭＣＢ構造体の構成を示す図である。図２５（ｂ）は、一般ＭＣＢ構造体の構成を示す図である。
図２６は、ボスＭＣＢ構造体インスタンス［０］〜［７］が管理するテクスチャバッファ領域のサイズの説明図である。
図２７は、ボスＭＣＢ構造体インスタンス［０］〜［７］の初期値を示す図である。
図２８は、一般ＭＣＢ構造体インスタンス［８］〜［１２７］の初期値を示す図である。
図２９は、図２のメモリマネージャ１４０に関するＲＰＵ制御レジスタの一覧図である。
図３０は、テクスチャバッファ領域取得処理の流れの一部を示すフローチャートである。
図３１は、テクスチャバッファ領域取得処理の流れの他の一部を示すフローチャートである。
図３２は、テクスチャバッファ領域解放処理の流れを示すフローチャートである。
図３３は、ボスＭＣＢ構造体インスタンスのチェーンの構造と、ボスＭＣＢ構造体インスタンスのチェーンに一般ＭＣＢ構造体インスタンスが新たに挿入される場合の概念と、を示す図である。
【発明を実施するための最良の形態】
【０００５】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、信号のどのビットかを示す必要があるときは、信号名の後に、［ａ：ｂ］あるいは［ａ］を付する。［ａ：ｂ］は、その信号の第ａ番目のビットから第ｂ番目のビットを意味し、［ａ］は、その信号の第ａ番目のビットを意味する。「０ｂ」は２進数を、「０ｘ」は１６進数を意味する。数式中、「・」は乗算を意味する。
図１は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。図１に示すように、このマルチメディアプロセッサは、外部メモリインタフェース３、ＤＭＡＣ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）４、中央演算処理装置（以下、「ＣＰＵ」と呼ぶ。）５、ＣＰＵローカルＲＡＭ７、レンダリングプロセッシングユニット（以下、「ＲＰＵ」と呼ぶ。）９、カラーパレットＲＡＭ１１、サウンドプロセシングユニット（以下、「ＳＰＵ」と呼ぶ。）１３、ＳＰＵローカルＲＡＭ１５、ジオメトリエンジン（以下、「ＧＥ」と呼ぶ。）１７、Ｙソーティングユニット（以下、「ＹＳＵ」と呼ぶ。）１９、外部インタフェースブロック２１、メインＲＡＭアクセスアービタ２３、メインＲＡＭ２５、Ｉ／Ｏバス２７、ビデオＤＡＣ（ｄｉｇｉｔａｌ  ｔｏ  ａｎａｌｏｇ  ｃｏｎｖｅｒｔｅｒ）２９、オーディオＤＡＣブロック３１、及びＡ／Ｄコンバータ（以下、「ＡＤＣ」と呼ぶ。）３３を具備する。メインＲＡＭ２５及び外部メモリ５０を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
ＣＰＵ５は、メモリＭＥＭに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、ＣＰＵ５は、ＤＭＡＣ４にプログラム及びデータの転送要求を行うこともできるし、ＤＭＡＣ４を介さずに、外部メモリインタフェース３及び外部バス５１を通じて、外部メモリ５０から直接プログラムコードをフェッチし、外部メモリ５０に直接データアクセスを行うこともできる。
Ｉ／Ｏバス２７は、ＣＰＵ５をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット（外部メモリインタフェース３、ＤＭＡＣ４、ＲＰＵ９、ＳＰＵ１３、ＧＥ１７、ＹＳＵ１９、外部インタフェースブロック２１、及びＡＤＣ３３）の制御レジスタ及びローカルＲＡＭ７，１１，１５へのアクセスに用いられる。このようにして、これらの機能ユニットは、Ｉ／Ｏバス２７を通じて、ＣＰＵ５により制御される。
ＣＰＵローカルＲＡＭ７は、ＣＰＵ５専用のＲＡＭであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びＣＰＵ５のみが扱う変数の格納領域等として使用される。
本発明の特徴の１つであるＲＰＵ９は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、ＲＰＵ９は、ＹＳＵ１９によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインＲＡＭ２５から読み出し、所定の処理を実行して、スクリーン（表示画面）のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオＤＡＣ２９に出力される。また、ＲＰＵ９は、ＤＭＡＣ４に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる２次元の画素配列データであり、各画素データは、カラーパレットＲＡＭ１１のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。従って、テクスチャパターンデータは、テクセルデータの集合である。
ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。
ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報（スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関する情報及びグーローシェーディングモードでのカラーデータ（ＲＧＢのカラーコンポーネント）を含む。）であり、１つのポリゴン構造体インスタンスに１つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報（スクリーンにおける座標及びテクスチャパターンに関する情報を含む。）であり、１つのスプライト構造体インスタンスに１つのスプライトが対応している。
ビデオＤＡＣ２９は、アナログのビデオ信号を生成するためのデジタル／アナログ変換器である。ビデオＤＡＣ２９は、ＲＰＵ９から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）に出力する。
カラーパレットＲＡＭ１１は、本実施の形態では５１２色すなわち５１２エントリのカラーパレットからなる。ＲＰＵ９は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットＲＡＭ１１を参照し、テクスチャパターンデータを、カラーデータ（ＲＧＢのカラーコンポーネント）に変換する。
ＳＰＵ１３は、ＰＣＭ（ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ）波形データ（以下、「ウェーブデータ」と呼ぶ。）、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、ＳＰＵ１３は、最大６４チャンネル分のウェーブデータを生成して時分割多重化するとともに、最大６４チャンネル分のエンベロープデータを生成してチャンネルボリュームデータと乗算し、アンプリチュードデータを時分割多重化する。そして、ＳＰＵ１３は、メインボリュームデータ、時分割多重化されたウェーブデータ、及び時分割多重化されたアンプリチュードデータを、オーディオＤＡＣブロック３１に出力する。また、ＳＰＵ１３は、ＤＭＡＣ４に対して、ウェーブデータ及びエンベロープデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
オーディオＤＡＣブロック３１は、ＳＰＵ１３から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）のオーディオ入力端子（図示せず）に出力される。
ＳＰＵローカルＲＡＭ１５は、ＳＰＵ１３がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ（例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など）を格納する。
ＧＥ１７は、三次元イメージを表示するための幾何演算を実行する。具体的には、ＧＥ１７は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度／ポリゴン明度計算（ベクトル内積）、及びポリゴン裏面カリング処理（ベクトル外積）などの演算を実行する。
ＹＳＵ１９は、メインＲＡＭ２５に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール１〜４に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。
以下、ＹＳＵ１９によるソートルール１〜４について説明するが、その前に座標系について説明する。テレビジョンモニタ等のディスプレイ装置（図示せず）への実際の表示に用いられる二次元座標系をスクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向２０４８ピクセル×垂直方向１０２４ピクセルの２次元ピクセル配列から構成される。座標原点は左上にあり、右方向がＸ軸の正、下方向がＹ軸の正に相当する。ただし、実際に表示される領域は、スクリーン座標系の全空間ではなく一部の空間である。この表示領域をスクリーンと呼ぶことにする。ソートルール１〜４におけるＹ座標はスクリーン座標系の値である。
ソートルール１は、最小Ｙ座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Ｙ座標とは、ポリゴンの３頂点のＹ座標のうち、最も小さいＹ座標のことである。ソートルール２は、最小Ｙ座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。
ただし、ＹＳＵ１９は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Ｙ座標が異なっている場合でも、それらが同一であるとみなして、ソートルール１ではなく、ソートルール２に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Ｙ座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール３である。
インタレーススキャンの場合でも、ソートルール１〜３が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその奇数ラインの１つ前の偶数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その１つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその偶数ラインの１つ前の奇数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。これがソートルール４である。
スプライトに関するソートルール１〜４は、それぞれポリゴンに関するソートルール１〜４と同様である。ここで、スプライトの最小Ｙ座標は、スプライトの４頂点のＹ座標のうち、最も小さいＹ座標である。
外部メモリインタフェース３は、外部バス５１を介して、外部メモリ５０からのデータの読み出し、及び外部メモリ５０へのデータの書き込みを司る。この場合、外部メモリインタフェース３は、図示しないＥＢＩ優先順位テーブルに従って、ＣＰＵ５及びＤＭＡＣ４からの外部バスアクセス要求要因（外部バス５１へのアクセスを要求する要因）を調停して、いずれか１つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス５１へのアクセスを許可する。ＥＢＩ優先順位テーブルは、ＣＰＵ５からの複数種類の外部バスアクセス要求要因及びＤＭＡＣ４からの外部バスアクセス要求要因の優先順位を定めたテーブルである。
ＤＭＡＣ４は、メインＲＡＭ２５と、外部バス５１に接続された外部メモリ５０と、の間でＤＭＡ転送を行う。この場合、ＤＭＡＣ４は、図示しないＤＭＡ優先順位テーブルに従って、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ転送要求要因（ＤＭＡ転送を要求する要因）を調停して、いずれか１つのＤＭＡ転送要求要因を選択する。そして、外部メモリインタフェース３に対して、ＤＭＡ要求を行う。ＤＭＡ優先順位テーブルは、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ要求要因の優先順位を定めたテーブルである。
外部インタフェースブロック２１は、周辺装置５４とのインタフェースであり、２４チャンネルのプログラマブルなデジタル入出力（Ｉ／Ｏ）ポートを含む。２４チャンネルのＩ／Ｏポートの各々は、４チャンネル分のマウスインタフェース機能、４チャンネル分のライトガンインタフェース機能、２チャンネル分の汎用タイマ／カウンタ、１チャンネル分の調歩同期式シリアルインタフェース機能、および１チャンネル分の汎用パラレル／シリアル変換ポート機能のうち１または複数に内部接続されている。
ＡＤＣ３３は、４チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置５２から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジタルデータに変換する。
メインＲＡＭアクセスアービタ２３は、機能ユニット（ＣＰＵ５、ＲＰＵ９、ＧＥ１７、ＹＳＵ１９、ＤＭＡＣ４、及び外部インタフェースブロック２１（汎用パラレル／シリアル変換ポート））からのメインＲＡＭ２５へのアクセス要求を調停して、いずれかの機能ユニットにアクセス許可を出す。
メインＲＡＭ２５は、ＣＰＵ５のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインＲＡＭ２５は、ＣＰＵ５が他の機能ユニットに受け渡すデータの格納領域、ＲＰＵ９及びＳＰＵ１３が外部メモリ５０からＤＭＡによって取得したデータの格納領域、ＧＥ１７及びＹＳＵ１９の入力データ及び出力データの格納領域等としても使用される。
外部バス５１は、外部メモリ５０にアクセスするためのバスである。ＣＰＵ５およびＤＭＡＣ４から、外部メモリインタフェース３を介してアクセスされる。外部バス５１のアドレスバスは、３０ビットから成り、最大で１Ｇバイト（＝８Ｇビット）の外部メモリ５０を接続することができる。外部バス５１のデータバスは、１６ビットから成り、８ビット又は１６ビットのデータバス幅を持つ外部メモリ５０を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。
図２は、図１のＲＰＵ９の内部構成を示すブロック図である。図２に示すように、ＲＰＵ９は、ＲＰＵ内メインＲＡＭアクセスアービタ１００、ポリゴンプリフェッチャ１０２、スプライトプリフェッチャ１０４、マージソータ１０６、プリフェッチバッファ１０８、リサイクルバッファ１１０、デプスコンパレータ１１２、バーテックスソータ１１４、バーテックスエキスパンダ１１６、スライサ１１８、ピクセルステッパ１２０、ピクセルディザ１２２、テクセルマッパ１２４、テクスチャキャッシュブロック１２６、バイリニアフィルタ１３０、カラーブレンダ１３２、ラインバッファブロック１３４、ビデオエンコーダ１３６、ビデオタイミングジェネレータ１３８、メモリマネージャ１４０、及びＤＭＡＣインタフェース１４２を含む。ラインバッファブロック１３４は、各々スクリーンの１水平ラインに対応するラインバッファＬＢ１及びＬＢ２を含む。メモリマネージャ１４０は、ＭＣＢイニシャライザ１４１を含む。なお、図２では、説明の便宜のため、カラーパレットＲＡＭ１１をＲＰＵ９に含めて記載している。
ＲＰＵ内メインＲＡＭアクセスアービタ１００は、ポリゴンプリフェッチャ１０２、スプライトプリフェッチャ１０４、及びメモリマネージャ１４０からメインＲＡＭ２５へのアクセス要求を調停して、いずれかにアクセス要求の許可を出す。許可されたアクセス要求は、メインＲＡＭアクセスアービタ２３に出力され、マルチメディアプロセッサ１内の他の機能ユニットからのアクセス要求との間で調停が行われる。
ポリゴンプリフェッチャ１０２は、メインＲＡＭ２５から、ＹＳＵ１９によるソート後の各ポリゴン構造体インスタンスを取り込む。ポリゴンプリフェッチャ１０２には、ＹＳＵ１９から、パルスＰＰＬが入力される。ＹＳＵ１９は、１つのポリゴン構造体インスタンスのソートが確定するたびに、パルスＰＰＬを出力する。従って、ポリゴンプリフェッチャ１０２は、ポリゴン構造体配列の全ポリゴン構造体インスタンスのうち、いくつのポリゴン構造体インスタンスのソートが完了したかを知ることができる。
このため、ポリゴンプリフェッチャ１０２は、全ポリゴン構造体インスタンスのソートの完了を待つことなく、１つのポリゴン構造体インスタンスのソートが確定するたびに、その都度、ポリゴン構造体インスタンスを取得できる。その結果、フレームの表示中に、当該フレームのためのポリゴン構造体インスタンスのソートを行うことができる。また、インタレーススキャンによる表示を行う場合にも、フィールドの表示中に当該フィールドのためのソートを行っても、正しい描画結果が得られる。なお、ポリゴンプリフェッチャ１０２は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、フレームおよびフィールドの切り替わりを知ることができる。
スプライトプリフェッチャ１０４は、メインＲＡＭ２５から、ＹＳＵ１９によるソート後の各スプライト構造体インスタンスを取り込む。スプライトプリフェッチャ１０４には、ＹＳＵ１９から、パルスＳＰＬが入力される。ＹＳＵ１９は、１つのスプライト構造体インスタンスのソートが確定するたびに、パルスＳＰＬを出力する。従って、スプライトプリフェッチャ１０４は、スプライト構造体配列の全スプライト構造体インスタンスのうち、いくつのスプライト構造体インスタンスのソートが完了したかを知ることができる。
このため、スプライトプリフェッチャ１０４は、全スプライト構造体インスタンスのソートの完了を待つことなく、１つのスプライト構造体インスタンスのソートが確定するたびに、その都度、スプライト構造体インスタンスを取得できる。その結果、フレームの表示中に、当該フレームのためのスプライト構造体インスタンスのソートを行うことができる。また、インタレーススキャンによる表示を行う場合にも、フィールドの表示中に当該フィールドのためのソートを行っても、正しい描画結果が得られる。なお、スプライトプリフェッチャ１０４は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、フレームおよびフィールドの切り替わりを知ることができる。
さて、マージソータ１０６の説明に移る前に、ポリゴン構造体、テクスチャアトリビュート構造体、およびスプライト構造体の構成を説明する。本実施の形態では、ポリゴンは三角形とする。
図３は、テクスチャマッピングモードのポリゴン構造体の構成を示す図である。図３に示すように、本実施の形態では、このポリゴン構造体は、１２８ビットで構成されている。このポリゴン構造体のメンバＴｙｐｅは、ポリゴンの描画モードを示し、テクスチャマッピングモードのポリゴンに対しては「０」が設定される。メンバＡｙ，Ａｘ，Ｂｙ，Ｂｘ，Ｃｙ及びＣｘは、それぞれ、ポリゴンの、頂点ＡのＹ座標、頂点ＡのＸ座標、頂点ＢのＹ座標、頂点ＢのＸ座標、頂点ＣのＹ座標、及び頂点ＣのＸ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＢｗ，Ｃｗ，Ｌｉｇｈｔ及びＴｓｅｇｍｅｎｔは、それぞれ、ポリゴンの、頂点Ｂのパースペクティブコレクト用パラメータ（＝Ａｚ／Ｂｚ）、頂点Ｃのパースペクティブコレクト用パラメータ（＝Ａｚ／Ｃｚ）、明度、及びテクスチャパターンデータの格納位置情報を示す。
メンバＴａｔｔｒｉｂｕｔｅ，Ｍａｐ，Ｆｉｌｔｅｒ，Ｄｅｐｔｈ及びＶｉｅｗｐｏｒｔは、それぞれ、テクスチャアトリビュート構造体のインデックス、テクスチャパターンデータのフォーマット種別、バイリニアフィルタリングあるいはニアレストネイバーのいずれかを示すフィルタリングモード、デプス値、及びシザリングのビューポート指定情報を示す。
バイリニアフィルタリング及びニアレストネイバーについては後述する。デプス値（「表示深度情報」と呼ぶこともある。）は、描画対象のピクセルが重なった場合、どのピクセルを先に描画するかを示す情報であり、その値が大きいほど先に（奥に）描画され、その値が小さいほど後で（手前に）描画される。シザリングは、指定されたビューポートの外側にあるポリゴン及び／又はスプライトを表示しないようにするとともに、ポリゴン及び／又はスプライトのビューポートからはみ出した部分を切り取って表示しないようにする機能である。
以上が、テクスチャマッピングモードのポリゴン構造体の各メンバの内容であり、１つのポリゴン構造体のインスタンス（ポリゴン構造体に代入された値）により１つのポリゴンが定義される。
図４は、テクスチャアトリビュート構造体の構成を示す図である。図４に示すように、本実施の形態では、このテクスチャアトリビュート構造体は、３２ビットで構成されている。このテクスチャアトリビュート構造体のメンバＷｉｄｔｈ，Ｈｅｉｇｈｔ，Ｍ，Ｎ，Ｂｉｔ及びＰａｌｅｔｔｅは、それぞれ、テクスチャの幅（単位：テクセル数）より「１」小さい値、テクスチャの高さ（単位：テクセル数）より「１」小さい値、「Ｗｉｄｔｈ」の上位からのマスクビット数、「Ｈｅｉｇｈｔ」の上位からのマスクビット数、カラーモード（１ピクセル当りのビット数−１）、及びパレットブロックナンバを示す。カラーパレットの５１２色のエントリは、選択されたカラーモードに応じて複数のブロックに分割されており、メンバＰａｌｅｔｔｅにより、使用するパレットブロックが示される。
テクスチャアトリビュート構造体のインスタンスは、描画ポリゴン毎に１つずつ用意されるものではなく、６４個のテクスチャアトリビュート構造体インスタンスが、テクスチャマッピングモードの全ポリゴン構造体インスタンス及び全スプライト構造体インスタンスで共有される。
図５は、グーローシェーディングモードのポリゴン構造体の構成を示す図である。図５に示すように、本実施の形態では、このポリゴン構造体は、１２８ビットで構成されている。このポリゴン構造体のメンバＴｙｐｅは、ポリゴンの描画モードを示し、グーローシェーディングモードのポリゴンに対しては「１」が設定される。メンバＡｙ，Ａｘ，Ｂｙ，Ｂｘ，Ｃｙ及びＣｘは、それぞれ、ポリゴンの、頂点ＡのＹ座標、頂点ＡのＸ座標、頂点ＢのＹ座標、頂点ＢのＸ座標、頂点ＣのＹ座標、及び頂点ＣのＸ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＡｃ，Ｂｃ，及びＣｃは、それぞれ、ポリゴンの、頂点Ａのカラーデータ（ＲＧＢ各５ビット）、頂点Ｂのカラーデータ（ＲＧＢ各５ビット）、及び頂点Ｃのカラーデータ（ＲＧＢ各５ビット）を示す。
メンバＤｅｐｔｈ，Ｖｉｅｗｐｏｒｔ及びＮａｌｐｈａは、それぞれ、デプス値、シザリングのビューポート指定情報、及びアルファブレンディングで使用する（１−α）を示す。（１−α）は透明度を示し、「０００（二進数）」が透明度０％、すなわち完全不透明を表し、「１１１（二進数）」が透明度８７．５％を表す。
以上が、グーローシェーディングモードのポリゴン構造体の各メンバの内容であり、１つのポリゴン構造体のインスタンス（ポリゴン構造体に代入された値）により１つのポリゴンが定義される。
図６（ａ）は、シザリングディセーブル時のスプライト構造体の構成を示す図、図６（ｂ）は、シザリングイネーブル時のスプライト構造体の構成を示す図である。図６（ａ）に示すように、本実施の形態では、シザリングディセーブル時のスプライト構造体は、６４ビットで構成されている。このスプライト構造体のメンバＡｘ及びＡｙは、それぞれ、スプライトの左上のＸ座標及びＹ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＤｅｐｔｈ，Ｆｉｌｔｅｒ及びＴａｔｔｒｉｂｕｔｅは、それぞれ、デプス値、フィルタリングモード（バイリニアフィルタリングあるいはニアレストネイバー）、及びテクスチャアトリビュート構造体のインデックスを示す。メンバＺｏｏｍＸ，ＺｏｏｍＹ及びＴｓｅｇｍｅｎｔは、それぞれ、Ｘ軸方向のスプライト拡大率（拡縮率）、Ｙ軸方向のスプライト拡大率（拡縮率）、及びテクスチャパターンデータの格納位置情報を示す。
図６（ｂ）に示すように、本実施の形態では、シザリングイネーブル時のスプライト構造体は、６４ビットで構成されている。このスプライト構造体のメンバＡｘ及びＡｙは、それぞれ、スプライトの左上のＸ座標及びＹ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＤｅｐｔｈ，Ｓｃｉｓｓｏｒ，Ｖｉｅｗｐｏｒｔ，Ｆｉｌｔｅｒ及びＴａｔｔｒｉｂｕｔｅは、それぞれ、デプス値、シザリング適用フラグ、シザリングのビューポート指定情報、フィルタリングモード（バイリニアフィルタリングあるいはニアレストネイバー）、及びテクスチャアトリビュート構造体のインデックスを示す。メンバＺｏｏｍＸ，ＺｏｏｍＹ及びＴｓｅｇｍｅｎｔは、それぞれ、Ｘ軸方向のスプライト拡大率（拡縮率）、Ｙ軸方向のスプライト拡大率（拡縮率）、及びテクスチャパターンデータの格納位置情報を示す。メンバＳｃｉｓｓｏｒの設定（オン／オフ）を変えることで、スプライトごとにシザリングの適用の有無を制御できる。
シザリングイネーブル時のスプライト構造体においては、シザリングディセーブル時のスプライト構造体に比べ、Ｘ座標及びＹ座標のビット数がそれぞれ１ビット少ない。シザリングイネーブル時にスプライトがスクリーンに配置される際には、後述のバーテックスエキスパンダ１１６によって、Ｘ座標に５１２ピクセル分のオフセット、Ｙ座標に２５６ピクセル分のオフセットが加えられる。また、デプス値のビット数も１ビット少ないが、シザリングイネーブル時には、後述のテクセルマッパ１２４によって、構造体に格納されているデプス値のＬＳＢ側に１ビットの「０」が付加され、シザリングディセーブル時と同様に８ビットのデプス値として扱われる。
以上が、シザリングディセーブル時及びシザリングイネーブル時のスプライト構造体の各メンバの内容であり、１つのスプライト構造体のインスタンス（スプライト構造体に代入された値）により１つのスプライトが定義される。スプライトのテクスチャアトリビュート構造体の構成は、図４のポリゴンのテクスチャアトリビュート構造体の構成と同じである。テクスチャアトリビュート構造体のインスタンスは、描画スプライト毎に１つずつ用意されるものではなく、６４個のテクスチャアトリビュート構造体インスタンスが、テクスチャマッピングモードの全ポリゴン構造体インスタンス及び全スプライト構造体インスタンスで共有される。
図２に戻って、マージソータ１０６は、ポリゴンプリフェッチャ１０２及びスプライトプリフェッチャ１０４から、それぞれ、ポリゴン構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンス、並びに、スプライト構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンスを受け取り、上述したＹＳＵ１９によるソートルール１〜４と同様の後述のソートルール１〜４（以下、「マージソートルール１〜４」と呼ぶ。）に従って、マージソートを実行し、結果をプリフェッチバッファ１０８に送出する。ここで、ポリゴン構造体インスタンスの各々、およびスプライト構造体インスタンスの各々は、既にＹＳＵ１９によって、ソートルール１〜４に基づく描画処理順に並べ替えられていることに注意されたい。以下、マージソータ１０６の詳細を説明する。
図７は、図２のマージソータ１０６の入出力信号の説明図である。図７を参照して、ポリゴンプリフェッチャ１０２は、ポリゴン有効ビットレジスタ６０、ポリゴンバッファ６２、及びポリゴンアトリビュートバッファ６４を含む。スプライトプリフェッチャ１０４は、スプライト有効ビットレジスタ６６、スプライトバッファ６８、及びスプライトアトリビュートバッファ７０を含む。
ポリゴン有効ビットレジスタ６０は、ポリゴン構造体インスタンスの有効（１）／無効（０）を示すポリゴン有効ビット（１ビット）を格納する。ポリゴンバッファ６２は、メインＲＡＭ２５から転送されたポリゴン構造体インスタンス（１２８ビット）を格納する。ポリゴンアトリビュートバッファ６４は、メインＲＡＭ２５から転送されたポリゴン用のテクスチャアトリビュート構造体インスタンス（３２ビット）を格納する。
スプライト有効ビットレジスタ６６は、スプライト構造体インスタンスの有効（１）／無効（０）を示すスプライト有効ビット（１ビット）を格納する。スプライトバッファ６８は、メインＲＡＭ２５から転送されたスプライト構造体インスタンス（６４ビット）を格納する。スプライトアトリビュートバッファ７０は、メインＲＡＭ２５から転送されたスプライト用のテクスチャアトリビュート構造体インスタンス（３２ビット）を格納する。
マージソータ１０６に対する入出力信号を説明する。ビデオタイミングジェネレータ１３８から与えられる表示領域上端ライン番号信号ＬＮは、ＲＰＵ９がポリゴン及び／又はスプライトの描画を開始する水平ライン番号（つまり、スクリーンの先頭ライン番号）を示す。この値ＬＮは、ＣＰＵ５によってＲＰＵ９に設けられた表示領域上端ライン制御レジスタ（図示せず）に設定される。
ビデオタイミングジェネレータ１３８から与えられるインタレース／ノンインタレース識別信号ＩＮＩは、ＲＰＵ９で行われている現在の描画処理が、インタレーススキャン用のものかノンインタレーススキャン用のものかを示す。この値ＩＮＩは、ＣＰＵ５によって、ＲＰＵ９に設けられたＲＰＵ制御レジスタ（図示せず）のうちの１ビットに設定される。
ビデオタイミングジェネレータ１３８から与えられる奇数フィールド／偶数フィールド識別信号ＯＥＩは、現在描画処理中のフィールドが、奇数フィールドか偶数フィールドかを示す。
マージソータ１０６は、プリフェッチバッファ１０８に、ポリゴン／スプライトデータＰＳＤ、テクスチャアトリビュート構造体インスタンスＴＡＩ、及びポリゴン／スプライト識別信号ＰＳＩを出力する。
ポリゴン／スプライトデータＰＳＤ（１２８ビット）は、ポリゴン構造体インスタンスあるいはスプライト構造体インスタンスのいずれかである。ポリゴン／スプライトデータＰＳＤがスプライト構造体インスタンスである場合は、有効データがＬＳＢから詰められ、上位６４ビットは「０」を示す。また、後述するデプス値の比較処理においては、ポリゴン構造体インスタンスのデプス値（１２ビット）とスプライト構造体インスタンスのデプス値（８ビット）とは、ビット数が異なるので、スプライト構造体インスタンスのデプス値のＬＳＢ側に「０」を連接し、ポリゴン構造体インスタンスのデプス値と同じビット数（１２ビット）に揃えられる。但し、この１２ビットに揃えられたデプス値は後段に出力されない。
テクスチャアトリビュート構造体インスタンスＴＡＩ（３２ビット）は、ポリゴン／スプライトデータＰＳＤがポリゴン構造体インスタンスの場合は、当該インスタンスに付随するテクスチャアトリビュート構造体インスタンスであり、ポリゴン／スプライトデータＰＳＤがスプライト構造体インスタンスの場合は、当該インスタンスに付随するテクスチャアトリビュート構造体インスタンスである。ただし、ポリゴン／スプライトデータＰＳＤが、グーローシェーディングモードのポリゴン構造体インスタンスである場合、テクスチャアトリビュート構造体インスタンスは付随しないので、この信号ＴＡＩの値は全て「０」を示す。
ポリゴン／スプライト識別信号ＰＳＩは、ポリゴン／スプライトデータＰＳＤが、ポリゴン構造体インスタンスなのかスプライト構造体インスタンスなのかを示す信号である。
マージソータ１０６の動作を説明する。マージソータ１０６は、先ず、ポリゴン有効ビットレジスタ６０に保持されたポリゴン有効ビットおよびスプライト有効ビットレジスタ６６に保持されたスプライト有効ビットをチェックする。そして、マージソータ１０６は、ポリゴン有効ビット及びスプライト有効ビットの双方の値が「０（無効）」の場合は、ポリゴンプリフェッチャ１０２のバッファ６２及び６４並びにスプライトプリフェッチャ１０４のバッファ６８及び７０からのデータを取得しない。
マージソータ１０６は、ポリゴン有効ビット及びスプライト有効ビットのどちらか一方の値が「１（有効）」の場合は、「１」を示している方のバッファ６２及び６４あるいは６８及び７０からデータを取得し、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩとして、プリフェッチバッファ１０８に出力する。
マージソータ１０６は、ポリゴン有効ビット及びスプライト有効ビットの双方の値が「１」の場合は、次に説明するマージソートルール１〜４に従って、ポリゴンプリフェッチャ１０２のバッファ６２及び６４あるいはスプライトプリフェッチャ１０４のバッファ６８及び７０からデータを取得し、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩとして、プリフェッチバッファ１０８に出力する。マージソートルール１〜４の詳細は次の通りである。
まず、ビデオタイミングジェネレータ１３８から与えられるインタレース／ノンインタレース識別信号ＩＮＩがノンインタレースを示している場合を説明する。マージソータ１０６は、ポリゴン構造体インスタンスに含まれる３頂点のＹ座標（Ａｙ，Ｂｙ，Ｃｙ）の内で最も小さい値と、スプライト構造体インスタンスに含まれるＹ座標（Ａｙ）と、を比較し、描画処理順で先に出現する（つまり、Ｙ座標が小さい方の）ポリゴン構造体インスタンスあるいはスプライト構造体インスタンスを選択する（マージソートルール１：ＹＳＵ１９によるソートルール１に相当）。Ｙ座標はスクリーン座標系の値である。
ただし、双方のＹ座標が同じ値を示している場合は、マージソータ１０６は、ポリゴン構造体インスタンスに含まれるデプス値Ｄｅｐｔｈと、スプライト構造体インスタンスに含まれるデプス値Ｄｅｐｔｈと、を比較し、デプス値が大きい方の（つまり、より奥に描画される方の）ポリゴン構造体インスタンスあるいはスプライト構造体インスタンスを選択する（マージソートルール２：ＹＳＵ１９によるソートルール２に相当）。この場合、上記したように、スプライト構造体インスタンスに含まれるデプス値のビット数（８ビット）をポリゴン構造体インスタンスに含まれるデプス値のビット数（１２ビット）に揃えた後に比較を行う。
また、Ｙ座標の値が、表示領域上端ライン番号信号ＬＮに相当するＹ座標より小さい場合は、マージソータ１０６は、そのＹ座標の値を表示領域上端ライン番号信号ＬＮに相当するＹ座標の値に置き換えて（マージソートルール３：ＹＳＵ１９によるソートルール３に相当）、マージソートルール１及び２に従って、マージソートを行う。
次に、インタレース／ノンインタレース識別信号ＩＮＩがインタレースを示している場合を説明する。マージソータ１０６は、奇数フィールド／偶数フィールド識別信号ＯＥＩから、表示対象となるフィールドを判別し、当該フィールドで描画されない水平ラインに相当するＹ座標の値は、次の水平ラインに相当するＹ座標と同じ値として扱い（マージソートルール４：ＹＳＵ１９によるソートルール４に相当）、上記マージソートルール１〜３に従って、マージソートを行う。
図２に戻って、プリフェッチバッファ１０８は、マージソータ１０６から、マージソート後の構造体インスタンス（つまり、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩ）を順次読み込み、読み込んだ順番で構造体インスタンスを出力するＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）構造のバッファである。つまり、プリフェッチバッファ１０８には、マージソータ１０６により並べ替えられた順番で構造インスタンスが格納される。そして、格納された構造インスタンスは、対応するポリゴンあるいはスプライトの表示のための描画サイクルにおいて、格納された順番で出力される。なお、プリフェッチバッファ１０８は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、描画中の水平ラインを知ることができる。つまり、描画サイクルの切り替わりを知ることができる。本実施の形態では、例えば、プリフェッチバッファ１０８は、物理的にはリサイクルバッファ１１０とバッファを共有することが可能であり、リサイクルバッファ１１０のエントリ数を含め、（１２８ビット＋３２ビット）×１２８エントリとする。ちなみに、ポリゴン／スプライト識別信号ＰＳＩは、ポリゴン／スプライトデータＰＳＤの第７９ビットの空白ビットと置き換えられる。
リサイクルバッファ１１０は、次の描画サイクルでも使用される（つまり、再利用できる）構造体インスタンス（つまり、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩ）を格納するＦＩＦＯ構造のバッファである。従って、リサイクルバッファ１１０に格納された構造体インスタンスは、次の描画サイクルで使用される。１描画サイクルは、１水平ラインの表示を行うための描画期間である。つまり、１描画サイクルは、ラインバッファＬＢ１あるいはＬＢ２のいずれかに、対応する水平ラインの表示のために必要な全てのデータの描画が行われる期間である。本実施の形態では、例えば、リサイクルバッファ１１０は、物理的にはプリフェッチバッファ１０８とバッファを共有することが可能であり、プリフェッチバッファ１０８のエントリ数を含め、（１２８ビット＋３２ビット）×１２８エントリとする。
デプスコンパレータ１１２は、プリフェッチバッファ１０８の先頭の構造体インスタンスに含まれるデプス値と、リサイクルバッファ１１０の先頭の構造体インスタンスに含まれるデプス値と、を比較して、より大きなデプス値を持つ（つまり、より奥に表示されるべき）構造体インスタンスを選択して、後段に出力する。この場合、デプスコンパレータ１１２は、選択した構造体インスタンスがポリゴン構造体インスタンスの場合は、バーテックスソータ１１４へ出力し、スプライト構造体インスタンスの場合は、バーテックスエキスパンダ１１６に出力する。また、デプスコンパレータ１１２は、選択した構造体インスタンスをスライサ１１８に出力する。なお、デプスコンパレータ１１２は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、描画中の水平ラインを知ることができる。つまり、描画サイクルの切り替わりを知ることができる。
ここで、デプスコンパレータ１１２により選択された構造体インスタンスが、次の描画サイクルでも使用される（つまり、次の水平ラインの描画にも使用される）場合は、スライサ１１８により、当該構造体インスタンスがリサイクルバッファ１１０に出力され書き込まれる。ただし、デプスコンパレータ１１２により選択された構造体インスタンスが、次の描画サイクルで使用されない（つまり、次の水平ラインの描画には使用されない）場合は、リサイクルバッファ１１０には書き込まれない。
従って、リサイクルバッファ１１０には、現ラインの描画に使用される構造体インスタンス、及び次ラインの描画に使用される構造体インスタンスが、現ラインの描画順、及び次ラインの描画順に格納される。
図８は、図２のバーテックスエキスパンダ１１６の入出力信号の説明図である。デプスコンパレータ１１２から出力される構造体インスタンスに含まれるポリゴン／スプライトデータＰＳＤのサイズは１２８ビットであるが、バーテックスエキスパンダ１１６に入力されるポリゴン／スプライトデータＰＳＤはスプライト構造体インスタンスであるため、１２８ビットのポリゴン／スプライトデータＰＳＤの下位６４ビットのみが入力される。図８を参照して、バーテックスエキスパンダ１１６は、受け取ったスプライト構造体インスタンスに含まれる、スプライトの左上の頂点座標（Ａｘ，Ａｙ）、Ｙ軸方向の拡大率ＺｏｏｍＹ、及びＸ軸方向の拡大率ＺｏｏｍＸ、並びに、当該スプライト構造体インスタンスに付随するテクスチャアトリビュート構造体インスタンスに含まれる、テクスチャパターンの幅より「１」小さい値Ｗｉｄｔｈ及び高さより「１」小さい値Ｈｅｉｇｈｔに基づいて、当該スプライトの頂点の座標（スクリーン座標系におけるＸＹ座標およびＵＶ座標系におけるＵＶ座標）を算出し、ポリゴン／スプライト共通データＣＩとしてスライサ１１８へ出力する。スクリーン座標系は上述の通りであり、ＵＶ座標系は、テクスチャパターンデータを配置する二次元直交座標系である。以下、スプライトの頂点のパラメータ（ＸＹＵＶ座標）算出の詳細を説明する。
図９は、スプライトの頂点パラメータ算出の説明図である。図９（ａ）には、ＵＶ空間におけるスプライトのテクスチャパターンデータ（文字Ａ）が例示される。この図において、１つの小矩形は、１テクセルを示す。そして、テクセルの４頂点のうち、左上角のＵＶ座標が、そのテクセルの位置を示す。
この図に示すように、テクスチャの幅（水平方向のテクセル数）を「Ｗｉｄｔｈ＋１」、テクスチャの高さを「Ｈｅｉｇｈｔ＋１」とすると、テクスチャの左上，右上，左下の各頂点のＵＶ座標がそれぞれ（０，０）、（Ｗｉｄｔｈ＋１，０）、及び（０，Ｈｅｉｇｈｔ＋１）となるように、スプライトのテクスチャパターンデータは、ＵＶ空間に配置される。ここで、「Ｗｉｄｔｈ」および「Ｈｅｉｇｈｔ」の値は、テクスチャアトリビュート構造体のメンバＷｉｄｔｈおよびＨｅｉｇｈｔに格納される値である。すなわち、これらのメンバには、テクスチャの幅、高さより１小さい値が格納される。
図９（ｂ）には、ＸＹ空間におけるスプライトの描画例が示される。この図において、１つの小矩形は、ピクセルの集合からなり、図９（ａ）の１テクセルに対応する。スプライトの左上、右上、及び左下の各頂点は、それぞれ頂点０、頂点１、及び頂点２として扱われる。つまり、各頂点は、描画の際の出現順が早いほうから、頂点０、頂点１、及び頂点２として扱われる。各頂点０〜２のＸ座標、Ｙ座標、Ｕ座標、及びＶ座標を、Ｘ＊、Ｙ＊、ＵＢ＊、及びＶＲ＊（「＊」は、「頂点」に付けた添え字であり、＊＝０，１，２）とすると、それぞれの値は以下のようにして求められる。
頂点０については次の通りである。
Ｘ０＝Ａｘ
Ｙ０＝Ａｙ
ＵＢ０＝０
ＶＲ０＝０
ここで、Ａｘ及びＡｙは、それぞれスプライト構造体インスタンスのメンバ「Ａｘ」及び「Ａｙ」に格納された値である。このように、スプライト構造体インスタンスのメンバ「Ａｘ」及び「Ａｙ」の値が、スプライトの頂点０のＸ座標及びＹ座標となる。
頂点１については次の通りである。
Ｘ１＝Ａｘ＋ＺｏｏｍＸ・（Ｗｉｄｔｈ＋１）
Ｙ１＝Ａｙ
ＵＢ１＝Ｗｉｄｔｈ
ＶＲ１＝０
頂点２については次の通りである。
Ｘ２＝Ａｘ
Ｙ２＝Ａｙ＋ＺｏｏｍＹ・（Ｈｅｉｇｈｔ＋１）
ＵＢ２＝０
ＶＲ２＝Ｈｅｉｇｈｔ
なお、スプライトの右下の頂点３のＸＹＵＶ座標は、他の３頂点のＸＹＵＶ座標から得られるため、ここでは算出されない。
ここで、幅Ｗｉｄｔｈ及び高さＨｅｉｇｈｔは、それぞれ８ビットであるところ、ＵＢ＊及びＶＲ＊（＊＝０，１，２）の各パラメータは、符号なしで、整数部１０ビット、小数部６ビットの１６ビット固定小数点数であるため、バーテックスエキスパンダ１１６は、演算結果のＬＳＢ側に６ビットの「０」、ＭＳＢ側に１または２ビットの「０」を連接して、１６ビット固定小数点数ＵＢ＊及びＶＲ＊とする。
バーテックスエキスパンダ１１６は、演算結果、つまり、各頂点０〜２のＸＹＵＶ座標を、ポリゴン／スプライト共通データＣＩとして、スライサ１１８に出力する。ただし、ポリゴン／スプライト共通データＣＩの後述のフィールドＷＧ＊（＊＝０，１，２）は、常に「０ｘ００４０」（＝１．０）として出力される。後述するが、バーテックスエキスパンダ１１６が出力するポリゴン／スプライト共通データＣＩの構造（形式）は、バーテックスソータ１１４が出力するポリゴン／スプライト共通データＣＩの構造（形式）と同じである。
図１０は、図２のバーテックスソータ１１４の入出力信号の説明図である。図１０を参照して、バーテックスソータ１１４は、受け取ったポリゴン構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンスから、ポリゴンの各頂点のパラメータ（ＸＹＵＶ座標、パースペクティブコレクト用パラメータ、及びカラーデータ）を取得及び算出し、各頂点のパラメータをＹ座標が小さい順に並べ替えて、ポリゴン／スプライト共通データＣＩとしてスライサ１１８へ出力する。以下、ポリゴンの頂点のパラメータ算出の詳細を説明する。まず、ポリゴンが、テクスチャマッピングの対象である場合について説明する。
図１１は、ポリゴンの頂点パラメータ算出の説明図である。図１１（ａ）には、ＵＶ空間におけるポリゴンのテクスチャパターンデータ（文字Ａ）が例示される。この図において、１つの小矩形は、１テクセルを示す。そして、テクセルの４頂点のうち、左上角のＵＶ座標が、そのテクセルの位置を示す。
本実施の形態では、ポリゴンが三角形の例を挙げており、ポリゴンにマッピングされるテクスチャ（この例では四角形）は、１つの頂点がＵＶ座標の（０，０）に、残り２つの頂点がそれぞれＵ軸上およびＶ軸上に配置される。従って、テクスチャの幅（水平方向のテクセル数）を「Ｗｉｄｔｈ＋１」、テクスチャの高さを「Ｈｅｉｇｈｔ＋１」とすると、テクスチャの左上，右上，左下の各頂点のＵＶ座標がそれぞれ（０，０）、（Ｗｉｄｔｈ＋１，０）、及び（０，Ｈｅｉｇｈｔ＋１）となるように、ポリゴンのテクスチャパターンデータは、ＵＶ空間に配置される。
ここで、「Ｗｉｄｔｈ」および「Ｈｅｉｇｈｔ」の値は、テクスチャアトリビュート構造体のメンバＷｉｄｔｈおよびＨｅｉｇｈｔに格納される値である。すなわち、これらのメンバには、テクスチャの幅、高さより１小さい値が格納される。なお、テクスチャデータは、メモリＭＥＭに格納される際に、その一部が折り返されて格納される場合があるが、ここでは説明を省略する。
図１１（ｂ）には、ＸＹ空間におけるポリゴンの描画例が示される。この図において、１つの小矩形は、ピクセルの集合からなり、図１１（ａ）の１テクセルに対応する。同様に、１つの小三角形は、ピクセルの集合からなり、図１１（ａ）の１テクセルに対応する。
ポリゴンの３頂点Ａ，Ｂ及びＣのＸＹ座標は、それぞれ（Ａｘ，Ａｙ）、（Ｂｘ，Ｂｙ）及び（Ｃｘ，Ｃｙ）で表される。「Ａｘ」、「Ａｙ」、「Ｂｘ」、「Ｂｙ」、「Ｃｘ」、及び「Ｃｙ」は、それぞれポリゴン構造体インスタンスのメンバＡｘ、Ａｙ、Ｂｘ、Ｂｙ、Ｃｘ、及びＣｙに格納された値である。このように、ポリゴン構造体インスタンスのメンバＡｘ及びＡｙの値が、ポリゴンの頂点ＡのＸ座標及びＹ座標、メンバＢｘ及びＢｙの値が、ポリゴンの頂点ＢのＸ座標及びＹ座標、メンバＣｘ及びＣｙの値が、ポリゴンの頂点ＣのＸ座標及びＹ座標となる。
そして、ポリゴンの頂点Ａは、図１１（ａ）のＵＶ座標の（０，０）に関連付けられ、頂点Ｂは、ＵＶ座標の（Ｗｉｄｔｈ，０）に関連付けられ、頂点Ｃは、ＵＶ座標の（０，Ｈｅｉｇｈｔ）に関連付けられる。従って、バーテックスソータ１１４は、スプライトの場合と同様にして、頂点Ａ，Ｂ、及びＣのＵＶ座標（Ａｕ，Ａｖ）、（Ｂｕ，Ｂｖ）、及び（Ｃｕ，Ｃｖ）を算出する。
頂点Ａについては次の通りである。
Ａｕ＝０
Ａｖ＝０
頂点Ｂについては次の通りである。
Ｂｕ＝Ｗｉｄｔｈ
Ｂｖ＝０
頂点Ｃについては次の通りである。
Ｃｕ＝０
Ｃｖ＝Ｈｅｉｇｈｔ
そして、バーテックスソータ１１４は、頂点Ａ、Ｂ、及びＣのＵＶ座標（Ａｕ，Ａｖ）、（Ｂｕ，Ｂｖ）、及び（Ｃｕ，Ｃｖ）に、パースペクティブコレクト（遠近補正）を施す。パースペクティブコレクトを施した後の頂点Ａ、Ｂ、及びＣのＵＶ座標は、（Ａｕ・Ａｗ，Ａｖ・Ａｗ）、（Ｂｕ・Ｂｗ，Ｂｖ・Ｂｗ）、及び（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ）となる。
ここで、「Ｗｉｄｔｈ」及び「Ｈｅｉｇｈｔ」は、それぞれテクスチャアトリビュート構造体インスタンスのメンバＷｉｄｔｈ及びＨｅｉｇｈｔに格納された値である。また、「Ｂｗ」及び「Ｃｗ」は、それぞれポリゴン構造体インスタンスのメンバＢｗ及びＣｗに格納された値である。後述のように、頂点Ａのパースペクティブコレクト用パラメータＡｗは、常に「１」であるため、「Ａｗ」はポリゴン構造体インスタンスには格納されていない。
次に、バーテックスソータ１１４は、頂点Ａ，Ｂ及びＣのパラメータ（ＸＹ座標、パースペクティブコレクト後のＵＶ座標、及びパースペクティブコレクト用パラメータ）をＹ座標が小さい順にソート（並べ替え）する。ソート後の頂点は、Ｙ座標が小さい順に頂点０，１，２として扱われる。図１１（ｂ）の例では、頂点Ａが頂点１に、頂点Ｂが頂点０に、頂点Ｃが頂点２になっている。バーテックスソータ１１４によるソート処理の詳細を説明する。
図１２は、ポリゴンの頂点ソート処理の説明図である。図１２には、ソート前の頂点とソート後の頂点との関係が示されている。「Ａ」、「Ｂ」、「Ｃ」がソート前の頂点に付けられている頂点名であり、「０」、「１」、「２」がソート後の頂点に付けられている頂点名である。また、「Ａｙ」、「Ｂｙ」、及び「Ｃｙ」は、それぞれポリゴン構造体インスタンスのメンバＡｙ、Ｂｙ、及びＣｙに格納されている値であり、ソート前のポリゴンの頂点Ａ、Ｂ、及びＣのＹ座標である。
頂点０のＹ座標Ｙ０≦頂点１のＹ座標Ｙ１≦頂点２のＹ座標Ｙ２、であり、これらの関係は固定である。そして、ソート前の頂点Ａ、Ｂ、及びＣのＹ座標Ａｙ、Ｂｙ、及びＣｙ間の大小関係に従って、頂点Ａ、Ｂ、及びＣの各々が、頂点０、１、及び２のいずれかに割り当てられる。例えば、頂点間のＹ座標がＢｙ≦Ａｙ＜Ｃｙである場合、バーテックスソータ１１４は、頂点０の各パラメータに頂点Ｂの各パラメータを代人し、頂点１の各パラメータに頂点Ａの各パラメータを代入し、頂点２の各パラメータに頂点Ｃの各パラメータを代入する。
この例を、図１１を参照しながら詳細に説明する。この場合、各頂点０〜２のＸ座標、Ｙ座標、Ｕ座標、Ｖ座標、及びパースペクティブコレクト用パラメータを、Ｘ＊、Ｙ＊、ＵＢ＊、ＶＲ＊、及びＷＧ＊（「＊」は、「頂点」に付けた添え字であり、＊＝０，１，２）とすると、それぞれの値は以下のようになる。
頂点０については次の通りである。
Ｘ０＝Ｂｘ
Ｙ０＝Ｂｙ
ＵＢ０＝Ｂｕ・Ｂｗ
ＶＲ０＝Ｂｖ・Ｂｗ
ＷＧ０＝Ｂｗ
頂点１については次の通りである。
Ｘ１＝Ａｘ
Ｙ１＝Ａｙ
ＵＢ１＝Ａｕ・Ａｗ
ＶＲ１＝Ａｖ・Ａｗ
ＷＧ１＝Ａｗ
頂点２については次の通りである。
Ｘ２＝Ｃｘ
Ｙ２＝Ｃｙ
ＵＢ２＝Ｃｕ・Ｃｗ
ＶＲ２＝Ｃｖ・Ｃｗ
ＷＧ２＝Ｃｗ
ここで、「Ａｗ」、「Ｂｗ」、及び「Ｃｗ」の値は、それぞれ符号なしで、整数部２ビット、小数部６ビットの８ビット固定小数点数であるところ、ＵＢ＊、ＶＲ＊、及びＷＧ＊（＊＝０，１，２）の各パラメータは、符号なしで、整数部１０ビット、小数部６ビットの１６ビット固定小数点数であるため、「Ａｗ」、「Ｂｗ」、及び「Ｃｗ」の値のＭＳＢ側に８ビットの「０」が連接される。また、「Ａｕ」、「Ｂｕ」、「Ｃｕ」、「Ａｖ」、「Ｂｖ」、及び「Ｃｖ」の値は、それぞれ符号なしで、整数部８ビット、小数部０ビットであるため、符号なしで、整数部２ビット、小数部６ビットの８ビット固定小数点数の「Ａｗ」、「Ｂｗ」、及び「Ｃｗ」の値との乗算の結果は、符号なしで、整数部１０ビット、小数部６ビットの１６ビット固定小数点数となり、特に空白ビットは生じない。
バーテックスソータ１１４は、演算結果、つまり、各頂点０〜２のパラメータ（ＸＹ座標、パースペクティブコレクト後のＵＶ座標、及びパースペクティブコレクト用パラメータ）を、ポリゴン／スプライト共通データＣＩとして、スライサ１１８に出力する。後述するが、バーテックスソータ１１４が出力するポリゴン／スプライト共通データＣＩの構成（形式）は、バーテックスエキスパンダ１１６が出力するポリゴン／スプライト共通データＣＩの構成（形式）と同じである。
次に、ポリゴンがグーローシェーディングの対象である場合を説明する。ポリゴンの３頂点Ａ，Ｂ及びＣのＸＹ座標は、それぞれ（Ａｘ，Ａｙ）、（Ｂｘ，Ｂｙ）及び（Ｃｘ，Ｃｙ）で表される。「Ａｘ」、「Ａｙ」、「Ｂｘ」、「Ｂｙ」、「Ｃｘ」、及び「Ｃｙ」は、それぞれポリゴン構造体インスタンスのメンバＡｘ、Ａｙ、Ｂｘ、Ｂｙ、Ｃｘ、及びＣｙに格納された値である。このように、ポリゴン構造体インスタンスのメンバＡｘ及びＡｙの値が、ポリゴンの頂点ＡのＸ座標及びＹ座標、メンバＢｘ及びＢｙの値が、ポリゴンの頂点ＢのＸ座標及びＹ座標、メンバＣｘ及びＣｙの値が、ポリゴンの頂点ＣのＸ座標及びＹ座標となる。
また、ポリゴンの３頂点Ａ，Ｂ及びＣのカラーデータは、それぞれ（Ａｒ，Ａｇ，Ａｂ）、（Ｂｒ，Ｂｇ，Ｂｂ）及び（Ｃｒ，Ｃｇ，Ｃｂ）で表される。（Ａｒ，Ａｇ，Ａｂ）、（Ｂｒ，Ｂｇ，Ｂｂ）及び（Ｃｒ，Ｃｇ，Ｃｂ）は、それぞれポリゴン構造体インスタンスのメンバＡｃ、Ｂｃ、及びＣｃに格納された値である。
Ａｂ＝Ａｃ［１４：１０］（青成分）、Ａｇ＝Ａｃ［９：５］（緑成分）、Ａｒ＝Ａｃ［４：０］（赤成分）、Ｂｂ＝Ｂｃ［１４：１０］（青成分）、Ｂｇ＝Ｂｃ［９：５］（緑成分）、Ｂｒ＝Ｂｃ［４：０］（赤成分）、Ｃｂ＝Ｃｃ［１４：１０］（青成分）、Ｃｇ＝Ｃｃ［９：５］（緑成分）、Ｃｒ＝Ｃｃ［４：０］（赤成分）、である。
このように、ポリゴン構造体インスタンスのメンバＡｃの値が、ポリゴンの頂点Ａのカラーデータ、メンバＢｃの値が、ポリゴンの頂点Ｂのカラーデータ、メンバＣｃの値が、ポリゴンの頂点Ｃのカラーデータとなる。
バーテックスソータ１１４は、図１２の表に従って、頂点Ａ，Ｂ及びＣのパラメータ（ＸＹ座標及びカラーデータ）をＹ座標が小さい順にソート（並べ替え）する。ソート後の頂点は、Ｙ座標が小さい順に頂点０，１，２として扱われる。この点は、テクスチャマッピングモードと同様である。頂点間のＹ座標がＢｙ≦Ａｙ＜Ｃｙである場合（図１１（ｂ））を例に挙げて説明する。
各頂点０〜２のＸ座標、Ｙ座標、Ｂ値（青成分）、Ｒ値（赤成分）、及びＧ値（緑成分）を、Ｘ＊、Ｙ＊、ＵＢ＊、ＶＲ＊、及びＷＧ＊（「＊」は、「頂点」に付けた添え字であり、＊＝０，１，２）とすると、それぞれの値は以下のようになる。
頂点０については次の通りである。
Ｘ０＝Ｂｘ
Ｙ０＝Ｂｙ
ＵＢ０＝Ｂｂ
ＶＲ０＝Ｂｒ
ＷＧ０＝Ｂｇ
頂点１については次の通りである。
Ｘ１＝Ａｘ
Ｙ１＝Ａｙ
ＵＢ１＝Ａｂ
ＶＲ１＝Ａｒ
ＷＧ１＝Ａｇ
頂点２については次の通りである。
Ｘ２＝Ｃｘ
Ｙ２＝Ｃｙ
ＵＢ２＝Ｃｂ
ＶＲ２＝Ｃｒ
ＷＧ２＝Ｃｇ
ここで、「ＵＢ＊」、「ＶＲ＊」、及び「ＷＧ＊」（＊＝０，１，２）の各パラメータは、１６ビットの値であるため、各色成分のＬＳＢ側に６ビット、ＭＳＢ側に５ビットの「０」が連接される。
バーテックスソータ１１４は、演算結果、つまり、各頂点０〜２のパラメータ（ＸＹ座標、及びカラーデータ）を、ポリゴン／スプライト共通データＣＩとして、スライサ１１８に出力する。次に説明するが、バーテックスソータ１１４が出力するポリゴン／スプライト共通データＣＩの構成（形式）は、バーテックスエキスパンダ１１６が出力するポリゴン／スプライト共通データＣＩの構成（形式）と同じである。
図１３は、ポリゴン／スプライト共通データＣＩの構成を示す図である。図１３を参照して、ポリゴン／スプライト共通データＣＩは、フィールドＦ（１ビット），ＷＧ＊（各１６ビット），ＶＲ＊（各１６ビット），ＵＢ＊（各１６ビット），Ｙ＊（各１０ビット）及びＸ＊（各１１ビット）からなる（計２０８ビット）。＊＝０，１，２であり、頂点を示す。
フィールドＦは、ポリゴン／スプライト共通データＣＩが、ポリゴンについてのものであるか、スプライトについてのものであるか、を示すフラグフィールドである。従って、バーテックスソータ１１４は、ポリゴンを示す「１」をフィールドＦに格納する。一方、バーテックスエキスパンダ１１６は、スプライトを示す「０」をフィールドＦに格納する。
バーテックスエキスパンダ１１６から出力されるポリゴン／スプライト共通データＣＩでは、フィールドＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊のＶ座標、Ｕ座標、Ｙ座標、及びＸ座標である。この場合、フィールドＷＧ＊には、「０ｘ００４０」（＝１．０）が格納される。上述したように、頂点＊の出現順は、早いほうから頂点０、頂点１、及び頂点２である。
バーテックスソータ１１４から出力される、テクスチャマッピングの対象であるポリゴン／スプライト共通データＣＩでは、フィールドＷＧ＊，ＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊のパースペクティブコレクト用パラメータ、パースペクティブコレクト済みＶ座標、パースペクティブコレクト済みＵ座標、Ｙ座標、及びＸ座標である。
バーテックスソータ１１４から出力される、グーローシェーディングの対象であるポリゴン／スプライト共通データＣＩでは、フィールドＷＧ＊，ＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊の緑成分、赤成分、青成分、Ｙ座標、及びＸ座標である。
図２のスライサ１１８について説明する。まず、スライサ１１８による、グーローシェーディングモードのポリゴンに対する処理を説明する。
図１４は、図２のスライサ１１８による、グーローシェーディングモードのポリゴンに対する処理の説明図である。図１４を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるポリゴン（三角形）と、描画対象の水平ラインと、の交点のＸＹ座標（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｅ）を求める。ここで、ポリゴンに対しては、描画対象の水平ラインと交わらない辺が存在する側の交点を終端（Ｘｅ，Ｙｅ）とし、当該辺が存在しない側の交点を始端（Ｘｓ，Ｙｓ）とする。
そして、スライサ１１８は、描画Ｙ座標ＹｒがＹ０≦Ｙｒ＜Ｙ１の範囲では、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点始端のＲＧＢ値（Ｒｓ，Ｇｓ，Ｂｓ）を算出するとともに、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点１のＲＧＢ値（ＶＲ１，ＷＧ１，ＵＢ１）に基づいて、直線補間により、交点終端のＲＧＢ値（Ｒｅ，Ｇｅ，Ｂｅ）を算出する。また、スライサ１１８は、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲では、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点始端のＲＧＢ値（Ｒｓ，Ｇｓ，Ｂｓ）を算出するとともに、頂点１のＲＧＢ値（ＶＲ１，ＷＧ１，ＵＢ１）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点終端のＲＧＢ値（Ｒｅ，Ｇｅ，Ｂｅ）を算出する。
そして、スライサ１１８は、ΔＲ、ΔＧ、ΔＢ及びΔＸｇを算出する。ここで、ΔＲ、ΔＧ、ΔＢは、描画対象の水平ラインにおけるΔＸｇあたりのＲ、Ｇ、Ｂそれぞれの変化量であり、ΔＸｇは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量である。ΔＸｇは、「＋１」または「−１」のいずれかとなる。
ΔＲ＝（Ｒｅ−Ｒｓ）／（Ｘｅ−Ｘｓ）
ΔＧ＝（Ｇｅ−Ｇｓ）／（Ｘｅ−Ｘｓ）
ΔＢ＝（Ｂｅ−Ｂｓ）／（Ｘｅ−Ｘｓ）
ΔＸｇ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｒｓ，Ｇｓ，Ｂｓ，Ｘｅ，ΔＲ，ΔＧ，ΔＢ及びΔＸｇを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスソータ１１４から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びポリゴンの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
次に、スライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理を説明する。
図１５は、図２のスライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理の説明図である。図１５を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるポリゴン（三角形）と、描画対象の水平ラインと、の交点座標である始端（Ｘｓ，Ｙｓ）及び終端（Ｘｅ，Ｙｅ）を求める。この点は、グーローシェーディングモードのポリゴンに対する処理と同じである。
ここで、パースペクティブコレクト機能について説明する。透視投影変換された三次元イメージを表現するテクスチャマッピングにおいて、スクリーン上の描画ピクセルに対応するテクセルを、ポリゴンの各頂点座標に対応する、ＵＶ空間のテクスチャの各頂点座標の単なる線形補完によって求めると、マッピングされたイメージが歪んでしまうことがある。この歪みを解消するのがパースペクティブコレクト機能であり、具体的には、以下のような処理が行われる。
ポリゴンの各頂点Ａ，Ｂ，ＣをＵＶ空間へ写像したときの座標を、（Ａｕ，Ａｖ），（Ｂｕ，Ｂｖ），（Ｃｕ，Ｃｖ）とする。また、各頂点Ａ，Ｂ，Ｃのビュー座標を（Ａｘ，Ａｙ，Ａｚ），（Ｂｘ，Ｂｙ，Ｂｚ），（Ｃｘ，Ｃｙ，Ｃｚ）とする。そして、（Ａｕ／Ａｚ，Ａｖ／Ａｚ，１／Ａｚ），（Ｂｕ／Ｂｚ，Ｂｖ／Ｂｚ，１／Ｂｚ），（Ｃｕ／Ｃｚ，Ｃｖ／Ｃｚ，１／Ｃｚ）の線形補間によって求められた値（ｕ／ｚ，ｖ／ｚ，１／ｚ）のｕ／ｚに１／ｚの逆数を乗じた値ｕおよびｖ／ｚに１／ｚの逆数を乗じた値ｖ、つまり（ｕ，ｖ）をテクセル座標（Ｕ，Ｖ）としてテクセルデータを取得することにより、透視投影変換後の正確なテクスチャマッピングを実現する。ここで、ビュー座標とは、ビュー座標系の座標である。ビュー座標系は、ＸＹＺの三軸から成る三次元直交座標系であり、視点を原点とし、視線をＺ軸の正とする。
本実施の形態では、１／Ａｚ，１／Ｂｚ，１／Ｃｚを頂点毎に設定する代りに、それぞれの値にＡｚを掛け合わせた値、すなわち、Ａｚ／Ａｚ（＝Ａｗ），Ａｚ／Ｂｚ（＝Ｂｗ），Ａｚ／Ｃｚ（＝Ｃｗ）をポリゴン構造体に設定する（図３参照）。但し、頂点Ａに対するパラメータＡｗは常に「１」となるため、ポリゴン構造体には設定しない。
従って、本実施の形態では、（Ａｕ・Ａｗ，Ａｖ・Ａｗ，Ａｗ），（Ｂｕ・Ｂｗ，Ｂｖ・Ｂｗ，Ｂｗ），（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）の線形補間によって求められた値（ｕ・ｗ，ｖ・ｗ，ｗ）のｕ・ｗに１／ｗを乗じた値ｕおよびｖ・ｗに１／ｗを乗じた値ｖ、つまり（ｕ，ｖ）をテクセル座標（Ｕ，Ｖ）としてテクセルデータを取得することにより、透視投影変換後の正確なテクスチャマッピングを実現する。
このことを念頭においた上で、スライサ１１８は、描画Ｙ座標ＹｒがＹ０≦Ｙｒ＜Ｙ１の範囲では、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。また、スライサ１１８は、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲では、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。
このことを、頂点間のＹ座標がＢｙ≦Ａｙ＜Ｃｙであり、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲である場合を例に挙げて説明する。そうすると、スライサ１１８は、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）＝（Ｂｕ・Ｂｗ，Ｂｖ・Ｂｗ，Ｂｗ）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）＝（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）＝（Ａｕ・Ａｗ，Ａｖ・Ａｗ，Ａｗ）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）＝（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。
次に、スライサ１１８は、ΔＵ、ΔＶ、ΔＷ及びΔＸｔを算出する。ここで、ΔＵ、ΔＶ、ΔＷは、描画対象の水平ラインにおけるΔＸｔあたりのＵ座標（＝ｕ・ｗ）、Ｖ座標（＝ｖ・ｗ）、パースペクティブコレクト用パラメータＷ（＝ｗ）それぞれの変化量であり、ΔＸｔは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量である。ΔＸｔは、「＋１」または「−１」のいずれかとなる。
ΔＵ＝（Ｕｅ−Ｕｓ）／（Ｘｅ−Ｘｓ）
ΔＶ＝（Ｖｅ−Ｖｓ）／（Ｘｅ−Ｘｓ）
ΔＷ＝（Ｗｅ−Ｗｓ）／（Ｘｅ−Ｘｓ）
ΔＸｔ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｕｓ，Ｖｓ，Ｗｓ，Ｘｅ，ΔＵ，ΔＶ，ΔＷ及びΔＸｔを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスソータ１１４から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びポリゴンの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
次に、スライサ１１８によるスプライトに対する処理を説明する。
図１６は、図２のスライサ１１８による、スプライトに対する処理の説明図である。図１６を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるスプライト（矩形）と、描画対象の水平ラインと、の交点座標（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｅ）を求める。ここで、スプライトに対しては、先に描画される側の交点を始端（Ｘｓ，Ｙｓ）とし、後に描画される側の交点を終端（Ｘｅ，Ｙｅ）とする。
スプライトの各頂点０，１，２，３をＵＶ空間へ写像したときの座標は、（ＵＢ０，ＶＲ０），（ＵＢ１，ＶＲ１），（ＵＢ２，ＶＲ２），（ＵＢ３，ＶＲ３）である。ここで、ＵＢ３，ＶＲ３はスライサ１１８に入力されないが、それぞれ下記のようにスライサ１１８内で求められる。
ＵＢ３＝ＵＢ１
ＶＲ３＝ＶＲ２
スライサ１１８は、頂点０の（ＵＢ０，ＶＲ０）及び頂点２の（ＵＢ２，ＶＲ２）に基づいて、直線補間により、交点始端のＵＶ座標（Ｕｓ，Ｖｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１）及び頂点３の（ＵＢ３，ＶＲ３）に基づいて、直線補間により、交点終端のＵＶ座標（Ｕｅ，Ｖｅ）を算出する。
そして、スライサ１１８は、ΔＵおよびΔＶを算出する。ここで、ΔＵ、ΔＶは、描画対象の水平ラインにおけるΔＸｓあたりのＵ座標、Ｖ座標それぞれの変化量である。ΔＸｓは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量であるが、常に「１」となるので、算出は行わない。
ΔＵ＝（Ｕｅ−Ｕｓ）／（Ｘｅ−Ｘｓ）
ΔＶ＝（Ｖｅ−Ｖｓ）／（Ｘｅ−Ｘｓ）
ΔＸｓ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜＝１
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｕｓ，Ｖｓ，Ｘｅ，ΔＵ，ΔＶ及びΔＸｓを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスエキスパンダ１１６から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びスプライトの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
ここで、スライサ１１８は、ポリゴン／スプライト共通データＣＩのフィールドＦから、ポリゴンおよびスプライトの別を認識でき、ポリゴン構造体インスタンスのメンバＴｙｐｅから、グーローシェーディング及びテクスチャマッピングの別を認識できる。
図２に戻って、ピクセルステッパ１２０は、グーローシェーディングモードのポリゴンについては、スライサ１１８から与えられたパラメータ（Ｘｓ，Ｒｓ，Ｇｓ，Ｂｓ，Ｘｅ，ΔＲ，ΔＧ，ΔＢ及びΔＸｇ）から、描画対象ピクセルの描画Ｘ座標とＲＧＢ値を求め、（１−α）値とともにピクセルディザ１２２に送出する。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）Ｘｓの赤成分Ｒｓに、１ピクセル当たりの赤成分の変化量ΔＲを順次加えていき、各ピクセルの赤成分ＲＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。緑成分ＧＸ及び青成分ＢＸについても同様である。また、交点の始端ＸｓにΔＸｇを順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＲＸ＝ΔＸｇ・ΔＲ・Ｘ＋Ｒｓ
ＧＸ＝ΔＸｇ・ΔＧ・Ｘ＋Ｇｓ
ＢＸ＝ΔＸｇ・ΔＢ・Ｘ＋Ｂｓ
Ｘｒ＝ΔＸｇ・Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＲＧＢ値（ＲＸ，ＧＸ，ＢＸ）、並びに描画Ｘ座標Ｘｒを、（１−α）値並びにデプス値（Ｄｅｐｔｈ）とともに、ピクセルディザ１２２に出力する。
また、ピクセルステッパ１２０は、テクスチャマッピングモードのポリゴンについては、スライサ１１８から与えられたパラメータ（Ｘｓ，Ｕｓ，Ｖｓ，Ｗｓ，Ｘｅ，ΔＵ，ΔＶ，ΔＷ及びΔＸｔ）から、描画対象ピクセルをＵＶ空間へ写像したときの座標（Ｕ，Ｖ）を求める。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）Ｘｓのパースペクティブコレクト用パラメータＷｓに、１ピクセル当たりのパースペクティブコレクト用パラメータの変化量ΔＷを順次加えていき、各ピクセルのパースペクティブコレクト用パラメータＷＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＷＸ＝ΔＸｔ・ΔＷ・Ｘ＋Ｗｓ
ピクセルステッパ１２０は、交点の始端（描画開始端）ＸｓのＵ座標（＝ｕ・ｗ）Ｕｓに、１ピクセル当たりのＵ座標の変化量ΔＵを順次加えていき、求めた値にＷＸの逆数を掛け合わせ、各ピクセルのＵ座標ＵＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。Ｖ座標（＝ｖ・ｗ）ＶＸについても同様である。また、交点の始端ＸｓにΔＸｔを順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＵＸ＝（ΔＸｔ・ΔＵ・Ｘ＋Ｕｓ）・（１／ＷＸ）
ＶＸ＝（ΔＸｔ・ΔＶ・Ｘ＋Ｖｓ）・（１／ＷＸ）
Ｘｒ＝ΔＸｔ・Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＵＶ座標（ＵＸ，ＶＸ）並びに描画Ｘ座標Ｘｒを、スライサ１１８から受け取った構造体インスタンス（テクスチャマッピングのポリゴン構造体インスタンス及びテクスチャアトリビュート構造体インスタンス）とともにテクセルマッパ１２４に出力する。
さらに、ピクセルステッパ１２０は、スプライトについては、スライサ１１８から与えられたスプライトのパラメータ（Ｘｓ，Ｕｓ，Ｖｓ，Ｘｅ，ΔＵ，ΔＶ及びΔＸｓ）から描画対象ピクセルをＵＶ空間へ写像したときの座標（Ｕ，Ｖ）を求める。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）ＸｓのＵ座標Ｕｓに、１ピクセル当たりのＵ座標の変化量ΔＵを順次加えていき、各ピクセルのＵ座標ＵＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。Ｖ座標ＶＸについても同様である。また、交点の始端ＸｓにΔＸｓ、すなわち「１」を順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＵＸ＝ΔＸｓ・ΔＵ・Ｘ＋Ｕｓ
ＶＸ＝ΔＸｓ・ΔＶ・Ｘ＋Ｖｓ
Ｘｒ＝Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＵＶ座標（ＵＸ，ＶＸ）、並びに描画Ｘ座標Ｘｒを、スライサ１１８から受け取った構造体インスタンス（スプライト構造体インスタンス及びテクスチャアトリビュート構造体インスタンス）とともにテクセルマッパ１２４に出力する。
ピクセルディザ１２２は、ピクセルステッパ１２０から与えられたＲＧＢ値の小数部にノイズを加え、マッハバンドを目立たなくするディザリングを実行する。なお、ピクセルディザ１２２は、ディザリング後のピクセルのＲＧＢ値を、描画Ｘ座標Ｘｒ，（１−α）値，及びデプス値とともにカラーブレンダ１３２に出力する。
テクセルマッパ１２４は、テクスチャアトリビュート構造体のメンバＦｉｌｔｅｒが「０」を示している場合には座標（ＵＸ，ＶＸ）の近傍４つのテクセルデータを指し示す４組のワードアドレスＷＡＤとビットアドレスＢＡＤを、メンバＦｉｌｔｅｒが「１」を示している場合には座標（ＵＸ，ＶＸ）に最も近い１つのテクセルデータを指し示す１組のワードアドレスＷＡＤとビットアドレスＢＡＤを算出して出力する。また、メンバＦｉｌｔｅｒが「０」を示している場合には、バイリニアフィルタリングにおける各テクセルの係数部に相当するバイリニアフィルタパラメータＢＦＰを算出して出力する。更に、シザリングイネーブル時のスプライトと、シザリングディセーブル時のスプライトと、ポリゴンと、で互いに異なるデプス値（メンバＤｅｐｔｈ）の形式を統一して出力する。
テクスチャキャッシュブロック１２６は、テクセルマッパ１２４から出力されたワードアドレスＷＡＤ、ビットアドレスＢＡＤ、構造体インスタンスのメンバＴｓｅｇｍｅｎｔから、各テクセルのアドレスを算出する。算出されたアドレスが指し示すテクセルデータが既にキャッシュに格納されている場合、格納されているテクセルデータ及びアトリビュート構造体のメンバＰａｌｅｔｔｅから、カラーパレットＲＡＭ１１のエントリを選択するインデックスを生成し、カラーパレットＲＡＭ１１に出力する。
一方、当該テクセルデータが、キャッシュに格納されていない場合は、テクスチャキャッシュブロック１２６は、メモリマネージャ１４０に対して、テクセルデータの取得指示を出す。メモリマネージャ１４０は、メインＲＡＭ２５あるいは外部メモリ５０から該当するテクスチャパターンデータを取得して、テクスチャキャッシュブロック１２６のキャッシュに格納する。また、メモリマネージャ１４０は、マージソータ１０６からの指示で、後段で必要になるテクスチャパターンデータを、外部メモリ５０から取得して、メインＲＡＭ２５に格納する。
この際、メモリマネージャ１４０は、テクスチャマッピングモードのポリゴン用のテクスチャパターンデータについては、１ポリゴンにマッピングされるデータ全体を一括して取得し、メインＲＡＭ２５に格納するのに対し、スプライト用のテクスチャパターンデータについては、１スプライトにマッピングされるデータをライン単位で取得し、メインＲＡＭ２５に格納する。これは、描画対象の水平ラインに含まれるピクセル群をＵＶ空間に写像すると、ポリゴンの場合はＵＶ空間中のあらゆる直線上に写像される可能性があるのに対し、スプライトの場合はＵ軸に平行な直線上にのみ写像されるからである。
本実施の形態では、テクスチャキャッシュブロック１２６のキャッシュは、６４ビット×４エントリとし、ブロック置換アルゴリズムは、ＬＲＵ（ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ）とする。
カラーパレットＲＡＭ１１は、テクスチャキャッシュブロック１２６から入力されたテクセルデータとメンバＰａｌｅｔｔｅとが連接されたインデックスが示すエントリに含まれるＲＧＢ値及び半透明合成のための（１−α）値を、バイリニアフィルタパラメータＢＦＰ、デプス値、及び描画Ｘ座標Ｘｒとともにバイリニアフィルタ１３０に出力する。
バイリニアフィルタ１３０は、バイリニアフィルタリングを実行する。テクスチャマッピングにおいて、最も単純なピクセル描画色の算出方法は、ＵＶ空間に写像されたピクセル座標（ＵＸ，ＶＸ）に最も近いテクセル座標に位置するテクセルのカラーデータを取得し、取得したカラーデータからピクセルの描画色を算出する方法である。この手法を「ニアレストネイバー」と呼ぶ。
但し、隣り合うピクセルをＵＶ空間に写像した際の２点間の距離が１テクセル分の距離より極めて小さい場合、すなわち、スクリーン上でテクスチャが大きく拡大されてマッピングされる場合には、ニアレストネイバーではテクセルの境界が明瞭に表示されてしまうため、粗いモザイク状のテクスチャマッピングとなってしまう。このような問題を解消する手法として、バイリニアフィルタリングを実行する。
図１７は、バイリニアフィルタ１３０によるバイリニアフィルタリングの説明図である。図１７に示すように、バイリニアフィルタ１３０は、ＵＶ空間に写像されたピクセル座標（ＵＸ，ＶＸ）の近傍４テクセルのＲＧＢ値及び（１−α）値の加重平均を算出し、ピクセルの描画色を決定する。これにより、テクセルのカラーが滑らかに補完され、マッピング結果におけるテクセルの境界が目立たなくなる。具体的には、バイリニアフィルタリングは次式（バイリニアフィルタリングの式）により実行される。ただし、次式において、「ｕ」はＵ座標ＵＸの小数部、「ｖ」はＶ座標ＶＸの小数部、「ｎｕ」は（１−ｕ）、「ｎｖ」は（１−ｖ）、である。
Ｒ＝Ｒ０・ｎｕ・ｎｖ＋Ｒ１・ｕ・ｎｖ＋Ｒ２・ｎｕ・ｖ＋Ｒ３・ｕ・ｖ
Ｇ＝Ｇ０・ｎｕ・ｎｖ＋Ｇ１・ｕ・ｎｖ＋Ｇ２・ｎｕ・ｖ＋Ｇ３・ｕ・ｖ
Ｂ＝Ｂ０・ｎｕ・ｎｖ＋Ｂ１・ｕ・ｎｖ＋Ｂ２・ｎｕ・ｖ＋Ｂ３・ｕ・ｖ
Ａ＝Ａ０・ｎｕ・ｎｖ＋Ａ１・ｕ・ｎｖ＋Ａ２・ｎｕ・ｖ＋Ａ３・ｕ・ｖ
ここで、Ｒ０，Ｒ１，Ｒ２及びＲ３は、それぞれ、上記４テクセルのＲ値であり、Ｇ０，Ｇ１，Ｇ２及びＧ３は、それぞれ、上記４テクセルのＧ値であり、Ｂ０，Ｂ１，Ｂ２及びＢ３は、それぞれ、上記４テクセルのＢ値であり、Ａ０，Ａ１，Ａ２及びＡ３は、それぞれ、上記４テクセルの（１−α）値である。
バイリニアフィルタ１３０は、算出したピクセルのＲＧＢ値（ＲＧＢ）並びに（１−α）値（Ａ）を、デプス値並びに描画Ｘ座標Ｘｒとともに、カラーブレンダ１３２に出力する。
図２を参照して、カラーブレンダ１３２の説明の前に、ラインバッファブロック１３４について説明する。ラインバッファブロック１３４は、ラインバッファＬＢ１及びＬＢ２を含み、一方のラインバッファが表示用に使用されているときは、他方のラインバッファが描画用に使用され、表示用と描画用とを交互に切り替えて使用するダブルバッファ方式を採用する。表示用に使用されているラインバッファ（ＬＢ１，ＬＢ２）は、ビデオタイミングジェネレータ１３８からの水平走査カウント信号ＨＣ及び垂直走査カウント信号ＶＣに従って、ピクセルごとのＲＧＢ値を、ビデオエンコーダ１３６に出力する。
カラーブレンダ１３２は、半透明合成を実行する。具体的には、次の通りである。カラーブレンダ１３２は、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられたピクセルのＲＧＢ値及び（１−α）値と、描画対象のラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置（描画Ｘ座標Ｘｒが示すピクセル）に格納されているＲＧＢ値とを用い、次式により、アルファブレンディングを実行し、結果を同じラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置に書き込む。
Ｒｂ＝Ｒｆ・（１−αｒ）＋Ｒｒ
Ｇｂ＝Ｇｆ・（１−αｒ）＋Ｇｒ
Ｂｂ＝Ｂｆ・（１−αｒ）＋Ｂｒ
αｂ＝αｆ・（１−αｒ）＋αｒ
ここで、「１−αｒ」は、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられた（１−α）値である。「Ｒｒ」、「Ｇｒ」及び「Ｂｒ」は、それぞれ、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられたＲＧＢ値である。「Ｒｆ」、「Ｇｆ」及び「Ｂｆ」は、それぞれ、描画用に使用されているラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置から取得したＲＧＢ値である。一般的なアルファブレンディングのアルゴリズムにおいては、上式のＲｒ，Ｇｒ，およびＢｒの項は、それぞれＲｒ・αｒ、Ｇｒ・αｒ、およびＢｒ・αｒとなるが、本実施の形態では、予めＲｒ・αｒ，Ｇｒ・αｒ，およびＢｒ・αｒの計算結果をＲｒ、Ｇｒ、およびＢｒとして用意しておくことにより、演算回路の簡略化を行っている。
ビデオエンコーダ１３６は、表示用に使用されているラインバッファ（ＬＢ１，ＬＢ２）から入力されたＲＧＢ値と、ビデオタイミングジェネレータ１３８から入力されたタイミング情報（複合同期信号ＳＹＮ、複合ブランキング信号ＢＬＫ、バーストフラグ信号ＢＳＴ、及びライン交番信号ＬＡ等）と、を信号ＶＳに対応したコンポジットビデオ信号を表すデータストリームＶＤに変換する。信号ＶＳは、テレビジョン方式（ＮＴＳＣやＰＡＬ等）を指示する信号である。
ビデオタイミングジェネレータ１３８は、入力されるクロックを基に、水平走査カウント信号ＨＣ及び垂直走査カウント信号ＶＣ、並びに、複合同期信号ＳＹＮ、複合ブランキング信号ＢＬＫ、バーストフラグ信号ＢＳＴ、及びライン交番信号ＬＡ等のタイミング信号を生成する。水平走査カウント信号ＨＣは、システムクロックの１周期毎にカウントアップされ、１水平ラインのスキャンが終了すると、リセットされる。また、垂直走査カウント信号ＶＣは、１／２水平ラインのスキャンが終了するたびにカウントアップされ、１フレームあるいは１フィールドのスキャンが終了すると、垂直走査カウント信号ＶＣはリセットされる。
さて、以上のように、本実施の形態によれば、バーテックスソータ１１４及びバーテックスエキスパンダ１１６は、ポリゴン構造体およびスプライト構造体を同一形式のポリゴン／スプライト共通データＣＩに変換するので、ポリゴンとスプライトとで、ＲＰＵ９の内部回路を極力共通化することができる。このため、ハードウェア規模の抑制を図ることができる。
また、従来のように３Ｄシステム（ポリゴンの描画）だけではなく、２Ｄシステム（スプライトの描画）をも搭載しているので、スプライトを描画する場合は、スプライト全体のテクスチャ画像を一括して取得する必要はなく、例えば、上記のように、スクリーンにおける１ライン単位でのテクセルデータの取得が可能である。このため、メモリ容量の増大を招くことなく、同時に描画できるポリゴン及びスプライトの数を多くできる。
以上の結果、ハードウェア規模を抑制しながらも、二次元空間に投影された三次元立体の各面の形状を表すためのポリゴンおよびスクリーンの枠に平行なスプライトの任意の組み合わせからなる画像を生成でき、かつ、メモリ容量の増大を招くことなく、同時に描画できるポリゴン及びスプライトの数を多くできる。
また、本実施の形態では、バーテックスソータ１１４は、ポリゴン／スプライト共通データＣＩのフィールドＵＢ＊、ＶＲ＊、及びＷＧ＊（＊＝０〜２）に、描画モード（テクスチャマッピングあるいはグーローシェーディング）に応じた形式で頂点＊のパラメータを格納するので、ポリゴン／スプライト共通データＣＩの形式の同一性を保持しながらも、３Ｄシステムにおいて、異なる描画モードでの描画を実現できる。
さらに、本実施の形態では、スプライトの３つの頂点１〜３の座標を計算で求めるので、スプライト構造体に４つの頂点０〜３全ての座標を含める必要はなく、スプライト構造体の格納に必要なメモリ容量を抑制できる。もちろん、スプライトの３つの頂点１〜３の座標のうちの一部を計算で求め、他をスプライト構造体に格納することもできる。また、バーテックスエキスパンダ１１６が算出するＵＶ空間へ写像された座標は、スプライトの拡縮率ＺｏｏｍＸ，ＺｏｏｍＹが反映されたものであるため、原画像を拡大または縮小した画像をスクリーンに表示する場合でも、拡大後または縮小後の画像データを予めメモリＭＥＭ上に用意する必要はなく、画像データの格納に必要なメモリ容量を抑制できる。
さらに、本実施の形態では、ポリゴン／スプライト共通データＣＩの同一性を保持しながらも、ポリゴン／スプライト共通データＣＩを受け取るスライサ１１８は、フラグフィールドを参照することにより、描画対象のグラフィック要素の種類（ポリゴンあるいはスプライト）を容易に判別して、グラフィック要素の種類ごとの処理を行うことができる。
さらに、本実施の形態では、ポリゴンおよびスプライトのいずれについても、ポリゴン／スプライト共通データＣＩにおいて、頂点の出現順に並べられているので、後段での描画処理が容易になる。
さらに、本実施の形態では、スライサ１１８は、スクリーン座標系における単位Ｘ座標当りの頂点パラメータの変化量（ΔＲ、ΔＧ、ΔＢ、ΔＸｇ、ΔＵ、ΔＶ、ΔＷ、ΔＸｔ、ΔＸｓ）をピクセルステッパ１２０に送出するので、ピクセルステッパ１２０は、ポリゴンと描画水平ラインとの２つの交点間の各パラメータ（ＲＸ、ＧＸ、ＢＸ、ＵＸ、ＶＸ、Ｘｒ）およびスプライトと描画水平ラインとの交点間の各パラメータ（ＵＸ、ＶＸ、Ｘｒ）を線形補間により容易に算出できる。
さらに、本実施の形態では、マージソータ１０６は、マージソートルール１〜４に従って、ポリゴン構造体インスタンス及びスプライト構造体インスタンスを描画優先順に整列した上で、同じ単一のデータ列、つまり、ポリゴン／スプライトデータＰＳＤとして出力するので、ポリゴンとスプライトとで、後段の回路を極力共通化でき、ハードウェア規模の抑制を一層図ることができる。
さらに、本実施の形態では、マージソータ１０６は、ポリゴンの出現頂点座標（３頂点のうち最も小さいＹ座標）とスプライトの出現頂点座標（４頂点のうち最も小さいＹ座標）とを比較して、スクリーンに早く出現する方の描画優先順位が高くなるように（マージソートルール１）、マージソートを行う。このため、後段では、ポリゴン／スプライトデータＰＳＤとして出力されるポリゴン構造体インスタンス及びスプライト構造体インスタンスに対して、出力順に描画処理を行うだけでよい。このため、１フレーム以上の画像を格納するための大容量のバッファ（フレームバッファ等）を実装する必要は必ずしもなく、より容量の小さいバッファ（ラインバッファや、１ラインに満たないピクセルを描画するピクセルバッファ等）を実装した場合であっても、多くのポリゴン及びスプライトを組み合わせた画像の表示が可能になる。
また、マージソータ１０６は、ポリゴンとスプライトとで出現頂点座標が同じ場合、描画対象の水平ラインにおいて、デプス値が大きい順で描画優先順位を決定する（マージソートルール２）。従って、描画対象の水平ラインにおいて、より奥に描画されるポリゴンあるいはスプライトが先に描画される（デプス値の順での描画）。
さらに、マージソータ１０６は、ポリゴン及びスプライトの双方の出現頂点座標が、最初に描画するライン（つまり、スクリーンの先頭ライン）より前に位置する場合は、それらを同一座標とみなすので（マージソートルール３）、デプス値に基づいて、より奥に描画される方を描画優先順位が高いと判断する。従って、スクリーンの先頭ラインにおいて、ポリゴン及びスプライトは、デプス値の順で描画される。このような先頭ラインでの処理を行わない場合、先頭ラインの描画においては、必ずしもデプス値の順での描画が保証されないが、この構成によれば、先頭ラインからデプス値の順での描画を行うことが可能となる。
さらに、マージソータ１０６は、インタレース表示が行われる場合において、表示対象のフィールドで描画されない水平ラインに相当する出現頂点座標と、その水平ラインの次の水平ライン（表示対象のフィールドで描画される水平ライン）に相当する出現頂点座標と、を同一座標として扱うので（マージソートルール４）、デプス値に基づいて、より奥に描画される方を描画優先順位が高いと判断する。従って、インタレース表示の場合でもデプス値の順での描画処理が保証される。
以上のように、マージソートルール２〜４により、デプス値の順での描画処理が保証されるので、半透明合成を適切に行うことができる。何故ならば、半透明のグラフィック要素の描画色は、当該グラフィック要素の奥にあるグラフィック要素の描画色に依存するため、グラフィック要素を奥から順に描画する必要があるからである。
さて、次に、テクスチャの繰り返しマッピング、及びテクスチャパターンデータのメモリＭＥＭへの格納方式（フォーマット種別）について説明する。
まず、テクスチャの繰り返しマッピングについて説明する。テクスチャアトリビュート構造体のメンバＭ及びＮのいずれか一方または両方が「１」以上の値を示すとき、テクスチャパターンデータは、ＵＶ空間において水平方向及び／又は垂直方向において繰り返されて配置される。従って、ＸＹ空間において、ポリゴン及びスプライトには、当該テクスチャが、繰り返しマッピングされる。
以下、これらの点について、具体例を挙げながら説明するが、その前に、ＳＴ座標系について説明しておく。ＳＴ座標系は、テクスチャを構成する各テクセルが、メモリＭＥＭに格納される態様で配置される二次元直交座標系である。後述のテクスチャパターンデータの分割格納が行われない場合は、（Ｓ，Ｔ）＝（後述するマスク済みのＵＸ，後述するマスク済みのＶＸ）となる。Ｕ座標ＵＸ及びＶ座標ＶＸは、ピクセルステッパ１２０が算出した値である。
一方、ＵＶ座標系は上述の通り、テクスチャを構成する各テクセルが、ポリゴンあるいはスプライトにマッピングされる態様で配置される二次元直交座標系である。つまり、ＵＶ座標系における座標は、ピクセルステッパ１２０が算出したＵ座標ＵＸおよびＶ座標ＶＸであって、後述のマスク前のＵ座標ＵＸおよびＶ座標ＶＸによって定められる。
なお、ＵＶ空間及びＳＴ空間ともに、テクスチャ（テクセル）が配置される点で、テクセル空間と言うことができる。
図１８（ａ）は、繰り返しマッピングが行われる場合において、ＳＴ空間に配置された四角形のテクスチャの例示図、図１８（ｂ）は、繰り返しマッピングが行われる場合において、ＵＶ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図、図１８（ｃ）は、図１８（ｂ）のテクスチャが繰り返してマッピングされた、ＸＹ空間におけるポリゴンの例示図である。
図１８（ａ）〜図１８（ｃ）では、メンバＭ＝４、メンバＮ＝５の場合を例に挙げている。メンバＭは、Ｕ座標ＵＸ（上位８ビットが整数部、下位３ビットが小数部）においてマスクされる上位ビットの数を８ビットで表したものであり、メンバＮは、Ｖ座標ＶＸ（上位８ビットが整数部、下位３ビットが小数部）においてマスクされる上位ビットの数を８ビットで表したものである。
図１８（ａ）には、ＳＴ空間におけるポリゴンのテクスチャパターンデータ（文字Ｒ）が例示される。この図において、１つの小矩形は、１テクセルを示す。そして、テクセルの４頂点のうち、左上角のＳＴ座標が、そのテクセルの位置を示す。
Ｍ＝４、Ｎ＝５の場合、Ｕ座標ＵＸの上位４ビットとＶ座標ＶＸの上位５ビットがマスクされて「０」となるため、テクセルデータがメモリＭＥＭに格納される際のＳＴ空間は、Ｓ＝０〜１５、Ｔ＝０〜７の範囲へと縮小される。つまり、Ｓ＝０〜１５、Ｔ＝０〜７の範囲のみに、テクセルデータが格納される。
このように、Ｕ座標ＵＸの上位４ビットとＶ座標ＶＸの上位５ビットがマスクされ、ＳＴ空間が図１８（ａ）のように縮小されると、ＵＶ空間においては、図１８（ｂ）に示すように、水平１６テクセル、垂直８テクセルから構成される四角形のテクスチャが、水平方向および垂直方向に繰り返される。
図１８（ｃ）を参照して、この例では、テクスチャアトリビュート構造体のメンバＷｉｄｔｈ＝３１、メンバＨｅｉｇｈｔ＝１９の場合である。水平１６テクセル、垂直８テクセルのテクスチャが、ポリゴンに繰り返しマッピングされる様子が理解できる。この図において、１つの小矩形は、ピクセルの集合からなり、図１８（ｂ）の１テクセルに対応する。また、１つの小三角形は、ピクセルの集合からなり、図１８（ｂ）の１テクセルに対応する。
なお、スプライトへ繰り返しマッピングする場合についても、ポリゴンの場合と同様であり、説明を省略する。
次に、テクスチャパターンデータのメモリＭＥＭへの格納方式（フォーマット種別）について説明する。まず、ポリゴンにマッピングされるテクスチャパターンデータについて説明する。
図１９（ａ）は、ポリゴン構造体のメンバＭＡＰが「０」の場合において、ＳＴ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図、図１９（ｂ）は、ポリゴン構造体のメンバＭＡＰが「１」の場合において、ＳＴ空間に配置された、ポリゴンにマッピングされるテクスチャの例示図である。
図１９（ａ）及び図１９（ｂ）を参照して、小さい正方形は１テクセルを表し、横長の小さい長方形は１メモリワードに格納されるテクセル列（以下、「テクセルブロック」と呼ぶ。）を表し、横長の大きな長方形（太線の長方形）はテクスチャパターンデータの１ブロックを表す。また、本実施の形態では、１メモリワードを６４ビットとする。
これらの図において、テクスチャＴＸは、直角三角形である。テクスチャＴＸは、Ｓ軸（Ｕ軸）に平行な直線により、切片ｓｇｆ及び切片ｓｆｂに分割される。そして、切片ｓｇｆ（図中左側のハッチング部）は、ＵＶ空間におけるそのままの状態でＳＴ空間（具体的には二次元配列Ａ）に格納され、切片ｓｇｂ（図中右側のハッチング部）は、ＵＶ空間において１８０度回転及び移動して、ＳＴ空間（具体的には二次元配列Ａ）に格納される。このような方式で、テクスチャパターンデータの１ブロック（太線）がメモリＭＥＭに格納される。このような格納方式を、「テクスチャパターンデータの分割格納」と呼ぶ。
ただし、メンバＭａｐの値とメンバＨｅｉｇｈｔの値とが特定の組み合わせになった場合、及び、上記した繰り返しマッピングが行われる場合には、テクスチャパターンデータの分割格納は行われない。
ここで、テクセルブロックを表す長方形の［］内の数字は、１ブロックのテクスチャパターンデータを上記の二次元配列Ａとみなし、各テクセルブロックを二次元配列Ａの要素とみなした場合の、配列Ａの添え字（インデックス）を示す。二次元配列Ａの添え字が小さい要素に格納されたデータから順にメモリＭＥＭに格納される。
図中、テクセルブロックの水平テクセル数は「ｗ」、垂直テクセル数は「ｈ」で示される。水平テクセル数ｗおよび垂直テクセル数ｈの値は、メンバＭａｐの値とメンバＢｉｔの値により定められる。下記の（表１）は、メンバＭａｐ＝０の場合におけるメンバＢｉｔと水平テクセル数ｗ及び垂直テクセル数ｈ（つまりテクセルブロックのサイズ）との関係を示している。
【表１】
2007043293.tif 000003
（表１）から明らかなように、図１９（ａ）は、Ｍａｐ＝０、Ｂｉｔ＝４の場合のテクスチャパターンデータの分割格納の様子を表している。
下記の（表２）は、メンバＭａｐ＝１の場合におけるメンバＢｉｔと水平テクセル数ｗ及び垂直テクセル数ｈ（つまりテクセルブロックのサイズ）との関係を示している。
【表２】
2007043293.tif 000004
（表２）から明らかなように、図１９（ｂ）は、Ｍａｐ＝１、Ｂｉｔ＝４の場合のテクスチャパターンデータの分割格納の様子を表している。
以上のように、テクスチャパターンデータの分割格納が行われる場合、分割されたテクスチャＴＸの切片ｓｇｂが、マッピングには不要な領域のテクセルに置き換えられてメモリＭＥＭに格納されるため、必要なメモリ容量を抑制できる。
次に、スプライトにマッピングされるテクスチャパターンデータの格納方式について説明する。
図２０は、ＳＴ空間に配置された、スプライトにマッピングされるテクスチャの例示図である。図２０を参照して、小さい正方形は１テクセルを表し、横長の小さい長方形はテクセルブロックを表し、横長の大きな長方形（太線の長方形）はテクスチャパターンデータの１ブロックを表す。また、本実施の形態では、１メモリワードを６４ビットとする。
この図において、テクスチャＴＸは、四角形（ハッチング部）である。テクスチャＴＸは、ＵＶ空間におけるそのままの状態でＳＴ空間（具体的には二次元配列Ｂ）に格納される。このような形態で、テクスチャパターンデータの１ブロック（太線）がメモリＭＥＭに格納される。なお、スプライトにマッピングされるテクスチャパターンデータについては、分割格納は行われない。
ここで、テクセルブロックを表す長方形の［］内の数字は、１ブロックのテクスチャパターンデータを上記の二次元配列Ｂとみなし、各テクセルブロックを二次元配列Ｂの要素とみなした場合の、配列Ｂの添え字（インデックス）を示す。二次元配列Ｂの添え字が小さい要素に格納されたデータから順にメモリＭＥＭに格納される。
図中、テクセルブロックの水平テクセル数は「ｗ」、垂直テクセル数は「ｈ」で示される。水平テクセル数ｗおよび垂直テクセル数ｈの値は、メンバＢｉｔの値により定められる。メンバＢｉｔと水平テクセル数ｗ及び垂直テクセル数ｈ（つまりテクセルブロックのサイズ）との関係は、（表１）と同じである。
次に、テクセルブロックの詳細を説明する。
図２１（ａ）は、ポリゴン構造体のメンバＭＡＰが「０」の場合におけるＳＴ空間上のテクセルブロックの説明図、図２１（ｂ）は、ポリゴン構造体のメンバＭＡＰが「１」の場合におけるＳＴ空間上のテクセルブロックの説明図、図２１（ｃ）は、１メモリワードへのテクセルブロックの格納状態の説明図である。なお、上述のように、スプライトのＳＴ空間上のテクセルブロックの構成は、メンバＭＡＰが「０」の場合のポリゴンのそれと同じである。
図２１（ａ）は、メンバＭＡＰ＝０、メンバＢｉｔ＝４の場合であり、テクセルブロックは、左端のテクセル＃０を先頭とし、順次右隣のテクセル＃１，＃２，…，＃１１が続けて配置されてなる。
図２１（ｂ）は、メンバＭＡＰ＝１、メンバＢｉｔ＝４の場合であり、テクセルブロックは、左上角のテクセル＃０を先頭とし、順次右隣のテクセル＃１，＃２，＃３が続けて配置され、右端に達すると、一行下の左端のテクセル＃４から順次右隣のテクセル＃５，＃６，＃７が続けて配置され、再び右端に達すると、一行下の左端のテクセル＃８から順次右隣のテクセル＃９，＃１０，＃１１が続けて配置されてなる。
図２１（ｃ）を参照して、メンバＢｉｔ＝４の場合（図２１（ａ）及び図２１（ｂ）が該当）、１テクセルのデータは５ビットで構成されるので、テクセル＃０は、メモリワードの第０ビットから第４ビットに格納され、以下同様にして、テクセル＃１からテクセル＃１１までが隙間なく格納される。メモリワードの第６０ビットから第６３ビットは空白ビットであり、テクセルのデータは格納されない。
テクスチャの繰り返しマッピング、及びテクスチャパターンデータのメモリＭＥＭへの格納方式（フォーマット種別）を念頭においた上で、テクセルマッパ１２４の詳細を説明する。
図２２は、図２のテクセルマッパ１２４の内部構成を示すブロック図である。図中、信号名に付した符号の後に付けられた（）内の数字は、その信号のビット数を表している。図２２を参照して、テクセルマッパ１２４は、テクセルアドレス算出部４０、デプスフォーマット統一部４２、及び遅延生成部４４を含む。
テクセルマッパ１２４は、ピクセルステッパ１２０から入力されるテクセルＵ座標ＵＸ、テクセルＶ座標ＶＸ、スプライト構造体インスタンス／ポリゴン構造体インスタンス、テクスチャアトリビュート構造体インスタンス、及び描画Ｘ座標Ｘｒに基づいて、描画ピクセルにマッピングされるテクセルのメモリＭＥＭ上の格納位置（テクスチャパターンデータの先頭からのオフセット）を算出し、テクスチャキャッシュブロック１２６に出力する。以下に各入力信号について説明する。
入力データ有効ビットＩＤＶは、ピクセルステッパ１２０からの入力データが有効な値か否かを示す。テクセルＵ座標ＵＸ及びテクセルＶ座標ＶＸは、描画ピクセルにマッピングされるテクセルのＵＶ座標を示す。テクセルＵ座標ＵＸ及びテクセルＶ座標ＶＸは、それぞれ、８ビットの整数部と３ビットの小数部とから成り、ピクセルステッパ１２０が算出したものである。
信号Ｍａｐ及びＬｉｇｈｔは、それぞれ、ポリゴン構造体のメンバＭａｐ及びＬｉｇｈｔの値である。信号Ｆｉｌｔｅｒ及びＴｓｅｇｍｅｎｔは、それぞれポリゴン構造体及びスプライト構造体のメンバＦｉｌｔｅｒ及びＴｓｅｇｍｅｎｔの値である。なお、テクセルマッパ１２４に送出されるポリゴン構造体インスタンスは、全てテクスチャマッピングモードのポリゴンの構造体インスタンスである。信号Ｗｉｄｔｈ，Ｈｅｉｇｈｔ，Ｍ，Ｎ，Ｂｉｔ及びＰａｌｅｔｔｅは、それぞれ、テクスチャアトリビュート構造体のメンバＷｉｄｔｈ，Ｈｅｉｇｈｔ，Ｍ，Ｎ，Ｂｉｔ及びＰａｌｅｔｔｅの値である。
信号Ｓｐｒｉｔｅは、入力されるデータが、ポリゴンについてのものか、スプライトについてのものかを示す信号であり、ピクセルステッパ１２０から出力される。シザリングイネーブル信号ＳＥＮは、シザリング処理がイネーブル／ディセーブルのいずれの状態であるかを示す。この信号ＳＥＮの値は、ＣＰＵ５がＲＰＵ９内の制御レジスタ（図示せず）に設定する。信号Ｄｅｐｔｈは、ポリゴン構造体及びスプライト構造体のメンバＤｅｐｔｈの値である。但し、メンバＤｅｐｔｈのビット数は、ポリゴン構造体では１２ビット、シザリングディセーブル時のスプライト構造体では８ビット、シザリングイネーブル時のスプライト構造体では７ビットと、それぞれ大きさが異なる。従って、１２ビットに満たない値は、ＭＳＢ側に「０」が連接された形式で入力される。
信号Ｘｒは、ピクセルステッパ１２０が算出したピクセルの描画Ｘ座標であり、スクリーン座標系（２０４８×１０２４ピクセル）の水平座標を符号無し整数で示すものである。以下に各出力信号について説明する。
出力データ有効ビットＯＤＶは、テクセルマッパ１２４からの出力データが有効な値か否かを示す。メモリワードアドレスＷＡＤは、テクセルデータが格納されているメモリＭＥＭのワードアドレスを示す。この値ＷＡＤは、テクスチャパターンデータ先頭からのオフセットアドレスである。ここでは、６４ビットを１ワードとする形式でアドレスＷＡＤが出力される。
ビットアドレスＢＡＤは、テクセルデータが格納されているメモリワード内における、テクセルデータのＬＳＢのビット位置を示す。バイリニアフィルタ用パラメータＢＦＰは、テクセルデータの加重平均を算出する際の係数部に相当する。終端フラグＥＦは、出力されるデータの終端を示す。ピクセルがニアレストネイバーで描画される場合（メンバＦｉｌｔｅｒ＝１の場合）には、出力データは１テクセル単位となり、バイリニアフィルタリングで描画される場合（メンバＦｉｌｔｅｒ＝０の場合）には、出力データが４テクセル単位となるので、それぞれの場合で出力データの終端を示す。
信号Ｄｅｐｔｈ＿Ｏｕｔは、１２ビットの統一形式に変換されたデプス（奥行き）値である。信号Ｆｉｌｔｅｒ＿Ｏｕｔ，Ｂｉｔ＿Ｏｕｔ，Ｓｐｒｉｔｅ＿Ｏｕｔ，Ｌｉｇｈｔ＿Ｏｕｔ，Ｔｓｅｇｍｅｎｔ＿Ｏｕｔ，Ｐａｌｅｔｔｅ＿ＯｕｔおよびＸ＿Ｏｕｔは、それぞれ、入力信号Ｆｉｌｔｅｒ，Ｂｉｔ，Ｓｐｒｉｔｅ，Ｌｉｇｈｔ，Ｔｓｅｇｍｅｎｔ，ＰａｌｅｔｔｅおよびＸに相当し、入力信号が出力信号としてそのまま後段に出力される。但し、他の出力信号との同期を取るために遅延される。
後で詳細に述べるテクセルアドレス算出部４０は、描画ピクセルにマッピングされるテクセルのメモリＭＥＭ上の格納位置を算出する。テクセルアドレス算出部４０には、入力データ有効ビットＩＤＶ、テクセルＵ座標ＵＸ、テクセルＶ座標ＶＸ、信号Ｍａｐ、信号Ｆｉｌｔｅｒ、信号Ｗｉｄｔｈ、信号Ｈｅｉｇｈｔ、信号Ｍ、信号Ｎ、及び信号Ｂｉｔが入力される。また、テクセルアドレス算出部４０は、入力信号に基づいて、出力データ有効ビットＯＤＶ、メモリワードアドレスＷＡＤ、ビットアドレスＢＡＤ、バイリニアフィルタ用パラメータＢＦＰ、及び終端フラグＥＦを算出し、テクスチャキャッシュブロック１２６に出力する。
デプスフォーマット統一部４２は、ピクセルステッパ１２０から入力される構造体インスタンスが、シザリングディセーブルのスプライト構造体インスタンスである場合、シザリングイネーブルのスプライト構造体インスタンスである場合、ポリゴン構造体インスタンスである場合のそれぞれにおいて、異なる形式となる信号Ｄｅｐｔｈの値を、統一形式に変換し、変換後の値を信号Ｄｅｐｔｈ＿Ｏｕｔとして出力する。
遅延生成部４４は、入力された信号Ｆｉｌｔｅｒ，Ｂｉｔ，Ｓｐｒｉｔｅ，Ｌｉｇｈｔ，Ｔｓｅｇｍｅｎｔ，ＰａｌｅｔｔｅおよびＸをレジスタ（図示せず）で遅延させ、他の出力信号ＯＤＶ，ＷＡＤ，ＢＡＤ，ＢＦＰ，ＥＦ及びＤｅｐｔｈ＿Ｏｕｔと同期させ、それぞれＦｉｌｔｅｒ＿Ｏｕｔ，Ｂｉｔ＿Ｏｕｔ，Ｓｐｒｉｔｅ＿Ｏｕｔ，Ｌｉｇｈｔ＿Ｏｕｔ，Ｔｓｅｇｍｅｎｔ＿Ｏｕｔ，Ｐａｌｅｔｔｅ＿ＯｕｔおよびＸ＿Ｏｕｔとして出力する。
図２３は、図２２のテクセルアドレス算出部４０の内部構成を示すブロック図である。図中、信号名に付した符号の後に付けられた（）内の数字は、その信号のビット数を表している。図２３を参照して、テクセルアドレス算出部４０は、テクセルカウンタ７２、加重平均パラメータ算出部７４、バイリニアフィルタリング用ＵＶ座標算出部７６、マルチプレクサ７８、上位ビットマスク部８０，８２、水平垂直テクセル数算出部８４、及びアドレス演算部８６を含む。
テクセルカウンタ７２は、入力データ有効ビットＩＤＶが「１」を示しているとき（すなわち有効なデータが入力されたとき）、信号Ｆｉｌｔｅｒ＝０の場合（すなわち入力されたピクセルがバイリニアフィルタリングモードで描画される場合）には、順次「００」→「０１」→「１０」→「１１」をマルチプレクサ７８と加重平均パラメータ算出部７４とに送出して、これらから４テクセル分のデータが出力されるように制御する。
ここで、図１７に示すように、ＵＶ空間に写像されたピクセル座標の近傍４テクセルをそれぞれ、テクセル００、テクセル０１、テクセル１０、およびテクセル１１とする。テクセルカウンタ７２が出力する「００」はテクセル００を示し、テクセルカウンタ７２が出力する「０１」はテクセル０１を示し、テクセルカウンタ７２が出力する「１０」はテクセル１０を示し、テクセルカウンタ７２が出力する「１１」はテクセル１１を示す。
一方、テクセルカウンタ７２は、入力データ有効ビットＩＤＶが「１」を示しているとき、信号Ｆｉｌｔｅｒ＝１の場合（すなわち入力されたピクセルがニアレストネイバーモードで描画される場合）には、「００」をマルチプレクサ７８と加重平均パラメータ算出部７４とに送出して、これらから１テクセル分のデータが出力されるように制御する。
また、テクセルカウンタ７２は、バイリニアフィルタリング用ＵＶ座標算出部７６及びアドレス演算部８６のレジスタ（図示せず）が順次入力値を格納するように制御する。
さらに、テクセルカウンタ７２は、信号Ｆｉｌｔｅｒ＝０の場合には、４テクセル中の最終テクセルに対応するデータが出力されるタイミングで、終端フラグＥＦをアサートし、信号Ｆｉｌｔｅｒ＝１の場合には、１テクセルに対応するデータが出力されるタイミングで、終端フラグＥＦをアサートして、１ピクセル分のデータ出力が完了したことを示す。また、テクセルカウンタ７２は、有効なデータ出力が行われている間、出力データ有効ビットＯＤＶをアサートする。
バイリニアフィルタリング用ＵＶ座標算出部７６について説明する。テクセルＵ座標ＵＸの整数部を「Ｕ」（図では、ＵＸ＿Ｕと表記）、テクセルＶ座標ＶＸの整数部を「Ｖ」（図では、ＶＸ＿Ｖと表記）とする。
バイリニアフィルタリング用ＵＶ座標算出部７６は、テクセル００のＵ座標整数部及びＶ座標整数部として、座標（Ｕ，Ｖ）を、テクセル０１のＵ座標整数部及びＶ座標整数部として、座標（Ｕ＋１，Ｖ）を、テクセル１０のＵ座標整数部及びＶ座標整数部として、座標（Ｕ，Ｖ＋１）を、テクセル１１のＵ座標整数部及びＶ座標整数部として、座標（Ｕ＋１，Ｖ＋１）を、マルチプレクサ７８に出力する。これは、バイリニアフィルタリング時に必要とされる写像ピクセルの近傍４テクセルのデータを取得するための座標生成を意味する。
マルチプレクサ７８は、テクセルカウンタ７２からの入力信号が「００」を示すときは、テクセル００のＵ座標整数部及びＶ座標整数部（Ｕ，Ｖ）を選択し、入力信号が「０１」を示すときは、テクセル０１のＵ座標整数部及びＶ座標整数部（Ｕ＋１，Ｖ）を選択し、入力信号が「１０」を示すときは、テクセル１０のＵ座標整数部及びＶ座標整数部（Ｕ，Ｖ＋１）を選択し、入力信号が「１１」を示すときは、テクセル１１のＵ座標整数部及びＶ座標整数部（Ｕ＋１，Ｖ＋１）を選択し、Ｕ座標整数部及びＶ座標整数部（ＵＩ，ＶＩ）として出力する。
ここで、テクセルＵ座標ＵＸの小数部を「ｕ」（図では、ＵＸ＿ｕと表記）とし、テクセルＶ座標ＶＸの小数部を「ｖ」（図では、ＶＸ＿ｖと表記）とし、（１−ｕ）を「ｎｕ」とし、（１−ｖ）を「ｎｖ」する。また、テクセル００、テクセル０１、テクセル１０、及びテクセル１１のＲ（赤）成分をそれぞれ、Ｒ０、Ｒ１、Ｒ２、及びＲ３とし、テクセル００、テクセル０１、テクセル１０、及びテクセル１１のＧ（緑）成分をそれぞれ、Ｇ０、Ｇ１、Ｇ２、及びＧ３とし、テクセル００、テクセル０１、テクセル１０、及びテクセル１１のＢ（青）成分をそれぞれ、Ｂ０、Ｂ１、Ｂ２、及びＢ３とする。また、テクセル００、テクセル０１、テクセル１０、及びテクセル１１の（１−α）値をそれぞれ、Ａ０、Ａ１、Ａ２、及びＡ３とする。
そうすると、バイリニアフィルタ１３０は、上述したバイリニアフィルタリングの式に基づいて、バイリニアフィルタリング後の描画ピクセルの赤成分Ｒ、緑成分Ｇ、青成分Ｂ、及び（１−α）値を求める。
バイリニアフィルタリングの式の各項の係数部ｎｕ・ｎｖ、ｕ・ｎｖ、ｎｕ・ｖ、及びｕ・ｖを、それぞれテクセル００係数部、テクセル０１係数部、テクセル１０係数部、及びテクセル１１係数部とする。
加重平均パラメータ算出部７４は、入力されたテクセルＵ座標ＵＸの小数部及びテクセルＶ座標ＶＸの小数部（ｕ，ｖ）に基づいて、テクセル００係数部、テクセル０１係数部、テクセル１０係数部、及びテクセル１１係数部を算出する。そして、テクセルカウンタからの入力信号が「００」のときは、テクセル００係数部を選択し、入力信号が「０１」のときは、テクセル０１係数部を選択し、入力信号が「１０」のときは、テクセル１０係数部を選択し、入力信号が「１１」のときは、テクセル１１係数部を選択し、バイリニアフィルタ用パラメータＢＦＰとして出力する。
上位ビットマスク部８０は、信号Ｍの値に応じて、Ｕ座標整数部ＵＩの上位ビットを「０」にマスクして、マスク済みＵ座標整数部ＭＵＩとして出力する。例えば、Ｍ＝３であれば、Ｕ座標整数部ＵＩの上位３ビットを「０００」とする。上位ビットマスク部８２は、信号Ｎの値に応じて、Ｖ座標整数部ＶＩの上位ビットを「０」にマスクして、マスク済みＶ座標整数部ＭＶＩとして出力する。例えば、Ｎ＝３であれば、Ｖ座標整数部ＶＩの上位３ビットを「０００」とする。なお、上位ビットマスク部８０は、Ｍ＝０のときは、マスクはせずに、Ｕ座標整数部ＵＩをそのままマスク済みＵ座標整数部ＭＵＩとして出力する。また、上位ビットマスク部８２は、Ｎ＝０のときは、マスクはせずに、Ｖ座標整数部ＶＩをそのままマスク済みＶ座標整数部ＭＶＩとして出力する。
水平垂直テクセル数算出部８４は、信号Ｍａｐと信号Ｂｉｔとから、テクセルブロック（図１９及び図２０参照）の水平テクセル数ｗと垂直テクセル数ｈを算出する。これらの算出は、前述の（表１）及び（表２）に基づいて行われる。
アドレス演算部８６は、テクスチャの繰り返しマッピング（図１８参照）とテクスチャパターンデータの分割格納（図１９参照）が考慮された形でＳＴ空間におけるテクセル座標を算出し、算出されたテクセル座標に基づいてメモリＭＥＭ上の格納位置を算出する。詳細は次の通りである。
アドレス演算部８６は、先ず、テクスチャパターンデータの分割格納が行われているか否かを判別する。以下の条件１から条件３のいずれか１つでも満たされる場合、テクスチャパターンデータの分割格納は行われていない。
（条件１）入力信号Ｓｐｒｉｔｅが「１」を示している場合である。すなわち、入力データがスプライトに関する場合である。
（条件２）入力信号Ｍ及びＮのいずれか一方、または両方が「１」以上の値を示している場合である。すなわち、テクスチャの繰り返しマッピングが行われる場合である。
（条件３）入力信号Ｈｅｉｇｈｔの値がテクセルブロックの垂直テクセル数ｈを超えない場合である。すなわち、テクスチャパターンデータをテクセルブロックに分割した際に、垂直方向のテクセルブロック数が１の場合である。
ここで、マスク済みＵ座標整数部ＭＵＩを「Ｕ」、マスク済みＶ座標整数部ＭＶＩを「Ｖ」、メモリＭＥＭに格納されている（ＳＴ空間における）テクセルの座標を（Ｓ，Ｔ）とする。そうすると、アドレス演算部８６は、テクスチャパターンデータの分割格納が行われている場合は、ＳＴ空間におけるテクセルの座標（Ｓ，Ｔ）を次式により算出する。次式において、演算記号「／」は、商の小数点以下を切り捨てて商を整数で求める除算を意味する。
［信号Ｍａｐ＝０の場合］
Ｖ＞Ｈｅｉｇｈｔ／２ならば、
Ｓ＝（Ｗｉｄｔｈ／ｗ＋１）・ｗ−Ｕ−１
Ｔ＝Ｈｅｉｇｈｔ−Ｖ
Ｖ≦Ｈｅｉｇｈｔ／２ならば、
Ｓ＝Ｕ
Ｔ＝Ｖ
［信号Ｍａｐ＝１の場合］
Ｖ／ｈ＞Ｈｅｉｇｈｔ／２ｈならば、
Ｓ＝（Ｗｉｄｔｈ／ｗ＋１）・ｗ−Ｕ−１
Ｔ＝（Ｈｅｉｇｈｔ／ｈ＋１）・ｈ−Ｖ−１
Ｖ／ｈ≦Ｈｅｉｇｈｔ／２ｈならば、
Ｓ＝Ｕ
Ｔ＝Ｖ
ここで、「Ｈｅｉｇｈｔ／ｈ」は、テクスチャの各テクセルのうちで最大のＶ座標を持つテクセルのＶ座標に基づいて定められたＶ座標閾値の一例である。上記式においては、ピクセルのＶ座標がＶ座標閾値以下の場合、ピクセルの座標（Ｕ，Ｖ）をそのままＳＴ座標系におけるピクセルの座標（Ｓ，Ｔ）とし、ピクセルのＶ座標がＶ座標閾値を超える場合、ピクセルの座標（Ｕ，Ｖ）を１８０度回転及び移動してＳＴ座標系におけるピクセルの座標（Ｓ，Ｔ）に変換している。従って、テクスチャパターンデータが分割格納されている場合においても、格納先のメモリＭＥＭから適切なテクセルデータを読み出すことができる。
一方、アドレス演算部８６は、テクスチャパターンデータの分割格納が行われていない場合は、ＳＴ空間におけるテクセルの座標（Ｓ，Ｔ）を次式により算出する。
Ｓ＝Ｕ
Ｔ＝Ｖ
アドレス演算部８６は、テクセル座標（Ｓ，Ｔ）から、当該テクセルデータを含むメモリワードのアドレス（メモリワードアドレス）ＷＡＤと、当該メモリワード内におけるビット位置（ビットアドレス）ＢＡＤを求める。ここでアドレス演算部８６が求めるメモリワードアドレスＷＡＤは、最終的なメモリアドレスではなく、テクスチャパターンデータの先頭からのオフセットアドレスであることに注意されたい。最終的なメモリアドレスは、後段のテクスチャキャッシュブロック１２６にて、メモリワードアドレスＷＡＤと信号Ｔｓｅｇｍｅｎｔの値とから求められる。
メモリワードアドレスＷＡＤ及びビットアドレスＢＡＤは、以下の式から求められる。この式における演算記号「／」は、商の小数点以下を切り捨てて商を整数で求める除算を意味し、演算記号「％」は、商を整数で求める除算における剰余を求めることを意味する。
ＷＡＤ＝（Ｗｉｄｔｈ／ｗ＋１）・（Ｔ／ｈ）＋（Ｓ／ｗ）
ＢＡＤ＝（（Ｖ％ｈ）・ｗ＋Ｓ％ｗ）・（Ｂｉｔ＋１）
ここで、ビットアドレスＢＡＤが示す値は、テクセルデータのＬＳＢが格納されているメモリワード内のビット位置である。例えば、Ｂｉｔ＝６でＢＡＤ＝２５の場合、ビット２５からビット３１までの７ビットにテクセルデータが格納されていることを示す。
図２４は、テクスチャパターンデータの分割格納が行われた場合のバイリニアフィルタリングの説明図である。この図では、メンバＦｉｌｔｅｒ＝０、メンバＭａｐ＝１、メンバＢｉｔ＝２、メンバＷｉｄｔｈ＝２１、メンバＨｅｉｇｈｔ＝１２のポリゴンのテクスチャパターンデータの例が示される。また、テクセルブロックのサイズは、ｗ＝７、ｈ＝３である。
この場合、テクスチャパターンデータは、図示のように分割格納（ハッチング部）される。ＵＶ空間における１８０度回転及び移動なしで（つまり、ＵＶ空間における配置で）、ＳＴ空間に格納されている部分については、ＵＶ空間に写像されたピクセルの座標（Ｕ，Ｖ）に対応するＳＴ空間の座標が（Ｓ，Ｔ）であるとき、座標（Ｓ，Ｔ）、座標（Ｓ＋１，Ｔ）、座標（Ｓ，Ｔ＋１）、及び座標（Ｓ＋１，Ｔ＋１）に位置する４つのテクセルデータが、バイリニアフィルタリング処理で参照される。
一方、分割格納により、ＵＶ空間において１８０度回転及び移動されて、ＳＴ空間に格納されている部分については、ＵＶ空間に写像されたピクセルの座標（Ｕ，Ｖ）に対応するＳＴ空間の座標が（Ｓ，Ｔ）であるとき、座標（Ｓ，Ｔ）、座標（Ｓ−１，Ｔ）、座標（Ｓ，Ｔ−１）、及び座標（Ｓ−１，Ｔ−１）に位置する４つのテクセルデータが参照される。
テクスチャパターンデータの分割格納が行われている場合、２つに分割された三角形の間に余白となるテクセルデータが存在するので、つまり、２つに分割された三角形の間にバイリニアフィルタリング用のテクセルデータを配置できるので、バイリニアフィルタリング処理が行われる際に、ＵＶ空間に写像されたピクセルの座標（Ｕ，Ｖ）に対応するＳＴ空間の座標（Ｓ，Ｔ）近傍のテクセルデータが参照されても、破綻なくピクセル描画処理を行うことができる。
さて、以上のように、本実施の形態では、テクスチャは、ポリゴンにマッピングされる態様でメモリＭＥＭに格納（ＳＴ空間に配置）されるのではなく、２つの切片に分割され、かつ、１つの切片が１８０度回転及び移動されて、メモリＭＥＭに格納（ＳＴ空間に配置）される。このため、例えば三角形等、四角形以外のポリゴンにマッピングするテクスチャをメモリＭＥＭに格納する場合においても、テクスチャが格納されない無駄な記憶領域を極力省くことができ、効率良く格納できるので、テクスチャを格納するメモリＭＥＭの容量を小さくできる。
つまり、テクスチャパターンデータを構成するテクセルデータのうち、テクスチャが配置される領域のテクセルデータは実体的な内容（カラーを直接的あるいは間接的に示す情報）を含むものであるが、テクスチャが配置されない領域のテクセルデータは、実体的な内容を含まない無駄なものである。この無駄なテクセルデータを極力省くことで、必要なメモリ容量を抑制できる。
ここで言うところのテクスチャパターンデータとは、テクスチャが配置される領域（図１９のブロックのハッチング部に相当）のみのテクセルデータを意味するのではなく、それ以外の領域（図１９のブロックのハッチング部以外の部分に相当）のテクセルデータを含む。つまり、テクスチャパターンデータは、三角形のテクスチャを含む四角形の領域のテクセルデータである（図１９のブロックに相当）。
特に三角形のポリゴンにマッピングする三角形のテクスチャをそのまま２次元配列に格納すると、配列内のおよそ半分のテクセルデータが無駄になるので、ポリゴンが三角形の場合、分割格納はより好適である。
また、本実施の形態によれば、テクスチャは直角三角形状であるため（図１９参照）、直角をなす２辺をそれぞれ、ＵＶ空間のＵ軸及びＶ軸に一致させ、かつ、直角の頂点をＵＶ空間の原点に設定することにより、ＵＶ空間における三角形の頂点の座標の指定のために必要なデータ量を少なくできる。
さらに、本実施の形態では、二次元空間に投影された三次元立体の各面の形状を表すポリゴンを、スクリーンに正立する二次元のスプライトとして使用することもできる。ただし、あくまでもポリゴンをスプライト的に使用するのであって、ポリゴンであることに変わりない。このようにスプライト的に使用するポリゴンを擬似スプライトと呼ぶ。
ポリゴンを擬似スプライトとして使用する場合は、本来のスプライトと同様に、ライン単位でテクセルデータを取得することにより、テクセルデータを一時格納するのに必要なメモリ容量を削減することができる。
このような場合に、メンバＭａｐ＝０（第１の格納形態）とし（図１９（ａ）参照）、メモリＭＥＭの１ワードに、一次元に並んだテクセルデータからなる１テクセルブロックを格納することで、ライン単位でテクセルデータを取得する際のメモリＭＥＭへのアクセス回数を減らすことができる。
一方、ポリゴンを三次元立体を表すための本来の目的で使用する場合、スクリーンの水平ライン上のピクセルをＵＶ空間に写像したとき、必ずしもＵＶ空間の水平ライン上に写像されるとは限らない。
このように、ピクセルがＵＶ空間の水平ライン上に写像されない場合でも、メンバＭａｐ＝１（第２の格納形態）とし（図１９（ｂ）参照）、メモリＭＥＭの１ワードに、二次元に並んだテクセルデータからなる１テクセルブロックを格納することで、ピクセルが写像されたＵＶ座標に配置されたテクセルデータが、既にテクスチャキャッシュブロック１２６に格納されているテクセルデータの中に存在する可能性が高く（つまり、キャッシュのヒット率が高い）、テクセルデータ取得のためのメモリＭＥＭへのアクセス回数を減らすことができる。
ここで、ポリゴンを擬似スプライトとして使用すると、次のようなメリットがある。本来のスプライトでは、１つの頂点座標だけをメンバＡｙ，Ａｘで指定し、そのサイズを、メンバＨｅｉｇｈｔ，Ｗｉｄｔｈ，ＺｏｏｍＹ，ＺｏｏｍＸで指定することにより（図９参照）、１つのスプライトを定義する。このように、スプライトでは、そのサイズおよび頂点座標の指定に、ある程度制限が加わってくる。これに対して、擬似スプライトはポリゴンであるため、メンバＡｙ，Ａｘ，Ｂｙ，Ｂｘ，Ｃｙ，Ｃｘで各頂点の座標を任意に指定でき（図３参照）、それ故サイズの指定も任意に行うことができる。
さらに、本実施の形態では、テクスチャの繰り返しマッピングが行われる場合は、テクスチャパターンデータの分割格納は行われない。従って、矩形のテクスチャを水平方向及び／又は垂直方向に繰り返しマッピングを行う際のテクスチャパターンデータのメモリＭＥＭへの格納好適である。しかも、繰り返しマッピングなので、同じテクスチャパターンデータを使用することができ、メモリ容量の削減が可能となる。
さらに、本実施の形態では、バイリニアフィルタリングを行う際は、ピクセルのＳＴ空間における座標が、１８０度回転及び移動してＳＴ空間に配置された切片に含まれる場合でも、これを考慮して、４テクセルを取得する（図２４参照）。また、分割して格納される切片同士の間には、バイリニアフィルタリングで用いるテクセルが切片に隣接するように格納される（図２４参照）。これらのことから、テクスチャパターンデータの分割格納を行う場合でも、バイリニアフィルタリング処理を問題なく実現できる。
さらに、本実施の形態では、Ｕ座標整数部ＵＩの上位Ｍビット及び／又はＶ座標整数部ＶＩの上位Ｎビットをマスクする（「０」にする）ことにより、同じテクスチャパターンデータを使用して、異なる水平／垂直テクセル数でのテクスチャの繰り返しマッピングを実現している。同じテクスチャパターンデータを使用するため、メモリ容量の削減が可能となる。
さて、次に、メモリマネージャ１４０について詳細に説明していく。テクスチャキャッシュブロック１２６に描画対象のテクセルデータが格納されていない場合、テクスチャキャッシュブロック１２６は、メモリマネージャ１４０にテクセルデータを要求する。
そして、メモリマネージャ１４０は、要求されたテクスチャパターンデータをメインＲＡＭ２５上のテクスチャバッファから読み出し、テクスチャキャッシュブロック１２６に出力する。テクスチャバッファは、メインＲＡＭ２５上に設定されるテクスチャパターンデータのテンポラリ格納領域である。
一方、メモリマネージャ１４０は、マージソータ１０６から要求されたテクスチャパターンデータがメインＲＡＭ２５上のテクスチャバッファに読み込まれていない場合、ＤＭＡＣインタフェース１４２を介してＤＭＡＣ４にＤＭＡ転送を要求し、外部メモリ５０に格納されているテクスチャパターンデータを、新たに取得したテクスチャバッファ領域に読み込む。
この場合、メモリマネージャ１４０は、マージソータ１０６から出力されるメンバ「Ｔｓｅｇｍｅｎｔ」の値とテクスチャパターンデータ全体のサイズ情報とに従って、後述の図３０及び図３１に示すテクスチャバッファ領域取得処理を実行する。本実施の形態では、テクスチャバッファ領域取得処理の機能をハードワイヤードロジックで達成している。
メモリマネージャ１４０のＭＣＢイニシャライザ１４１は、後述するＭＣＢ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）構造体配列の内容を初期化するためのハードウェアである。メモリマネージャ１４０が管理するテクスチャバッファは、領域の取得と解放とが繰り返される内に断片化（フラグメンテーション）を起こし、大きな領域の確保が難しくなってくる。このフラグメンテーションの発生を回避するため、ＭＣＢイニシャライザ１４１は、ＭＣＢ構造体配列の内容を初期化し、テクスチャバッファを初期状態に再設定する。
ＭＣＢ構造体は、テクスチャバッファの管理に用いられる構造体であり、常に１２８個のインスタンスを持つＭＣＢ構造体配列を形成する。ＭＣＢ構造体配列は、メインＲＡＭ２５上に配置され、ＭＣＢ構造体配列の先頭アドレスは、後述のＲＰＵ制御レジスタ「ＭＣＢ  Ａｒｒａｙ  Ｂａｓｅ  Ａｄｄｒｅｓｓ」で指し示される。ＭＣＢ構造体配列は、８個のボスＭＣＢ構造体インスタンスと、１２０個の一般ＭＣＢ構造体インスタンスと、から構成される。どちらの構造体インスタンスも、６４ビット（＝８バイト）で構成される。以下では、ボスＭＣＢ構造体インスタンスと一般ＭＣＢ構造体インスタンスとを区別して説明する必要がないときは、単に「ＭＣＢ構造体インスタンス」と呼ぶ。
図２５（ａ）は、ボスＭＣＢ構造体の構成を示す図、図２５（ｂ）は、一般ＭＣＢ構造体の構成を示す図である。図２５（ａ）を参照して、ボスＭＣＢ構造体は、メンバ「Ｂｗｄ」，「Ｆｗｄ」，「Ｅｎｔｒｙ」及び「Ｔａｐ」を含む。図２５（ｂ）を参照して、一般ＭＣＢ構造体は、メンバ「Ｂｗｄ」，「Ｆｗｄ」，「Ｕｓｅｒ」，「Ｓｉｚｅ」，「Ａｄｄｒｅｓｓ」及び「Ｔａｇ」を含む。
まず、双方に共通するメンバから説明する。メンバ「Ｂｗｄ」は、ボスＭＣＢ構造体インスタンスのチェーン（後述の図３３参照）における、後ろ方向のリンクを示す。メンバ「Ｂｗｄ」には、ＭＣＢ構造体インスタンスを指し示すインデックス（７ビット）が格納される。メンバ「Ｆｗｄ」は、ボスＭＣＢ構造体インスタンスのチェーンにおける、前方向のリンクを示す。メンバ「Ｆｗｄ」には、ＭＣＢ構造体インスタンスを指し示すインデックス（７ビット）が格納される。
次に、ボスＭＣＢ構造体に固有のメンバについて説明する。メンバ「Ｅｎｔｒｙ」は、当該ボスＭＣＢ構造体インスタンスのチェーンに含まれる一般ＭＣＢ構造体インスタンスの数を示す。メンバ「Ｔａｐ」には、当該ボスＭＣＢ構造体インスタンスのチェーンに含まれる、最も新しく解放された一般ＭＣＢ構造体インスタンスを指し示すインデックス（７ビット）が格納される。
次に、一般ＭＣＢ構造体に固有のメンバについて説明する。メンバ「Ｕｓｅｒ」は、当該一般ＭＣＢ構造体インスタンスが管理するテクスチャバッファ領域を共有しているポリゴン構造体インスタンス／スプライト構造体インスタンスの数を示す。但し、複数のスプライト構造体インスタンスがテクスチャバッファ領域を共有することはないため、スプライト構造体インスタンスのテクスチャバッファ領域を管理している場合、この値の最大値は「１」となる。
メンバ「Ｓｉｚｅ」は、当該一般ＭＣＢ構造体インスタンスが管理するテクスチャバッファ領域のサイズを示す。テクスチャバッファ領域は、８バイト単位で管理され、実際の領域の大きさ（バイト数）は、メンバ「Ｓｉｚｅ」が示す数値に「８」を掛けた値となる。メンバ「Ａｄｄｒｅｓｓ」は、当該一般ＭＣＢ構造体インスタンスが管理するテクスチャバッファ領域の先頭アドレスを示す。但し、このメンバに格納されるのは、メインＲＡＭ２５の物理アドレスの第３ビットから第１５ビット（Ａ［１５：３］の１３ビット）である。メンバ「Ｔａｇ」は、当該一般ＭＣＢ構造体インスタンスが管理するテクスチャバッファ領域に格納されているテクスチャパターンデータを指定するメンバ「Ｔｓｅｇｍｅｎｔ」の値が格納される。メンバ「Ｔｓｅｇｍｅｎｔ」は、テクスチャマッピングモードのポリゴン構造体、およびスプライト構造体のメンバである（図３及び図６参照）。
図２６は、ボスＭＣＢ構造体インスタンスが管理するテクスチャバッファ領域のサイズの説明図である。図２６に示すように、８個のボスＭＣＢ構造体インスタンス［０］〜［７］は、それぞれ異なるサイズのテクスチャバッファ領域を管理する。この図によって、どのサイズのテクスチャバッファ領域が、どのボスＭＣＢ構造体インスタンスの管理下となるかが理解できる。
図２７は、ボスＭＣＢ構造体インスタンス［０］〜［７］の初期値を示す図である。［］内の数字は、ボスＭＣＢ構造体インスタンスのインデックスである。図２８は、一般ＭＣＢ構造体インスタンス［８］〜［１２７］の初期値を示す図である。なお、［］内の数字は、一般ＭＣＢ構造体インスタンスのインデックスである。
図２のＭＣＢイニシャライザ１４１は、ＭＣＢ構造体配列の内容を、図２７および図２８に記載されている値に初期化する。初期値は、それぞれのＭＣＢ構造体インスタンスによって異なる。
図２７（ａ）は、ボスＭＣＢ構造体インスタンス［０］〜［６］の初期値を表している。これらのボスＭＣＢ構造体インスタンスは、初期状態においては、管理下のテクスチャバッファ領域が全く無く、チェーンを形成する他の一般ＭＣＢ構造体インスタンスの個数が「０」であるため、メンバ「Ｂｗｄ」，「Ｆｗｄ」，及び「Ｔａｐ」は、いずれも自分自身を指し示すインデックスを格納し、メンバ「Ｅｎｔｒｙ」の値は「０」を示す。
図２７（ｂ）は、ボスＭＣＢ構造体インスタンス［７］の初期値を表す。ボスＭＣＢ構造体インスタンス［７］は、初期状態においては、テクスチャバッファとして割り当てられた全領域を管理する。実際には、全領域を一括して管理する一般ＭＣＢ構造体インスタンス［８］とチェーンを形成している。従って、メンバ「Ｂｗｄ」，「Ｆｗｄ」及び「Ｔａｐ」の値は、いずれも「８」を示し、メンバ「Ｅｎｔｒｙ」の値は、「１」を示す。
図２８（ａ）は、一般ＭＣＢ構造体インスタンス［８］の初期値を表す。一般ＭＣＢ構造体インスタンス［８］は、初期状態においては、テクスチャバッファの全領域を管理している。したがって、メンバ「Ｓｉｚｅ」は、ＲＰＵ制御レジスタ「Ｔｅｘｔｕｒｅ  Ｂｕｆｆｅｒ  Ｓｉｚｅ」に設定されているテクスチャバッファの全体サイズを示し、メンバ「Ａｄｄｒｅｓｓ」は、ＲＰＵ制御レジスタ「Ｔｅｘｔｕｒｅ  Ｂｕｆｆｅｒ  Ｂａｓｅ  Ａｄｄｒｅｓｓ」に設定されているテクスチャバッファの先頭アドレスを示す。
但し、テクスチャバッファのサイズは８バイト単位で設定されるため、メンバ「Ｓｉｚｅ」の値に「８」を掛けた値が実際のテクスチャバッファの全体サイズを表す。また、メンバ「Ａｄｄｒｅｓｓ」の値は、メインＲＡＭ２５の物理アドレスの第３ビットから第１５ビット（Ａ［１５：３］）の計１３ビットのみを表している。
一般ＭＣＢ構造体インスタンス［８］は、初期状態においては、ボスＭＣＢ構造体インスタンス［７］のチェーンに含まれる唯一の一般ＭＣＢ構造体インスタンスであるため、メンバ「Ｂｗｄ」及び「Ｆｗｄ」の値は、ともに「７」を示す。また、初期状態では、一般ＭＣＢ構造体インスタンス［８］を共有するポリゴン／スプライトは存在しないため、メンバ「Ｕｓｅｒ」及び「Ｔａｇ」の値は、「０」を示す。
図２８（ｂ）は、一般ＭＣＢ構造体インスタンス［９］〜［１２６］の初期値を表す。一般ＭＣＢ構造体インスタンス［９］以降の全ての一般ＭＣＢ構造体インスタンスは、初期状態においては、フリーの一般ＭＣＢ構造体インスタンスとして設定され、ボスＭＣＢ構造体インスタンスのチェーンには組み込まれていない。フリーの一般ＭＣＢ構造体インスタンスのチェーンは、メンバ「Ｆｗｄ」が次の一般ＭＣＢ構造体インスタンスを指し示す形でリンクされており、ボスＭＣＢ構造体インスタンスのチェーンのようにリング状の閉じたリンクにはなっていない。したがって、一般ＭＣＢ構造体インスタンス［９］〜［１２６］のメンバ「Ｆｗｄ」には、「自身のインデックス＋１」を示す値が設定され、他のメンバ「Ｂｗｄ」，「Ｕｓｅｒ」，「Ｓｉｚｅ」，「Ａｄｄｒｅｓｓ」および「Ｔａｇ」には全て「０」が設定される。
図２８（ｃ）は、一般ＭＣＢ構造体インスタンス［１２７］の初期値を表す。一般ＭＣＢ構造体インスタンス［１２７］は、初期状態においては、フリーの一般ＭＣＢ構造体インスタンスのチェーンの終端として設定され、ボスＭＣＢ構造体インスタンスのチェーンには組み込まれていない。したがって、一般ＭＣＢ構造体インスタンス［１２７］のメンバ「Ｆｗｄ」には、「０」が設定され、フリーの一般ＭＣＢ構造体インスタンスのチェーンの終端であることを示す。他のメンバ「Ｂｗｄ」，「Ｕｓｅｒ」，「Ｓｉｚｅ」，「Ａｄｄｒｅｓｓ」および「Ｔａｇ」にも全て「０」が設定される。
図２９は、図２のメモリマネージャ１４０に関するＲＰＵ制御レジスタの一覧図である。図２９に示す全てのＲＰＵ制御レジスタは、ＲＰＵ９内に設けられる。
図２９（ａ）に示すＲＰＵ制御レジスタ「ＭＣＢ  Ａｒｒａｙ  Ｂａｓｅ  Ａｄｄｒｅｓｓ」は、メモリマネージャ１４０が使用するＭＣＢ構造体配列のベースアドレスをメインＲＡＭ２５の物理アドレスで指定する。このレジスタへの設定については、全１６ビットの設定が可能であるが、ＭＣＢ構造体配列のベースアドレスは、ワードアライン（４バイトアライン）に従って設定される必要がある。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２４」に配置される。
図２９（ｂ）に示すＲＰＵ制御レジスタ「ＭＣＢ  Ｒｅｓｏｕｒｃｅ」は、初期設定時における、フリーの一般ＭＣＢ構造体インスタンスのチェーンの先頭ＭＣＢ構造体インスタンスを指し示すインデックスを設定する。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２６」に配置される。
図２９（ｃ）に示すＲＰＵ制御レジスタ「ＭＣＢ  Ｉｎｉｔｉａｌｉｚｅｒ  Ｉｎｔｅｒｖａｌ」は、ＭＣＢイニシャライザ１４１が行うＭＣＢ構造体配列の初期化処理の周期を設定する。この初期化周期は、クロックサイクル単位で設定される。例えば、４クロックサイクルごとに初期化を行うように設定する。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２Ｄ」に配置される。
図２９（ｄ）に示すＲＰＵ制御レジスタ「ＭＣＢ  Ｉｎｉｔｉａｌｉｚｅｒ  Ｅｎａｂｌｅ」は、ＭＣＢイニシャライザ１４１の有効／無効を制御する。このレジスタに「１」が設定されると、ＭＣＢイニシャライザ１４１は有効化され、「０」で無効化される。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２Ｃ」に配置される。
図２９（ｅ）に示すＲＰＵ制御レジスタ「Ｔｅｘｔｕｒｅ  Ｂｕｆｆｅｒ  Ｓｉｚｅ」は、テクスチャバッファの全体サイズを設定する。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２Ａ」に配置される。
図２９（ｆ）に示すＲＰＵ制御レジスタ「Ｔｅｘｔｕｒｅ  Ｂｕｆｆｅｒ  Ｂａｓｅ  Ａｄｄｒｅｓｓ」は、テクスチャバッファの先頭アドレスを設定する。なお、例えば、このレジスタは、Ｉ／Ｏバスアドレス「０ｘＦＦＦＦＥ６２８」に配置される。
図３０及び図３１は、テクスチャバッファ領域取得処理の流れを示すフローチャートである。図３０を参照して、メモリマネージャ１４０は、マージソータ１０６から出力されるメンバ「Ｔｓｅｇｍｅｎｔ」の値を入力引数「ｔａｇ」とし、テクスチャパターンデータ全体のサイズ情報を入力引数「ｓｉｚｅ」として、以下の処理を実行する。
まず、ステップＳ１にて、メモリマネージャ１４０は、引数「ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスを特定し（図２６参照）、特定したボスＭＣＢ構造体インスタンスのインデックスを変数「ｂｏｓｓ」に格納する。ステップＳ２にて、メモリマネージャ１４０は、変数「ｂｏｓｓ」が指し示すボスＭＣＢ構造体インスタンスのチェーンに、メンバ「Ｔａｇ」の値が引数「ｔａｇ」に一致する一般ＭＣＢ構造体インスタンス（ステップＳ４〜Ｓ６において「検出ＭＣＢ構造体インスタンス」と呼ぶ。）が存在するか否かをチェックする。そして、存在する場合は、図３１のステップＳ４に進み、存在しない場合は、ステップＳ７に進む（ステップＳ３）。
ステップＳ３で、「Ｙｅｓ」が判断された後、図３１のステップＳ４では、メモリマネージャ１４０は、ステップＳ１で特定したボスＭＣＢ構造体インスタンスのチェーンから、検出ＭＣＢ構造体インスタンスを削除する。ステップＳ５にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスと（図２６参照）、当該ボスＭＣＢ構造体インスタンスのメンバ「Ｆｗｄ」が現在指し示す一般ＭＣＢ構造体インスタンスと、の間に検出ＭＣＢ構造体インスタンスを挿入する。ステップＳ６にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｕｓｅｒ」の値をインクリメントする。以上により、テクスチャバッファ領域の取得が成功した（正常終了）。この場合、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスを指し示すインデックスを返り値「ｍｃｂ」とし、テクスチャキャッシュブロック１２６に出力するとともに、既にテクスチャバッファ領域を取得済みであることを示す「１」を設定した返り値「ｆｌａｇ」をテクスチャキャッシュブロック１２６に出力する。
一方、図３０のステップＳ３で、「Ｎｏ」が判断された後、ステップＳ７では、メモリマネージャ１４０は、変数「ｂｏｓｓ」が指し示すボスＭＣＢ構造体インスタンスのチェーンに、メンバ「Ｓｉｚｅ」の値が引数「ｓｉｚｅ」以上であり、かつ、メンバ「Ｕｓｅｒ」の値が「０」である一般ＭＣＢ構造体インスタンス（以降の処理において「検出ＭＣＢ構造体インスタンス」と呼ぶ。）が存在するか否かをチェックする。そして、存在する場合は、ステップＳ１１に進み、存在しない場合は、ステップＳ９に進む（ステップＳ８）。
ステップＳ８で、「Ｎｏ」が判断された後、ステップＳ９では、メモリマネージャ１４０は、変数「ｂｏｓｓ」をインクリメントする。ステップＳ１０にて、メモリマネージャ１４０は、変数「ｂｏｓｓ」＝８か否かを判断し、「Ｙｅｓ」の場合はステップＳ７に戻る。一方、「Ｎｏ」の場合は、テクスチャバッファ領域の取得に失敗したことになり（エラー終了）、メモリマネージャ１４０は、その旨を示す値を設定した返り値「ｍｃｂ」をテクスチャキャッシュブロック１２６に返す。
一方、ステップＳ８で、「Ｙｅｓ」が判断された後、ステップＳ１１では、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」が引数「ｓｉｚｅ」と等しいか否かを判断する。そして、「Ｎｏ」の場合はステップＳ１２に進み、「Ｙｅｓ」の場合はステップＳ１８に進む。
ステップＳ１１で「Ｎｏ」が判断された後、ステップＳ１２にて、メモリマネージャ１４０は、ＲＰＵ制御レジスタ「ＭＣＢ  Ｒｅｓｏｕｒｃｅ」が指し示す一般ＭＣＢ構造体インスタンスのメンバ「Ｆｗｄ」をチェックする。メンバ「Ｆｗｄ」＝０の場合はステップＳ１７に進み、メンバ「Ｆｗｄ」が「０」以外の場合はステップＳ１４に進む（ステップＳ１３）。
ステップＳ１３で「Ｎｏ」が判断された後、ステップＳ１４にて、メモリマネージャ１４０は、ＲＰＵ制御レジスタ「ＭＣＢ  Ｒｅｓｏｕｒｃｅ」が指し示す一般ＭＣＢ構造体インスタンス（つまり、フリーの一般ＭＣＢ構造体インスタンス）を取得し、フリーの当該一般ＭＣＢ構造体インスタンスのメンバ「Ｆｗｄ」の値を、ＲＰＵ制御レジスタ「ＭＣＢ  Ｒｅｓｏｕｒｃｅ」に設定する。つまり、ステップＳ１４では、引数「ｓｉｚｅ」と一致するメンバ「Ｓｉｚｅ」を持つ検出ＭＣＢ構造体インスタンスが検出されなかった場合、すなわち、引数「ｓｉｚｅ」より大きな値のメンバ「Ｓｉｚｅ」を持つ検出ＭＣＢ構造体インスタンスが検出された場合、フリーの一般ＭＣＢ構造体インスタンスのチェーンから先頭の一般ＭＣＢ構造体インスタンスを取得する。
ステップＳ１５にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ａｄｄｒｅｓｓ」に引数「ｓｉｚｅ」を加算した値を、フリーの当該一般ＭＣＢ構造体インスタンスのメンバ「Ａｄｄｒｅｓｓ」に設定し、検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」から引数「ｓｉｚｅ」を減算した値を、フリーの当該一般ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に設定する。つまり、ステップＳ１５では、検出ＭＣＢ構造体インスタンスが管理している領域のうち、引数「ｓｉｚｅ」が示す分の領域を差し引いた領域を分割して、取得したフリーの一般ＭＣＢ構造体インスタンスに割り当てる。
ステップＳ１６にて、メモリマネージャ１４０は、フリーの当該一般ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスを特定し（図２６参照）、特定したボスＭＣＢ構造体インスタンスと、当該ボスＭＣＢ構造体インスタンスのメンバ「Ｂｗｄ」が現在指し示す一般ＭＣＢ構造体インスタンスと、の間にフリーの当該一般ＭＣＢ構造体インスタンスを挿入し、特定したボスＭＣＢ構造体インスタンスのメンバ「Ｅｎｔｒｙ」の値をインクリメントする。つまり、ステップＳ１６では、フリーの一般ＭＣＢ構造体インスタンスは、ステップＳ１５で割り当てられた領域のサイズに対応するボスＭＣＢ構造体インスタンスのチェーンに、最後尾の一般ＭＣＢ構造体インスタンスとして新たに組み込まれる。
ステップＳ１６の後、あるいは、ステップＳ１３で「Ｙｅｓ」が判断された後、ステップＳ１７にて、メモリマネージャ１４０は、メンバ「Ｓｉｚｅ」＞引数「ｓｉｚｅ」である検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に引数「ｓｉｚｅ」を代入する。つまり、ステップＳ１７では、検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」は、引数「ｓｉｚｅ」の値に書き換えられる。
ステップＳ１７の後、あるいは、ステップＳ１１で「Ｙｅｓ」と判断された後、ステップＳ１８にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのボスＭＣＢ構造体インスタンスのメンバ「Ｅｎｔｒｙ」をデクリメントする。ステップＳ１９にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｔａｇ」に引数「ｔａｇ」を代入する。ステップＳ２０にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスをチェーンから削除する。
ステップＳ２１にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスを特定し（図２６参照）、特定したボスＭＣＢ構造体インスタンスと、当該ボスＭＣＢ構造体インスタンスのメンバ「Ｆｗｄ」が現在指し示す一般ＭＣＢ構造体インスタンスと、の間に検出ＭＣＢ構造体インスタンスを挿入する。ステップＳ２２にて、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスのメンバ「Ｕｓｅｒ」の値をインクリメントする。
つまり、ステップＳ１８〜Ｓ２２では、検出ＭＣＢ構造体インスタンスは、現在リンクされているボスＭＣＢ構造体インスタンスのチェーンから削除され、新たなメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスのチェーンに、最前の一般ＭＣＢ構造体インスタンスとして新たに組み込まれる。
以上により、テクスチャバッファ領域の取得が成功した（正常終了）。この場合、メモリマネージャ１４０は、検出ＭＣＢ構造体インスタンスを指し示すインデックスを返り値「ｍｃｂ」とし、テクスチャキャッシュブロック１２６に出力するとともに、新規にテクスチャバッファ領域を取得したことを示す「０」を設定した返り値「ｆｌａｇ」をテクスチャキャッシュブロック１２６に出力する。また、この場合、メモリマネージャは、ＤＭＡＣインタフェース１４２を介してＤＭＡＣ４にＤＭＡ転送を要求し、新たに確保されたテクスチャバッファ領域に、外部メモリ５０からテクスチャパターンデータを一括して転送する。但し、これはポリゴンの場合であり、スプライトの場合は、確保された領域に描画の進行に応じて順次テクスチャパターンデータを転送する。
ここで、ステップＳ２の補足説明を行う。ステップＳ２の処理は、ポリゴン用のテクスチャバッファ領域を確保する際にのみ行われ、スプライト用には行われない。従って、スプライト用にテクスチャバッファ領域を確保する際には、ステップＳ２及びＳ３はスキップされ、必ずステップＳ７に進むことになる。
なぜなら、ポリゴン用には、テクスチャパターンデータ全体を格納可能なサイズを確保するため、複数のポリゴンが１つのテクスチャバッファ領域を共有することが可能であるが、スプライト用には、テクスチャパターンデータの４水平ライン分のみ格納可能なサイズを確保するため、複数のスプライトが１つのテクスチャバッファ領域を共有することができないためである。
ステップＳ３で「Ｙｅｓ」が判断された後の処理の終端では（図３１参照）、返り値「ｆｌａｇ」の値が「１」を示している。これは、複数のポリゴンが１つのテクスチャバッファ領域を共有している（つまり、既にテクスチャパターンデータがテクスチャバッファ領域に読み込まれている）ため、新たにＤＭＡ転送を要求してテクスチャパターンデータを読み込む必要がないことを示している。
次に、ステップＳ７〜Ｓ１０の補足説明を行う。ボスＭＣＢ構造体インスタンス［０］〜［７］は、テクスチャバッファ領域の大きさごとに分かれており（図２６参照）、ボスＭＣＢ構造体インスタンスのインデックスが大きくなるにつれ、より大きなサイズのテクスチャバッファ領域を管理している。したがって、ステップＳ７〜Ｓ１０を経てステップＳ７へのループは、必要なテクスチャバッファ領域のサイズに対応するボスＭＣＢ構造体インスタンスのチェーンに適当な一般ＭＣＢ構造体インスタンスが存在しない場合に、よりインデックスの大きなボスＭＣＢ構造体インスタンスのチェーンを順次検索することを表している。但し、最終のボスＭＣＢ構造体インスタンスであるボスＭＣＢ構造体インスタンス［７］のチェーンまで検索しても適当な一般ＭＣＢ構造体インスタンスを検出できない場合、テクスチャバッファ領域の取得が失敗したとしてエラー終了する。この場合、このテクスチャバッファ領域を要求したポリゴン／スプライトには、描画処理において不当なテクスチャパターンデータがマッピングされてしまう。
さて、メモリマネージャ１４０は、確保されたテクスチャバッファ領域を使用するポリゴン／スプライトの描画が完了すると、確保していたテクスチャバッファ領域を解放し、他のテクスチャパターンデータの格納のために再利用できるようする。このようなテクスチャバッファ領域解放処理について説明する。
図３２は、テクスチャバッファ領域解放処理の流れを示すフローチャートである。テクスチャバッファ領域解放処理にあたって、テクスチャキャッシュブロック１２６から、描画完了ポリゴン／描画完了スプライトが使用していたテクスチャバッファ領域を管理していた一般ＭＣＢ構造体インスタンスのインデックスがメモリマネージャ１４０に出力される。メモリマネージャ１４０は、このインデックスを入力引数「ｍｃｂ」として、テクスチャバッファ領域解放処理を実行する。
ステップＳ３１にて、メモリマネージャ１４０は、引数「ｍｃｂ」が指し示す一般ＭＣＢ構造体インスタンス（以降の処理において、「解放ＭＣＢ構造体インスタンス」と呼ぶ。）のメンバ「Ｕｓｅｒ」をデクリメントする。ステップＳ３２にて、メモリマネージャ１４０は、デクリメント後のメンバ「Ｕｓｅｒ」の値が「０」か否かを判断し、「Ｙｅｓ」の場合ステップＳ３３に進み、「Ｎｏ」の場合テクスチャバッファ解放処理を終了する。
つまり、テクスチャバッファ領域が２以上のポリゴンに共有されていた場合、解放ＭＣＢ構造体インスタンスのメンバ「Ｕｓｅｒ」の値が１つ減らされるだけで、実際の解放処理は行われない。１つのポリゴン／スプライトに用いられていたテクスチャバッファ領域（デクリメント前のメンバ「Ｕｓｅｒ」＝１）が解放されたとき、実際の解放処理が行われる。
ステップＳ３２で「Ｙｅｓ」が判断された後、ステップＳ３３にて、メモリマネージャ１４０は、解放ＭＣＢ構造体インスタンスを、解放ＭＣＢ構造体インスタンスを含むチェーンから削除する。ステップＳ３４にて、メモリマネージャ１４０は、解放ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスを特定し（図２６参照）、特定したボスＭＣＢ構造体インスタンスのメンバ「Ｔａｐ」が現在指し示す一般ＭＣＢ構造体インスタンス（以降の処理において、「タップＭＣＢ構造体インスタンス」と呼ぶ。）と、タップＭＣＢ構造体インスタンスのメンバ「Ｂｗｄ」が指し示すＭＣＢ構造体インスタンスと、の間に解放ＭＣＢ構造体インスタンスを挿入する。
ステップＳ３５にて、メモリマネージャ１４０は、解放ＭＣＢ構造体インスタンスのメンバ「Ｓｉｚｅ」に対応するボスＭＣＢ構造体インスタンスのメンバ「Ｔａｐ」に引数「ｍｃｂ」を挿入し、かつ、メンバ「Ｅｎｔｒｙ」をインクリメントし、テクスチャバッファ解放処理を終了する。
図３３は、ボスＭＣＢ構造体インスタンスのチェーンの構造と、ボスＭＣＢ構造体インスタンスのチェーンに一般ＭＣＢ構造体インスタンスが新たに挿入される場合の概念と、を示す図である。図３３（ａ）及び図３３（ｂ）には、ボスＭＣＢ構造体インスタンスＢＳ→一般ＭＣＢ構造体インスタンス＃Ａ→一般ＭＣＢ構造体インスタンス＃Ｂ→ボスＭＣＢ構造体インスタンスＢＳというように、閉じたリング状にリンクされているボスＭＣＢ構造体インスタンスＢＳのチェーンに、最前の一般ＭＣＢ構造体インスタンスとして新たに一般ＭＣＢ構造体インスタンス＃Ｃを挿入する例が示されている。図３３（ａ）は挿入前、図３３（ｂ）は挿入後を示す。
この例では、メモリマネージャ１４０は、一般ＭＣＢ構造体インスタンス＃Ａを指し示していたボスＭＣＢ構造体インスタンスＢＳのメンバ「Ｆｗｄ」を、一般ＭＣＢ構造体インスタンス＃Ｃを指し示すように書き換え、ボスＭＣＢ構造体インスタンスＢＳを指し示していた一般ＭＣＢ構造体インスタンス＃Ａのメンバ「Ｂｗｄ」を、一般ＭＣＢ構造体インスタンス＃Ｃを指し示すように書き換える。また、メモリマネージャ１４０は、新たにチェーンに挿入される一般ＭＣＢ構造体インスタンス＃Ｃのメンバ「Ｆｗｄ」を、一般ＭＣＢ構造体インスタンス＃Ａを指し示すように、メンバ「Ｂｗｄ」を、ボスＭＣＢ構造体インスタンスＢＳを指し示すように書き換える。
逆に、図３３（ｂ）に示すボスＭＣＢ構造体インスタンスＢＳのチェーンから、一般ＭＣＢ構造体インスタンス＃Ｃを削除する場合は、挿入する場合とは逆の処理が行われる。
さて、以上のように、本実施の形態によれば、テクスチャデータを毎回外部メモリ５０から読み出すのではなく、読み出したテクスチャデータをメインＲＡＭ２５上のテクスチャバッファに一時的に保持しておくことにより、テクスチャデータが再利用される場合に、無駄な外部メモリ５０へのアクセスを避けることができる。また、メインＲＡＭ２５上のテクスチャバッファを必要とされるサイズに領域分割し、領域の確保と解放とを動的に行うことで、テクスチャバッファの使用効率が高まり、テクスチャバッファのためのハードウェアリソースが過剰に大きくなることを防ぐことができる。
また、本実施の形態では、グラフィック要素（ポリゴン及びスプライト）の描画が水平ライン単位で順次的に行われるので、スプライトにマッピングされるテクスチャデータは描画処理の進行に応じてテクスチャデータの水平ライン単位で外部メモリ５０から読み出せばよいため、テクスチャバッファに確保する領域のサイズを抑えることができる。一方、ポリゴンにマッピングされるテクスチャデータは、テクスチャデータ上のどの部分のデータが必要になるかを事前に予測することは難しいため、テクスチャデータ全体を格納可能なサイズの領域をテクスチャバッファに確保する。
さらに、本実施の形態では、ＭＣＢ構造体インスタンスを用いてテクスチャバッファの各領域を管理することで、領域の確保・解放のための処理が簡便になる。
さらに、本実施の形態では、複数のボスＭＣＢ構造体インスタンスは、管理する領域のサイズに応じて複数のグループに分けられ、グループ内のＭＣＢ構造体インスタンスは、リング状に互いがリンクされている（図２６及び図３３参照）。このため、ＭＣＢ構造体インスタンス、ひいてはテクスチャバッファの各領域の検索を容易に行うことができる。
さらに、本実施の形態では、ＭＣＢイニシャライザ１４１が、全てのＭＣＢ構造体インスタンスを初期値に設定することにより、テクスチャバッファの領域のフラグメンテーションを解消できる。フラグメンテーションを解消する手段としては、一般的なガーベージコレクションより小さい回路規模で達成できるだけでなく、処理時間も短い。また、グラフィック要素（ポリゴン及びスプライト）の描画のための処理であるため、１ビデオフレームまたは１フィールドの描画が完了する毎にテクスチャバッファの全体を初期化するようにすれば、描画処理上全く問題がない。
さらに、本実施の形態では、ＭＣＢイニシャライザ１４１がＭＣＢ構造体インスタンスを初期値に設定するためにＭＣＢ構造体インスタンスにアクセスする間隔を設定するＲＰＵ制御レジスタ「ＭＣＢ  Ｉｎｉｔｉａｌｉｚｅｒ  Ｉｎｔｅｒｖａｌ」を備えている。ＣＰＵ５がこのＲＰＵ制御レジスタにアクセスして、ＭＣＢイニシャライザ１４１がＭＣＢ構造体インスタンスにアクセスする間隔を自由に設定することで、システム全体のパフォーマンスの低下を引き起こすことなく、初期化処理を実行できる。なお、ＭＣＢ構造体配列を共有のメインＲＡＭ２５上に設ける場合には、ＭＣＢイニシャライザ１４１からのアクセスが時間的に集中して行われると、他の機能ユニットからのメインＲＡＭ２５へのアクセスのレイテンシが大きくなり、システム全体のパフォーマンスを低下させる恐れがある。
さらに、本実施の形態では、テクスチャバッファは、ＲＰＵ９や他の機能ユニットが共有するメインＲＡＭ２５上に、任意の位置及びサイズで構成可能である。このように、テクスチャバッファを、共有のメインＲＡＭ２５上に位置及びサイズとも自由に設定可能とすることで、必要とされるテクスチャバッファ領域が少ない場合には、余剰の領域を他の機能ユニットが用いることが可能になる。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
（１）上記では、カラーブレンダ１３２による半透明合成を行っているため、各ラインにおいて、グラフィック要素（ポリゴン、スプライト）は、デプス値が大きいものから先に描画した。しかし、半透明合成を行わない場合は、デプス値が小さいものから描画することが好ましい。なぜなら、デプス値が小さい、より手前に表示されるべきグラフィック要素から先に描画することにより、描画能力や１ラインに描画するグラフィック要素の数が多すぎる等の理由により、仮に、１ラインに描画すべき全てのグラフィック要素の描画が、表示までに間に合わなかった場合でも、デプス値が大きい、より奥に表示されるべきグラフィック要素から先に描画する場合と比較して、表示後の見た目の印象が良くなるからである。また、デプス値が小さいグラフィック要素から描画することにより、より奥に表示されるべきグラフィック要素については、既に描画されたグラフィック要素と重なる部分については、描画が不要であるため、処理の高速化を図ることができるからである。
（２）上記では、描画のため、スクリーンの１ライン分のデータを格納可能なラインバッファＬＢ１，ＬＢ２をＲＰＵ９内に設けた。ただし、１ライン分より少ないピクセル数分のデータを格納する２つのピクセルバッファをＲＰＵ９内に設けることもできる。また、Ｋ（Ｋは２以上の整数）ライン分のデータを格納可能な２つのバッファをＲＰＵ９内に設けることもできる。
（３）上記では、ＲＰＵ９において、ダブルバッファ方式を採用したが、シングルバッファ方式を採用することもできるし、３以上のバッファを使用する方式を採用することもできる。
（４）上記では、ＹＳＵ１９は、１つのポリゴンインスタンスのソートが確定するたびに、パルスＰＰＬを出力したが、所定数のポリゴンインスタンスのソートが確定するたびに、パルスＰＰＬを出力することもできる。パルスＳＰＬについても同様である。
（５）上記では、表示色の指定に、カラーパレットを用いる間接指定方式を採用したが、直接指定方式を採用することもできる。
（６）上記では、スライサ１１８は、ポリゴン／スプライト共通データＣＩのフラグフィールドで、入力されたデータがポリゴンを描画するためのものかスプライトを描画するためのものかを判別するが、ポリゴン／スプライト共通データＣＩと同時に入力される構造体インスタンスの特定ビット（第７９ビット）で、この判別を行うこともできる。
（７）上記では、ポリゴンを三角形としたが、形状はこれに限定されない。また、スプライトを四角形としたが、形状はこれに限定されない。さらに、テクスチャの形状を三角形又は四角形としたが、テクスチャの形状もこれに限定されない。
（８）上記では、テクスチャを２分割して格納したが、分割数はこれに限定されない。また、ポリゴンにマッピングするテクスチャを直角三角形としたが、テクスチャの形状はこれに限定されず任意の形状とすることができる。
（９）上記では、メモリマネージャ１４０によるテクスチャバッファ領域取得処理をハードワイヤードロジックにより達成した。しかし、ＣＰＵ５によるソフトウェア処理でも達成は可能であり、その場合、上記ロジックが不要、処理に柔軟性を持たせられるという利点がある。ただし、実行時間が遅くなる、ＣＰＵ５が高速な応答をしなければならないので、プログラミング上の制限が多くなるといった欠点が発生する。ハードワイヤードロジックで達成する場合は、この欠点は発生しない。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【図１】
2007043293.tif 000005
【図２】
2007043293.tif 000006
【図３】
2007043293.tif 000007
【図４】
2007043293.tif 000008
【図５】
2007043293.tif 000009
【図６】
2007043293.tif 000010
【図７】
2007043293.tif 000011
【図８】
2007043293.tif 000012
【図９】
2007043293.tif 000013
【図１０】
2007043293.tif 000014
【図１１】
2007043293.tif 000015
【図１２】
2007043293.tif 000016
【図１３】
2007043293.tif 000017
【図１４】
2007043293.tif 000018
【図１５】
2007043293.tif 000019
【図１６】
2007043293.tif 000020
【図１７】
2007043293.tif 000021
【図１８】
2007043293.tif 000022
【図１９】
2007043293.tif 000023
【図２０】
2007043293.tif 000024
【図２１】
2007043293.tif 000025
【図２２】
2007043293.tif 000026
【図２３】
2007043293.tif 000027
【図２４】
2007043293.tif 000028
【図２５】
2007043293.tif 000029
【図２６】
2007043293.tif 000030
【図２７】
2007043293.tif 000031
【図２８】
2007043293.tif 000032
【図２９】
2007043293.tif 000033
【図３０】
2007043293.tif 000034
【図３１】
2007043293.tif 000035
【図３２】
2007043293.tif 000036
【図３３】
2007043293.tif 000037
【国際調査報告】
2007043293.tif 000038
2007043293.tif 000039
2007043293.tif 000040
2007043293.tif 000041
2007043293.tif 000042