(57)【特許請求の範囲】
【請求項１】
２次元の画素座標系を、第１の方向にＰ個、前記第１の方向に垂直な第２の方向にＱ個の合計Ｐ×Ｑ個の複数の画素で構成される領域ごとに分割し、分割した各領域のＰ×Ｑ個の画素に、Ｐ×Ｑ個の演算部をそれぞれ割り当て、所定の図形に対応する画素を並列に描画する描画方法において、
前記第１および第２の方向における１画素あたりの描画データの変分をそれぞれΔＶ/ΔＸ1、ΔＶ/ΔＸ2とし、ccilを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、所定の点における描画データの値Ｖから、前記第１の方向において第ｉ番目で、かつ、前記第２の方向において第ｊ番目の演算部に割り当てられた最初の画素における描画データの値を、前記第１の方向においては、式
V＋(ccil((V+P-i)/P)-((V+P-i)/P))×P×ΔV/ΔX1
にしたがって、前記第２の方向においては、式
V＋(ccil((V+Q-j)/Q)-((V+Q-ｊ)/Q))×Q×ΔV/ΔX2
にしたがって演算する
ことを特徴とする描画方法。
【請求項２】
各演算部が、前記最初の画素における描画データの値から、前記１画素あたりの描画データの変分のＱ倍の値を変分として、前記第２の方向に位置する画素における描画データの値を補間演算する
ことを特徴とする請求項１に記載の描画方法。
【請求項３】
前記１画素あたりの描画データの変分のＱ倍の値を変分として補間演算された描画データの値を、前記演算部にそれぞれ対応する記憶部の、前記補間演算された描画データに対応する画素の座標を前記第１の方向にＰ分の１、前記第２の方向にＱ分の１だけそれぞれスケーリングした座標に対応する記憶領域に記憶させる
ことを特徴とする請求項２に記載の描画方法。
【請求項４】
２次元の画素座標系を、第１の方向にＰ個、前記第１の方向に垂直な第２の方向にＱ個の合計Ｐ×Ｑ個の複数の画素で構成される領域ごとに分割し、分割した各領域のＰ×Ｑ個の画素に、Ｐ×Ｑ個の演算部をそれぞれ割り当て、所定の図形に対応する画素を並列に描画する描画装置において、
所定の点における描画データの値をＶとし、前記第１および第２の方向における１画素あたりの描画データの変分をそれぞれΔＶ/ΔＸ1、ΔＶ/ΔＸ2とし、ccilを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、式
V＋(ccil((V+P-i)/P)-((V+P-i)/P))×P×ΔV/ΔX1
にしたがって、最初に描画する画素の前記第１の方向における座標に対応する前記描画データの値を演算する第１の補間演算手段と、
式
V＋(ccil((V+Q-ｊ)/Q)-((V+Q-j)/Q))×Q×ΔV/ΔX2
にしたがって、最初に描画する画素の前記第２の方向における座標に対応する前記描画データの値を演算するＰ×Ｑ個の第２の補間演算手段と
を備えることを特徴とする描画装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画方法および描画装置に関し、特に、２次元の画素座標系を、第１の方向にＮ個、第１の方向に垂直な第２の方向にＭ個の合計Ｎ×Ｍ個の画素の領域ごとに分割し、分割した各領域のＮ×Ｍ個の画素に、Ｎ×Ｍ個の演算部をそれぞれ割り当て、所定の図形に対応する画素を並列に描画する描画方法および描画装置に関する。
【０００２】
【従来の技術】
最近の半導体技術の進歩に伴い、画像処理を行う演算装置の処理能力も向上している。
【０００３】
所謂コンピュータグラフィクスにおいて３次元の物体をディスプレイに表示させる場合、所定の基本形状（例えば３角形）の複数の２次元図形（ポリゴン）を利用して、３次元の物体を表現することがある。
【０００４】
このようなポリゴンに対して、所定の演算回路によりレンダリング処理が行われることにより、ポリゴン内の各画素の輝度値が算出され、その輝度値に対応してポリゴンが描画される。
【０００５】
このようにしてポリゴンを描画する装置には、複数の演算回路を並列に動作させることにより、ポリゴンのレンダリング処理を高速に行うものがある。
【０００６】
そのような複数のレンダリング回路を利用する場合、例えば図６に示すように、表示画面７１をレンダリング回路６１乃至６４と同一の数（図６においては、４個）の領域に分割し、各レンダリング回路が、対応する領域におけるレンダリング処理を行うようになされている。
【０００７】
例えば、図６においては、レンダリング回路６１は、表示画面７１の左上側の４分の１の領域（領域Ａ）におけるレンダリング処理を行い、レンダリング回路６２は、表示画面７１の右上側の４分の１の領域（領域Ｂ）におけるレンダリング処理を行う。
【０００８】
また、レンダリング回路６３は、表示画面７１の左下側の４分の１の領域（領域Ｃ）におけるレンダリング処理を行い、レンダリング回路６４は、表示画面７１の右下側の４分の１の領域（領域Ｄ）におけるレンダリング処理を行う。
【０００９】
【発明が解決しようとする課題】
しかしながら、このように表示画面を分割した場合、例えば、図６のポリゴン８１のように、レンダリング処理が施されるポリゴンが、いずれかのレンダリング回路に割り当てられている領域内だけにあるとき、それらのポリゴンは、そのレンダリング回路だけによりレンダリング処理を施されるので、複数のレンダリング回路を設けているのも拘わらず、処理に要する時間が短縮されないという問題を有している。
【００１０】
また、各レンダリング回路に所定の数おきの画素を割り当ててレンダリング処理を行うインタリーブ処理が考えられるが、その場合、サブピクセル精度での描画が困難であるという問題を有している。
【００１１】
本発明は、そのような状況に鑑みてなされたもので、第１および第２の方向におけるデータの変分をそれぞれΔＶ／ΔＸ1、ΔＶ／ΔＸ2とし、ｃｃｉｌを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、所定の点における描画データの値Ｖから、第１の方向において第ｉ番目で、かつ、第２の方向において第ｊ番目の演算部に割り当てられた最初の画素における描画データの値を、第１の方向においては式
Ｖ＋（（ｃｃｉｌ（（Ｖ＋Ｎ−ｉ）／Ｎ）−（（Ｖ＋Ｎ−ｉ）／Ｎ））×Ｎ×ΔＶ／ΔＸ1
に従い、第２の方向においては式
Ｖ＋（（ｃｃｉｌ（（Ｖ＋Ｍ−ｊ）／Ｍ）−（（Ｖ＋Ｍ−ｊ）／Ｍ））×Ｍ×ΔＶ／ΔＸ2
に従って演算するようにして、サブピクセル精度での描画を行うことができるようにするものである。
【００１２】
【課題を解決するための手段】
本発明の描画方法は、第１および第２の方向における１画素あたりの描画データの変分をそれぞれΔＶ/ΔＸ1、ΔＶ/ΔＸ2とし、ccilを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、所定の点における描画データの値Ｖから、第１の方向において第ｉ番目で、かつ、第２の方向において第ｊ番目の演算部に割り当てられた最初の画素における描画データの値を、第１の方向においては、式V＋(ccil((V+P-i)/P)-((V+P-i)/P))×P×ΔV/ΔX1にしたがって、第２の方向においては、式V＋(ccil((V+Q-j)/Q)-((V+Q-ｊ)/Q))×Q×ΔV/ΔX2にしたがって演算することを特徴とする。
各演算部が、最初の画素における描画データの値から、１画素あたりの描画データの変分のＱ倍の値を変分として、第２の方向に位置する画素における描画データの値を補間演算するようにすることができる。
１画素あたりの描画データの変分のＱ倍の値を変分として補間演算された描画データの値を、演算部にそれぞれ対応する記憶部の、補間演算された描画データに対応する画素の座標を第１の方向にＰ分の１、第２の方向にＱ分の１だけそれぞれスケーリングした座標に対応する記憶領域に記憶させるようにすることができる。
【００１３】
本発明の描画装置は、所定の点における描画データの値をＶとし、第１および第２の方向における１画素あたりの描画データの変分をそれぞれΔＶ/ΔＸ1、ΔＶ/ΔＸ2とし、ccilを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、式V＋(ccil((V+P-i)/P)-((V+P-i)/P))×P×ΔV/ΔX1にしたがって、最初に描画する画素の第１の方向における座標に対応する描画データの値を演算する第１の補間演算手段と、式V＋(ccil((V+Q-ｊ)/Q)-((V+Q-j)/Q))×Q×ΔV/ΔX2にしたがって、最初に描画する画素の第２の方向における座標に対応する描画データの値を演算するＰ×Ｑ個の第２の補間演算手段とを備えることを特徴とする。
【００１４】
本発明においては、第１および第２の方向における１画素あたりの描画データの変分をそれぞれΔＶ/ΔＸ1、ΔＶ/ΔＸ2とし、ccilを、独立変数として与えられた数以上の整数のうちの最も小さい整数を従属変数として返す関数とすると、所定の点における描画データの値Ｖから、第１の方向において第ｉ番目で、かつ、第２の方向において第ｊ番目の演算部に割り当てられた最初の画素における描画データの値を、第１の方向においては、式V＋(ccil((V+P-i)/P)-((V+P-i)/P))×P×ΔV/ΔX1にしたがって、第２の方向においては、式V＋(ccil((V+Q-j)/Q)-((V+Q-ｊ)/Q))×Q×ΔV/ΔX2にしたがって演算する。
【００１６】
【発明の実施の形態】
図１は、本発明の描画装置の一実施の形態の構成を示している。メインプロセッサ１は、入出力部２を介して供給されるグラフィックスデータ、または、メインメモリ３に記憶されているポリゴンのグラフィックスデータをジオメトリ演算部４に出力するようになされている。なお、このようなポリゴンのグラフィックスデータは、所定の応用プログラムに従って生成される。
【００１７】
ジオメトリ演算部４は、メインプロセッサ１より供給されたグラフィックスデータに対して、座標変換、クリッピング処理、ライティング処理などを行い、処理後のグラフィックスデータ（ポリゴンレンダリングデータ）として、３角形のポリゴンの各頂点に対応する、座標Ｘ，Ｙ，Ｚ、赤色、緑色、青色にそれぞれ対応する輝度値Ｒ，Ｇ，Ｂ、描画する画素の輝度値とディスプレイバッファ１０に記憶されている画素の輝度値を混ぜ合わせる割合を表すブレンド係数α、テクスチャ座標Ｓ，Ｔ，Ｑ、および、フォグ係数ＦをＤＤＡセットアップ部５（第１の補間演算手段）に出力するようになされている。なお、ジオメトリ演算部４においては、座標系が２次元の表示画面の座標系に変換されるので、座標Ｚは、その点の奥行き方向の情報を表している。
【００１８】
なお、テクスチャ座標として、同次座標系であるＳ，Ｔ，Ｑが出力されるが、Ｓ／Ｑ，Ｔ／Ｑにテクスチャサイズをそれぞれ乗じたものが、実際のテクスチャ座標として利用される。また、フォグ係数Ｆは、例えばＺが大きく、その点における表示を、霧がかかったように表現するときに混合する所定のフォグカラーの混合の度合いを示す係数である。
【００１９】
ＤＤＡセットアップ部５は、供給された３角形の各頂点のポリゴンレンダリングデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑ，Ｆから、Ｘ方向に対するポリゴンレンダリングデータの変分（ΔＺ／ΔＸ，ΔＲ／ΔＸ，ΔＧ／ΔＸ，ΔＢ／ΔＸ，Δα／ΔＸ，ΔＳ／ΔＸ，ΔＴ／ΔＸ，ΔＱ／ΔＸ，ΔＦ／ΔＸ）を算出するとともに、Ｙ方向に対するポリゴンレンダリングデータの変分（ΔＺ／ΔＹ，ΔＲ／ΔＹ，ΔＧ／ΔＹ，ΔＢ／ΔＹ，Δα／ΔＹ，ΔＳ／ΔＹ，ΔＴ／ΔＹ，ΔＱ／ΔＹ，ΔＦ／ΔＹ）を算出するとともに、３角形の各辺の傾き（または、その逆数）を算出するようになされている。
【００２０】
また、ＤＤＡセットアップ部５は、３角形（ポリゴン）の頂点の座標より３角形の形状の種類の判別を行うとともに、各レンダリング回路２０−ｋ（ｋ＝１，２，３，４）（第２の補間演算手段）に対応する、描画開始点（レンダリング開始点）と同一のＹ方向の座標を有する辺ＡＣ上の点（Ｘ0，Ｙ0）（図３）における各ポリゴンレンダリングデータの値を初期値演算部２１で算出し、各レンダリング回路２０−ｋのＤＤＡ部６にそれぞれ出力するようになされている。
【００２１】
図２は、ＤＤＡセットアップ部５の初期値演算部２１の構成例を示している。なお、初期値演算部２１においては、各値は、固定小数点実数で表現される。
【００２２】
定数発生回路４１は、レンダリング回路２０−ｋの数（即ち、並列に処理する領域を構成する画素数）２N×２Nに対応する値（その領域のＹ方向の画素数）２Nを発生し、その値を減算器４２に出力するようになされている。
【００２３】
減算器４２は、そのレンダリング回路２０−ｋにより処理される画素のＹ方向（第１の方向）における番号ｉ（後述）と、定数発生回路４１からの値２Nとの差（２N−ｉ）を計算し、その計算結果を加算器４３に出力するようになされている。
【００２４】
加算器４３は、減算器４２からの値（２N−ｉ）と、頂点Ａでのデータの値Ｖａとの和（Ｖａ＋２N−ｉ）を計算し、その計算結果をビットシフタ４４に出力するようになされている。
【００２５】
ビットシフタ（バレルシフタ：barrel shifter）４４は、加算器４３より供給された値（Ｖａ＋２N−ｉ）を、ＬＳＢ（Least Significant Bit）側にＮビットだけビットシフトし、ビットシフトした値（（Ｖａ＋２N−ｉ）／２N）を加算器４５および減算器４７に出力するようになされている。
【００２６】
定数発生回路４６は、固定小数点実数の小数点以下の各ビットの値が１である値（０．１１１・・・１Ｂ）を発生し、その値を加算器４５に出力するようになされている。
【００２７】
加算器４５は、ビットシフタ４４からの値（（Ｖａ＋２N−ｉ）／２N）に、定数発生回路４６からの値（０．１１１・・・１Ｂ）を加算し、その計算結果の小数点以下を切り捨てた後、その値（整数部分）を減算器４７に出力するようになされている。即ち、加算器４５は、ビットシフタ４４より供給された値より大きい整数のうちで、最も小さい整数（ｃｃｉｌ（（Ｖａ＋２N−ｉ）／２N））と同一の値の固定小数点実数を出力する。
【００２８】
減算器４７は、ビットシフタ４４からの値と、加算器４５からの値の差（ｃｃｉｌ（（Ｖａ＋２N−ｉ）／２N）−（Ｖａ＋２N−ｉ）／２N）を計算し、その計算結果をビットシフタ４８に出力するようになされている。
【００２９】
ビットシフタ（バレルシフタ）４８は、減算器４７より供給された値を、ＭＳＢ（Most Significant Bit）側にＮビットだけビットシフトし、ビットシフトした値（（ｃｃｉｌ（（Ｖａ＋２N−ｉ）／２N）−（Ｖａ＋２N−ｉ）／２N）×２N）を乗算器４９に出力するようになされている。
【００３０】
乗算器４９は、ビットシフタ４８からの値と、今回計算するデータに対応するＹ方向の変分ΔＶ／ΔＹとの積（（ｃｃｉｌ（（Ｖａ＋２N−ｉ）／２N）−（Ｖａ＋２N−ｉ）／２N）×２N×ΔＶ／ΔＹ）を計算し、その計算結果を加算器５０に出力するようになされている。
【００３１】
加算器５０は、乗算器４９からの値と、今回、点（Ｘ0，Ｙ0）における値を算出するデータの頂点Ａでの値Ｖａとの和（Ｖａ＋（ｃｃｉｌ（（Ｖａ＋２N−ｉ）／２N）−（Ｖａ＋２N−ｉ）／２N）×２N×ΔＶ／ΔＹ）を、今回計算するデータの初期値（上述の点（Ｘ0，Ｙ0）での値）Ｖ0として出力するようになされている。
【００３２】
図１のレンダリング回路２０−１のＤＤＡ部６は、上述の初期演算部２１と同様な回路（図示せず）を内蔵し、ＤＤＡ（Digital Differential Analyzer）演算を行い、ＤＤＡセットアップ５より供給された、各ポリゴンレンダリングデータのＸ方向の変分と、所定のスパン（Ｘ方向に配列した画素の列）（図５）に対応する各ポリゴンレンダリングデータの初期値Ｖ0から、まず、そのスパンにおける、レンダリング回路２０−１に割り当てられた画素のうちの最初の画素（割り当てられた画素のうち、辺ＡＣに最も近い画素）に対応する各ポリゴンレンダリングデータの値Ｖｉを算出し、次に、そのスパンの各画素に対応する座標Ｘ，Ｙと、その座標におけるポリゴンレンダリングデータＺ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑ，Ｆの値を順次算出し、テクスチャプロセッサ７に出力するようになされている。
【００３３】
なお、ＤＤＡ部６は、所定の数の画素おきに、その画素のレンダリングデータの値を算出していく。
【００３４】
レンダリング回路２０−１のテクスチャプロセッサ７は、テクスチャバッファ９からテクスチャデータを読み出し、供給されたテクスチャ座標Ｓ，ＴをＱで除算し、テクスチャサイズで乗算して実際のテクスチャ座標を算出するとともに、読み出したテクスチャデータから、実際のテクスチャ座標Ｓ，Ｔに対応したテクスチャアドレスにおける輝度値と、テクスチャデータの混合比を表す係数（テクスチャのα値）を算出し、その係数に対応して、ＤＤＡ部６より供給された輝度値と、テクスチャに対応する輝度値を混合するようになされている。
【００３５】
さらに、テクスチャプロセッサ７は、フォグ係数Ｆに対応して所定のフォグカラーを混合し、生成された輝度値を、ＤＤＡ部６より供給された座標Ｘ，Ｙの画素に対応する輝度値として、座標Ｘ，Ｙ，Ｚおよびブレンド係数αとともにメモリインタフェース８に出力するようになされている。
【００３６】
なお、テクスチャバッファ９は、ＭＩＰＭＡＰなどの各レベルに対応したテクスチャデータを予め記憶している。
【００３７】
レンダリング回路２０−１のメモリインタフェース８は、Ｚバッファ１１のＺ値を参照し、供給された画素が、以前に描画したものより手前（視点側）にある場合、供給された座標Ｚで、Ｚバッファ１１のＺ値を更新するとともに、供給された輝度値を、ディスプレイバッファ１０における、その座標（Ｘ，Ｙ）に対応するアドレスに書き込むようになされている。
【００３８】
なお、メモリインタフェース８は、αブレンドを行うように設定されている場合、供給されたブレンド係数αに対応して、ディスプレイバッファ１０に記憶されている輝度値と、供給された輝度値を混合して、生成された輝度値をディスプレイバッファ１０に書き込む。
【００３９】
レンダリング回路２０−１のＣＲＴ制御部１２は、所定の水平および垂直同期信号に同期して表示アドレスを発生し、メモリインタフェース８を制御して、その表示アドレスに対応する輝度値を、所定の数毎にまとめて転送させ、内蔵するＦＩＦＯ部（図示せず）にそれらの値を一旦記憶し、所定の間隔でそのデータのインデックス値をマルチプレクサ１４に出力するようになされている。
【００４０】
なお、レンダリング回路２０−２乃至２０−４は、レンダリング回路２０−１と同様に構成されているので、その説明を省略する。
【００４１】
マルチプレクサ１４は、レンダリング回路２０−１乃至２０−４より供給されたインデックス値を所定の順番で整列させた後、ＲＡＭＤＡＣ１３に出力するようになされている。
【００４２】
ＲＡＭＤＡＣ１３は、図示せぬＲＡＭ部とＤＡＣ（Digital/Analog Converter）部を有し、インデックス値に対応した輝度値をＲＡＭ部に予め記憶しており、マルチプレクサ１４より供給されたインデックス値に対応する輝度値を、ＲＡＭ部からＤＡＣ部に供給し、ＤＡＣ部において、その輝度値（ＲＧＢ値）をＤ／Ａ変換し、アナログのビデオ信号（ＲＧＢ信号）を所定の装置（図示せず）に出力するようになされている。
【００４３】
次に、ポリゴンを描画する際の、図１の描画装置の動作について説明する。
【００４４】
最初に、メインプロセッサ１が、ポリゴンのデータをジオメトリ演算部４に出力する。
【００４５】
ジオメトリ演算部４は、メインプロセッサ１より供給されたグラフィックスデータに対して、座標変換、クリッピング処理、ライティング処理などを行い、３角形（ポリゴン）の各頂点に対応する、座標Ｘ，Ｙ，Ｚ、輝度値Ｒ，Ｇ，Ｂ、ブレンド係数α、テクスチャ座標Ｓ，Ｔ，Ｑ、および、フォグ係数ＦをＤＤＡセットアップ部５に出力する。
【００４６】
次に、ＤＤＡセットアップ部５は、レンダリングの前処理として、まず、３角形のポリゴンの形状の判別を行う。このとき、ＤＤＡセットアップ部５は、３つの頂点のうち、Ｙ方向の座標が最も小さい頂点を頂点Ａとし、Ｙ方向の座標が最も大きい頂点を頂点Ｃとし、残りの頂点を頂点Ｂとする。なお、３つの頂点のうち、Ｙ方向の座標が最も小さい頂点が２つある場合、ＤＤＡセットアップ部５は、それらの２つの頂点のうちのいずれか一方を頂点Ａとし、他方を頂点Ｂとする。
【００４７】
そして、ＤＤＡセットアップ部５は、ポリゴン内の各画素におけるポリゴンレンダリングデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑ，Ｆの値を補間演算により算出するときに利用されるＸ方向およびＹ方向に対するポリゴンレンダリングデータの変分を、ポリゴンの３頂点のポリゴンレンダリングデータの値からそれぞれ算出する。
【００４８】
各変分を算出した後、ＤＤＡセットアップ部５は、レンダリング回路２０−１乃至２０−４がそれぞれ処理する画素のＹ方向の座標Ｙ0と同一の座標を有する辺ＡＣ上の点（Ｘ0，Ｙ0）における各ポリゴンレンダリングデータの値を補間演算により算出し、それらのデータを、Ｘ方向の各変分とともに、対応するレンダリング回路２０−１乃至２０−４のＤＤＡ部６に出力する。
【００４９】
このとき、ＤＤＡセットアップ部５は、初期値算出部２１において次式に従って、各レンダリング回路２０−ｋ（ｋ＝１，２，３，４）に対応する点（Ｘ0，Ｙ0）における各ポリゴンレンダリングデータの値Ｖ0を算出する。
0003763136.tif 000002
【００５０】
ここで、Ｖａは、頂点Ａにおける所定のポリゴンレンダリングデータＶの値を表し、２Nは、レンダリング回路が並列に処理する領域の１辺の画素数を表し、ｉは、各レンダリング回路のＹ方向の番号を表している。また、Ａ＞＞Ｎは、所定の値Ａを、ＬＳＢ側へＮビットだけビットシフトした値を表し、Ａ＜＜Ｎは、所定の値Ａを、ＭＳＢ側へＮビットだけビットシフトした値を表している。
【００５１】
今の場合、４つのレンダリング回路２０−１乃至２０−４で、図３に示すように、２×２画素の領域ごとに各画素を並列に処理するので、Ｎ＝１である。なお、この場合、レンダリング回路２０−１乃至２０−４は、図中の０乃至３の画素の処理をそれぞれ割当てられている。従って、レンダリング回路２０−１，２０−２に対してはｉ＝０であり、レンダリング回路２０−３，２０−４に対してはｉ＝１である。なお、図３においては、各画素は、画素の左下角の座標で代表されている。
【００５２】
例えば、Ｙ0を算出する場合、ｉ＝０であるレンダリング回路２０−１，２０−２においては、Ｙ0は、次式で算出される。
0003763136.tif 000003
【００５３】
一方、ｉ＝１であるレンダリング回路２０−３，２０−４においては、Ｙ0は、次式で算出される。
Ｙ0＝Ｙａ＋（（ｃｃｉｌ（（Ｙａ＋１）＞＞１）−（Ｙａ＋１）＞＞１）＜＜１）
【００５４】
そして、図４（Ａ）に示すように、Ｙａの値が、ｘｘｘ０．０Ｂ（ｘは０および１のうちの任意の数、Ｂは、２進数を表す）である場合、ｉ＝０であるレンダリング回路２０−１，２０−２においては、Ｙ0は、次に示すように算出される。
0003763136.tif 000004
【００５５】
一方、Ｙａ＝ｘｘｘ０．０Ｂである場合、ｉ＝１であるレンダリング回路２０−３，２０−４においては、Ｙ0は、次に示すように算出される。
0003763136.tif 000005
【００５６】
図４（Ｂ）に示すように、Ｙａ＝ｘｘｘ０．１Ｂであり、かつ、ｉ＝０である場合、Ｙ0は、同様に、（ｘｘｘ０．１Ｂ＋１．１Ｂ）と算出され、ｉ＝１である場合、（ｘｘｘ０．１Ｂ＋０．１Ｂ）と算出される。
【００５７】
また、図４（Ｃ）に示すように、Ｙａ＝ｘｘｘ１．０Ｂであり、かつ、ｉ＝０である場合、Ｙ0は、同様に、（ｘｘｘ１．０Ｂ＋１．０Ｂ）と算出され、ｉ＝１である場合、ｘｘｘ１．０Ｂと算出される。
【００５８】
さらに、図４（Ｄ）に示すように、Ｙａ＝ｘｘｘ１．１Ｂであり、かつ、ｉ＝０である場合、Ｙ0は、同様に、（ｘｘｘ１．１Ｂ＋０．１Ｂ）と算出され、ｉ＝１である場合、（ｘｘｘ１．１Ｂ＋１．１Ｂ）と算出される。
【００５９】
このようにして、ＤＤＡセットアップ部５は、ｉの値に対応して各レンダリング回路により最初にレンダリングするスパンのＹ座標Ｙ0を算出するとともに、同様に、各ポリゴンレンダリングデータの初期値Ｖ0を算出する。
【００６０】
また、ＤＤＡセットアップ部５は、各レンダリング回路２０−ｋに対応する最初のスパンのＹ方向の座標Ｙ0を算出した後、各レンダリング回路２０−ｋが、次に処理するスパンのＹ方向の座標およびその座標におけるデータＶを、変分を２N×ΔＶ／ΔＹとして補間演算により順次算出していく。
【００６１】
そして、各レンダリング回路２０−ｋ（ｋ＝１，２，３，４）のＤＤＡ部６は、ＤＤＡ演算を行い、ＤＤＡセットアップ部５より供給されたデータに対応するスパンにおける、このレンダリング回路２０−ｋに割り当てられた画素のレンダリング処理を行う。今の場合、図５に示すように、１つのスパンは、２つのレンダリング回路で処理される。
【００６２】
このとき、レンダリング回路２０−ｋのＤＤＡ部６は、点（Ｘ0，Ｙ0）から、このレンダリング回路２０−ｋに割り当てられた画素のうちの辺ＡＣに最も近い画素のポリゴンレンダリングデータの値を算出した後、（２N−１）個おきに各画素のポリゴンレンダリングデータの値を算出していく。
【００６３】
即ち、ＤＤＡ部６は、まず、次式に従って、そのレンダリング回路２０−ｋに対応する点（Ｘ0，Ｙ0）における各ポリゴンレンダリングデータの値Ｖ0から、辺ＡＣに最も近い画素のポリゴンレンダリングデータの値Ｖｉを算出する。
0003763136.tif 000006
【００６４】
ここで、ｊは、各レンダリング回路のＸ方向の番号を表している。今の場合（上述のように図３の画素０乃至３がレンダリング回路２０−１乃至２０−４にそれぞれ割り当てられている場合）、レンダリング回路２０−１，２０−３に対してはｊ＝０であり、レンダリング回路２０−２，２０−４に対してはｊ＝１である。なお、この計算は、ＤＤＡ部６において、ＤＤＡセットアップ部５の初期値演算部２１と同様な回路で行われる。このとき、図２のｉの代わりにｊを入力し、ΔＶ／ΔＹの代わりにΔＶ／ΔＸを入力し、Ｖａの代わりにＶ0を入力することにより、各レンダリング回路２０−ｋに対応するＶｉが出力される。
【００６５】
そして、ＤＤＡ部６は、各ポリゴンレンダリングデータＶの変分を２N×ΔＶ／ΔＸとして補間演算を行い、割り当てられた画素のポリゴンレンダリングデータの値を算出し、テクスチャプロセッサ７に順次出力する。
【００６６】
テクスチャプロセッサ７は、テクスチャバッファ９からテクスチャデータを読み出し、そのデータを利用して、ＤＤＡ部６より供給されたテクスチャ座標を、実際のテクスチャ座標に変換し、実際のテクスチャ座標Ｓ，Ｔに対応したテクスチャアドレスにおける輝度値と、テクスチャデータの混合比を表す係数（テクスチャのα値）を算出し、その係数に対応して、ＤＤＡ部６より供給された輝度値と、テクスチャに対応する輝度値を混合する。
【００６７】
さらに、テクスチャプロセッサ７は、テクスチャのα値に対応して混合された輝度値に、フォグ係数Ｆに対応して所定のフォグカラーを混合し、生成された輝度値を、ＤＤＡ部６より供給された座標Ｘ，Ｙの画素に対応する輝度値として、座標Ｘ，Ｙ，Ｚおよびブレンド係数αとともにメモリインタフェース８に出力する。
【００６８】
そして、メモリインタフェース８は、Ｚバッファ１１のＺ値を読み出し、テクスチャプロセッサ７より供給された画素が以前に描画したものより手前（視点側）にあるか否かを判断し、供給された画素が以前に描画したものより手前にある場合、供給された座標Ｚで、Ｚバッファ１１のＺ値を更新するとともに、供給された輝度値を、ディスプレイバッファ１０における、その座標に対応するアドレスに書き込む。
【００６９】
一方、供給された画素が以前に描画したものより後ろにある場合、メモリインタフェース８は、供給されたデータを破棄する。
【００７０】
なお、αブレンドを行うように設定されている場合、メモリインタフェース８は、テクスチャプロセッサ７より供給されたブレンド係数αに対応して、ディスプレイバッファ１０に記憶されている輝度値と、供給された輝度値を、α：（１−α）の割合で混合して、生成した輝度値をディスプレイバッファ１０に書き込む。
【００７１】
また、メモリインタフェース８は、供給された座標Ｘ，Ｙを、それぞれ１／２N（上述の並列処理する領域の各辺の画素数の逆数）にスケーリングした後、その値に対応するディスプレイバッファ１０の記憶領域に輝度値を書き込む。このようにすることにより、ディスプレイバッファ１０に隙間なく、輝度値が記憶される。
【００７２】
そして、ディスプレイバッファ１０に書き込まれた輝度値は、ＣＲＴ制御部１２により水平および垂直同期信号に同期して発生される表示アドレスに対応して、ＣＲＴ制御部１２にメモリインタフェース８を介して転送され、ＣＲＴ制御部１２のＦＩＦＯ部に一旦記憶される。そして、その輝度値に対応するインデックス値が、所定の間隔でマルチプレクサ１４に出力される。
【００７３】
このように、レンダリング回路２０−ｋはそれぞれ動作し、予め割り当てられた画素におけるポリゴンレンダリングデータの値を並列に算出していく。
【００７４】
そして、マルチプレクサ１４により、レンダリング回路２０−１乃至２０−４より供給されたインデックス値は、所定の順番で整列された後、ＲＡＭＤＡＣ１３に出力され、ＲＡＭＤＡＣ１３から、そのインデックス値に対応した輝度値（ＲＧＢ値）をＤ／Ａ変換したアナログビデオ信号（ＲＧＢ信号）が所定の装置（図示せず）に出力される。
【００７５】
なお、上記実施の形態において並列に処理される領域の画素数は、２×２であるが、他の数でもよい。また、この領域の各辺の画素数が２の整数乗である場合、上述のＶ0およびＶｉを算出するとき、除算の代わりにビットシフトを行えばよいので、回路が簡単となり、コストを低減することができる。
【００７６】
【発明の効果】
以上のごとく、本発明によれば、サブピクセル精度での描画を並列処理で行うことができる。
【図面の簡単な説明】
【図１】本発明の描画装置の一実施の形態の構成を示すブロック図である。
【図２】図１の初期値演算部の構成例を示すブロック図である。
【図３】レンダリング回路への画素の割り当ての一例を示す図である。
【図４】データの初期値の算出の例を示す図である。
【図５】スパンの一例を示す図である。
【図６】複数のレンダリング回路で行う描画処理の一例を示す図である。
【符号の説明】
１  メインプロセッサ，  ２  入出力部，  ３  メインメモリ，  ４  ジオメトリ演算部，  ５  ＤＤＡセットアップ部，  ６  ＤＤＡ部，  １３  ＲＡＭＤＡＣ，  １４  マルチプレクサ，  ２０−１乃至２０−４  レンダリング回路，
２１  初期値演算部
【図１】
0003763136.tif 000007
【図２】
0003763136.tif 000008
【図３】
0003763136.tif 000009
【図４】
0003763136.tif 000010
【図５】
0003763136.tif 000011
【図６】
0003763136.tif 000012