(57)【要約】【課題】  エイリアスの少ない線の描画を安価に実現できる技術を提供する。【解決手段】描画対象線６６について与えられた２つの頂点座標から、エッジ関数を算出する。次にエッジ関数の傾き判定を行い、描画対象線６６が描画平面座標系のｘ軸となす鋭角が４５゜以下の場合は、１ピクセル分の幅をｄとして、描画対象線６６をｙ軸方向に０．５ｄおよび−０．５ｄ平行移動させた２本のシフト線６８の関数を算出する。描画対象線６６と描画平面座標系のｙ軸とがなす鋭角が４５゜より大きい場合は、描画対象線６６をｘ軸方向に０．５ｄおよび−０．５ｄ平行移動させた２本のシフト線の関数を算出する。次に２本のシフト線６８の始点および終点の４点を頂点とする平行四辺形ａｂｃｄに含まれるサブピクセルの数を取得し、それに基づき各ピクセルのピクセル値を設定する。【選択図】  図８
2006209223.tif 000002
【特許請求の範囲】
【請求項１】
描画対象の線を中心として、表示画面の水平方向および垂直方向のいずれかの方向にピクセルの大きさの整数倍の幅をもたせた領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を決定することを特徴とする描画方法。
【請求項２】
描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を決定することを特徴とする描画方法。
【請求項３】
前記描画領域は前記シフトさせた２本の平行線と、当該２本の平行線の始点どうしおよび終点どうしをそれぞれ結ぶ２本の線分とを境界線とすることを特徴とする請求項２に記載の描画方法。
【請求項４】
前記描画領域に含まれる割合は、前記ピクセルの表示領域をそれぞれ仮想的に所定数分割して得られたサブピクセルのうち、前記描画領域に含まれるサブピクセルの数に応じて決定することを特徴とする請求項２または３に記載の描画方法。
【請求項５】
描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定めるステップと、
前記描画領域を含み、前記描画領域の境界線の少なくとも一部を境界線に含む矩形の走査領域を設定するステップと、
ピクセルの表示領域を仮想的に所定数分割して得られたサブピクセル単位で前記走査領域内を走査し、前記描画領域に含まれるサブピクセルの数を取得するステップと、
各ピクセルに含まれるサブピクセルのうち、前記描画領域に含まれるサブピクセルの数の割合に応じて当該ピクセルのピクセル値を設定するステップと、を含むことを特徴とする描画方法。  
【請求項６】
頂点データの得られた描画対象の直線を含み、表示画面の水平方向および垂直方向のいずれかに所定の幅を有する当該直線と平行な平行四辺形に対し、ピクセルの表示領域より小さい微細領域単位で内外判定を行うことにより、前記ピクセルの表示領域が前記平行四辺形に内在する度合いを評価し、その度合いにもとづいて当該ピクセルのピクセル値を決定することを特徴とする描画方法。
【請求項７】
描画すべき画像の情報を読み込む描画情報取得部と、
前記画像の情報に基づき、各ピクセル値によってピクセル単位で表現した描画データを生成する描画データ生成部と、
前記描画データを記憶する描画データ記憶部と、を備え、
前記描画データ生成部は、前記画像の情報に含まれる描画対象の線をピクセル単位で表現する際、当該描画対象の線を中心として、表示画面の水平方向および垂直方向のいずれかの方向にピクセルの大きさの整数倍の幅をもたせた領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を設定することを特徴とする画像生成装置。
【請求項８】
描画すべき画像の情報を読み込む描画情報取得部と、
前記画像の情報に基づき、各ピクセル値によってピクセル単位で表現した描画データを生成する描画データ生成部と、
前記描画データを記憶する描画データ記憶部と、を備え、
前記描画データ生成部は、前記画像の情報に含まれる描画対象の線をピクセル単位で表現する際、当該描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を設定することを特徴とする画像生成装置。
【請求項９】
前記描画データ生成部が定める描画領域は、前記シフトさせた２本の平行線と、当該２本の平行線の始点どうしおよび終点どうしをそれぞれ結ぶ２本の線分とを境界線とすることを特徴とする請求項８に記載の画像生成装置。
【請求項１０】
前記描画データ生成部において取得する前記ピクセルの表示領域が描画領域に含まれる割合は、前記ピクセルの表示領域をそれぞれ仮想的に所定数分割して得られたサブピクセルのうち、前記描画領域に含まれるサブピクセルの数に応じて決定することを特徴とする請求項８または９に記載の画像生成装置。
【請求項１１】
前記描画データ生成部は、前記描画領域を含む矩形の走査領域を設定し、表示画面の水平方向および垂直方向のいずれかの方向に前記走査領域内を前記サブピクセル単位で走査することにより、前記描画領域に含まれるサブピクセルを検出することを特徴とする請求項１０に記載の画像生成装置。
【請求項１２】
前記描画データ生成部は、前記走査領域を、その境界線の一部が前記描画領域の境界線の一部と一致するように設定することを特徴とする請求項１１に記載の画像生成装置。
【請求項１３】
前記描画データ生成部は、前記描画対象の線と表示画面の水平方向とがなす鋭角が、所定の角度以内のときは前記シフトを垂直方向に行い、前記所定の角度より大きいときは前記シフトを水平方向に行うことを特徴とする請求項８から１２のいずれかに記載の画像生成装置。
【請求項１４】
請求項７に記載の画像生成装置と、当該画像生成装置を制御する制御部とを備え、前記画像生成装置が生成した画像を前記制御部の制御により表示装置へ表示することを特徴とする電子情報機器。
【請求項１５】
請求項８に記載の画像生成装置と、当該画像生成装置を制御する制御部とを備え、前記画像生成装置が生成した画像を前記制御部の制御により表示装置へ表示することを特徴とする電子情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はピクセル単位の描画データを生成する描画方法、画像生成装置、および電子情報機器に関する。
【背景技術】
【０００２】
近年のコンピュータゲームやディジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、３次元画像などをより精緻に画面表示することが可能となっている。３次元空間におけるオブジェクトを表現するポリゴンや、ユーザが入力した２次元画像などは、ピクセル単位のディジタル画像情報として表示装置などへ送出される。
【０００３】
元来アナログ情報であった画像や、既知の頂点座標を結ぶ線分などを、ピクセル単位で表現するには、求められる処理速度や描画精度、ハードウェアへの実装の容易さなどに応じてその手法が選択される。  
【０００４】
ピクセルは離散的配列であるため、描画したい図形をピクセル単位のデータへ変換すると、当該図形を構成するピクセルの輪郭が画像上に発現し、ジャギーと呼ばれるぎざぎざを有する形状で表示されたり、細い線が寸断したり、といった現象が発生することがある。これらの現象は一般にエイリアシングと呼ばれ、それを軽減するために解像度を上げて描画するなどのアンチエイリアシングの手法が考案されてきた（例えば非特許文献１参照）。
【非特許文献１】Hardware Acceleration for Spatial Selections and Joins, Chengyu Sun et. al., UCSB Technical Report (2002-17).
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、アンチエイリアシングを行うことによってエイリアシングは軽減されるものの、線の太さなど全体的な印象が元来描画したい形状と異なってしまう問題が生じる場合があること、また解像度を上げるなどすることによりアンチエイリアシング処理自体による計算負荷が増大し、高速描画に対する障壁となる場合があること、を本発明者は認識した。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は所望の描画形状を有しエイリアシングの目立たない描画情報を生成することのできる技術の提供にある。さらに別の目的は、計算負荷および処理速度の面で有利なアンチエイリアシング技術の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は描画方法に関する。この描画方法は、描画対象の線を中心として、表示画面の水平方向および垂直方向のいずれかの方向にピクセルの大きさの整数倍の幅をもたせた領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を決定することを特徴とする。
【０００８】
ここで「ピクセルの表示領域」とはディジタル化した画像をピクセル単位で表す際に、ピクセルが色や濃度などのピクセル値を表示することのできるます目のひとつひとつの領域のことであり、表示装置などの解像度によってその面積が変化する。
【０００９】
本発明の別の態様もまた描画方法に関する。この描画方法は、描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を決定することを特徴とする。
【００１０】
本発明の別の態様もまた描画方法に関する。この描画方法は、描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定めるステップと、前記描画領域を含み、前記描画領域の境界線の少なくとも一部を境界線に含む矩形の走査領域を設定するステップと、ピクセルの表示領域を仮想的に所定数分割して得られたサブピクセル単位で前記走査領域内を走査し、前記描画領域に含まれるサブピクセルの数を取得するステップと、各ピクセルに含まれるサブピクセルのうち、前記描画領域に含まれるサブピクセルの数の割合に応じて当該ピクセルのピクセル値を設定するステップと、を含むことを特徴とする。
【００１１】
本発明のさらに別の態様は画像生成装置に関する。この画像生成装置は、描画すべき画像の情報を読み込む描画情報取得部と、前記画像の情報に基づき、各ピクセル値によってピクセル単位で表現した描画データを生成する描画データ生成部と、前記描画データを記憶する描画データ記憶部と、を備え、前記描画データ生成部は、前記画像の情報に含まれる描画対象の線をピクセル単位で表現する際、当該描画対象の線を中心として、表示画面の水平方向および垂直方向のいずれかの方向にピクセルの大きさの整数倍の幅をもたせた領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を設定することを特徴とする。
【００１２】
描画データ生成部におけるピクセル値の設定要因には、陰影やテクスチャなど一般のレンダリング処理で付加される属性を適宜含めてよい。
【００１３】
本発明のさらに別の態様もまた画像生成装置に関する。この画像生成装置は、描画すべき画像の情報を読み込む描画情報取得部と、前記画像の情報に基づき、各ピクセル値によってピクセル単位で表現した描画データを生成する描画データ生成部と、前記描画データを記憶する描画データ記憶部と、を備え、前記描画データ生成部は、前記画像の情報に含まれる描画対象の線をピクセル単位で表現する際、当該描画対象の線を含み、当該線を表示画面の水平方向および垂直方向のいずれかの方向に所定の幅だけシフトさせた２本の平行線を境界線として含み、前記２本の平行線の端点を頂点とする領域を当該描画対象の線の描画領域に定め、ピクセルの表示領域が前記描画領域に含まれる割合に応じて、当該ピクセルのピクセル値を設定することを特徴とする。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、所望の形状を保持しながら、エイリアシングを軽減した線の描画を実現できる。
【発明を実施するための最良の形態】
【００１６】
図１は、本実施の形態に係る画像生成装置２００の構成図である。画像生成装置２００は、描画ブロック１００と制御ブロック１１０と入出力ブロック１２０とがバス１５０で接続されて構成され、入出力ブロック１２０には記憶装置１３０と表示装置１４０が接続される。入出力ブロック１２０は、ネットワーク経由で他の装置と通信して、描画に必要なデータを外部から取得する構成であってもよい。
【００１７】
制御ブロック１１０は、この画像生成装置２００全体を制御するブロックであり、画像生成装置２００内部と、記憶装置１３０、表示装置１４０などの外部周辺装置との間のデータ転送の同期管理、画像生成装置２００内部の各ユニットからの割り込みの処理、タイマーの管理などを行う。
【００１８】
入出力ブロック１２０は、記憶装置１３０に格納された３次元モデル情報や各種パラメータを読み込み、描画ブロック１００に提供する。入出力ブロック１２０は、ネットワーク経由で外部装置から描画に必要なデータを受信して、描画ブロック１００に提供してもよい。入出力ブロック１２０は、描画ブロック１００が出力する描画データを表示装置１４０に表示する。
【００１９】
描画ブロック１００は、入出力ブロック１２０から与えられる３次元モデル情報をもとに描画データを生成し、フレームバッファに書き込むレンダリング処理を行う。
【００２０】
図２は、描画ブロック１００の構成図である。ラスタライザ１０は、入出力ブロック１２０から描画プリミティブの頂点データを受け取る。描画プリミティブは一般的には三角形であり、ラスタライザ１０は、３次元空間上の三角形を投影変換により描画平面上の三角形に変換するビュー変換を行い、さらに、描画平面上の三角形を描画平面の水平方向に沿って走査しながら、１列毎に量子化されたピクセルに変換するラスター処理を行う。ラスタライザ１０により、描画プリミティブがピクセル展開され、各ピクセルについて、ＲＧＢカラー値、α値、Ｚ値を含むピクセル情報が算出される。
【００２１】
ラスタライザ１０は、走査線に沿って所定の大きさのピクセル領域（以下、描画対象領域という）を生成し、後段の描画演算ユニット２０に与える。描画演算ユニット２０には、シェーダユニット３０と、テクスチャユニット５０とが含まれ、メモリ４０を利用しながら処理が行われる。メモリ４０内には、フレームバッファとテクスチャバッファが設けられる。なお、フレームバッファとテクスチャバッファは、単一のメモリ内に設けられてもよく、物理的に別個のメモリに設けられてもよい。
【００２２】
ラスタライザ１０から描画演算ユニット２０に供給された描画対象領域は、キューにスタックされ、シェーダユニット３０は、キューにスタックされた描画対象領域を順に処理する。
【００２３】
シェーダユニット３０は、ラスタライザ１０により算出されたピクセル情報をもとに、シェーディング処理を行い、テクスチャユニット５０により得られたテクセル情報をもとに、テクスチャマッピング後のピクセル色を定め、メモリ４０内のフレームバッファに描画データを書き込む。シェーダユニット３０は、さらに、フレームバッファに保持された描画データに対して、フォギング、αブレンディング等の処理を行い、最終的な描画色を求め、フレームバッファの描画データを更新する。フレームバッファに記憶された描画データは、入出力ブロック１２０により読み出され、表示装置１４０に出力される。
【００２４】
テクスチャユニット５０は、シェーダユニット３０からテクスチャデータを指定するパラメータの入力を受け取り、テクスチャデータのアドレスを算出して、メモリ４０内のテクスチャバッファに対して必要なテクスチャデータを要求する。テクスチャユニット５０は、テクスチャバッファから読み出されたテクスチャデータをキャッシュし、バイリニア補間、トライリニア補間などのフィルタ処理を施して、シェーダユニット３０に出力する。
【００２５】
図３はラスタライザ１０の構成図である。ラスタライザ１０は、入出力ブロック１２０から描画プリミティブの頂点データを受け取る頂点データ読込部１２と、描画プリミティブの頂点データをビュー変換によって描画平面座標系の頂点データへ変換するビュー変換部１４と、描画平面上の頂点座標を結ぶ線分を表す関数（以後、エッジ関数と呼ぶ）を算出したり、後段にて行われるＤＤＡ処理で用いられる走査領域を設定したりするセットアップ処理部１６と、エッジ関数を取得した三角形などの描画形状を、描画平面の水平方向に走査し、１列ごとにＤＤＡ(Digital Differential Analyzer)処理などを施すことにより、描画形状の辺および内部に含まれるピクセルごとに、ＲＧＢカラー値、α値、Ｚ値を含むピクセル情報を取得するピクセル情報生成部１８と、ピクセル情報生成部１８にて取得したピクセル情報を含む描画対象領域を描画演算ユニット２０へ供給するピクセル情報送出部１９を含む。
【００２６】
次に、ラスタライザ１０のピクセル情報生成部１８における動作を説明する。まず本実施の形態を説明するために、全般的な動作について説明する。図４および図５は描画平面座標系の頂点データおよびエッジ関数が得られている三角形について、ピクセル情報生成部１８において行われる処理について説明する図であり、図４はピクセル単位での処理、図５は各ピクセルを仮想的に分割したサブピクセル単位での処理を示している。これらの図において１ピクセルの表示領域は実線のます目で、１サブピクセルの領域は破線のます目で示されている。
【００２７】
図４に示すピクセル単位の処理では、例えば上から１行目、２行目と、水平の走査方向６０に順次走査を行い、各ピクセルが三角形６２の内部に存在するか否かの内外判定を行う。図４においては三角形６２の内部にあると判定されたピクセルを黒丸、外部にあると判定されたピクセルを白丸で表している。以後、図５から図７、および図８も同様の表示を行う。内外判定の後、三角形６２の内部に存在するピクセルについて、三角形６２の辺を端点とする線型補間を行ごとに行うことにより、各ピクセルのＲＧＢカラー値、Ｚ値を算出する。図４のようなピクセル単位の処理では、全ての処理が離散的なピクセル単位で行われるため、三角形６２の内部に存在するピクセルと外部に存在するピクセルとの差が顕著になり、ジャギーなどのエイリアスが目立ちやすい。
【００２８】
図５は各ピクセルを仮想的に縦方向、横方向に４分割し、１ピクセルを１６サブピクセルとした場合について示している。このときはサブピクセル単位の行ごとに、走査方向６０に順次走査を行い、三角形６２に対するサブピクセルの内外判定を行う。そして、各ピクセルに含まれる１６個のサブピクセルのうち、三角形６２の内部に存在するサブピクセルの数を集計し、ピクセルごとにその数の割合をα値として算出する。例えばあるピクセルを構成するサブピクセルのうち３個のサブピクセルが三角形６２の内部に存在すれば、そのピクセルのα値は３／１６である。
【００２９】
このα値は後段のシェーダユニット３０におけるαブレンディング処理において用いられる。例えば三角形６２の内外にまたがるピクセルの表示領域において、三角形６２の内側の部分のピクセル値をＡ、外側の部分のピクセル値をＢとしたとき、当該ピクセルのピクセル値をαＡ＋（１−α）Ｂなどとして、２つのピクセル値Ａ、Ｂを（１−α）：αの比で内分して混合する。この混合（ブレンディング）処理によって各ピクセルは、三角形６２との位置関係によってそのピクセル値が調整されるため、サブピクセルを導入しない図４の場合と比較すると、三角形６２の外部にあるピクセルとの差が緩和され、エイリアスが目立ちにくい。ラスタライザ１０では図４および図５に示した、ピクセル単位での走査による情報、サブピクセル単位での走査による情報の双方を生成しておき、表示内容や装置の状況などに応じてαブレンディング処理を行うかどうかをシェーダユニット３０で決定することもできる。
【００３０】
次に、描画平面座標系の頂点データおよびエッジ関数が得られている線分（以下、描画対象線と呼ぶ）について、ピクセル情報を生成する手法の例を、図６を参照しながら説明する。図６は描画対象線のピクセル情報生成に用いられる手法のひとつであるダイヤモンドルール（Diamond-Exit Rule）を説明する図である。ダイヤモンドルールは各ピクセルの中心を中心点とし、ピクセルの辺の中点を頂点とするダイヤモンド形状の四角形（以下、単にダイヤモンド６４と呼ぶ）を仮想的に発生させ、描画対象線６６が各ダイヤモンド６４を横切るかどうかによって、描画対象線６６を構成するピクセルの判定を行う処理である。同図が示すように、描画対象線６６を構成すると判定されたピクセルは離散的であるため、三角形の場合について図４を用いて説明したのと同様、当該ピクセルとそれ以外のピクセルとの差が顕著になり、ジャギーなどのエイリアスが目立ちやすくなる。
【００３１】
ここで上述の三角形の場合で導入したサブピクセル単位の走査機能を利用して、描画線のエイリアスを軽減しようとした場合を考える。図７はダイヤモンドルールによる線の描画において、サブピクセル単位の走査手法を導入したときの態様を説明した図である。同図も、各ピクセルを縦方向、横方向に４分割し、１ピクセルを１６サブピクセルとした例を示している。このサブピクセルごとに上述のダイヤモンドルールを適用すると、描画対象線６６が横切るダイヤモンドを有するサブピクセルが、当該線を構成すると判定され、それ以外のサブピクセルは当該線とは関係しないことになる。
【００３２】
ここで仮に、図６にて示したピクセル単位のダイヤモンドルールの処理において、１ピクセルが１６サブピクセルであると考えると、描画対象線６６を構成すると判定されたピクセルは１６サブピクセル全てが当該描画対象線６６を構成すると判定していることになる。それと比較すると、図７のサブピクセル単位の処理では、１ピクセルに含まれるサブピクセルのうち、描画対象線６６を構成すると判定されたサブピクセルの数が極端に少なく、ピクセル単位の情報としてα値を算出すると全体的に小さい値となる。そのため、シェーダユニット３０におけるαブレンディングの結果得られる描画データは、図６のピクセル単位の処理の場合と比較すると、描画される線の色が細くなったり、薄くなったり、不連続な線に見えたりすることがある。したがってシェーダユニット３０において、エイリアスを軽減させようとαブレンディングの処理を行うようにすると、描画した線自体の印象まで変化してしまう、という問題が生じやすいことを本発明者は認識した。
【００３３】
上述の問題を克服するために、本実施の形態のラスタライザ１０のセットアップ処理部１６およびピクセル情報生成部１８において行われる処理動作について、以降に説明する。
【００３４】
図８は本実施の形態において描画平面座標系の頂点データおよびエッジ関数が得られている線に対して、ピクセル情報生成部１８において行われる処理について説明する図である。同図は、各ピクセルを縦方向、横方向に４分割し、１ピクセルを１６サブピクセルとした例を示しているが、サブピクセルの数はこれに限定されず、所望の計算コストや精度などによって設定してよく、本実施の形態の手法はどの場合でも適用可能である。同図に示すとおり、本実施の形態においては当該線を所定の幅を有する領域と考え、その領域に対してサブピクセルの内外判定を行う。具体的には、エッジ関数を算出した描画対象線６６を描画平面座標系の軸方向に平行移動させてできた２本のシフト線６８と、移動方向に平行な２本の線（以降、端辺と呼ぶ）によって形成される平行四辺形ａｂｃｄをその領域とする。
【００３５】
図９は本実施の形態のセットアップ処理部１６およびピクセル情報生成部１８において行われる処理の手順を示す流れ図である。まず、描画対象線６６について与えられた２つの頂点座標から、エッジ関数を算出する（Ｓ１０）。次にエッジ関数の傾き判定を行い、描画対象線６６が描画平面座標系のｘ軸となす鋭角が４５゜以下の場合は（Ｓ１２のＹ）、描画対象線６６をｙ軸方向に０．５ｄおよび−０．５ｄ平行移動させた２本のシフト線６８の関数を算出する（Ｓ１４）。ここでｄは１ピクセルの表示領域の幅を示している。図８で示した図は、描画対象線６６とｘ軸とがなす鋭角が４５゜以下であり、描画対象線６６をｙ軸方向に平行移動した場合を示している。一方、描画対象線６６と描画平面座標系のｘ軸とがなす鋭角が４５゜より大きい場合は（Ｓ１２のＮ）、描画対象線６６をｘ軸方向に０．５ｄおよび−０．５ｄ平行移動させた２本のシフト線６８の関数を算出する（Ｓ１６）。
【００３６】
以降、描画対象線６６が描画平面座標系のｘ軸となす鋭角が４５゜以下の場合（Ｓ１２のＹ）、当該描画対象線６６に対してｘ軸をメジャー軸、ｙ軸をマイナー軸と呼ぶ。一方、描画対象線６６が描画平面座標系のｘ軸となす鋭角が４５゜より大きい場合（Ｓ１２のＮ）、ｘ軸をマイナー軸、ｙ軸をメジャー軸と呼ぶ。
【００３７】
次に２本のシフト線６８の始点および終点の４点を頂点とする平行四辺形ａｂｃｄに含まれるサブピクセルを検出するための走査領域を設定し（Ｓ１８）、当該走査領域を走査することによってサブピクセルの内外判定を行う（Ｓ２０）。走査手法については後述する。
【００３８】
その後は上述したサブピクセル導入時の三角形処理の場合と同様、各ピクセルに属するサブピクセルのうち平行四辺形ａｂｃｄの内部に存在するサブピクセルの数の割合をα値として算出する。このα値を用いて、シェーダユニット３０におけるαブレンディング処理を行うことにより、その幅がおよそｄ、すなわち１ピクセル分であり、ダイヤモンドルールなどによってサブピクセルを導入せずに生成したピクセル情報に基づいて描画された線と同様の色合いを有し、かつエイリアスが軽減された線を描画することができる。
【００３９】
次に、図９のＳ１８およびＳ２０において行われる、本実施の形態におけるサブピクセル単位の走査手法について説明する。
【００４０】
図１０は本実施の形態におけるサブピクセル単位の走査手法を説明する図である。まず図９のＳ１８で示したように、平行四辺形ａｂｃｄに外接し、描画平面のｘ軸およびｙ軸と平行な辺を有する矩形状に走査領域ＡＢＣＤを設定する。本実施の形態では、平行四辺形ａｂｃｄの辺のうち、２本のシフト線６８の端点どうしを結ぶ端辺ａｄおよびｂｃは描画対象線６６のシフト方向の軸、すなわちマイナー軸であるｙ軸に平行であるから、走査領域ＡＢＣＤの境界線の一部、すなわちＡＤおよびＢＣは、端辺ａｄおよびｂｃとそれぞれ一致することになる。マイナー軸がｘ軸となる描画対象線においても同様に、走査領域が端辺と一致する。
【００４１】
次にこの走査領域ＡＢＣＤ内を、上述の三角形に対する内外判定と同様に、サブピクセル単位の行ごとに、例えば水平の走査方向６０に順次走査を行う。前述のとおり走査領域ＡＢＣＤは端辺ａｄおよびｂｃと一致しているため、端辺ａｄおよびｂｃに対して外側にあるサブピクセルは走査の対象外となっている。したがって、ここで行われる走査では、サブピクセルが２辺ａｂおよびｄｃの内側にあるか否かの内外判定だけで済むことになる。
【００４２】
２辺ａｂおよびｄｃ上にかかるサブピクセルについては、一方の辺上のサブピクセルを内在と判定した場合は、他方の辺上のサブピクセルを外在とするなど、描画線の幅がよりｄに近くなるようなルールを設定する。同様に２辺ａｄおよびｂｃ上にかかるサブピクセルについては、一方の辺上のサブピクセルを内在と判定したら、もう一方の辺上のサブピクセルを外在と判定するなどのルールを設ける。これにより、描画対象線の本来の長さにより近い線が描画できるとともに、複数の線が連続している場合に、接続部分のサブピクセルを２重に集計するのを防止することができる。
【００４３】
次に、本実施の形態における平行四辺形ａｂｃｄに対するサブピクセルの内外判定のための走査手法を、三角形に対して用いられている内外判定機能を応用して、容易に実現する動作原理について説明する。
【００４４】
まず、本実施の形態を理解するために、三角形に対する内外判定の処理について説明する。図１１は描画対象が三角形の場合の、ピクセルまたはサブピクセルの内外判定手法を説明する図である。ここで三角形のエッジ関数を表す線は、ｅ、ｆ、およびｇと標記し、描画平面上の座標を（ｘ，ｙ）としている。以降、本実施の形態との整合性を保つためにサブピクセル単位の内外判定を行うとして説明する。まず走査を行うバウンディングボックス、すなわち走査領域を設定する。線ｅ、ｆ、およびｇによって形成される三角形の外接矩形は矩形ＥＦＧＨである。ここでもし、当該三角形が表示装置における画像の表示領域など、描画可能な領域をはみ出している場合、当然そのはみ出た部分のピクセル情報は表示に必要でないため、走査を行わない。図１１に示すように、あらかじめ定められた描画可能な領域（以降、シザリング領域と呼ぶ）をｓｘ０≦ｘ≦ｓｘ１，ｓｙ０≦ｙ≦ｓｙ１とした場合、三角形に対する走査領域は、外接矩形ＥＦＧＨと前述のシザリング領域との共通領域である長方形ＥＩＪＨである。
【００４５】
走査領域を設定したら、例えばエッジ関数ｅおよびｆの交点からｘ軸に平行な走査線上を、ｙ軸の負の方向へ順次、サブピクセル単位で走査する。例えば走査線７０に示すように、線ｆからｘ軸の正方向へサブピクセル上を走査していき、走査されたサブピクセルは、三角形内部に存在すると判定される。走査位置が線ｅまで達したら、ひとつ下のサブピクセルの行を同様に走査する。これを繰り返していくと、いずれ線ｅに達する前に走査領域ＥＩＪＨの辺ＩＪ、すなわちシザリング領域の境界線に達する行が現れる。このときは、走査線７２に示すように、辺ＩＪに達した時点で、次の走査線へと走査を移行する。
【００４６】
以上述べた三角形に対するサブピクセルの内外判定では、あらかじめ設定されたシザリング領域を表す数値、ｓｘ０、ｓｘ１、ｓｙ０、およびｓｙ１と、三角形の辺を構成する線ｅ、ｆ、およびｇのエッジ関数とに基づき、走査領域を設定し、サブピクセルの内外判定を行っている。次に、この三角形に対する内外判定機能を利用して、本実施の形態における平行四辺形ａｂｃｄに含まれるサブピクセルの検出を行う場合について説明する。
【００４７】
図１２は本実施の形態におけるサブピクセルの内外判定に関し、三角形描画時の手法を応用する手法について説明する図である。まず、平行四辺形ａｂｃｄの2辺ａｂおよびｄｃをなす２本のシフト線６８に対応するエッジ関数を、図１１で示した三角形の辺を構成する３本の線のうちの２本、ｅおよびｆの関数として設定する。残りの線ｇについては、例えばシザリング領域の境界線の一辺と同一の関数を与える。図１２ではｙ＝ｓｙ１なる関数を与えている。一方、端辺であるａｄおよびｂｃを与える関数はｘに対する定数であるから、その定数を、シザリング領域の境界線のうち、マイナー軸であるｙ軸に平行な線、すなわちｘ＝ｓｘ０およびｘ＝ｓｘ１の、ｓｘ０およびｓｘ１として設定する。
【００４８】
その結果、走査領域は自動的に長方形ＡＢＣＤに定まる。これにより、平行四辺形ａｂｃｄに対するサブピクセル単位の走査において、辺ａｂ上に始点を有するある走査線７４は端辺ｂｃが終点となり、辺ｄｃ上に終点を有するある走査線７６は端辺ａｄが始点となる。すなわち端辺を横切るようなサブピクセルの行を走査する場合は、端辺より外部の走査を行うことがなくなり、あとは２本の線ｅおよびｆに対して三角形の場合と同様の処理を行えば、結果として平行四辺形ａｂｃｄ内に存在するサブピクセルの検出を行ったことになる。以上、図１２を参照してマイナー軸がｙ軸の場合について説明したが、マイナー軸がｘ軸の場合でも同様である。具体的には線ｇを例えばｘ＝ｓｘ１と設定し、端辺のｙに対する定数を、シザリング領域の境界線を与える関数の一部、ｙ＝ｓｙ０およびｙ＝ｓｙ１の、ｓｙ０およびｓｙ１として設定すればよい。
【００４９】
ここでは上述のとおり、両端辺ａｄおよびｂｃ上に位置するサブピクセルについては、例えば一方の端辺ａｄ上のサブピクセルを平行四辺形に内在と判定したら、もう一方の端辺ｂｃ上のサブピクセルは外在と判定するなどのルールを設ける。これにより、複数の線の接続部分のサブピクセルの２重集計を防止できる。また、本実施の形態ではマイナー軸が同一の複数の線が連続している場合、その端辺を表す関数がいずれもｘの定数、もしくはｙの定数として一致するため、線の接続部分にそれぞれの線の端部による凹凸が出現することがなくなる。
【００５０】
図１２では端辺ａｄおよびｂｃを表す、ｘに対する定数を、シザリング領域の境界線の２辺を表すｘ＝ｓｘ０およびｘ＝ｓｘ１のｓｘ０およびｓｘ１として設定した。しかし、あらかじめ設定してある、本来のシザリング領域の境界線が、端辺の少なくとも一方より平行四辺形ａｂｃｄの内側に存在する場合は、平行四辺形ａｂｃｄのうち、本来のシザリング領域の外部にある領域を走査する必要がなくなる。この場合は、図１１で示した三角形の場合で説明したように、平行四辺形ａｂｃｄは当該境界線で切断され、当該境界線と図１２で示した走査領域ＡＢＣＤの一部とが囲む領域が、正規の走査領域となる。このときも、ただ端辺が平行四辺形ａｂｃｄの内側へ平行移動したにすぎず、本実施の形態の作用、効果は同様に得ることができる。
【００５１】
以上述べた本実施の形態によれば、所望の線幅を考慮した領域をあらかじめ算出し、サブピクセル単位の内外判定処理を行うことによって、エイリアスが軽減され、かつ線幅や色合いなどを損なわない線の描画が可能となる。また、当該領域は、エッジ関数の得られている描画対象線を軸方向に平行移動させただけで容易に取得できる関数により構成されているため、除算器などを新たに実装する必要がなく、さらに端辺が描画平面の軸と平行であるため、走査領域の設定に関して、三角形などの描画に一般的に実装されていたハードウェアの機能をそのまま利用できるため、結果として安価な実装コストでの実現が可能であり、計算負荷も増大しない。さらにマイナー軸が一致した複数の線が連続した構成を有する描画線の場合、構成する線の端辺が互いに平行であるため、接続部分における端辺が一致し、連続性に優れた線を描画することができる。  
【００５２】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５３】
本実施の形態では、主に３次元グラフィックス処理についての構成を述べたが、２次元のグラフィックス処理においても、ラスタライザ１０の動作は同様である。また、描画対象線は直線に限られず、同様の処理を曲線に適用することができる。さらに、平行四辺形など、描画対象線をシフトして発生させた領域の幅は、１ピクセルの表示領域の幅である必要はなく、ユーザの入力などに応じた幅を適宜設定してよい。これらの変形例においても、所望の形状、幅を有する領域をまず発生させ、それに対してサブピクセル単位の内外判定を、三角形の内外判定機能を利用しながら行い、その結果に基づきピクセル単位の情報を取得していくことにより、形状、色合いなどへの影響を最小限に、少ないエイリアスで線を描画することが、実装コスト、処理の負荷を増大させることなく実現できる。
【図面の簡単な説明】
【００５４】
【図１】本実施の形態における画像生成装置の構成図である。
【図２】本実施の形態における描画ブロックの構成図である。
【図３】本実施の形態におけるラスタライザの構成図である。
【図４】三角形描画時のピクセル情報の生成をピクセル単位で行う手法を説明する図である。
【図５】三角形描画時のピクセル情報の生成をサブピクセル単位で行う手法を説明する図である。
【図６】線の描画におけるダイヤモンドルールの手法を説明する図である。
【図７】線の描画におけるダイヤモンドルールの手法をサブピクセル単位で行う場合を説明する図である。
【図８】本実施の形態において線の描画時にピクセル情報を生成する手法を説明する図である。
【図９】本実施の形態において線の描画時にピクセル情報を生成する手順を示す流れ図である。
【図１０】本実施の形態におけるサブピクセル単位の走査手法を説明する図である。
【図１１】三角形描画時のピクセルまたはサブピクセルの内外判定手法を説明する図である。
【図１２】本実施の形態におけるサブピクセルの内外判定に関し、三角形描画時の手法を応用する手法について説明する図である。
【符号の説明】
【００５５】
１０  ラスタライザ、  １２  頂点データ読込部、  １４  ビュー変換部、  １６  セットアップ処理部、  １８  ピクセル情報生成部、  １９  ピクセル情報送出部、  描画演算ユニット、  ６６  描画対象線、  ６８  シフト線、  １００  描画ブロック、  １２０  入出力ブロック、  ２００  画像生成装置。
【図１】
2006209223.tif 000003
【図２】
2006209223.tif 000004
【図３】
2006209223.tif 000005
【図４】
2006209223.tif 000006
【図５】
2006209223.tif 000007
【図６】
2006209223.tif 000008
【図７】
2006209223.tif 000009
【図８】
2006209223.tif 000010
【図９】
2006209223.tif 000011
【図１０】
2006209223.tif 000012
【図１１】
2006209223.tif 000013
【図１２】
2006209223.tif 000014