(57)【要約】シザリングのためのグラフィック要素（ポリゴン／スプライト）を切り取る座標についての情報が、ポリゴン構造体及びスプライト構造体に含まれず、その代替として、ビューポートを指定する情報であるメンバＶｉｅｗｐｏｒｔを含めることにより、ポリゴン及びスプライトを定義するポリゴン構造体及びスプライト構造体のサイズを小さくできる。このように、シザリング処理を行う場合において、グラフィック要素を定義するデータのサイズを小さくできる。
2007052420.tif 000002
【特許請求の範囲】
【請求項１】
スクリーンに表示する、複数のグラフィック要素を合成した画像を生成する画像生成装置であって、
前記グラフィック要素を定義するグラフィック定義データをメモリから読み込むデータ取得手段と、
前記スクリーンに設定される複数の描画矩形領域の境界を定義する座標を保持する座標保持手段と、
前記グラフィック定義データに基づいて、前記グラフィック要素の描画処理を行う描画手段と、を備え、
前記グラフィック定義データには、前記複数の描画矩形領域の何れを選択するかを示す第１のビットフィールドが含まれ、
前記描画手段は、前記グラフィック定義データを受領し、そのグラフィック定義データから前記第１のビットフィールドを抽出し、抽出した前記第１のビットフィールドが示す前記描画矩形領域の境界の座標を前記座標保持手段から取得し、前記グラフィック定義データが示す前記グラフィック要素における、抽出した前記第１のビットフィールドが示す前記描画矩形領域に含まれる部分のみの描画処理を行う、画像生成装置。
【請求項２】
シザリングのイネーブル／ディセーブルを設定する設定手段をさらに備え、
シザリングがディセーブルの場合、前記描画手段は、前記第１のビットフィールドの値及び前記座標保持手段に保持される座標にかかわらず、前記グラフィック要素の全体を描画する、請求項１記載の画像生成装置。
【請求項３】
前記グラフィック定義データには、シザリング適用／非適用を示す第２のビットフィールドが含まれ、
前記第２のビットフィールドがシザリング非適用を示している場合、前記描画手段は、前記第１のビットフィールドの値及び前記座標保持手段に保持される座標にかかわらず、前記グラフィック要素の全体を描画する、請求項２記載の画像生成装置。
【請求項４】
シザリングがイネーブルの場合とディセーブルの場合とで、前記グラフィック定義データの形式が異なり、
シザリングがディセーブルの場合には、前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドは、前記グラフィック定義データに含まれず、別の情報を格納するビットフィールドに置き換えられる、請求項２記載の画像生成装置。
【請求項５】
シザリングがイネーブルの場合とディセーブルの場合とで、前記グラフィック定義データの形式が異なり、
シザリングがディセーブルの場合には、前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドとシザリングの適用／非適用を示す前記第２のビットフィールドとは、前記グラフィック定義データに含まれず、別の情報を格納するビットフィールドに置き換えられる、請求項３記載の画像生成装置。
【請求項６】
前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドは、前記複数の描画矩形領域の何れかを選択するのに必要十分なビット数から成り、かつ、整数を示す、請求項１から５記載の画像生成装置。
【請求項７】
複数のグラフィック要素を合成した画像を生成する画像生成装置であって、
前記グラフィック要素を構成するピクセルのカラーデータを格納するカラーデータ格納手段と、
前記カラーデータ格納手段に格納されている前記カラーデータから、それぞれが複数ビットから成る１または複数のカラーコンポーネントデータと、前記ピクセルが不透明であるか否かを示す不透明フラグと、を抽出し、前記不透明フラグに従って、ピクセルデータを調整して出力するピクセルデータ出力手段と、を備え、
前記不透明フラグが不透明であることを示している場合、前記ピクセルデータ出力手段は、前記ピクセルの透明度データを不透明を示す値にセットし、その透明度データを、抽出した前記各カラーコンポーネントデータと共に、前記ピクセルデータとして出力し、
前記不透明フラグが不透明でないことを示している場合、前記ピクセルデータ出力手段は、前記カラーコンポーネントデータの各々から所定位置のビットを抽出し、抽出した全てのビットを連接して、前記ピクセルの透明度データとし、その透明度データと共に、前記カラーコンポーネントデータの各々の前記所定位置に所定値を代入して、前記ピクセルデータとして出力する、画像生成装置。
【請求項８】
複数のグラフィック要素を重ねて描画することが可能な画像生成装置であって、
１または複数のカラーコンポーネントデータと透明度データとから成るピクセルデータを出力するピクセルデータ出力手段と、
ピクセルデータの集合を一時的に格納するピクセルバッファ手段と、を備え、
前記ピクセルデータ出力手段が出力する描画対象のピクセルデータを第１のピクセルデータとし、前記ピクセルバッファ手段において描画対象位置に既に格納されているピクセルデータを第２のピクセルデータとしたときに、
前記画像生成装置は、前記第１のピクセルデータのカラーコンポーネントデータに、前記第１のピクセルデータの透明度データと前記第２のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納するカラー混合手段をさらに備え、
前記第１のピクセルデータのカラーコンポーネントデータは、不透明時のカラーコンポーネントデータと不透明度データとを予め乗算した値である、画像生成装置。
【請求項９】
前記ピクセルデータは、奥行きデータをさらに含み、前記カラー混合手段は、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを、前記第１のピクセルデータの奥行きデータに書き換える、請求項８記載の画像生成装置。
【請求項１０】
複数のグラフィック要素を重ねて描画することが可能な画像生成装置であって、
１または複数のカラーコンポーネントデータと、透明度データと、奥行きデータと、から成るピクセルデータを出力するピクセルデータ出力手段と、
ピクセルデータの集合を一時的に格納するピクセルバッファ手段と、を備え、
前記ピクセルデータ出力手段が出力する描画対象のピクセルデータを第１のピクセルデータとし、前記ピクセルバッファ手段において描画対象位置に既に格納されているピクセルデータを第２のピクセルデータとしたときに、
前記画像生成装置は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータと同じか又は小さい場合、前記第１のピクセルデータのカラーコンポーネントデータに、前記第１のピクセルデータの透明度データと前記第２のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納するカラー混合手段をさらに備え、
前記カラー混合手段は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータより大きい場合、前記第２のピクセルデータのカラーコンポーネントデータに、前記第２のピクセルデータの透明度データと前記第１のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納し、
前記第１のピクセルデータのカラーコンポーネントデータは、不透明時のカラーコンポーネントデータと不透明度データとを予め乗算した値である、画像生成装置。
【請求項１１】
前記カラー混合手段は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータと同じか又は小さい場合、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを、前記第１のピクセルデータの奥行きデータに書き換え、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータより大きい場合、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを維持する、請求項１０記載の画像生成装置。
【請求項１２】
前記カラーコンポーネントデータは、ＲＧＢの各成分である、請求項７から１１記載の画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のグラフィック要素を合成した画像を生成する画像生成装置及びその関連技術に関する。
【背景技術】
【０００２】
【非特許文献１】（山岡祥著，「Ｔｕｒｂｏ  Ｃによる３Ｄグラフィックス」，第１版，森北出版株式会社，１９９５年２月１０日，ｐ．２１３，２１４）には、クリッピング（シザリング）処理が紹介されている。
【０００３】
ところが、非特許文献１には、クリッピング（シザリング）処理を行う場合において、グラフィック要素を定義するデータのサイズの削減に着目した記載はない。
そこで、本発明は、シザリング処理を行う場合において、グラフィック要素を定義するデータのサイズを小さくできる画像生成装置及びその関連技術を提供することを目的とする。
また、上記の非特許文献１（ｐ．４８９−５０４）には、カラーブレンディングの手法が紹介されている。
ところが、非特許文献１には、カラーブレンディングの際のデータサイズの削減に着目した記載はない。
そこで、本発明の他の目的は、カラーブレンディングの際のカラーデータの削減を可能とする画像生成装置及びその関連技術を提供することである。
また、本発明のさらに他の目的は、カラーブレンディングの際の処理量の削減を可能とする画像生成装置及びその関連技術を提供することである。
【発明の開示】
【０００４】
本発明の第１の観点によれば、画像生成装置は、スクリーンに表示する、複数のグラフィック要素を合成した画像を生成する画像生成装置であって、前記グラフィック要素を定義するグラフィック定義データをメモリから読み込むデータ取得手段と、前記スクリーンに設定される複数の描画矩形領域の境界を定義する座標を保持する座標保持手段と、前記グラフィック定義データに基づいて、前記グラフィック要素の描画処理を行う描画手段と、を備え、前記グラフィック定義データには、前記複数の描画矩形領域の何れを選択するかを示す第１のビットフィールドが含まれ、前記描画手段は、前記グラフィック定義データを受領し、そのグラフィック定義データから前記第１のビットフィールドを抽出し、抽出した前記第１のビットフィールドが示す前記描画矩形領域の境界の座標を前記座標保持手段から取得し、前記グラフィック定義データが示す前記グラフィック要素における、抽出した前記第１のビットフィールドが示す前記描画矩形領域に含まれる部分のみの描画処理を行う。
この構成によれば、グラフィック要素を切り取る座標についての情報が、グラフィック定義データに含まれず、その代替として、座標保持手段のエントリを指し示す情報、つまり、第１のビットフィールドを含めることにより、グラフィック要素を定義するグラフィック定義データのサイズを小さくできる。
この画像生成装置は、シザリングのイネーブル／ディセーブルを設定する設定手段をさらに備え、シザリングがディセーブルの場合、前記描画手段は、前記第１のビットフィールドの値及び前記座標保持手段に保持される座標にかかわらず、前記グラフィック要素の全体を描画する。
この構成によれば、設定手段にアクセスすることにより、シザリング処理を行うか否かを一括で設定できるため、シザリング処理が全く不要な場合に、各グラフィック定義データ及び／または座標保持手段が保持している各座標データを書き換える必要がない。
この画像生成装置において、前記グラフィック定義データには、シザリング適用／非適用を示す第２のビットフィールドが含まれ、前記第２のビットフィールドがシザリング非適用を示している場合、前記描画手段は、前記第１のビットフィールドの値及び前記座標保持手段に保持される座標にかかわらず、前記グラフィック要素の全体を描画する。
この構成によれば、シザリングが常に行われる場合、あるいは、シザリングがイネーブルに設定されている場合でも、シザリング処理が適用されないグラフィック要素をスクリーンに表示できる。
上記画像生成装置において、シザリングがイネーブルの場合とディセーブルの場合とで、前記グラフィック定義データの形式が異なり、シザリングがディセーブルの場合には、前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドは、前記グラフィック定義データに含まれず、別の情報を格納するビットフィールドに置き換えられる。
この構成によれば、シザリング処理が全く不要な場合に、グラフィック定義データに含まれるシザリング処理用の第１のビットフィールドを、他の用途に用いることができるため、データを有効に用いることができ、メモリの節約になる。
上記画像生成装置において、シザリングがイネーブルの場合とディセーブルの場合とで、前記グラフィック定義データの形式が異なり、シザリングがディセーブルの場合には、前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドとシザリングの適用／非適用を示す前記第２のビットフィールドとは、前記グラフィック定義データに含まれず、別の情報を格納するビットフィールドに置き換えられる。
この構成によれば、シザリング処理が全く不要な場合に、グラフィック定義データに含まれるシザリング処理用の第１のビットフィールド及び第２のビットフィールドを、他の用途に用いることができるため、データを有効に用いることができ、メモリの節約になる。
上記画像生成装置において、前記描画矩形領域の何れを選択するかを示す前記第１のビットフィールドは、前記複数の描画矩形領域の何れかを選択するのに必要十分なビット数から成り、かつ、整数を示す。
この構成によれば、描画矩形領域の何れを選択するかを示す第１のビットフィールドが必要十分なビットサイズとなるため、データを有効に用いることができ、メモリの節約になる。
本発明の第２の観点によれば、画像生成装置は、複数のグラフィック要素を合成した画像を生成する画像生成装置であって、前記グラフィック要素を構成するピクセルのカラーデータを格納するカラーデータ格納手段と、前記カラーデータ格納手段に格納されている前記カラーデータから、それぞれが複数ビットから成る１または複数のカラーコンポーネントデータと、前記ピクセルが不透明であるか否かを示す不透明フラグと、を抽出し、前記不透明フラグに従って、ピクセルデータを調整して出力するピクセルデータ出力手段と、を備え、前記不透明フラグが不透明であることを示している場合、前記ピクセルデータ出力手段は、前記ピクセルの透明度データを不透明を示す値にセットし、その透明度データを、抽出した前記各カラーコンポーネントデータと共に、前記ピクセルデータとして出力し、前記不透明フラグが不透明でないことを示している場合、前記ピクセルデータ出力手段は、前記カラーコンポーネントデータの各々から所定位置のビットを抽出し、抽出した全てのビットを連接して、前記ピクセルの透明度データとし、その透明度データと共に、前記カラーコンポーネントデータの各々の前記所定位置に所定値を代入して、前記ピクセルデータとして出力する。
この構成によれば、不透明フラグの内容に応じて、ピクセルデータの生成方法を異ならせているため、カラーデータ格納手段に格納するカラーデータのフォーマットを、カラーが不透明時と、それ以外の時（半透明時及び透明時）と、で異ならせることができる。
従って、不透明時以外の時では、各カラーコンポーネントデータの色成分自体のビットを減らし、その減らしたビットに透明データの一部を割り当てて、カラーデータを作成することができる。一方、不透明時では、各カラーコンポーネントデータの色成分のビットを減らすことはしない。
このように、不透明時以外の時において、カラーの精度を少し落として、透明データを挿入し、半透明あるいは透明を表現する。その結果、半透明あるいは透明を表現する際のカラーデータのサイズを小さくできる。ちなみに、半透明時および透明時のカラーは、不透明時のカラーに比べて精度を落としても、描画結果に大きく影響しない。なお、カラーデータのフォーマットを、不透明時とそれ以外の時とで異ならせない場合は、半透明あるいは透明を表現する際には、不透明時と比較して、透明度データの分だけカラーデータのビット数を増やさなければならない。このようにピクセルデータの生成方法を異ならせることにより、カラーデータ格納手段のサイズ、ひいてはカラーデータ格納手段に設定するためのデータを格納するメモリのサイズを減らすことができる。
本発明の第３の観点によれば、画像生成装置は、複数のグラフィック要素を重ねて描画することが可能な画像生成装置であって、１または複数のカラーコンポーネントデータと透明度データとから成るピクセルデータを出力するピクセルデータ出力手段と、
ピクセルデータの集合を一時的に格納するピクセルバッファ手段と、を備え、前記ピクセルデータ出力手段が出力する描画対象のピクセルデータを第１のピクセルデータとし、前記ピクセルバッファ手段において描画対象位置に既に格納されているピクセルデータを第２のピクセルデータとしたときに、前記画像生成装置は、前記第１のピクセルデータのカラーコンポーネントデータに、前記第１のピクセルデータの透明度データと前記第２のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納するカラー混合手段をさらに備え、前記第１のピクセルデータのカラーコンポーネントデータは、不透明時のカラーコンポーネントデータと不透明度データとを予め乗算した値である。
このように、透明度を考慮したカラーブレンディングにおいて、ピクセルデータ出力手段が出力する描画対象のピクセルデータのカラーコンポーネントデータを、不透明時のピクセルデータのカラーコンポーネントと不透明度データとを予め乗算した値とすることにより、これを、ピクセルデータ手段が出力する透明度とピクセルバッファ手段の描画対象位置に格納されているピクセルデータのカラーポンポーネントとの積と、単に加算するだけで正しいカラーブレンディングを行うことができ、カラー混合手段での演算処理を削減できる。
この画像生成装置において、前記ピクセルデータは、奥行きデータをさらに含み、前記カラー混合手段は、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを、前記第１のピクセルデータの奥行きデータに書き換える。
この構成によれば、ピクセルバッファ手段が最も新しく描画されたピクセルの奥行き値を保持することになるので、カラー混合手段以降の処理においてピクセルの奥行き値に応じた加工（例えば、デプスキューイングや他のグラフィック要素との混合など）が可能となる。
本発明の第４の観点によれば、画像生成装置は、複数のグラフィック要素を重ねて描画することが可能な画像生成装置であって、１または複数のカラーコンポーネントデータと、透明度データと、奥行きデータと、から成るピクセルデータを出力するピクセルデータ出力手段と、ピクセルデータの集合を一時的に格納するピクセルバッファ手段と、を備え、前記ピクセルデータ出力手段が出力する描画対象のピクセルデータを第１のピクセルデータとし、前記ピクセルバッファ手段において描画対象位置に既に格納されているピクセルデータを第２のピクセルデータとしたときに、前記画像生成装置は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータと同じか又は小さい場合、前記第１のピクセルデータのカラーコンポーネントデータに、前記第１のピクセルデータの透明度データと前記第２のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納するカラー混合手段をさらに備え、前記カラー混合手段は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータより大きい場合、前記第２のピクセルデータのカラーコンポーネントデータに、前記第２のピクセルデータの透明度データと前記第１のピクセルデータのカラーコンポーネントデータとの積を加算し、加算結果を新たなピクセルデータとして、前記ピクセルバッファ手段の前記描画対象位置に格納し、前記第１のピクセルデータのカラーコンポーネントデータは、不透明時のカラーコンポーネントデータと不透明度データとを予め乗算した値である。
このように、透明度を考慮したカラーブレンディングにおいて、新たに描画しようとするピクセルデータの奥行き値が既に描画されているピクセルデータの奥行き値と同じ又はより手前を示す場合、ピクセルデータ出力手段が出力する描画対象のピクセルデータのカラーコンポーネントデータを、描画済みのピクセルデータのカラーコンポーネントと描画対象のピクセルデータの透明度データとを乗算した値と加算する。さらに、新たに描画しようとするピクセルデータの奥行き値が既に描画されているピクセルデータの奥行き値より奥を示す場合、ピクセルバッファ手段が出力する描画済みのピクセルデータのカラーコンポーネントデータを、描画対象のピクセルデータのカラーコンポーネントと描画済みのピクセルデータの透明度データとを乗算した値と加算している。以上の結果、カラー混合手段での演算処理を削減できる。また、グラフィック要素の描画順が必ずしも奥からの描画にならない場合においても、２つまでのグラフィック要素のピクセルデータの混合を正しく行うことができる。
この画像生成装置において、前記カラー混合手段は、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータと同じか又は小さい場合、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを、前記第１のピクセルデータの奥行きデータに書き換え、前記第１のピクセルデータの奥行きデータが前記第２のピクセルデータの奥行きデータより大きい場合、前記ピクセルバッファ手段の前記描画対象位置に既に格納されている奥行きデータを維持する。
この構成によれば、ピクセルバッファ手段が最も新しく描画されたピクセルの奥行き値を保持することになるので、カラー混合手段以降の処理においてピクセルの奥行き値に応じた加工（例えば、デプスキューイングや他のグラフィック要素との混合など）が可能となる。
上記第２の観点から第４の観点による画像生成装置において、前記カラーコンポーネントデータは、ＲＧＢの各成分である。
このように、ＲＧＢのような、色空間で直交座標系として扱えるカラーコンポーネントを用いることで、半透明合成を行うカラー混合手段の処理回路を簡単にできる。
【図面の簡単な説明】
【０００５】
本発明の新規な特徴は、特許請求の範囲に記載されている。しかしながら、発明そのもの及びその他の特徴と効果は、添付図面を参照して具体的な実施例の詳細な説明を読むことにより容易に理解される。
図１は、本発明の実施の形態によるシザリングの説明図である。
図２は、本発明の実施の形態によるシザリングを行う際のビューポート設定の例示図である。
図３は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。
図４は、図１のＲＰＵ９の内部構成を示すブロック図である。
図５は、テクスチャマッピングモードのポリゴン構造体の構成を示す図である。
図６は、テクスチャアトリビュート構造体の構成を示す図である。
図７は、グーローシェーディングモードのポリゴン構造体の構成を示す図である。
図８（ａ）は、シザリングディセーブル時のスプライト構造体の構成を示す図である。図８（ｂ）は、シザリングイネーブル時のスプライト構造体の構成を示す図である。
図９は、ポリゴン／スプライト共通データＣＩの構成を示す図である。
図１０は、図４のスライサ１１８による、グーローシェーディングモードのポリゴンに対する処理の説明図である。
図１１は、図４のスライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理の説明図である。
図１２は、図４のスライサ１１８による、スプライトに対する処理の説明図である。
図１３は、図４のスライサ１１８に対する入出力信号の説明図である。
図１４は、図３のＲＰＵ９内の、シザリングに関連する制御レジスタの説明図である。
図１５は、図４のピクセルステッパ１２０に対する入出力信号の説明図である。
図１６は、水平ピクセル解像度と制御レジスタＰｉｘｅｌＷｉｄｔｈの設定値との関係図である。
図１７は、図２のカラーパレットＲＡＭ１１の１エントリの構成を示す図である。
図１８は、図２のカラーブレンダ１３２の内部構成を示す図である。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、信号のどのビットかを示す必要があるときは、信号名の後に、［ａ：ｂ］あるいは［ａ］を付する。［ａ：ｂ］は、その信号の第ａ番目のビットから第ｂ番目のビットを意味し、［ａ］は、その信号の第ａ番目のビットを意味する。「０ｂ」は２進数を、「０ｘ」は１６進数を意味する。数式中、「・」は乗算を意味する。
まず、本発明の特徴の１つであるシザリングについて簡単に説明する。シザリングとは、指定されたビューポートの外側にあるポリゴン／スプライトを表示しないように、また、ポリゴン／スプライトのビューポートからはみ出した部分を切り取って表示しないようにする機能である。
本発明の実施の形態によるポリゴンのシザリングについては、システム全体のシザリング機能がイネーブルされている場合、ポリゴンごとにビューポートを指定できる。従って、ポリゴンは、システム全体のシザリング機能がイネーブルされている場合、指定したビューポート内にのみ描画される。なお、ポリゴンの場合、シザリングの適用の有無は、全ポリゴンに対して、一括してのみ可能である。一方、本発明の実施の形態によるスプライトのシザリングについては、システム全体のシザリング機能がイネーブルされている場合、スプライトごとにシザリングの適用の有無を指定でき、スプライトごとにビューポートを指定できる。
ここで、スクリーン座標系について説明しておく。テレビジョンモニタ等のディスプレイ装置（図示せず）への実際の表示に用いられる二次元座標系をスクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向２０４８ピクセル×垂直方向１０２４ピクセルの２次元ピクセル配列から構成される。座標原点は左上にあり、右方向がＸ軸の正、下方向がＹ軸の正に相当する。ただし、実際に表示される領域は、スクリーン座標系の全空間ではなく一部の空間である。この表示領域をスクリーンと呼ぶことにする。
図１は、本発明の実施の形態によるシザリングの説明図である。図１を参照して、スクリーンＳＣＲに、４つのビューポートＶＰ１〜ＶＰ４が設定されているとする。また、システム全体のシザリング機能がイネーブルであるとする。スプライトＳＰ０に対しては、シザリングの適用が設定され、かつ、ビューポートＶＰ１が設定されている。従って、図示した位置に描画座標が設定されている場合、スプライトＳＰ０の全体が描画されるのではなく、スプライトＳＰ０のうち、指定されたビューポートＶＰ１内の部分のみが描画される。つまり、スプライトＳＰ０は、指定されたビューポートＶＰ１内でのみ描画される。
スプライトＳＰ１に対しては、シザリングの不適用が設定されている。従って、スプライトＳＰ１は、ビューポートＶＰ１〜ＶＰ４に関係なく、その全体がスクリーンＳＣＲに描画される。
ポリゴンＰＧ０に対しては、ビューポートＶＰ１が指定されている。従って、図示した位置に描画座標が設定されている場合、ポリゴンＰＧ０は、ビューポートＶＰ３には描画されない。つまり、ポリゴンＰＧ０は、指定されたビューポートＶＰ１内でのみ描画される。
ポリゴンＰＧ１に対しては、ビューポートＶＰ３が指定されている。従って、図示した位置に描画座標が設定されている場合、ポリゴンＰＧ１の全体が描画されるのではなく、ポリゴンＰＧ１のうち、指定されたビューポートＶＰ３内の部分のみが描画される。つまり、ポリゴンＰＧ１は、指定されたビューポートＶＰ３内でのみ描画される。
図２（ａ）は、本発明の実施の形態によるシザリングを行う際のビューポート設定の例示図である。図２（ｂ）は、本発明の実施の形態によるシザリングを行う際のビューポート設定の他の例示図である。図２（ａ）を参照して、シザリング機能を備えるビューポートは最大で４つまで設定することができる。
ビューポートＶＰ１は、後述する制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１に設定されるＸ座標ＳｃｉｓｓｏｒＸ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ２に設定されるＸ座標ＳｃｉｓｓｏｒＸ２、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１に設定されるＹ座標ＳｃｉｓｓｏｒＹ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ２に設定されるＹ座標ＳｃｉｓｓｏｒＹ２によって定義されるビューポートを指す。
ビューポートＶＰ２は、後述する制御レジスタＳｃｉｓｓｏｒｉｎｇＸ３に設定されるＸ座標ＳｃｉｓｓｏｒＸ３、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ４に設定されるＸ座標ＳｃｉｓｓｏｒＸ４、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１に設定されるＹ座標ＳｃｉｓｓｏｒＹ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ２に設定されるＹ座標ＳｃｉｓｓｏｒＹ２によって定義されるビューポートを指す。
ビューポートＶＰ３は、後述する制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１に設定されるＸ座標ＳｃｉｓｓｏｒＸ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ２に設定されるＸ座標ＳｃｉｓｓｏｒＸ２、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ３に設定されるＹ座標ＳｃｉｓｓｏｒＹ３、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ４に設定されるＹ座標ＳｃｉｓｓｏｒＹ４によって定義されるビューポートを指す。
ビューポートＶＰ４は、後述する制御レジスタＳｃｉｓｓｏｒｉｎｇＸ３に設定されるＸ座標ＳｃｉｓｓｏｒＸ３、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ４に設定されるＸ座標ＳｃｉｓｓｏｒＸ４、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ３に設定されるＹ座標ＳｃｉｓｓｏｒＹ３、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ４に設定されるＹ座標ＳｃｉｓｓｏｒＹ４によって定義されるビューポートを指す。
もちろん、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ２、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ３、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ４、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ２、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ３、および制御レジスタＳｃｉｓｓｏｒｉｎｇＹ４には、任意の値を設定できる。例えば、あるビューポートが別のビューポートに完全に内包されるようにすることも可能である。図２（ｂ）では、ビューポートＶＰ４がビューポートＶＰ１に完全に内包される例が示されている。なお、ビューポートＶＰ２及びＶＰ３の図示は省略している。
図３は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。図３に示すように、このマルチメディアプロセッサは、外部メモリインタフェース３、ＤＭＡＣ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）４、中央演算処理装置（以下、「ＣＰＵ」と呼ぶ。）５、ＣＰＵローカルＲＡＭ７、レンダリングプロセッシングユニット（以下、「ＲＰＵ」と呼ぶ。）９、カラーパレットＲＡＭ１１、サウンドプロセシングユニット（以下、「ＳＰＵ」と呼ぶ。）１３、ＳＰＵローカルＲＡＭ１５、ジオメトリエンジン（以下、「ＧＥ」と呼ぶ。）１７、Ｙソーティングユニット（以下、「ＹＳＵ」と呼ぶ。）１９、外部インタフェースブロック２１、メインＲＡＭアクセスアービタ２３、メインＲＡＭ２５、Ｉ／Ｏバス２７、ビデオＤＡＣ（ｄｉｇｉｔａｌ  ｔｏ  ａｎａｌｏｇ  ｃｏｎｖｅｒｔｅｒ）２９、オーディオＤＡＣブロック３１、及びＡ／Ｄコンバータ（以下、「ＡＤＣ」と呼ぶ。）３３を具備する。メインＲＡＭ２５及び外部メモリ５０を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
ＣＰＵ５は、メモリＭＥＭに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、ＣＰＵ５は、ＤＭＡＣ４にプログラム及びデータの転送要求を行うこともできるし、ＤＭＡＣ４を介さずに、外部メモリインタフェース３及び外部バス５１を通じて、外部メモリ５０から直接プログラムコードをフェッチし、外部メモリ５０に直接データアクセスを行うこともできる。
Ｉ／Ｏバス２７は、ＣＰＵ５をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット（外部メモリインタフェース３、ＤＭＡＣ４、ＲＰＵ９、ＳＰＵ１３、ＧＥ１７、ＹＳＵ１９、外部インタフェースブロック２１、及びＡＤＣ３３）の制御レジスタ及びローカルＲＡＭ７，１１，１５へのアクセスに用いられる。このようにして、これらの機能ユニットは、Ｉ／Ｏバス２７を通じて、ＣＰＵ５により制御される。
ＣＰＵローカルＲＡＭ７は、ＣＰＵ５専用のＲＡＭであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びＣＰＵ５のみが扱う変数の格納領域等として使用される。
本発明の特徴の１つであるＲＰＵ９は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、ＲＰＵ９は、ＹＳＵ１９によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインＲＡＭ２５から読み出し、所定の処理を実行して、スクリーン（表示画面）のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオＤＡＣ２９に出力される。また、ＲＰＵ９は、ＤＭＡＣ４に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる２次元の画素配列データであり、各画素データは、カラーパレットＲＡＭ１１のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。従って、テクスチャパターンデータは、テクセルデータの集合である。
ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。
ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報（スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関する情報及びグーローシェーディングモードでのカラーデータ（ＲＧＢのカラーコンポーネント）を含む。）であり、１つのポリゴン構造体インスタンスに１つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報（スクリーンにおける座標及びテクスチャパターンに関する情報を含む。）であり、１つのスプライト構造体インスタンスに１つのスプライトが対応している。
ビデオＤＡＣ２９は、アナログのビデオ信号を生成するためのデジタル／アナログ変換器である。ビデオＤＡＣ２９は、ＲＰＵ９から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）に出力する。
カラーパレットＲＡＭ１１は、本実施の形態では５１２色すなわち５１２エントリのカラーパレットからなる。ＲＰＵ９は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットＲＡＭ１１を参照し、テクスチャパターンデータを、カラーデータ（ＲＧＢのカラーコンポーネント）に変換する。
ＳＰＵ１３は、ＰＣＭ（ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ）波形データ（以下、「ウェーブデータ」と呼ぶ。）、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、ＳＰＵ１３は、最大６４チャンネル分のウェーブデータを生成して時分割多重化するとともに、最大６４チャンネル分のエンベロープデータを生成してチャンネルボリュームデータと乗算し、アンプリチュードデータを時分割多重化する。そして、ＳＰＵ１３は、メインボリュームデータ、時分割多重化されたウェーブデータ、及び時分割多重化されたアンプリチュードデータを、オーディオＤＡＣブロック３１に出力する。また、ＳＰＵ１３は、ＤＭＡＣ４に対して、ウェーブデータ及びエンベロープデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
オーディオＤＡＣブロック３１は、ＳＰＵ１３から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）のオーディオ入力端子（図示せず）に出力される。
ＳＰＵローカルＲＡＭ１５は、ＳＰＵ１３がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ（例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など）を格納する。
ＧＥ１７は、三次元イメージを表示するための幾何演算を実行する。具体的には、ＧＥ１７は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度／ポリゴン明度計算（ベクトル内積）、及びポリゴン裏面カリング処理（ベクトル外積）などの演算を実行する。
ＹＳＵ１９は、メインＲＡＭ２５に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール１〜４に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。
ＹＳＵ１９によるソートルール１〜４について説明する。ソートルール１〜４におけるＹ座標はスクリーン座標系の値である。
ソートルール１は、最小Ｙ座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Ｙ座標とは、ポリゴンの３頂点のＹ座標のうち、最も小さいＹ座標のことである。ソートルール２は、最小Ｙ座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。
ただし、ＹＳＵ１９は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Ｙ座標が異なっている場合でも、それらが同一であるとみなして、ソートルール１ではなく、ソートルール２に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Ｙ座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール３である。
インタレーススキャンの場合でも、ソートルール１〜３が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその奇数ラインの１つ前の偶数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その１つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその偶数ラインの１つ前の奇数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。これがソートルール４である。
スプライトに関するソートルール１〜４は、それぞれポリゴンに関するソートルール１〜４と同様である。ここで、スプライトの最小Ｙ座標は、スプライトの４頂点のＹ座標のうち、最も小さいＹ座標である。
外部メモリインタフェース３は、外部バス５１を介して、外部メモリ５０からのデータの読み出し、及び外部メモリ５０へのデータの書き込みを司る。この場合、外部メモリインタフェース３は、図示しないＥＢＩ優先順位テーブルに従って、ＣＰＵ５及びＤＭＡＣ４からの外部バスアクセス要求要因（外部バス５１へのアクセスを要求する要因）を調停して、いずれか１つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス５１へのアクセスを許可する。ＥＢＩ優先順位テーブルは、ＣＰＵ５からの複数種類の外部バスアクセス要求要因及びＤＭＡＣ４からの外部バスアクセス要求要因の優先順位を定めたテーブルである。
ＤＭＡＣ４は、メインＲＡＭ２５と、外部バス５１に接続された外部メモリ５０と、の間でＤＭＡ転送を行う。この場合、ＤＭＡＣ４は、図示しないＤＭＡ優先順位テーブルに従って、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ転送要求要因（ＤＭＡ転送を要求する要因）を調停して、いずれか１つのＤＭＡ転送要求要因を選択する。そして、外部メモリインタフェース３に対して、ＤＭＡ要求を行う。ＤＭＡ優先順位テーブルは、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ要求要因の優先順位を定めたテーブルである。
外部インタフェースブロック２１は、周辺装置５４とのインタフェースであり、２４チャンネルのプログラマブルなデジタル入出力（Ｉ／Ｏ）ポートを含む。２４チャンネルのＩ／Ｏポートの各々は、４チャンネル分のマウスインタフェース機能、４チャンネル分のライトガンインタフェース機能、２チャンネル分の汎用タイマ／カウンタ、１チャンネル分の調歩同期式シリアルインタフェース機能、および１チャンネル分の汎用パラレル／シリアル変換ポート機能のうち１または複数に内部接続されている。
ＡＤＣ３３は、４チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置５２から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジダルデータに変換する。
メインＲＡＭアクセスアービタ２３は、機能ユニット（ＣＰＵ５、ＲＰＵ９、ＧＥ１７、ＹＳＵ１９、ＤＭＡＣ４、及び外部インタフェースブロック２１（汎用パラレル／シリアル変換ポート））からのメインＲＡＭ２５へのアクセス要求を調停して、いずれかの機能ユニットにアクセス許可を出す。
メインＲＡＭ２５は、ＣＰＵ５のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインＲＡＭ２５は、ＣＰＵ５が他の機能ユニットに受け渡すデータの格納領域、ＲＰＵ９及びＳＰＵ１３が外部メモリ５０からＤＭＡによって取得したデータの格納領域、ＧＥ１７及びＹＳＵ１９の入力データ及び出力データの格納領域等としても使用される。
外部バス５１は、外部メモリ５０にアクセスするためのバスである。ＣＰＵ５およびＤＭＡＣ４から、外部メモリインタフェース３を介してアクセスされる。外部バス５１のアドレスバスは、３０ビットから成り、最大で１Ｇバイト（＝８Ｇビット）の外部メモリ５０を接続することができる。外部バス５１のデータバスは、１６ビットから成り、８ビット又は１６ビットのデータバス幅を持つ外部メモリ５０を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。
図４は、図３のＲＰＵ９の内部構成を示すブロック図である。図４に示すように、ＲＰＵ９は、ＲＰＵ内メインＲＡＭアクセスアービタ１００、ポリゴンプリフェッチャ１０２、スプライトプリフェッチャ１０４、マージソータ１０６、プリフェッチバッファ１０８、リサイクルバッファ１１０、デプスコンパレータ１１２、バーテックスソータ１１４、バーテックスエキスパンダ１１６、スライサ１１８、ピクセルステッパ１２０、ピクセルディザ１２２、テクセルマッパ１２４、テクスチャキャッシュブロック１２６、バイリニアフィルタ１３０、カラーブレンダ１３２、ラインバッファブロック１３４、ビデオエンコーダ１３６、ビデオタイミングジェネレータ１３８、メモリマネージャ１４０、及びＤＭＡＣインタフェース１４２を含む。ラインバッファブロック１３４は、各々スクリーンの１水平ラインに対応するラインバッファＬＢ１及びＬＢ２を含む。なお、図４では、説明の便宜のため、カラーパレットＲＡＭ１１をＲＰＵ９に含めて記載している。
ＲＰＵ内メインＲＡＭアクセスアービタ１００は、ポリゴンプリフェッチャ１０２、スプライトプリフェッチャ１０４、及びメモリマネージャ１４０からメインＲＡＭ２５へのアクセス要求を調停して、いずれかにアクセス要求の許可を出す。許可されたアクセス要求は、メインＲＡＭアクセスアービタ２３に出力され、マルチメディアプロセッサ１内の他の機能ユニットからのアクセス要求との間で調停が行われる。
ポリゴンプリフェッチャ１０２は、メインＲＡＭ２５から、ＹＳＵ１９によるソート後の各ポリゴン構造体インスタンスを取り込む。ポリゴンプリフェッチャ１０２には、ＹＳＵ１９から、パルスＰＰＬが入力される。ＹＳＵ１９は、１つのポリゴン構造体インスタンスのソートが確定するたびに、パルスＰＰＬを出力する。従って、ポリゴンプリフェッチャ１０２は、ポリゴン構造体配列の全ポリゴン構造体インスタンスのうち、いくつのポリゴン構造体インスタンスのソートが完了したかを知ることができる。
このため、ポリゴンプリフェッチャ１０２は、全ポリゴン構造体インスタンスのソートの完了を待つことなく、１つのポリゴン構造体インスタンスのソートが確定するたびに、その都度、ポリゴン構造体インスタンスを取得できる。その結果、フレームの表示中に、当該フレームのためのポリゴン構造体インスタンスのソートを行うことができる。また、インタレーススキャンによる表示を行う場合にも、フィールドの表示中に当該フィールドのためのソートを行っても、正しい描画結果が得られる。なお、ポリゴンプリフェッチャ１０２は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、フレームおよびフィールドの切り替わりを知ることができる。
スプライトプリフェッチャ１０４は、メインＲＡＭ２５から、ＹＳＵ１９によるソート後の各スプライト構造体インスタンスを取り込む。スプライトプリフェッチャ１０４には、ＹＳＵ１９から、パルスＳＰＬが入力される。ＹＳＵ１９は、１つのスプライト構造体インスタンスのソートが確定するたびに、パルスＳＰＬを出力する。従って、スプライトプリフェッチャ１０４は、スプライト構造体配列の全スプライト構造体インスタンスのうち、いくつのスプライト構造体インスタンスのソートが完了したかを知ることができる。
このため、スプライトプリフェッチャ１０４は、全スプライト構造体インスタンスのソートの完了を待つことなく、１つのスプライト構造体インスタンスのソートが確定するたびに、その都度、スプライト構造体インスタンスを取得できる。その結果、フレームの表示中に、当該フレームのためのスプライト構造体インスタンスのソートを行うことができる。また、インタレーススキャンによる表示を行う場合にも、フィールドの表示中に当該フィールドのためのソートを行っても、正しい描画結果が得られる。なお、スプライトプリフェッチャ１０４は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、フレームおよびフィールドの切り替わりを知ることができる。
さて、マージソータ１０６の説明に移る前に、ポリゴン構造体、テクスチャアトリビュート構造体、およびスプライト構造体の構成を説明する。本実施の形態では、ポリゴンは三角形とする。
図５は、テクスチャマッピングモードのポリゴン構造体の構成を示す図である。図５に示すように、本実施の形態では、このポリゴン構造体は、１２８ビットで構成されている。このポリゴン構造体のメンバＴｙｐｅは、ポリゴンの描画モードを示し、テクスチャマッピングモードのポリゴンに対しては「０」が設定される。メンバＡｙ，Ａｘ，Ｂｙ，Ｂｘ，Ｃｙ及びＣｘは、それぞれ、ポリゴンの、頂点ＡのＹ座標、頂点ＡのＸ座標、頂点ＢのＹ座標、頂点ＢのＸ座標、頂点ＣのＹ座標、及び頂点ＣのＸ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＢｗ，Ｃｗ，Ｌｉｇｈｔ及びＴｓｅｇｍｅｎｔは、それぞれ、ポリゴンの、頂点Ｂのパースペクティブコレクト用パラメータ（＝Ａｚ／Ｂｚ）、頂点Ｃのパースペクティブコレクト用パラメータ（＝Ａｚ／Ｃｚ）、明度、及びテクスチャパターンデータの格納位置情報を示す。
メンバＴａｔｔｒｉｂｕｔｅ，Ｍａｐ，Ｆｉｌｔｅｒ，Ｄｅｐｔｈ及びＶｉｅｗｐｏｒｔは、それぞれ、テクスチャアトリビュート構造体のインデックス、テクスチャパターンデータのフォーマット種別、バイリニアフィルタリングあるいはニアレストネイバーのいずれかを示すフィルタリングモード、デプス値、及びシザリングのビューポート指定情報を示す。メンバＶｉｅｗｐｏｒｔに設定される「００」（１０進数「０」を示す）、「０１」（１０進数「１」を示す）、「１０」（１０進数「２」を示す）、及び「１１」（１０進数「３」を示す）は、それぞれ、ビューポートＶＰ１〜ＶＰ４を示す（図２参照）。
バイリニアフィルタリング及びニアレストネイバーについては後述する。デプス値（「表示深度情報」と呼ぶこともある。）は、描画対象のピクセルが重なった場合、どのピクセルを先に描画するかを示す情報であり、その値が大きいほど先に（奥に）描画され、その値が小さいほど後で（手前に）描画される。
以上が、テクスチャマッピングモードのポリゴン構造体の各メンバの内容であり、１つのポリゴン構造体のインスタンス（ポリゴン構造体に代入された値）により１つのポリゴンが定義される。
図６は、テクスチャアトリビュート構造体の構成を示す図である。図６に示すように、本実施の形態では、このテクスチャアトリビュート構造体は、３２ビットで構成されている。このテクスチャアトリビュート構造体のメンバＷｉｄｔｈ，Ｈｅｉｇｈｔ，Ｍ，Ｎ，Ｂｉｔ及びＰａｌｅｔｔｅは、それぞれ、テクスチャの幅（単位：テクセル数）より「１」小さい値、テクスチャの高さ（単位：テクセル数）より「１」小さい値、「Ｗｉｄｔｈ」の上位からのマスクビット数、「Ｈｅｉｇｈｔ」の上位からのマスクビット数、カラーモード（１ピクセル当りのビット数−１）、及びパレットブロックナンバを示す。カラーパレットの５１２色のエントリは、選択されたカラーモードに応じて複数のブロックに分割されており、メンバＰａｌｅｔｔｅにより、使用するパレットブロックが示される。
テクスチャアトリビュート構造体のインスタンスは、描画ポリゴン毎に１つずつ用意されるものではなく、６４個のテクスチャアトリビュート構造体インスタンスが、テクスチャマッピングモードの全ポリゴン構造体インスタンス及び全スプライト構造体インスタンスで共有される。
図７は、グーローシェーディングモードのポリゴン構造体の構成を示す図である。図７に示すように、本実施の形態では、このポリゴン構造体は、１２８ビットで構成されている。このポリゴン構造体のメンバＴｙｐｅは、ポリゴンの描画モードを示し、グーローシェーディングモードのポリゴンに対しては「１」が設定される。メンバＡｙ，Ａｘ，Ｂｙ，Ｂｘ，Ｃｙ及びＣｘは、それぞれ、ポリゴンの、頂点ＡのＹ座標、頂点ＡのＸ座標、頂点ＢのＹ座標、頂点ＢのＸ座標、頂点ＣのＹ座標、及び頂点ＣのＸ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＡｃ，Ｂｃ，及びＣｃは、それぞれ、ポリゴンの、頂点Ａのカラーデータ（ＲＧＢ各５ビット）、頂点Ｂのカラーデータ（ＲＧＢ各５ビット）、及び頂点Ｃのカラーデータ（ＲＧＢ各５ビット）を示す。
メンバＤｅｐｔｈ，Ｖｉｅｗｐｏｒｔ及びＮａｌｐｈａは、それぞれ、デプス値、シザリングのビューポート指定情報、及びアルファブレンディングで使用する（１−α）を示す。（１−α）は透明度を示し、「０００（二進数）」が透明度０％、すなわち完全不透明を表し、「１１１（二進数）」が透明度８７．５％を表す。メンバＶｉｅｗｐｏｒｔに設定される「００」（１０進数「０」を示す）、「０１」（１０進数「１」を示す）、「１０」（１０進数「２」を示す）、及び「１１」（１０進数「３」を示す）は、それぞれ、ビューポートＶＰ１〜ＶＰ４を示す（図２参照）。
以上が、グーローシェーディングモードのポリゴン構造体の各メンバの内容であり、１つのポリゴン構造体のインスタンス（ポリゴン構造体に代入された値）により１つのポリゴンが定義される。
図８（ａ）は、シザリングディセーブル時のスプライト構造体の構成を示す図、図８（ｂ）は、シザリングイネーブル時のスプライト構造体の構成を示す図である。図８（ａ）に示すように、本実施の形態では、シザリングディセーブル時のスプライト構造体は、６４ビットで構成されている。このスプライト構造体のメンバＡｘ及びＡｙは、それぞれ、スプライトの左上のＸ座標及びＹ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＤｅｐｔｈ，Ｆｉｌｔｅｒ及びＴａｔｔｒｉｂｕｔｅは、それぞれ、デプス値、フィルタリングモード（バイリニアフィルタリングあるいはニアレストネイバー）、及びテクスチャアトリビュート構造体のインデックスを示す。メンバＺｏｏｍＸ，ＺｏｏｍＹ及びＴｓｅｇｍｅｎｔは、それぞれ、Ｘ軸方向のスプライト拡大率（拡縮率）、Ｙ軸方向のスプライト拡大率（拡縮率）、及びテクスチャパターンデータの格納位置情報を示す。
図８（ｂ）に示すように、本実施の形態では、シザリングイネーブル時のスプライト構造体は、６４ビットで構成されている。このスプライト構造体のメンバＡｘ及びＡｙは、それぞれ、スプライトの左上のＸ座標及びＹ座標を示す。これらのＹ座標及びＸ座標は、スクリーン座標系の値である。
メンバＤｅｐｔｈ，Ｓｃｉｓｓｏｒ，Ｖｉｅｗｐｏｒｔ，Ｆｉｌｔｅｒ及びＴａｔｔｒｉｂｕｔｅは、それぞれ、デプス値、シザリング適用フラグ、シザリングのビューポート指定情報、フィルタリングモード（バイリニアフィルタリングあるいはニアレストネイバー）、及びテクスチャアトリビュート構造体のインデックスを示す。メンバＺｏｏｍＸ，ＺｏｏｍＹ及びＴｓｅｇｍｅｎｔは、それぞれ、Ｘ軸方向のスプライト拡大率（拡縮率）、Ｙ軸方向のスプライト拡大率（拡縮率）、及びテクスチャパターンデータの格納位置情報を示す。
メンバＳｃｉｓｓｏｒの設定（オン／オフ）を変えることで、スプライトごとにシザリングの適用の有無を制御できる。メンバＶｉｅｗｐｏｒｔに設定される「００」（１０進数「０」を示す）、「０１」（１０進数「１」を示す）、「１０」（１０進数「２」を示す）、及び「１１」（１０進数「３」を示す）は、それぞれ、ビューポートＶＰ１〜ＶＰ４を示す（図２参照）。
シザリングイネーブル時のスプライト構造体においては、シザリングディセーブル時のスプライト構造体に比べ、Ｘ座標及びＹ座標のビット数がそれぞれ１ビット少ない。シザリングイネーブル時にスプライトがスクリーンに配置される際には、後述のバーテックスエキスパンダ１１６によって、Ｘ座標に５１２ピクセル分のオフセット、Ｙ座標に２５６ピクセル分のオフセットが加えられる。また、デプス値のビット数も１ビット少ないが、シザリングイネーブル時には、後述のテクセルマッパ１２４によって、構造体に格納されているデプス値のＬＳＢ側に１ビットの「０」が付加され、シザリングディセーブル時と同様に８ビットのデプス値として扱われる。
以上が、シザリングディセーブル時及びシザリングイネーブル時のスプライト構造体の各メンバの内容であり、１つのスプライト構造体のインスタンス（スプライト構造体に代入された値）により１つのスプライトが定義される。スプライトのテクスチャアトリビュート構造体の構成は、図６のポリゴンのテクスチャアトリビュート構造体の構成と同じである。テクスチャアトリビュート構造体のインスタンスは、描画スプライト毎に１つずつ用意されるものではなく、６４個のテクスチャアトリビュート構造体インスタンスが、テクスチャマッピングモードの全ポリゴン構造体インスタンス及び全スプライト構造体インスタンスで共有される。
図４に戻って、マージソータ１０６は、ポリゴンプリフェッチャ１０２及びスプライトプリフェッチャ１０４から、それぞれ、ポリゴン構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンス、並びに、スプライト構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンスを受け取り、上述したＹＳＵ１９によるソートルール１〜４と同じソートルール１〜４に従って、マージソートを実行し、結果をプリフェッチバッファ１０８に送出する。
つまり、マージソータ１０６は、ソートルール１〜４に従って、ポリゴン構造体インスタンスを選択した場合、テクスチャマッピングモードのポリゴンについては、ポリゴン構造体インスタンスをポリゴン／スプライトデータＰＳＤ（１２８ビット）として、それに付随するテクスチャアトリビュート構造体インスタンスをテクスチャアトリビュート構造体インスタンスＴＡＩ（３２ビット）として、プリフェッチバッファ１０８に出力する。
また、マージソータ１０６は、ソートルール１〜４に従って、ポリゴン構造体インスタンスを選択した場合、グーローシェーディングモードのポリゴンについては、ポリゴン構造体インスタンスをポリゴン／スプライトデータＰＳＤ（１２８ビット）として、テクスチャアトリビュート構造体インスタンスＴＡＩ（３２ビット）の全ビットを「０」として、プリフェッチバッファ１０８に出力する。
一方、マージソータ１０６は、ソートルール１〜４に従って、スプライト構造体インスタンスを選択した場合、スプライト構造体インスタンスをポリゴン／スプライトデータＰＳＤ（１２８ビット）として、それに付随するテクスチャアトリビュート構造体インスタンスをテクスチャアトリビュート構造体インスタンスＴＡＩ（３２ビット）として、プリフェッチバッファ１０８に出力する。ただし、この場合のポリゴン／スプライトデータＰＳＤは、有効データがＬＳＢから詰められ、上位６４ビットは「０」を示す。
プリフェッチバッファ１０８は、マージソータ１０６から、マージソート後の構造体インスタンス（つまり、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩ）を順次読み込み、読み込んだ順番で構造体インスタンスを出力するＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）構造のバッファである。つまり、プリフェッチバッファ１０８には、マージソータ１０６により並べ替えられた順番で構造インスタンスが格納される。そして、格納された構造インスタンスは、対応するポリゴンあるいはスプライトの表示のための描画サイクルにおいて、格納された順番で出力される。なお、プリフェッチバッファ１０８は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、描画中の水平ラインを知ることができる。つまり、描画サイクルの切り替わりを知ることができる。本実施の形態では、例えば、プリフェッチバッファ１０８は、物理的にはリサイクルバッファ１１０とバッファを共有することが可能であり、リサイクルバッファ１１０のエントリ数を含め、（１２８ビット＋３２ビット）×１２８エントリとする。
リサイクルバッファ１１０は、次の描画サイクルでも使用される（つまり、再利用できる）構造体インスタンス（つまり、ポリゴン／スプライトデータＰＳＤ及びテクスチャアトリビュート構造体インスタンスＴＡＩ）を格納するＦＩＦＯ構造のバッファである。従って、リサイクルバッファ１１０に格納された構造体インスタンスは、次の描画サイクルで使用される。１描画サイクルは、１水平ラインの表示を行うための描画期間である。つまり、１描画サイクルは、ラインバッファＬＢ１あるいはＬＢ２のいずれかに、対応する水平ラインの表示のために必要な全てのデータの描画が行われる期間である。本実施の形態では、例えば、リサイクルバッファ１１０は、物理的にはプリフェッチバッファ１０８とバッファを共有することが可能であり、プリフェッチバッファ１０８のエントリ数を含め、（１２８ビット＋３２ビット）×１２８エントリとする。
デプスコンパレータ１１２は、プリフェッチバッファ１０８の先頭の構造体インスタンスに含まれるデプス値と、リサイクルバッファ１１０の先頭の構造体インスタンスに含まれるデプス値と、を比較して、より大きなデプス値を持つ（つまり、より奥に表示されるべき）構造体インスタンスを選択して、後段に出力する。この場合、デプスコンパレータ１１２は、選択した構造体インスタンスがポリゴン構造体インスタンスの場合は、バーテックスソータ１１４へ出力し、スプライト構造体インスタンスの場合は、バーテックスエキスパンダ１１６に出力する。また、デプスコンパレータ１１２は、選択した構造体インスタンスをスライサ１１８に出力する。なお、デプスコンパレータ１１２は、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣから、描画中の水平ラインを知ることができる。つまり、描画サイクルの切り替わりを知ることができる。
ここで、デプスコンパレータ１１２により選択された構造体インスタンスが、次の描画サイクルでも使用される（つまり、次の水平ラインの描画にも使用される）場合は、スライサ１１８により、当該構造体インスタンスがリサイクルバッファ１１０に出力され書き込まれる。ただし、デプスコンパレータ１１２により選択された構造体インスタンスが、次の描画サイクルで使用されない（つまり、次の水平ラインの描画には使用されない）場合は、リサイクルバッファ１１０には書き込まれない。
従って、リサイクルバッファ１１０には、現ラインの描画に使用される構造体インスタンス、及び次ラインの描画に使用される構造体インスタンスが、現ラインの描画順、及び次ラインの描画順に格納される。
バーテックスエキスパンダ１１６は、受け取ったスプライト構造体インスタンスに含まれる、スプライトの左上の頂点座標（Ａｘ，Ａｙ）、Ｙ軸方向の拡大率ＺｏｏｍＹ、及びＸ軸方向の拡大率ＺｏｏｍＸ、並びに、当該スプライト構造体インスタンスに付随するテクスチャアトリビュート構造体インスタンスに含まれる、テクスチャの幅より「１」小さい値Ｗｉｄｔｈ及び高さより「１」小さい値Ｈｅｉｇｈｔに基づいて、当該スプライトの頂点の座標（スクリーン座標系におけるＸＹ座標およびＵＶ座標系におけるＵＶ座標）を算出し、ポリゴン／スプライト共通データＣＩ（２０７ビット）としてスライサ１１８へ出力する。ただし、ポリゴン／スプライト共通データＣＩの後述のフィールドＷＧ＊（＊＝０，１，２）は、常に「０ｘ００４０」（＝１．０）として出力される。バーテックスエキスパンダ１１６が出力するポリゴン／スプライト共通データＣＩの構造（形式）は、バーテックスソータ１１４が出力するポリゴン／スプライト共通データＣＩの構造（形式）と同じである。
ここで、スクリーン座標系は上述の通りである。ＵＶ座標系は、テクスチャを構成する各テクセルが、ポリゴンあるいはスプライトにマッピングされる態様で配置される二次元直交座標系である。
バーテックスソータ１１４は、受け取ったポリゴン構造体インスタンス及びそれに付随するテクスチャアトリビュート構造体インスタンスから、ポリゴンの各頂点のパラメータ（ＸＹＵＶ座標、パースペクティブコレクト用パラメータ、及びカラーデータ）を取得及び算出し、各頂点のパラメータをＹ座標が小さい順に並べ替えて、ポリゴン／スプライト共通データＣＩとしてスライサ１１８へ出力する。頂点の出現順は、早いほうから頂点０、頂点１、及び頂点２とする。
つまり、テクスチャマッピングモードでは、バーテックスソータ１１４は、演算結果、つまり、各頂点０〜２のパラメータ（ＸＹ座標、パースペクティブコレクト後のＵＶ座標、及びパースペクティブコレクト用パラメータ）を、ポリゴン／スプライト共通データＣＩとして、スライサ１１８に出力する。
また、グーローシェーディングモードでは、バーテックスソータ１１４は、演算結果、つまり、各頂点０〜２のパラメータ（ＸＹ座標、及びカラーデータ）を、ポリゴン／スプライト共通データＣＩとして、スライサ１１８に出力する。
バーテックスソータ１１４が出力するポリゴン／スプライト共通データＣＩの構成（形式）は、バーテックスエキスパンダ１１６が出力するポリゴン／スプライト共通データＣＩの構成（形式）と同じである。
図９は、ポリゴン／スプライト共通データＣＩの構成を示す図である。図９を参照して、ポリゴン／スプライト共通データＣＩは、フィールドＦ（１ビット），ＷＧ＊（各１６ビット），ＶＲ＊（各１６ビット），ＵＢ＊（各１６ビット），Ｙ＊（各１０ビット）及びＸ＊（各１１ビット）からなる（計２０８ビット）。＊＝０，１，２であり、頂点を示す。
フィールドＦは、ポリゴン／スプライト共通データＣＩが、ポリゴンについてのものであるか、スプライトについてのものであるか、を示すフラグフィールドである。従って、バーテックスソータ１１４は、ポリゴンを示す「１」をフィールドＦに格納する。一方、バーテックスエキスパンダ１１６は、スプライトを示す「０」をフィールドＦに格納する。
バーテックスエキスパンダ１１６から出力されるポリゴン／スプライト共通データＣＩでは、フィールドＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊のＶ座標、Ｕ座標、Ｙ座標、及びＸ座標である。この場合、フィールドＷＧ＊には、「０ｘ００４０」（＝１．０）が格納される。上述したように、頂点＊の出現順は、早いほうから頂点０、頂点１、及び頂点２である。
バーテックスソータ１１４から出力される、テクスチャマッピングの対象であるポリゴン／スプライト共通データＣＩでは、フィールドＷＧ＊，ＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊のパースペクティブコレクト用パラメータ、パースペクティブコレクト済みＶ座標、パースペクティブコレクト済みＵ座標、Ｙ座標、及びＸ座標である。
バーテックスソータ１１４から出力される、グーローシェーディングの対象であるポリゴン／スプライト共通データＣＩでは、フィールドＷＧ＊，ＶＲ＊，ＵＢ＊，Ｙ＊及びＸ＊は、それぞれ頂点＊の緑成分、赤成分、青成分、Ｙ座標、及びＸ座標である。
図４のスライサ１１８について説明する。まず、スライサ１１８による、グーローシェーディングモードのポリゴンに対する処理を説明する。
図１０は、図４のスライサ１１８による、グーローシェーディングモードのポリゴンに対する処理の説明図である。図１０を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるポリゴン（三角形）と、描画対象の水平ラインと、の交点のＸＹ座標（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｅ）を求める。ここで、ポリゴンに対しては、描画対象の水平ラインと交わらない辺が存在する側の交点を終端（Ｘｅ，Ｙｅ）とし、当該辺が存在しない側の交点を始端（Ｘｓ，Ｙｓ）とする。
そして、スライサ１１８は、描画Ｙ座標ＹｒがＹ０≦Ｙｒ＜Ｙ１の範囲では、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点始端のＲＧＢ値（Ｒｓ，Ｇｓ，Ｂｓ）を算出するとともに、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点１のＲＧＢ値（ＶＲ１，ＷＧ１，ＵＢ１）に基づいて、直線補間により、交点終端のＲＧＢ値（Ｒｅ，Ｇｅ，Ｂｅ）を算出する。また、スライサ１１８は、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲では、頂点０のＲＧＢ値（ＶＲ０，ＷＧ０，ＵＢ０）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点始端のＲＧＢ値（Ｒｓ，Ｇｓ，Ｂｓ）を算出するとともに、頂点１のＲＧＢ値（ＶＲ１，ＷＧ１，ＵＢ１）及び頂点２のＲＧＢ値（ＶＲ２，ＷＧ２，ＵＢ２）に基づいて、直線補間により、交点終端のＲＧＢ値（Ｒｅ，Ｇｅ，Ｂｅ）を算出する。
そして、スライサ１１８は、ΔＲ、ΔＧ、ΔＢ及びΔＸｇを算出する。ここで、ΔＲ、ΔＧ、ΔＢは、描画対象の水平ラインにおけるΔＸｇあたりのＲ、Ｇ、Ｂそれぞれの変化量であり、ΔＸｇは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量である。ΔＸｇは、「＋１」または「−１」のいずれかとなる。
ΔＲ＝（Ｒｅ−Ｒｓ）／（Ｘｅ−Ｘｓ）
ΔＧ＝（Ｇｅ−Ｇｓ）／（Ｘｅ−Ｘｓ）
ΔＢ＝（Ｂｅ−Ｂｓ）／（Ｘｅ−Ｘｓ）
ΔＸｇ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｒｓ，Ｇｓ，Ｂｓ，Ｘｅ，ΔＲ，ΔＧ，ΔＢ及びΔＸｇを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスソータ１１４から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びポリゴンの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
次に、スライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理を説明する。
図１１は、図４のスライサ１１８による、テクスチャマッピングモードのポリゴンに対する処理の説明図である。図１１を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるポリゴン（三角形）と、描画対象の水平ラインと、の交点座標である始端（Ｘｓ，Ｙｓ）及び終端（Ｘｅ，Ｙｅ）を求める。この点は、グーローシェーディングモードのポリゴンに対する処理と同じである。
ここで、パースペクティブコレクト機能について説明する。透視投影変換された三次元イメージを表現するテクスチャマッピングにおいて、スクリーン上の描画ピクセルに対応するテクセルを、ポリゴンの各頂点座標に対応する、ＵＶ空間のテクスチャの各頂点座標の単なる線形補完によって求めると、マッピングされたイメージが歪んでしまうことがある。この歪みを解消するのがパースペクティブコレクト機能であり、具体的には、以下のような処理が行われる。
ポリゴンの各頂点Ａ，Ｂ，ＣをＵＶ空間へ写像したときの座標を、（Ａｕ，Ａｖ），（Ｂｕ，Ｂｖ），（Ｃｕ，Ｃｖ）とする。また、各頂点Ａ，Ｂ，Ｃのビュー座標を（Ａｘ，Ａｙ，Ａｚ），（Ｂｘ，Ｂｙ，Ｂｚ），（Ｃｘ，Ｃｙ，Ｃｚ）とする。そして、（Ａｕ／Ａｚ，Ａｖ／Ａｚ，１／Ａｚ），（Ｂｕ／Ｂｚ，Ｂｖ／Ｂｚ，１／Ｂｚ），（Ｃｕ／Ｃｚ，Ｃｖ／Ｃｚ，１／Ｃｚ）の線形補間によって求められた値（ｕ／ｚ，ｖ／ｚ，１／ｚ）のｕ／ｚに１／ｚの逆数を乗じた値ｕおよびｖ／ｚに１／ｚの逆数を乗じた値ｖ、つまり（ｕ，ｖ）をテクセル座標（Ｕ，Ｖ）としてテクセルデータを取得することにより、透視投影変換後の正確なテクスチャマッピングを実現する。ここで、ビュー座標とは、ビュー座標系の座標である。ビュー座標系は、ＸＹＺの三軸から成る三次元直交座標系であり、視点を原点とし、視線をＺ軸の正とする。
本実施の形態では、１／Ａｚ，１／Ｂｚ，１／Ｃｚを頂点毎に設定する代りに、それぞれの値にＡｚを掛け合わせた値、すなわち、Ａｚ／Ａｚ（＝Ａｗ），Ａｚ／Ｂｚ（＝Ｂｗ），Ａｚ／Ｃｚ（＝Ｃｗ）をポリゴン構造体に設定する（図５参照）。但し、頂点Ａに対するパラメータＡｗは常に「１」となるため、ポリゴン構造体には設定しない。
従って、本実施の形態では、（Ａｕ・Ａｗ，Ａｖ・Ａｗ，Ａｗ），（Ｂｕ・Ｂｗ，Ｂｖ・Ｂｗ，Ｂｗ），（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）の線形補間によって求められた値（ｕ・ｗ，ｖ・ｗ，ｗ）のｕ・ｗに１／ｗを乗じた値ｕおよびｖ・ｗに１／ｗを乗じた値ｖ、つまり（ｕ，ｖ）をテクセル座標（Ｕ，Ｖ）としてテクセルデータを取得することにより、透視投影変換後の正確なテクスチャマッピングを実現する。
このことを念頭においた上で、スライサ１１８は、描画Ｙ座標ＹｒがＹ０≦Ｙｒ＜Ｙ１の範囲では、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。また、スライサ１１８は、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲では、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。
このことを、頂点間のＹ座標がＢｙ≦Ａｙ＜Ｃｙであり、描画Ｙ座標ＹｒがＹ１≦Ｙｒ≦Ｙ２の範囲である場合を例に挙げて説明する。そうすると、スライサ１１８は、頂点０の（ＵＢ０，ＶＲ０，ＷＧ０）＝（Ｂｕ・Ｂｗ，Ｂｖ・Ｂｗ，Ｂｗ）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）＝（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）に基づいて、直線補間により、交点始端の（Ｕｓ，Ｖｓ，Ｗｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１，ＷＧ１）＝（Ａｕ・Ａｗ，Ａｖ・Ａｗ，Ａｗ）、及び頂点２の（ＵＢ２，ＶＲ２，ＷＧ２）＝（Ｃｕ・Ｃｗ，Ｃｖ・Ｃｗ，Ｃｗ）に基づいて、直線補間により、交点終端の（Ｕｅ，Ｖｅ，Ｗｅ）を算出する。
次に、スライサ１１８は、ΔＵ、ΔＶ、ΔＷ及びΔＸｔを算出する。ここで、ΔＵ、ΔＶ、ΔＷは、描画対象の水平ラインにおけるΔＸｔあたりのＵ座標（＝ｕ・ｗ）、Ｖ座標（＝ｖ・ｗ）、パースペクティブコレクト用パラメータＷ（＝ｗ）それぞれの変化量であり、ΔＸｔは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量である。ΔＸｔは、「＋１」または「−１」のいずれかとなる。
ΔＵ＝（Ｕｅ−Ｕｓ）／（Ｘｅ−Ｘｓ）
ΔＶ＝（Ｖｅ−Ｖｓ）／（Ｘｅ−Ｘｓ）
ΔＷ＝（Ｗｅ−Ｗｓ）／（Ｘｅ−Ｘｓ）
ΔＸｔ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｕｓ，Ｖｓ，Ｗｓ，Ｘｅ，ΔＵ，ΔＶ，ΔＷ及びΔＸｔを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスソータ１１４から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びポリゴンの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
次に、スライサ１１８によるスプライトに対する処理を説明する。
図１２は、図４のスライサ１１８による、スプライトに対する処理の説明図である。図１２を参照して、スライサ１１８は、与えられたポリゴン／スプライト共通データＣＩにより定義されるスプライト（矩形）と、描画対象の水平ラインと、の交点座標（Ｘｓ，Ｙｓ）及び（Ｘｅ，Ｙｅ）を求める。ここで、スプライトに対しては、先に描画される側の交点を始端（Ｘｓ，Ｙｓ）とし、後に描画される側の交点を終端（Ｘｅ，Ｙｅ）とする。
スプライトの各頂点０，１，２，３をＵＶ空間へ写像したときの座標は、（ＵＢ０，ＶＲ０），（ＵＢ１，ＶＲ１），（ＵＢ２，ＶＲ２），（ＵＢ３，ＶＲ３）である。ここで、ＵＢ３，ＶＲ３はスライサ１１８に入力されないが、それぞれ下記のようにスライサ１１８内で求められる。
ＵＢ３＝ＵＢ１
ＶＲ３＝ＶＲ２
スライサ１１８は、頂点０の（ＵＢ０，ＶＲ０）及び頂点２の（ＵＢ２，ＶＲ２）に基づいて、直線補間により、交点始端のＵＶ座標（Ｕｓ，Ｖｓ）を算出するとともに、頂点１の（ＵＢ１，ＶＲ１）及び頂点３の（ＵＢ３，ＶＲ３）に基づいて、直線補間により、交点終端のＵＶ座標（Ｕｅ，Ｖｅ）を算出する。
そして、スライサ１１８は、ΔＵおよびΔＶを算出する。ここで、ΔＵ、ΔＶは、描画対象の水平ラインにおけるΔＸｓあたりのＵ座標、Ｖ座標それぞれの変化量である。ΔＸｓは、描画対象の水平ラインにおける１ピクセルあたりのＸ座標の変化量であるが、常に「１」となるので、算出は行わない。
ΔＵ＝（Ｕｅ−Ｕｓ）／（Ｘｅ−Ｘｓ）
ΔＶ＝（Ｖｅ−Ｖｓ）／（Ｘｅ−Ｘｓ）
ΔＸｓ＝（Ｘｅ−Ｘｓ）／｜Ｘｅ−Ｘｓ｜＝１
スライサ１１８は、デプスコンパレータ１１２から受け取った構造体インスタンスと共に、算出したＸｓ，Ｕｓ，Ｖｓ，Ｘｅ，ΔＵ，ΔＶ及びΔＸｓを、ピクセルステッパ１２０へ送出する。また、スライサ１１８は、バーテックスエキスパンダ１１６から受け取ったポリゴン／スプライト共通データＣＩが、次の描画サイクルでも使用される場合は、リサイクルバッファ１１０に、デプスコンパレータ１１２から受け取った構造体インスタンスを書き込む。なお、ビデオタイミングジェネレータ１３８からの垂直走査カウント信号ＶＣ及びスプライトの頂点座標から、次の描画サイクルでの使用の有無を知ることができる。
ここで、スライサ１１８は、ポリゴン／スプライト共通データＣＩのフィールドＦから、ポリゴンおよびスプライトの別を認識でき、ポリゴン構造体インスタンスのメンバＴｙｐｅから、グーローシェーディング及びテクスチャマッピングの別を認識できる。
図４に戻って、ピクセルステッパ１２０は、グーローシェーディングモードのポリゴンについては、スライサ１１８から与えられたパラメータ（Ｘｓ，Ｒｓ，Ｇｓ，Ｂｓ，Ｘｅ，ΔＲ，ΔＧ，ΔＢ及びΔＸｇ）から、描画対象ピクセルの描画Ｘ座標とＲＧＢ値を求め、（１−α）値とともにピクセルディザ１２２に送出する。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）Ｘｓの赤成分Ｒｓに、１ピクセル当たりの赤成分の変化量ΔＲを順次加えていき、各ピクセルの赤成分ＲＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。緑成分ＧＸ及び青成分ＢＸについても同様である。また、交点の始端ＸｓにΔＸｇを順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＲＸ＝ΔＸｇ・ΔＲ・Ｘ＋Ｒｓ
ＧＸ＝ΔＸｇ・ΔＧ・Ｘ＋Ｇｓ
ＢＸ＝ΔＸｇ・ΔＢ・Ｘ＋Ｂｓ
Ｘｒ＝ΔＸｇ・Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＲＧＢ値（ＲＸ，ＧＸ，ＢＸ）、並びに描画Ｘ座標Ｘｒを、（１−α）値並びにデプス値（Ｄｅｐｔｈ）とともに、ピクセルディザ１２２に出力する。
また、ピクセルステッパ１２０は、テクスチャマッピングモードのポリゴンについては、スライサ１１８から与えられたパラメータ（Ｘｓ，Ｕｓ，Ｖｓ，Ｗｓ，Ｘｅ，ΔＵ，ΔＶ，ΔＷ及びΔＸｔ）から、描画対象ピクセルをＵＶ空間へ写像したときの座標（Ｕ，Ｖ）を求める。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）Ｘｓのパースペクティブコレクト用パラメータＷｓに、１ピクセル当たりのパースペクティブコレクト用パラメータの変化量ΔＷを順次加えていき、各ピクセルのパースペクティブコレクト用パラメータＷＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＷＸ＝ΔＸｔ・ΔＷ・Ｘ＋Ｗｓ
ピクセルステッパ１２０は、交点の始端（描画開始端）ＸｓのＵ座標（＝ｕ・ｗ）Ｕｓに、１ピクセル当たりのＵ座標の変化量ΔＵを順次加えていき、求めた値にＷＸの逆数を掛け合わせ、各ピクセルのＵ座標ＵＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。Ｖ座標（＝ｖ・ｗ）ＶＸについても同様である。また、交点の始端ＸｓにΔＸｔを順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＵＸ＝（ΔＸｔ・ΔＵ・Ｘ＋Ｕｓ）・（１／ＷＸ）
ＶＸ＝（ΔＸｔ・ΔＶ・Ｘ＋Ｖｓ）・（１／ＷＸ）
Ｘｒ＝ΔＸｔ・Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＵＶ座標（ＵＸ，ＶＸ）並びに描画Ｘ座標Ｘｒを、スライサ１１８から受け取った構造体インスタンス（テクスチャマッピングのポリゴン構造体インスタンス及びテクスチャアトリビュート構造体インスタンス）とともにテクセルマッパ１２４に出力する。
さらに、ピクセルステッパ１２０は、スプライトについては、スライサ１１８から与えられたスプライトのパラメータ（Ｘｓ，Ｕｓ，Ｖｓ，Ｘｅ，ΔＵ，ΔＶ及びΔＸｓ）から描画対象ピクセルをＵＶ空間へ写像したときの座標（Ｕ，Ｖ）を求める。具体的には、ピクセルステッパ１２０は、交点の始端（描画開始端）ＸｓのＵ座標Ｕｓに、１ピクセル当たりのＵ座標の変化量ΔＵを順次加えていき、各ピクセルのＵ座標ＵＸを求める。この処理を、交点の終端（描画終了端）Ｘｅに到達するまで行う。Ｖ座標ＶＸについても同様である。また、交点の始端ＸｓにΔＸｓ、すなわち「１」を順次加えていき、描画Ｘ座標Ｘｒを求める。なお、Ｘ＝０〜｜Ｘｅ−Ｘｓ｜であり、整数である。
ＵＸ＝ΔＸｓ・ΔＵ・Ｘ＋Ｕｓ
ＶＸ＝ΔＸｓ・ΔＶ・Ｘ＋Ｖｓ
Ｘｒ＝Ｘ＋Ｘｓ
ピクセルステッパ１２０は、求めた各ピクセルのＵＶ座標（ＵＸ，ＶＸ）、並びに描画Ｘ座標Ｘｒを、スライサ１１８から受け取った構造体インスタンス（スプライト構造体インスタンス及びテクスチャアトリビュート構造体インスタンス）とともにテクセルマッパ１２４に出力する。
ピクセルディザ１２２は、ピクセルステッパ１２０から与えられたＲＧＢ値の小数部にノイズを加え、マッハバンドを目立たなくするディザリングを実行する。なお、ピクセルディザ１２２は、ディザリング後のピクセルのＲＧＢ値を、描画Ｘ座標Ｘｒ，（１−α）値，及びデプス値とともにカラーブレンダ１３２に出力する。
テクセルマッパ１２４は、テクスチャアトリビュート構造体のメンバＦｉｌｔｅｒが「０」を示している場合には座標（ＵＸ，ＶＸ）の近傍４つのテクセルデータを指し示す４組のワードアドレスＷＡＤとビットアドレスＢＡＤを、メンバＦｉｌｔｅｒが「１」を示している場合には座標（ＵＸ，ＶＸ）に最も近い１つのテクセルデータを指し示す１組のワードアドレスＷＡＤとビットアドレスＢＡＤを算出して出力する。また、メンバＦｉｌｔｅｒが「０」を示している場合には、バイリニアフィルタリングにおける各テクセルの係数部に相当するバイリニアフィルタパラメータＢＦＰを算出して出力する。更に、シザリングイネーブル時のスプライトと、シザリングディセーブル時のスプライトと、ポリゴンと、で互いに異なるデプス値（メンバＤｅｐｔｈ）の形式を統一して出力する。
テクスチャキャッシュブロック１２６は、テクセルマッパ１２４から出力されたワードアドレスＷＡＤ、ビットアドレスＢＡＤ、構造体インスタンスのメンバＴｓｅｇｍｅｎｔから、各テクセルのアドレスを算出する。算出されたアドレスが指し示すテクセルデータが既にキャッシュに格納されている場合、格納されているテクセルデータ及びアトリビュート構造体のメンバＰａｌｅｔｔｅから、カラーパレットＲＡＭ１１のエントリを選択するインデックスを生成し、カラーパレットＲＡＭ１１に出力する。
一方、当該テクセルデータが、キャッシュに格納されていない場合は、テクスチャキャッシュブロック１２６は、メモリマネージャ１４０に対して、テクセルデータの取得指示を出す。メモリマネージャ１４０は、メインＲＡＭ２５から該当するテクスチャパターンデータを取得して、テクスチャキャッシュブロック１２６のキャッシュに格納する。また、メモリマネージャ１４０は、マージソータ１０６からの指示で、後段で必要になるテクスチャパターンデータを、外部メモリ５０から取得して、メインＲＡＭ２５に格納する。この場合、メモリマネージャ１４０は、ＤＭＡＣインタフェース１４２を介してＤＭＡＣ４にＤＭＡ転送を要求し、外部メモリ５０に格納されているテクスチャパターンデータをメインＲＡＭ２５に読み込む。
この際、メモリマネージャ１４０は、テクスチャマッピングモードのポリゴン用のテクスチャパターンデータについては、１ポリゴンにマッピングされるデータ全体を一括して取得し、メインＲＡＭ２５に格納するのに対し、スプライト用のテクスチャパターンデータについては、１スプライトにマッピングされるデータをライン単位で取得し、メインＲＡＭ２５に格納する。これは、描画対象の水平ラインに含まれるピクセル群をＵＶ空間に写像すると、ポリゴンの場合はＵＶ空間中のあらゆる直線上に写像される可能性があるのに対し、スプライトの場合はＵ軸に平行な直線上にのみ写像されるからである。
本実施の形態では、テクスチャキャッシュブロック１２６のキャッシュは、６４ビット×４エントリとし、ブロック置換アルゴリズムは、ＬＲＵ（ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ）とする。
カラーパレットＲＡＭ１１は、テクスチャキャッシュブロック１２６から入力されたテクセルデータとメンバＰａｌｅｔｔｅとが連接されたインデックスが示すエントリに含まれるＲＧＢ値及び半透明合成のための（１−α）値を、バイリニアフィルタパラメータＢＦＰ、デプス値、及び描画Ｘ座標Ｘｒとともにバイリニアフィルタ１３０に出力する。
本発明の特徴の１つであるカラーパレットＲＡＭ１１のエントリについては後で詳細に説明する。
バイリニアフィルタ１３０は、バイリニアフィルタリングを実行する。テクスチャマッピングにおいて、最も単純なピクセル描画色の算出方法は、ＵＶ空間に写像されたピクセル座標（ＵＸ，ＶＸ）に最も近いテクセル座標に位置するテクセルのカラーデータを取得し、取得したカラーデータからピクセルの描画色を算出する方法である。この手法を「ニアレストネイバー」と呼ぶ。
但し、隣り合うピクセルをＵＶ空間に写像した際の２点間の距離が１テクセル分の距離より極めて小さい場合、すなわち、スクリーン上でテクスチャが大きく拡大されてマッピングされる場合には、ニアレストネイバーではテクセルの境界が明暸に表示されてしまうため、粗いモザイク状のテクスチャマッピングとなってしまう。このような問題を解消する手法として、バイリニアフィルタリングを実行する。
詳しくは、バイリニアフィルタ１３０は、ＵＶ空間に写像されたピクセル座標（ＵＸ，ＶＸ）の近傍４テクセルのＲＧＢ値及び（１−α）値の加重平均を算出し、ピクセルの描画色を決定する。これにより、テクセルのカラーが滑らかに補完され、マッピング結果におけるテクセルの境界が目立たなくなる。具体的には、バイリニアフィルタリングは次式（バイリニアフィルタリングの式）により実行される。ただし、次式において、「ｕ」はＵ座標ＵＸの小数部、「ｖ」はＶ座標ＶＸの小数部、「ｎｕ」は（１−ｕ）、「ｎｖ」は（１−ｖ）、である。
Ｒ＝Ｒ０・ｎｕ・ｎｖ＋Ｒ１・ｕ・ｎｖ＋Ｒ２・ｎｕ・ｖ＋Ｒ３・ｕ・ｖ
Ｇ＝Ｇ０・ｎｕ・ｎｖ＋Ｇ１・ｕ・ｎｖ＋Ｇ２・ｎｕ・ｖ＋Ｇ３・ｕ・ｖ
Ｂ＝Ｂ０・ｎｕ・ｎｖ＋Ｂ１・ｕ・ｎｖ＋Ｂ２・ｎｕ・ｖ＋Ｂ３・ｕ・ｖ
Ａ＝Ａ０・ｎｕ・ｎｖ＋Ａ１・ｕ・ｎｖ＋Ａ２・ｎｕ・ｖ＋Ａ３・ｕ・ｖ
ここで、Ｒ０，Ｒ１，Ｒ２及びＲ３は、それぞれ、上記４テクセルのＲ値であり、Ｇ０，Ｇ１，Ｇ２及びＧ３は、それぞれ、上記４テクセルのＧ値であり、Ｂ０，Ｂ１，Ｂ２及びＢ３は、それぞれ、上記４テクセルのＢ値であり、Ａ０，Ａ１，Ａ２及びＡ３は、それぞれ、上記４テクセルの（１−α）値である。また、係数部ｎｕ・ｎｖ、ｕ・ｎｖ、ｎｕ・ｖ、及びｕ・ｖは、バイリニアフィルタパラメータＢＦＰとして入力されたものである。
バイリニアフィルタ１３０は、算出したピクセルのＲＧＢ値（ＲＧＢ）並びに（１−α）値（Ａ）を、デプス値並びに描画Ｘ座標Ｘｒとともに、カラーブレンダ１３２に出力する。
カラーブレンダ１３２の説明の前に、ラインバッファブロック１３４について説明する。ラインバッファブロック１３４は、ラインバッファＬＢ１及びＬＢ２を含み、一方のラインバッファが表示用に使用されているときは、他方のラインバッファが描画用に使用され、表示用と描画用とを交互に切り替えて使用するダブルバッファ方式を採用する。表示用に使用されているラインバッファ（ＬＢ１，ＬＢ２）は、ビデオタイミングジェネレータ１３８からの水平走査カウント信号ＨＣ及び垂直走査カウント信号ＶＣに従って、ピクセルごとのＲＧＢ値を、ビデオエンコーダ１３６に出力する。
カラーブレンダ１３２は、半透明合成を実行する。具体的には、次の通りである。カラーブレンダ１３２は、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられたピクセルのＲＧＢ値及び（１−α）値と、描画対象のラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置（描画Ｘ座標Ｘｒが示すピクセル）に格納されているＲＧＢ値とを用い、次式により、アルファブレンディングを実行し、結果を同じラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置に書き込む。
Ｒｂ＝Ｒｆ・（１−αｒ）＋Ｒｒ
Ｇｂ＝Ｇｆ・（１−αｒ）＋Ｇｒ
Ｂｂ＝Ｂｆ・（１−αｒ）＋Ｂｒ
αｂ＝αｆ・（１−αｒ）＋αｒ
ここで、「１−αｒ」は、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられた（１−α）値である。「Ｒｒ」、「Ｇｒ」及び「Ｂｒ」は、それぞれ、ピクセルディザ１２２あるいはバイリニアフィルタ１３０から与えられたＲＧＢ値である。「Ｒｆ」、「Ｇｆ」及び「Ｂｆ」は、それぞれ、描画用に使用されているラインバッファ（ＬＢ１，ＬＢ２）の描画対象ピクセル位置から取得したＲＧＢ値である。一般的なアルファブレンディングのアルゴリズムにおいては、上式のＲｒ，Ｇｒ，およびＢｒの項は、それぞれＲｒ・αｒ、Ｇｒ・αｒ、およびＢｒ・αｒとなるが、本実施の形態では、予めＲｒ・αｒ，Ｇｒ・αｒ，およびＢｒ・αｒの計算結果をＲｒ、Ｇｒ、およびＢｒとして用意しておくことにより、演算回路の簡略化を行っている。
本発明の特徴の１つであるカラーブレンダ１３２については、後で詳細に説明する。
ビデオエンコーダ１３６は、表示用に使用されているラインバッファ（ＬＢ１，ＬＢ２）から入力されたＲＧＢ値と、ビデオタイミングジェネレータ１３８から入力されたタイミング情報（複合同期信号ＳＹＮ、複合ブランキング信号ＢＬＫ、バーストフラグ信号ＢＳＴ、及びライン交番信号ＬＡ等）と、を信号ＶＳに対応したコンポジットビデオ信号を表すデータストリームＶＤに変換する。信号ＶＳは、テレビジョン方式（ＮＴＳＣやＰＡＬ等）を指示する信号である。
ビデオタイミングジェネレータ１３８は、入力されるクロックを基に、水平走査カウント信号ＨＣ及び垂直走査カウント信号ＶＣ、並びに、複合同期信号ＳＹＮ、複合ブランキング信号ＢＬＫ、バーストフラグ信号ＢＳＴ、及びライン交番信号ＬＡ等のタイミング信号を生成する。水平走査カウント信号ＨＣは、システムクロックの１周期毎にカウントアップされ、１水平ラインのスキャンが終了すると、リセットされる。また、垂直走査カウント信号ＶＣは、１／２水平ラインのスキャンが終了するたびにカウントアップされ、１フレームあるいは１フィールドのスキャンが終了すると、垂直走査カウント信号ＶＣはリセットされる。
さて、次に、シザリング機能との関連で、スライサ１１８及びピクセルステッパ１２０について詳細に説明していく。まず、スライサ１１８について説明する。
図１３は、図４のスライサ１１８に対する入出力信号の説明図である。なお、図中、信号名の後の（）内の数字は、その信号のビット数を示す。図１３を参照して、スライサ１１８には、デプスコンパレータ１１２から、信号Ｐｏｌｙ＿Ｖａｌｉｄ、信号Ｓｐ＿Ｖａｌｉｄ、信号Ｓｌ＿ＳｐＰｏｌｙ、及び信号Ｓｌ＿Ｔａｔｔが入力される。スライサ１１８には、バーテックスソータ１１４から、信号Ｐｏｌｙ＿ＣＩが入力される。スライサ１１８には、バーテックスエキスパンダ１１６から、信号Ｓｐ＿ＣＩが入力される。
スライサ１１８には、ビデオタイミングジェネレータ１３８から、信号Ｙｒが入力される。スライサ１１８には、後述する制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４から、信号ＳｃｉｓｓｏｒＹ１〜ＳｃｉｓｓｏｒＹ４が入力される。また、スライサ１１８は、後述する制御レジスタＲＰＵＣｏｎｔｒｏｌから、信号ＳＥＮが入力される。
スライサは、信号Ｐｓ＿Ｖａｌｉｄ、信号Ｘｓ、信号Ｘｅ、信号ＵＢｓ、信号ＶＲｓ、信号ＷＧｓ、信号ｄＵＢ／ｄＸ、信号ｄＶＲ／ｄＸ、信号ｄＷＧ／ｄＸ、信号Ｔｙｐｅ、信号Ｐｓ＿ＳｐＰｏｌｙ、及び信号Ｐｓ＿Ｔａｔｔを、ピクセルステッパ１２０へ出力する。また、スライサ１１８には、ピクセルステッパ１２０から、信号Ｐｓ＿Ａｃｋが入力される。
上記のように、スライサ１１８は、グーローシェーディングモードのポリゴン、テクスチャマッピングモードのポリゴン、及びスプライトといったグラフィック要素の種類に応じて、様々な演算を実行し、演算結果をピクセルステッパ１２０に出力する。この際、スライサ１１８は、後述の制御レジスタＲＰＵＣｏｎｔｒｏｌによってシザリングがイネーブルに設定され、かつ描画Ｙ座標ＹｒがシザリングＹ座標の範囲から外れている場合、ピクセルステッパ１２０に有効データを出力しない。すなわち、スライサ１１８は、システム全体のシザリングがイネーブルに設定されている場合は、後述する条件１から条件３の全てが成立する場合にのみ、ピクセルステッパ１２０に有効データを出力する。
デプスコンパレータ１１２からの入力信号について説明する。信号Ｐｏｌｙ＿Ｖａｌｉｄは、それがアサートされているとき、デプスコンパレータ１１２からの他の入力信号Ｓｌ＿ＳｐＰｏｌｙ及び信号Ｓｌ＿Ｔａｔｔ、並びにバーテックスソータ１１４からの入力信号Ｐｏｌｙ＿ＣＩが、有効な信号であることを示す。
信号Ｓｐ＿Ｖａｌｉｄは、それがアサートされているとき、デプスコンパレータ１１２からの他の入力信号Ｓｌ＿ＳｐＰｏｌｙ及び信号Ｓｌ＿Ｔａｔｔ、並びにバーテックスエキスパンダ１１６からの入力信号Ｓｐ＿ＣＩが、有効な信号であることを示す。
信号Ｓｌ＿ＳｐＰｏｌｙは、デプスコンパレータ１１２によって選択されたポリゴン構造体インスタンスまたはスプライト構造体インスタンスである。スプライト構造体インスタンスの場合、この信号の下位６４ビットが有効なデータであり、上位６４ビットは全て「０」を示す。信号Ｓｌ＿Ｔａｔｔは、デプスコンパレータ１１２によって選択されたポリゴン構造体インスタンスまたはスプライト構造体インスタンスに付随するテクスチャアトリビュート構造体インスタンスである。
バーテックスソータ１１４からの入力信号について説明する。信号Ｐｏｌｙ＿ＣＩは、ポリゴン／スプライト共通データＣＩである（図９参照）。
バーテックスエキスパンダ１１６からの入力信号について説明する。信号Ｓｐ＿ＣＩは、ポリゴン／スプライト共通データＣＩである（図９参照）。
ビデオタイミングジェネレータ１３８からの入力信号について説明する。信号Ｙｒは、描画位置を示すＹ座標である。ラインバッファ（ＬＢ１，ＬＢ２）への書き込みが行われるピクセルデータのスクリーン座標系におけるＹ座標を示す。
次に、ＲＰＵ９内のシザリングに関連する制御レジスタについて説明する。
図１４は、図３のＲＰＵ９内の、シザリングに関連する制御レジスタの説明図である。各制御レジスタは、図中対応するＩ／Ｏバスアドレスに配置される。図１４を参照して、制御レジスタＲＰＵＣｏｎｔｒｏｌの所定フィールド（１ビット）には、システム全体のシザリングのイネーブル（＝１）／ディセーブル（＝０）を設定するシザリングフラグが格納される。システム全体のシザリングがディセーブルの場合は、スプライト構造体は、図８（ａ）の形式に変更され、システム全体のシザリングがイネーブルの場合は、スプライト構造体は、図８（ｂ）の形式に変更される。
制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４には、それぞれ、ビューポートＶＰ１〜ＶＰ４を定義するためのＹ座標ＳｃｉｓｓｏｒＹ１〜ＳｃｉｓｓｏｒＹ４が設定される（図２参照）。制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４には、それぞれ、ビューポートＶＰ１〜ＶＰ４を定義するためのＸ座標ＳｃｉｓｓｏｒＸ１〜ＳｃｉｓｓｏｒＸ４が設定される（図２参照）。
制御レジスタＰｉｘｅｌＷｉｄｔｈは、スクリーン上での１ピクセルの幅、すなわち、スクリーン上の１水平ラインのピクセル数を設定するレジスタである。制御レジスタＳｃｒｅｅｎ  ＯｆｆｓｅｔＸは、スクリーン座標系における表示領域（つまり、スクリーン）の左端Ｘ座標ＯｆｆｓｅｔＸを、スクリーン座標系原点からのオフセット値で設定するレジスタである。
図１３に戻って、信号ＳｃｉｓｓｏｒＹ１〜ＳｃｉｓｓｏｒＹ４は、それぞれ、制御レジスタＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４に設定された値であり、ビューポートＶＰ１〜ＶＰ４を定義するためのＹ座標である。信号ＳＥＮは、制御レジスタＲＰＵＣｏｎｔｒｏｌのシザリングフラグである。
スライサ１１８の、ピクセルステッパ１２０に対する入出力信号について説明する。信号Ｐｓ＿Ｖａｌｉｄは、ピクセルステッパ１２０への出力信号が有効データであることを示す。信号Ｐｓ＿Ａｃｋは、有効な出力データがピクセルステッパ１２０に取得され、スライサ１１８が次のデータを出力可能であることを示す。信号Ｘｓは、描画始端のＸ座標を示し、信号Ｘｅは、描画終端のＸ座標を示す（図１０〜図１２参照）。
信号ＵＢｓは、パラメータＵＢ（遠近補正済み（ポリゴンの場合）Ｕ座標または青成分）の描画始端の値（ＵｓまたはＢｓ）を示す。信号ＶＲｓは、パラメータＶＲ（遠近補正済み（ポリゴンの場合）Ｖ座標または赤成分）の描画始端の値（ＶｓまたはＲｓ）を示す。信号ＷＧｓは、パラメータＷＧ（パースペクティブコレクト用パラメータＷまたは緑成分）の描画始端の値（ＷｓまたはＧｓ）を示す。これらについては、図１０〜図１２を参照されたい。
信号ｄＵＢ／ｄＸは、単位Ｘ座標あたりのパラメータＵＢの変化量（ΔＵまたはΔＢ）を示す。信号ｄＶＲ／ｄＸは、単位Ｘ座標あたりのパラメータＶＲの変化量（ΔＶまたはΔＲ）を示す。信号ｄＷＧ／ｄＸは、単位Ｘ座標あたりのパラメータＷＧの変化量（ΔＷまたはΔＧ）を示す。
信号Ｔｙｐｅは、ピクセルステッパ１２０への出力データが、ポリゴンかスプライトか、を示す。信号Ｐｓ＿ＳｐＰｏｌｙは、ポリゴン構造体インスタンスまたはスプライト構造体インスタンスである。信号Ｐｓ＿ＳｐＰｏｌｙがスプライト構造体インスタンスの場合、上位６４ビットは「０」を示す。信号Ｐｓ＿Ｔａｔｔは、テクスチャアトリビュート構造体インスタンスである。信号Ｐｓ＿ＳｐＰｏｌｙがグーローシェーディングモードのポリゴン構造体インスタンスである場合、この信号Ｐｓ＿Ｔａｔｔは「０」を示す。
さて、上記のように、システム全体のシザリングがイネーブルに設定されている場合は（制御レジスタＲＰＵＣｏｎｔｒｏｌのシザリングフラグがイネーブル）、スライサ１１８は、条件１〜条件３の全てが成立する場合にのみ、ピクセルステッパ１２０に有効データを出力した。この条件１〜条件３について詳述する。
条件１は、信号ＳＥＮ＝１（システム全体のシザリングがイネーブル）であることである。
条件２は、信号Ｐｏｌｙ＿Ｖａｌｉｄ＝１（ポリゴンが有効）であること、あるいは、信号Ｓｐ＿Ｖａｌｉｄ＝１（スプライトが有効）かつメンバＳｃｉｓｓｏｒ＝１（シザリング適用）であること、である。
条件３は、メンバＶｉｅｗｐｏｒｔ＝０（ビューポートＶＰ１に対応）かつ信号ＳｃｉｓｓｏｒＹ１≦信号Ｙｒ≦信号ＳｃｉｓｓｏｒＹ２、あるいは、メンバＶｉｅｗｐｏｒｔ＝１（ビューポートＶＰ２に対応）かつ信号ＳｃｉｓｓｏｒＹ１≦信号Ｙｒ≦信号ＳｃｉｓｓｏｒＹ２、あるいは、メンバＶｉｅｗｐｏｒｔ＝２（ビューポートＶＰ３に対応）かつ信号ＳｃｉｓｓｏｒＹ３≦信号Ｙｒ≦信号ＳｃｉｓｓｏｒＹ４、あるいは、メンバＶｉｅｗｐｏｒｔ＝３（ビューポートＶＰ４に対応）かつ信号ＳｃｉｓｓｏｒＹ３≦信号Ｙｒ≦信号ＳｃｉｓｓｏｒＹ４、であることである。つまり、条件３は、描画Ｙ座標Ｙｒが、ビューポートＶＰ１〜ＶＰ４（図２参照）のうちのいずれかに含まれていることである。
ここで、メンバＳｃｉｓｓｏｒは、システム全体のシザリングイネーブル時のスプライト構造体インスタンスＳｌ＿ＳｐＰｏｌｙに含まれるメンバＳｃｉｓｓｏｒであり、メンバＶｉｅｗｐｏｒｔは、ポリゴン構造体インスタンスＳｌ＿ＳｐＰｏｌｙまたはスプライト構造体インスタンスＳｌ＿ＳｐＰｏｌｙに含まれるメンバＶｉｅｗｐｏｒｔである。
次に、ピクセルステッパ１２０について説明する。
図１５は、図４のピクセルステッパ１２０に対する入出力信号の説明図である。なお、図中、信号名の後の（）内の数字は、その信号のビット数を示す。図１５を参照して、ピクセルステッパ１２０には、ビデオタイミングジェネレータ１３８から、信号Ｙｒが入力される。ピクセルステッパ１２０には、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４から、信号ＳｃｉｓｓｏｒＸ１〜ＳｃｉｓｓｏｒＸ４が入力される。また、ピクセルステッパ１２０には、制御レジスタＲＰＵＣｏｎｔｒｏｌ、制御レジスタＰｉｘｅｌＷｉｄｔｈ、及び制御レジスタＳｃｒｅｅｎＯｆｆｓｅｔＸから、それぞれ、信号ＳＥＮ、信号ＰｉｘｅｌＷｉｄｔｈ、及び信号ＯｆｆｓｅｔＸが入力される。
ピクセルステッパ１２０は、信号Ｇｓ＿Ｖａｌｉｄ、信号Ｒｅｄ、信号Ｇｒｅｅｎ、信号Ｂｌｕｅ、信号Ｙｒ＿Ｏｕｔ、及び信号Ｘｒを、ピクセルディザ１２２へ出力する。また、ピクセルステッパ１２０には、ピクセルディザ１２２から、信号Ｇｓ＿Ａｃｋが入力される。
ピクセルステッパ１２０は、信号Ｔｘ＿Ｖａｌｉｄ、信号Ｓｐｒｉｔｅ、信号ＵＸ、信号ＶＸ、信号Ｍａｐ、信号Ｆｉｌｔｅｒ、信号Ｌｉｇｈｔ、信号Ｄｅｐｔｈ、信号Ｔｓｅｇｍｅｎｔ、及び信号Ｔａｔｔ＿Ｏｕｔを、テクセルマッパ１２４へ出力する。また、ピクセルステッパ１２０には、テクセルマッパ１２４から、信号Ｔｘ＿Ａｃｋが入力される。
スライサ１１８とピクセルステッパ１２０との間の入出力信号は、図１３で説明したスライサ１１８とピクセルステッパ１２０との間の入出力信号と同じであり、その説明を省略する。
上記のように、ピクセルステッパ１２０は、グーローシェーディングモードのポリゴン、テクスチャマッピングモードのポリゴン、及びスプライトといったグラフィック要素の種類に応じて、様々な演算を実行し、演算結果を後段に出力する。この際、ピクセルステッパ１２０は、制御レジスタＲＰＵＣｏｎｔｒｏｌによってシザリングがイネーブルに設定され、かつ描画Ｘ座標がシザリングＸ座標の範囲から外れている場合、ピクセルディザ１２２およびテクセルマッパ１２４に有効データを出力しない。すなわち、ピクセルステッパ１２０は、システム全体のシザリングがイネーブルに設定されている場合は、後述する条件４〜条件６の全てが成立する場合にのみ、ピクセルディザ１２２およびテクセルマッパ１２４に有効データを出力する。
ビデオタイミングジェネレータ１３８からの入力信号について説明する。信号Ｙｒは、描画位置を示すＹ座標である。これは、ラインバッファ（ＬＢ１，ＬＢ２）への書き込みが行われるピクセルデータのＹ座標を示す。
制御レジスタからの入力信号について説明する。信号ＳｃｉｓｓｏｒＸ１〜ＳｃｉｓｓｏｒＸ４は、制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４の値である。信号ＳＥＮは、制御レジスタＲＰＵＣｏｎｔｒｏｌのシザリングフラグの値である。信号ＯｆｆｓｅｔＸは、制御レジスタＳｃｒｅｅｎＯｆｆｓｅｔＸの値である。
信号Ｐｉｘｅｌ＿Ｗｉｄｔｈは、制御レジスタＰｉｘｅｌＷｉｄｔｈの値である。この５ビットの信号は、ピクセルステッパ１２０内で、１水平ラインのピクセル数を示す信号へと変換される。
図１６は、水平ピクセル解像度と制御レジスタＰｉｘｅｌＷｉｄｔｈの設定値との関係図である。図１６を参照して、水平ピクセル解像度（左欄）の設定値（右欄）として、ピクセルステッパ１２０に、信号ＰｉｘｅｌＷｉｄｔｈが入力される。ピクセルステッパ１２０は、この右欄の設定値をデコードして、左欄の水平ピクセル数を得る。
図１５に戻って、ピクセルディザ１２２に対する入出力信号について説明する。信号Ｇｓ＿Ｖａｌｉｄは、ピクセルディザ１２２への出力信号が有効なデータであることを示す。信号Ｇｓ＿Ａｃｋは、有効な出力データがピクセルディザ１２２に取得され、ピクセルステッパ１２０が次のデータを出力可能であることを示す。
信号Ｒｅｄは、描画ピクセルのＲ（赤）成分ＲＸを示す。信号Ｇｒｅｅｎは、描画ピクセルのＧ（緑）成分ＧＸを示す。信号Ｂｌｕｅは、描画ピクセルのＢ（青）成分ＢＸを示す。信号Ｙｒ＿Ｏｕｔは、描画Ｙ座標Ｙｒの下位２ビットの値である。ピクセルディザ１２２で行われるディザリング処理に用いられる。信号Ｘｒは、描画Ｘ座標を示す。
テクセルマッパ１２４に対する入出力信号について説明する。信号Ｔｘ＿Ｖａｌｉｄは、テクセルマッパ１２４への出力信号が有効なデータであることを示す。信号Ｔｘ＿Ａｃｋは、有効な出力データがテクセルマッパ１２４に取得され、ピクセルステッパ１２０が次のデータを出力可能であることを示す。信号Ｓｐｒｉｔｅは、描画ピクセルがテクスチャマッピングモードのポリゴンかスプライトか、を示す。信号ＵＸは、描画ピクセルのＵ座標ＵＸを示す。信号ＶＸは、描画ピクセルのＶ座標ＶＸを示す。
信号Ｍａｐ，Ｆｉｌｔｅｒ，Ｌｉｇｈｔ，Ｄｅｐｔｈ及びＴｓｅｇｍｅｎｔは、それぞれ、ポリゴン構造体／スプライト構造体の同名のメンバの値である。描画ピクセルがスプライトの一部である場合、信号Ｌｉｇｈｔの値は「０」となり、信号「Ｄｅｐｔｈ」の上位４／５ビットも「０」になる。信号Ｔａｔｔ＿Ｏｕｔは、テクスチャアトリビュート構造体インスタンスの値を示す。信号Ｘｒは、描画Ｘ座標を示す。
さて、上記のように、システム全体のシザリングがイネーブルに設定されている場合は（制御レジスタＲＰＵＣｏｎｔｒｏｌのシザリングフラグがイネーブル）、ピクセルステッパ１２０は、条件４〜条件６の全てが成立する場合にのみ、ピクセルディザ１２２及びテクセルマッパ１２４に有効データを出力した。この条件４〜条件６について詳述する。
条件４は、信号ＳＥＮ＝１（システム全体のシザリングイネーブル）かつ信号Ｐｓ＿Ｖａｌｉｄ＝１（入力信号が有効）であることである。
条件５は、信号Ｔｙｐｅ＝０（ポリゴン）、あるいは、信号Ｔｙｐｅ＝１（スプライト）かつメンバＳｃｉｓｓｏｒ＝１（シザリング適用）であることである。
条件６は、メンバＶｉｅｗｐｏｒｔ＝０（ビューポートＶＰ１に対応）かつ信号ＳｃｉｓｓｏｒＸ１≦信号Ｘｒ≦信号ＳｃｉｓｓｏｒＸ２、あるいは、メンバＶｉｅｗｐｏｒｔ＝１（ビューポートＶＰ２に対応）かつ信号ＳｃｉｓｓｏｒＸ３≦信号Ｘｒ≦信号ＳｃｉｓｓｏｒＸ４、あるいは、メンバＶｉｅｗｐｏｒｔ＝２（ビューポートＶＰ３に対応）かつ信号ＳｃｉｓｓｏｒＸ１≦信号Ｘｒ≦信号ＳｃｉｓｓｏｒＸ２、あるいは、メンバＶｉｅｗｐｏｒｔ＝３（ビューポートＶＰ４に対応）かつ信号ＳｃｉｓｓｏｒＸ３≦信号Ｘｒ≦信号ＳｃｉｓｓｏｒＸ４、であることである。つまり、条件６は、描画Ｘ座標Ｘｒが、ビューポートＶＰ１〜ＶＰ４（図２参照）のうちのいずれかに含まれていることである。
ここで、メンバＳｃｉｓｓｏｒは、システム全体のシザリングイネーブル時のスプライト構造体インスタンスＳｐＰｏｌｙに含まれるメンバＳｃｉｓｓｏｒであり、メンバＶｉｅｗｐｏｒｔは、ポリゴン構造体インスタンスＳｐＰｏｌｙまたはスプライト構造体インスタンスＳｐＰｏｌｙに含まれるメンバＶｉｅｗｐｏｒｔである。
さて、以上のように、本実施の形態では、シザリングのためのグラフィック要素（ポリゴン／スプライト）を切り取る座標についての情報が、ポリゴン構造体及びスプライト構造体に含まれず、その代替として、ビューポートを指定する情報であるメンバＶｉｅｗｐｏｒｔを含めることにより（図５、図７、及び図８（ｂ）参照）、ポリゴン構造体及びスプライト構造体のサイズを小さくできる。
また、本実施の形態では、シザリングのイネーブル／ディセーブルを設定する制御レジスタＲＰＵＣｏｎｔｒｏｌを備え、シザリングがディセーブルの場合、メンバＶｉｅｗｐｏｒｔの値および制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４，ＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４に保持される座標にかかわらず、グラフィック要素（ポリゴン／スプライト）の全体が描画される。このようにすることで、ＣＰＵ５が、制御レジスタＲＰＵＣｏｎｔｒｏｌにアクセスすることにより、シザリング処理を行うか否かを一括で設定できるため、シザリング処理が全く不要な場合に、各ポリゴン構造体インスタンス及び各スプライト構造体インスタンス並びに制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４，ＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４が保持している各座標データを書き換える必要がない。
さらに、本実施の形態では、シザリングイネーブル時のスプライト構造体は、シザリング適用／非適用を示すメンバＳｃｉｓｓｏｒを含み、メンバＳｃｉｓｓｏｒがシザリング非適用を示している場合、メンバＶｉｅｗｐｏｒｔの値および制御レジスタＳｃｉｓｓｏｒｉｎｇＸ１〜ＳｃｉｓｓｏｒｉｎｇＸ４，ＳｃｉｓｓｏｒｉｎｇＹ１〜ＳｃｉｓｓｏｒｉｎｇＹ４に保持される座標にかかわらず、当該スプライト構造体インスタンスで定義されるスプライトの全体を描画する。このように、システム全体のシザリングがイネーブルに設定されている場合でも、シザリング処理が適用されないスプライトをスクリーンに表示できる。
さらに、本実施の形態では、システム全体のシザリングがイネーブルの場合とディセーブルの場合とで、スプライト構造体の形式を異ならせている（図８参照）。そして、システム全体のシザリングがディセーブルの場合には、図８（ａ）に示すように、メンバＶｉｅｗｐｏｒｔ及びメンバＳｃｉｓｓｏｒは、スプライト構造体には含まれず、メンバＡｘ，Ａｙ及びＤｅｐｔｈにそれぞれ１ビットが追加される。このように、シザリング処理が全く不要な場合に、スプライト構造体に含まれるシザリング処理用のメンバＶｉｅｗｐｏｒｔ及びメンバＳｃｉｓｓｏｒを、他の用途に用いることができるため、データを有効に用いることができ、メモリの節約になる。
さらに、本実施の形態では、ポリゴン構造体及びスプライト構造体のメンバＶｉｅｗｐｏｒｔは、ビューポートＶＰ１〜ＶＰ４の何れかを選択するのに必要十分なビット数（つまり、２ビット）から成り、かつ、整数を示す。このように、メンバＶｉｅｗｐｏｒｔが必要十分なビットサイズとなるため、データを有効に用いることができ、メモリの節約になる。
さて、次に、マルチメディアプロセッサ１の色空間について簡単に説明する。ソフトウェアから見たマルチメディアプロセッサ１の色空間は、ＲＧＢ（赤成分／緑成分／青成分）で表現される。ＲＧＢの各カラーコンポーネントは５ビットの値であり、各カラーコンポーネントで３２段階、計３２７６８色の表現が可能である。
グーローシェーディングモードのポリゴンにおいては、各頂点のカラーを計１５ビットのＲＧＢ値で直接指定することにより、表示色が指定される（図７参照）。一方、スプライトおよびテクスチャマッピングモードのポリゴンにおいては、表示色はカラーパレットＲＡＭ１１によって間接指定される。但し、テクスチャマッピングモードのポリゴンの表示色は、カラーパレットＲＡＭ１１から読み出されたＲＧＢ値に、ポリゴン構造体インスタンスのメンバ「Ｌｉｇｈｔ」の値を乗じた色になる（図５参照）。
次に、カラーパレットＲＡＭ１１の詳細を説明する。カラーパレットＲＡＭ１１は、その内部のエントリを指定するインデックスを入力として受取り、指定されたエントリのＲＧＢ値及び半透明合成のための（１−α）値（つまり、透明度）を出力する。カラーパレットＲＡＭ１１は、計５１２のエントリを持ち、各エントリは１６ビットの値を持っている。カラーパレットＲＡＭ１１は１セット（＝５１２エントリ）のみ用意されており、同時に表示される全てのスプライト及びテクスチャマッピングモードのポリゴンは、このカラーパレットＲＡＭ１１の５１２エントリを共有する。
図１７は、図４のカラーパレットＲＡＭ１１の１エントリの構成を示す図である。図１７（ａ）及び図１７（ｂ）に示すように、カラーパレットＲＡＭ１１のエントリのＭＳＢは、不透明（＝０）／半透明（＝１）を示すフラグとして機能し、残りの１５ビットは不透明／半透明で構成が異なる。なお、実施の形態において、半透明は透明を含むものとする。
図１７（ａ）に示すように、不透明の場合のエントリのフィールド［１４：１０］、フィールド［９：５］、及びフィールド「４：０」には、それぞれ、Ｂ値（青成分）（＝Ｂ［４：０］）、Ｇ値（緑成分）（＝Ｇ［４：０］）、及びＲ値（赤成分）（＝Ｒ［４：０］）が格納される。つまり、ＲＧＢの各カラーコンポーネントに５ビットが割り当てられる。
一方、図１７（ｂ）に示すように、半透明の場合のエントリのフィールド［１４：１１］、フィールド［１０］、フィールド「９：６」、フィールド［５］、フィールド［４：１］、及びフィールド「０」には、それぞれ、Ｂ値（青成分）（＝Ｂ［４：１］）、透明度Ｎａｌｐｈａの第２ビットＮａｌｐｈａ［２］、Ｇ値（緑成分）（＝Ｇ［４：１］）、透明度Ｎａｌｐｈａの第１ビットＮａｌｐｈａ［１］、Ｒ値（赤成分）（＝Ｒ［４：１］）、及び透明度Ｎａｌｐｈａの第０ビットＮａｌｐｈａ［０］が格納される。
このように、半透明の場合、ＲＧＢの各カラーコンポーネントに４ビットが割り当てられ、残りの３ビットはアルファブレンディングにおける（１−α）値、つまり、透明度Ｎａｌｐｈａ［２：０］として扱われる。なお、半透明の場合、ＲＧＢの各カラーコンポーネントのＬＳＢはエントリに含まれないが、暗黙的に「０」とみなされる。つまり、半透明の場合においても、ＲＧＢの各コンポーネントとして５ビットが必要になるが、ＬＳＢは、エントリには含まれず、暗黙的に「０」とみなされる。
ＲＧＢの各カラーコンポーネントは、最終的にＹＵＶ色差信号に変換されるが、この際の変換式は、以下のようになる。
Ｙ＝０．３１２５・Ｒ＋０．５６２５・Ｇ＋０．１２５０・Ｂ
Ｕ＝０．２５・（Ｂ−Ｙ）
Ｖ＝０．５０・（Ｒ−Ｙ）
次に、カラーブレンダ１３２の詳細を説明する。カラーブレンダ１３２は、ピクセルディザ１２２からグーローシェーディングモードのポリゴンの描画対象ピクセルのデータを、バイリニアフィルタ１３０からスプライトまたはテクスチャマッピングモードのポリゴンの描画対象ピクセルのデータを受領し、描画対象のピクセルが書き込まれる位置に格納されている描画済みピクセルのデータをラインバッファ（ＬＢ１，ＬＢ２）から読み出し、描画対象のピクセルのデータとのアルファブレンディングを施した上で、ラインバッファ（ＬＢ１，ＬＢ２）の同じ位置に書き込む。
図１８は、図４のカラーブレンダ１３２の内部構成を示す図である。なお、図中、信号名の後の（）内の数字は、その信号のビット数を示す。図１８を参照して、カラーブレンダ１３２は、ステートマシン１７０、カラーマルチプレクサ１７２、水平ピクセル解像度算出ユニット１７４、アドレスカリキュレータ１７６、ブレンダ１７８、カラーアンパッカ１８０、カラーパッカ１８２、およびテクスチャポリゴンライティングユニット１８４を含む。
まず、カラーブレンダ１３２の各ブロックへの入出力信号について説明する。カラーブレンダ１３２には、ピクセルディザ１２２から、信号「Ｇｒ＿Ｖａｌｉｄ」、信号「Ｇｒ＿Ｘｒ」、信号「Ｇｒ＿Ｒ」、信号「Ｇｒ＿Ｇ」、信号「Ｇｒ＿Ｂ」、信号「Ｇｒ＿Ｎａｌｐｈａ」、および信号「Ｇｒ＿Ｄｅｐｔｈ」が入力される。カラーブレンダ１３２は、ピクセルディザ１２２へ、信号「Ｇｒ＿Ａｃｋ」を出力する。
また、カラーブレンダ１３２には、バイリニアフィルタ１３０から、信号「Ｔｘ＿Ｖａｌｉｄ」、信号「Ｔｘ＿Ｘｒ」、信号「Ｓｐｒｉｔｅ」、信号「Ｌｉｇｈｔ」、信号「Ｔｘ＿Ｒ」、信号「Ｔｘ＿Ｇ」、信号「Ｔｘ＿Ｂ」、信号「Ｔｘ＿Ｎａｌｐｈａ」、および信号「Ｔｘ＿Ｄｅｐｔｈ」が入力される。カラーブレンダ１３２は、バイリニアフィルタ１３０へ、信号「Ｔｘ＿Ａｃｋ」を出力する。
さらに、カラーブレンダ１３２には、ラインバッファ（ＬＢ１，ＬＢ２）から、信号「Ｍｅ＿Ａｃｋ」および信号「Ｍｅ＿Ｒｄａｔａ」が入力される。カラーブレンダ１３２は、ラインバッファ（ＬＢ１，ＬＢ２）へ、信号「Ｍｅ＿Ｒｅｑ」、信号「Ｍｅ＿Ａｄｄｒｅｓｓ」、および信号「Ｍｅ＿Ｗｄａｔａ」を出力する。
さらに、カラーブレンダ１３２には、ＲＰＵ９内の制御レジスタ「Ｓｃｒｅｅｎ  Ｏｆｆｓｅｔ  Ｘ」および制御レジスタ「Ｐｉｘｅｌ  Ｗｉｄｔｈ」（図１４参照）から、信号「Ｏｆｆｓｅｔ＿Ｘ」および信号「Ｐｉｘｅｌ＿Ｗｉｄｔｈ」が入力される。
以下、各信号の内容を説明する。信号「Ｇｒ＿Ｖａｌｉｄ」は、ピクセルディザ１２２から有効なデータが出力されている期間、アサートされる信号である。信号「Ｇｒ＿Ｘｒ」は、グーローシェーディングモードのポリゴンのピクセルの描画Ｘ座標を示す。信号「Ｇｒ＿Ｒは、グーローシェーディングモードのポリゴンのピクセルのカラーＲ（赤）成分を示す。信号「Ｇｒ＿Ｇ」は、グーローシェーディングモードのポリゴンのピクセルのカラーＧ（緑）成分を示す。信号「Ｇｒ＿Ｂ」は、グーローシェーディングモードのポリゴンのピクセルのカラーＢ（青）成分を示す。
信号「Ｇｒ＿Ｎａｌｐｈａ」は、グーローシェーディングモードのポリゴンのピクセルの透明度Ｎａｌｐｈａを示す。信号「Ｇｒ＿Ｄｅｐｔｈ」は、グーローシェーディングモードのポリゴンのピクセルのデプス値（奥行き値）を示す。信号「Ｇｒ＿Ａｃｋ」は、ピクセルディザ１２２からの有効なデータ出力に対する処理が完了し、カラーブレンダ１３２がピクセルディザ１２２から次のデータを受け付け可能になったことを示す。
信号「Ｔｘ＿Ｖａｌｉｄ」は、バイリニアフィルタ１３０から有効なデータが出力されている期間、アサートされる信号である。信号「Ｔｘ＿Ｘｒ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルの描画Ｘ座標を示す。信号「Ｓｐｒｉｔｅ」は、バイリニアフィルタ１３０から出力されているデータが、スプライト、あるいは、テクスチャマッピングモードのポリゴンのいずれのものかを示す。この信号は、出力データがスプライトである場合にアサートされる。
信号「Ｌｉｇｈｔ」は、テクスチャマッピングモードのポリゴンの描画明度を示す。この信号は、出力データがスプライトである場合には、意味を持たない。信号「Ｔｘ＿Ｒ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルのカラーＲ（赤）成分を示す。信号「Ｔｘ＿Ｇ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルのカラーＧ（緑）成分を示す。信号「Ｔｘ＿Ｂ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルのカラーＢ（青）成分を示す。
信号「Ｔｘ＿Ｎａｌｐｈａ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルの透明度Ｎａｌｐｈａを示す。信号「Ｔｘ＿Ｄｅｐｔｈ」は、スプライトまたはテクスチャマッピングモードのポリゴンのピクセルのデプス値（奥行き値）を示す。信号「Ｔｘ＿Ａｃｋ」は、バイリニアフィルタ１３０からの有効なデータ出力に対する処理が完了し、カラーブレンダ１３２がバイリニアフィルタ１３０から次のデータを受け付け可能になったことを示す。
信号「Ｍｅ＿Ｒｅｑ」は、ラインバッファ（ＬＢ１，ＬＢ２）へのアクセスを要求する際に、アサートされる信号である。信号「Ｍｅ＿Ａｄｄｒｅｓｓ」は、ラインバッファ（ＬＢ１，ＬＢ２）のアクセスにおけるアドレスを示す。信号「Ｍｅ＿Ｗｄａｔａ」は、ラインバッファ（ＬＢ１，ＬＢ２）へのライトデータである。信号「Ｍｅ＿Ａｃｋ」は、ラインバッファ（ＬＢ１，ＬＢ２）へのアクセス要求が受け付けられると、アサートされる信号である。信号「Ｍｅ＿Ｒｄａｔａ」は、ラインバッファ（ＬＢ１，ＬＢ２）からのリードデータである。
信号「Ｏｆｆｓｅｔ＿Ｘ」は、スクリーン座標系における表示領域（つまり、実施の形態の冒頭で定義したスクリーン）の左端Ｘ座標を、スクリーン座標系原点からのオフセット値で示す。これは、ＲＰＵ９内の制御レジスタ「Ｓｃｒｅｅｎ  Ｏｆｆｓｅｔ  Ｘ」の値である。信号「Ｐｉｘｅｌ＿Ｗｉｄｔｈ」は、スクリーン上での１ピクセルの幅、すなわち、スクリーン上の１水平ラインのピクセル数を示している。これは、ＲＰＵ９内の制御レジスタ「Ｐｉｘｅｌ  Ｗｉｄｔｈ」の値である。
次に、カラーブレンダ１３２の各ブロックの機能を説明する。ステートマシン１７０は、カラーブレンダ１３２の動作の状態を制御し、カラーマルチプレクサ１７２に対するデータ選択指示、およびラインバッファ（ＬＢ１，ＬＢ２）に対するアクセス制御を司る。
具体的には、次の通りである。ステートマシン１７０は、信号「Ｇｒ＿Ｖａｌｉｄ」がアサートされているとき、ピクセルディザ１２２からのデータを選択することを示す選択信号「Ｓｅｌ＿Ｔｘ」＝０をカラーマルチプレクサ１７２に出力し、信号「Ｔｘ＿Ｖａｌｉｄ」がアサートされているとき、バイリニアフィルタ１３０からのデータを選択することを示す選択信号「Ｓｅｌ＿Ｔｘ」＝１をカラーマルチプレクサ１７２に出力する。また、ステートマシン１７０は、ピクセルディザ１２２からの有効なデータ出力に対する処理が完了し、カラーブレンダ１３２がピクセルディザ１２２から次のデータを受け付け可能になったとき、信号「Ｇｒ＿Ａｃｋ」をピクセルディザ１２２に出力し、バイリニアフィルタ１３０からの有効なデータ出力に対する処理が完了し、カラーブレンダ１３２がバイリニアフィルタ１３０から次のデータを受け付け可能になったとき、信号「Ｔｘ＿Ａｃｋ」をバイリニアフィルタ１３０に出力する。さらに、ステートマシン１７０は、ラインバッファ（ＬＢ１，ＬＢ２）へのアクセスを要求する際に、信号「Ｍｅ＿Ｒｅｑ」をアサートし、信号「Ｍｅ＿Ａｃｋ」がアサートされたとき、ラインバッファ（ＬＢ１，ＬＢ２）へのアクセスを各ブロックに指示する。
テクスチャポリゴンライティングユニット１８４は、信号「Ｓｐｒｉｔｅ」により、バイリニアフィルタ１３０からの入力データの種類を判別して、入力データがテクスチャマッピングモードのポリゴンのピクセルである場合、ピクセルのＲＧＢの各成分「Ｔｘ＿Ｒ」，「Ｔｘ＿Ｇ」及び「Ｔｘ＿Ｂ」に、明度「Ｌｉｇｈｔ」を乗じ、ライティング後のピクセルのＲＧＢの各成分「Ｌｉ＿Ｒ」，「Ｌｉ＿Ｇ」及び「Ｌｉ＿Ｂ」をカラーマルチプレクサ１７２に出力する。明度「Ｌｉｇｈｔ」の値は、「０ｂ１１１１１」が明度１００％（×１．０倍）を表し、「０ｂ０００００」が明度３．１２５％（×０．０３１２５倍）を表し、１ＬＳＢ増えるごとに明度が３．１２５％上昇する。
一方、テクスチャポリゴンライティングユニット１８４は、信号「Ｓｐｒｉｔｅ」により、バイリニアフィルタ１３０からの入力データの種類を判別して、入力データがスプライトのピクセルである場合、信号「Ｌｉ＿Ｒ」，「Ｌｉ＿Ｇ」及び「Ｌｉ＿Ｂ」に、それぞれ入力信号「Ｔｘ＿Ｒ」，「Ｔｘ＿Ｇ」及び「Ｔｘ＿Ｂ」の値をそのまま代入して、カラーマルチプレクサ１７２に出力する。
カラーマルチプレクサ１７２は、ステートマシン１７０からの信号「Ｓｅｌ＿Ｔｘ」に従い、ピクセルディザ１２２からのデータ、あるいは、バイリニアフィルタ１３０からのデータのいずれかを選択する。
カラーマルチプレクサ１７２は、ピクセルディザ１２２からのデータを選択した場合、描画Ｘ座標「Ｇｒ＿Ｘｒ」を、描画Ｘ座標「Ｒｅ＿Ｘｒ」として、アドレスカリキュレータ１７６に出力する。また、この場合、カラーマルチプレクサ１７２は、Ｒ成分「Ｇｒ＿Ｒ」，Ｇ成分「Ｇｒ＿Ｇ」，Ｂ成分「Ｇｒ＿Ｂ」，透明度「Ｇｒ＿Ｎａｌｐｈａ」及びデプス値「Ｇｒ＿Ｄｅｐｔｈ」を、それぞれ、Ｒ成分「Ｒｅ＿Ｒ」，Ｇ成分「Ｒｅ＿Ｇ」，Ｂ成分「Ｒｅ＿Ｂ」，透明度「Ｒｅ＿Ｎａｌｐｈａ」及びデプス値「Ｒｅ＿Ｄｅｐｔｈ」として、ブレンダ１７８に出力する。
一方、カラーマルチプレクサ１７２は、バイリニアフィルタ１３０からのデータを選択した場合、描画Ｘ座標「Ｔｘ＿Ｘｒ」を、描画Ｘ座標「Ｒｅ＿Ｘｒ」として、アドレスカリキュレータ１７６に出力する。また、この場合、カラーマルチプレクサ１７２は、Ｒ成分「Ｌｉ＿Ｒ」，Ｇ成分「Ｌｉ＿Ｇ」，Ｂ成分「Ｌｉ＿Ｂ」，透明度［Ｔｘ＿Ｎａｌｐｈａ」及びデプス値「Ｔｘ＿Ｄｅｐｔｈ」を、それぞれ、Ｒ成分「Ｒｅ＿Ｒ」，Ｇ成分「Ｒｅ＿Ｇ」，Ｂ成分「Ｒｅ＿Ｂ」，透明度「Ｒｅ＿Ｎａｌｐｈａ」及びデプス値「Ｒｅ＿Ｄｅｐｔｈ」として、ブレンダ１７８に出力する。
水平ピクセル解像度算出ユニット１７４は、信号「Ｐｉｘｅｌ＿Ｗｉｄｔｈ」の値から、スクリーンの１水平ラインのピクセル数を算出する。そして、水平ピクセル解像度算出ユニット１７４は、算出されたピクセル数「Ｈｏｒ＿Ｐｉｘ」を、アドレスカリキュレータ１７６に出力する。
図１６を参照して、水平ピクセル解像度（左欄）の設定値（右欄）として、水平ピクセル解像度算出ユニット１７４に、信号「Ｐｉｘｅｌ＿Ｗｉｄｔｈ」が入力される。水平ピクセル解像度算出ユニット１７４は、この右欄の設定値をデコードして、左欄の水平ピクセル数を得る。
図１８に戻って、アドレスカリキュレータ１７６は、描画Ｘ座標「Ｒｅ＿Ｘｒ」，水平ピクセル数「Ｈｏｒ＿Ｐｉｘ」，及び信号「Ｏｆｆｓｅｔ＿Ｘ」から、ラインバッファ（ＬＢ１，ＬＢ２）における描画対象ピクセルのアドレス「Ｍｅ＿Ａｄｄｒｅｓｓ」を算出する。アドレスカリキュレータ１７６は、算出したアドレス「Ｍｅ＿Ａｄｄｒｅｓｓ」を、ラインバッファ（ＬＢ１，ＬＢ２）に出力する。
ここで、ラインバッファ（ＬＢ１，ＬＢ２）からのリードデータ（カラーデータ）「Ｍｅ＿Ｒｄａｔａ」は、２８ビットの信号である。この２８ビットの信号「Ｍｅ＿Ｒｄａｔａ」は、カラーブレンダ１３２内部で上位１２ビットと下位１６ビットとに分けられる。この上位１２ビットは、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に現在格納されているピクセルのデプス値「Ｍｅ＿Ｄｅｐｔｈ」として、ブレンダ１７８に入力され、この下位１６ビットはラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に現在格納されているピクセルのカラーデータ「Ｍｅ＿Ｃｏｌｏｒ」として、カラーアンパッカ１８０に入力される。
カラーアンパッカ１８０は、１６ビットのカラーデータ「Ｍｅ＿Ｃｏｌｏｒ」から、各５ビットのＲ（赤）成分「Ｍｅ＿Ｒ」，Ｇ（緑）成分「Ｍｅ＿Ｇ」及びＢ（青）成分「Ｍｅ＿Ｂ」と、４ビットの透明度「Ｍｅ＿Ｎａｌｐｈａ」とを抽出して、ブレンダ１７８に出力する。Ｒ（赤）成分「Ｍｅ＿Ｒ」，Ｇ（緑）成分「Ｍｅ＿Ｇ」，Ｂ（青）成分「Ｍｅ＿Ｂ」及び透明度「Ｍｅ＿Ｎａｌｐｈａ」は、それぞれ、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に現在格納されているピクセルのＲ（赤）成分，Ｇ（緑）成分，Ｂ（青）成分及び透明度Ｎａｌｐｈａを表す。
これらの抽出方法は、下記のように、カラーデータ「Ｍｅ＿Ｃｏｌｏｒ」のＭＳＢの値により異なる。次式において、“＝＝”は等号、“＝”は代入、“｛，｝”はビットの連接を表す。
（ｉ）Ｍｅ＿Ｃｏｌｏｒ［１５］＝＝０（不透明）の場合
Ｍｅ＿Ｒ＝Ｍｅ＿Ｃｏｌｏｒ［４：０］
Ｍｅ＿Ｇ＝Ｍｅ＿Ｃｏｌｏｒ［９：５］
Ｍｅ＿Ｂ＝Ｍｅ＿Ｃｏｌｏｒ［１４：１０］
Ｍｅ＿Ｎａｌｐｈａ＝０ｂ００００（不透明を示す値）
（ｉｉ）Ｍｅ＿Ｃｏｌｏｒ［１５］＝＝１（半透明）の場合
Ｍｅ＿Ｒ＝｛Ｍｅ＿Ｃｏｌｏｒ［４：１］，０ｂ０｝
Ｍｅ＿Ｇ＝｛Ｍｅ＿Ｃｏｌｏｒ［９：６］，０ｂ０｝
Ｍｅ＿Ｂ＝｛Ｍｅ＿Ｃｏｌｏｒ［１４：１１］，０ｂ０｝
Ｍｅ＿Ｎａｌｐｈａ＝｛０ｂ０，Ｍｅ＿Ｃｏｌｏｒ［１０］，Ｍｅ＿Ｃｏｌｏｒ［５］，Ｍｅ＿Ｃｏｌｏｒ［０］｝＋１
ところで、カラーパレットＲＡＭ１１の出力段にも、カラーアンパッカ１８０と同じ構成のカラーアンパッカ１９０（図２参照）が含まれ、カラーパレットＲＡＭ１１からの１６ビットのリードデータから、各５ビットのＲ成分，Ｇ成分，Ｂ成分と４ビットの透明度Ｎａｌｐｈａを抽出する。
ブレンダ１７８は、カラーマルチプレクサ１７２から出力される、描画対象ピクセルのカラーデータ「Ｒｅ＿Ｒ」，「Ｒｅ＿Ｇ」，「Ｒｅ＿Ｂ」，「Ｒｅ＿Ｎａｌｐｈａ」及びデプス値「Ｒｅ＿Ｄｅｐｔｈ」と、カラーアンパッカ１８０から出力される、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に現在格納されているピクセルのカラーデータ「Ｍｅ＿Ｒ」，「Ｍｅ＿Ｇ」，「Ｍｅ＿Ｂ」，「Ｍｅ＿Ｎａｌｐｈａ」及びデプス値「Ｍｅ＿Ｄｅｐｔｈ」と、をブレンドし、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に新たに格納されるピクセルのカラーデータ「Ｂｌ＿Ｒ」，「Ｂｌ＿Ｇ」，「Ｂｌ＿Ｂ」，「Ｂｌ＿Ｎａｌｐｈａ」及びデプス値「Ｂｌ＿Ｄｅｐｔｈ」を生成して、「Ｂｌ＿Ｒ」，「Ｂｌ＿Ｇ」，「Ｂｌ＿Ｂ」及び「Ｂｌ＿Ｎａｌｐｈａ」をカラーパッカ１８２に出力する。デプス値「Ｂｌ＿Ｄｅｐｔｈ」は、ラインバッファ（ＬＢ１，ＬＢ２）に出力される。
具体的には、ブレンダ１７８は、Ｒ（赤）成分「Ｂｌ＿Ｒ」，Ｇ（緑）成分「Ｂｌ＿Ｇ」，Ｂ（青）成分「Ｂｌ＿Ｂ」及びデプス値「Ｂｌ＿Ｄｅｐｔｈ」を、次式により生成する。次式から明らかなように、生成のための演算は、デプス値「Ｒｅ＿Ｄｅｐｔｈ」とデプス値「Ｍｅ＿Ｄｅｐｔｈ」との大小関係によって異なってくる。
（ｉ）Ｒｅ＿Ｄｅｐｔｈ≦Ｍｅ＿Ｄｅｐｔｈの場合
Ｂｌ＿Ｒ＝Ｒｅ＿Ｒ＋Ｒｅ＿Ｎａｌｐｈａ・Ｍｅ＿Ｒ
Ｂｌ＿Ｇ＝Ｒｅ＿Ｇ＋Ｒｅ＿Ｎａｌｐｈａ・Ｍｅ＿Ｇ
Ｂｌ＿Ｂ＝Ｒｅ＿Ｂ＋Ｒｅ＿Ｎａｌｐｈａ・Ｍｅ＿Ｂ
Ｂｌ＿Ｄｅｐｔｈ＝Ｒｅ＿Ｄｅｐｔｈ
（ｉｉ）Ｒｅ＿Ｄｅｐｔｈ＞Ｍｅ＿Ｄｅｐｔｈの場合
Ｂｌ＿Ｒ＝Ｍｅ＿Ｒ＋Ｍｅ＿Ｎａｌｐｈａ・Ｒｅ＿Ｒ
Ｂｌ＿Ｇ＝Ｍｅ＿Ｇ＋Ｍｅ＿Ｎａｌｐｈａ・Ｒｅ＿Ｇ
Ｂｌ＿Ｂ＝Ｍｅ＿Ｂ＋Ｍｅ＿Ｎａｌｐｈａ・Ｒｅ＿Ｂ
Ｂｌ＿Ｄｅｐｔｈ＝Ｍｅ＿Ｄｅｐｔｈ
但し、必ず奥のピクセル（デプス値の大きいピクセル）から順に描画されていることが保証されているシステムにおいては、上記（ｉｉ）の演算をサポートする必要はない。
ここで、上式の右辺の第２項（例えば、Ｒｅ＿Ｎａｌｐｈａ×Ｍｅ＿Ｒや、Ｍｅ＿Ｎａｌｐｈａ×Ｒｅ＿Ｒなど）で行われる乗算は、整数部１ビットと小数部３ビットから成る透明度（但し、最大値は０ｂ１０００）と、整数部５ビットから成るカラーコンポーネントと、の乗算であり、結果は整数部５ビットと小数部３ビットとから成る。実際には、これを整数部５ビットの数に丸め、第１項との加算が行われる。
また、上式の右辺は整数部５ビットから成る数同士の加算であり、左辺も整数部５ビットから成る数である。上式の右辺で行われる加算の結果が「０ｂ１１１１１」より大きい場合、値は「０ｂ１１１１１」に飽和される。
ブレンダ１７８は、透明度「Ｂｌ＿Ｎａｌｐｈａ」を次式にて生成する。
Ｂｌ＿Ｎａｌｐｈａ＝Ｍｅ＿Ｎａｌｐｈａ・Ｒｅ＿Ｎａｌｐｈａ
但し、必ず奥のピクセル（デプス値の大きいピクセル）から順に描画されていることが保証され、かつ、最背面のカラーが不透明色であるシステムにおいては、上記の演算をサポートする必要はなく、常に、Ｂｌ＿Ｎａｌｐｈａ＝０として扱うことができる。
ここで、上式の右辺で行われる乗算は、整数部１ビットと小数部３ビットとから成る数（但し、最大値は０ｂ１０００）同士の乗算であり、結果は整数部１ビットと小数部６ビットとから成る。実際には、これを整数部１ビットと小数部３ビットとから成る数に丸め、透明度「Ｂｌ＿Ｎａｌｐｈａ」とする。
さて、カラーパッカ１８２は、各５ビットのカラーコンポーネント「Ｂｌ＿Ｒ」，「Ｂｌ＿Ｇ」及び「Ｂｌ＿Ｂ」と、４ビットの透明度「Ｂｌ＿Ｎａｌｐｈａ」とから、１６ビットのカラーデータ「Ｂｌ＿Ｃｏｌｏｒ」を生成し、ラインバッファ（ＬＢ１，ＬＢ２）に出力する。具体的には、次式により、カラーデータ「Ｂｌ＿Ｃｏｌｏｒ」を生成する。
（ｉ）Ｂｌ＿Ｃｏｌｏｒ［１５］＝＝０の場合（不透明）
Ｂｌ＿Ｃｏｌｏｒ＝｛０ｂ０，Ｂｌ＿Ｂ，Ｂｌ＿Ｇ，Ｂｌ＿Ｒ｝
（ｉｉ）Ｂｌ＿Ｃｏｌｏｒ［１５］＝＝０でない場合（半透明）
Ａ［２：０］＝Ｂｌ＿Ｎａｌｐｈａ−１
Ｂｌ＿Ｃｏｌｏｒ＝｛０ｂ１，Ｂｌ＿Ｂ［４：１］，Ａ［２］，Ｂｌ＿Ｇ［４：１］，Ａ［１］，Ｂｌ＿Ｒ［４：１］，Ａ［０］｝
カラーパッカ１８２から出力される１６ビットのカラーデータ「Ｂｌ＿Ｃｏｌｏｒ」と、ブレンダ１７８から出力される１２ビットのデプス値「Ｂｌ＿Ｄｅｐｔｈ」は連接されて、ラインバッファ（ＬＢ１，ＬＢ２）へのライトデータ（カラーデータ）「Ｍｅ＿Ｗｄａｔａ」として出力される。この際、デプス値「Ｂｌ＿Ｄｅｐｔｈ」がライトデータ「Ｍｅ＿Ｗｄａｔａ」の上位１２ビットとなり、カラーデータ「Ｂｌ＿Ｃｏｌｏｒ」がライトデータ「Ｍｅ＿Ｗｄａｔａ」の下位１６ビットとなる。
さて、以上のように、本実施の形態によれば、カラーアンパッカ１８０は、カラーデータ「Ｍｅ＿Ｃｏｌｏｒ」のＭＳＢ（つまり、不透明フラグ）の内容に応じて、ピクセルのカラーデータ「Ｍｅ＿Ｒ」，「Ｍｅ＿Ｇ」，「Ｍｅ＿Ｂ」及び「Ｍｅ＿Ｎａｌｐｈａ」の生成方法を異ならせているため、ラインバッファ（ＬＢ１，ＬＢ２）に格納するカラーデータのフォーマットを、カラーが不透明時と、それ以外の時（半透明時及び透明時）と、で異ならせることができる。
従って、不透明時以外の時（半透明時及び透明時）では、各カラーコンポーネントＲＧＢの色成分自体のビットを減らし、その減らしたビットに透明データ「Ｍｅ＿Ｎａｌｐｈａ」の一部を割り当てて、カラーデータを作成することができる。一方、不透明時では、各カラーコンポーネントＲＧＢの色成分のビットを減らすことはしない。
このように、不透明時以外の時において、カラーの精度を少し落として、透明データを挿入し、半透明あるいは透明を表現する。その結果、半透明あるいは透明を表現する際のカラーデータのサイズを小さくできる。ちなみに、半透明時および透明時のカラーは、不透明時のカラーに比べて精度を落としても、描画結果に大きく影響しない。なお、カラーデータのフォーマットを、不透明時とそれ以外の時とで異ならせない場合は、半透明あるいは透明を表現する際には、不透明時と比較して、透明度データの分だけカラーデータのビット数を増やさなければならない。このようにピクセルのカラーデータの生成方法を異ならせることにより、ラインバッファ（ＬＢ１，ＬＢ２）のサイズ、ひいてはラインバッファ（ＬＢ１，ＬＢ２）に設定するためのデータを格納するメモリＭＥＭのサイズを減らすことができる。
以上、カラーアンパッカ１８０及びラインバッファ（ＬＢ１，ＬＢ２）に関して言及したが、上記のことは、カラーアンパッカ１９０及びカラーパレットＲＡＭ１１についても同様のことが言える。
また、本実施の形態では、カラーマルチプレクサ１７２が出力する描画対象のピクセルのカラーコンポーネント「Ｒｅ＿Ｒ」，「Ｒｅ＿Ｇ」及び「Ｒｅ＿Ｂ」を、不透明時のピクセルのカラーコンポーネントと不透明度αとを予め乗算した値としている。従って、このカラーコンポーネント「Ｒｅ＿Ｒ」，「Ｒｅ＿Ｇ」及び「Ｒｅ＿Ｂ」を、カラーマルチプレクサ１７２が出力する透明度「Ｒｅ＿Ｎａｌｐｈａ」とラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に格納されているカラーポンポーネント「Ｍｅ＿Ｒ」，「Ｍｅ＿Ｇ」及び「Ｍｅ＿Ｂ」との積と、単に加算するだけで正しいカラーブレンディングを行うことができ、ブレンダ１７８での演算処理を削減できる。上記のようにこの処理は、（ｉ）Ｒｅ＿Ｄｅｐｔｈ≦Ｍｅ＿Ｄｅｐｔｈの場合に実行される。
さらに、本実施の形態では、（ｉｉ）Ｒｅ＿Ｄｅｐｔｈ＞Ｍｅ＿Ｄｅｐｔｈの場合は、ラインバッファ（ＬＢ１，ＬＢ２）が出力する描画済みのピクセルのカラーコンポーネント「Ｍｅ＿Ｒ」，「Ｍｅ＿Ｇ」及び「Ｍｅ＿Ｂ」を、描画対象のピクセルのカラーコンポーネント「Ｒｅ＿Ｒ」，「Ｒｅ＿Ｇ」及び「Ｒｅ＿Ｂ」と描画済みのピクセルの透明度データ「Ｍｅ＿Ｎａｌｐｈａ」とを乗算した値と、加算している。これも、ブレンダ１７８での演算処理の削減に寄与する。また、グラフィック要素（ポリゴン／スプライト）の描画順が必ずしも奥からの描画にならない場合においても、２つまでのグラフィック要素のピクセルの混合を正しく行うことができる。
さらに、本実施の形態では、（ｉ）Ｒｅ＿Ｄｅｐｔｈ≦Ｍｅ＿Ｄｅｐｔｈの場合、ブレンダ１７８は、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に既に格納されているピクセルのデプス値「Ｍｅ＿Ｄｅｐｔｈ」を、描画対象のピクセルのデプス値「Ｒｅ＿Ｄｅｐｔｈ」に書き換える。一方、（ｉｉ）Ｒｅ＿Ｄｅｐｔｈ＞Ｍｅ＿Ｄｅｐｔｈの場合は、ブレンダ１７８は、ラインバッファ（ＬＢ１，ＬＢ２）の描画対象位置に既に格納されているデプス値Ｍｅ＿Ｄｅｐｔｈを維持する。
従って、ラインバッファ（ＬＢ１，ＬＢ２）が最も新しく描画されたピクセルのデプス値を保持することになるので、カラーブレンダ１３２以降の処理においてピクセルのデプス値に応じた加工（例えば、デプスキューイングや他のグラフィック要素との混合など）が可能となる。
さらに、本実施の形態では、カラーコンポーネントデータは、ＲＧＢの各成分である。このように、ＲＧＢのような、色空間で直交座標系として扱えるカラーコンポーネントを用いることで、半透明合成を行うカラーブレンダ１３２の処理回路を簡単にできる。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
【図１】
2007052420.tif 000003
【図２】
2007052420.tif 000004
【図３】
2007052420.tif 000005
【図４】
2007052420.tif 000006
【図５】
2007052420.tif 000007
【図６】
2007052420.tif 000008
【図７】
2007052420.tif 000009
【図８】
2007052420.tif 000010
【図９】
2007052420.tif 000011
【図１０】
2007052420.tif 000012
【図１１】
2007052420.tif 000013
【図１２】
2007052420.tif 000014
【図１３】
2007052420.tif 000015
【図１４】
2007052420.tif 000016
【図１５】
2007052420.tif 000017
【図１６】
2007052420.tif 000018
【図１７】
2007052420.tif 000019
【図１８】
2007052420.tif 000020
【国際調査報告】
2007052420.tif 000021
2007052420.tif 000022
2007052420.tif 000023
2007052420.tif 000024
2007052420.tif 000025