(57)【特許請求の範囲】
【請求項１】
ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、
前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、
前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、
前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、
前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、
前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、
前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、
を備え、
前記レンダラは、
マテリアルデータを選択するアドレスであるマテリアルＩＤを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルＩＤと色データ値を出力する補間手段と、
前記マテリアルＩＤから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャＩＤを出力するマテリアル・メモリと、
前記テクスチャ座標値で示される位置の前記テクスチャＩＤに選択されたテクスチャ色を出力するテクスチャ・メモリと、
前記テクスチャ色と前記色データ値を混合する混合手段と、
からなることを特徴とする３次元画像処理装置。
【請求項２】
ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、
前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、
前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、
前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、
前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、
前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、
前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、
を備え、
前記ポリゴン・キャシュと内分値発生手段とレンダラは、直列接続され、この直列接続されたものが複数並列接続されて、
前記レンダラは、
マテリアルデータを選択するアドレスであるマテリアルＩＤを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルＩＤと色データ値を出力する補間手段と、
前記マテリアルＩＤから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャＩＤを出力するマテリアル・メモリと、
前記テクスチャ座標値で示される位置の前記テクスチャＩＤに選択されたテクスチャ色を出力するテクスチャ・メモリと、
前記テクスチャ色と前記色データ値を混合する混合手段と、
からなることを特徴とする３次元画像処理装置。
【請求項３】
前記レンダラは、さらに、前記サブピクセル・ポリゴン・コードにより、前記混合手段からの色データを出力するか、サブピクセルの色データ値に変換して出力するかを選択するセレクタを備えたことを特徴とする請求項１又は２記載の３次元画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ポリゴン画像を用いて画面上に立体的に映像を表示する３次元画像処理装置に係り、特にポリゴンやテクスチャのデータ（色や表面の模様）を表示するための３次元画像処理装置に関する。
【０００２】
【従来の技術】
＜従来技術１＞
ビットマップ・ディスプレイ装置である従来のパソコンの表示装置の構成を図２２に示す。ＣＰＵ７０１が表示する文字コードをＶＲＡＭ７０２と呼ばれるメモリ装置に書き込む。また、この文字コードに対応するイメージデータをさらにグラフィックＶＲＡＭ７０３に書き込む。このイメージデータがディスプレイ・コントローラ７０４からの水平垂直信号に同期して読み出され、ビデオ信号に変換されディスプレイ７０５上に表示される。
【０００３】
＜従来技術２＞
グラフィックス・ディスプレイ装置である従来のグラフィックス・ディスプレイ装置の構成を図２３に示す。この装置は、ＣＰＵ８０１、テクスチャデータを記憶するテクスチャ・メモリ８０２、ポリゴン・マッピング処理回路８０３、および１画面分のフレームメモリ８０４からなり、フレームメモリ８０４の内容をディスプレイ・コントローラ８０５に読み出し、ディスプレイ８０６へ順次出力するようにしたものである。この処理装置では、ＣＰＵ８０１は各ポリゴンを定義するデータとアプリケーションソフトやオペレーターの操作に応じて得られる操作データとを用いて、モデリング変換や投影変換等を実行し、ポリゴン画像を形成すべく順次所要のポリゴンに対応する変換後のデータを、ポリゴン・マッピング処理回路８０３へ出力する。ポリゴン・マッピング処理回路８０３は、入力されるポリゴンのデータに対応するテクスチャをデータメモリ８０２から取り込み、各ポリゴンにテクスチャを付しながら、隠面処理を逐次施して、その結果をフレームメモリ８０４に出力する。ポリゴン・マッピング処理回路８０３で生成されたポリゴン画像は、フレーム画としてフレームメモリ８０４に書き込まれ、所要の速度でディスプレイ８０６に繰り返し読み出されて、静止画として表示される。
【０００４】
＜従来技術３＞
従来のＶＲＡＭ型３次元画像表示装置の構成を図２４に示す。
この装置はＣＰＵ９０１、座標変換およびポリゴン・コードの描画を行なう座標変換装置９０２、ポリゴン・コードを保存するポリゴン・コードメモリ９０３、３頂点ポリゴンの各頂点座標とレンダリング・パラメータを記憶するポリゴンキャシュ９０４、３頂点ポリゴンの各頂点座標と画面座標から画面に表示されるべきポリゴン面上の１点を求める内分値発生器９０５、内分値と３頂点ポリゴンの各頂点のレンダリング・パラメータから内分値が示すポリゴン面上の１点におけるレンダリング・パラメータを求め、レンダリング・パラメータから表示する画素の色を求めるレンダラ９０６、及びディスプレイ・コントローラ９０７からなる。この処理装置では、描画側、表示側の２つの処理がある。
【０００５】
まず描画処理について説明する。
ＣＰＵ９０１は、ユーザの操作に従って、表示すべき三角形ポリゴンの３つの描画頂点座標９１７およびポリゴン・コード９１１を生成し、座標変換回路９０２に出力する。また、各頂点に対し１組ずつ計３組のレンダリング・パラメータ９０９をポリゴン・キャシュ９０４に対し出力する。
座標変換回路９０２には、４×４の座標変換マトリクス９１６と、三角形ポリゴンの各描画頂点座標（ｘ，ｙ，ｚ，１）が入力される。４×４の座標変換マトリクス９１６を頂点座標に左からかけて、３つの（ｘ，ｙ，ｚ）を生成する。この３つの（ｘ，ｙ，ｚ）を頂点座標９１０としてポリゴン・キャシュ９０４に対し出力する。
【０００６】
ポリゴン・コード９１１は、ポリゴンの通し番号である。最初のポリゴンのポリゴン・コード９１１は１、次のポリゴンのポリゴン・コード９１１は２となる。１フレームのポリゴン数を最大１６３８３とした場合、ポリゴン・コード９１１は１４ｂｉｔの整数である。色は通常ＲＧＢ各ｂｉｔの計２４ｂｉｔで表わされる。通常ポリゴン・コードの方が色より少ないｂｉｔ数で表わすことができる。
ポリゴン・キャシュ９０４は、ポリゴン・コード９１１の最大値数個のエントリを持つバッファが２つで構成される。座標変換回路９０２から出力されるポリゴン・コード９１１の示す位置（エントリ）に頂点座標９１０とレンダリング・パラメータ９０９が格納される。
【０００７】
座標変換回路９０２は、画面アドレス９１８を生成し、この値で示されるポリゴン・コード・メモリ９０３のエントリにポリゴン・コード９１１を書き込む。ポリゴン・コード・メモリ９０３は、ポリゴン・コード９１１を格納する（画面の横ピクセル数）×（画面の縦ピクセル数）のエントリを持った２つのメモリで構成される。座標変換回路９０２からアドレスとして出力されるポリゴン・コード９１１の示す位置（エントリ）に頂点座標９１０とレンダリング・パラメータ９０９が格納される。
【０００８】
描画を行ないながら表示を行なうため、ポリゴン・コード・メモリ９０３は、画面のピクセル数の容量を持つ２つのメモリで構成される。一方のメモリを描画側で使用する間はもう一方のメモリを表示側に使用する。同様にポリゴン・キャシュ９０４も２つで構成され、一方を描画側で使用している時は、一方を表示側で使用する。
１画面分の表示に必要なポリゴン処理を行い、ポリゴン・コード・メモリ９３０３やポリゴン・キャシュ９０４への書き込みが完了した時点で、ＣＰＵ９０１は制御信号９２１を用いて、ポリゴン・コード・メモリ９０３とポリゴン・キャシュ９０４の描画側と表示側に入れ変える。この処理をスワップ・バッファ処理と呼び、これによって書き込みが完了したデータを表示側の回路から参照できるようになる。
【０００９】
以降表示側の処理を説明する。
ディスプレイの水平垂直走査に同期してディスプレイ・コントローラ９０７は画面座標９１９を生成する。ポリゴン・コード・メモリ９０３は画面座標９１９で示される位置に保存されているポリゴン・コード９１１をポリゴン・キャシュ９０４に対し出力する。ポリゴン・キャシュ９０４は、ポリゴン・コード９１１で示される位置に保存されている３頂点分の頂点座標９１２およびレンダリング・パラメータ９１４を出力する。内分値発生器９０５は画面座標９１９と３つの頂点座標９１２を入力する。内分値発生器９０５は、画面座標９１９で示される画面位置に投影される３つの頂点座標９１２で定義されたポリゴン面上の位置を算出する。レンダラ９０６には、内分値９１３と３組のレンダリング・パラメータ９１４が入力される。レンダラ９０６は３組のレンダリング・パラメータ９１４を補間し、内分値９１３が示す位置における色データ値９１５を算出する。
ディスプレイ・コントローラ９０７はレンダラ９０６から色データ値９１５を入力し、画像信号９２０に変換し、ディスプレイ９０８に対し出力する。
以上が画面上の１ピクセルの表示処理である。この処理をディスプレイ９０８の画素数分繰り返し１画面の表示処理が終了する。
【００１０】
【発明が解決しようとする課題】
従来技術１は、ディスプレイの水平垂直信号に同期して画素生成処理を行なうため、処理が非常に軽いという特徴がある。しかし、四角い図形しか表示できないために、従来技術１の発明では３次元グラフィクスが表示できないという欠点があった。
【００１１】
従来技術２は、３次元グラフィクスを表示する機能を有しているという特徴がある。しかし、ポリゴン毎に表示処理を行なうため、画面の塗り重ねが多発し、画素生成処理が非常に重くなるという欠点があった。
【００１２】
従来技術３は、色ではなくコードを描画するので、ＶＲＡＭへの書き込み処理が軽減される。またディスプレイの水平垂直信号に同期してマッピング等のレンダリング処理を行なうので、レンダリング処理が非常に軽い。また、座標変換後の３頂点の座標データおよびレンダリングパラメータをそのままポリゴンキャシュに記憶するためキャシュ処理の負荷が軽いという特徴がある。
【００１３】
さて、高画質な画像を生成するには、アルファブレンディングが有効である。アルファブレンディングは半透明な物体を描画する技術である。アルファブレンディングは通常、以下の方法で行われる。物体を視点から遠い順に描画する。半透明の物体の書き込みの際、フレームバッファにすでに書き込まれた色とこれから書き込む色とを平均する。これによって背景物の色が半透明物体を透過している様子が描画できる。
【００１４】
ところが、従来技術３のようにコードを描画する方式では、フレームバッファに対し色でなくコードを描画する。このため、背景物のコードしか取り出すことができない。このため、アルファブレンディングを実現することができなかった。
【００１５】
また高画質な画像を生成するには、精密な形状データを使用することが有効である。形状が精密になればなるほど、形状の凹凸の周波数が高くなる傾向にある。この高い周波数が、表示デバイスの表現しうる周波数を越えた場合、エリアシングが発生する。エリアシングによって発生する不規則な点滅や、モアレ等のノイズは画質向上の為には最小限に押える必要がある。この画質向上技術をアンチエリアシングと呼ぶ。その代表的手法がオーバーサンプリングである。オーバーサンプリングは表示デバイスよりも高い解像度で処理を行い、それを平均し縮小することでノイズを低減する手法である。通常オーバーサンプリングはピクセル毎に行われる。物体を描く際、各サブピクセルの位置に物体のどの部分を描くべきか各々算出する。この各々のピクセルの色を平均し、ピクセルの色を求める。これをフレームバッファに描画する。
【００１６】
ところが上述のようにコードを描画する方式では、フレームバッファに対し色でなくコードを描画する。このため、サブピクセルの色をフレームバッファへの書き込み前に決定することができない。このため、アンチエリアシングを実現することができなかった。
このように、従来技術３は、コードを描画するため、アルファブレンディングやアンチエリアシングなどの高画質なレンダリング処理ができないという欠点があった。
【００１７】
以上のように、これまでのグラフィックス装置は、高画質な３次元グラフィックスを軽い処理で表示することができなかった。
【００１８】
そこで、本発明の目的は、アルファブレンディングやアンチエリアシング等の高画質なレンダリング処理を軽い負荷で、且つ高速で行うことができる３次元画像処理装置を提供することである。
【００１９】
【課題を解決するための手段】
本発明は、ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、を備え、前記レンダラは、マテリアルデータを選択するアドレスであるマテリアルＩＤを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルＩＤと色データ値を出力する補間手段と、前記マテリアルＩＤから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャＩＤを出力するマテリアル・メモリと、前記テクスチャ座標値で示される位置の前記テクスチャＩＤに選択されたテクスチャ色を出力するテクスチャ・メモリと、前記テクスチャ色と前記色データ値を混合する混合手段と、からなることを特徴とする３次元画像処理装置である。
【００２０】
本発明は、ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、を備え、前記ポリゴン・キャシュと内分値発生手段とレンダラは、直列接続され、この直列接続されたものが複数並列接続されて、前記レンダラは、マテリアルデータを選択するアドレスであるマテリアルＩＤを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルＩＤと色データ値を出力する補間手段と、前記マテリアルＩＤから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャＩＤを出力するマテリアル・メモリと、前記テクスチャ座標値で示される位置の前記テクスチャＩＤに選択されたテクスチャ色を出力するテクスチャ・メモリと、前記テクスチャ色と前記色データ値を混合する混合手段と、からなることを特徴とする３次元画像処理装置である。
【００２１】
本発明は、前記３次元画像処理装置であって、前記レンダラは、さらに、前記サブピクセル・ポリゴン・コードにより、前記混合手段からの色データを出力するか、サブピクセルの色データ値に変換して出力するかを選択するセレクタを備えたことを特徴とする。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を図面によって詳述する。
【００２８】
＜実施形態１＞
以下、本発明に係る実施形態１について説明する。
図１は、本発明に係る３次元画像形成装置の実施形態１を示すブロック図である。図１に示す３次元画像形成装置は、ＣＰＵ１０１、座標変換回路１０２、ディザ回路１２６、ポリゴン・コード・メモリ１０３、ポリゴン・キャシュ１０４、内分値発生器１０５、レンダラ１０６、合成器１２３、ディスプレイ・コントローラ１０７からなる構成である。この３次元画像形成装置で形成した３次元画像をディスプレイ１０８に表示する。
本実施形態は、ポリゴン画像を構成するピクセルを、サブピクセルに分割して処理するものであり、通常はピクセルを２×２、３×３、４×４のサブピクセルに分割して処理する。本実施形態においては、サブピクセルの分割は２×２とする。
【００２９】
ＣＰＵ１０１は、サブピクセル・ポリゴン・コード１１１および描画頂点座標１１７および座標変換マトリクス１１６を座標変換回路１０２に対し出力する。同様に、サブピクセル・ポリゴン・コード１１１に対応したレンダリング・パラメータ１０９をポリゴン・キャシュ１０４に対し出力する。
また、制御信号１２４によってポリゴン・コード・メモリ１０３およびポリゴン・キャシュ１０４を制御する。
またディザデータ１２７をディザ回路４２６に対し出力する。ディザデータは、サブピクセルの書き込みの許可不許可を表す。
【００３０】
座標変換回路１０２は、入力された描画頂点座標１１７を頂点座標１１０に座標変換し、該頂点座標１１０をサブピクセル・ポリゴン・コード１１１でアドレスされるポリゴン・キャシュ１０４のエントリに書き込む。また、サブピクセル画面アドレス１１８及びサブピクセル・ポリゴン・コード１１１をディザ回路１２６に与える。
【００３１】
ディザ回路１２６は、サブピクセル画面アドレス１１８にしたがってディザデータ１２７を確認評価し、描画を行う場合はサブピクセルの位置をサブピクセル画面アドレス１１８で与え、対応するサブピクセル・ポリゴン・コード１１１をポリゴン・コード・メモリ１０３に書き込む。
画面座標１１９によって示されるポリゴン・コード・メモリ１０３の領域から各サブピクセルのポリゴン・コード１２２がピクセルの分割個数の回数だけ読み出され、ポリゴン・キャシュ１０４に送られる。
【００３２】
ポリゴン・キャシュ１０４には、座標変換回路１０２から出力されたサブピクセル・ポリゴン・コード１１１をアドレスとして与えられ、座標変換された頂点座標１１０が書き込まれる。同時にＣＰＵ１０１からのレンダリング・パラメータ１０９も同じ領域に書き込まれる。
また、ポリゴン・コード・メモリ１０３から各サブピクセルのポリゴン・コード１２２がアドレスとしてポリゴン・キャシュ１０４に出力され、ポリゴン・キャシュ１０４からは、ポリゴン・コード１２２で示される領域に格納されている頂点座標１１０とレンダリング・パラメータ１０９が読み出される。
【００３３】
内分値発生器１０５は、ポリゴン・キャシュ１０４から出力された頂点座標１１２およびディスプレイ・コントローラ１０７から出力された画面座標１１９を与えられ、内分値１１３をレンダラ１０６に対し出力する。
レンダラ１０６は、内分値１１３およびレンダリング・パラメータ１１４から、各サブピクセルの色データ値１１５および各サブピクセルのブレンディングモード１２５を生成し、合成器１２３に対し出力する。ここで、ブレンディングモードとは、物体の透明性に併せて処理をするモードである。
合成器１２３は、レンダラ１０６からピクセルの分割数個の各サブピクセルの色データ値１１５を入力し、合成を行ない合成色データ値１２１を出力する。
ディスプレイコントローラ４０７は、合成色ディスプレイ値４２１に従った画像信号４２０をディスプレイ４０８に対し出力しディスプレイ４０８がその画像を表示する。
【００３４】
以下本発明の動作について説明する。
本発明の動作は描画側と表示側の２つの処理がある。
描画側は、ポリゴンの外形を生成する処理である。一方、表示側は、ポリゴン面を構成するピクセルの色を決定し、ディスプレイ１０８に表示する処理である。
【００３５】
始めに描画側の処理から説明する。
ＣＰＵ１０１は、ユーザの操作に従って、表示すべき三角形ポリゴンの３つの描画頂点座標１１７およびサブピクセル・ポリゴン・コード１１１を生成し、座標変換回路１０２に出力する。三角形ポリゴンの各描画頂点座標は（ｘ，ｙ，ｚ，１）の形で表される。また、各頂点に対し１組ずつ計３組のレンダリング・パラメータ１０９をポリゴン・キャシュ１０４に対し出力する。
座標変換回路１０２は、４×４の座標変換マトリクス１１６をＣＰＵ１０１から供給されて、この４×４のマトリクスを、描画頂点座標に左からかけて、３つの（ｘ，ｙ，ｚ）を生成する。この３つの（ｘ，ｙ，ｚ）を頂点座標１１０としてポリゴン・キャシュ１０４に出力する。
ポリゴン・キャシュ１０４は、サブピクセル・ポリゴン・コード１１１の最大値数個のエントリを持つバッファが２つで構成される。座標変換回路１０２からアドレスとして出力されるサブピクセル・ポリゴン・コード１１１の示す位置（エントリ）に、頂点座標１１０とレンダリング・パラメータ１０９が格納される。
【００３６】
次にポリゴンの外形を描画する。図２は画面座標と３次元座標の関係を表している説明図である。図２において、Ｚ＝１の平面が画面を構成し、画面の上端が（１，１，１）または（−１，１，１）下端が（１，−１，１）又は（−１，−１，１）である。３次元座標上の点Ｐ０（Ｘ０，Ｙ０，Ｚ０）は、画面座標（Ｘ０／Ｚ０，Ｙ０／Ｚ０，１）に投影されることがわかる。同様に、点Ｐ１（Ｘ１，Ｙ１，Ｚ１）が、画面上の座標（Ｘ１／Ｚ１，Ｙ１／Ｚ１，１）に、点Ｐ２（Ｘ２，Ｙ２，Ｚ２）が、画面上の座標（Ｘ２／Ｚ２，Ｙ２／Ｚ２，１）に、投影される。
ポリゴンを描画すべき領域は、−１≦Ｙ／Ｚ≦１と、−１≦Ｘ／Ｚ≦１およびＺ＝ｎｅａｒとＺ＝ｆａｒとで囲まれる部分となる。ただしｎｅａｒとｆａｒとは任意の正の数とする。
【００３７】
この領域内のポリゴン面を構成する各サブピクセルについて、図１の座標変換回路１０２は、サブピクセル画面アドレス１１８とサブピクセル・ポリゴン・コード１１１を生成し、ディザ回路１２６に出力する。本実施形態においては、サブピクセルの分割は２×２なので、ポリゴン・コード・メモリ１０３は｛（画面の横ピクセル数）×２｝×｛（画面の縦ピクセル数）×２｝のサブピクセル・ポリゴン・コードの配列である。
【００３８】
本実施形態において、ディザデータ１２７は、１６サブピクセル×１６サブピクセルに対する１ビットのデータである。ディザデータ１２７の１ビットはサブピクセルの書き込みの許可不許可を表す。１の時書き込みは許可であり、０の時は不許可である。ディザデータ１２７は画面の左上から画面いっぱいに繰り返ししきつめられている。画面サイズが６４０×４８０の時、サブピクセルは２×２であるので、サブピクセル数は１２８０×９６０となる。したがって、ディザデータ１２７は、横に８０回、縦に６０回繰り返される。
【００３９】
ディザ回路１２６は、サブピクセル画面アドレス１１８が入力されると、サブピクセル画面アドレス１１８が示す位置のディザデータ１２７を調べる。この値が１の時、サブピクセル画面アドレス１１８で示されるポリゴン・コード・メモリ１０３のエントリにサブピクセル・ポリゴン・コード１１１を書き込む。０の時はデータを書き込まない。こうして隠面消去処理を行う。
【００４０】
図３は、上記の処理を行なった後のポリゴン・コード・メモリ１０３の状態を示す。１５１は、ディザデータに基づいて、ポリゴン・コード・メモリ１０３に記憶されたサブピクセル・ポリゴン・コードのＩＤ＝１のポリゴンである。同様に１５２，１５３は、サブピクセル・ポリゴン・コードのＩＤ＝２，Ｄ＝３のポリゴン７である。
ポリゴン・コードのＩＤ＝１，２，３を持つ３つの三角形ポリゴンをポリゴン・コード・メモリ１０３に順に書き込んだ結果、３次元的に投影処理された３つの三角形がポリゴン・コード・メモリ１０３上に保存されていることがわかる。また、ディザの結果ＩＤ＝１，２のポリゴン１５１，１５２がＩＤ＝３のポリゴン１５３の上に描画されていることがわかる。
【００４１】
図４は、上記の処理を行なった後のポリゴン・キャシュ１０４の状態を示す。ＩＤ１，２，３の３つの三角形ポリゴンの頂点座標１１０およびレンダリング・パラメータ１０９がＩＤ番目の位置に保存されていることがわかる。
描画を行ないながら表示を行なうため、ポリゴン・コード・メモリ１０３は、画面のピクセル数の容量を持つ２つのメモリで構成される。一方のメモリを描画側で使用する間は、他方のメモリを表示側に使用する。同様にポリゴン・キャシュ１０４も２つで構成され、一方を描画側で使用している時は、他方を表示側で使用する。
１画面分の表示に必要なポリゴン処理を行い、ポリゴン・コード・メモリ１０３やポリゴン・キャシュ１０４への書き込みが完了した時点で、ＣＰＵ１０１は制御信号１２４を用いて、ポリゴン・コード・メモリ１０３とポリゴン・キャシュ１０４の描画側と表示側を入れ変える。この処理をスワップバッファ処理と呼び、これによって書き込みが完了したデータを表示側の回路から参照できるようになる。
【００４２】
次に表示側の処理を説明する。
図１で示す本実施形態は、１ピクセルを２×２のサブピクセルに分割する例であるので、合成器１２７は４つのサブピクセル色を合成する。サブピクセル色の合成数は通常４、９、１６が使用される。
ディスプレイ・コントローラ１０７は、画面のすべてのピクセルを横方向に走査するように、画面座標を生成する。ディスプレイ・コントローラ１０７は１ピクセルについて４つのサブピクセルの画面座標を生成する。
【００４３】
各々の画面座標について以下の処理を実行する。
ポリゴン・コード・メモリ１０３は画面座標１１９で示される位置に保存されているサブピクセル・ポリゴン・コード１２２をポリゴン・キャシュ１０４に対し出力する。ポリゴン・キャシュ１０４は、サブピクセル・ポリゴン・コード１２２で示される位置に保存されている３頂点分の頂点座標１１２およびレンダリング・パラメータ１１４を出力する。
【００４４】
内分値発生器１０５には、画面座標１１９と３つの頂点座標１１２が入力される。内分値発生器１０５は、画面座標１１９で示される画面位置に投影される３つの頂点座標１１２で定義されたポリゴン面の位置を算出する。算出のアルゴリズムは、視点と画面座標を結ぶ水平平面と垂直平面でポリゴンを切断する方式を用いる。算出した点の位置は、３つの頂点座標１１２の内分値１１３で表される。
【００４５】
図５は、実施形態１における内分値４１３の説明図である。図５において、ポリゴンは３頂点ＡＢＣで構成されている。内分値１１３は頂点順序および内分比で構成される。内分比は３つの数字である。また、頂点順序は３つの頂点の並べ変えの順序を表す１つの数字である。例えば、ＡＢＣ，ＡＣＢ，ＢＡＣ，ＢＣＡ，ＣＡＢ，ＣＢＡの各頂点順序を各々１，２，３，４，５，６の数字で表す。図５に示す頂点順序は１であり、内分比が各々α、β、γである。この時、ＡＢをα：１−αで内分した点をＰとし、ＡＣをβ：１−βで内分した点をＱとする。この２点ＰＱをγ：１−γで内分した点をＲとする。この点Ｒの位置が内分値４１３によって表される位置である。頂点順序が２の時は、ＢとＣを入れ変えて同じ操作を実行する。
【００４６】
レンダラ１０６には、内分値１１３とポリゴン・キャシュ１０４から３組のレンダリング・パラメータ１１４が入力される。レンダラ１０６は３組のレンダリング・パラメータ１１４を補間し、内分値１１３が示す位置における色データ値１１５を算出する。図６は、レンダリング・パラメータ４１０のうちｓ０，ｓ１，ｓ２の補間の様子を示している。
【００４７】
図６において、ポリゴンは３頂点ＡＢＣで構成されている。今、頂点Ａ、Ｂ、Ｃに対するレンダリング・パラメータ１１４を各々（ｓ０，ｔ０，ｒ０），（ｓ１，ｔ１，ｒ１），（ｓ２，ｔ２，ｒ２）とし、頂点順序が１、内分比をα、β、γとする。点Ｒのレンダリング・パラメータを（ｓ，ｔ，ｒ）として、これらを頂点のレンダリング・パラメータから求める。
まず、ｓを求める。ＡＢのレンダリング・パラメータのｓ０，ｓ１をα：１−αで内分した値をｓａとし、ＡＣのレンダリング・パラメータのｓ０，ｓ２をβ：１−βで内分した値をｓｂとする。この２つの値ｓａ、ｓｂをγ：１−γで内分した値をｓとする。このｓが内分値１１３で示される位置Ｒにおけるレンダリング・パラメータｓの値である。レンダラ１０６は同様にＲ位置における残りのパラメータｔ、ｒについても求める。レンダリング・パラメータ１１０はユーザーが各頂点毎に指定する１組の数字である。通常は頂点色、３次元テクスチャ座標、テクスチャＩＤを使用する。
【００４８】
図７は、レンダラ１０６の一例を示すブロック図である。図７のレンダラは、レンダリング・パラメータ１１４が頂点色２０５とテクスチャ座標（ｓ，ｔ，ｒ，ＩＤ）２０４とブレンディングモード２１１で構成される場合を示す。本実施形態において、テクスチャ座標は３次元の座標値（ｓ，ｔ，ｒ）及びテクスチャの種類を選択するテクスチャＩＤで構成される。テクスチャＩＤはテクスチャの種類を選択するためのアドレスであり、３次元の座標値（ｓ，ｔ，ｒ）はテクスチャＩＤによつて選択されるテクスチャ内の一点を表すアドレスである。
【００４９】
補間器２０１は、内分値１１３および３頂点のテクスチャ座標２０４を入力し、ｓ，ｔ，ｒ，ＩＤの４つのパラメータについて補間を行ない、内分値１１３で示される位置Ｒのテクスチャ座標（ｓ，ｔ，ｒ）２０７およびテクスチャＩＤ２０６をテクスチャ・メモリ２０２に対し出力する。またテクスチャ座標２０７と同様の方法で３つの頂点色２０５を補間し、色データ値２０９を生成し、ミキサ２０３に対し出力する。また３頂点のブレンディングモード１２５を補間し、ブレンディングモード２１１を生成し、各サブピクセルのブレンディングモード１２５として合成器１２３に対し出力する。
【００５０】
テクスチャ・メモリ２０２は、ポリゴンに張り付けるテクスチャイメージを格納する。テクスチャ・メモリ２０２には補間器２０１からテクスチャＩＤ２０６とテクスチャ座標２０７が入力され、テクスチャＩＤ２０６とテクスチャ座標２０７で示される位置のテクスチャ色２０８をミキサ２０３に対し出力する。ミキサ２０３は、補間器２０１からの色データ値２０９とテクスチャ色２０８とを合成し、ミキサ色を生成し、各サブピクセルの色データ値１１５として合成器１２３に対し出力する。
【００５１】
図８は、レンダラ１０６の他の例を示すブロック図である。レンダラ１０６の入力レンダリング・パラメータが頂点色２２５およびテクスチャ座標（ｓ，ｔ，ｒ，ＭＩＤ）の場合の実施例である。
図８のレンダラにおいて、テクスチャ座標は３次元の座標値（ｓ，ｔ，ｒ）及びマテリアルの種類を選択するマテリアルＩＤで構成される。マテリアルＩＤ（ＭＩＤ）はマテリアルの種類を選択するアドレスである。マテリアルとは、ポリゴンの材質のことであり、材質の特性は通常、テクスチャ、透明度、反射特性等のデータで表現される。これら１つのマテリアルを表現する一連のデータを１組として、マテリアルデータと呼ぶ。マテリアルメモリ２３２は、このマテリアルデータを複数格納する。マテリアルＩＤ２３１はマテリアルメモリ２３２に格納される複数のマテリアルデータから１つを選択するアドレスである。
【００５２】
ここで、マテリアルメモリ２３２に格納するマテリアルデータは、テクスチャＩＤとブレンディングモードで構成される。テクスチャＩＤは、テクスチャの種類を選択するためのアドレスであり、３次元の座標値（ｓ，ｔ，ｒ）はテクスチャＩＤによって選択されるテクスチャ内の一点を表すアドレスである。
【００５３】
補間器２２１は、内分値１１３および３頂点のテクスチャ座標２２４を入力し、４つのパラメータ（ｓ，ｔ，ｒ，ＭＩＤ）について補間を行ない、内分値１１３で示される位置のテクスチャ座標値（ｓ，ｔ，ｒ）２２７をテクスチャ・メモリ２２２に対して出力する。また内分値１１３で示される位置のマテリアルＩＤ２３１をマテリアルメモリ２３２に対し出力する。
【００５４】
また３つの頂点色２２５を入力し、補間を行ない、内分値１１３で示される位置の色データ値２２９をミキサ２２３に対し出力する。マテリアルメモリ２３２はマテリアルＩＤ２３１によって選択されるマテリアルデータを出力する。
マテリアルデータのうちブレンディングモード１２５は各サブピクセルのブレンディングモードとして合成器１２３に出力される。またテクスチャＩＤ２２６はテクスチャ・メモリ２２２に対し出力される。
【００５５】
テクスチャ・メモリ２２２は、ポリゴンに貼りつけるテクスチャ・イメージを格納する。テクスチャ・メモリ２２２は、補間器２２１からテクスチャ座標２２７とマテリアルメモリ２３２からテクスチャＩＤ２２６をアドレスとして入力され、テクスチャＩＤ２２６とテクスチャ座標２２７で示される位置のテクスチャ色２２８をミキサ２２３に対し出力する。
ミキサ２２３は、補間器２２１からの色データ値２２９とテクスチャ色２２８とを合成し、ミキサ色を生成し、各サブピクセルの色データ値として合成器１２３に対し出力する。
【００５６】
最後に合成器１２３について説明する。
図９は、合成器１２３の一例を示すブロック図である。この合成器１２３は、積算器３０１とシフタ３０２とアキュームレータ３０３からなり、各３つずつ配置された構造である。この合成器に、各サブピクセルのブレンディングモード１２５が２ビットのデータとして入力される。上位１ビットは積算器３０１のｏｎ／ｏｆｆを切替える。下位１ビットはシフタ３０２のｏｎ／ｏｆｆを切替える。
【００５７】
以下、ブレンディングモード１２５と描画ピクセルの特性について記述する。まず、ブレンディングモード１２５の説明を行う。
ブレンディングモード０（００）：使用しない
ブレンディングモード１（０１）：ｏｆｆ
ブレンディングモード２（１０）：Ａ値に従ってＡ値、Ｒ値、Ｇ値、Ｂ値をスケールし、サブピクセル分割数回加算を行う
ブレンディングモード３（１１）：Ａ値に従ってＡ値、Ｒ値、Ｇ値、Ｂ値をスケールし、サブピクセル分割数だけ加算を行った後平均化する
【００５８】
１のモードは不透明の物体の描画に使用する。２のモードはライト等の明るい物体の描画に使用する。３のモードは通常の半透明物体の描画に使用する。
各サブピクセルの色データ値１１５は、Ａ値、Ｒ値、Ｇ値、Ｂ値の４つのパラメータで構成される。ＡＲＧＢ値は通常０から２５５の整数である。
【００５９】
次に、合成器の動作について説明する。
積算器３０１は、各サブピクセルのブレンディングモード１２５の上位が１の時は、各サブピクセルの色データ値１１５を入力し、各パラメータに対しＡ値を積算し、シフタ３０２に対し出力する。０の時はＡ値の代わりに２５５を積算する。
シフタ３０２は、各パラメータをサブピクセルの分割数で割って平均を求める。すなわち、各サブピクセルのブレンディングモード１２５の下位が１の時は、積算器３０１が出力した値を右に２ビットシフトする。０の時はそのまま出力する。
これまでの処理をサブピクセルの分割個数の回数だけ行う。本合成器ではサブピクセルの分割数が４であるので、処理は４回である。
【００６０】
アキュムレータ３０３は、シフタ３０２から出力されるデータを４サブピクセル分加算する。４ピクセル目のデータの加算後、以下の処理を行う。データの値をＤとする。
・Ｄ＝Ｄ＋Ｄ／２５６
・Ｄを右に８ビットシフトする。
・Ｄが２５５より大きかったらＤ＝２５５とする。
・Ｄを合成色データ値１２１として出力する。
【００６１】
図１０は、合成器１２３の他の例を示すブロック図である。
この合成器において、各サブピクセルのブレンディングモード１２５は１ビットのデータであり、補間器３１１のｏｎ／ｏｆｆを切替える。
以下はブレンディングモード１２５の説明である。
ブレンディングモード１：アルファブレンディングＯＮ
ブレンディングモード０：アルファブレンディングＯＦＦ
【００６２】
半透明の物体には１を使用し、不透明の物体には０を使用する。
各サブピクセルの色データ値１１５はＡ値、Ｒ値、Ｇ値、Ｂ値の４つのパラメータで構成される。ＡＲＧＢ値は通常０から２５５の整数である。
【００６３】
次に、合成器の動作について説明する。
補間器３１１に、出力レジスタ３１２からの色データ値と各サブピクセルの色データ値１１５を入力し、各パラメータに対し、以下の演算を行い、生成した色データ値を出力レジスタ３１２に対し出力する。
Ｒｏｕｔ＝Ａ（ｎ）＊Ｒ（ｎ）＋（２５６−Ａ（ｎ））＊Ｒ（ｎ−１）
Ｇｏｕｔ＝Ａ（ｎ）＊Ｇ（ｎ）＋（２５６−Ａ（ｎ））＊Ｇ（ｎ−１）
Ｂｏｕｔ＝Ａ（ｎ）＊Ｂ（ｎ）＋（２５６−Ａ（ｎ））＊Ｂ（ｎ−１）
Ａ（ｎ），Ｒ（ｎ），Ｇ（ｎ），Ｂ（ｎ）は各サブピクセルの色データ値１１５を示す。Ｒ（ｎ−１），Ｇ（ｎ−１），Ｂ（ｎ−１）は、出力レジスタ３１２から出力されるＲ（ｎ），Ｇ（ｎ），Ｂ（ｎ）の直前の色データ値を示す。
Ａ（ｎ）はブレンディングモード１２５によって以下のように変化する。
１：各サブピクセルの色データ値のＡ値
０：２５５
こうして、ブレンディングモード１２５により変化するＡ値に基づいて、色データとその直前の色データとを内分する。
【００６４】
出力レジスタ３１２は、各サブピクセルのブレンディングモード１２５の下位が１の時は、補間器３１１が出力した値を右に２ビットシフトする。０の時はそのまま出力する。これまでの処理をサブピクセルの分割数回行うが、この合成器では４回である。
【００６５】
ディスプレイ・コントローラ１０７は合成器１２３から合成色１２１を入力し、画像信号１２０に変換しディスプレイに対し出力する。
以上が画面上の１ピクセルの表示処理である。この処理をディスプレイの画素数分繰り返し１画面の表示処理が終了する。
【００６６】
＜実施形態２＞
以下、本発明に係る実施形態２について説明する。
１秒間に６０回画面を表示するインターレースのラスタースキャン方式のディスプレイを用いると、ピクセル数は６４０×４８０のＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）相当となる。この場合、１ピクセルの処理に許容される時間は、８０ｎｓである。本実施形態は、１ピクセルを２×２のサブピクセルに分割するので、１つのサブピクセルの処理に許される時間は２０ｎｓとなる。この時間内に処理を行うため、内分値発生器１０５およびレンダラ１０６では、パイプライン方式にて、複数の処理を並列して行う。以下に、内分値発生器およびレンダラにおけるパイプライン処理について具体例を用いて説明する。
【００６７】
まず、内分値発生器１０５における内分値算出処理について説明する。
内分値発生器１０５は、画面の２次元座標上の所定位置（ｍ，ｎ）に、３次元座標上の３頂点にて定義されるポリゴン面上のどの位置（ｘ，ｙ，ｚ）が投影されるかを算出する。この内分値算出方法では、ポリゴン面上の位置は三つの内分比および頂点順序で表される。すなわち、３頂点の座標Ｐ０（ｘ０，ｙ０，ｚ０）、Ｐ１（ｘ１，ｙ１，ｚ１）、Ｐ２（ｘ２，ｙ２，ｚ２）および画面座標（ｍ，ｎ）を入力し、内分比α，β，γおよび頂点順序δを生成する。内分比は、３頂点の座標で定義されるポリゴンを二つの平面にて順次切断することによって生成する。また頂点順序は、最初の平面による切断の際に決定する。
【００６８】
内分比の算出法について、図１１および図１２を用いて説明する。図１１は、ＸＹＺの３次元座標における頂点座標Ｐ０，Ｐ１，Ｐ２にて定義された三角形が、ＸＺ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断している様子を示し、１０Ａは、投影面上に三角形Ｐ０，Ｐ１，Ｐ２を正規化して投影した様子を示す。図１２は、上記の三角形が、ＹＺ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断している様子を示し、１１Ａは、投影面上に三角形Ｐ０，Ｐ１，Ｐ２を正規化して投影した様子を示す。図１１、図１２において、視点は原点と一致する。
【００６９】
また図１１及び図１２において、点Ｑ０，Ｑ１は三角形Ｐ０，Ｐ１，Ｐ２とｘ＝ｍｚの条件の平面との交点である。すなわち線分Ｑ０，Ｑ１が、ｘ＝ｍｚの条件の平面による三角形Ｐ０，Ｐ１，Ｐ２の切断線である。
【００７０】
図１１において、点Ａ０は、点Ｐ０を通るｘ軸に平行な直線とｘ＝ｍｚの条件の平面との交点である。同様に点Ａ１は、点Ｐ１を通るｘ軸に平行な直線とｘ＝ｍｚの条件の平面との交点、点Ａ２は、点Ｐ２を通るｘ軸に平行な直線とｘ＝ｍｚの条件の平面との交点である。そして点Ｑ０が、線分Ｐ０，Ｐ１を内分する比は、線分Ｐ０，Ａ０の長さと線分Ｐ１，Ａ１の長さとの比に等しい。また点Ｑ１が、線分Ｐ０，Ｐ２を内分する比は、線分Ｐ０，Ａ０の長さと線分Ｐ２，Ａ２の長さとの比に等しい。
【００７１】
ここでＰ０（ｘ０，ｙ０，ｚ０）、Ｐ１（ｘ１，ｙ１，ｚ１）、Ｐ２（ｘ２，ｙ２，ｚ２）であり、Ａ０（ｍｘ０，ｙ０，ｚ０）、Ａ１（ｍｘ１，ｙ１，ｚ１）、Ａ２（ｍｘ２，ｙ２，ｚ２）とする。
【００７２】
また三角形Ｐ０，Ｑ０，Ａ０と三角形Ｐ１，Ｑ０，Ａ１とは、相似であるから、
Ｐ０，Ｑ０：Ｑ０，Ｐ１＝Ｐ０，Ａ０：Ｐ１，Ａ１＝（ｍｚ０−ｘ０）：（ｘ１−ｍｚ１）
となる。その結果、点Ｑ０が、線分Ｐ０，Ｐ１を内分する比は、
α＝｜ｍｚ０−ｘ０｜／（｜ｍｚ０−ｘ０｜＋｜ｍｚ１−ｘ１｜）
となる。
【００７３】
同様に、三角形Ｐ０，Ｑ１，Ａ０と三角形Ｐ２，Ｑ１，Ａ２とは、相似であるから、点Ｑ１が、線分Ｐ０，Ｐ２を内分する比は、
β＝｜ｍｚ０−ｘ０｜／（｜ｍｚ０−ｘ０｜＋｜ｍｚ２−ｘ２｜）
となる。
【００７４】
次に図１２において、点Ｒは、線分Ｑ０，Ｑ１とＹＺ平面との交点である。点Ｂ０は、点Ｑ０を通るｙ軸に平行な直線とｙ＝ｎｚの条件の平面との交点である。同様に点Ｂ１は、点Ｑ１を通るｙ軸に平行な直線とｙ＝ｎｚの条件の平面との交点である。
【００７５】
ここでＱ０（ｘ３，ｙ３，ｚ３）、Ｑ１（ｘ４，ｙ４，ｚ４）とすると、Ｂ０（ｘ３，ｎｙ３，ｚ３）、Ｂ１（ｘ４，ｎｙ４，ｚ４）となる。
このため、ｙ３，ｚ３，ｙ４，ｚ４は、
ｙ３＝ｙ０＋（ｙ１−ｙ０）×α
ｚ３＝ｚ０＋（ｚ１−ｚ０）×α
ｙ４＝ｙ０＋（ｙ２−ｙ０）×β
ｚ４＝ｚ０＋（ｚ２−ｚ０）×β
として、求まる。また、三角形Ｑ０，Ｒ，Ｂ０と三角形Ｑ１，Ｒ，Ｂ１とは、相似であるから、
Ｑ０，Ｒ：Ｒ，Ｑ１＝Ｑ０，Ｂ０：Ｑ１，Ｂ１＝（ｎｚ３−ｙ３）：（ｙ４−ｎｚ４）
となるので、点Ｑ０が、線分Ｐ０，Ｐ１を内分する比は、
γ＝｜ｎｚ３−ｙ３｜／（｜ｎｚ３−ｙ３｜＋｜ｙ４−ｎｚ４｜）
となる。
【００７６】
次に頂点順序の算出について説明する。
まず、点Ｐ０から点Ａ０までの距離ｘ０−ｍｚ０，点Ｐ１から点Ａ１までの距離ｘ１−ｍｚ１，点Ｐ２から点Ａ２までの距離ｘ２−ｍｚ２を演算し、符号を調べる。その結果、一つだけ異符号のものがあり、これが先頭にくるように並べ替える。例えば、ｘ０−ｍｚ０が負で、ｘ１−ｍｚ１，ｘ２−ｍｚ２が正ならば、頂点順序はＰ０，Ｐ１，Ｐ２となる。また、ｘ１−ｍｚ１が負で、ｘ０−ｍｚ０，ｘ２−ｍｚ２が正ならば、頂点順序はＰ１，Ｐ０，Ｐ２となる。以上の演算で内分値が求まる。
【００７７】
上述の例では、まずＸＺ平面に垂直な平面にて切断した後、ＹＺ平面に垂直な平面にて切断した場合について説明したが、先にＹＺ平面に垂直な平面にて切断した後、ＸＺ平面に垂直な平面にて切断した場合は、上述の説明におけるポリゴン座標のｘとｙを入れ替え、また画面座標のｍとｎを入れ替えて、その他の処理は同様である。
【００７８】
次に、図１１における、ｘ−ｍｚをＸ方向透視距離、ｙ−ｎｚをＹ方向透視距離と呼び、このＸ方向およびＹ方向透視距離を用いた内分値算出方法について説明する。
【００７９】
内分値発生器１０５は、画面座標（ｍ，ｎ）およびポリゴンの三つの頂点座標Ｐ０（ｘ０，ｙ０，ｚ０）、Ｐ１（ｘ１，ｙ１，ｚ１）、Ｐ２（ｘ２，ｙ２，ｚ２）の入力を受けて、Ｘ方向透視距離、内分比α，βおよび頂点順序δを算出し、次にＹ方向透視距離、内分比γを算出し、内分比α，β，γおよび頂点順序δを出力する。
【００８０】
図１３は、内分値発生器におけるパイプライン処理の説明図である。ここで、Ａｉ，ｊ〜Ｆｉ，ｊは、画面の左上から（ｉ，ｊ）番目のピクセルにおける以下の処理Ａ〜処理Ｆを表す。
【００８１】
まず処理Ａは、各ピクセルにおける、
0003556517.tif 000002
を求める。
【００８２】
処理Ｂは、各ピクセルにおける、
ｄｘ０，ｄｘ１，ｄｘ２の並べ替えと、
ｄｙ０，ｄｙ１，ｄｙ２の並べ替えと、
頂点順序δの遅延を行う。
【００８３】
処理Ｃは、各ピクセルにおける、
内分比α，βの算出と、
ｄｙ０，ｄｙ１，ｄｙ２および頂点順序δの遅延を行う。
【００８４】
処理Ｄは、各ピクセルにおける、
ｄ＝ｄｙ０＋（ｄｙ１−ｄｙ０）×α
ｅ＝ｄｙ０＋（ｄｙ２−ｄｙ０）×β
を求め、
α，βおよび頂点順序δの遅延を行う。
【００８５】
処理Ｅは、各ピクセルにおける、
内分比γの算出と、
内分比α，βおよび頂点順序δの遅延を行う。
【００８６】
処理Ｆは、各ピクセルにおける、
内分比α，β，γおよび頂点順序δを出力する。
【００８７】
上記各処理は、ピクセル表示周期のＴ１サイクルでは１段目で処理Ａ０，０を行う。次に、Ｔ２サイクルでは２段目で処理Ｂ０，０を行うと共に、１段目で処理Ａ１，０を行う。次に、Ｔ３サイクルでは３段目で処理Ｃ０，０を行うと共に、２段目で処理Ｂ１，０を行うと共に、１段目で処理Ａ２，０を行う。こうして、Ｔ４，Ｔ５サイクルにおいて、順次処理Ｄ，Ｅを行うとともに、それぞれの前段の処理も同時に行う。そして、Ｔ６サイクルでは６段目で処理Ｆが行われ、１段目〜５段目で処理Ａ〜処理Ｅが並列して行われる。
【００８８】
図１４は、レンダラにおけるパイプライン処理の説明図である。レンダラは、レンダリングパラメータとして、マテリアル色ｃ０，ｃ１，ｃ２とテクスチャ座標（ｓ，ｔ，ｒ）およびテクスチャＩＤとを用いる。ここで、Ｇｉ，ｊ〜Ｌｉ，ｊは、画面の左上から（ｉ，ｊ）番目のピクセルにおける以下の処理Ｇ〜処理Ｌを表す。レンダラは、内分値発生器から内分比α，β，γおよび頂点順序δを受けて以下の処理を行う。
【００８９】
まず処理Ｇでは、頂点順序δに対応して、各頂点のテクスチャＩＤ０，ＩＤ１，ＩＤ２とテクスチャ座標（ｓ０，ｔ０，ｒ０）（ｓ１，ｔ１，ｒ１）（ｓ２，ｔ２，ｒ２）およびマテリアル色ｃ０，ｃ１，ｃ２を並べ替える。図１５は、ｓ０，ｓ１，ｓ２の並べ替え例を示し、他のパラメータについても同様に並べ替える。
【００９０】
処理Ｈは、内分値にて表される位置のレンダリングパラメータｓを
ｓａ＝ｓ０＋（ｓ１−ｓ０）×α
ｓｂ＝ｓ０＋（ｓ２−ｓ０）×β
ｓ＝ｓａ＋（ｓｂ−ｓａ）×γ
として求める。さらにｔ，ｒ，ｃについても同様に求める。
【００９１】
処理Ｉは、マテリアルデータを読み出す。
【００９２】
処理Ｊは、内分値にて表される位置のテクスチャ色を読み出し、マテリアル色ｃの遅延を行う。
【００９３】
処理Ｋは、内分値にて表される位置のテクスチャ色とマテリアル色とを混合する。
【００９４】
処理Ｌは、混合色を出力する。
【００９５】
上記各処理は、ピクセル表示周期のＴ７サイクルでは１段目で処理Ｇ０，０を行う。次に、Ｔ８サイクルでは２段目で処理Ｈ０，０を行うと共に、１段目で処理Ｇ１，０を行う。次に、Ｔ９サイクルでは３段目で処理Ｉ０，０を行うと共に、二段目で処理Ｈ１，０を行うと共に、１段目で処理Ｇ２，０を行う。こうして、Ｔ１０，Ｔ１１サイクルにおいて、順次処理Ｊ，Ｋを行うとともに、それぞれの前段の処理も同時に行う。そして、以降、同様にして、Ｔ１２サイクルでは６段目で処理Ｌが行われ、１段目〜４段目で処理Ｇ〜処理Ｋが並列して行われる。
【００９６】
図１６は、本発明に係る３次元画像処理装置の実施形態２を示すブロック図である。この３次元画像処理装置の基本構成は、実施形態１と変わらないが、異なる点はポリゴン・キャシュと内分値発生器とレンダラの直列接続したものが、複数並列接続された構造である。ＣＰＵ４０１は、サブピクセル・ポリゴン・コード４１１、描画頂点座標４１７および座標変換マトリクス４１６を座標変換回路４０２に対し出力する。
同様に、レンダリング・パラメータ４０９をポリゴン・キャシュ４０４に対し出力する。また、制御信号４２４によってポリゴン・コード・メモリ４０３およびポリゴン・キャシュ４０４を制御する。またディザデータ４２７をディザ回路４２６に対し出力する。
【００９７】
座標変換回路４０２は、入力された描画頂点座標４１７を頂点座標４１０に座標変換し、サブピクセル・ポリゴン・コード４１１でアドレスされるポリゴン・キャシュ４０４のエントリに書き込む。また、サブピクセル画面アドレス４１８及びサブピクセル・ポリゴン・コード４１１をディザ回路４２６に与える。
ディザ回路４２６は、サブピクセル画面アドレス４１８にしたがってディザデータ４２７を評価し、描画を行う場合はサブピクセルの位置をサブピクセル画面アドレス４１８で与え、サブピクセル・ポリゴン・コード４１１をポリゴン・コード・メモリ４０３に書き込む。
【００９８】
並列ポリゴン・キャシュ４０４は、座標変換回路４０２からポリゴン・コード４１１によって示される領域に頂点座標４１０が書き込まれる。同時にＣＰＵ４０１からのレンダリング・パラメータ４０９も同じ領域に書き込まれる。また、ポリゴン・キャシュ４０４は、ポリゴン・コード・メモリ４０３から出力された１ピクセルを構成する全サブピクセルのサブピクセル・ポリゴン・コード４２２のうち、自分の担当するサブピクセルのポリゴン・コードで示される領域の内容である頂点座標４１０およびレンダリング・パラメータ４０９を読み出し並列内分値発生器４０５へ各々送る。
【００９９】
並列内分値発生器４０５は、頂点座標４１２および画面座標４１９を与えられ、内分値４１３をレンダラ４０６に対して出力する。
並列レンダラ４０６は、内分値４１３およびレンダリング・パラメータ４１４から、サブピクセル色４１５を生成し、合成器４２３に対し出力する。合成器４２５は、並列レンダラ４０６からサブピクセル色データ値４１５を入力し、合成を行ない合成色データ値４２１を出力する。
ディスプレイ・コントローラ４０７は、その合成色データ値４２１に従った画像信号４２０をディスプレイ４０８に対し出力しディスプレイ４０８がその画像を表示する。
【０１００】
並列ポリゴン・キャシュ４０４、並列内分値発生器４０５、並列レンダラ４０６をあわせて並列回路と呼ぶ。図１７は並列回路の各回路が担当するサブピクセルを示している。図は２×２のサブピクセルの例を示す。本例で並列回路の並列数は４であり、１番目の回路が左上のサブピクセルを担当する。以下２番目が右上、３番目が左下、４番目が右下を各々担当する。
【０１０１】
図１８は、実施形態２の並列ポリゴン・キャシュ４０４及び並列内分値発生器４０５のブロック図である。並列ポリゴン・キャシュ４０４はセレクタ５０３とポリゴン・キャシュ１０４とからなる。並列内分値発生器４０５はサブピクセル画面座標発生器５０５と内分値発生器１０５からなる。
【０１０２】
セレクタ５０３は、１ピクセルを構成する全サブピクセルのポリゴン・コード４２２が入力され、自分が担当するサブピクセルのポリゴン・コードを１つ選択し担当サブピクセルポリゴン・コード５０４として出力する。
サブピクセル画面座標発生器５０５は、画面座標４１９が入力され、自分が担当するサブピクセルの画面座標を算出し、担当サブピクセル画面座標５０６として出力する。１番目の並列回路の場合、担当サブピクセルポリゴン・コード５０４は左上のサブピクセルのポリゴン・コードを選択する。また担当サブピクセル画面座標５０６は左上のサブピクセルの画面座標を算出し出力する。それ以外の回路は実施形態１の内分値発生器１０５およびポリゴン・キャシュ１０４と同様である。並列回路および合成器４２３を除く各回路の構成および動作は実施形態１と同様である。
【０１０３】
最後に合成器４２３について説明する。
図１９は、実施形態２の合成器の一例を示すブロック図である。
この合成器は、図１０の合成器が複数並列に接続された構造である。ブレンディングモードは実施形態１と同じである。合成器４２３は、各並列レンダラ４０６からの各サブピクセルの色データ値４１５が同時に入力される。各サブピクセルの色データ値４１５はＡ値、Ｒ値、Ｇ値、Ｂ値の４つのパラメータで構成され、このＡＲＧＢ値は通常０から２５５の整数である。
【０１０４】
並列積算器６０１には、各サブピクセルのブレンディングモード４２５の上位が１の時は、各サブピクセルの色データ値４１５を入力し、各パラメータに対しＡ値を積算し、並列シフタ６０２に対し出力する。０の時はＡ値の代わりに２５５を積算する。本実施例においてサブピクセルの分割数は２×２の４である。
６０２は並列シフタである。各サブピクセルのブレンディングモード４２５の下位が１の時は、並列積算器６０１が出力した値を右に２ビットシフトする。０の時はそのまま出力する。こうして、平均化する。
６０３は加算器である。並列シフタ６０２から出力されるデータを加算する。
【０１０５】
また以下の処理を行なう。データの値をＤとする。
・Ｄ＝Ｄ＋Ｄ／２５６
・Ｄを右に８ビットシフトする。
・Ｄが２５５より大きかったらＤ＝２５５とする。
・Ｄを合成色データ値４２１として出力する。
【０１０６】
図２０は合成器４２３の他の例である。
本実施例において各サブピクセルのブレンディングモード４２５は１ビットのデータであり、補間器のｏｎ／ｏｆｆを切替える。以下はブレンディングモード４２１の説明である。
ブレンディングモード１：アルファブレンディングＯＮ
ブレンディングモード０：アルファブレンディングＯＦＦ
半透明の物体には１を使用し、不透明の物体には０を使用する。
【０１０７】
各サブピクセルの色データ値４１５はＡ値、Ｒ値、Ｇ値、Ｂ値の４つのパラメータで構成される。ＡＲＧＢ値は通常０から２５５の整数である。
６０１は多段補間器である。多段補間器６０１の補間器はサブピクセルの分割数段ある。各々の補間器は前段からの色データ値および各サブピクセルの色データ値４１５を入力し、各パラメータに対し以下の補間演算を行う。
Ｒｏｕｔ＝Ａ（ｎ）＊Ｒ（ｎ）＋（２５６−Ａ（ｎ））＊Ｒ（ｎ−１）
Ｇｏｕｔ＝Ａ（ｎ）＊Ｇ（ｎ）＋（２５６−Ａ（ｎ））＊Ｇ（ｎ−１）
Ｂｏｕｔ＝Ａ（ｎ）＊Ｂ（ｎ）＋（２５６−Ａ（ｎ））＊Ｂ（ｎ−１）
Ｒ（ｎ），Ｇ（ｎ），Ｂ（ｎ）は各々格段が入力する各サブピクセルの色データ値４１５を示す。Ａ（ｎ−１），Ｒ（ｎ−１），Ｇ（ｎ−１），Ｂ（ｎ−１）は各々格段が入力する前段からの色データ値である。
【０１０８】
Ａ（ｎ）はブレンディングモード４２５によって以下のように変化する。
１：各サブピクセルの色データ値のＡ値
０：２５５
第一段の補間器は前段からの色データ値の代わりに０を入力する。
最終段の補間器で生成される色データ値を合成色データ値４２１として出力する。レンダラ４０６は、前述のものと同様である。
【０１０９】
図２１は、レンダラのさらに他の例を示すブロック図である。この構成は、図８のレンダラに対し、ミキサ２２３の公団にセレクタ２４１を追加したものである。このセレクタ２４１に、ミキサ色１１５およびサブピクセル・ポリゴン・コード１２２を入力している。サブピクセル・ポリゴン・コード１２２の最上位ビットが０の場合は、ミキサ色１１５を出力する。また、１の場合は、サブピクセル・ポリゴン・コード１２２を各サブピクセルの色データ値２４２として出力する。
サブピクセル・ポリゴン・コード１２２を各サブピクセルの色データ値４２２に変換する方法について説明する。サブピクセル・ポリゴン・コード１２２が１６ビットであるとすると、１ビットをＡ値の最上位、残りのｅビットずつをＲＧＢ値の上位５ビットに各々割り当て、余ったビットは０とする。こうして、サブピクセルの色データ値４２２として出力する。
【０１１０】
【発明の効果】
本発明によれば、色ではなくコードを描画しなおかつ複数の色を合成して表示を行なうため、アルファブレンディングとオーバーサンプリングによるレンダリング処理が可能になり、高画質な３次元グラフィクスを非常に軽い負荷で実現できる。
【０１１１】
さらに、本発明によれば、パイプライン方式で複数の処理を並列に行うので、処理が高速で、またより小さい回路規模で実現できる。
【０１１２】
また、本発明によれば、マテリアルＩＤを利用することにより様々なマテリアルを切替えることが可能になり、多様な色生成機能をＶＲＡＭ型３Ｄ画像処理装置に付加することができる。
【０１１３】
また、本発明によれば、セレクタを備えることにより、サブピクセル・ポリゴン・コードの内容を色情報としても使用することができる。
【図面の簡単な説明】
【図１】本発明に係る３次元画像形成装置の実施形態１を示すブロック図である。
【図２】画面座標と３次元座標の関係を表している説明図である。
【図３】描画処理後のポリゴン・コード・メモリの状態図である。
【図４】描画処理後のポリゴン・キャシュの状態図である。
【図５】実施形態１における内分値４１３の説明図である。
【図６】レンダリング・パラメータの補間の説明図である。
【図７】実施形態１のレンダラの一例を示すブロック図である。
【図８】実施形態１のレンダラの他の例を示すブロック図である。
【図９】実施形態１の合成器の一例を示すブロック図である。
【図１０】実施形態１の合成器の他の例を示すブロック図である。
【図１１】三角形が、ＸＺ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断されている説明図である。
【図１２】三角形が、ＹＺ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断されている説明図である。
【図１３】実施形態２の内分値発生器の処理の説明図である。
【図１４】実施形態２のレンダラの処理の説明図である。
【図１５】テクスチャ座標のｓ０，ｓ１，ｓ２の並べ替えを示す説明図である。
【図１６】本発明に係る３次元画像形成装置の実施形態２を示すブロック図である。
【図１７】実施形態２の並列回路のブロック図である。
【図１８】実施形態２の並列ポリゴン・キャシュ及び並列内分値発生器のブロック図である。
【図１９】実施形態２の合成器の一例を示すブロック図である。
【図２０】実施形態２の合成器の他の例を示すブロック図である。
【図２１】図８のレンダラのさらに他の例を示すブロック図である。
【図２２】従来のビットマップ・ディスプレイ装置のブロック図である。
【図２３】従来のグラフィック・ディスプレイ装置のブロック図である。
【図２４】従来のＶＲＡＭ型３次元画像表示装置のブロック図である。
【符号の説明】
１０１  ＣＰＵ
１０２  座標変換回路
１０３  ポリゴン・コード・メモリ
１０４  ポリゴン・キャシュ
１０５  内分値発生器
１０６  レンダラ
１０７  ディスプレイ・コントローラ
１０８  ディスプレイ
１０９  レンダリング・パラメータ
１１０，１１２  頂点座標
１１１  サブピクセル・ポリゴン・コード
１１３  内分値
１１４  レンダリング・パラメータ
１１５  各サブピクセルの色データ値
１１６  座標変換マトリクス
１１７  描画頂点座標
１１８  サブピクセル画面アドレス
１１９  画面座標
１２０  画像信号
１２１  合成色データ値
１２２  各サブピクセルのポリゴン・コード
１２３  合成器
１２５  各サブピクセルのブレンディングモード
１２６  ディザ回路
１２７  ディザデータ
【図１】
0003556517.tif 000003
【図２】
0003556517.tif 000004
【図３】
0003556517.tif 000005
【図４】
0003556517.tif 000006
【図５】
0003556517.tif 000007
【図６】
0003556517.tif 000008
【図７】
0003556517.tif 000009
【図８】
0003556517.tif 000010
【図９】
0003556517.tif 000011
【図１０】
0003556517.tif 000012
【図１１】
0003556517.tif 000013
【図１２】
0003556517.tif 000014
【図１３】
0003556517.tif 000015
【図１４】
0003556517.tif 000016
【図１５】
0003556517.tif 000017
【図１６】
0003556517.tif 000018
【図１７】
0003556517.tif 000019
【図１８】
0003556517.tif 000020
【図１９】
0003556517.tif 000021
【図２０】
0003556517.tif 000022
【図２１】
0003556517.tif 000023
【図２２】
0003556517.tif 000024
【図２３】
0003556517.tif 000025
【図２４】
0003556517.tif 000026